From 6908110aaa04ec3107f15ab8a8bb2603e7bbead9 Mon Sep 17 00:00:00 2001 From: Uriel Mihura <43704209+uri-99@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:33:04 -0300 Subject: [PATCH 1/3] fix: sdk version for v060 (#944) --- .../abi/AlignedLayerServiceManager.json | 2 +- .../aligned-sdk/src/communication/batch.rs | 12 ++++-- batcher/aligned-sdk/src/sdk.rs | 39 +++++++++++++++++-- batcher/aligned/src/main.rs | 7 ++++ docs/guides/1_SDK.md | 6 +++ 5 files changed, 59 insertions(+), 7 deletions(-) diff --git a/batcher/aligned-sdk/abi/AlignedLayerServiceManager.json b/batcher/aligned-sdk/abi/AlignedLayerServiceManager.json index 37d1cd677..d54b9a32a 100644 --- a/batcher/aligned-sdk/abi/AlignedLayerServiceManager.json +++ b/batcher/aligned-sdk/abi/AlignedLayerServiceManager.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"__avsDirectory","type":"address","internalType":"contract IAVSDirectory"},{"name":"__rewardsCoordinator","type":"address","internalType":"contract IRewardsCoordinator"},{"name":"__registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"__stakeRegistry","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"avsDirectory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"batchesState","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"taskCreatedBlock","type":"uint32","internalType":"uint32"},{"name":"responded","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"blsApkRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBLSApkRegistry"}],"stateMutability":"view"},{"type":"function","name":"checkSignatures","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"referenceBlockNumber","type":"uint32","internalType":"uint32"},{"name":"params","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","components":[{"name":"signedStakeForQuorum","type":"uint96[]","internalType":"uint96[]"},{"name":"totalStakeForQuorum","type":"uint96[]","internalType":"uint96[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createAVSRewardsSubmission","inputs":[{"name":"rewardsSubmissions","type":"tuple[]","internalType":"struct IRewardsCoordinator.RewardsSubmission[]","components":[{"name":"strategiesAndMultipliers","type":"tuple[]","internalType":"struct IRewardsCoordinator.StrategyAndMultiplier[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"startTimestamp","type":"uint32","internalType":"uint32"},{"name":"duration","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createNewTask","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"batchDataPointer","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"view"},{"type":"function","name":"deregisterOperatorFromAVS","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getOperatorRestakedStrategies","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getRestakeableStrategies","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerOperatorToAVS","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"operatorSignature","type":"tuple","internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","components":[{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registryCoordinator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistryCoordinator"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"respondToTask","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"nonSignerStakesAndSignature","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewardsInitiator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setRewardsInitiator","inputs":[{"name":"newRewardsInitiator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaleStakesForbidden","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"view"},{"type":"function","name":"staleStakesForbidden","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trySignatureAndApkVerification","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"apk","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"pairingSuccessful","type":"bool","internalType":"bool"},{"name":"siganatureIsValid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAVSMetadataURI","inputs":[{"name":"_metadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyBatchInclusion","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"pubInputCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"BatchVerified","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"NewBatch","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"taskCreatedBlock","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"batchDataPointer","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RewardsInitiatorUpdated","inputs":[{"name":"prevRewardsInitiator","type":"address","indexed":false,"internalType":"address"},{"name":"newRewardsInitiator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StaleStakesForbiddenUpdate","inputs":[{"name":"value","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x6101806040523480156200001257600080fd5b5060405162004d0538038062004d058339810160408190526200003591620002e5565b6001600160a01b0380851660805280841660a05280831660c052811660e0528184848284620000636200020a565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e791906200034d565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016691906200034d565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e891906200034d565b6001600160a01b03166101605250620002006200020a565b5050505062000374565b600054610100900460ff1615620002775760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620002ca576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002e257600080fd5b50565b60008060008060808587031215620002fc57600080fd5b84516200030981620002cc565b60208601519094506200031c81620002cc565b60408601519093506200032f81620002cc565b60608601519092506200034281620002cc565b939692955090935050565b6000602082840312156200036057600080fd5b81516200036d81620002cc565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161488362000482600039600081816104a901526115b201526000818161028901526117c50152600081816102d5015281816119b20152611ba201526000818161033c01528181610de40152818161126e015281816114150152611666015260008181610af901528181610c5401528181610ceb01528181612334015281816124b70152612556015260008181610920015281816109af01528181610a2f01528181611f7d015281816120490152818161227201526124120152600081816129ad01528181612a690152612b5501526000818161030601528181611fd1015281816120a5015261212401526148836000f3fe6080604052600436106101665760003560e01c80638da5cb5b116100d1578063c4d66de81161008a578063f2fde38b11610064578063f2fde38b146104e0578063fa534dc014610500578063fc299dee14610520578063fce36c7d1461054057600080fd5b8063c4d66de814610477578063df5cf72314610497578063e481af9d146104cb57600080fd5b80638da5cb5b146103735780639926ee7d14610391578063a364f4da146103b1578063a98fb355146103d1578063b099627e146103f1578063b98d09081461044d57600080fd5b80635c008994116101235780635c008994146102645780635df459461461027757806368304835146102c35780636b3aa72e146102f75780636d14a9871461032a578063715018a61461035e57600080fd5b8063171f1d5b1461016b5780632dd94eba146101a757806333cfb7b7146101c95780633bc28c8c146101f6578063416c7e5e146102165780634ae07c3714610236575b600080fd5b34801561017757600080fd5b5061018b610186366004613a7a565b610560565b6040805192151583529015156020830152015b60405180910390f35b3480156101b357600080fd5b506101c76101c2366004613d81565b6106ea565b005b3480156101d557600080fd5b506101e96101e4366004613ddc565b6108fb565b60405161019e9190613df9565b34801561020257600080fd5b506101c7610211366004613ddc565b610dce565b34801561022257600080fd5b506101c7610231366004613e54565b610de2565b34801561024257600080fd5b50610256610251366004613e71565b610f19565b60405161019e929190613f0b565b6101c7610272366004613f54565b611e6c565b34801561028357600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161019e565b3480156102cf57600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b34801561030357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ab565b34801561033657600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036a57600080fd5b506101c7611f5e565b34801561037f57600080fd5b506033546001600160a01b03166102ab565b34801561039d57600080fd5b506101c76103ac36600461404d565b611f72565b3480156103bd57600080fd5b506101c76103cc366004613ddc565b61203e565b3480156103dd57600080fd5b506101c76103ec3660046140f8565b612105565b3480156103fd57600080fd5b5061043161040c366004614148565b60c96020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040805163ffffffff909316835290151560208301520161019e565b34801561045957600080fd5b506097546104679060ff1681565b604051901515815260200161019e565b34801561048357600080fd5b506101c7610492366004613ddc565b612159565b3480156104a357600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d757600080fd5b506101e961226c565b3480156104ec57600080fd5b506101c76104fb366004613ddc565b612635565b34801561050c57600080fd5b5061046761051b366004614161565b6126ab565b34801561052c57600080fd5b506065546102ab906001600160a01b031681565b34801561054c57600080fd5b506101c761055b3660046141f2565b6127d4565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106105a8576105a8614266565b60200201518951600160200201518a602001516000600281106105cd576105cd614266565b60200201518b602001516001600281106105e9576105e9614266565b602090810291909101518c518d8301516040516106469a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610669919061427c565b90506106dc61068261067b8884612b8c565b8690612c23565b61068a612cb7565b6106d26106c3856106bd604080518082018252600080825260209182015281518083019092526001825260029082015290565b90612b8c565b6106cc8c612d77565b90612c23565b886201d4c0612e07565b909890975095505050505050565b600082815260c9602052604090205463ffffffff166107475760405162461bcd60e51b8152602060048201526014602482015273426174636820646f65736e27742065786973747360601b60448201526064015b60405180910390fd5b600082815260c96020526040902054640100000000900460ff16156107ae5760405162461bcd60e51b815260206004820152601760248201527f426174636820616c726561647920726573706f6e646564000000000000000000604482015260640161073e565b600082815260c960205260408120805464ff000000001981166401000000001790915581906107e590859063ffffffff1685610f19565b91509150604360ff16826020015160008151811061080557610805614266565b602002602001015161081791906142b4565b6001600160601b03166064836000015160008151811061083957610839614266565b60200260200101516001600160601b031661085491906142e3565b10156108ca576040805162461bcd60e51b81526020600482015260248101919091527f5369676e61746f7269657320646f206e6f74206f776e206174206c656173742060448201527f7468726573686f6c642070657263656e74616765206f6620612071756f72756d606482015260840161073e565b60405184907f433ae0767fe95db70a0e30eda902926e41203b9eb97ec5175076fb9e2d35c13e90600090a250505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190614302565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a919061431b565b90506001600160c01b0381161580610ab457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190614344565b60ff16155b15610ad45760408051600080825260208201909252905b50949350505050565b6000610ae8826001600160c01b031661302b565b90506000805b8251811015610bbe577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610b3857610b38614266565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190614302565b610baa9083614367565b915080610bb68161437f565b915050610aee565b506000816001600160401b03811115610bd957610bd9613929565b604051908082528060200260200182016040528015610c02578160200160208202803683370190505b5090506000805b8451811015610dc1576000858281518110610c2657610c26614266565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf9190614302565b905060005b81811015610dab576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d91906143af565b60000151868681518110610d7357610d73614266565b6001600160a01b039092166020928302919091019091015284610d958161437f565b9550508080610da39061437f565b915050610cc4565b5050508080610db99061437f565b915050610c09565b5090979650505050505050565b610dd66130ed565b610ddf81613147565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6491906143f0565b6001600160a01b0316336001600160a01b031614610f105760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161073e565b610ddf816131b0565b60408051808201909152606080825260208201526000826040015151604051806040016040528060018152602001600081525051148015610f7557508260a0015151604051806040016040528060018152602001600081525051145b8015610f9c57508260c0015151604051806040016040528060018152602001600081525051145b8015610fc357508260e0015151604051806040016040528060018152602001600081525051145b61102d5760405162461bcd60e51b8152602060048201526041602482015260008051602061482e83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161073e565b825151602084015151146110a55760405162461bcd60e51b81526020600482015260446024820181905260008051602061482e833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161073e565b4363ffffffff168463ffffffff16106111145760405162461bcd60e51b815260206004820152603c602482015260008051602061482e83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161073e565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156111d5576111d5613929565b6040519080825280602002602001820160405280156111fe578160200160208202803683370190505b5081526020860151516001600160401b0381111561121e5761121e613929565b604051908082528060200260200182016040528015611247578160200160208202803683370190505b50816020018190525060006112f360405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ee9190614344565b6131f7565b905060005b87602001515181101561158e5761133d8860200151828151811061131e5761131e614266565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061135357611353614266565b6020908102919091010152801561141357602083015161137460018361440d565b8151811061138457611384614266565b602002602001015160001c836020015182815181106113a5576113a5614266565b602002602001015160001c11611413576040805162461bcd60e51b815260206004820152602481019190915260008051602061482e83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161073e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061145857611458614266565b60200260200101518b8b60000151858151811061147757611477614266565b60200260200101516040518463ffffffff1660e01b81526004016114b49392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f5919061431b565b6001600160c01b03168360000151828151811061151457611514614266565b60200260200101818152505061157a61067b61154e848660000151858151811061154057611540614266565b60200260200101511661328a565b8a60200151848151811061156457611564614266565b60200260200101516132b590919063ffffffff16565b9450806115868161437f565b9150506112f8565b505061159983613399565b60975490935060ff166000816115b0576000611632565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116329190614302565b905060005b604051806040016040528060018152602001600081525051811015611d3d5782156117c3578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106116bb576116bb614266565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa1580156116ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117239190614302565b61172d9190614367565b116117c35760405162461bcd60e51b8152602060048201526066602482015260008051602061482e83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161073e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac6040518060400160405280600181526020016000815250838151811061181a5761181a614266565b602001015160f81c60f81b60f81c8c8c60a00151858151811061183f5761183f614266565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa15801561189b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bf9190614424565b6001600160401b0319166118e28a60400151838151811061131e5761131e614266565b67ffffffffffffffff19161461197e5760405162461bcd60e51b8152602060048201526061602482015260008051602061482e83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161073e565b6119ae8960400151828151811061199757611997614266565b602002602001015187612c2390919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611a0757611a07614266565b602001015160f81c60f81b60f81c8c8c60c001518581518110611a2c57611a2c614266565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aac919061444f565b85602001518281518110611ac257611ac2614266565b6001600160601b03909216602092830291909101820152850151805182908110611aee57611aee614266565b602002602001015185600001518281518110611b0c57611b0c614266565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611d2857611b9b86600001518281518110611b5657611b56614266565b602002602001015160405180604001604052806001815260200160008152508581518110611b8657611b86614266565b016020015160f81c60ff161c60019081161490565b15611d16577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611bf757611bf7614266565b602001015160f81c60f81b60f81c8e89602001518581518110611c1c57611c1c614266565b60200260200101518f60e001518881518110611c3a57611c3a614266565b60200260200101518781518110611c5357611c53614266565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdb919061444f565b8751805185908110611cef57611cef614266565b60200260200101818151611d03919061446c565b6001600160601b03169052506001909101905b80611d208161437f565b915050611b30565b50508080611d359061437f565b915050611637565b505050600080611d578a868a606001518b60800151610560565b9150915081611dc85760405162461bcd60e51b8152602060048201526043602482015260008051602061482e83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161073e565b80611e295760405162461bcd60e51b8152602060048201526039602482015260008051602061482e83398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161073e565b50506000878260200151604051602001611e44929190614494565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b600083815260c9602052604090205463ffffffff1615611ece5760405162461bcd60e51b815260206004820152601a60248201527f42617463682077617320616c7265616479207665726966696564000000000000604482015260640161073e565b6040805180820182526000602080830182815263ffffffff43818116865289855260c99093529285902084518154925115156401000000000264ffffffffff19909316941693909317179091559151909185917f1871c33134a542e0ab9facf7013d27b9ed95e64d299e9919ee091c9cfcb19fa591611f5091879087906144dc565b60405180910390a250505050565b611f666130ed565b611f706000613434565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611fba5760405162461bcd60e51b815260040161073e90614518565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d9061200890859085906004016145dd565b600060405180830381600087803b15801561202257600080fd5b505af1158015612036573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146120865760405162461bcd60e51b815260040161073e90614518565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156120ea57600080fd5b505af11580156120fe573d6000803e3d6000fd5b5050505050565b61210d6130ed565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906120d0908490600401614628565b600054610100900460ff16158080156121795750600054600160ff909116105b806121935750303b158015612193575060005460ff166001145b6121f65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161073e565b6000805460ff191660011790558015612219576000805461ff0019166101001790555b61222282613434565b8015612268576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190614344565b60ff1690508061231057505060408051600081526020810190915290565b6000805b828110156123c557604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a79190614302565b6123b19083614367565b9150806123bd8161437f565b915050612314565b506000816001600160401b038111156123e0576123e0613929565b604051908082528060200260200182016040528015612409578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124929190614344565b60ff1681101561262b57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252a9190614302565b905060005b81811015612616576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c891906143af565b600001518585815181106125de576125de614266565b6001600160a01b0390921660209283029190910190910152836126008161437f565b945050808061260e9061437f565b91505061252f565b505080806126239061437f565b915050612410565b5090949350505050565b61263d6130ed565b6001600160a01b0381166126a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073e565b610ddf81613434565b600083815260c9602052604081205463ffffffff166127025760405162461bcd60e51b815260206004820152601360248201527210985d18da08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161073e565b600084815260c96020526040902054640100000000900460ff16151560011461276d5760405162461bcd60e51b815260206004820152601c60248201527f426174636820686173206e6f74206265656e20726573706f6e64656400000000604482015260640161073e565b60408051602081018a9052908101889052606081018790526bffffffffffffffffffffffff198616608082015260009060940160408051601f19818403018152919052805160208201209091506127c685878387613486565b9a9950505050505050505050565b6065546001600160a01b031633146128695760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161073e565b60005b81811015612b3d5782828281811061288657612886614266565b9050602002810190612898919061463b565b6128a9906040810190602001613ddc565b6001600160a01b03166323b872dd33308686868181106128cb576128cb614266565b90506020028101906128dd919061463b565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015612934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129589190614666565b50600083838381811061296d5761296d614266565b905060200281019061297f919061463b565b612990906040810190602001613ddc565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a229190614302565b9050838383818110612a3657612a36614266565b9050602002810190612a48919061463b565b612a59906040810190602001613ddc565b6001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083878787818110612a9b57612a9b614266565b9050602002810190612aad919061463b565b60400135612abb9190614367565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2a9190614666565b505080612b369061437f565b905061286c565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d9061200890859085906004016146de565b6040805180820190915260008082526020820152612ba861384f565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015612bdb57612bdd565bfe5b5080612c1b5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161073e565b505092915050565b6040805180820190915260008082526020820152612c3f61386d565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015612bdb575080612c1b5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161073e565b612cbf61388b565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080612da760008051602061480e8339815191528661427c565b90505b612db38161349e565b909350915060008051602061480e833981519152828309831415612ded576040805180820190915290815260208101919091529392505050565b60008051602061480e833981519152600182089050612daa565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190612e396138b0565b60005b6002811015612ffe576000612e528260066142e3565b9050848260028110612e6657612e66614266565b60200201515183612e78836000614367565b600c8110612e8857612e88614266565b6020020152848260028110612e9f57612e9f614266565b60200201516020015183826001612eb69190614367565b600c8110612ec657612ec6614266565b6020020152838260028110612edd57612edd614266565b6020020151515183612ef0836002614367565b600c8110612f0057612f00614266565b6020020152838260028110612f1757612f17614266565b6020020151516001602002015183612f30836003614367565b600c8110612f4057612f40614266565b6020020152838260028110612f5757612f57614266565b602002015160200151600060028110612f7257612f72614266565b602002015183612f83836004614367565b600c8110612f9357612f93614266565b6020020152838260028110612faa57612faa614266565b602002015160200151600160028110612fc557612fc5614266565b602002015183612fd6836005614367565b600c8110612fe657612fe6614266565b60200201525080612ff68161437f565b915050612e3c565b506130076138cf565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806130398461328a565b61ffff166001600160401b0381111561305457613054613929565b6040519080825280601f01601f19166020018201604052801561307e576020820181803683370190505b5090506000805b825182108015613096575061010081105b1561262b576001811b9350858416156130dd578060f81b8383815181106130bf576130bf614266565b60200101906001600160f81b031916908160001a9053508160010191505b6130e68161437f565b9050613085565b6033546001600160a01b03163314611f705760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073e565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061320384613520565b9050808360ff166001901b116132815760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161073e565b90505b92915050565b6000805b82156132845761329f60018461440d565b90921691806132ad816147eb565b91505061328e565b60408051808201909152600080825260208201526102008261ffff16106133115760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161073e565b8161ffff1660011415613325575081613284565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061338e57600161ffff871660ff83161c811614156133715761336e8484612c23565b93505b61337b8384612c23565b92506201fffe600192831b169101613341565b509195945050505050565b604080518082019091526000808252602082015281511580156133be57506020820151155b156133dc575050604080518082019091526000808252602082015290565b60405180604001604052808360000151815260200160008051602061480e833981519152846020015161340f919061427c565b6134279060008051602061480e83398151915261440d565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000836134948685856136ad565b1495945050505050565b6000808060008051602061480e833981519152600360008051602061480e8339815191528660008051602061480e833981519152888909090890506000613514827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f5260008051602061480e8339815191526137a7565b91959194509092505050565b6000610100825111156135a95760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161073e565b81516135b757506000919050565b600080836000815181106135cd576135cd614266565b0160200151600160f89190911c81901b92505b84518110156136a4578481815181106135fb576135fb614266565b0160200151600160f89190911c1b91508282116136905760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161073e565b9181179161369d8161437f565b90506135e0565b50909392505050565b6000602084516136bd919061427c565b156137445760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161073e565b8260205b85518111610acb5761375b60028561427c565b61377c57816000528086015160205260406000209150600284049350613795565b8086015160005281602052604060002091506002840493505b6137a0602082614367565b9050613748565b6000806137b26138cf565b6137ba6138ed565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015612bdb5750826138445760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161073e565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061389e61390b565b81526020016138ab61390b565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561396157613961613929565b60405290565b60405161010081016001600160401b038111828210171561396157613961613929565b604051601f8201601f191681016001600160401b03811182821017156139b2576139b2613929565b604052919050565b6000604082840312156139cc57600080fd5b6139d461393f565b9050813581526020820135602082015292915050565b600082601f8301126139fb57600080fd5b613a0361393f565b806040840185811115613a1557600080fd5b845b81811015613a2f578035845260209384019301613a17565b509095945050505050565b600060808284031215613a4c57600080fd5b613a5461393f565b9050613a6083836139ea565b8152613a6f83604084016139ea565b602082015292915050565b6000806000806101208587031215613a9157600080fd5b84359350613aa286602087016139ba565b9250613ab18660608701613a3a565b9150613ac08660e087016139ba565b905092959194509250565b60006001600160401b03821115613ae457613ae4613929565b5060051b60200190565b803563ffffffff8116811461342f57600080fd5b600082601f830112613b1357600080fd5b81356020613b28613b2383613acb565b61398a565b82815260059290921b84018101918181019086841115613b4757600080fd5b8286015b84811015613b6957613b5c81613aee565b8352918301918301613b4b565b509695505050505050565b600082601f830112613b8557600080fd5b81356020613b95613b2383613acb565b82815260069290921b84018101918181019086841115613bb457600080fd5b8286015b84811015613b6957613bca88826139ba565b835291830191604001613bb8565b600082601f830112613be957600080fd5b81356020613bf9613b2383613acb565b82815260059290921b84018101918181019086841115613c1857600080fd5b8286015b84811015613b695780356001600160401b03811115613c3b5760008081fd5b613c498986838b0101613b02565b845250918301918301613c1c565b60006101808284031215613c6a57600080fd5b613c72613967565b905081356001600160401b0380821115613c8b57600080fd5b613c9785838601613b02565b83526020840135915080821115613cad57600080fd5b613cb985838601613b74565b60208401526040840135915080821115613cd257600080fd5b613cde85838601613b74565b6040840152613cf08560608601613a3a565b6060840152613d028560e086016139ba565b6080840152610120840135915080821115613d1c57600080fd5b613d2885838601613b02565b60a0840152610140840135915080821115613d4257600080fd5b613d4e85838601613b02565b60c0840152610160840135915080821115613d6857600080fd5b50613d7584828501613bd8565b60e08301525092915050565b60008060408385031215613d9457600080fd5b8235915060208301356001600160401b03811115613db157600080fd5b613dbd85828601613c57565b9150509250929050565b6001600160a01b0381168114610ddf57600080fd5b600060208284031215613dee57600080fd5b813561328181613dc7565b6020808252825182820181905260009190848201906040850190845b81811015613e3a5783516001600160a01b031683529284019291840191600101613e15565b50909695505050505050565b8015158114610ddf57600080fd5b600060208284031215613e6657600080fd5b813561328181613e46565b600080600060608486031215613e8657600080fd5b83359250613e9660208501613aee565b915060408401356001600160401b03811115613eb157600080fd5b613ebd86828701613c57565b9150509250925092565b600081518084526020808501945080840160005b83811015613f005781516001600160601b031687529582019590820190600101613edb565b509495945050505050565b6040815260008351604080840152613f266080840182613ec7565b90506020850151603f19848303016060850152613f438282613ec7565b925050508260208301529392505050565b600080600060408486031215613f6957600080fd5b8335925060208401356001600160401b0380821115613f8757600080fd5b818601915086601f830112613f9b57600080fd5b813581811115613faa57600080fd5b876020828501011115613fbc57600080fd5b6020830194508093505050509250925092565b60006001600160401b03831115613fe857613fe8613929565b613ffb601f8401601f191660200161398a565b905082815283838301111561400f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261403757600080fd5b61404683833560208501613fcf565b9392505050565b6000806040838503121561406057600080fd5b823561406b81613dc7565b915060208301356001600160401b038082111561408757600080fd5b908401906060828703121561409b57600080fd5b6040516060810181811083821117156140b6576140b6613929565b6040528235828111156140c857600080fd5b6140d488828601614026565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561410a57600080fd5b81356001600160401b0381111561412057600080fd5b8201601f8101841361413157600080fd5b61414084823560208401613fcf565b949350505050565b60006020828403121561415a57600080fd5b5035919050565b600080600080600080600060e0888a03121561417c57600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff19811681146141ae57600080fd5b93506080880135925060a08801356001600160401b038111156141d057600080fd5b6141dc8a828b01614026565b92505060c0880135905092959891949750929550565b6000806020838503121561420557600080fd5b82356001600160401b038082111561421c57600080fd5b818501915085601f83011261423057600080fd5b81358181111561423f57600080fd5b8660208260051b850101111561425457600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052603260045260246000fd5b60008261429957634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b03808316818516818304811182151516156142da576142da61429e565b02949350505050565b60008160001904831182151516156142fd576142fd61429e565b500290565b60006020828403121561431457600080fd5b5051919050565b60006020828403121561432d57600080fd5b81516001600160c01b038116811461328157600080fd5b60006020828403121561435657600080fd5b815160ff8116811461328157600080fd5b6000821982111561437a5761437a61429e565b500190565b60006000198214156143935761439361429e565b5060010190565b6001600160601b0381168114610ddf57600080fd5b6000604082840312156143c157600080fd5b6143c961393f565b82516143d481613dc7565b815260208301516143e48161439a565b60208201529392505050565b60006020828403121561440257600080fd5b815161328181613dc7565b60008282101561441f5761441f61429e565b500390565b60006020828403121561443657600080fd5b815167ffffffffffffffff198116811461328157600080fd5b60006020828403121561446157600080fd5b81516132818161439a565b60006001600160601b038381169083168181101561448c5761448c61429e565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156144cf578151855293820193908201906001016144b3565b5092979650505050505050565b63ffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b818110156145b65760208185018101518683018201520161459a565b818111156145c8576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b038316815260406020820152600082516060604084015261460760a0840182614590565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006140466020830184614590565b60008235609e1983360301811261465157600080fd5b9190910192915050565b803561342f81613dc7565b60006020828403121561467857600080fd5b815161328181613e46565b8183526000602080850194508260005b85811015613f005781356146a681613dc7565b6001600160a01b03168752818301356146be8161439a565b6001600160601b0316878401526040968701969190910190600101614693565b60208082528181018390526000906040808401600586901b8501820187855b888110156147dd57878303603f190184528135368b9003609e1901811261472357600080fd5b8a0160a0813536839003601e1901811261473c57600080fd5b820180356001600160401b0381111561475457600080fd5b8060061b360384131561476657600080fd5b828752614778838801828c8501614683565b9250505061478788830161465b565b6001600160a01b031688860152818701358786015260606147a9818401613aee565b63ffffffff169086015260806147c0838201613aee565b63ffffffff169501949094525092850192908501906001016146fd565b509098975050505050505050565b600061ffff808316818114156148035761480361429e565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212209e2e4505323c24c9b24668179d4ab3476cac23f1eea42f9eae67012de09f024164736f6c634300080c0033","sourceMap":"936:4272:116:-:0;;;1397:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1590:30:74;;;;;1630:42;;;;;1682:44;;;;;1736:32;;;;1623:21:116;1686:14;1714:20;1623:21;1783:15;2276:22:73::1;:20;:22::i;:::-;1894:411:::0;;;;1793:20:67;-1:-1:-1;;;;;1771:42:67;;;-1:-1:-1;;;;;1771:42:67;;;;;1839:20;-1:-1:-1;;;;;1839:34:67;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1823:52:67;;;-1:-1:-1;;;;;1823:52:67;;;;;1902:20;-1:-1:-1;;;;;1902:35:67;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1885:54:67;;;-1:-1:-1;;;;;1885:54:67;;;;;1962:13;;-1:-1:-1;;;;;1962:24:67;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1949:39:67;;;-1:-1:-1;1823:22:116::2;:20;:22::i;:::-;1397:455:::0;;;;936:4272;;5388:279:40;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:40;;2079:2:118;5447:66:40;;;2061:21:118;2118:2;2098:18;;;2091:30;2157:34;2137:18;;;2130:62;-1:-1:-1;;;2208:18:118;;;2201:37;2255:19;;5447:66:40;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:40;5588:15;5573:30;;;;;;5622:28;;2427:36:118;;;5622:28:40;;2415:2:118;2400:18;5622:28:40;;;;;;;5523:138;5388:279::o;14:146:118:-;-1:-1:-1;;;;;104:31:118;;94:42;;84:70;;150:1;147;140:12;84:70;14:146;:::o;165:818::-;366:6;374;382;390;443:3;431:9;422:7;418:23;414:33;411:53;;;460:1;457;450:12;411:53;492:9;486:16;511:46;551:5;511:46;:::i;:::-;626:2;611:18;;605:25;576:5;;-1:-1:-1;639:48:118;605:25;639:48;:::i;:::-;758:2;743:18;;737:25;706:7;;-1:-1:-1;771:48:118;737:25;771:48;:::i;:::-;890:2;875:18;;869:25;838:7;;-1:-1:-1;903:48:118;869:25;903:48;:::i;:::-;165:818;;;;-1:-1:-1;165:818:118;;-1:-1:-1;;165:818:118:o;988:290::-;1082:6;1135:2;1123:9;1114:7;1110:23;1106:32;1103:52;;;1151:1;1148;1141:12;1103:52;1183:9;1177:16;1202:46;1242:5;1202:46;:::i;:::-;1267:5;988:290;-1:-1:-1;;;988:290:118:o;2285:184::-;936:4272:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063c4d66de81161008a578063f2fde38b11610064578063f2fde38b146104e0578063fa534dc014610500578063fc299dee14610520578063fce36c7d1461054057600080fd5b8063c4d66de814610477578063df5cf72314610497578063e481af9d146104cb57600080fd5b80638da5cb5b146103735780639926ee7d14610391578063a364f4da146103b1578063a98fb355146103d1578063b099627e146103f1578063b98d09081461044d57600080fd5b80635c008994116101235780635c008994146102645780635df459461461027757806368304835146102c35780636b3aa72e146102f75780636d14a9871461032a578063715018a61461035e57600080fd5b8063171f1d5b1461016b5780632dd94eba146101a757806333cfb7b7146101c95780633bc28c8c146101f6578063416c7e5e146102165780634ae07c3714610236575b600080fd5b34801561017757600080fd5b5061018b610186366004613a7a565b610560565b6040805192151583529015156020830152015b60405180910390f35b3480156101b357600080fd5b506101c76101c2366004613d81565b6106ea565b005b3480156101d557600080fd5b506101e96101e4366004613ddc565b6108fb565b60405161019e9190613df9565b34801561020257600080fd5b506101c7610211366004613ddc565b610dce565b34801561022257600080fd5b506101c7610231366004613e54565b610de2565b34801561024257600080fd5b50610256610251366004613e71565b610f19565b60405161019e929190613f0b565b6101c7610272366004613f54565b611e6c565b34801561028357600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161019e565b3480156102cf57600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b34801561030357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ab565b34801561033657600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036a57600080fd5b506101c7611f5e565b34801561037f57600080fd5b506033546001600160a01b03166102ab565b34801561039d57600080fd5b506101c76103ac36600461404d565b611f72565b3480156103bd57600080fd5b506101c76103cc366004613ddc565b61203e565b3480156103dd57600080fd5b506101c76103ec3660046140f8565b612105565b3480156103fd57600080fd5b5061043161040c366004614148565b60c96020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040805163ffffffff909316835290151560208301520161019e565b34801561045957600080fd5b506097546104679060ff1681565b604051901515815260200161019e565b34801561048357600080fd5b506101c7610492366004613ddc565b612159565b3480156104a357600080fd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d757600080fd5b506101e961226c565b3480156104ec57600080fd5b506101c76104fb366004613ddc565b612635565b34801561050c57600080fd5b5061046761051b366004614161565b6126ab565b34801561052c57600080fd5b506065546102ab906001600160a01b031681565b34801561054c57600080fd5b506101c761055b3660046141f2565b6127d4565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106105a8576105a8614266565b60200201518951600160200201518a602001516000600281106105cd576105cd614266565b60200201518b602001516001600281106105e9576105e9614266565b602090810291909101518c518d8301516040516106469a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610669919061427c565b90506106dc61068261067b8884612b8c565b8690612c23565b61068a612cb7565b6106d26106c3856106bd604080518082018252600080825260209182015281518083019092526001825260029082015290565b90612b8c565b6106cc8c612d77565b90612c23565b886201d4c0612e07565b909890975095505050505050565b600082815260c9602052604090205463ffffffff166107475760405162461bcd60e51b8152602060048201526014602482015273426174636820646f65736e27742065786973747360601b60448201526064015b60405180910390fd5b600082815260c96020526040902054640100000000900460ff16156107ae5760405162461bcd60e51b815260206004820152601760248201527f426174636820616c726561647920726573706f6e646564000000000000000000604482015260640161073e565b600082815260c960205260408120805464ff000000001981166401000000001790915581906107e590859063ffffffff1685610f19565b91509150604360ff16826020015160008151811061080557610805614266565b602002602001015161081791906142b4565b6001600160601b03166064836000015160008151811061083957610839614266565b60200260200101516001600160601b031661085491906142e3565b10156108ca576040805162461bcd60e51b81526020600482015260248101919091527f5369676e61746f7269657320646f206e6f74206f776e206174206c656173742060448201527f7468726573686f6c642070657263656e74616765206f6620612071756f72756d606482015260840161073e565b60405184907f433ae0767fe95db70a0e30eda902926e41203b9eb97ec5175076fb9e2d35c13e90600090a250505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190614302565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a919061431b565b90506001600160c01b0381161580610ab457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190614344565b60ff16155b15610ad45760408051600080825260208201909252905b50949350505050565b6000610ae8826001600160c01b031661302b565b90506000805b8251811015610bbe577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610b3857610b38614266565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190614302565b610baa9083614367565b915080610bb68161437f565b915050610aee565b506000816001600160401b03811115610bd957610bd9613929565b604051908082528060200260200182016040528015610c02578160200160208202803683370190505b5090506000805b8451811015610dc1576000858281518110610c2657610c26614266565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf9190614302565b905060005b81811015610dab576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d91906143af565b60000151868681518110610d7357610d73614266565b6001600160a01b039092166020928302919091019091015284610d958161437f565b9550508080610da39061437f565b915050610cc4565b5050508080610db99061437f565b915050610c09565b5090979650505050505050565b610dd66130ed565b610ddf81613147565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6491906143f0565b6001600160a01b0316336001600160a01b031614610f105760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161073e565b610ddf816131b0565b60408051808201909152606080825260208201526000826040015151604051806040016040528060018152602001600081525051148015610f7557508260a0015151604051806040016040528060018152602001600081525051145b8015610f9c57508260c0015151604051806040016040528060018152602001600081525051145b8015610fc357508260e0015151604051806040016040528060018152602001600081525051145b61102d5760405162461bcd60e51b8152602060048201526041602482015260008051602061482e83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161073e565b825151602084015151146110a55760405162461bcd60e51b81526020600482015260446024820181905260008051602061482e833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161073e565b4363ffffffff168463ffffffff16106111145760405162461bcd60e51b815260206004820152603c602482015260008051602061482e83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161073e565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156111d5576111d5613929565b6040519080825280602002602001820160405280156111fe578160200160208202803683370190505b5081526020860151516001600160401b0381111561121e5761121e613929565b604051908082528060200260200182016040528015611247578160200160208202803683370190505b50816020018190525060006112f360405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ee9190614344565b6131f7565b905060005b87602001515181101561158e5761133d8860200151828151811061131e5761131e614266565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061135357611353614266565b6020908102919091010152801561141357602083015161137460018361440d565b8151811061138457611384614266565b602002602001015160001c836020015182815181106113a5576113a5614266565b602002602001015160001c11611413576040805162461bcd60e51b815260206004820152602481019190915260008051602061482e83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161073e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061145857611458614266565b60200260200101518b8b60000151858151811061147757611477614266565b60200260200101516040518463ffffffff1660e01b81526004016114b49392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f5919061431b565b6001600160c01b03168360000151828151811061151457611514614266565b60200260200101818152505061157a61067b61154e848660000151858151811061154057611540614266565b60200260200101511661328a565b8a60200151848151811061156457611564614266565b60200260200101516132b590919063ffffffff16565b9450806115868161437f565b9150506112f8565b505061159983613399565b60975490935060ff166000816115b0576000611632565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116329190614302565b905060005b604051806040016040528060018152602001600081525051811015611d3d5782156117c3578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106116bb576116bb614266565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa1580156116ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117239190614302565b61172d9190614367565b116117c35760405162461bcd60e51b8152602060048201526066602482015260008051602061482e83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161073e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac6040518060400160405280600181526020016000815250838151811061181a5761181a614266565b602001015160f81c60f81b60f81c8c8c60a00151858151811061183f5761183f614266565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa15801561189b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bf9190614424565b6001600160401b0319166118e28a60400151838151811061131e5761131e614266565b67ffffffffffffffff19161461197e5760405162461bcd60e51b8152602060048201526061602482015260008051602061482e83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161073e565b6119ae8960400151828151811061199757611997614266565b602002602001015187612c2390919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611a0757611a07614266565b602001015160f81c60f81b60f81c8c8c60c001518581518110611a2c57611a2c614266565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aac919061444f565b85602001518281518110611ac257611ac2614266565b6001600160601b03909216602092830291909101820152850151805182908110611aee57611aee614266565b602002602001015185600001518281518110611b0c57611b0c614266565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611d2857611b9b86600001518281518110611b5657611b56614266565b602002602001015160405180604001604052806001815260200160008152508581518110611b8657611b86614266565b016020015160f81c60ff161c60019081161490565b15611d16577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611bf757611bf7614266565b602001015160f81c60f81b60f81c8e89602001518581518110611c1c57611c1c614266565b60200260200101518f60e001518881518110611c3a57611c3a614266565b60200260200101518781518110611c5357611c53614266565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdb919061444f565b8751805185908110611cef57611cef614266565b60200260200101818151611d03919061446c565b6001600160601b03169052506001909101905b80611d208161437f565b915050611b30565b50508080611d359061437f565b915050611637565b505050600080611d578a868a606001518b60800151610560565b9150915081611dc85760405162461bcd60e51b8152602060048201526043602482015260008051602061482e83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161073e565b80611e295760405162461bcd60e51b8152602060048201526039602482015260008051602061482e83398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161073e565b50506000878260200151604051602001611e44929190614494565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b600083815260c9602052604090205463ffffffff1615611ece5760405162461bcd60e51b815260206004820152601a60248201527f42617463682077617320616c7265616479207665726966696564000000000000604482015260640161073e565b6040805180820182526000602080830182815263ffffffff43818116865289855260c99093529285902084518154925115156401000000000264ffffffffff19909316941693909317179091559151909185917f1871c33134a542e0ab9facf7013d27b9ed95e64d299e9919ee091c9cfcb19fa591611f5091879087906144dc565b60405180910390a250505050565b611f666130ed565b611f706000613434565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611fba5760405162461bcd60e51b815260040161073e90614518565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d9061200890859085906004016145dd565b600060405180830381600087803b15801561202257600080fd5b505af1158015612036573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146120865760405162461bcd60e51b815260040161073e90614518565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156120ea57600080fd5b505af11580156120fe573d6000803e3d6000fd5b5050505050565b61210d6130ed565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906120d0908490600401614628565b600054610100900460ff16158080156121795750600054600160ff909116105b806121935750303b158015612193575060005460ff166001145b6121f65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161073e565b6000805460ff191660011790558015612219576000805461ff0019166101001790555b61222282613434565b8015612268576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190614344565b60ff1690508061231057505060408051600081526020810190915290565b6000805b828110156123c557604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a79190614302565b6123b19083614367565b9150806123bd8161437f565b915050612314565b506000816001600160401b038111156123e0576123e0613929565b604051908082528060200260200182016040528015612409578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124929190614344565b60ff1681101561262b57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252a9190614302565b905060005b81811015612616576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c891906143af565b600001518585815181106125de576125de614266565b6001600160a01b0390921660209283029190910190910152836126008161437f565b945050808061260e9061437f565b91505061252f565b505080806126239061437f565b915050612410565b5090949350505050565b61263d6130ed565b6001600160a01b0381166126a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073e565b610ddf81613434565b600083815260c9602052604081205463ffffffff166127025760405162461bcd60e51b815260206004820152601360248201527210985d18da08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161073e565b600084815260c96020526040902054640100000000900460ff16151560011461276d5760405162461bcd60e51b815260206004820152601c60248201527f426174636820686173206e6f74206265656e20726573706f6e64656400000000604482015260640161073e565b60408051602081018a9052908101889052606081018790526bffffffffffffffffffffffff198616608082015260009060940160408051601f19818403018152919052805160208201209091506127c685878387613486565b9a9950505050505050505050565b6065546001600160a01b031633146128695760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161073e565b60005b81811015612b3d5782828281811061288657612886614266565b9050602002810190612898919061463b565b6128a9906040810190602001613ddc565b6001600160a01b03166323b872dd33308686868181106128cb576128cb614266565b90506020028101906128dd919061463b565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015612934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129589190614666565b50600083838381811061296d5761296d614266565b905060200281019061297f919061463b565b612990906040810190602001613ddc565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a229190614302565b9050838383818110612a3657612a36614266565b9050602002810190612a48919061463b565b612a59906040810190602001613ddc565b6001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083878787818110612a9b57612a9b614266565b9050602002810190612aad919061463b565b60400135612abb9190614367565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2a9190614666565b505080612b369061437f565b905061286c565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d9061200890859085906004016146de565b6040805180820190915260008082526020820152612ba861384f565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015612bdb57612bdd565bfe5b5080612c1b5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161073e565b505092915050565b6040805180820190915260008082526020820152612c3f61386d565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015612bdb575080612c1b5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161073e565b612cbf61388b565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080612da760008051602061480e8339815191528661427c565b90505b612db38161349e565b909350915060008051602061480e833981519152828309831415612ded576040805180820190915290815260208101919091529392505050565b60008051602061480e833981519152600182089050612daa565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190612e396138b0565b60005b6002811015612ffe576000612e528260066142e3565b9050848260028110612e6657612e66614266565b60200201515183612e78836000614367565b600c8110612e8857612e88614266565b6020020152848260028110612e9f57612e9f614266565b60200201516020015183826001612eb69190614367565b600c8110612ec657612ec6614266565b6020020152838260028110612edd57612edd614266565b6020020151515183612ef0836002614367565b600c8110612f0057612f00614266565b6020020152838260028110612f1757612f17614266565b6020020151516001602002015183612f30836003614367565b600c8110612f4057612f40614266565b6020020152838260028110612f5757612f57614266565b602002015160200151600060028110612f7257612f72614266565b602002015183612f83836004614367565b600c8110612f9357612f93614266565b6020020152838260028110612faa57612faa614266565b602002015160200151600160028110612fc557612fc5614266565b602002015183612fd6836005614367565b600c8110612fe657612fe6614266565b60200201525080612ff68161437f565b915050612e3c565b506130076138cf565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806130398461328a565b61ffff166001600160401b0381111561305457613054613929565b6040519080825280601f01601f19166020018201604052801561307e576020820181803683370190505b5090506000805b825182108015613096575061010081105b1561262b576001811b9350858416156130dd578060f81b8383815181106130bf576130bf614266565b60200101906001600160f81b031916908160001a9053508160010191505b6130e68161437f565b9050613085565b6033546001600160a01b03163314611f705760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073e565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061320384613520565b9050808360ff166001901b116132815760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161073e565b90505b92915050565b6000805b82156132845761329f60018461440d565b90921691806132ad816147eb565b91505061328e565b60408051808201909152600080825260208201526102008261ffff16106133115760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161073e565b8161ffff1660011415613325575081613284565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061338e57600161ffff871660ff83161c811614156133715761336e8484612c23565b93505b61337b8384612c23565b92506201fffe600192831b169101613341565b509195945050505050565b604080518082019091526000808252602082015281511580156133be57506020820151155b156133dc575050604080518082019091526000808252602082015290565b60405180604001604052808360000151815260200160008051602061480e833981519152846020015161340f919061427c565b6134279060008051602061480e83398151915261440d565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000836134948685856136ad565b1495945050505050565b6000808060008051602061480e833981519152600360008051602061480e8339815191528660008051602061480e833981519152888909090890506000613514827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f5260008051602061480e8339815191526137a7565b91959194509092505050565b6000610100825111156135a95760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161073e565b81516135b757506000919050565b600080836000815181106135cd576135cd614266565b0160200151600160f89190911c81901b92505b84518110156136a4578481815181106135fb576135fb614266565b0160200151600160f89190911c1b91508282116136905760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161073e565b9181179161369d8161437f565b90506135e0565b50909392505050565b6000602084516136bd919061427c565b156137445760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161073e565b8260205b85518111610acb5761375b60028561427c565b61377c57816000528086015160205260406000209150600284049350613795565b8086015160005281602052604060002091506002840493505b6137a0602082614367565b9050613748565b6000806137b26138cf565b6137ba6138ed565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015612bdb5750826138445760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161073e565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061389e61390b565b81526020016138ab61390b565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561396157613961613929565b60405290565b60405161010081016001600160401b038111828210171561396157613961613929565b604051601f8201601f191681016001600160401b03811182821017156139b2576139b2613929565b604052919050565b6000604082840312156139cc57600080fd5b6139d461393f565b9050813581526020820135602082015292915050565b600082601f8301126139fb57600080fd5b613a0361393f565b806040840185811115613a1557600080fd5b845b81811015613a2f578035845260209384019301613a17565b509095945050505050565b600060808284031215613a4c57600080fd5b613a5461393f565b9050613a6083836139ea565b8152613a6f83604084016139ea565b602082015292915050565b6000806000806101208587031215613a9157600080fd5b84359350613aa286602087016139ba565b9250613ab18660608701613a3a565b9150613ac08660e087016139ba565b905092959194509250565b60006001600160401b03821115613ae457613ae4613929565b5060051b60200190565b803563ffffffff8116811461342f57600080fd5b600082601f830112613b1357600080fd5b81356020613b28613b2383613acb565b61398a565b82815260059290921b84018101918181019086841115613b4757600080fd5b8286015b84811015613b6957613b5c81613aee565b8352918301918301613b4b565b509695505050505050565b600082601f830112613b8557600080fd5b81356020613b95613b2383613acb565b82815260069290921b84018101918181019086841115613bb457600080fd5b8286015b84811015613b6957613bca88826139ba565b835291830191604001613bb8565b600082601f830112613be957600080fd5b81356020613bf9613b2383613acb565b82815260059290921b84018101918181019086841115613c1857600080fd5b8286015b84811015613b695780356001600160401b03811115613c3b5760008081fd5b613c498986838b0101613b02565b845250918301918301613c1c565b60006101808284031215613c6a57600080fd5b613c72613967565b905081356001600160401b0380821115613c8b57600080fd5b613c9785838601613b02565b83526020840135915080821115613cad57600080fd5b613cb985838601613b74565b60208401526040840135915080821115613cd257600080fd5b613cde85838601613b74565b6040840152613cf08560608601613a3a565b6060840152613d028560e086016139ba565b6080840152610120840135915080821115613d1c57600080fd5b613d2885838601613b02565b60a0840152610140840135915080821115613d4257600080fd5b613d4e85838601613b02565b60c0840152610160840135915080821115613d6857600080fd5b50613d7584828501613bd8565b60e08301525092915050565b60008060408385031215613d9457600080fd5b8235915060208301356001600160401b03811115613db157600080fd5b613dbd85828601613c57565b9150509250929050565b6001600160a01b0381168114610ddf57600080fd5b600060208284031215613dee57600080fd5b813561328181613dc7565b6020808252825182820181905260009190848201906040850190845b81811015613e3a5783516001600160a01b031683529284019291840191600101613e15565b50909695505050505050565b8015158114610ddf57600080fd5b600060208284031215613e6657600080fd5b813561328181613e46565b600080600060608486031215613e8657600080fd5b83359250613e9660208501613aee565b915060408401356001600160401b03811115613eb157600080fd5b613ebd86828701613c57565b9150509250925092565b600081518084526020808501945080840160005b83811015613f005781516001600160601b031687529582019590820190600101613edb565b509495945050505050565b6040815260008351604080840152613f266080840182613ec7565b90506020850151603f19848303016060850152613f438282613ec7565b925050508260208301529392505050565b600080600060408486031215613f6957600080fd5b8335925060208401356001600160401b0380821115613f8757600080fd5b818601915086601f830112613f9b57600080fd5b813581811115613faa57600080fd5b876020828501011115613fbc57600080fd5b6020830194508093505050509250925092565b60006001600160401b03831115613fe857613fe8613929565b613ffb601f8401601f191660200161398a565b905082815283838301111561400f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261403757600080fd5b61404683833560208501613fcf565b9392505050565b6000806040838503121561406057600080fd5b823561406b81613dc7565b915060208301356001600160401b038082111561408757600080fd5b908401906060828703121561409b57600080fd5b6040516060810181811083821117156140b6576140b6613929565b6040528235828111156140c857600080fd5b6140d488828601614026565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561410a57600080fd5b81356001600160401b0381111561412057600080fd5b8201601f8101841361413157600080fd5b61414084823560208401613fcf565b949350505050565b60006020828403121561415a57600080fd5b5035919050565b600080600080600080600060e0888a03121561417c57600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff19811681146141ae57600080fd5b93506080880135925060a08801356001600160401b038111156141d057600080fd5b6141dc8a828b01614026565b92505060c0880135905092959891949750929550565b6000806020838503121561420557600080fd5b82356001600160401b038082111561421c57600080fd5b818501915085601f83011261423057600080fd5b81358181111561423f57600080fd5b8660208260051b850101111561425457600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052603260045260246000fd5b60008261429957634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b03808316818516818304811182151516156142da576142da61429e565b02949350505050565b60008160001904831182151516156142fd576142fd61429e565b500290565b60006020828403121561431457600080fd5b5051919050565b60006020828403121561432d57600080fd5b81516001600160c01b038116811461328157600080fd5b60006020828403121561435657600080fd5b815160ff8116811461328157600080fd5b6000821982111561437a5761437a61429e565b500190565b60006000198214156143935761439361429e565b5060010190565b6001600160601b0381168114610ddf57600080fd5b6000604082840312156143c157600080fd5b6143c961393f565b82516143d481613dc7565b815260208301516143e48161439a565b60208201529392505050565b60006020828403121561440257600080fd5b815161328181613dc7565b60008282101561441f5761441f61429e565b500390565b60006020828403121561443657600080fd5b815167ffffffffffffffff198116811461328157600080fd5b60006020828403121561446157600080fd5b81516132818161439a565b60006001600160601b038381169083168181101561448c5761448c61429e565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156144cf578151855293820193908201906001016144b3565b5092979650505050505050565b63ffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b818110156145b65760208185018101518683018201520161459a565b818111156145c8576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b038316815260406020820152600082516060604084015261460760a0840182614590565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006140466020830184614590565b60008235609e1983360301811261465157600080fd5b9190910192915050565b803561342f81613dc7565b60006020828403121561467857600080fd5b815161328181613e46565b8183526000602080850194508260005b85811015613f005781356146a681613dc7565b6001600160a01b03168752818301356146be8161439a565b6001600160601b0316878401526040968701969190910190600101614693565b60208082528181018390526000906040808401600586901b8501820187855b888110156147dd57878303603f190184528135368b9003609e1901811261472357600080fd5b8a0160a0813536839003601e1901811261473c57600080fd5b820180356001600160401b0381111561475457600080fd5b8060061b360384131561476657600080fd5b828752614778838801828c8501614683565b9250505061478788830161465b565b6001600160a01b031688860152818701358786015260606147a9818401613aee565b63ffffffff169086015260806147c0838201613aee565b63ffffffff169501949094525092850192908501906001016146fd565b509098975050505050505050565b600061ffff808316818114156148035761480361429e565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212209e2e4505323c24c9b24668179d4ab3476cac23f1eea42f9eae67012de09f024164736f6c634300080c0033","sourceMap":"936:4272:116:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14547:1081:67;;;;;;;;;;-1:-1:-1;14547:1081:67;;;;;:::i;:::-;;:::i;:::-;;;;3027:14:118;;3020:22;3002:41;;3086:14;;3079:22;3074:2;3059:18;;3052:50;2975:18;14547:1081:67;;;;;;;;2516:1644:116;;;;;;;;;;-1:-1:-1;2516:1644:116;;;;;:::i;:::-;;:::i;:::-;;7697:1470:73;;;;;;;;;;-1:-1:-1;7697:1470:73;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5599:135::-;;;;;;;;;;-1:-1:-1;5599:135:73;;;;;:::i;:::-;;:::i;2232:123:67:-;;;;;;;;;;-1:-1:-1;2232:123:67;;;;;:::i;:::-;;:::i;4387:9678::-;;;;;;;;;;-1:-1:-1;4387:9678:67;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1976:534:116:-;;;;;;:::i;:::-;;:::i;1183:47:67:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11826:32:118;;;11808:51;;11796:2;11781:18;1183:47:67;11637:228:118;1132:45:67;;;;;;;;;;;;;;;9235:111:73;;;;;;;;;;-1:-1:-1;9325:13:73;9235:111;;1069:57:67;;;;;;;;;;;;;;;2071:101:39;;;;;;;;;;;;;:::i;1441:85::-;;;;;;;;;;-1:-1:-1;1513:6:39;;-1:-1:-1;;;;;1513:6:39;1441:85;;4797:260:73;;;;;;;;;;-1:-1:-1;4797:260:73;;;;;:::i;:::-;;:::i;5262:158::-;;;;;;;;;;-1:-1:-1;5262:158:73;;;;;:::i;:::-;;:::i;2721:148::-;;;;;;;;;;-1:-1:-1;2721:148:73;;;;;:::i;:::-;;:::i;219:50:117:-;;;;;;;;;;-1:-1:-1;219:50:117;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;15150:10:118;15138:23;;;15120:42;;15205:14;;15198:22;15193:2;15178:18;;15171:50;15093:18;219:50:117;14954:273:118;1421:32:67;;;;;;;;;;-1:-1:-1;1421:32:67;;;;;;;;;;;15397:14:118;;15390:22;15372:41;;15360:2;15345:18;1421:32:67;15232:187:118;1858:112:116;;;;;;;;;;-1:-1:-1;1858:112:116;;;;;:::i;:::-;;:::i;1236:46:67:-;;;;;;;;;;;;;;;6262:951:73;;;;;;;;;;;;;:::i;2321:198:39:-;;;;;;;;;;-1:-1:-1;2321:198:39;;;;;:::i;:::-;;:::i;4166:1040:116:-;;;;;;;;;;-1:-1:-1;4166:1040:116;;;;;:::i;:::-;;:::i;1212:31:74:-;;;;;;;;;;-1:-1:-1;1212:31:74;;;;-1:-1:-1;;;;;1212:31:74;;;3631:872:73;;;;;;;;;;-1:-1:-1;3631:872:73;;;;;:::i;:::-;;:::i;14547:1081:67:-;14745:22;14769;14878:13;2037:77:88;14980:7:67;15009:3;:5;;;15036:3;:5;;;15063;:7;;;15071:1;15063:10;;;;;;;:::i;:::-;;;;;15095:7;;15103:1;15095:10;;;;15127:5;:7;;;15135:1;15127:10;;;;;;;:::i;:::-;;;;;15159:5;:7;;;15167:1;15159:10;;;;;;;:::i;:::-;;;;;;;;;;15191:7;;15220;;;;14942:303;;;;;;;;;;;17656:19:118;;;17700:2;17691:12;;17684:28;;;;17737:2;17728:12;;17721:28;;;;17774:2;17765:12;;17758:28;;;;17811:3;17802:13;;17795:29;;;;17849:3;17840:13;;17833:29;17887:3;17878:13;;17871:29;17925:3;17916:13;;17909:29;17963:3;17954:13;;17947:29;18001:3;17992:13;;17303:708;14942:303:67;;;;;;;;;;;;;14915:344;;;;;;14894:375;;:394;;;;:::i;:::-;14878:410;-1:-1:-1;15371:250:67;15402:33;15413:21;:3;14878:410;15413:14;:21::i;:::-;15402:5;;:10;:33::i;:::-;15449:22;:20;:22::i;:::-;15485:67;15514:37;15545:5;15514:19;-1:-1:-1;;;;;;;;;;;;;;;;;2392:13:88;;;;;;;;2400:1;2392:13;;2403:1;2392:13;;;;;2313:99;15514:19:67;:30;;:37::i;:::-;15485:23;15500:7;15485:14;:23::i;:::-;:28;;:67::i;:::-;15566:5;1055:7;15371:17;:250::i;:::-;15330:291;;;;-1:-1:-1;14547:1081:67;-1:-1:-1;;;;;;14547:1081:67:o;2516:1644:116:-;2981:29;;;;:12;:29;;;;;:46;;;2960:118;;;;-1:-1:-1;;;2960:118:116;;18564:2:118;2960:118:116;;;18546:21:118;18603:2;18583:18;;;18576:30;-1:-1:-1;;;18622:18:118;;;18615:50;18682:18;;2960:118:116;;;;;;;;;3158:29;;;;:12;:29;;;;;:39;;;;;;:48;3137:118;;;;-1:-1:-1;;;3137:118:116;;18913:2:118;3137:118:116;;;18895:21:118;18952:2;18932:18;;;18925:30;18991:25;18971:18;;;18964:53;19034:18;;3137:118:116;18711:347:118;3137:118:116;3265:29;;;;:12;:29;;;;;:46;;-1:-1:-1;;3265:46:116;;;;;;;:29;;3554:171;;3278:15;;3620:46;;3684:27;3554:15;:171::i;:::-;3446:279;;;;1181:2;3927:90;;:17;:37;;;3965:1;3927:40;;;;;;;;:::i;:::-;;;;;;;:90;;;;:::i;:::-;-1:-1:-1;;;;;3842:175:116;1118:3;3842:17;:38;;;3881:1;3842:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3842:65:116;;;;;:::i;:::-;:175;;3821:286;;;;;-1:-1:-1;;;3821:286:116;;19853:2:118;3821:286:116;;;19835:21:118;19872:18;;;19865:30;;;;19931:34;19911:18;;;19904:62;20002:34;19982:18;;;19975:62;20054:19;;3821:286:116;19651:428:118;3821:286:116;4123:30;;4137:15;;4123:30;;;;;2724:1436;;2516:1644;;:::o;7697:1470:73:-;7854:44;;-1:-1:-1;;;7854:44:73;;-1:-1:-1;;;;;11826:32:118;;;7854:44:73;;;11808:51:118;7801:16:73;;7833:18;;7854:20;:34;;;;11781:18:118;;7854:44:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7933:55;;-1:-1:-1;;;7933:55:73;;;;;20419:25:118;;;7833:65:73;;-1:-1:-1;7908:22:73;;-1:-1:-1;;;;;7933:20:73;:43;;;;20392:18:118;;7933:55:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7908:80;-1:-1:-1;;;;;;8003:19:73;;;;:62;;;8026:20;-1:-1:-1;;;;;8026:32:73;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;8003:62;7999:116;;;8088:16;;;8102:1;8088:16;;;;;;;;;;;-1:-1:-1;8081:23:73;7697:1470;-1:-1:-1;;;;7697:1470:73:o;7999:116::-;8196:36;8235:46;8266:14;-1:-1:-1;;;;;8235:46:73;:30;:46::i;:::-;8196:85;-1:-1:-1;8291:21:73;;8322:173;8346:23;:30;8342:1;:34;8322:173;;;8414:14;-1:-1:-1;;;;;8414:35:73;;8456:23;8480:1;8456:26;;;;;;;;:::i;:::-;;;;;8414:70;;-1:-1:-1;;;;;;8414:70:73;;;;;;;8456:26;;;;;8414:70;;;21170:36:118;21143:18;;8414:70:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8397:87;;;;:::i;:::-;;-1:-1:-1;8378:3:73;;;;:::i;:::-;;;;8322:173;;;;8566:35;8618:13;-1:-1:-1;;;;;8604:28:73;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8604:28:73;;8566:66;;8642:13;8674:9;8669:457;8693:23;:30;8689:1;:34;8669:457;;;8744:12;8765:23;8789:1;8765:26;;;;;;;;:::i;:::-;;;;;8837:43;;-1:-1:-1;;;8837:43:73;;8765:26;;;;;8837:43;;;21170:36:118;;;8765:26:73;-1:-1:-1;;;;;;;;8837:14:73;:35;;;;21143:18:118;;8837:43:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8806:74;;8899:9;8894:222;8918:20;8914:1;:24;8894:222;;;9019:47;;-1:-1:-1;;;9019:47:73;;21879:4:118;21867:17;;9019:47:73;;;21849:36:118;21901:18;;;21894:34;;;9019:14:73;-1:-1:-1;;;;;9019:36:73;;;;21822:18:118;;9019:47:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;8963:18;8982:5;8963:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8963:113:73;;;:25;;;;;;;;;;;:113;9094:7;;;;:::i;:::-;;;;8940:3;;;;;:::i;:::-;;;;8894:222;;;;8730:396;;8725:3;;;;;:::i;:::-;;;;8669:457;;;-1:-1:-1;9142:18:73;;7697:1470;-1:-1:-1;;;;;;;7697:1470:73:o;5599:135::-;1334:13:39;:11;:13::i;:::-;5686:41:73::1;5707:19;5686:20;:41::i;:::-;5599:135:::0;:::o;2232:123:67:-;1537:19;-1:-1:-1;;;;;1537:25:67;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1523:41:67;:10;-1:-1:-1;;;;;1523:41:67;;1502:180;;;;-1:-1:-1;;;1502:180:67;;23037:2:118;1502:180:67;;;23019:21:118;23076:2;23056:18;;;23049:30;23115:34;23095:18;;;23088:62;23186:34;23166:18;;;23159:62;23258:30;23237:19;;;23230:59;23306:19;;1502:180:67;22835:496:118;1502:180:67;2317:31:::1;2342:5;2317:24;:31::i;4387:9678::-:0;-1:-1:-1;;;;;;;;;;;;;;;;;4578:7:67;4651:6;:17;;;:24;4619:21;;;;;;;;;;;;;;;;;:28;:56;4618:142;;;;;4729:6;:23;;;:30;4697:21;;;;;;;;;;;;;;;;;:28;:62;4618:142;:227;;;;;4813:6;:24;;;:31;4781:21;;;;;;;;;;;;;;;;;:28;:63;4618:227;:316;;;;;4898:6;:28;;;:35;4866:21;;;;;;;;;;;;;;;;;:28;:67;4618:316;4597:428;;;;-1:-1:-1;;;4597:428:67;;23538:2:118;4597:428:67;;;23520:21:118;23577:2;23557:18;;;23550:30;-1:-1:-1;;;;;;;;;;;23596:18:118;;;23589:62;23687:34;23667:18;;;23660:62;-1:-1:-1;;;23738:19:118;;;23731:32;23780:19;;4597:428:67;23336:469:118;4597:428:67;5107:35;;:42;5057:23;;;;:30;:92;5036:207;;;;-1:-1:-1;;;5036:207:67;;24012:2:118;5036:207:67;;;23994:21:118;24051:2;24031:18;;;24024:30;;;-1:-1:-1;;;;;;;;;;;24070:18:118;;;24063:62;24161:34;24141:18;;;24134:62;-1:-1:-1;;;24212:19:118;;;24205:35;24257:19;;5036:207:67;23810:472:118;5036:207:67;5305:12;5275:43;;:20;:43;;;5254:150;;;;-1:-1:-1;;;5254:150:67;;24489:2:118;5254:150:67;;;24471:21:118;24528:2;24508:18;;;24501:30;-1:-1:-1;;;;;;;;;;;24547:18:118;;;24540:62;24638:30;24618:18;;;24611:58;24686:19;;5254:150:67;24287:424:118;5254:150:67;5921:19;;;;;;;;-1:-1:-1;5921:19:67;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;6277:21:67;;;;;;;;;;;;;;;;;;6264:42;;;;;;;;;;;5921:19;;6264:42;6277:21;6264:42;;;;5921:19;6264:42;;;;;-1:-1:-1;;6230:31:67;;;;:76;;;;6364:21;;;;;;;;;;;;-1:-1:-1;6364:21:67;;;;;6351:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6316:77:67;;-1:-1:-1;;;;;;;;;;;;;;;;;6499:6:67;:23;;;:30;-1:-1:-1;;;;;6472:67:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:67:67;-1:-1:-1;6445:94:67;;6589:23;;;;:30;-1:-1:-1;;;;;6575:45:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6575:45:67;;6549:10;:23;;:71;;;;6799:27;6829:141;6884:21;;;;;;;;;;;;;;;;;6923:19;-1:-1:-1;;;;;6923:31:67;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6829:37;:141::i;:::-;6799:171;;6990:9;6985:1728;7009:6;:23;;;:30;7005:1;:34;6985:1728;;;7301:82;:6;:44;;;7346:1;7301:47;;;;;;;;:::i;:::-;;;;;;;10534:9:88;;10473:16;10524:20;;;10580:4;10576:13;;;10570:20;10557:34;;;10629:4;10616:18;;;10404:246;7301:82:67;7272:10;:23;;;7296:1;7272:26;;;;;;;;:::i;:::-;;;;;;;;;;:111;7405:6;;7401:305;;7542:23;;;;7566:5;7570:1;7566;:5;:::i;:::-;7542:30;;;;;;;;:::i;:::-;;;;;;;7534:39;;7476:10;:23;;;7500:1;7476:26;;;;;;;;:::i;:::-;;;;;;;7468:35;;:105;7435:252;;;;;-1:-1:-1;;;7435:252:67;;25048:2:118;7435:252:67;;;25030:21:118;25067:18;;;25060:30;;;;-1:-1:-1;;;;;;;;;;;25106:18:118;;;25099:62;25197:34;25177:18;;;25170:62;25249:19;;7435:252:67;24846:428:118;7435:252:67;7846:19;-1:-1:-1;;;;;7846:76:67;;7961:10;:23;;;7985:1;7961:26;;;;;;;;:::i;:::-;;;;;;;8026:20;8079:6;:35;;;8115:1;8079:38;;;;;;;;:::i;:::-;;;;;;;7846:294;;;;;;;;;;;;;;;;25478:25:118;;;25522:10;25568:15;;;25563:2;25548:18;;25541:43;25620:15;25615:2;25600:18;;25593:43;25466:2;25451:18;;25279:363;7846:294:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7816:324:67;:10;:24;;;7841:1;7816:27;;;;;;;;:::i;:::-;;;;;;:324;;;;;8431:267;8461:219;8529:129;8613:19;8583:10;:24;;;8608:1;8583:27;;;;;;;;:::i;:::-;;;;;;;:49;8529:24;:129::i;:::-;8461:6;:23;;;8485:1;8461:26;;;;;;;;:::i;:::-;;;;;;;:42;;:219;;;;:::i;8431:267::-;8425:273;-1:-1:-1;7041:3:67;;;;:::i;:::-;;;;6985:1728;;;;6631:2092;8996:12;:3;:10;:12::i;:::-;9340:20;;8990:18;;-1:-1:-1;9340:20:67;;9311:26;9340:20;9406:97;;9502:1;9406:97;;;9446:10;-1:-1:-1;;;;;9446:35:67;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9374:129;;9523:9;9518:3499;9542:21;;;;;;;;;;;;;;;;;:28;9538:1;:32;9518:3499;;;9754:21;9750:486;;;10045:20;9832:233;;9993:21;9832:19;-1:-1:-1;;;;;9832:43:67;;9911:21;;;;;;;;;;;;;;;;;9933:1;9911:24;;;;;;;;:::i;:::-;;;;;9832:130;;-1:-1:-1;;;;;;9832:130:67;;;;;;;9911:24;;;;;9832:130;;;21170:36:118;21143:18;;9832:130:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:182;;;;:::i;:::-;:233;9799:418;;;;-1:-1:-1;;;9799:418:67;;25849:2:118;9799:418:67;;;25831:21:118;25888:3;25868:18;;;25861:31;-1:-1:-1;;;;;;;;;;;25908:18:118;;;25901:62;25999:34;25979:18;;;25972:62;26071:34;26050:19;;;26043:63;-1:-1:-1;;;26122:19:118;;;26115:37;26169:19;;9799:418:67;25647:547:118;9799:418:67;10504:14;-1:-1:-1;;;;;10504:46:67;;10601:21;;;;;;;;;;;;;;;;;10623:1;10601:24;;;;;;;;:::i;:::-;;;;;;;;;10595:31;;10669:20;10726:6;:23;;;10750:1;10726:26;;;;;;;;:::i;:::-;;;;;;;;;;;10504:275;;-1:-1:-1;;;;;;10504:275:67;;;;;;;26424:4:118;26412:17;;;10504:275:67;;;26394:36:118;10504:275:67;26495:15:118;;;26475:18;;;26468:43;26547:15;26527:18;;;26520:43;26367:18;;10504:275:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10433:346:67;;10441:34;:6;:17;;;10459:1;10441:20;;;;;;;;:::i;:34::-;-1:-1:-1;;10433:346:67;;10404:514;;;;-1:-1:-1;;;10404:514:67;;27075:2:118;10404:514:67;;;27057:21:118;27114:2;27094:18;;;27087:30;-1:-1:-1;;;;;;;;;;;27133:18:118;;;27126:62;27224:34;27204:18;;;27197:62;27296:34;27275:19;;;27268:63;-1:-1:-1;;;27347:19:118;;;27340:32;27389:19;;10404:514:67;26873:541:118;10404:514:67;10942:30;10951:6;:17;;;10969:1;10951:20;;;;;;;;:::i;:::-;;;;;;;10942:3;:8;;:30;;;;:::i;:::-;10936:36;;11126:13;-1:-1:-1;;;;;11126:70:67;;11243:21;;;;;;;;;;;;;;;;;11265:1;11243:24;;;;;;;;:::i;:::-;;;;;;;;;11237:31;;11307:20;11360:6;:24;;;11385:1;11360:27;;;;;;;;:::i;:::-;;;;;;;;;;;11126:284;;-1:-1:-1;;;;;;11126:284:67;;;;;;;26424:4:118;26412:17;;;11126:284:67;;;26394:36:118;11126:284:67;26495:15:118;;;26475:18;;;26468:43;26547:15;26527:18;;;26520:43;26367:18;;11126:284:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11089:11;:31;;;11121:1;11089:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11089:321:67;;;:34;;;;;;;;;;:321;11466:52;;;:55;;11519:1;;11466:55;;;;;;:::i;:::-;;;;;;;11428:11;:32;;;11461:1;11428:35;;;;;;;;:::i;:::-;;;;;;:93;-1:-1:-1;;;;;11428:93:67;;;-1:-1:-1;;;;;11428:93:67;;;;;11608:31;11891:9;11886:1117;11910:6;:23;;;:30;11906:1;:34;11886:1117;;;12107:161;12154:10;:24;;;12179:1;12154:27;;;;;;;;:::i;:::-;;;;;;;12217:21;;;;;;;;;;;;;;;;;12239:1;12217:24;;;;;;;;:::i;:::-;;;;;;;7387:13:89;;;7404:1;7386:19;;;7380:26;;7292:121;12107:161:67;12078:907;;;12356:13;-1:-1:-1;;;;;12356:72:67;;12483:21;;;;;;;;;;;;;;;;;12505:1;12483:24;;;;;;;;:::i;:::-;;;;;;;;;12477:31;;12555:20;12621:10;:23;;;12645:1;12621:26;;;;;;;;:::i;:::-;;;;;;;12688:6;:28;;;12717:1;12688:31;;;;;;;;:::i;:::-;;;;;;;12757:23;12688:126;;;;;;;;:::i;:::-;;;;;;;;;;;12356:489;;-1:-1:-1;;;;;;12356:489:67;;;;;;;27927:4:118;27915:17;;;12356:489:67;;;27897:36:118;12356:489:67;27998:15:118;;;27978:18;;;27971:43;28030:18;;;28023:34;;;;28093:15;28073:18;;;28066:43;27869:19;;12356:489:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12317:32;;:35;;12350:1;;12317:35;;;;;;:::i;:::-;;;;;;:528;;;;;;;:::i;:::-;-1:-1:-1;;;;;12317:528:67;;;-1:-1:-1;12911:25:67;;;;;12078:907;11942:3;;;;:::i;:::-;;;;11886:1117;;;;9577:3440;9572:3;;;;;:::i;:::-;;;;9518:3499;;;;9297:3730;;13104:22;13144:21;13182:170;13234:7;13263:3;13288:6;:12;;;13322:6;:12;;;13182:30;:170::i;:::-;13086:266;;;;13391:17;13366:143;;;;-1:-1:-1;;;13366:143:67;;28564:2:118;13366:143:67;;;28546:21:118;28603:2;28583:18;;;28576:30;-1:-1:-1;;;;;;;;;;;28622:18:118;;;28615:62;28713:34;28693:18;;;28686:62;-1:-1:-1;;;28764:19:118;;;28757:34;28808:19;;13366:143:67;28362:471:118;13366:143:67;13548:16;13523:132;;;;-1:-1:-1;;;13523:132:67;;29040:2:118;13523:132:67;;;29022:21:118;29079:2;29059:18;;;29052:30;-1:-1:-1;;;;;;;;;;;29098:18:118;;;29091:62;29189:27;29169:18;;;29162:55;29234:19;;13523:132:67;28838:421:118;13523:132:67;13036:630;;13740:27;13810:20;13832:10;:23;;;13793:63;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;13793:63:67;;;;;;13770:96;;13793:63;13770:96;;;;14025:11;;13770:96;;-1:-1:-1;4387:9678:67;;-1:-1:-1;;;;;;;4387:9678:67:o;1976:534:116:-;2128:29;;;;:12;:29;;;;;:46;;;:51;2107:124;;;;-1:-1:-1;;;2107:124:116;;30115:2:118;2107:124:116;;;30097:21:118;30154:2;30134:18;;;30127:30;30193:28;30173:18;;;30166:56;30239:18;;2107:124:116;29913:350:118;2107:124:116;-1:-1:-1;;;;;;;;;;;;;;;;2281:50:116;2318:12;2281:50;;;;;2380:29;;;:12;:29;;;;;;;:42;;;;;;;;;;-1:-1:-1;;2380:42:116;;;;;;;;;;;;;2438:65;;-1:-1:-1;;2380:29:116;;2438:65;;;;2486:16;;;;2438:65;:::i;:::-;;;;;;;;2097:413;1976:534;;;:::o;2071:101:39:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;4797:260:73:-;1358:10;-1:-1:-1;;;;;1380:20:73;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:73;;;;;;;:::i;:::-;4986:64:::1;::::0;-1:-1:-1;;;4986:64:73;;-1:-1:-1;;;;;4986:13:73::1;:35;::::0;::::1;::::0;:64:::1;::::0;5022:8;;5032:17;;4986:64:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4797:260:::0;;:::o;5262:158::-;1358:10;-1:-1:-1;;;;;1380:20:73;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:73;;;;;;;:::i;:::-;5364:49:::1;::::0;-1:-1:-1;;;5364:49:73;;-1:-1:-1;;;;;11826:32:118;;;5364:49:73::1;::::0;::::1;11808:51:118::0;5364:13:73::1;:39;::::0;::::1;::::0;11781:18:118;;5364:49:73::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5262:158:::0;:::o;2721:148::-;1334:13:39;:11;:13::i;:::-;2814:48:73::1;::::0;-1:-1:-1;;;2814:48:73;;-1:-1:-1;;;;;2814:13:73::1;:34;::::0;::::1;::::0;:48:::1;::::0;2849:12;;2814:48:::1;;;:::i;1858:112:116:-:0;3111:19:40;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:40;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:40;1476:19:42;:23;;;3219:66:40;;-1:-1:-1;3268:12:40;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:40;;32771:2:118;3157:201:40;;;32753:21:118;32810:2;32790:18;;;32783:30;32849:34;32829:18;;;32822:62;-1:-1:-1;;;32900:18:118;;;32893:44;32954:19;;3157:201:40;32569:410:118;3157:201:40;3368:12;:16;;-1:-1:-1;;3368:16:40;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:40;;;;;3394:65;1930:33:116::1;1949:13;1930:18;:33::i;:::-;3483:14:40::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:40;;;3553:14;;-1:-1:-1;21170:36:118;;3553:14:40;;21158:2:118;21143:18;3553:14:40;;;;;;;3479:99;3101:483;1858:112:116;:::o;6262:951:73:-;6321:16;6349:19;6371:20;-1:-1:-1;;;;;6371:32:73;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6349:56;;;-1:-1:-1;6420:16:73;6416:70;;-1:-1:-1;;6459:16:73;;;6473:1;6459:16;;;;;;;;;6262:951::o;6416:70::-;6496:21;;6527:129;6551:11;6547:1;:15;6527:129;;;6600:45;;-1:-1:-1;;;6600:45:73;;21200:4:118;21188:17;;6600:45:73;;;21170:36:118;6600:14:73;-1:-1:-1;;;;;6600:35:73;;;;21143:18:118;;6600:45:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6583:62;;;;:::i;:::-;;-1:-1:-1;6564:3:73;;;;:::i;:::-;;;;6527:129;;;;6666:35;6718:13;-1:-1:-1;;;;;6704:28:73;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6704:28:73;;6666:66;;6742:13;6774:9;6769:403;6793:20;-1:-1:-1;;;;;6793:32:73;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6789:38;;:1;:38;6769:403;;;6879:45;;-1:-1:-1;;;6879:45:73;;21200:4:118;21188:17;;6879:45:73;;;21170:36:118;6848:28:73;;6879:14;-1:-1:-1;;;;;6879:35:73;;;;21143:18:118;;6879:45:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6848:76;;6943:9;6938:224;6962:20;6958:1;:24;6938:224;;;7063:49;;-1:-1:-1;;;7063:49:73;;21879:4:118;21867:17;;7063:49:73;;;21849:36:118;21901:18;;;21894:34;;;7063:14:73;-1:-1:-1;;;;;7063:36:73;;;;21822:18:118;;7063:49:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;7007:18;7026:5;7007:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7007:115:73;;;:25;;;;;;;;;;;:115;7140:7;;;;:::i;:::-;;;;6984:3;;;;;:::i;:::-;;;;6938:224;;;;6834:338;6829:3;;;;;:::i;:::-;;;;6769:403;;;-1:-1:-1;7188:18:73;;6262:951;-1:-1:-1;;;;6262:951:73:o;2321:198:39:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:39;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:39;;33385:2:118;2401:73:39::1;::::0;::::1;33367:21:118::0;33424:2;33404:18;;;33397:30;33463:34;33443:18;;;33436:62;-1:-1:-1;;;33514:18:118;;;33507:36;33560:19;;2401:73:39::1;33183:402:118::0;2401:73:39::1;2484:28;2503:8;2484:18;:28::i;4166:1040:116:-:0;4486:4;4523:29;;;:12;:29;;;;;:46;;;4502:117;;;;-1:-1:-1;;;4502:117:116;;33792:2:118;4502:117:116;;;33774:21:118;33831:2;33811:18;;;33804:30;-1:-1:-1;;;33850:18:118;;;33843:49;33909:18;;4502:117:116;33590:343:118;4502:117:116;4651:29;;;;:12;:29;;;;;:39;;;;;;:47;;4694:4;4651:47;4630:122;;;;-1:-1:-1;;;4630:122:116;;34140:2:118;4630:122:116;;;34122:21:118;34179:2;34159:18;;;34152:30;34218;34198:18;;;34191:58;34266:18;;4630:122:116;33938:352:118;4630:122:116;4783:163;;;;;;34508:19:118;;;34543:12;;;34536:28;;;34580:12;;;34573:28;;;-1:-1:-1;;34631:44:118;;34617:12;;;34610:66;4763:17:116;;34692:13:118;;4783:163:116;;;-1:-1:-1;;4783:163:116;;;;;;;;;4978:15;;4783:163;4978:15;;;4783:163;;-1:-1:-1;5023:176:116;5069:11;5098:15;4978;5159:26;5023:28;:176::i;:::-;5004:195;4166:1040;-1:-1:-1;;;;;;;;;;4166:1040:116:o;3631:872:73:-;1684:16;;-1:-1:-1;;;;;1684:16:73;1670:10;:30;1649:153;;;;-1:-1:-1;;;1649:153:73;;34918:2:118;1649:153:73;;;34900:21:118;34957:2;34937:18;;;34930:30;34996:34;34976:18;;;34969:62;35067:34;35047:18;;;35040:62;-1:-1:-1;;;35118:19:118;;;35111:43;35171:19;;1649:153:73;34716:480:118;1649:153:73;3815:9:::1;3810:610;3830:29:::0;;::::1;3810:610;;;4029:18;;4048:1;4029:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4029:40:73::1;;4070:10;4090:4;4097:18;;4116:1;4097:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;4029:97:::0;;-1:-1:-1;;;;;;4029:97:73::1;::::0;;;;;;-1:-1:-1;;;;;36214:15:118;;;4029:97:73::1;::::0;::::1;36196:34:118::0;36266:15;;;;36246:18;;;36239:43;4097:28:73::1;;36298:18:118::0;;;36291:34;36131:18;;4029:97:73::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4140:17;4176:18;;4195:1;4176:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;:82;::::0;-1:-1:-1;;;4176:82:73;;4222:4:::1;4176:82;::::0;::::1;36798:34:118::0;-1:-1:-1;;;;;4237:19:73::1;36868:15:118::0;;36848:18;;;36841:43;4176:37:73;;;::::1;::::0;::::1;::::0;36733:18:118;;4176:82:73::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4140:118;;4272:18;;4291:1;4272:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4272:35:73::1;;4333:19;4386:9;4355:18;;4374:1;4355:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;;;:40;;;;:::i;:::-;4272:137;::::0;-1:-1:-1;;;;;;4272:137:73::1;::::0;;;;;;-1:-1:-1;;;;;37087:32:118;;;4272:137:73::1;::::0;::::1;37069:51:118::0;37136:18;;;37129:34;37042:18;;4272:137:73::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3866:554;3861:3;;;;:::i;:::-;;;3810:610;;;-1:-1:-1::0;4430:66:73::1;::::0;-1:-1:-1;;;4430:66:73;;-1:-1:-1;;;;;4430:19:73::1;:46;::::0;::::1;::::0;:66:::1;::::0;4477:18;;;;4430:66:::1;;;:::i;7084:580:88:-:0;-1:-1:-1;;;;;;;;;;;;;;;;;7184:23:88;;:::i;:::-;7228:3;;7217:14;;:8;7252:3;;;;7241:8;;;:14;7265:8;;;;:12;;;-1:-1:-1;;7452:1:88;7446:4;7217:14;7436:1;7429:4;7422:5;7418:16;7407:53;7396:64;-1:-1:-1;7396:64:88;7557:48;;;;7530:75;;7557:48;7582:9;7530:75;;7632:7;7624:33;;;;-1:-1:-1;;;7624:33:88;;40323:2:118;7624:33:88;;;40305:21:118;40362:2;40342:18;;;40335:30;-1:-1:-1;;;40381:18:118;;;40374:43;40434:18;;7624:33:88;40121:337:118;7624:33:88;7174:490;;7084:580;;;;:::o;4823:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4926:23:88;;:::i;:::-;4970:4;;4959:15;;:8;4995:4;;;;4984:8;;;:15;5020:4;;5009:8;;;;:15;;;;5045:4;;;;5034:8;;;:15;-1:-1:-1;;5225:1:88;5219:4;4959:15;5209:1;5202:4;5195:5;5191:16;5180:53;5169:64;-1:-1:-1;5169:64:88;5330:48;;;;5303:75;5406:7;5398:33;;;;-1:-1:-1;;;5398:33:88;;40665:2:118;5398:33:88;;;40647:21:118;40704:2;40684:18;;;40677:30;-1:-1:-1;;;40723:18:118;;;40716:43;40776:18;;5398:33:88;40463:337:118;4070:128:88;4119:14;;:::i;:::-;-1:-1:-1;4152:39:88;;;;;;;;3635:77;4152:39;;;;;;3752:77;4152:39;;;;;;;;;;;;;;3869:77;4152:39;;3986:77;4152:39;;;;;;;;;;;;;;;4070:128::o;11044:451::-;-1:-1:-1;;;;;;;;;;;;;;;;;11123:12:88;;;11185:24;-1:-1:-1;;;;;;;;;;;11193:2:88;11185:24;:::i;:::-;11173:36;;11220:239;11259:13;11270:1;11259:10;:13::i;:::-;11247:25;;-1:-1:-1;11247:25:88;-1:-1:-1;;;;;;;;;;;;11336:1:88;11333;11326:24;11318:4;:32;11314:92;;;11378:13;;;;;;;;;;;;;;;;;;;;11044:451;-1:-1:-1;;;11044:451:88:o;11314:92::-;-1:-1:-1;;;;;;;;;;;11434:1:88;11431;11424:24;11420:28;;11220:239;;9189:1112;9397:31;;;;;;;;;;;;;;;;;;9438;;;;;;;;;;;;;;;;9375:4;;;;9397:31;9480:24;;:::i;:::-;9520:9;9515:302;9539:1;9535;:5;9515:302;;;9561:9;9573:5;:1;9577;9573:5;:::i;:::-;9561:17;;9607:2;9610:1;9607:5;;;;;;;:::i;:::-;;;;;:7;9592:5;9598;:1;9607:7;9598:5;:::i;:::-;9592:12;;;;;;;:::i;:::-;;;;:22;9643:2;9646:1;9643:5;;;;;;;:::i;:::-;;;;;:7;;;9628:5;9634:1;9638;9634:5;;;;:::i;:::-;9628:12;;;;;;;:::i;:::-;;;;:22;9679:2;9682:1;9679:5;;;;;;;:::i;:::-;;;;;:7;:10;9664:5;9670;:1;9674;9670:5;:::i;:::-;9664:12;;;;;;;:::i;:::-;;;;:25;9718:2;9721:1;9718:5;;;;;;;:::i;:::-;;;;;:7;9726:1;9718:10;;;;9703:5;9709;:1;9713;9709:5;:::i;:::-;9703:12;;;;;;;:::i;:::-;;;;:25;9757:2;9760:1;9757:5;;;;;;;:::i;:::-;;;;;:7;;;9765:1;9757:10;;;;;;;:::i;:::-;;;;;9742:5;9748;:1;9752;9748:5;:::i;:::-;9742:12;;;;;;;:::i;:::-;;;;:25;9796:2;9799:1;9796:5;;;;;;;:::i;:::-;;;;;:7;;;9804:1;9796:10;;;;;;;:::i;:::-;;;;;9781:5;9787;:1;9791;9787:5;:::i;:::-;9781:12;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;9542:3:88;;;;:::i;:::-;;;;9515:302;;;;9827:21;;:::i;:::-;9858:12;10032:4;10027:3;10012:13;10005:5;10002:1;9990:10;9979:58;10282:6;;9968:69;;10282:11;;;;-1:-1:-1;10265:29:88;;-1:-1:-1;;;;;;;;;;9189:1112:88:o;5465:1257:89:-;5532:12;5650:15;5728:23;5764:20;5777:6;5764:12;:20::i;:::-;5754:31;;-1:-1:-1;;;;;5754:31:89;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5754:31:89;;5728:57;;5841:18;6093:9;6088:601;6122:10;:17;6109:10;:30;6108:45;;;;;6149:3;6145:1;:7;6108:45;6088:601;;;6252:1;:6;;;-1:-1:-1;6339:16:89;;;:21;6335:344;;6524:1;6511:16;;6486:10;6497;6486:22;;;;;;;;:::i;:::-;;;;:41;-1:-1:-1;;;;;6486:41:89;;;;;;;;;6650:12;;;;;6335:344;6155:3;;;:::i;:::-;;;6088:601;;1599:130:39;1513:6;;-1:-1:-1;;;;;1513:6:39;929:10:43;1662:23:39;1654:68;;;;-1:-1:-1;;;1654:68:39;;41007:2:118;1654:68:39;;;40989:21:118;;;41026:18;;;41019:30;41085:34;41065:18;;;41058:62;41137:18;;1654:68:39;40805:356:118;5740:200:73;5847:16;;5823:62;;;-1:-1:-1;;;;;5847:16:73;;;36798:34:118;;36868:15;;;36863:2;36848:18;;36841:43;5823:62:73;;36733:18:118;5823:62:73;;;;;;;5895:16;:38;;-1:-1:-1;;;;;;5895:38:73;-1:-1:-1;;;;;5895:38:73;;;;;;;;;;5740:200::o;15634:148:67:-;15699:20;:28;;-1:-1:-1;;15699:28:67;;;;;;;;;;15742:33;;15372:41:118;;;15742:33:67;;15360:2:118;15345:18;15742:33:67;;;;;;;15634:148;:::o;3308:360:89:-;3419:7;3438:14;3455:44;3481:17;3455:25;:44::i;:::-;3438:61;;3541:6;3524:13;3519:18;;:1;:18;;3518:29;3510:127;;;;-1:-1:-1;;;3510:127:89;;41368:2:118;3510:127:89;;;41350:21:118;41407:2;41387:18;;;41380:30;41446:34;41426:18;;;41419:62;41517:33;41497:18;;;41490:61;41568:19;;3510:127:89;41166:427:118;3510:127:89;3655:6;-1:-1:-1;3308:360:89;;;;;:::o;6797:406::-;6853:6;;6897:209;6904:5;;6897:209;;6931:5;6935:1;6931;:5;:::i;:::-;6925:12;;;;7020:7;;;;:::i;:::-;;;;6897:209;;5698:1197:88;-1:-1:-1;;;;;;;;;;;;;;;;;5824:4:88;5820:1;:8;;;5812:37;;;;-1:-1:-1;;;5812:37:88;;42002:2:118;5812:37:88;;;41984:21:118;42041:2;42021:18;;;42014:30;-1:-1:-1;;;42060:18:118;;;42053:46;42116:18;;5812:37:88;41800:340:118;5812:37:88;5893:1;:6;;5898:1;5893:6;5890:44;;;-1:-1:-1;5922:1:88;5915:8;;5890:44;6016:19;;;;;;;;;5989:24;6016:19;;;;;;;;;6145:1;;6208;;6337:481;6348:1;6343:6;;:1;:6;;;6337:481;;6493:1;6483:6;;;;;;;6482:12;;:17;6478:84;;;6529:14;6534:3;6539;6529:4;:14::i;:::-;6523:20;;6478:84;6644:14;6649:3;6654;6644:4;:14::i;:::-;6638:20;-1:-1:-1;6765:7:88;6771:1;6765:7;;;;;6790:3;6337:481;;;-1:-1:-1;6885:3:88;;5698:1197;-1:-1:-1;;;;;5698:1197:88:o;4461:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4600:3:88;;:8;:20;;;;-1:-1:-1;4612:3:88;;;;:8;4600:20;4596:154;;;-1:-1:-1;;4643:13:88;;;;;;;;;-1:-1:-1;4643:13:88;;;;;;;;4461:295::o;4596:154::-;4694:45;;;;;;;;4702:1;:3;;;4694:45;;;;-1:-1:-1;;;;;;;;;;;4721:1:88;:3;;;:16;;;;:::i;:::-;4707:31;;-1:-1:-1;;;;;;;;;;;4707:31:88;:::i;:::-;4694:45;;4687:52;4461:295;-1:-1:-1;;4461:295:88:o;4596:154::-;4461:295;;;:::o;2673:187:39:-;2765:6;;;-1:-1:-1;;;;;2781:17:39;;;-1:-1:-1;;;;;;2781:17:39;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;1240:240:27:-;1395:4;1469;1418:47;1446:5;1453:4;1459:5;1418:27;:47::i;:::-;:55;;1240:240;-1:-1:-1;;;;;1240:240:27:o;11616:433:88:-;11670:7;;;-1:-1:-1;;;;;;;;;;;11801:1:88;-1:-1:-1;;;;;;;;;;;11785:1:88;-1:-1:-1;;;;;;;;;;;11769:1:88;11766;11759:24;11752:47;11745:70;11730:85;;11912:9;11924:91;11931:4;11937:65;-1:-1:-1;;;;;;;;;;;11924:6:88;:91::i;:::-;12034:4;;11912:103;;-1:-1:-1;11616:433:88;;-1:-1:-1;;;11616:433:88:o;1188:1693:89:-;1278:7;571:3;1409:17;:24;:49;;1401:142;;;;-1:-1:-1;;;1401:142:89;;42347:2:118;1401:142:89;;;42329:21:118;42386:2;42366:18;;;42359:30;;;42425:34;42405:18;;;42398:62;42496:34;42476:18;;;42469:62;-1:-1:-1;;;42547:19:118;;;42540:35;42592:19;;1401:142:89;42145:472:118;1401:142:89;1619:24;;1615:77;;-1:-1:-1;1679:1:89;;1188:1693;-1:-1:-1;1188:1693:89:o;1615:77::-;1770:14;1873:15;2180:17;2198:1;2180:20;;;;;;;;:::i;:::-;;;;;2169:1;2180:20;;;;;2169:32;;;;-1:-1:-1;2284:568:89;2308:17;:24;2304:1;:28;2284:568;;;2480:17;2498:1;2480:20;;;;;;;;:::i;:::-;;;;;2469:1;2480:20;;;;;2469:32;;-1:-1:-1;2665:16:89;;;2657:100;;;;-1:-1:-1;;;2657:100:89;;42824:2:118;2657:100:89;;;42806:21:118;42863:2;42843:18;;;42836:30;42902:34;42882:18;;;42875:62;42973:34;42953:18;;;42946:62;-1:-1:-1;;;43024:19:118;;;43017:38;43072:19;;2657:100:89;42622:475:118;2657:100:89;2824:16;;;;2334:3;;;:::i;:::-;;;2284:568;;;-1:-1:-1;2868:6:89;;1188:1693;-1:-1:-1;;;1188:1693:89:o;1997:1172:27:-;2136:7;2191:2;2176:5;:12;:17;;;;:::i;:::-;:22;2155:144;;;;-1:-1:-1;;;2155:144:27;;43304:2:118;2155:144:27;;;43286:21:118;43343:2;43323:18;;;43316:30;43382:34;43362:18;;;43355:62;43453:34;43433:18;;;43426:62;-1:-1:-1;;;43504:19:118;;;43497:42;43556:19;;2155:144:27;43102:479:118;2155:144:27;2332:4;2363:2;2346:788;2372:5;:12;2367:1;:17;2346:788;;2413:9;2421:1;2413:5;:9;:::i;:::-;2409:715;;2572:12;2566:4;2559:26;2636:1;2629:5;2625:13;2619:20;2613:4;2606:34;2693:4;2687;2677:21;2661:37;;2739:1;2732:5;2728:13;2719:22;;2409:715;;;2940:1;2933:5;2929:13;2923:20;2917:4;2910:34;2978:12;2972:4;2965:26;3044:4;3038;3028:21;3012:37;;3090:1;3083:5;3079:13;3070:22;;2409:715;2386:7;2391:2;2386:7;;:::i;:::-;;;2346:788;;12055:874:88;12146:14;12172:12;12194:24;;:::i;:::-;12228:20;;:::i;:::-;12269:4;12258:15;;;12341:8;;;:15;;;12425:8;;;:15;;;12509:8;;;:16;;;12535:8;;;:20;;;12565:8;;;:19;;;12673:6;12667:4;12258:15;12571:1;12650:4;12643:5;12639:16;12628:58;12617:69;-1:-1:-1;12617:69:88;12783:48;;;;12756:75;12858:7;12850:46;;;;-1:-1:-1;;;12850:46:88;;43788:2:118;12850:46:88;;;43770:21:118;43827:2;43807:18;;;43800:30;43866:28;43846:18;;;43839:56;43912:18;;12850:46:88;43586:350:118;12850:46:88;-1:-1:-1;12913:9:88;;;-1:-1:-1;;;;;12055:874:88:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:127:118:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:118;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;664:255::-;736:2;730:9;778:6;766:19;;-1:-1:-1;;;;;800:34:118;;836:22;;;797:62;794:88;;;862:18;;:::i;924:275::-;995:2;989:9;1060:2;1041:13;;-1:-1:-1;;1037:27:118;1025:40;;-1:-1:-1;;;;;1080:34:118;;1116:22;;;1077:62;1074:88;;;1142:18;;:::i;:::-;1178:2;1171:22;924:275;;-1:-1:-1;924:275:118:o;1204:282::-;1258:5;1306:4;1294:9;1289:3;1285:19;1281:30;1278:50;;;1324:1;1321;1314:12;1278:50;1346:22;;:::i;:::-;1337:31;;1404:9;1391:23;1384:5;1377:38;1475:2;1464:9;1460:18;1447:32;1442:2;1435:5;1431:14;1424:56;1204:282;;;;:::o;1491:484::-;1541:5;1594:3;1587:4;1579:6;1575:17;1571:27;1561:55;;1612:1;1609;1602:12;1561:55;1636:22;;:::i;:::-;1680:3;1718:2;1710:6;1706:15;1744:3;1736:6;1733:15;1730:35;;;1761:1;1758;1751:12;1730:35;1785:6;1800:146;1816:6;1811:3;1808:15;1800:146;;;1884:17;;1872:30;;1931:4;1922:14;;;;1833;1800:146;;;-1:-1:-1;1964:5:118;;1491:484;-1:-1:-1;;;;;1491:484:118:o;1980:320::-;2034:5;2082:4;2070:9;2065:3;2061:19;2057:30;2054:50;;;2100:1;2097;2090:12;2054:50;2122:22;;:::i;:::-;2113:31;;2167:40;2203:3;2192:9;2167:40;:::i;:::-;2160:5;2153:55;2242:51;2289:3;2282:4;2271:9;2267:20;2242:51;:::i;:::-;2235:4;2228:5;2224:16;2217:77;1980:320;;;;:::o;2305:530::-;2469:6;2477;2485;2493;2546:3;2534:9;2525:7;2521:23;2517:33;2514:53;;;2563:1;2560;2553:12;2514:53;2599:9;2586:23;2576:33;;2628:54;2674:7;2669:2;2658:9;2654:18;2628:54;:::i;:::-;2618:64;;2701:54;2747:7;2742:2;2731:9;2727:18;2701:54;:::i;:::-;2691:64;;2774:55;2821:7;2815:3;2804:9;2800:19;2774:55;:::i;:::-;2764:65;;2305:530;;;;;;;:::o;3113:182::-;3172:4;-1:-1:-1;;;;;3197:6:118;3194:30;3191:56;;;3227:18;;:::i;:::-;-1:-1:-1;3272:1:118;3268:14;3284:4;3264:25;;3113:182::o;3300:163::-;3367:20;;3427:10;3416:22;;3406:33;;3396:61;;3453:1;3450;3443:12;3468:665;3521:5;3574:3;3567:4;3559:6;3555:17;3551:27;3541:55;;3592:1;3589;3582:12;3541:55;3628:6;3615:20;3654:4;3678:59;3694:42;3733:2;3694:42;:::i;:::-;3678:59;:::i;:::-;3771:15;;;3857:1;3853:10;;;;3841:23;;3837:32;;;3802:12;;;;3881:15;;;3878:35;;;3909:1;3906;3899:12;3878:35;3945:2;3937:6;3933:15;3957:147;3973:6;3968:3;3965:15;3957:147;;;4039:22;4057:3;4039:22;:::i;:::-;4027:35;;4082:12;;;;3990;;3957:147;;;-1:-1:-1;4122:5:118;3468:665;-1:-1:-1;;;;;;3468:665:118:o;4138:688::-;4199:5;4252:3;4245:4;4237:6;4233:17;4229:27;4219:55;;4270:1;4267;4260:12;4219:55;4306:6;4293:20;4332:4;4356:59;4372:42;4411:2;4372:42;:::i;4356:59::-;4449:15;;;4535:1;4531:10;;;;4519:23;;4515:32;;;4480:12;;;;4559:15;;;4556:35;;;4587:1;4584;4577:12;4556:35;4623:2;4615:6;4611:15;4635:162;4651:6;4646:3;4643:15;4635:162;;;4719:35;4750:3;4745;4719:35;:::i;:::-;4707:48;;4775:12;;;;4677:4;4668:14;4635:162;;4831:907;4894:5;4947:3;4940:4;4932:6;4928:17;4924:27;4914:55;;4965:1;4962;4955:12;4914:55;5001:6;4988:20;5027:4;5051:59;5067:42;5106:2;5067:42;:::i;5051:59::-;5144:15;;;5230:1;5226:10;;;;5214:23;;5210:32;;;5175:12;;;;5254:15;;;5251:35;;;5282:1;5279;5272:12;5251:35;5318:2;5310:6;5306:15;5330:379;5346:6;5341:3;5338:15;5330:379;;;5432:3;5419:17;-1:-1:-1;;;;;5455:11:118;5452:35;5449:125;;;5528:1;5557:2;5553;5546:14;5449:125;5599:67;5662:3;5657:2;5643:11;5635:6;5631:24;5627:33;5599:67;:::i;:::-;5587:80;;-1:-1:-1;5687:12:118;;;;5363;;5330:379;;5743:1566;5817:5;5865:6;5853:9;5848:3;5844:19;5840:32;5837:52;;;5885:1;5882;5875:12;5837:52;5907:22;;:::i;:::-;5898:31;;5965:9;5952:23;-1:-1:-1;;;;;6035:2:118;6027:6;6024:14;6021:34;;;6051:1;6048;6041:12;6021:34;6078:56;6130:3;6121:6;6110:9;6106:22;6078:56;:::i;:::-;6071:5;6064:71;6188:2;6177:9;6173:18;6160:32;6144:48;;6217:2;6207:8;6204:16;6201:36;;;6233:1;6230;6223:12;6201:36;6269:66;6331:3;6320:8;6309:9;6305:24;6269:66;:::i;:::-;6264:2;6257:5;6253:14;6246:90;6389:2;6378:9;6374:18;6361:32;6345:48;;6418:2;6408:8;6405:16;6402:36;;;6434:1;6431;6424:12;6402:36;6470:66;6532:3;6521:8;6510:9;6506:24;6470:66;:::i;:::-;6465:2;6458:5;6454:14;6447:90;6569:50;6615:3;6610:2;6599:9;6595:18;6569:50;:::i;:::-;6564:2;6557:5;6553:14;6546:74;6654:51;6701:3;6695;6684:9;6680:19;6654:51;:::i;:::-;6647:4;6640:5;6636:16;6629:77;6759:3;6748:9;6744:19;6731:33;6715:49;;6789:2;6779:8;6776:16;6773:36;;;6805:1;6802;6795:12;6773:36;6843:58;6897:3;6886:8;6875:9;6871:24;6843:58;:::i;:::-;6836:4;6829:5;6825:16;6818:84;6955:3;6944:9;6940:19;6927:33;6911:49;;6985:2;6975:8;6972:16;6969:36;;;7001:1;6998;6991:12;6969:36;7039:58;7093:3;7082:8;7071:9;7067:24;7039:58;:::i;:::-;7032:4;7025:5;7021:16;7014:84;7151:3;7140:9;7136:19;7123:33;7107:49;;7181:2;7171:8;7168:16;7165:36;;;7197:1;7194;7187:12;7165:36;;7234:68;7298:3;7287:8;7276:9;7272:24;7234:68;:::i;:::-;7228:3;7221:5;7217:15;7210:93;;5743:1566;;;;:::o;7314:454::-;7428:6;7436;7489:2;7477:9;7468:7;7464:23;7460:32;7457:52;;;7505:1;7502;7495:12;7457:52;7541:9;7528:23;7518:33;;7602:2;7591:9;7587:18;7574:32;-1:-1:-1;;;;;7621:6:118;7618:30;7615:50;;;7661:1;7658;7651:12;7615:50;7684:78;7754:7;7745:6;7734:9;7730:22;7684:78;:::i;:::-;7674:88;;;7314:454;;;;;:::o;7773:131::-;-1:-1:-1;;;;;7848:31:118;;7838:42;;7828:70;;7894:1;7891;7884:12;7909:247;7968:6;8021:2;8009:9;8000:7;7996:23;7992:32;7989:52;;;8037:1;8034;8027:12;7989:52;8076:9;8063:23;8095:31;8120:5;8095:31;:::i;8161:658::-;8332:2;8384:21;;;8454:13;;8357:18;;;8476:22;;;8303:4;;8332:2;8555:15;;;;8529:2;8514:18;;;8303:4;8598:195;8612:6;8609:1;8606:13;8598:195;;;8677:13;;-1:-1:-1;;;;;8673:39:118;8661:52;;8768:15;;;;8733:12;;;;8709:1;8627:9;8598:195;;;-1:-1:-1;8810:3:118;;8161:658;-1:-1:-1;;;;;;8161:658:118:o;8824:118::-;8910:5;8903:13;8896:21;8889:5;8886:32;8876:60;;8932:1;8929;8922:12;8947:241;9003:6;9056:2;9044:9;9035:7;9031:23;9027:32;9024:52;;;9072:1;9069;9062:12;9024:52;9111:9;9098:23;9130:28;9152:5;9130:28;:::i;9193:526::-;9315:6;9323;9331;9384:2;9372:9;9363:7;9359:23;9355:32;9352:52;;;9400:1;9397;9390:12;9352:52;9436:9;9423:23;9413:33;;9465:37;9498:2;9487:9;9483:18;9465:37;:::i;:::-;9455:47;;9553:2;9542:9;9538:18;9525:32;-1:-1:-1;;;;;9572:6:118;9569:30;9566:50;;;9612:1;9609;9602:12;9566:50;9635:78;9705:7;9696:6;9685:9;9681:22;9635:78;:::i;:::-;9625:88;;;9193:526;;;;;:::o;9724:467::-;9776:3;9814:5;9808:12;9841:6;9836:3;9829:19;9867:4;9896:2;9891:3;9887:12;9880:19;;9933:2;9926:5;9922:14;9954:1;9964:202;9978:6;9975:1;9972:13;9964:202;;;10043:13;;-1:-1:-1;;;;;10039:46:118;10027:59;;10106:12;;;;10141:15;;;;10000:1;9993:9;9964:202;;;-1:-1:-1;10182:3:118;;9724:467;-1:-1:-1;;;;;9724:467:118:o;10196:645::-;10425:2;10414:9;10407:21;10388:4;10463:6;10457:13;10506:2;10501;10490:9;10486:18;10479:30;10532:62;10589:3;10578:9;10574:19;10560:12;10532:62;:::i;:::-;10518:76;;10643:4;10635:6;10631:17;10625:24;10717:2;10713:7;10701:9;10693:6;10689:22;10685:36;10680:2;10669:9;10665:18;10658:64;10739:51;10783:6;10767:14;10739:51;:::i;:::-;10731:59;;;;10828:6;10821:4;10810:9;10806:20;10799:36;10196:645;;;;;:::o;10846:660::-;10926:6;10934;10942;10995:2;10983:9;10974:7;10970:23;10966:32;10963:52;;;11011:1;11008;11001:12;10963:52;11047:9;11034:23;11024:33;;11108:2;11097:9;11093:18;11080:32;-1:-1:-1;;;;;11172:2:118;11164:6;11161:14;11158:34;;;11188:1;11185;11178:12;11158:34;11226:6;11215:9;11211:22;11201:32;;11271:7;11264:4;11260:2;11256:13;11252:27;11242:55;;11293:1;11290;11283:12;11242:55;11333:2;11320:16;11359:2;11351:6;11348:14;11345:34;;;11375:1;11372;11365:12;11345:34;11420:7;11415:2;11406:6;11402:2;11398:15;11394:24;11391:37;11388:57;;;11441:1;11438;11431:12;11388:57;11472:2;11468;11464:11;11454:21;;11494:6;11484:16;;;;;10846:660;;;;;:::o;12548:406::-;12612:5;-1:-1:-1;;;;;12638:6:118;12635:30;12632:56;;;12668:18;;:::i;:::-;12706:57;12751:2;12730:15;;-1:-1:-1;;12726:29:118;12757:4;12722:40;12706:57;:::i;:::-;12697:66;;12786:6;12779:5;12772:21;12826:3;12817:6;12812:3;12808:16;12805:25;12802:45;;;12843:1;12840;12833:12;12802:45;12892:6;12887:3;12880:4;12873:5;12869:16;12856:43;12946:1;12939:4;12930:6;12923:5;12919:18;12915:29;12908:40;12548:406;;;;;:::o;12959:220::-;13001:5;13054:3;13047:4;13039:6;13035:17;13031:27;13021:55;;13072:1;13069;13062:12;13021:55;13094:79;13169:3;13160:6;13147:20;13140:4;13132:6;13128:17;13094:79;:::i;:::-;13085:88;12959:220;-1:-1:-1;;;12959:220:118:o;13184:1026::-;13296:6;13304;13357:2;13345:9;13336:7;13332:23;13328:32;13325:52;;;13373:1;13370;13363:12;13325:52;13412:9;13399:23;13431:31;13456:5;13431:31;:::i;:::-;13481:5;-1:-1:-1;13537:2:118;13522:18;;13509:32;-1:-1:-1;;;;;13590:14:118;;;13587:34;;;13617:1;13614;13607:12;13587:34;13640:22;;;;13696:4;13678:16;;;13674:27;13671:47;;;13714:1;13711;13704:12;13671:47;13747:2;13741:9;13789:4;13781:6;13777:17;13844:6;13832:10;13829:22;13824:2;13812:10;13809:18;13806:46;13803:72;;;13855:18;;:::i;:::-;13891:2;13884:22;13931:16;;13959;;;13956:36;;;13988:1;13985;13978:12;13956:36;14016:44;14052:7;14041:8;14037:2;14033:17;14016:44;:::i;:::-;14008:6;14001:60;;14115:2;14111;14107:11;14094:25;14089:2;14081:6;14077:15;14070:50;14174:2;14170;14166:11;14153:25;14148:2;14140:6;14136:15;14129:50;14198:6;14188:16;;;;;13184:1026;;;;;:::o;14215:450::-;14284:6;14337:2;14325:9;14316:7;14312:23;14308:32;14305:52;;;14353:1;14350;14343:12;14305:52;14393:9;14380:23;-1:-1:-1;;;;;14418:6:118;14415:30;14412:50;;;14458:1;14455;14448:12;14412:50;14481:22;;14534:4;14526:13;;14522:27;-1:-1:-1;14512:55:118;;14563:1;14560;14553:12;14512:55;14586:73;14651:7;14646:2;14633:16;14628:2;14624;14620:11;14586:73;:::i;:::-;14576:83;14215:450;-1:-1:-1;;;;14215:450:118:o;14670:180::-;14729:6;14782:2;14770:9;14761:7;14757:23;14753:32;14750:52;;;14798:1;14795;14788:12;14750:52;-1:-1:-1;14821:23:118;;14670:180;-1:-1:-1;14670:180:118:o;15659:850::-;15781:6;15789;15797;15805;15813;15821;15829;15882:3;15870:9;15861:7;15857:23;15853:33;15850:53;;;15899:1;15896;15889:12;15850:53;15922:23;;;-1:-1:-1;15992:2:118;15977:18;;15964:32;;-1:-1:-1;16043:2:118;16028:18;;16015:32;;-1:-1:-1;16097:2:118;16082:18;;16069:32;-1:-1:-1;;16130:43:118;;16120:54;;16110:82;;16188:1;16185;16178:12;16110:82;16211:5;-1:-1:-1;16263:3:118;16248:19;;16235:33;;-1:-1:-1;16319:3:118;16304:19;;16291:33;-1:-1:-1;;;;;16336:30:118;;16333:50;;;16379:1;16376;16369:12;16333:50;16402:49;16443:7;16434:6;16423:9;16419:22;16402:49;:::i;:::-;16392:59;;;16498:3;16487:9;16483:19;16470:33;16460:43;;15659:850;;;;;;;;;;:::o;16514:652::-;16637:6;16645;16698:2;16686:9;16677:7;16673:23;16669:32;16666:52;;;16714:1;16711;16704:12;16666:52;16754:9;16741:23;-1:-1:-1;;;;;16824:2:118;16816:6;16813:14;16810:34;;;16840:1;16837;16830:12;16810:34;16878:6;16867:9;16863:22;16853:32;;16923:7;16916:4;16912:2;16908:13;16904:27;16894:55;;16945:1;16942;16935:12;16894:55;16985:2;16972:16;17011:2;17003:6;17000:14;16997:34;;;17027:1;17024;17017:12;16997:34;17080:7;17075:2;17065:6;17062:1;17058:14;17054:2;17050:23;17046:32;17043:45;17040:65;;;17101:1;17098;17091:12;17040:65;17132:2;17124:11;;;;;17154:6;;-1:-1:-1;16514:652:118;;-1:-1:-1;;;;16514:652:118:o;17171:127::-;17232:10;17227:3;17223:20;17220:1;17213:31;17263:4;17260:1;17253:15;17287:4;17284:1;17277:15;18148:209;18180:1;18206;18196:132;;18250:10;18245:3;18241:20;18238:1;18231:31;18285:4;18282:1;18275:15;18313:4;18310:1;18303:15;18196:132;-1:-1:-1;18342:9:118;;18148:209::o;19063:127::-;19124:10;19119:3;19115:20;19112:1;19105:31;19155:4;19152:1;19145:15;19179:4;19176:1;19169:15;19195:278;19234:7;-1:-1:-1;;;;;19319:2:118;19316:1;19312:10;19349:2;19346:1;19342:10;19405:3;19401:2;19397:12;19392:3;19389:21;19382:3;19375:11;19368:19;19364:47;19361:73;;;19414:18;;:::i;:::-;19454:13;;19195:278;-1:-1:-1;;;;19195:278:118:o;19478:168::-;19518:7;19584:1;19580;19576:6;19572:14;19569:1;19566:21;19561:1;19554:9;19547:17;19543:45;19540:71;;;19591:18;;:::i;:::-;-1:-1:-1;19631:9:118;;19478:168::o;20084:184::-;20154:6;20207:2;20195:9;20186:7;20182:23;20178:32;20175:52;;;20223:1;20220;20213:12;20175:52;-1:-1:-1;20246:16:118;;20084:184;-1:-1:-1;20084:184:118:o;20455:290::-;20525:6;20578:2;20566:9;20557:7;20553:23;20549:32;20546:52;;;20594:1;20591;20584:12;20546:52;20620:16;;-1:-1:-1;;;;;20665:31:118;;20655:42;;20645:70;;20711:1;20708;20701:12;20750:273;20818:6;20871:2;20859:9;20850:7;20846:23;20842:32;20839:52;;;20887:1;20884;20877:12;20839:52;20919:9;20913:16;20969:4;20962:5;20958:16;20951:5;20948:27;20938:55;;20989:1;20986;20979:12;21406:128;21446:3;21477:1;21473:6;21470:1;21467:13;21464:39;;;21483:18;;:::i;:::-;-1:-1:-1;21519:9:118;;21406:128::o;21539:135::-;21578:3;-1:-1:-1;;21599:17:118;;21596:43;;;21619:18;;:::i;:::-;-1:-1:-1;21666:1:118;21655:13;;21539:135::o;21939:137::-;-1:-1:-1;;;;;22017:5:118;22013:38;22006:5;22003:49;21993:77;;22066:1;22063;22056:12;22081:493;22184:6;22237:2;22225:9;22216:7;22212:23;22208:32;22205:52;;;22253:1;22250;22243:12;22205:52;22279:22;;:::i;:::-;22331:9;22325:16;22350:33;22375:7;22350:33;:::i;:::-;22392:22;;22459:2;22444:18;;22438:25;22472:32;22438:25;22472:32;:::i;:::-;22531:2;22520:14;;22513:31;22524:5;22081:493;-1:-1:-1;;;22081:493:118:o;22579:251::-;22649:6;22702:2;22690:9;22681:7;22677:23;22673:32;22670:52;;;22718:1;22715;22708:12;22670:52;22750:9;22744:16;22769:31;22794:5;22769:31;:::i;24716:125::-;24756:4;24784:1;24781;24778:8;24775:34;;;24789:18;;:::i;:::-;-1:-1:-1;24826:9:118;;24716:125::o;26574:294::-;26644:6;26697:2;26685:9;26676:7;26672:23;26668:32;26665:52;;;26713:1;26710;26703:12;26665:52;26739:16;;-1:-1:-1;;26784:35:118;;26774:46;;26764:74;;26834:1;26831;26824:12;27419:249;27488:6;27541:2;27529:9;27520:7;27516:23;27512:32;27509:52;;;27557:1;27554;27547:12;27509:52;27589:9;27583:16;27608:30;27632:5;27608:30;:::i;28120:237::-;28159:4;-1:-1:-1;;;;;28264:10:118;;;;28234;;28286:12;;;28283:38;;;28301:18;;:::i;:::-;28338:13;;28120:237;-1:-1:-1;;;28120:237:118:o;29264:644::-;29512:10;29507:3;29503:20;29494:6;29489:3;29485:16;29481:43;29476:3;29469:56;29451:3;29556:1;29551:3;29547:11;29587:6;29581:13;29636:4;29675:2;29667:6;29663:15;29696:1;29706:175;29720:6;29717:1;29714:13;29706:175;;;29783:13;;29769:28;;29819:14;;;;29856:15;;;;29742:1;29735:9;29706:175;;;-1:-1:-1;29897:5:118;;29264:644;-1:-1:-1;;;;;;;29264:644:118:o;30268:476::-;30465:10;30457:6;30453:23;30442:9;30435:42;30513:2;30508;30497:9;30493:18;30486:30;30552:6;30547:2;30536:9;30532:18;30525:34;30609:6;30601;30596:2;30585:9;30581:18;30568:48;30665:1;30636:22;;;30660:2;30632:31;;;30625:42;;;;30728:2;30707:15;;;-1:-1:-1;;30703:29:118;30688:45;30684:54;;30268:476;-1:-1:-1;;30268:476:118:o;30749:486::-;30951:2;30933:21;;;30990:2;30970:18;;;30963:30;31029:34;31024:2;31009:18;;31002:62;31100:34;31095:2;31080:18;;31073:62;-1:-1:-1;;;31166:3:118;31151:19;;31144:49;31225:3;31210:19;;30749:486::o;31240:471::-;31281:3;31319:5;31313:12;31346:6;31341:3;31334:19;31371:1;31381:162;31395:6;31392:1;31389:13;31381:162;;;31457:4;31513:13;;;31509:22;;31503:29;31485:11;;;31481:20;;31474:59;31410:12;31381:162;;;31561:6;31558:1;31555:13;31552:87;;;31627:1;31620:4;31611:6;31606:3;31602:16;31598:27;31591:38;31552:87;-1:-1:-1;31693:2:118;31672:15;-1:-1:-1;;31668:29:118;31659:39;;;;31700:4;31655:50;;31240:471;-1:-1:-1;;31240:471:118:o;31716:624::-;31990:1;31986;31981:3;31977:11;31973:19;31965:6;31961:32;31950:9;31943:51;32030:2;32025;32014:9;32010:18;32003:30;31924:4;32068:6;32062:13;32111:4;32106:2;32095:9;32091:18;32084:32;32139:51;32185:3;32174:9;32170:19;32156:12;32139:51;:::i;:::-;32125:65;;32246:2;32238:6;32234:15;32228:22;32221:4;32210:9;32206:20;32199:52;32306:2;32298:6;32294:15;32288:22;32282:3;32271:9;32267:19;32260:51;32328:6;32320:14;;;31716:624;;;;;:::o;32345:219::-;32494:2;32483:9;32476:21;32457:4;32514:44;32554:2;32543:9;32539:18;32531:6;32514:44;:::i;35201:335::-;35304:4;35362:11;35349:25;35456:3;35452:8;35441;35425:14;35421:29;35417:44;35397:18;35393:69;35383:97;;35476:1;35473;35466:12;35383:97;35497:33;;;;;35201:335;-1:-1:-1;;35201:335:118:o;35541:142::-;35617:20;;35646:31;35617:20;35646:31;:::i;36336:245::-;36403:6;36456:2;36444:9;36435:7;36431:23;36427:32;36424:52;;;36472:1;36469;36462:12;36424:52;36504:9;36498:16;36523:28;36545:5;36523:28;:::i;37174:756::-;37304:6;37299:3;37292:19;37274:3;37330:4;37359:2;37354:3;37350:12;37343:19;;37385:5;37408:1;37418:487;37432:6;37429:1;37426:13;37418:487;;;37509:6;37496:20;37529:33;37554:7;37529:33;:::i;:::-;-1:-1:-1;;;;;37587:33:118;37575:46;;37662:15;;;37649:29;37691:32;37649:29;37691:32;:::i;:::-;-1:-1:-1;;;;;37757:40:118;37743:12;;;37736:62;37821:4;37845:12;;;;37880:15;;;;;37454:1;37447:9;37418:487;;37935:2181;38188:2;38240:21;;;38213:18;;;38296:22;;;38159:4;;38337:2;38355:18;;;38419:1;38415:14;;;38400:30;;38396:39;;38458:6;38159:4;38492:1595;38506:6;38503:1;38500:13;38492:1595;;;38571:22;;;-1:-1:-1;;38567:36:118;38555:49;;38643:20;;38718:14;38714:27;;;-1:-1:-1;;38710:42:118;38686:67;;38676:95;;38767:1;38764;38757:12;38676:95;38797:31;;38851:4;38896:19;;38972:14;38968:26;;;-1:-1:-1;;38964:40:118;38938:67;;38928:95;;39019:1;39016;39009:12;38928:95;39051:32;;39110:21;;-1:-1:-1;;;;;39147:30:118;;39144:50;;;39190:1;39187;39180:12;39144:50;39248:6;39245:1;39241:14;39225;39221:35;39214:5;39210:47;39207:67;;;39270:1;39267;39260:12;39207:67;39302:2;39294:6;39287:18;39332:110;39438:2;39430:6;39426:15;39418:6;39413:2;39404:7;39400:16;39332:110;:::i;:::-;39318:124;;;;39475:42;39513:2;39506:5;39502:14;39475:42;:::i;:::-;-1:-1:-1;;;;;11594:31:118;39580:15;;;11582:44;39646:14;;;39633:28;39616:15;;;39609:53;39685:4;39724:33;39742:14;;;39724:33;:::i;:::-;14931:10;14920:22;39804:15;;;14908:35;39843:4;39882:33;39900:14;;;39882:33;:::i;:::-;14931:10;14920:22;39962:15;;14908:35;;;;-1:-1:-1;40065:12:118;;;;40030:15;;;;38528:1;38521:9;38492:1595;;;-1:-1:-1;40104:6:118;;37935:2181;-1:-1:-1;;;;;;;;37935:2181:118:o;41598:197::-;41636:3;41664:6;41705:2;41698:5;41694:14;41732:2;41723:7;41720:15;41717:41;;;41738:18;;:::i;:::-;41787:1;41774:15;;41598:197;-1:-1:-1;;;41598:197:118:o","linkReferences":{},"immutableReferences":{"18510":[{"start":828,"length":32},{"start":3556,"length":32},{"start":4718,"length":32},{"start":5141,"length":32},{"start":5734,"length":32}],"18513":[{"start":725,"length":32},{"start":6578,"length":32},{"start":7074,"length":32}],"18516":[{"start":649,"length":32},{"start":6085,"length":32}],"18519":[{"start":1193,"length":32},{"start":5554,"length":32}],"23349":[{"start":774,"length":32},{"start":8145,"length":32},{"start":8357,"length":32},{"start":8484,"length":32}],"23352":[{"start":10669,"length":32},{"start":10857,"length":32},{"start":11093,"length":32}],"23355":[{"start":2336,"length":32},{"start":2479,"length":32},{"start":2607,"length":32},{"start":8061,"length":32},{"start":8265,"length":32},{"start":8818,"length":32},{"start":9234,"length":32}],"23358":[{"start":2809,"length":32},{"start":3156,"length":32},{"start":3307,"length":32},{"start":9012,"length":32},{"start":9399,"length":32},{"start":9558,"length":32}]}},"methodIdentifiers":{"avsDirectory()":"6b3aa72e","batchesState(bytes32)":"b099627e","blsApkRegistry()":"5df45946","checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"4ae07c37","createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":"fce36c7d","createNewTask(bytes32,string)":"5c008994","delegation()":"df5cf723","deregisterOperatorFromAVS(address)":"a364f4da","getOperatorRestakedStrategies(address)":"33cfb7b7","getRestakeableStrategies()":"e481af9d","initialize(address)":"c4d66de8","owner()":"8da5cb5b","registerOperatorToAVS(address,(bytes,bytes32,uint256))":"9926ee7d","registryCoordinator()":"6d14a987","renounceOwnership()":"715018a6","respondToTask(bytes32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"2dd94eba","rewardsInitiator()":"fc299dee","setRewardsInitiator(address)":"3bc28c8c","setStaleStakesForbidden(bool)":"416c7e5e","stakeRegistry()":"68304835","staleStakesForbidden()":"b98d0908","transferOwnership(address)":"f2fde38b","trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":"171f1d5b","updateAVSMetadataURI(string)":"a98fb355","verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)":"fa534dc0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAVSDirectory\",\"name\":\"__avsDirectory\",\"type\":\"address\"},{\"internalType\":\"contract IRewardsCoordinator\",\"name\":\"__rewardsCoordinator\",\"type\":\"address\"},{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"__registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"contract IStakeRegistry\",\"name\":\"__stakeRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"BatchVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"}],\"name\":\"NewBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevRewardsInitiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newRewardsInitiator\",\"type\":\"address\"}],\"name\":\"RewardsInitiatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"StaleStakesForbiddenUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"avsDirectory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"batchesState\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"responded\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blsApkRegistry\",\"outputs\":[{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlockNumber\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"checkSignatures\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96[]\",\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\"},{\"internalType\":\"uint96[]\",\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\"}],\"internalType\":\"struct IBLSSignatureChecker.QuorumStakeTotals\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IRewardsCoordinator.StrategyAndMultiplier[]\",\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"internalType\":\"struct IRewardsCoordinator.RewardsSubmission[]\",\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\"}],\"name\":\"createAVSRewardsSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"}],\"name\":\"createNewTask\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"deregisterOperatorFromAVS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRestakedStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRestakeableStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"operatorSignature\",\"type\":\"tuple\"}],\"name\":\"registerOperatorToAVS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\"}],\"name\":\"respondToTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsInitiator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRewardsInitiator\",\"type\":\"address\"}],\"name\":\"setRewardsInitiator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setStaleStakesForbidden\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contract IStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staleStakesForbidden\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"apk\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"}],\"name\":\"trySignatureAndApkVerification\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pairingSuccessful\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"siganatureIsValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metadataURI\",\"type\":\"string\"}],\"name\":\"updateAVSMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubInputCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"}],\"name\":\"verifyBatchInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"details\":\"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.\",\"params\":{\"msgHash\":\"is the hash being signed\",\"params\":\"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature\",\"referenceBlockNumber\":\"is the block number at which the stake information is being verified\"},\"returns\":{\"_0\":\"quorumStakeTotals is the struct containing the total and signed stake for each quorum\",\"_1\":\"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs\"}},\"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])\":{\"details\":\"Only callabe by the permissioned rewardsInitiator addressThe duration of the `rewardsSubmission` cannot exceed `MAX_REWARDS_DURATION`The tokens are sent to the `RewardsCoordinator` contractStrategies must be in ascending order of addresses to check for duplicatesThis function will revert if the `rewardsSubmission` is malformed, e.g. if the `strategies` and `weights` arrays are of non-equal lengths\",\"params\":{\"rewardsSubmissions\":\"The rewards submissions being created\"}},\"deregisterOperatorFromAVS(address)\":{\"params\":{\"operator\":\"The address of the operator to deregister.\"}},\"getOperatorRestakedStrategies(address)\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately\",\"params\":{\"operator\":\"The address of the operator to get restaked strategies for\"}},\"getRestakeableStrategies()\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerOperatorToAVS(address,(bytes,bytes32,uint256))\":{\"params\":{\"operator\":\"The address of the operator to register.\",\"operatorSignature\":\"The signature, salt, and expiry of the operator's signature.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setRewardsInitiator(address)\":{\"details\":\"only callable by the owner\",\"params\":{\"newRewardsInitiator\":\"The new rewards initiator address\"}},\"setStaleStakesForbidden(bool)\":{\"params\":{\"value\":\"to toggle staleStakesForbidden\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"params\":{\"apk\":\"is the claimed G1 public key\",\"apkG2\":\"is provided G2 public key\",\"msgHash\":\"is the hash being signed\",\"sigma\":\"is the G1 point signature\"},\"returns\":{\"pairingSuccessful\":\"is true if the pairing precompile call was successful\",\"siganatureIsValid\":\"is true if the signature is valid\"}},\"updateAVSMetadataURI(string)\":{\"details\":\"only callable by the owner\",\"params\":{\"_metadataURI\":\"is the metadata URI for the AVS\"}}},\"title\":\"Primary entrypoint for procuring services from Aligned.\",\"version\":1},\"userdoc\":{\"events\":{\"StaleStakesForbiddenUpdate(bool)\":{\"notice\":\"Emitted when `staleStakesForbiddenUpdate` is set\"}},\"kind\":\"user\",\"methods\":{\"avsDirectory()\":{\"notice\":\"Returns the EigenLayer AVSDirectory contract.\"},\"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"notice\":\"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme.\"},\"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])\":{\"notice\":\"Creates a new rewards submission to the EigenLayer RewardsCoordinator contract, to be split amongst the set of stakers delegated to operators who are registered to this `avs`\"},\"deregisterOperatorFromAVS(address)\":{\"notice\":\"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator deregistration from the AVS\"},\"getOperatorRestakedStrategies(address)\":{\"notice\":\"Returns the list of strategies that the operator has potentially restaked on the AVS\"},\"getRestakeableStrategies()\":{\"notice\":\"Returns the list of strategies that the AVS supports for restaking\"},\"registerOperatorToAVS(address,(bytes,bytes32,uint256))\":{\"notice\":\"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator registration with the AVS\"},\"rewardsInitiator()\":{\"notice\":\"The address of the entity that can initiate rewards\"},\"setRewardsInitiator(address)\":{\"notice\":\"Sets the rewards initiator address\"},\"setStaleStakesForbidden(bool)\":{\"notice\":\"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window.\"},\"staleStakesForbidden()\":{\"notice\":\"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window.\"},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"notice\":\"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key\"},\"updateAVSMetadataURI(string)\":{\"notice\":\"Updates the metadata URI for the AVS\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/AlignedLayerServiceManager.sol\":\"AlignedLayerServiceManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x9060167cdbf42b36ce9102b5dd83671e9211b12446c7523a40f761ff04f63088\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2c3756c60536089deebb4e959b2696d771039a900b44f2a1e04a04511c6d7787\",\"dweb:/ipfs/Qme24T2mAKcFuDUZpTDRK7mWEXF7RY1mDbHYW3HESe7QB1\"]},\"src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IAVSDirectory","name":"__avsDirectory","type":"address"},{"internalType":"contract IRewardsCoordinator","name":"__rewardsCoordinator","type":"address"},{"internalType":"contract IRegistryCoordinator","name":"__registryCoordinator","type":"address"},{"internalType":"contract IStakeRegistry","name":"__stakeRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true}],"type":"event","name":"BatchVerified","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32","indexed":false},{"internalType":"string","name":"batchDataPointer","type":"string","indexed":false}],"type":"event","name":"NewBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"prevRewardsInitiator","type":"address","indexed":false},{"internalType":"address","name":"newRewardsInitiator","type":"address","indexed":false}],"type":"event","name":"RewardsInitiatorUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"value","type":"bool","indexed":false}],"type":"event","name":"StaleStakesForbiddenUpdate","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"avsDirectory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"batchesState","outputs":[{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32"},{"internalType":"bool","name":"responded","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blsApkRegistry","outputs":[{"internalType":"contract IBLSApkRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"uint32","name":"referenceBlockNumber","type":"uint32"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"params","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"view","type":"function","name":"checkSignatures","outputs":[{"internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","name":"","type":"tuple","components":[{"internalType":"uint96[]","name":"signedStakeForQuorum","type":"uint96[]"},{"internalType":"uint96[]","name":"totalStakeForQuorum","type":"uint96[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct IRewardsCoordinator.RewardsSubmission[]","name":"rewardsSubmissions","type":"tuple[]","components":[{"internalType":"struct IRewardsCoordinator.StrategyAndMultiplier[]","name":"strategiesAndMultipliers","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint32","name":"startTimestamp","type":"uint32"},{"internalType":"uint32","name":"duration","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"createAVSRewardsSubmission"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"string","name":"batchDataPointer","type":"string"}],"stateMutability":"payable","type":"function","name":"createNewTask"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegation","outputs":[{"internalType":"contract IDelegationManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperatorFromAVS"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRestakedStrategies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRestakeableStrategies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"operatorSignature","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"registerOperatorToAVS"},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCoordinator","outputs":[{"internalType":"contract IRegistryCoordinator","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"nonSignerStakesAndSignature","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"respondToTask"},{"inputs":[],"stateMutability":"view","type":"function","name":"rewardsInitiator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newRewardsInitiator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRewardsInitiator"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStaleStakesForbidden"},{"inputs":[],"stateMutability":"view","type":"function","name":"stakeRegistry","outputs":[{"internalType":"contract IStakeRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"staleStakesForbidden","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"struct BN254.G1Point","name":"apk","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}],"stateMutability":"view","type":"function","name":"trySignatureAndApkVerification","outputs":[{"internalType":"bool","name":"pairingSuccessful","type":"bool"},{"internalType":"bool","name":"siganatureIsValid","type":"bool"}]},{"inputs":[{"internalType":"string","name":"_metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateAVSMetadataURI"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"pubInputCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyBatchInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"details":"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.","params":{"msgHash":"is the hash being signed","params":"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature","referenceBlockNumber":"is the block number at which the stake information is being verified"},"returns":{"_0":"quorumStakeTotals is the struct containing the total and signed stake for each quorum","_1":"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs"}},"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":{"details":"Only callabe by the permissioned rewardsInitiator addressThe duration of the `rewardsSubmission` cannot exceed `MAX_REWARDS_DURATION`The tokens are sent to the `RewardsCoordinator` contractStrategies must be in ascending order of addresses to check for duplicatesThis function will revert if the `rewardsSubmission` is malformed, e.g. if the `strategies` and `weights` arrays are of non-equal lengths","params":{"rewardsSubmissions":"The rewards submissions being created"}},"deregisterOperatorFromAVS(address)":{"params":{"operator":"The address of the operator to deregister."}},"getOperatorRestakedStrategies(address)":{"details":"This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately","params":{"operator":"The address of the operator to get restaked strategies for"}},"getRestakeableStrategies()":{"details":"This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately"},"owner()":{"details":"Returns the address of the current owner."},"registerOperatorToAVS(address,(bytes,bytes32,uint256))":{"params":{"operator":"The address of the operator to register.","operatorSignature":"The signature, salt, and expiry of the operator's signature."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setRewardsInitiator(address)":{"details":"only callable by the owner","params":{"newRewardsInitiator":"The new rewards initiator address"}},"setStaleStakesForbidden(bool)":{"params":{"value":"to toggle staleStakesForbidden"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"params":{"apk":"is the claimed G1 public key","apkG2":"is provided G2 public key","msgHash":"is the hash being signed","sigma":"is the G1 point signature"},"returns":{"pairingSuccessful":"is true if the pairing precompile call was successful","siganatureIsValid":"is true if the signature is valid"}},"updateAVSMetadataURI(string)":{"details":"only callable by the owner","params":{"_metadataURI":"is the metadata URI for the AVS"}}},"version":1},"userdoc":{"kind":"user","methods":{"avsDirectory()":{"notice":"Returns the EigenLayer AVSDirectory contract."},"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"notice":"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme."},"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":{"notice":"Creates a new rewards submission to the EigenLayer RewardsCoordinator contract, to be split amongst the set of stakers delegated to operators who are registered to this `avs`"},"deregisterOperatorFromAVS(address)":{"notice":"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator deregistration from the AVS"},"getOperatorRestakedStrategies(address)":{"notice":"Returns the list of strategies that the operator has potentially restaked on the AVS"},"getRestakeableStrategies()":{"notice":"Returns the list of strategies that the AVS supports for restaking"},"registerOperatorToAVS(address,(bytes,bytes32,uint256))":{"notice":"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator registration with the AVS"},"rewardsInitiator()":{"notice":"The address of the entity that can initiate rewards"},"setRewardsInitiator(address)":{"notice":"Sets the rewards initiator address"},"setStaleStakesForbidden(bool)":{"notice":"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window."},"staleStakesForbidden()":{"notice":"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window."},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"notice":"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key"},"updateAVSMetadataURI(string)":{"notice":"Updates the metadata URI for the AVS"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/AlignedLayerServiceManager.sol":"AlignedLayerServiceManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x9060167cdbf42b36ce9102b5dd83671e9211b12446c7523a40f761ff04f63088","urls":["bzz-raw://2c3756c60536089deebb4e959b2696d771039a900b44f2a1e04a04511c6d7787","dweb:/ipfs/Qme24T2mAKcFuDUZpTDRK7mWEXF7RY1mDbHYW3HESe7QB1"],"license":"UNLICENSED"},"src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null}},"version":1},"id":116} +{"abi":[{"type":"constructor","inputs":[{"name":"__avsDirectory","type":"address","internalType":"contract IAVSDirectory"},{"name":"__rewardsCoordinator","type":"address","internalType":"contract IRewardsCoordinator"},{"name":"__registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"__stakeRegistry","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"avsDirectory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batchesState","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"taskCreatedBlock","type":"uint32","internalType":"uint32"},{"name":"responded","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"blsApkRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBLSApkRegistry"}],"stateMutability":"view"},{"type":"function","name":"checkPublicInput","inputs":[{"name":"publicInput","type":"bytes","internalType":"bytes"},{"name":"hash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"checkSignatures","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"referenceBlockNumber","type":"uint32","internalType":"uint32"},{"name":"params","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","components":[{"name":"signedStakeForQuorum","type":"uint96[]","internalType":"uint96[]"},{"name":"totalStakeForQuorum","type":"uint96[]","internalType":"uint96[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createAVSRewardsSubmission","inputs":[{"name":"rewardsSubmissions","type":"tuple[]","internalType":"struct IRewardsCoordinator.RewardsSubmission[]","components":[{"name":"strategiesAndMultipliers","type":"tuple[]","internalType":"struct IRewardsCoordinator.StrategyAndMultiplier[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"startTimestamp","type":"uint32","internalType":"uint32"},{"name":"duration","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createNewTask","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"batchDataPointer","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"view"},{"type":"function","name":"deregisterOperatorFromAVS","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getOperatorRestakedStrategies","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getRestakeableStrategies","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initialOwner","type":"address","internalType":"address"},{"name":"_rewardsInitiator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerOperatorToAVS","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"operatorSignature","type":"tuple","internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","components":[{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registryCoordinator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistryCoordinator"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"respondToTask","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"nonSignerStakesAndSignature","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"respondToTaskV2","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"senderAddress","type":"address","internalType":"address"},{"name":"nonSignerStakesAndSignature","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewardsInitiator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setRewardsInitiator","inputs":[{"name":"newRewardsInitiator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaleStakesForbidden","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"view"},{"type":"function","name":"staleStakesForbidden","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trySignatureAndApkVerification","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"apk","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"pairingSuccessful","type":"bool","internalType":"bool"},{"name":"siganatureIsValid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAVSMetadataURI","inputs":[{"name":"_metadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyBatchInclusion","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"pubInputCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"senderAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"BatchVerified","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"senderAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BatcherBalanceUpdated","inputs":[{"name":"batcher","type":"address","indexed":true,"internalType":"address"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"NewBatch","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"taskCreatedBlock","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"batchDataPointer","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"NewBatchV2","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"senderAddress","type":"address","indexed":false,"internalType":"address"},{"name":"taskCreatedBlock","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"batchDataPointer","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RewardsInitiatorUpdated","inputs":[{"name":"prevRewardsInitiator","type":"address","indexed":false,"internalType":"address"},{"name":"newRewardsInitiator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StaleStakesForbiddenUpdate","inputs":[{"name":"value","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x6101806040523480156200001257600080fd5b506040516200564d3803806200564d8339810160408190526200003591620002e5565b6001600160a01b0380851660805280841660a05280831660c052811660e0528184848284620000636200020a565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e791906200034d565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016691906200034d565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e891906200034d565b6001600160a01b03166101605250620002006200020a565b5050505062000374565b600054610100900460ff1615620002775760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620002ca576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002e257600080fd5b50565b60008060008060808587031215620002fc57600080fd5b84516200030981620002cc565b60208601519094506200031c81620002cc565b60408601519093506200032f81620002cc565b60608601519092506200034281620002cc565b939692955090935050565b6000602082840312156200036057600080fd5b81516200036d81620002cc565b9392505050565b60805160a05160c05160e051610100516101205161014051610160516151cb620004826000396000818161061001526119dc01526000818161039d0152611bef0152600081816103e901528181611ddc0152611fcc015260008181610450015281816110f9015281816116980152818161183f0152611a90015260008181610e0e01528181610f690152818161100001528181612b1a01528181612c9d0152612d3c015260008181610c3501528181610cc401528181610d4401528181612515015281816125e101528181612a580152612bf801526000818161306a01528181613126015261321201526000818161041a015281816125690152818161263d01526126bc01526151cb6000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063b099627e1161008a578063e481af9d11610064578063e481af9d14610632578063f2fde38b14610647578063fc299dee14610667578063fce36c7d1461068757600080fd5b8063b099627e14610589578063b98d0908146105e4578063df5cf723146105fe57600080fd5b80639926ee7d116100c65780639926ee7d14610509578063a364f4da14610529578063a98fb35514610549578063ab21739a1461056957600080fd5b8063715018a6146104b65780638da5cb5b146104cb57806395c6d604146104e957600080fd5b80634ae07c3711610159578063683048351161013357806368304835146103d75780636b3aa72e1461040b5780636d14a9871461043e57806370a082311461047257600080fd5b80634ae07c371461034a5780635c008994146103785780635df459461461038b57600080fd5b806333cfb7b71161019557806333cfb7b7146102bd5780633bc28c8c146102ea578063416c7e5e1461030a578063485cc9551461032a57600080fd5b806306045a911461022f578063171f1d5b146102645780632dd94eba1461029b57600080fd5b3661022a5733600090815260ca6020526040812080543492906101df90849061407d565b909155505033600081815260ca60209081526040918290205491519182527f0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0910160405180910390a2005b600080fd5b34801561023b57600080fd5b5061024f61024a3660046141b9565b6106a7565b60405190151581526020015b60405180910390f35b34801561027057600080fd5b5061028461027f36600461431a565b610786565b60408051921515835290151560208301520161025b565b3480156102a757600080fd5b506102bb6102b6366004614621565b610910565b005b3480156102c957600080fd5b506102dd6102d8366004614667565b610c10565b60405161025b9190614684565b3480156102f657600080fd5b506102bb610305366004614667565b6110e3565b34801561031657600080fd5b506102bb6103253660046146df565b6110f7565b34801561033657600080fd5b506102bb6103453660046146fc565b61122e565b34801561035657600080fd5b5061036a610365366004614735565b611343565b60405161025b9291906147cf565b6102bb610386366004614860565b612296565b34801561039757600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161025b565b3480156103e357600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103bf565b34801561044a57600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561047e57600080fd5b506104a861048d366004614667565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161025b565b3480156104c257600080fd5b506102bb6124d1565b3480156104d757600080fd5b506033546001600160a01b03166103bf565b3480156104f557600080fd5b5061024f6105043660046148ab565b6124e5565b34801561051557600080fd5b506102bb6105243660046148f6565b61250a565b34801561053557600080fd5b506102bb610544366004614667565b6125d6565b34801561055557600080fd5b506102bb6105643660046149a1565b61269d565b34801561057557600080fd5b506102bb6105843660046149f1565b6126f1565b34801561059557600080fd5b506105c86105a4366004614a18565b60c96020526000908152604090205463ffffffff811690600160201b900460ff1682565b6040805163ffffffff909316835290151560208301520161025b565b3480156105f057600080fd5b5060975461024f9060ff1681565b34801561060a57600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561063e57600080fd5b506102dd612a52565b34801561065357600080fd5b506102bb610662366004614667565b612e1b565b34801561067357600080fd5b506065546103bf906001600160a01b031681565b34801561069357600080fd5b506102bb6106a2366004614a31565b612e91565b60008085836040516020016106bd929190614aa5565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff166106f957600091505061077a565b600081815260c96020526040902054600160201b900460ff1661072057600091505061077a565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f198184030181529190528051602082012090915061077487848389613249565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106107ce576107ce614ac0565b60200201518951600160200201518a602001516000600281106107f3576107f3614ac0565b60200201518b6020015160016002811061080f5761080f614ac0565b602090810291909101518c518d83015160405161086c9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c61088f9190614ad6565b90506109026108a86108a18884613261565b86906132f8565b6108b061338c565b6108f86108e9856108e3604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613261565b6108f28c61344c565b906132f8565b886201d4c06134dc565b909890975095505050505050565b737969c5ed335650692bc04293b07f5bf2e7a673c060005a600085815260c9602052604090205490915063ffffffff166109885760405162461bcd60e51b8152602060048201526014602482015273426174636820646f65736e27742065786973747360601b60448201526064015b60405180910390fd5b600084815260c96020526040902054600160201b900460ff16156109e85760405162461bcd60e51b815260206004820152601760248201527610985d18da08185b1c9958591e481c995cdc1bdb991959604a1b604482015260640161097f565b6001600160a01b038216600090815260ca6020526040902054610a465760405162461bcd60e51b81526020600482015260166024820152754261746368657220686173206e6f2062616c616e636560501b604482015260640161097f565b600084815260c960205260408120805464ff00000000198116600160201b179091558190610a7c90879063ffffffff1687611343565b91509150604360ff168260200151600081518110610a9c57610a9c614ac0565b6020026020010151610aae9190614af8565b6001600160601b031660648360000151600081518110610ad057610ad0614ac0565b60200260200101516001600160601b0316610aeb9190614b27565b1015610b095760405162461bcd60e51b815260040161097f90614b46565b6040516001600160a01b038516815286907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260005a905060003a610b598387614ba4565b610b66906201117061407d565b610b709190614b27565b6001600160a01b038716600090815260ca6020526040902054909150811115610bab5760405162461bcd60e51b815260040161097f90614bbb565b6001600160a01b038616600090815260ca602052604081208054839290610bd3908490614ba4565b9091555050604051339082156108fc029083906000818181858888f19350505050158015610c05573d6000803e3d6000fd5b505050505050505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca09190614c18565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2f9190614c31565b90506001600160c01b0381161580610dc957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc49190614c5a565b60ff16155b15610de95760408051600080825260208201909252905b50949350505050565b6000610dfd826001600160c01b0316613700565b90506000805b8251811015610ed3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610e4d57610e4d614ac0565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb59190614c18565b610ebf908361407d565b915080610ecb81614c7d565b915050610e03565b506000816001600160401b03811115610eee57610eee614095565b604051908082528060200260200182016040528015610f17578160200160208202803683370190505b5090506000805b84518110156110d6576000858281518110610f3b57610f3b614ac0565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190614c18565b905060005b818110156110c0576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190614cad565b6000015186868151811061108857611088614ac0565b6001600160a01b0390921660209283029190910190910152846110aa81614c7d565b95505080806110b890614c7d565b915050610fd9565b50505080806110ce90614c7d565b915050610f1e565b5090979650505050505050565b6110eb6137c2565b6110f48161381c565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190614cee565b6001600160a01b0316336001600160a01b0316146112255760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161097f565b6110f481613885565b600054610100900460ff161580801561124e5750600054600160ff909116105b806112685750303b158015611268575060005460ff166001145b6112cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161097f565b6000805460ff1916600117905580156112ee576000805461ff0019166101001790555b6112f883836138cc565b801561133e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561139f57508260a0015151604051806040016040528060018152602001600081525051145b80156113c657508260c0015151604051806040016040528060018152602001600081525051145b80156113ed57508260e0015151604051806040016040528060018152602001600081525051145b6114575760405162461bcd60e51b8152602060048201526041602482015260008051602061517683398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161097f565b825151602084015151146114cf5760405162461bcd60e51b815260206004820152604460248201819052600080516020615176833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161097f565b4363ffffffff168463ffffffff161061153e5760405162461bcd60e51b815260206004820152603c602482015260008051602061517683398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161097f565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156115ff576115ff614095565b604051908082528060200260200182016040528015611628578160200160208202803683370190505b5081526020860151516001600160401b0381111561164857611648614095565b604051908082528060200260200182016040528015611671578160200160208202803683370190505b508160200181905250600061171d60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190614c5a565b61394d565b905060005b8760200151518110156119b8576117678860200151828151811061174857611748614ac0565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061177d5761177d614ac0565b6020908102919091010152801561183d57602083015161179e600183614ba4565b815181106117ae576117ae614ac0565b602002602001015160001c836020015182815181106117cf576117cf614ac0565b602002602001015160001c1161183d576040805162461bcd60e51b815260206004820152602481019190915260008051602061517683398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161097f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061188257611882614ac0565b60200260200101518b8b6000015185815181106118a1576118a1614ac0565b60200260200101516040518463ffffffff1660e01b81526004016118de9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156118fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191f9190614c31565b6001600160c01b03168360000151828151811061193e5761193e614ac0565b6020026020010181815250506119a46108a1611978848660000151858151811061196a5761196a614ac0565b6020026020010151166139e0565b8a60200151848151811061198e5761198e614ac0565b6020026020010151613a0b90919063ffffffff16565b9450806119b081614c7d565b915050611722565b50506119c383613aef565b60975490935060ff166000816119da576000611a5c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190614c18565b905060005b604051806040016040528060018152602001600081525051811015612167578215611bed578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611ae557611ae5614ac0565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4d9190614c18565b611b57919061407d565b11611bed5760405162461bcd60e51b8152602060048201526066602482015260008051602061517683398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161097f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611c4457611c44614ac0565b602001015160f81c60f81b60f81c8c8c60a001518581518110611c6957611c69614ac0565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce99190614d0b565b6001600160401b031916611d0c8a60400151838151811061174857611748614ac0565b67ffffffffffffffff191614611da85760405162461bcd60e51b8152602060048201526061602482015260008051602061517683398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161097f565b611dd889604001518281518110611dc157611dc1614ac0565b6020026020010151876132f890919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611e3157611e31614ac0565b602001015160f81c60f81b60f81c8c8c60c001518581518110611e5657611e56614ac0565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed69190614d36565b85602001518281518110611eec57611eec614ac0565b6001600160601b03909216602092830291909101820152850151805182908110611f1857611f18614ac0565b602002602001015185600001518281518110611f3657611f36614ac0565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561215257611fc586600001518281518110611f8057611f80614ac0565b602002602001015160405180604001604052806001815260200160008152508581518110611fb057611fb0614ac0565b016020015160f81c60ff161c60019081161490565b15612140577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae6040518060400160405280600181526020016000815250858151811061202157612021614ac0565b602001015160f81c60f81b60f81c8e8960200151858151811061204657612046614ac0565b60200260200101518f60e00151888151811061206457612064614ac0565b6020026020010151878151811061207d5761207d614ac0565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa1580156120e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121059190614d36565b875180518590811061211957612119614ac0565b6020026020010181815161212d9190614d53565b6001600160601b03169052506001909101905b8061214a81614c7d565b915050611f5a565b5050808061215f90614c7d565b915050611a61565b5050506000806121818a868a606001518b60800151610786565b91509150816121f25760405162461bcd60e51b8152602060048201526043602482015260008051602061517683398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161097f565b806122535760405162461bcd60e51b8152602060048201526039602482015260008051602061517683398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161097f565b5050600087826020015160405160200161226e929190614d7b565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b600062229cd74310156122aa5750826122d6565b83336040516020016122bd929190614aa5565b6040516020818303038152906040528051906020012090505b600081815260c9602052604090205463ffffffff16156123385760405162461bcd60e51b815260206004820152601b60248201527f42617463682077617320616c7265616479207375626d69747465640000000000604482015260640161097f565b34156123a75733600090815260ca60205260408120805434929061235d90849061407d565b909155505033600081815260ca60209081526040918290205491519182527f0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0910160405180910390a25b33600090815260ca60205260409020546124035760405162461bcd60e51b815260206004820152601860248201527f426174636865722062616c616e636520697320656d7074790000000000000000604482015260640161097f565b6040805180820182526000602080830182815263ffffffff43818116865287855260c9909352928590208451815492511515600160201b0264ffffffffff19909316941693909317179091559151909186917f1871c33134a542e0ab9facf7013d27b9ed95e64d299e9919ee091c9cfcb19fa5916124849188908890614dec565b60405180910390a2847f130d3e81af62e03ed6fff5e3bb343695ec513892cfad24d286486745dcc61437334387876040516124c29493929190614e15565b60405180910390a25050505050565b6124d96137c2565b6124e36000613b8a565b565b60008184846040516124f8929190614e50565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146125525760405162461bcd60e51b815260040161097f90614e60565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906125a09085908590600401614f25565b600060405180830381600087803b1580156125ba57600080fd5b505af11580156125ce573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461261e5760405162461bcd60e51b815260040161097f90614e60565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561268257600080fd5b505af1158015612696573d6000803e3d6000fd5b5050505050565b6126a56137c2565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612668908490600401614f70565b60005a90506000848460405160200161270b929190614aa5565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1661277c5760405162461bcd60e51b8152602060048201526014602482015273426174636820646f65736e27742065786973747360601b604482015260640161097f565b600081815260c96020526040902054600160201b900460ff16156127dc5760405162461bcd60e51b815260206004820152601760248201527610985d18da08185b1c9958591e481c995cdc1bdb991959604a1b604482015260640161097f565b6001600160a01b038416600090815260ca602052604090205461283a5760405162461bcd60e51b81526020600482015260166024820152754261746368657220686173206e6f2062616c616e636560501b604482015260640161097f565b600081815260c960205260408120805464ff00000000198116600160201b17909155819061287090849063ffffffff1687611343565b91509150604360ff16826020015160008151811061289057612890614ac0565b60200260200101516128a29190614af8565b6001600160601b0316606483600001516000815181106128c4576128c4614ac0565b60200260200101516001600160601b03166128df9190614b27565b10156128fd5760405162461bcd60e51b815260040161097f90614b46565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260005a905060003a61294d8388614ba4565b61295a906201117061407d565b6129649190614b27565b6001600160a01b038916600090815260ca602052604090205490915081111561299f5760405162461bcd60e51b815260040161097f90614bbb565b6001600160a01b038816600090815260ca6020526040812080548392906129c7908490614ba4565b90915550506001600160a01b038816600081815260ca60209081526040918290205491519182527f0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015612a46573d6000803e3d6000fd5b50505050505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad89190614c5a565b60ff16905080612af657505060408051600081526020810190915290565b6000805b82811015612bab57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b8d9190614c18565b612b97908361407d565b915080612ba381614c7d565b915050612afa565b506000816001600160401b03811115612bc657612bc6614095565b604051908082528060200260200182016040528015612bef578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c789190614c5a565b60ff16811015612e1157604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612cec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d109190614c18565b905060005b81811015612dfc576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dae9190614cad565b60000151858581518110612dc457612dc4614ac0565b6001600160a01b039092166020928302919091019091015283612de681614c7d565b9450508080612df490614c7d565b915050612d15565b50508080612e0990614c7d565b915050612bf6565b5090949350505050565b612e236137c2565b6001600160a01b038116612e885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161097f565b6110f481613b8a565b6065546001600160a01b03163314612f265760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161097f565b60005b818110156131fa57828282818110612f4357612f43614ac0565b9050602002810190612f559190614f83565b612f66906040810190602001614667565b6001600160a01b03166323b872dd3330868686818110612f8857612f88614ac0565b9050602002810190612f9a9190614f83565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015612ff1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130159190614fae565b50600083838381811061302a5761302a614ac0565b905060200281019061303c9190614f83565b61304d906040810190602001614667565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156130bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130df9190614c18565b90508383838181106130f3576130f3614ac0565b90506020028101906131059190614f83565b613116906040810190602001614667565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061315857613158614ac0565b905060200281019061316a9190614f83565b60400135613178919061407d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156131c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e79190614fae565b5050806131f390614c7d565b9050612f29565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906125a09085908590600401615026565b600083613257868585613bdc565b1495945050505050565b604080518082019091526000808252602082015261327d613f8d565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156132b0576132b2565bfe5b50806132f05760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161097f565b505092915050565b6040805180820190915260008082526020820152613314613fab565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156132b05750806132f05760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161097f565b613394613fc9565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061347c60008051602061515683398151915286614ad6565b90505b61348881613cd6565b90935091506000805160206151568339815191528283098314156134c2576040805180820190915290815260208101919091529392505050565b60008051602061515683398151915260018208905061347f565b60408051808201825286815260208082018690528251808401909352868352820184905260009182919061350e613fee565b60005b60028110156136d3576000613527826006614b27565b905084826002811061353b5761353b614ac0565b6020020151518361354d83600061407d565b600c811061355d5761355d614ac0565b602002015284826002811061357457613574614ac0565b6020020151602001518382600161358b919061407d565b600c811061359b5761359b614ac0565b60200201528382600281106135b2576135b2614ac0565b60200201515151836135c583600261407d565b600c81106135d5576135d5614ac0565b60200201528382600281106135ec576135ec614ac0565b602002015151600160200201518361360583600361407d565b600c811061361557613615614ac0565b602002015283826002811061362c5761362c614ac0565b60200201516020015160006002811061364757613647614ac0565b60200201518361365883600461407d565b600c811061366857613668614ac0565b602002015283826002811061367f5761367f614ac0565b60200201516020015160016002811061369a5761369a614ac0565b6020020151836136ab83600561407d565b600c81106136bb576136bb614ac0565b602002015250806136cb81614c7d565b915050613511565b506136dc61400d565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b606060008061370e846139e0565b61ffff166001600160401b0381111561372957613729614095565b6040519080825280601f01601f191660200182016040528015613753576020820181803683370190505b5090506000805b82518210801561376b575061010081105b15612e11576001811b9350858416156137b2578060f81b83838151811061379457613794614ac0565b60200101906001600160f81b031916908160001a9053508160010191505b6137bb81614c7d565b905061375a565b6033546001600160a01b031633146124e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097f565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600054610100900460ff166139375760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161097f565b61394082613b8a565b6139498161381c565b5050565b60008061395984613d58565b9050808360ff166001901b116139d75760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161097f565b90505b92915050565b6000805b82156139da576139f5600184614ba4565b9092169180613a0381615133565b9150506139e4565b60408051808201909152600080825260208201526102008261ffff1610613a675760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161097f565b8161ffff1660011415613a7b5750816139da565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613ae457600161ffff871660ff83161c81161415613ac757613ac484846132f8565b93505b613ad183846132f8565b92506201fffe600192831b169101613a97565b509195945050505050565b60408051808201909152600080825260208201528151158015613b1457506020820151155b15613b32575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151568339815191528460200151613b659190614ad6565b613b7d90600080516020615156833981519152614ba4565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208451613bec9190614ad6565b15613c735760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161097f565b8260205b85518111610de057613c8a600285614ad6565b613cab57816000528086015160205260406000209150600284049350613cc4565b8086015160005281602052604060002091506002840493505b613ccf60208261407d565b9050613c77565b60008080600080516020615156833981519152600360008051602061515683398151915286600080516020615156833981519152888909090890506000613d4c827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615156833981519152613ee5565b91959194509092505050565b600061010082511115613de15760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161097f565b8151613def57506000919050565b60008083600081518110613e0557613e05614ac0565b0160200151600160f89190911c81901b92505b8451811015613edc57848181518110613e3357613e33614ac0565b0160200151600160f89190911c1b9150828211613ec85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161097f565b91811791613ed581614c7d565b9050613e18565b50909392505050565b600080613ef061400d565b613ef861402b565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156132b0575082613f825760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161097f565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280613fdc614049565b8152602001613fe9614049565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561409057614090614067565b500190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156140cd576140cd614095565b60405290565b60405161010081016001600160401b03811182821017156140cd576140cd614095565b604051601f8201601f191681016001600160401b038111828210171561411e5761411e614095565b604052919050565b60006001600160401b0383111561413f5761413f614095565b614152601f8401601f19166020016140f6565b905082815283838301111561416657600080fd5b828260208301376000602084830101529392505050565b600082601f83011261418e57600080fd5b61419d83833560208501614126565b9392505050565b6001600160a01b03811681146110f457600080fd5b600080600080600080600080610100898b0312156141d657600080fd5b88359750602089013596506040890135955060608901356001600160601b03198116811461420357600080fd5b94506080890135935060a08901356001600160401b0381111561422557600080fd5b6142318b828c0161417d565b93505060c0890135915060e0890135614249816141a4565b809150509295985092959890939650565b60006040828403121561426c57600080fd5b6142746140ab565b9050813581526020820135602082015292915050565b600082601f83011261429b57600080fd5b6142a36140ab565b8060408401858111156142b557600080fd5b845b818110156142cf5780358452602093840193016142b7565b509095945050505050565b6000608082840312156142ec57600080fd5b6142f46140ab565b9050614300838361428a565b815261430f836040840161428a565b602082015292915050565b600080600080610120858703121561433157600080fd5b84359350614342866020870161425a565b925061435186606087016142da565b91506143608660e0870161425a565b905092959194509250565b60006001600160401b0382111561438457614384614095565b5060051b60200190565b803563ffffffff81168114613b8557600080fd5b600082601f8301126143b357600080fd5b813560206143c86143c38361436b565b6140f6565b82815260059290921b840181019181810190868411156143e757600080fd5b8286015b84811015614409576143fc8161438e565b83529183019183016143eb565b509695505050505050565b600082601f83011261442557600080fd5b813560206144356143c38361436b565b82815260069290921b8401810191818101908684111561445457600080fd5b8286015b848110156144095761446a888261425a565b835291830191604001614458565b600082601f83011261448957600080fd5b813560206144996143c38361436b565b82815260059290921b840181019181810190868411156144b857600080fd5b8286015b848110156144095780356001600160401b038111156144db5760008081fd5b6144e98986838b01016143a2565b8452509183019183016144bc565b6000610180828403121561450a57600080fd5b6145126140d3565b905081356001600160401b038082111561452b57600080fd5b614537858386016143a2565b8352602084013591508082111561454d57600080fd5b61455985838601614414565b6020840152604084013591508082111561457257600080fd5b61457e85838601614414565b604084015261459085606086016142da565b60608401526145a28560e0860161425a565b60808401526101208401359150808211156145bc57600080fd5b6145c8858386016143a2565b60a08401526101408401359150808211156145e257600080fd5b6145ee858386016143a2565b60c084015261016084013591508082111561460857600080fd5b5061461584828501614478565b60e08301525092915050565b6000806040838503121561463457600080fd5b8235915060208301356001600160401b0381111561465157600080fd5b61465d858286016144f7565b9150509250929050565b60006020828403121561467957600080fd5b81356139d7816141a4565b6020808252825182820181905260009190848201906040850190845b818110156146c55783516001600160a01b0316835292840192918401916001016146a0565b50909695505050505050565b80151581146110f457600080fd5b6000602082840312156146f157600080fd5b81356139d7816146d1565b6000806040838503121561470f57600080fd5b823561471a816141a4565b9150602083013561472a816141a4565b809150509250929050565b60008060006060848603121561474a57600080fd5b8335925061475a6020850161438e565b915060408401356001600160401b0381111561477557600080fd5b614781868287016144f7565b9150509250925092565b600081518084526020808501945080840160005b838110156147c45781516001600160601b03168752958201959082019060010161479f565b509495945050505050565b60408152600083516040808401526147ea608084018261478b565b90506020850151603f19848303016060850152614807828261478b565b925050508260208301529392505050565b60008083601f84011261482a57600080fd5b5081356001600160401b0381111561484157600080fd5b60208301915083602082850101111561485957600080fd5b9250929050565b60008060006040848603121561487557600080fd5b8335925060208401356001600160401b0381111561489257600080fd5b61489e86828701614818565b9497909650939450505050565b6000806000604084860312156148c057600080fd5b83356001600160401b038111156148d657600080fd5b6148e286828701614818565b909790965060209590950135949350505050565b6000806040838503121561490957600080fd5b8235614914816141a4565b915060208301356001600160401b038082111561493057600080fd5b908401906060828703121561494457600080fd5b60405160608101818110838211171561495f5761495f614095565b60405282358281111561497157600080fd5b61497d8882860161417d565b82525060208301356020820152604083013560408201528093505050509250929050565b6000602082840312156149b357600080fd5b81356001600160401b038111156149c957600080fd5b8201601f810184136149da57600080fd5b6149e984823560208401614126565b949350505050565b600080600060608486031215614a0657600080fd5b83359250602084013561475a816141a4565b600060208284031215614a2a57600080fd5b5035919050565b60008060208385031215614a4457600080fd5b82356001600160401b0380821115614a5b57600080fd5b818501915085601f830112614a6f57600080fd5b813581811115614a7e57600080fd5b8660208260051b8501011115614a9357600080fd5b60209290920196919550909350505050565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614af357634e487b7160e01b600052601260045260246000fd5b500690565b60006001600160601b0380831681851681830481118215151615614b1e57614b1e614067565b02949350505050565b6000816000190483118215151615614b4157614b41614067565b500290565b602080825260409082018190527f5369676e61746f7269657320646f206e6f74206f776e206174206c6561737420908201527f7468726573686f6c642070657263656e74616765206f6620612071756f72756d606082015260800190565b600082821015614bb657614bb6614067565b500390565b6020808252603c908201527f4261746368657220686173206e6f742073756666696369656e742066756e647360408201527f20666f7220706179696e672074686973207472616e73616374696f6e00000000606082015260800190565b600060208284031215614c2a57600080fd5b5051919050565b600060208284031215614c4357600080fd5b81516001600160c01b03811681146139d757600080fd5b600060208284031215614c6c57600080fd5b815160ff811681146139d757600080fd5b6000600019821415614c9157614c91614067565b5060010190565b6001600160601b03811681146110f457600080fd5b600060408284031215614cbf57600080fd5b614cc76140ab565b8251614cd2816141a4565b81526020830151614ce281614c98565b60208201529392505050565b600060208284031215614d0057600080fd5b81516139d7816141a4565b600060208284031215614d1d57600080fd5b815167ffffffffffffffff19811681146139d757600080fd5b600060208284031215614d4857600080fd5b81516139d781614c98565b60006001600160601b0383811690831681811015614d7357614d73614067565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614db657815185529382019390820190600101614d9a565b5092979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000614e0c604083018486614dc3565b95945050505050565b6001600160a01b038516815263ffffffff84166020820152606060408201819052600090614e469083018486614dc3565b9695505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614efe57602081850181015186830182015201614ee2565b81811115614f10576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b0383168152604060208201526000825160606040840152614f4f60a0840182614ed8565b90506020840151606084015260408401516080840152809150509392505050565b60208152600061419d6020830184614ed8565b60008235609e19833603018112614f9957600080fd5b9190910192915050565b8035613b85816141a4565b600060208284031215614fc057600080fd5b81516139d7816146d1565b8183526000602080850194508260005b858110156147c4578135614fee816141a4565b6001600160a01b031687528183013561500681614c98565b6001600160601b0316878401526040968701969190910190600101614fdb565b60208082528181018390526000906040808401600586901b8501820187855b8881101561512557878303603f190184528135368b9003609e1901811261506b57600080fd5b8a0160a0813536839003601e1901811261508457600080fd5b820180356001600160401b0381111561509c57600080fd5b8060061b36038413156150ae57600080fd5b8287526150c0838801828c8501614fcb565b925050506150cf888301614fa3565b6001600160a01b031688860152818701358786015260606150f181840161438e565b63ffffffff1690860152608061510883820161438e565b63ffffffff16950194909452509285019290850190600101615045565b509098975050505050505050565b600061ffff8083168181141561514b5761514b614067565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122015291e7c0ca7fb3106e540fb13a51d69bcee5541091c650c9b3526c6fcc77b4964736f6c634300080c0033","sourceMap":"1015:10203:171:-:0;;;1837:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1590:30:115;;;;;1630:42;;;;;1682:44;;;;;1736:32;;;;2063:21:171;2126:14;2154:20;2063:21;2223:15;2276:22:114::1;:20;:22::i;:::-;1894:411:::0;;;;1793:20:108;-1:-1:-1;;;;;1771:42:108;;;-1:-1:-1;;;;;1771:42:108;;;;;1839:20;-1:-1:-1;;;;;1839:34:108;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1823:52:108;;;-1:-1:-1;;;;;1823:52:108;;;;;1902:20;-1:-1:-1;;;;;1902:35:108;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1885:54:108;;;-1:-1:-1;;;;;1885:54:108;;;;;1962:13;;-1:-1:-1;;;;;1962:24:108;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1949:39:108;;;-1:-1:-1;2263:22:171::2;:20;:22::i;:::-;1837:455:::0;;;;1015:10203;;5388:279:45;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:45;;2079:2:176;5447:66:45;;;2061:21:176;2118:2;2098:18;;;2091:30;2157:34;2137:18;;;2130:62;-1:-1:-1;;;2208:18:176;;;2201:37;2255:19;;5447:66:45;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:45;5588:15;5573:30;;;;;;5622:28;;2427:36:176;;;5622:28:45;;2415:2:176;2400:18;5622:28:45;;;;;;;5523:138;5388:279::o;14:146:176:-;-1:-1:-1;;;;;104:31:176;;94:42;;84:70;;150:1;147;140:12;84:70;14:146;:::o;165:818::-;366:6;374;382;390;443:3;431:9;422:7;418:23;414:33;411:53;;;460:1;457;450:12;411:53;492:9;486:16;511:46;551:5;511:46;:::i;:::-;626:2;611:18;;605:25;576:5;;-1:-1:-1;639:48:176;605:25;639:48;:::i;:::-;758:2;743:18;;737:25;706:7;;-1:-1:-1;771:48:176;737:25;771:48;:::i;:::-;890:2;875:18;;869:25;838:7;;-1:-1:-1;903:48:176;869:25;903:48;:::i;:::-;165:818;;;;-1:-1:-1;165:818:176;;-1:-1:-1;;165:818:176:o;988:290::-;1082:6;1135:2;1123:9;1114:7;1110:23;1106:32;1103:52;;;1151:1;1148;1141:12;1103:52;1183:9;1177:16;1202:46;1242:5;1202:46;:::i;:::-;1267:5;988:290;-1:-1:-1;;;988:290:176:o;2285:184::-;1015:10203:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063b099627e1161008a578063e481af9d11610064578063e481af9d14610632578063f2fde38b14610647578063fc299dee14610667578063fce36c7d1461068757600080fd5b8063b099627e14610589578063b98d0908146105e4578063df5cf723146105fe57600080fd5b80639926ee7d116100c65780639926ee7d14610509578063a364f4da14610529578063a98fb35514610549578063ab21739a1461056957600080fd5b8063715018a6146104b65780638da5cb5b146104cb57806395c6d604146104e957600080fd5b80634ae07c3711610159578063683048351161013357806368304835146103d75780636b3aa72e1461040b5780636d14a9871461043e57806370a082311461047257600080fd5b80634ae07c371461034a5780635c008994146103785780635df459461461038b57600080fd5b806333cfb7b71161019557806333cfb7b7146102bd5780633bc28c8c146102ea578063416c7e5e1461030a578063485cc9551461032a57600080fd5b806306045a911461022f578063171f1d5b146102645780632dd94eba1461029b57600080fd5b3661022a5733600090815260ca6020526040812080543492906101df90849061407d565b909155505033600081815260ca60209081526040918290205491519182527f0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0910160405180910390a2005b600080fd5b34801561023b57600080fd5b5061024f61024a3660046141b9565b6106a7565b60405190151581526020015b60405180910390f35b34801561027057600080fd5b5061028461027f36600461431a565b610786565b60408051921515835290151560208301520161025b565b3480156102a757600080fd5b506102bb6102b6366004614621565b610910565b005b3480156102c957600080fd5b506102dd6102d8366004614667565b610c10565b60405161025b9190614684565b3480156102f657600080fd5b506102bb610305366004614667565b6110e3565b34801561031657600080fd5b506102bb6103253660046146df565b6110f7565b34801561033657600080fd5b506102bb6103453660046146fc565b61122e565b34801561035657600080fd5b5061036a610365366004614735565b611343565b60405161025b9291906147cf565b6102bb610386366004614860565b612296565b34801561039757600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161025b565b3480156103e357600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103bf565b34801561044a57600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561047e57600080fd5b506104a861048d366004614667565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161025b565b3480156104c257600080fd5b506102bb6124d1565b3480156104d757600080fd5b506033546001600160a01b03166103bf565b3480156104f557600080fd5b5061024f6105043660046148ab565b6124e5565b34801561051557600080fd5b506102bb6105243660046148f6565b61250a565b34801561053557600080fd5b506102bb610544366004614667565b6125d6565b34801561055557600080fd5b506102bb6105643660046149a1565b61269d565b34801561057557600080fd5b506102bb6105843660046149f1565b6126f1565b34801561059557600080fd5b506105c86105a4366004614a18565b60c96020526000908152604090205463ffffffff811690600160201b900460ff1682565b6040805163ffffffff909316835290151560208301520161025b565b3480156105f057600080fd5b5060975461024f9060ff1681565b34801561060a57600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561063e57600080fd5b506102dd612a52565b34801561065357600080fd5b506102bb610662366004614667565b612e1b565b34801561067357600080fd5b506065546103bf906001600160a01b031681565b34801561069357600080fd5b506102bb6106a2366004614a31565b612e91565b60008085836040516020016106bd929190614aa5565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff166106f957600091505061077a565b600081815260c96020526040902054600160201b900460ff1661072057600091505061077a565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f198184030181529190528051602082012090915061077487848389613249565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106107ce576107ce614ac0565b60200201518951600160200201518a602001516000600281106107f3576107f3614ac0565b60200201518b6020015160016002811061080f5761080f614ac0565b602090810291909101518c518d83015160405161086c9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c61088f9190614ad6565b90506109026108a86108a18884613261565b86906132f8565b6108b061338c565b6108f86108e9856108e3604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613261565b6108f28c61344c565b906132f8565b886201d4c06134dc565b909890975095505050505050565b737969c5ed335650692bc04293b07f5bf2e7a673c060005a600085815260c9602052604090205490915063ffffffff166109885760405162461bcd60e51b8152602060048201526014602482015273426174636820646f65736e27742065786973747360601b60448201526064015b60405180910390fd5b600084815260c96020526040902054600160201b900460ff16156109e85760405162461bcd60e51b815260206004820152601760248201527610985d18da08185b1c9958591e481c995cdc1bdb991959604a1b604482015260640161097f565b6001600160a01b038216600090815260ca6020526040902054610a465760405162461bcd60e51b81526020600482015260166024820152754261746368657220686173206e6f2062616c616e636560501b604482015260640161097f565b600084815260c960205260408120805464ff00000000198116600160201b179091558190610a7c90879063ffffffff1687611343565b91509150604360ff168260200151600081518110610a9c57610a9c614ac0565b6020026020010151610aae9190614af8565b6001600160601b031660648360000151600081518110610ad057610ad0614ac0565b60200260200101516001600160601b0316610aeb9190614b27565b1015610b095760405162461bcd60e51b815260040161097f90614b46565b6040516001600160a01b038516815286907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260005a905060003a610b598387614ba4565b610b66906201117061407d565b610b709190614b27565b6001600160a01b038716600090815260ca6020526040902054909150811115610bab5760405162461bcd60e51b815260040161097f90614bbb565b6001600160a01b038616600090815260ca602052604081208054839290610bd3908490614ba4565b9091555050604051339082156108fc029083906000818181858888f19350505050158015610c05573d6000803e3d6000fd5b505050505050505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca09190614c18565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2f9190614c31565b90506001600160c01b0381161580610dc957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc49190614c5a565b60ff16155b15610de95760408051600080825260208201909252905b50949350505050565b6000610dfd826001600160c01b0316613700565b90506000805b8251811015610ed3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610e4d57610e4d614ac0565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb59190614c18565b610ebf908361407d565b915080610ecb81614c7d565b915050610e03565b506000816001600160401b03811115610eee57610eee614095565b604051908082528060200260200182016040528015610f17578160200160208202803683370190505b5090506000805b84518110156110d6576000858281518110610f3b57610f3b614ac0565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190614c18565b905060005b818110156110c0576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190614cad565b6000015186868151811061108857611088614ac0565b6001600160a01b0390921660209283029190910190910152846110aa81614c7d565b95505080806110b890614c7d565b915050610fd9565b50505080806110ce90614c7d565b915050610f1e565b5090979650505050505050565b6110eb6137c2565b6110f48161381c565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190614cee565b6001600160a01b0316336001600160a01b0316146112255760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161097f565b6110f481613885565b600054610100900460ff161580801561124e5750600054600160ff909116105b806112685750303b158015611268575060005460ff166001145b6112cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161097f565b6000805460ff1916600117905580156112ee576000805461ff0019166101001790555b6112f883836138cc565b801561133e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561139f57508260a0015151604051806040016040528060018152602001600081525051145b80156113c657508260c0015151604051806040016040528060018152602001600081525051145b80156113ed57508260e0015151604051806040016040528060018152602001600081525051145b6114575760405162461bcd60e51b8152602060048201526041602482015260008051602061517683398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161097f565b825151602084015151146114cf5760405162461bcd60e51b815260206004820152604460248201819052600080516020615176833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161097f565b4363ffffffff168463ffffffff161061153e5760405162461bcd60e51b815260206004820152603c602482015260008051602061517683398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161097f565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156115ff576115ff614095565b604051908082528060200260200182016040528015611628578160200160208202803683370190505b5081526020860151516001600160401b0381111561164857611648614095565b604051908082528060200260200182016040528015611671578160200160208202803683370190505b508160200181905250600061171d60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190614c5a565b61394d565b905060005b8760200151518110156119b8576117678860200151828151811061174857611748614ac0565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061177d5761177d614ac0565b6020908102919091010152801561183d57602083015161179e600183614ba4565b815181106117ae576117ae614ac0565b602002602001015160001c836020015182815181106117cf576117cf614ac0565b602002602001015160001c1161183d576040805162461bcd60e51b815260206004820152602481019190915260008051602061517683398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161097f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061188257611882614ac0565b60200260200101518b8b6000015185815181106118a1576118a1614ac0565b60200260200101516040518463ffffffff1660e01b81526004016118de9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156118fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191f9190614c31565b6001600160c01b03168360000151828151811061193e5761193e614ac0565b6020026020010181815250506119a46108a1611978848660000151858151811061196a5761196a614ac0565b6020026020010151166139e0565b8a60200151848151811061198e5761198e614ac0565b6020026020010151613a0b90919063ffffffff16565b9450806119b081614c7d565b915050611722565b50506119c383613aef565b60975490935060ff166000816119da576000611a5c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190614c18565b905060005b604051806040016040528060018152602001600081525051811015612167578215611bed578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611ae557611ae5614ac0565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4d9190614c18565b611b57919061407d565b11611bed5760405162461bcd60e51b8152602060048201526066602482015260008051602061517683398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161097f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611c4457611c44614ac0565b602001015160f81c60f81b60f81c8c8c60a001518581518110611c6957611c69614ac0565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce99190614d0b565b6001600160401b031916611d0c8a60400151838151811061174857611748614ac0565b67ffffffffffffffff191614611da85760405162461bcd60e51b8152602060048201526061602482015260008051602061517683398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161097f565b611dd889604001518281518110611dc157611dc1614ac0565b6020026020010151876132f890919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611e3157611e31614ac0565b602001015160f81c60f81b60f81c8c8c60c001518581518110611e5657611e56614ac0565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed69190614d36565b85602001518281518110611eec57611eec614ac0565b6001600160601b03909216602092830291909101820152850151805182908110611f1857611f18614ac0565b602002602001015185600001518281518110611f3657611f36614ac0565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561215257611fc586600001518281518110611f8057611f80614ac0565b602002602001015160405180604001604052806001815260200160008152508581518110611fb057611fb0614ac0565b016020015160f81c60ff161c60019081161490565b15612140577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae6040518060400160405280600181526020016000815250858151811061202157612021614ac0565b602001015160f81c60f81b60f81c8e8960200151858151811061204657612046614ac0565b60200260200101518f60e00151888151811061206457612064614ac0565b6020026020010151878151811061207d5761207d614ac0565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa1580156120e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121059190614d36565b875180518590811061211957612119614ac0565b6020026020010181815161212d9190614d53565b6001600160601b03169052506001909101905b8061214a81614c7d565b915050611f5a565b5050808061215f90614c7d565b915050611a61565b5050506000806121818a868a606001518b60800151610786565b91509150816121f25760405162461bcd60e51b8152602060048201526043602482015260008051602061517683398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161097f565b806122535760405162461bcd60e51b8152602060048201526039602482015260008051602061517683398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161097f565b5050600087826020015160405160200161226e929190614d7b565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b600062229cd74310156122aa5750826122d6565b83336040516020016122bd929190614aa5565b6040516020818303038152906040528051906020012090505b600081815260c9602052604090205463ffffffff16156123385760405162461bcd60e51b815260206004820152601b60248201527f42617463682077617320616c7265616479207375626d69747465640000000000604482015260640161097f565b34156123a75733600090815260ca60205260408120805434929061235d90849061407d565b909155505033600081815260ca60209081526040918290205491519182527f0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0910160405180910390a25b33600090815260ca60205260409020546124035760405162461bcd60e51b815260206004820152601860248201527f426174636865722062616c616e636520697320656d7074790000000000000000604482015260640161097f565b6040805180820182526000602080830182815263ffffffff43818116865287855260c9909352928590208451815492511515600160201b0264ffffffffff19909316941693909317179091559151909186917f1871c33134a542e0ab9facf7013d27b9ed95e64d299e9919ee091c9cfcb19fa5916124849188908890614dec565b60405180910390a2847f130d3e81af62e03ed6fff5e3bb343695ec513892cfad24d286486745dcc61437334387876040516124c29493929190614e15565b60405180910390a25050505050565b6124d96137c2565b6124e36000613b8a565b565b60008184846040516124f8929190614e50565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146125525760405162461bcd60e51b815260040161097f90614e60565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906125a09085908590600401614f25565b600060405180830381600087803b1580156125ba57600080fd5b505af11580156125ce573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461261e5760405162461bcd60e51b815260040161097f90614e60565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561268257600080fd5b505af1158015612696573d6000803e3d6000fd5b5050505050565b6126a56137c2565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612668908490600401614f70565b60005a90506000848460405160200161270b929190614aa5565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1661277c5760405162461bcd60e51b8152602060048201526014602482015273426174636820646f65736e27742065786973747360601b604482015260640161097f565b600081815260c96020526040902054600160201b900460ff16156127dc5760405162461bcd60e51b815260206004820152601760248201527610985d18da08185b1c9958591e481c995cdc1bdb991959604a1b604482015260640161097f565b6001600160a01b038416600090815260ca602052604090205461283a5760405162461bcd60e51b81526020600482015260166024820152754261746368657220686173206e6f2062616c616e636560501b604482015260640161097f565b600081815260c960205260408120805464ff00000000198116600160201b17909155819061287090849063ffffffff1687611343565b91509150604360ff16826020015160008151811061289057612890614ac0565b60200260200101516128a29190614af8565b6001600160601b0316606483600001516000815181106128c4576128c4614ac0565b60200260200101516001600160601b03166128df9190614b27565b10156128fd5760405162461bcd60e51b815260040161097f90614b46565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260005a905060003a61294d8388614ba4565b61295a906201117061407d565b6129649190614b27565b6001600160a01b038916600090815260ca602052604090205490915081111561299f5760405162461bcd60e51b815260040161097f90614bbb565b6001600160a01b038816600090815260ca6020526040812080548392906129c7908490614ba4565b90915550506001600160a01b038816600081815260ca60209081526040918290205491519182527f0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015612a46573d6000803e3d6000fd5b50505050505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad89190614c5a565b60ff16905080612af657505060408051600081526020810190915290565b6000805b82811015612bab57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b8d9190614c18565b612b97908361407d565b915080612ba381614c7d565b915050612afa565b506000816001600160401b03811115612bc657612bc6614095565b604051908082528060200260200182016040528015612bef578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c789190614c5a565b60ff16811015612e1157604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612cec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d109190614c18565b905060005b81811015612dfc576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dae9190614cad565b60000151858581518110612dc457612dc4614ac0565b6001600160a01b039092166020928302919091019091015283612de681614c7d565b9450508080612df490614c7d565b915050612d15565b50508080612e0990614c7d565b915050612bf6565b5090949350505050565b612e236137c2565b6001600160a01b038116612e885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161097f565b6110f481613b8a565b6065546001600160a01b03163314612f265760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161097f565b60005b818110156131fa57828282818110612f4357612f43614ac0565b9050602002810190612f559190614f83565b612f66906040810190602001614667565b6001600160a01b03166323b872dd3330868686818110612f8857612f88614ac0565b9050602002810190612f9a9190614f83565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015612ff1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130159190614fae565b50600083838381811061302a5761302a614ac0565b905060200281019061303c9190614f83565b61304d906040810190602001614667565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156130bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130df9190614c18565b90508383838181106130f3576130f3614ac0565b90506020028101906131059190614f83565b613116906040810190602001614667565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061315857613158614ac0565b905060200281019061316a9190614f83565b60400135613178919061407d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156131c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e79190614fae565b5050806131f390614c7d565b9050612f29565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906125a09085908590600401615026565b600083613257868585613bdc565b1495945050505050565b604080518082019091526000808252602082015261327d613f8d565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156132b0576132b2565bfe5b50806132f05760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161097f565b505092915050565b6040805180820190915260008082526020820152613314613fab565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156132b05750806132f05760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161097f565b613394613fc9565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061347c60008051602061515683398151915286614ad6565b90505b61348881613cd6565b90935091506000805160206151568339815191528283098314156134c2576040805180820190915290815260208101919091529392505050565b60008051602061515683398151915260018208905061347f565b60408051808201825286815260208082018690528251808401909352868352820184905260009182919061350e613fee565b60005b60028110156136d3576000613527826006614b27565b905084826002811061353b5761353b614ac0565b6020020151518361354d83600061407d565b600c811061355d5761355d614ac0565b602002015284826002811061357457613574614ac0565b6020020151602001518382600161358b919061407d565b600c811061359b5761359b614ac0565b60200201528382600281106135b2576135b2614ac0565b60200201515151836135c583600261407d565b600c81106135d5576135d5614ac0565b60200201528382600281106135ec576135ec614ac0565b602002015151600160200201518361360583600361407d565b600c811061361557613615614ac0565b602002015283826002811061362c5761362c614ac0565b60200201516020015160006002811061364757613647614ac0565b60200201518361365883600461407d565b600c811061366857613668614ac0565b602002015283826002811061367f5761367f614ac0565b60200201516020015160016002811061369a5761369a614ac0565b6020020151836136ab83600561407d565b600c81106136bb576136bb614ac0565b602002015250806136cb81614c7d565b915050613511565b506136dc61400d565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b606060008061370e846139e0565b61ffff166001600160401b0381111561372957613729614095565b6040519080825280601f01601f191660200182016040528015613753576020820181803683370190505b5090506000805b82518210801561376b575061010081105b15612e11576001811b9350858416156137b2578060f81b83838151811061379457613794614ac0565b60200101906001600160f81b031916908160001a9053508160010191505b6137bb81614c7d565b905061375a565b6033546001600160a01b031633146124e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097f565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600054610100900460ff166139375760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161097f565b61394082613b8a565b6139498161381c565b5050565b60008061395984613d58565b9050808360ff166001901b116139d75760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161097f565b90505b92915050565b6000805b82156139da576139f5600184614ba4565b9092169180613a0381615133565b9150506139e4565b60408051808201909152600080825260208201526102008261ffff1610613a675760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161097f565b8161ffff1660011415613a7b5750816139da565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613ae457600161ffff871660ff83161c81161415613ac757613ac484846132f8565b93505b613ad183846132f8565b92506201fffe600192831b169101613a97565b509195945050505050565b60408051808201909152600080825260208201528151158015613b1457506020820151155b15613b32575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151568339815191528460200151613b659190614ad6565b613b7d90600080516020615156833981519152614ba4565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208451613bec9190614ad6565b15613c735760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161097f565b8260205b85518111610de057613c8a600285614ad6565b613cab57816000528086015160205260406000209150600284049350613cc4565b8086015160005281602052604060002091506002840493505b613ccf60208261407d565b9050613c77565b60008080600080516020615156833981519152600360008051602061515683398151915286600080516020615156833981519152888909090890506000613d4c827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615156833981519152613ee5565b91959194509092505050565b600061010082511115613de15760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161097f565b8151613def57506000919050565b60008083600081518110613e0557613e05614ac0565b0160200151600160f89190911c81901b92505b8451811015613edc57848181518110613e3357613e33614ac0565b0160200151600160f89190911c1b9150828211613ec85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161097f565b91811791613ed581614c7d565b9050613e18565b50909392505050565b600080613ef061400d565b613ef861402b565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156132b0575082613f825760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161097f565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280613fdc614049565b8152602001613fe9614049565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561409057614090614067565b500190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156140cd576140cd614095565b60405290565b60405161010081016001600160401b03811182821017156140cd576140cd614095565b604051601f8201601f191681016001600160401b038111828210171561411e5761411e614095565b604052919050565b60006001600160401b0383111561413f5761413f614095565b614152601f8401601f19166020016140f6565b905082815283838301111561416657600080fd5b828260208301376000602084830101529392505050565b600082601f83011261418e57600080fd5b61419d83833560208501614126565b9392505050565b6001600160a01b03811681146110f457600080fd5b600080600080600080600080610100898b0312156141d657600080fd5b88359750602089013596506040890135955060608901356001600160601b03198116811461420357600080fd5b94506080890135935060a08901356001600160401b0381111561422557600080fd5b6142318b828c0161417d565b93505060c0890135915060e0890135614249816141a4565b809150509295985092959890939650565b60006040828403121561426c57600080fd5b6142746140ab565b9050813581526020820135602082015292915050565b600082601f83011261429b57600080fd5b6142a36140ab565b8060408401858111156142b557600080fd5b845b818110156142cf5780358452602093840193016142b7565b509095945050505050565b6000608082840312156142ec57600080fd5b6142f46140ab565b9050614300838361428a565b815261430f836040840161428a565b602082015292915050565b600080600080610120858703121561433157600080fd5b84359350614342866020870161425a565b925061435186606087016142da565b91506143608660e0870161425a565b905092959194509250565b60006001600160401b0382111561438457614384614095565b5060051b60200190565b803563ffffffff81168114613b8557600080fd5b600082601f8301126143b357600080fd5b813560206143c86143c38361436b565b6140f6565b82815260059290921b840181019181810190868411156143e757600080fd5b8286015b84811015614409576143fc8161438e565b83529183019183016143eb565b509695505050505050565b600082601f83011261442557600080fd5b813560206144356143c38361436b565b82815260069290921b8401810191818101908684111561445457600080fd5b8286015b848110156144095761446a888261425a565b835291830191604001614458565b600082601f83011261448957600080fd5b813560206144996143c38361436b565b82815260059290921b840181019181810190868411156144b857600080fd5b8286015b848110156144095780356001600160401b038111156144db5760008081fd5b6144e98986838b01016143a2565b8452509183019183016144bc565b6000610180828403121561450a57600080fd5b6145126140d3565b905081356001600160401b038082111561452b57600080fd5b614537858386016143a2565b8352602084013591508082111561454d57600080fd5b61455985838601614414565b6020840152604084013591508082111561457257600080fd5b61457e85838601614414565b604084015261459085606086016142da565b60608401526145a28560e0860161425a565b60808401526101208401359150808211156145bc57600080fd5b6145c8858386016143a2565b60a08401526101408401359150808211156145e257600080fd5b6145ee858386016143a2565b60c084015261016084013591508082111561460857600080fd5b5061461584828501614478565b60e08301525092915050565b6000806040838503121561463457600080fd5b8235915060208301356001600160401b0381111561465157600080fd5b61465d858286016144f7565b9150509250929050565b60006020828403121561467957600080fd5b81356139d7816141a4565b6020808252825182820181905260009190848201906040850190845b818110156146c55783516001600160a01b0316835292840192918401916001016146a0565b50909695505050505050565b80151581146110f457600080fd5b6000602082840312156146f157600080fd5b81356139d7816146d1565b6000806040838503121561470f57600080fd5b823561471a816141a4565b9150602083013561472a816141a4565b809150509250929050565b60008060006060848603121561474a57600080fd5b8335925061475a6020850161438e565b915060408401356001600160401b0381111561477557600080fd5b614781868287016144f7565b9150509250925092565b600081518084526020808501945080840160005b838110156147c45781516001600160601b03168752958201959082019060010161479f565b509495945050505050565b60408152600083516040808401526147ea608084018261478b565b90506020850151603f19848303016060850152614807828261478b565b925050508260208301529392505050565b60008083601f84011261482a57600080fd5b5081356001600160401b0381111561484157600080fd5b60208301915083602082850101111561485957600080fd5b9250929050565b60008060006040848603121561487557600080fd5b8335925060208401356001600160401b0381111561489257600080fd5b61489e86828701614818565b9497909650939450505050565b6000806000604084860312156148c057600080fd5b83356001600160401b038111156148d657600080fd5b6148e286828701614818565b909790965060209590950135949350505050565b6000806040838503121561490957600080fd5b8235614914816141a4565b915060208301356001600160401b038082111561493057600080fd5b908401906060828703121561494457600080fd5b60405160608101818110838211171561495f5761495f614095565b60405282358281111561497157600080fd5b61497d8882860161417d565b82525060208301356020820152604083013560408201528093505050509250929050565b6000602082840312156149b357600080fd5b81356001600160401b038111156149c957600080fd5b8201601f810184136149da57600080fd5b6149e984823560208401614126565b949350505050565b600080600060608486031215614a0657600080fd5b83359250602084013561475a816141a4565b600060208284031215614a2a57600080fd5b5035919050565b60008060208385031215614a4457600080fd5b82356001600160401b0380821115614a5b57600080fd5b818501915085601f830112614a6f57600080fd5b813581811115614a7e57600080fd5b8660208260051b8501011115614a9357600080fd5b60209290920196919550909350505050565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614af357634e487b7160e01b600052601260045260246000fd5b500690565b60006001600160601b0380831681851681830481118215151615614b1e57614b1e614067565b02949350505050565b6000816000190483118215151615614b4157614b41614067565b500290565b602080825260409082018190527f5369676e61746f7269657320646f206e6f74206f776e206174206c6561737420908201527f7468726573686f6c642070657263656e74616765206f6620612071756f72756d606082015260800190565b600082821015614bb657614bb6614067565b500390565b6020808252603c908201527f4261746368657220686173206e6f742073756666696369656e742066756e647360408201527f20666f7220706179696e672074686973207472616e73616374696f6e00000000606082015260800190565b600060208284031215614c2a57600080fd5b5051919050565b600060208284031215614c4357600080fd5b81516001600160c01b03811681146139d757600080fd5b600060208284031215614c6c57600080fd5b815160ff811681146139d757600080fd5b6000600019821415614c9157614c91614067565b5060010190565b6001600160601b03811681146110f457600080fd5b600060408284031215614cbf57600080fd5b614cc76140ab565b8251614cd2816141a4565b81526020830151614ce281614c98565b60208201529392505050565b600060208284031215614d0057600080fd5b81516139d7816141a4565b600060208284031215614d1d57600080fd5b815167ffffffffffffffff19811681146139d757600080fd5b600060208284031215614d4857600080fd5b81516139d781614c98565b60006001600160601b0383811690831681811015614d7357614d73614067565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614db657815185529382019390820190600101614d9a565b5092979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000614e0c604083018486614dc3565b95945050505050565b6001600160a01b038516815263ffffffff84166020820152606060408201819052600090614e469083018486614dc3565b9695505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614efe57602081850181015186830182015201614ee2565b81811115614f10576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b0383168152604060208201526000825160606040840152614f4f60a0840182614ed8565b90506020840151606084015260408401516080840152809150509392505050565b60208152600061419d6020830184614ed8565b60008235609e19833603018112614f9957600080fd5b9190910192915050565b8035613b85816141a4565b600060208284031215614fc057600080fd5b81516139d7816146d1565b8183526000602080850194508260005b858110156147c4578135614fee816141a4565b6001600160a01b031687528183013561500681614c98565b6001600160601b0316878401526040968701969190910190600101614fdb565b60208082528181018390526000906040808401600586901b8501820187855b8881101561512557878303603f190184528135368b9003609e1901811261506b57600080fd5b8a0160a0813536839003601e1901811261508457600080fd5b820180356001600160401b0381111561509c57600080fd5b8060061b36038413156150ae57600080fd5b8287526150c0838801828c8501614fcb565b925050506150cf888301614fa3565b6001600160a01b031688860152818701358786015260606150f181840161438e565b63ffffffff1690860152608061510883820161438e565b63ffffffff16950194909452509285019290850190600101615045565b509098975050505050505050565b600061ffff8083168181141561514b5761514b614067565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122015291e7c0ca7fb3106e540fb13a51d69bcee5541091c650c9b3526c6fcc77b4964736f6c634300080c0033","sourceMap":"1015:10203:171:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10930:10;10913:28;;;;:16;:28;;;;;:41;;10945:9;;10913:28;:41;;10945:9;;10913:41;:::i;:::-;;;;-1:-1:-1;;10991:10:171;11003:28;;;;:16;:28;;;;;;;;;;10969:63;;425:25:176;;;10969:63:171;;398:18:176;10969:63:171;;;;;;;1015:10203;;;;;9605:1144;;;;;;;;;;-1:-1:-1;9605:1144:171;;;;;:::i;:::-;;:::i;:::-;;;3585:14:176;;3578:22;3560:41;;3548:2;3533:18;9605:1144:171;;;;;;;;14547:1081:108;;;;;;;;;;-1:-1:-1;14547:1081:108;;;;;:::i;:::-;;:::i;:::-;;;;5435:14:176;;5428:22;5410:41;;5494:14;;5487:22;5482:2;5467:18;;5460:50;5383:18;14547:1081:108;5248:268:176;4004:2862:171;;;;;;;;;;-1:-1:-1;4004:2862:171;;;;;:::i;:::-;;:::i;:::-;;7697:1470:114;;;;;;;;;;-1:-1:-1;7697:1470:114;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5599:135::-;;;;;;;;;;-1:-1:-1;5599:135:114;;;;;:::i;:::-;;:::i;2232:123:108:-;;;;;;;;;;-1:-1:-1;2232:123:108;;;;;:::i;:::-;;:::i;2394:187:171:-;;;;;;;;;;-1:-1:-1;2394:187:171;;;;;:::i;:::-;;:::i;4387:9678:108:-;;;;;;;;;;-1:-1:-1;4387:9678:108;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2587:1343:171:-;;;;;;:::i;:::-;;:::i;1183:47:108:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14663:32:176;;;14645:51;;14633:2;14618:18;1183:47:108;14474:228:176;1132:45:108;;;;;;;;;;;;;;;9235:111:114;;;;;;;;;;-1:-1:-1;9325:13:114;9235:111;;1069:57:108;;;;;;;;;;;;;;;10755:115:171;;;;;;;;;;-1:-1:-1;10755:115:171;;;;;:::i;:::-;-1:-1:-1;;;;;10838:25:171;10812:7;10838:25;;;:16;:25;;;;;;;10755:115;;;;425:25:176;;;413:2;398:18;10755:115:171;279:177:176;2071:101:41;;;;;;;;;;;;;:::i;1441:85::-;;;;;;;;;;-1:-1:-1;1513:6:41;;-1:-1:-1;;;;;1513:6:41;1441:85;;11045:171:171;;;;;;;;;;-1:-1:-1;11045:171:171;;;;;:::i;:::-;;:::i;4797:260:114:-;;;;;;;;;;-1:-1:-1;4797:260:114;;;;;:::i;:::-;;:::i;5262:158::-;;;;;;;;;;-1:-1:-1;5262:158:114;;;;;:::i;:::-;;:::i;2721:148::-;;;;;;;;;;-1:-1:-1;2721:148:114;;;;;:::i;:::-;;:::i;6872:2727:171:-;;;;;;;;;;-1:-1:-1;6872:2727:171;;;;;:::i;:::-;;:::i;309:50:172:-;;;;;;;;;;-1:-1:-1;309:50:172;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;309:50:172;;;;;;;;;;18428:10:176;18416:23;;;18398:42;;18483:14;;18476:22;18471:2;18456:18;;18449:50;18371:18;309:50:172;18232:273:176;1421:32:108;;;;;;;;;;-1:-1:-1;1421:32:108;;;;;;;;1236:46;;;;;;;;;;;;;;;6262:951:114;;;;;;;;;;;;;:::i;2321:198:41:-;;;;;;;;;;-1:-1:-1;2321:198:41;;;;;:::i;:::-;;:::i;1212:31:115:-;;;;;;;;;;-1:-1:-1;1212:31:115;;;;-1:-1:-1;;;;;1212:31:115;;;3631:872:114;;;;;;;;;;-1:-1:-1;3631:872:114;;;;;:::i;:::-;;:::i;9605:1144:171:-;9959:4;9975:27;10045:15;10062:13;10028:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;10028:48:171;;;;;;;;;10005:81;;10028:48;10005:81;;;;10101:33;;;;:12;:33;;;;;:50;10005:81;;-1:-1:-1;10101:50:171;;10097:98;;10179:5;10172:12;;;;;10097:98;10210:33;;;;:12;:33;;;;;:43;-1:-1:-1;;;10210:43:171;;;;10205:87;;10276:5;10269:12;;;;;10205:87;10322:163;;;;;;19914:19:176;;;19949:12;;;19942:28;;;19986:12;;;19979:28;;;-1:-1:-1;;;;;;20037:44:176;;20023:12;;;20016:66;10302:17:171;;20098:13:176;;10322:163:171;;;-1:-1:-1;;10322:163:171;;;;;;;;;10517:15;;10322:163;10517:15;;;10322:163;;-1:-1:-1;10562:180:171;10608:11;10637:19;10517:15;10702:26;10562:28;:180::i;:::-;10543:199;;;;;9605:1144;;;;;;;;;;;:::o;14547:1081:108:-;14745:22;14769;14878:13;2037:77:129;14980:7:108;15009:3;:5;;;15036:3;:5;;;15063;:7;;;15071:1;15063:10;;;;;;;:::i;:::-;;;;;15095:7;;15103:1;15095:10;;;;15127:5;:7;;;15135:1;15127:10;;;;;;;:::i;:::-;;;;;15159:5;:7;;;15167:1;15159:10;;;;;;;:::i;:::-;;;;;;;;;;15191:7;;15220;;;;14942:303;;;;;;;;;;;20607:19:176;;;20651:2;20642:12;;20635:28;;;;20688:2;20679:12;;20672:28;;;;20725:2;20716:12;;20709:28;;;;20762:3;20753:13;;20746:29;;;;20800:3;20791:13;;20784:29;20838:3;20829:13;;20822:29;20876:3;20867:13;;20860:29;20914:3;20905:13;;20898:29;20952:3;20943:13;;20254:708;14942:303:108;;;;;;;;;;;;;14915:344;;;;;;14894:375;;:394;;;;:::i;:::-;14878:410;-1:-1:-1;15371:250:108;15402:33;15413:21;:3;14878:410;15413:14;:21::i;:::-;15402:5;;:10;:33::i;:::-;15449:22;:20;:22::i;:::-;15485:67;15514:37;15545:5;15514:19;-1:-1:-1;;;;;;;;;;;;;;;;;2392:13:129;;;;;;;;2400:1;2392:13;;2403:1;2392:13;;;;;2313:99;15514:19:108;:30;;:37::i;:::-;15485:23;15500:7;15485:14;:23::i;:::-;:28;;:67::i;:::-;15566:5;1055:7;15371:17;:250::i;:::-;15330:291;;;;-1:-1:-1;14547:1081:108;-1:-1:-1;;;;;;14547:1081:108:o;4004:2862:171:-;4549:42;4516:22;4627:9;4894:29;;;;:12;:29;;;;;:46;4602:34;;-1:-1:-1;4894:46:171;;4873:118;;;;-1:-1:-1;;;4873:118:171;;21515:2:176;4873:118:171;;;21497:21:176;21554:2;21534:18;;;21527:30;-1:-1:-1;;;21573:18:176;;;21566:50;21633:18;;4873:118:171;;;;;;;;;5071:29;;;;:12;:29;;;;;:39;-1:-1:-1;;;5071:39:171;;;;:48;5050:118;;;;-1:-1:-1;;;5050:118:171;;21864:2:176;5050:118:171;;;21846:21:176;21903:2;21883:18;;;21876:30;-1:-1:-1;;;21922:18:176;;;21915:53;21985:18;;5050:118:171;21662:347:176;5050:118:171;-1:-1:-1;;;;;5200:32:171;;5235:1;5200:32;;;:16;:32;;;;;;5179:105;;;;-1:-1:-1;;;5179:105:171;;22216:2:176;5179:105:171;;;22198:21:176;22255:2;22235:18;;;22228:30;-1:-1:-1;;;22274:18:176;;;22267:52;22336:18;;5179:105:171;22014:346:176;5179:105:171;5295:29;;;;:12;:29;;;;;:46;;-1:-1:-1;;5295:46:171;;-1:-1:-1;;;5295:46:171;;;;:29;;5584:171;;5308:15;;5650:46;;5714:27;5584:15;:171::i;:::-;5476:279;;;;1293:2;5957:90;;:17;:37;;;5995:1;5957:40;;;;;;;;:::i;:::-;;;;;;;:90;;;;:::i;:::-;-1:-1:-1;;;;;5872:175:171;1230:3;5872:17;:38;;;5911:1;5872:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5872:65:171;;;;;:::i;:::-;:175;;5851:286;;;;-1:-1:-1;;;5851:286:171;;;;;;;:::i;:::-;6153:46;;-1:-1:-1;;;;;14663:32:176;;14645:51;;6167:15:171;;6153:46;;14633:2:176;14618:18;6153:46:171;;;;;;;6347:20;6370:9;6347:32;-1:-1:-1;6492:14:171;6551:11;6510:29;6347:32;6510:14;:29;:::i;:::-;:37;;6542:5;6510:37;:::i;:::-;6509:53;;;;:::i;:::-;-1:-1:-1;;;;;6594:32:171;;;;;;:16;:32;;;;;;6492:70;;-1:-1:-1;6594:58:171;-1:-1:-1;6594:58:171;6573:165;;;;-1:-1:-1;;;6573:165:171;;;;;;;:::i;:::-;-1:-1:-1;;;;;6749:54:171;;;;;;:16;:54;;;;;:64;;6807:6;;6749:54;:64;;6807:6;;6749:64;:::i;:::-;;;;-1:-1:-1;;6823:36:171;;6831:10;;6823:36;;;;;6852:6;;6823:36;;;;6852:6;6831:10;6823:36;;;;;;;;;;;;;;;;;;;;;4212:2654;;;;;;4004:2862;;:::o;7697:1470:114:-;7854:44;;-1:-1:-1;;;7854:44:114;;-1:-1:-1;;;;;14663:32:176;;;7854:44:114;;;14645:51:176;7801:16:114;;7833:18;;7854:20;:34;;;;14618:18:176;;7854:44:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7933:55;;-1:-1:-1;;;7933:55:114;;;;;425:25:176;;;7833:65:114;;-1:-1:-1;7908:22:114;;-1:-1:-1;;;;;7933:20:114;:43;;;;398:18:176;;7933:55:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7908:80;-1:-1:-1;;;;;;8003:19:114;;;;:62;;;8026:20;-1:-1:-1;;;;;8026:32:114;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;8003:62;7999:116;;;8088:16;;;8102:1;8088:16;;;;;;;;;;;-1:-1:-1;8081:23:114;7697:1470;-1:-1:-1;;;;7697:1470:114:o;7999:116::-;8196:36;8235:46;8266:14;-1:-1:-1;;;;;8235:46:114;:30;:46::i;:::-;8196:85;-1:-1:-1;8291:21:114;;8322:173;8346:23;:30;8342:1;:34;8322:173;;;8414:14;-1:-1:-1;;;;;8414:35:114;;8456:23;8480:1;8456:26;;;;;;;;:::i;:::-;;;;;8414:70;;-1:-1:-1;;;;;;8414:70:114;;;;;;;8456:26;;;;;8414:70;;;24899:36:176;24872:18;;8414:70:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8397:87;;;;:::i;:::-;;-1:-1:-1;8378:3:114;;;;:::i;:::-;;;;8322:173;;;;8566:35;8618:13;-1:-1:-1;;;;;8604:28:114;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8604:28:114;;8566:66;;8642:13;8674:9;8669:457;8693:23;:30;8689:1;:34;8669:457;;;8744:12;8765:23;8789:1;8765:26;;;;;;;;:::i;:::-;;;;;8837:43;;-1:-1:-1;;;8837:43:114;;8765:26;;;;;8837:43;;;24899:36:176;;;8765:26:114;-1:-1:-1;;;;;;;;8837:14:114;:35;;;;24872:18:176;;8837:43:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8806:74;;8899:9;8894:222;8918:20;8914:1;:24;8894:222;;;9019:47;;-1:-1:-1;;;9019:47:114;;25475:4:176;25463:17;;9019:47:114;;;25445:36:176;25497:18;;;25490:34;;;9019:14:114;-1:-1:-1;;;;;9019:36:114;;;;25418:18:176;;9019:47:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;8963:18;8982:5;8963:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8963:113:114;;;:25;;;;;;;;;;;:113;9094:7;;;;:::i;:::-;;;;8940:3;;;;;:::i;:::-;;;;8894:222;;;;8730:396;;8725:3;;;;;:::i;:::-;;;;8669:457;;;-1:-1:-1;9142:18:114;;7697:1470;-1:-1:-1;;;;;;;7697:1470:114:o;5599:135::-;1334:13:41;:11;:13::i;:::-;5686:41:114::1;5707:19;5686:20;:41::i;:::-;5599:135:::0;:::o;2232:123:108:-;1537:19;-1:-1:-1;;;;;1537:25:108;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1523:41:108;:10;-1:-1:-1;;;;;1523:41:108;;1502:180;;;;-1:-1:-1;;;1502:180:108;;26633:2:176;1502:180:108;;;26615:21:176;26672:2;26652:18;;;26645:30;26711:34;26691:18;;;26684:62;26782:34;26762:18;;;26755:62;26854:30;26833:19;;;26826:59;26902:19;;1502:180:108;26431:496:176;1502:180:108;2317:31:::1;2342:5;2317:24;:31::i;2394:187:171:-:0;3111:19:45;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:45;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:45;1476:19:49;:23;;;3219:66:45;;-1:-1:-1;3268:12:45;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:45;;27134:2:176;3157:201:45;;;27116:21:176;27173:2;27153:18;;;27146:30;27212:34;27192:18;;;27185:62;-1:-1:-1;;;27263:18:176;;;27256:44;27317:19;;3157:201:45;26932:410:176;3157:201:45;3368:12;:16;;-1:-1:-1;;3368:16:45;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:45;;;;;3394:65;2515:59:171::1;2541:13;2556:17;2515:25;:59::i;:::-;3483:14:45::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:45;;;3553:14;;-1:-1:-1;24899:36:176;;3553:14:45;;24887:2:176;24872:18;3553:14:45;;;;;;;3479:99;3101:483;2394:187:171;;:::o;4387:9678:108:-;-1:-1:-1;;;;;;;;;;;;;;;;;4578:7:108;4651:6;:17;;;:24;4619:21;;;;;;;;;;;;;;;;;:28;:56;4618:142;;;;;4729:6;:23;;;:30;4697:21;;;;;;;;;;;;;;;;;:28;:62;4618:142;:227;;;;;4813:6;:24;;;:31;4781:21;;;;;;;;;;;;;;;;;:28;:63;4618:227;:316;;;;;4898:6;:28;;;:35;4866:21;;;;;;;;;;;;;;;;;:28;:67;4618:316;4597:428;;;;-1:-1:-1;;;4597:428:108;;27748:2:176;4597:428:108;;;27730:21:176;27787:2;27767:18;;;27760:30;-1:-1:-1;;;;;;;;;;;27806:18:176;;;27799:62;27897:34;27877:18;;;27870:62;-1:-1:-1;;;27948:19:176;;;27941:32;27990:19;;4597:428:108;27546:469:176;4597:428:108;5107:35;;:42;5057:23;;;;:30;:92;5036:207;;;;-1:-1:-1;;;5036:207:108;;28222:2:176;5036:207:108;;;28204:21:176;28261:2;28241:18;;;28234:30;;;-1:-1:-1;;;;;;;;;;;28280:18:176;;;28273:62;28371:34;28351:18;;;28344:62;-1:-1:-1;;;28422:19:176;;;28415:35;28467:19;;5036:207:108;28020:472:176;5036:207:108;5305:12;5275:43;;:20;:43;;;5254:150;;;;-1:-1:-1;;;5254:150:108;;28699:2:176;5254:150:108;;;28681:21:176;28738:2;28718:18;;;28711:30;-1:-1:-1;;;;;;;;;;;28757:18:176;;;28750:62;28848:30;28828:18;;;28821:58;28896:19;;5254:150:108;28497:424:176;5254:150:108;5921:19;;;;;;;;-1:-1:-1;5921:19:108;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;6277:21:108;;;;;;;;;;;;;;;;;;6264:42;;;;;;;;;;;5921:19;;6264:42;6277:21;6264:42;;;;5921:19;6264:42;;;;;-1:-1:-1;;6230:31:108;;;;:76;;;;6364:21;;;;;;;;;;;;-1:-1:-1;6364:21:108;;;;;6351:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6316:77:108;;-1:-1:-1;;;;;;;;;;;;;;;;;6499:6:108;:23;;;:30;-1:-1:-1;;;;;6472:67:108;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:67:108;-1:-1:-1;6445:94:108;;6589:23;;;;:30;-1:-1:-1;;;;;6575:45:108;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6575:45:108;;6549:10;:23;;:71;;;;6799:27;6829:141;6884:21;;;;;;;;;;;;;;;;;6923:19;-1:-1:-1;;;;;6923:31:108;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6829:37;:141::i;:::-;6799:171;;6990:9;6985:1728;7009:6;:23;;;:30;7005:1;:34;6985:1728;;;7301:82;:6;:44;;;7346:1;7301:47;;;;;;;;:::i;:::-;;;;;;;10534:9:129;;10473:16;10524:20;;;10580:4;10576:13;;;10570:20;10557:34;;;10629:4;10616:18;;;10404:246;7301:82:108;7272:10;:23;;;7296:1;7272:26;;;;;;;;:::i;:::-;;;;;;;;;;:111;7405:6;;7401:305;;7542:23;;;;7566:5;7570:1;7566;:5;:::i;:::-;7542:30;;;;;;;;:::i;:::-;;;;;;;7534:39;;7476:10;:23;;;7500:1;7476:26;;;;;;;;:::i;:::-;;;;;;;7468:35;;:105;7435:252;;;;;-1:-1:-1;;;7435:252:108;;29128:2:176;7435:252:108;;;29110:21:176;29147:18;;;29140:30;;;;-1:-1:-1;;;;;;;;;;;29186:18:176;;;29179:62;29277:34;29257:18;;;29250:62;29329:19;;7435:252:108;28926:428:176;7435:252:108;7846:19;-1:-1:-1;;;;;7846:76:108;;7961:10;:23;;;7985:1;7961:26;;;;;;;;:::i;:::-;;;;;;;8026:20;8079:6;:35;;;8115:1;8079:38;;;;;;;;:::i;:::-;;;;;;;7846:294;;;;;;;;;;;;;;;;29558:25:176;;;29602:10;29648:15;;;29643:2;29628:18;;29621:43;29700:15;29695:2;29680:18;;29673:43;29546:2;29531:18;;29359:363;7846:294:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7816:324:108;:10;:24;;;7841:1;7816:27;;;;;;;;:::i;:::-;;;;;;:324;;;;;8431:267;8461:219;8529:129;8613:19;8583:10;:24;;;8608:1;8583:27;;;;;;;;:::i;:::-;;;;;;;:49;8529:24;:129::i;:::-;8461:6;:23;;;8485:1;8461:26;;;;;;;;:::i;:::-;;;;;;;:42;;:219;;;;:::i;8431:267::-;8425:273;-1:-1:-1;7041:3:108;;;;:::i;:::-;;;;6985:1728;;;;6631:2092;8996:12;:3;:10;:12::i;:::-;9340:20;;8990:18;;-1:-1:-1;9340:20:108;;9311:26;9340:20;9406:97;;9502:1;9406:97;;;9446:10;-1:-1:-1;;;;;9446:35:108;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9374:129;;9523:9;9518:3499;9542:21;;;;;;;;;;;;;;;;;:28;9538:1;:32;9518:3499;;;9754:21;9750:486;;;10045:20;9832:233;;9993:21;9832:19;-1:-1:-1;;;;;9832:43:108;;9911:21;;;;;;;;;;;;;;;;;9933:1;9911:24;;;;;;;;:::i;:::-;;;;;9832:130;;-1:-1:-1;;;;;;9832:130:108;;;;;;;9911:24;;;;;9832:130;;;24899:36:176;24872:18;;9832:130:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:182;;;;:::i;:::-;:233;9799:418;;;;-1:-1:-1;;;9799:418:108;;29929:2:176;9799:418:108;;;29911:21:176;29968:3;29948:18;;;29941:31;-1:-1:-1;;;;;;;;;;;29988:18:176;;;29981:62;30079:34;30059:18;;;30052:62;30151:34;30130:19;;;30123:63;-1:-1:-1;;;30202:19:176;;;30195:37;30249:19;;9799:418:108;29727:547:176;9799:418:108;10504:14;-1:-1:-1;;;;;10504:46:108;;10601:21;;;;;;;;;;;;;;;;;10623:1;10601:24;;;;;;;;:::i;:::-;;;;;;;;;10595:31;;10669:20;10726:6;:23;;;10750:1;10726:26;;;;;;;;:::i;:::-;;;;;;;;;;;10504:275;;-1:-1:-1;;;;;;10504:275:108;;;;;;;30504:4:176;30492:17;;;10504:275:108;;;30474:36:176;10504:275:108;30575:15:176;;;30555:18;;;30548:43;30627:15;30607:18;;;30600:43;30447:18;;10504:275:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10433:346:108;;10441:34;:6;:17;;;10459:1;10441:20;;;;;;;;:::i;:34::-;-1:-1:-1;;10433:346:108;;10404:514;;;;-1:-1:-1;;;10404:514:108;;31155:2:176;10404:514:108;;;31137:21:176;31194:2;31174:18;;;31167:30;-1:-1:-1;;;;;;;;;;;31213:18:176;;;31206:62;31304:34;31284:18;;;31277:62;31376:34;31355:19;;;31348:63;-1:-1:-1;;;31427:19:176;;;31420:32;31469:19;;10404:514:108;30953:541:176;10404:514:108;10942:30;10951:6;:17;;;10969:1;10951:20;;;;;;;;:::i;:::-;;;;;;;10942:3;:8;;:30;;;;:::i;:::-;10936:36;;11126:13;-1:-1:-1;;;;;11126:70:108;;11243:21;;;;;;;;;;;;;;;;;11265:1;11243:24;;;;;;;;:::i;:::-;;;;;;;;;11237:31;;11307:20;11360:6;:24;;;11385:1;11360:27;;;;;;;;:::i;:::-;;;;;;;;;;;11126:284;;-1:-1:-1;;;;;;11126:284:108;;;;;;;30504:4:176;30492:17;;;11126:284:108;;;30474:36:176;11126:284:108;30575:15:176;;;30555:18;;;30548:43;30627:15;30607:18;;;30600:43;30447:18;;11126:284:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11089:11;:31;;;11121:1;11089:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11089:321:108;;;:34;;;;;;;;;;:321;11466:52;;;:55;;11519:1;;11466:55;;;;;;:::i;:::-;;;;;;;11428:11;:32;;;11461:1;11428:35;;;;;;;;:::i;:::-;;;;;;:93;-1:-1:-1;;;;;11428:93:108;;;-1:-1:-1;;;;;11428:93:108;;;;;11608:31;11891:9;11886:1117;11910:6;:23;;;:30;11906:1;:34;11886:1117;;;12107:161;12154:10;:24;;;12179:1;12154:27;;;;;;;;:::i;:::-;;;;;;;12217:21;;;;;;;;;;;;;;;;;12239:1;12217:24;;;;;;;;:::i;:::-;;;;;;;7387:13:130;;;7404:1;7386:19;;;7380:26;;7292:121;12107:161:108;12078:907;;;12356:13;-1:-1:-1;;;;;12356:72:108;;12483:21;;;;;;;;;;;;;;;;;12505:1;12483:24;;;;;;;;:::i;:::-;;;;;;;;;12477:31;;12555:20;12621:10;:23;;;12645:1;12621:26;;;;;;;;:::i;:::-;;;;;;;12688:6;:28;;;12717:1;12688:31;;;;;;;;:::i;:::-;;;;;;;12757:23;12688:126;;;;;;;;:::i;:::-;;;;;;;;;;;12356:489;;-1:-1:-1;;;;;;12356:489:108;;;;;;;32007:4:176;31995:17;;;12356:489:108;;;31977:36:176;12356:489:108;32078:15:176;;;32058:18;;;32051:43;32110:18;;;32103:34;;;;32173:15;32153:18;;;32146:43;31949:19;;12356:489:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12317:32;;:35;;12350:1;;12317:35;;;;;;:::i;:::-;;;;;;:528;;;;;;;:::i;:::-;-1:-1:-1;;;;;12317:528:108;;;-1:-1:-1;12911:25:108;;;;;12078:907;11942:3;;;;:::i;:::-;;;;11886:1117;;;;9577:3440;9572:3;;;;;:::i;:::-;;;;9518:3499;;;;9297:3730;;13104:22;13144:21;13182:170;13234:7;13263:3;13288:6;:12;;;13322:6;:12;;;13182:30;:170::i;:::-;13086:266;;;;13391:17;13366:143;;;;-1:-1:-1;;;13366:143:108;;32644:2:176;13366:143:108;;;32626:21:176;32683:2;32663:18;;;32656:30;-1:-1:-1;;;;;;;;;;;32702:18:176;;;32695:62;32793:34;32773:18;;;32766:62;-1:-1:-1;;;32844:19:176;;;32837:34;32888:19;;13366:143:108;32442:471:176;13366:143:108;13548:16;13523:132;;;;-1:-1:-1;;;13523:132:108;;33120:2:176;13523:132:108;;;33102:21:176;33159:2;33139:18;;;33132:30;-1:-1:-1;;;;;;;;;;;33178:18:176;;;33171:62;33269:27;33249:18;;;33242:55;33314:19;;13523:132:108;32918:421:176;13523:132:108;13036:630;;13740:27;13810:20;13832:10;:23;;;13793:63;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;13793:63:108;;;;;;13770:96;;13793:63;13770:96;;;;14025:11;;13770:96;;-1:-1:-1;4387:9678:108;;-1:-1:-1;;;;;;;4387:9678:108:o;2587:1343:171:-;2718:23;2770:9;2755:12;:24;2751:206;;;-1:-1:-1;2840:15:171;2751:206;;;2928:15;2945:10;2911:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2901:56;;;;;;2883:74;;2751:206;2989:29;;;;:12;:29;;;;;:46;;;:51;2968:125;;;;-1:-1:-1;;;2968:125:171;;34195:2:176;2968:125:171;;;34177:21:176;34234:2;34214:18;;;34207:30;34273:29;34253:18;;;34246:57;34320:18;;2968:125:171;33993:351:176;2968:125:171;3108:9;:13;3104:213;;3154:10;3137:28;;;;:16;:28;;;;;:41;;3169:9;;3137:28;:41;;3169:9;;3137:41;:::i;:::-;;;;-1:-1:-1;;3236:10:171;3264:28;;;;:16;:28;;;;;;;;;;3197:109;;425:25:176;;;3197:109:171;;398:18:176;3197:109:171;;;;;;;3104:213;3352:10;3366:1;3335:28;;;:16;:28;;;;;;3327:69;;;;-1:-1:-1;;;3327:69:171;;34551:2:176;3327:69:171;;;34533:21:176;34590:2;34570:18;;;34563:30;34629:26;34609:18;;;34602:54;34673:18;;3327:69:171;34349:348:176;3327:69:171;-1:-1:-1;;;;;;;;;;;;;;;;3446:50:171;3483:12;3446:50;;;;;3545:29;;;:12;:29;;;;;;;:42;;;;;;;;-1:-1:-1;;;3545:42:171;-1:-1:-1;;3545:42:171;;;;;;;;;;;;;3660:111;;-1:-1:-1;;3682:15:171;;3660:111;;;;3745:16;;;;3660:111;:::i;:::-;;;;;;;;3810:15;3786:137;3839:10;3870:12;3897:16;;3786:137;;;;;;;;;:::i;:::-;;;;;;;;2708:1222;;2587:1343;;;:::o;2071:101:41:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;11045:171:171:-;11156:4;11205;11189:11;;11179:22;;;;;;;:::i;:::-;;;;;;;;:30;11172:37;;11045:171;;;;;:::o;4797:260:114:-;1358:10;-1:-1:-1;;;;;1380:20:114;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:114;;;;;;;:::i;:::-;4986:64:::1;::::0;-1:-1:-1;;;4986:64:114;;-1:-1:-1;;;;;4986:13:114::1;:35;::::0;::::1;::::0;:64:::1;::::0;5022:8;;5032:17;;4986:64:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4797:260:::0;;:::o;5262:158::-;1358:10;-1:-1:-1;;;;;1380:20:114;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:114;;;;;;;:::i;:::-;5364:49:::1;::::0;-1:-1:-1;;;5364:49:114;;-1:-1:-1;;;;;14663:32:176;;;5364:49:114::1;::::0;::::1;14645:51:176::0;5364:13:114::1;:39;::::0;::::1;::::0;14618:18:176;;5364:49:114::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5262:158:::0;:::o;2721:148::-;1334:13:41;:11;:13::i;:::-;2814:48:114::1;::::0;-1:-1:-1;;;2814:48:114;;-1:-1:-1;;;;;2814:13:114::1;:34;::::0;::::1;::::0;:48:::1;::::0;2849:12;;2814:48:::1;;;:::i;6872:2727:171:-:0;7150:22;7175:9;7150:34;;7195:27;7265:15;7282:13;7248:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7248:48:171;;;;;;;;;7225:81;;7248:48;7225:81;;;;7564:33;;;;:12;:33;;;;;:50;7225:81;;-1:-1:-1;7564:50:171;;7543:122;;;;-1:-1:-1;;;7543:122:171;;21515:2:176;7543:122:171;;;21497:21:176;21554:2;21534:18;;;21527:30;-1:-1:-1;;;21573:18:176;;;21566:50;21633:18;;7543:122:171;21313:344:176;7543:122:171;7745:33;;;;:12;:33;;;;;:43;-1:-1:-1;;;7745:43:171;;;;:52;7724:122;;;;-1:-1:-1;;;7724:122:171;;21864:2:176;7724:122:171;;;21846:21:176;21903:2;21883:18;;;21876:30;-1:-1:-1;;;21922:18:176;;;21915:53;21985:18;;7724:122:171;21662:347:176;7724:122:171;-1:-1:-1;;;;;7865:31:171;;7899:1;7865:31;;;:16;:31;;;;;;7857:70;;;;-1:-1:-1;;;7857:70:171;;22216:2:176;7857:70:171;;;22198:21:176;22255:2;22235:18;;;22228:30;-1:-1:-1;;;22274:18:176;;;22267:52;22336:18;;7857:70:171;22014:346:176;7857:70:171;7938:33;;;;:12;:33;;;;;:50;;-1:-1:-1;;7938:50:171;;-1:-1:-1;;;7938:50:171;;;;:33;;8231:179;;7951:19;;8301:50;;8369:27;8231:15;:179::i;:::-;8123:287;;;;1293:2;8612:90;;:17;:37;;;8650:1;8612:40;;;;;;;;:::i;:::-;;;;;;;:90;;;;:::i;:::-;-1:-1:-1;;;;;8527:175:171;1230:3;8527:17;:38;;;8566:1;8527:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;8527:65:171;;;;;:::i;:::-;:175;;8506:286;;;;-1:-1:-1;;;8506:286:171;;;;;;;:::i;:::-;8808:45;;-1:-1:-1;;;;;14663:32:176;;14645:51;;8822:15:171;;8808:45;;14633:2:176;14618:18;8808:45:171;;;;;;;9001:20;9024:9;9001:32;-1:-1:-1;9147:14:171;9206:11;9165:29;9001:32;9165:14;:29;:::i;:::-;:37;;9197:5;9165:37;:::i;:::-;9164:53;;;;:::i;:::-;-1:-1:-1;;;;;9249:31:171;;;;;;:16;:31;;;;;;9147:70;;-1:-1:-1;9249:41:171;-1:-1:-1;9249:41:171;9228:148;;;;-1:-1:-1;;;9228:148:171;;;;;;;:::i;:::-;-1:-1:-1;;;;;9387:31:171;;;;;;:16;:31;;;;;:41;;9422:6;;9387:31;:41;;9422:6;;9387:41;:::i;:::-;;;;-1:-1:-1;;;;;;;9443:103:171;;9505:31;;;;:16;:31;;;;;;;;;;9443:103;;425:25:176;;;9443:103:171;;398:18:176;9443:103:171;;;;;;;9556:36;;9564:10;;9556:36;;;;;9585:6;;9556:36;;;;9585:6;9564:10;9556:36;;;;;;;;;;;;;;;;;;;;;7140:2459;;;;;;6872:2727;;;:::o;6262:951:114:-;6321:16;6349:19;6371:20;-1:-1:-1;;;;;6371:32:114;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6349:56;;;-1:-1:-1;6420:16:114;6416:70;;-1:-1:-1;;6459:16:114;;;6473:1;6459:16;;;;;;;;;6262:951::o;6416:70::-;6496:21;;6527:129;6551:11;6547:1;:15;6527:129;;;6600:45;;-1:-1:-1;;;6600:45:114;;24929:4:176;24917:17;;6600:45:114;;;24899:36:176;6600:14:114;-1:-1:-1;;;;;6600:35:114;;;;24872:18:176;;6600:45:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6583:62;;;;:::i;:::-;;-1:-1:-1;6564:3:114;;;;:::i;:::-;;;;6527:129;;;;6666:35;6718:13;-1:-1:-1;;;;;6704:28:114;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6704:28:114;;6666:66;;6742:13;6774:9;6769:403;6793:20;-1:-1:-1;;;;;6793:32:114;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6789:38;;:1;:38;6769:403;;;6879:45;;-1:-1:-1;;;6879:45:114;;24929:4:176;24917:17;;6879:45:114;;;24899:36:176;6848:28:114;;6879:14;-1:-1:-1;;;;;6879:35:114;;;;24872:18:176;;6879:45:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6848:76;;6943:9;6938:224;6962:20;6958:1;:24;6938:224;;;7063:49;;-1:-1:-1;;;7063:49:114;;25475:4:176;25463:17;;7063:49:114;;;25445:36:176;25497:18;;;25490:34;;;7063:14:114;-1:-1:-1;;;;;7063:36:114;;;;25418:18:176;;7063:49:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;7007:18;7026:5;7007:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7007:115:114;;;:25;;;;;;;;;;;:115;7140:7;;;;:::i;:::-;;;;6984:3;;;;;:::i;:::-;;;;6938:224;;;;6834:338;6829:3;;;;;:::i;:::-;;;;6769:403;;;-1:-1:-1;7188:18:114;;6262:951;-1:-1:-1;;;;6262:951:114:o;2321:198:41:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:41;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:41;;38045:2:176;2401:73:41::1;::::0;::::1;38027:21:176::0;38084:2;38064:18;;;38057:30;38123:34;38103:18;;;38096:62;-1:-1:-1;;;38174:18:176;;;38167:36;38220:19;;2401:73:41::1;37843:402:176::0;2401:73:41::1;2484:28;2503:8;2484:18;:28::i;3631:872:114:-:0;1684:16;;-1:-1:-1;;;;;1684:16:114;1670:10;:30;1649:153;;;;-1:-1:-1;;;1649:153:114;;38452:2:176;1649:153:114;;;38434:21:176;38491:2;38471:18;;;38464:30;38530:34;38510:18;;;38503:62;38601:34;38581:18;;;38574:62;-1:-1:-1;;;38652:19:176;;;38645:43;38705:19;;1649:153:114;38250:480:176;1649:153:114;3815:9:::1;3810:610;3830:29:::0;;::::1;3810:610;;;4029:18;;4048:1;4029:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4029:40:114::1;;4070:10;4090:4;4097:18;;4116:1;4097:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;4029:97:::0;;-1:-1:-1;;;;;;4029:97:114::1;::::0;;;;;;-1:-1:-1;;;;;39748:15:176;;;4029:97:114::1;::::0;::::1;39730:34:176::0;39800:15;;;;39780:18;;;39773:43;4097:28:114::1;;39832:18:176::0;;;39825:34;39665:18;;4029:97:114::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4140:17;4176:18;;4195:1;4176:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;:82;::::0;-1:-1:-1;;;4176:82:114;;4222:4:::1;4176:82;::::0;::::1;40332:34:176::0;-1:-1:-1;;;;;4237:19:114::1;40402:15:176::0;;40382:18;;;40375:43;4176:37:114;;;::::1;::::0;::::1;::::0;40267:18:176;;4176:82:114::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4140:118;;4272:18;;4291:1;4272:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4272:35:114::1;;4333:19;4386:9;4355:18;;4374:1;4355:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;;;:40;;;;:::i;:::-;4272:137;::::0;-1:-1:-1;;;;;;4272:137:114::1;::::0;;;;;;-1:-1:-1;;;;;40621:32:176;;;4272:137:114::1;::::0;::::1;40603:51:176::0;40670:18;;;40663:34;40576:18;;4272:137:114::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3866:554;3861:3;;;;:::i;:::-;;;3810:610;;;-1:-1:-1::0;4430:66:114::1;::::0;-1:-1:-1;;;4430:66:114;;-1:-1:-1;;;;;4430:19:114::1;:46;::::0;::::1;::::0;:66:::1;::::0;4477:18;;;;4430:66:::1;;;:::i;1240:240:27:-:0;1395:4;1469;1418:47;1446:5;1453:4;1459:5;1418:27;:47::i;:::-;:55;;1240:240;-1:-1:-1;;;;;1240:240:27:o;7084:580:129:-;-1:-1:-1;;;;;;;;;;;;;;;;;7184:23:129;;:::i;:::-;7228:3;;7217:14;;:8;7252:3;;;;7241:8;;;:14;7265:8;;;;:12;;;-1:-1:-1;;7452:1:129;7446:4;7217:14;7436:1;7429:4;7422:5;7418:16;7407:53;7396:64;-1:-1:-1;7396:64:129;7557:48;;;;7530:75;;7557:48;7582:9;7530:75;;7632:7;7624:33;;;;-1:-1:-1;;;7624:33:129;;43857:2:176;7624:33:129;;;43839:21:176;43896:2;43876:18;;;43869:30;-1:-1:-1;;;43915:18:176;;;43908:43;43968:18;;7624:33:129;43655:337:176;7624:33:129;7174:490;;7084:580;;;;:::o;4823:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4926:23:129;;:::i;:::-;4970:4;;4959:15;;:8;4995:4;;;;4984:8;;;:15;5020:4;;5009:8;;;;:15;;;;5045:4;;;;5034:8;;;:15;-1:-1:-1;;5225:1:129;5219:4;4959:15;5209:1;5202:4;5195:5;5191:16;5180:53;5169:64;-1:-1:-1;5169:64:129;5330:48;;;;5303:75;5406:7;5398:33;;;;-1:-1:-1;;;5398:33:129;;44199:2:176;5398:33:129;;;44181:21:176;44238:2;44218:18;;;44211:30;-1:-1:-1;;;44257:18:176;;;44250:43;44310:18;;5398:33:129;43997:337:176;4070:128:129;4119:14;;:::i;:::-;-1:-1:-1;4152:39:129;;;;;;;;3635:77;4152:39;;;;;;3752:77;4152:39;;;;;;;;;;;;;;3869:77;4152:39;;3986:77;4152:39;;;;;;;;;;;;;;;4070:128::o;11044:451::-;-1:-1:-1;;;;;;;;;;;;;;;;;11123:12:129;;;11185:24;-1:-1:-1;;;;;;;;;;;11193:2:129;11185:24;:::i;:::-;11173:36;;11220:239;11259:13;11270:1;11259:10;:13::i;:::-;11247:25;;-1:-1:-1;11247:25:129;-1:-1:-1;;;;;;;;;;;;11336:1:129;11333;11326:24;11318:4;:32;11314:92;;;11378:13;;;;;;;;;;;;;;;;;;;;11044:451;-1:-1:-1;;;11044:451:129:o;11314:92::-;-1:-1:-1;;;;;;;;;;;11434:1:129;11431;11424:24;11420:28;;11220:239;;9189:1112;9397:31;;;;;;;;;;;;;;;;;;9438;;;;;;;;;;;;;;;;9375:4;;;;9397:31;9480:24;;:::i;:::-;9520:9;9515:302;9539:1;9535;:5;9515:302;;;9561:9;9573:5;:1;9577;9573:5;:::i;:::-;9561:17;;9607:2;9610:1;9607:5;;;;;;;:::i;:::-;;;;;:7;9592:5;9598;:1;9607:7;9598:5;:::i;:::-;9592:12;;;;;;;:::i;:::-;;;;:22;9643:2;9646:1;9643:5;;;;;;;:::i;:::-;;;;;:7;;;9628:5;9634:1;9638;9634:5;;;;:::i;:::-;9628:12;;;;;;;:::i;:::-;;;;:22;9679:2;9682:1;9679:5;;;;;;;:::i;:::-;;;;;:7;:10;9664:5;9670;:1;9674;9670:5;:::i;:::-;9664:12;;;;;;;:::i;:::-;;;;:25;9718:2;9721:1;9718:5;;;;;;;:::i;:::-;;;;;:7;9726:1;9718:10;;;;9703:5;9709;:1;9713;9709:5;:::i;:::-;9703:12;;;;;;;:::i;:::-;;;;:25;9757:2;9760:1;9757:5;;;;;;;:::i;:::-;;;;;:7;;;9765:1;9757:10;;;;;;;:::i;:::-;;;;;9742:5;9748;:1;9752;9748:5;:::i;:::-;9742:12;;;;;;;:::i;:::-;;;;:25;9796:2;9799:1;9796:5;;;;;;;:::i;:::-;;;;;:7;;;9804:1;9796:10;;;;;;;:::i;:::-;;;;;9781:5;9787;:1;9791;9787:5;:::i;:::-;9781:12;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;9542:3:129;;;;:::i;:::-;;;;9515:302;;;;9827:21;;:::i;:::-;9858:12;10032:4;10027:3;10012:13;10005:5;10002:1;9990:10;9979:58;10282:6;;9968:69;;10282:11;;;;-1:-1:-1;10265:29:129;;-1:-1:-1;;;;;;;;;;9189:1112:129:o;5465:1257:130:-;5532:12;5650:15;5728:23;5764:20;5777:6;5764:12;:20::i;:::-;5754:31;;-1:-1:-1;;;;;5754:31:130;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5754:31:130;;5728:57;;5841:18;6093:9;6088:601;6122:10;:17;6109:10;:30;6108:45;;;;;6149:3;6145:1;:7;6108:45;6088:601;;;6252:1;:6;;;-1:-1:-1;6339:16:130;;;:21;6335:344;;6524:1;6511:16;;6486:10;6497;6486:22;;;;;;;;:::i;:::-;;;;:41;-1:-1:-1;;;;;6486:41:130;;;;;;;;;6650:12;;;;;6335:344;6155:3;;;:::i;:::-;;;6088:601;;1599:130:41;1513:6;;-1:-1:-1;;;;;1513:6:41;929:10:50;1662:23:41;1654:68;;;;-1:-1:-1;;;1654:68:41;;44541:2:176;1654:68:41;;;44523:21:176;;;44560:18;;;44553:30;44619:34;44599:18;;;44592:62;44671:18;;1654:68:41;44339:356:176;5740:200:114;5847:16;;5823:62;;;-1:-1:-1;;;;;5847:16:114;;;40332:34:176;;40402:15;;;40397:2;40382:18;;40375:43;5823:62:114;;40267:18:176;5823:62:114;;;;;;;5895:16;:38;;-1:-1:-1;;;;;;5895:38:114;-1:-1:-1;;;;;5895:38:114;;;;;;;;;;5740:200::o;15634:148:108:-;15699:20;:28;;-1:-1:-1;;15699:28:108;;;;;;;;;;15742:33;;3560:41:176;;;15742:33:108;;3548:2:176;3533:18;15742:33:108;;;;;;;15634:148;:::o;2311:238:114:-;4910:13:45;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:45;;44902:2:176;4902:69:45;;;44884:21:176;44941:2;44921:18;;;44914:30;44980:34;44960:18;;;44953:62;-1:-1:-1;;;45031:18:176;;;45024:41;45082:19;;4902:69:45;44700:407:176;4902:69:45;2461:32:114::1;2480:12;2461:18;:32::i;:::-;2503:39;2524:17;2503:20;:39::i;:::-;2311:238:::0;;:::o;3308:360:130:-;3419:7;3438:14;3455:44;3481:17;3455:25;:44::i;:::-;3438:61;;3541:6;3524:13;3519:18;;:1;:18;;3518:29;3510:127;;;;-1:-1:-1;;;3510:127:130;;45314:2:176;3510:127:130;;;45296:21:176;45353:2;45333:18;;;45326:30;45392:34;45372:18;;;45365:62;45463:33;45443:18;;;45436:61;45514:19;;3510:127:130;45112:427:176;3510:127:130;3655:6;-1:-1:-1;3308:360:130;;;;;:::o;6797:406::-;6853:6;;6897:209;6904:5;;6897:209;;6931:5;6935:1;6931;:5;:::i;:::-;6925:12;;;;7020:7;;;;:::i;:::-;;;;6897:209;;5698:1197:129;-1:-1:-1;;;;;;;;;;;;;;;;;5824:4:129;5820:1;:8;;;5812:37;;;;-1:-1:-1;;;5812:37:129;;45948:2:176;5812:37:129;;;45930:21:176;45987:2;45967:18;;;45960:30;-1:-1:-1;;;46006:18:176;;;45999:46;46062:18;;5812:37:129;45746:340:176;5812:37:129;5893:1;:6;;5898:1;5893:6;5890:44;;;-1:-1:-1;5922:1:129;5915:8;;5890:44;6016:19;;;;;;;;;5989:24;6016:19;;;;;;;;;6145:1;;6208;;6337:481;6348:1;6343:6;;:1;:6;;;6337:481;;6493:1;6483:6;;;;;;;6482:12;;:17;6478:84;;;6529:14;6534:3;6539;6529:4;:14::i;:::-;6523:20;;6478:84;6644:14;6649:3;6654;6644:4;:14::i;:::-;6638:20;-1:-1:-1;6765:7:129;6771:1;6765:7;;;;;6790:3;6337:481;;;-1:-1:-1;6885:3:129;;5698:1197;-1:-1:-1;;;;;5698:1197:129:o;4461:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4600:3:129;;:8;:20;;;;-1:-1:-1;4612:3:129;;;;:8;4600:20;4596:154;;;-1:-1:-1;;4643:13:129;;;;;;;;;-1:-1:-1;4643:13:129;;;;;;;;4461:295::o;4596:154::-;4694:45;;;;;;;;4702:1;:3;;;4694:45;;;;-1:-1:-1;;;;;;;;;;;4721:1:129;:3;;;:16;;;;:::i;:::-;4707:31;;-1:-1:-1;;;;;;;;;;;4707:31:129;:::i;:::-;4694:45;;4687:52;4461:295;-1:-1:-1;;4461:295:129:o;4596:154::-;4461:295;;;:::o;2673:187:41:-;2765:6;;;-1:-1:-1;;;;;2781:17:41;;;-1:-1:-1;;;;;;2781:17:41;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;1997:1172:27:-;2136:7;2191:2;2176:5;:12;:17;;;;:::i;:::-;:22;2155:144;;;;-1:-1:-1;;;2155:144:27;;46293:2:176;2155:144:27;;;46275:21:176;46332:2;46312:18;;;46305:30;46371:34;46351:18;;;46344:62;46442:34;46422:18;;;46415:62;-1:-1:-1;;;46493:19:176;;;46486:42;46545:19;;2155:144:27;46091:479:176;2155:144:27;2332:4;2363:2;2346:788;2372:5;:12;2367:1;:17;2346:788;;2413:9;2421:1;2413:5;:9;:::i;:::-;2409:715;;2572:12;2566:4;2559:26;2636:1;2629:5;2625:13;2619:20;2613:4;2606:34;2693:4;2687;2677:21;2661:37;;2739:1;2732:5;2728:13;2719:22;;2409:715;;;2940:1;2933:5;2929:13;2923:20;2917:4;2910:34;2978:12;2972:4;2965:26;3044:4;3038;3028:21;3012:37;;3090:1;3083:5;3079:13;3070:22;;2409:715;2386:7;2391:2;2386:7;;:::i;:::-;;;2346:788;;11616:433:129;11670:7;;;-1:-1:-1;;;;;;;;;;;11801:1:129;-1:-1:-1;;;;;;;;;;;11785:1:129;-1:-1:-1;;;;;;;;;;;11769:1:129;11766;11759:24;11752:47;11745:70;11730:85;;11912:9;11924:91;11931:4;11937:65;-1:-1:-1;;;;;;;;;;;11924:6:129;:91::i;:::-;12034:4;;11912:103;;-1:-1:-1;11616:433:129;;-1:-1:-1;;;11616:433:129:o;1188:1693:130:-;1278:7;571:3;1409:17;:24;:49;;1401:142;;;;-1:-1:-1;;;1401:142:130;;46777:2:176;1401:142:130;;;46759:21:176;46816:2;46796:18;;;46789:30;;;46855:34;46835:18;;;46828:62;46926:34;46906:18;;;46899:62;-1:-1:-1;;;46977:19:176;;;46970:35;47022:19;;1401:142:130;46575:472:176;1401:142:130;1619:24;;1615:77;;-1:-1:-1;1679:1:130;;1188:1693;-1:-1:-1;1188:1693:130:o;1615:77::-;1770:14;1873:15;2180:17;2198:1;2180:20;;;;;;;;:::i;:::-;;;;;2169:1;2180:20;;;;;2169:32;;;;-1:-1:-1;2284:568:130;2308:17;:24;2304:1;:28;2284:568;;;2480:17;2498:1;2480:20;;;;;;;;:::i;:::-;;;;;2469:1;2480:20;;;;;2469:32;;-1:-1:-1;2665:16:130;;;2657:100;;;;-1:-1:-1;;;2657:100:130;;47254:2:176;2657:100:130;;;47236:21:176;47293:2;47273:18;;;47266:30;47332:34;47312:18;;;47305:62;47403:34;47383:18;;;47376:62;-1:-1:-1;;;47454:19:176;;;47447:38;47502:19;;2657:100:130;47052:475:176;2657:100:130;2824:16;;;;2334:3;;;:::i;:::-;;;2284:568;;;-1:-1:-1;2868:6:130;;1188:1693;-1:-1:-1;;;1188:1693:130:o;12055:874:129:-;12146:14;12172:12;12194:24;;:::i;:::-;12228:20;;:::i;:::-;12269:4;12258:15;;;12341:8;;;:15;;;12425:8;;;:15;;;12509:8;;;:16;;;12535:8;;;:20;;;12565:8;;;:19;;;12673:6;12667:4;12258:15;12571:1;12650:4;12643:5;12639:16;12628:58;12617:69;-1:-1:-1;12617:69:129;12783:48;;;;12756:75;12858:7;12850:46;;;;-1:-1:-1;;;12850:46:129;;47734:2:176;12850:46:129;;;47716:21:176;47773:2;47753:18;;;47746:30;47812:28;47792:18;;;47785:56;47858:18;;12850:46:129;47532:350:176;12850:46:129;-1:-1:-1;12913:9:129;;;-1:-1:-1;;;;;12055:874:129:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:127:176:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:128;186:3;217:1;213:6;210:1;207:13;204:39;;;223:18;;:::i;:::-;-1:-1:-1;259:9:176;;146:128::o;461:127::-;522:10;517:3;513:20;510:1;503:31;553:4;550:1;543:15;577:4;574:1;567:15;593:257;665:4;659:11;;;697:17;;-1:-1:-1;;;;;729:34:176;;765:22;;;726:62;723:88;;;791:18;;:::i;:::-;827:4;820:24;593:257;:::o;1111:255::-;1183:2;1177:9;1225:6;1213:19;;-1:-1:-1;;;;;1247:34:176;;1283:22;;;1244:62;1241:88;;;1309:18;;:::i;1371:275::-;1442:2;1436:9;1507:2;1488:13;;-1:-1:-1;;1484:27:176;1472:40;;-1:-1:-1;;;;;1527:34:176;;1563:22;;;1524:62;1521:88;;;1589:18;;:::i;:::-;1625:2;1618:22;1371:275;;-1:-1:-1;1371:275:176:o;1651:406::-;1715:5;-1:-1:-1;;;;;1741:6:176;1738:30;1735:56;;;1771:18;;:::i;:::-;1809:57;1854:2;1833:15;;-1:-1:-1;;1829:29:176;1860:4;1825:40;1809:57;:::i;:::-;1800:66;;1889:6;1882:5;1875:21;1929:3;1920:6;1915:3;1911:16;1908:25;1905:45;;;1946:1;1943;1936:12;1905:45;1995:6;1990:3;1983:4;1976:5;1972:16;1959:43;2049:1;2042:4;2033:6;2026:5;2022:18;2018:29;2011:40;1651:406;;;;;:::o;2062:220::-;2104:5;2157:3;2150:4;2142:6;2138:17;2134:27;2124:55;;2175:1;2172;2165:12;2124:55;2197:79;2272:3;2263:6;2250:20;2243:4;2235:6;2231:17;2197:79;:::i;:::-;2188:88;2062:220;-1:-1:-1;;;2062:220:176:o;2287:131::-;-1:-1:-1;;;;;2362:31:176;;2352:42;;2342:70;;2408:1;2405;2398:12;2423:992;2554:6;2562;2570;2578;2586;2594;2602;2610;2663:3;2651:9;2642:7;2638:23;2634:33;2631:53;;;2680:1;2677;2670:12;2631:53;2703:23;;;-1:-1:-1;2773:2:176;2758:18;;2745:32;;-1:-1:-1;2824:2:176;2809:18;;2796:32;;-1:-1:-1;2878:2:176;2863:18;;2850:32;-1:-1:-1;;;;;;2911:43:176;;2901:54;;2891:82;;2969:1;2966;2959:12;2891:82;2992:5;-1:-1:-1;3044:3:176;3029:19;;3016:33;;-1:-1:-1;3100:3:176;3085:19;;3072:33;-1:-1:-1;;;;;3117:30:176;;3114:50;;;3160:1;3157;3150:12;3114:50;3183:49;3224:7;3215:6;3204:9;3200:22;3183:49;:::i;:::-;3173:59;;;3279:3;3268:9;3264:19;3251:33;3241:43;;3336:3;3325:9;3321:19;3308:33;3350;3375:7;3350:33;:::i;:::-;3402:7;3392:17;;;2423:992;;;;;;;;;;;:::o;3612:282::-;3666:5;3714:4;3702:9;3697:3;3693:19;3689:30;3686:50;;;3732:1;3729;3722:12;3686:50;3754:22;;:::i;:::-;3745:31;;3812:9;3799:23;3792:5;3785:38;3883:2;3872:9;3868:18;3855:32;3850:2;3843:5;3839:14;3832:56;3612:282;;;;:::o;3899:484::-;3949:5;4002:3;3995:4;3987:6;3983:17;3979:27;3969:55;;4020:1;4017;4010:12;3969:55;4044:22;;:::i;:::-;4088:3;4126:2;4118:6;4114:15;4152:3;4144:6;4141:15;4138:35;;;4169:1;4166;4159:12;4138:35;4193:6;4208:146;4224:6;4219:3;4216:15;4208:146;;;4292:17;;4280:30;;4339:4;4330:14;;;;4241;4208:146;;;-1:-1:-1;4372:5:176;;3899:484;-1:-1:-1;;;;;3899:484:176:o;4388:320::-;4442:5;4490:4;4478:9;4473:3;4469:19;4465:30;4462:50;;;4508:1;4505;4498:12;4462:50;4530:22;;:::i;:::-;4521:31;;4575:40;4611:3;4600:9;4575:40;:::i;:::-;4568:5;4561:55;4650:51;4697:3;4690:4;4679:9;4675:20;4650:51;:::i;:::-;4643:4;4636:5;4632:16;4625:77;4388:320;;;;:::o;4713:530::-;4877:6;4885;4893;4901;4954:3;4942:9;4933:7;4929:23;4925:33;4922:53;;;4971:1;4968;4961:12;4922:53;5007:9;4994:23;4984:33;;5036:54;5082:7;5077:2;5066:9;5062:18;5036:54;:::i;:::-;5026:64;;5109:54;5155:7;5150:2;5139:9;5135:18;5109:54;:::i;:::-;5099:64;;5182:55;5229:7;5223:3;5212:9;5208:19;5182:55;:::i;:::-;5172:65;;4713:530;;;;;;;:::o;5521:182::-;5580:4;-1:-1:-1;;;;;5605:6:176;5602:30;5599:56;;;5635:18;;:::i;:::-;-1:-1:-1;5680:1:176;5676:14;5692:4;5672:25;;5521:182::o;5708:163::-;5775:20;;5835:10;5824:22;;5814:33;;5804:61;;5861:1;5858;5851:12;5876:665;5929:5;5982:3;5975:4;5967:6;5963:17;5959:27;5949:55;;6000:1;5997;5990:12;5949:55;6036:6;6023:20;6062:4;6086:59;6102:42;6141:2;6102:42;:::i;:::-;6086:59;:::i;:::-;6179:15;;;6265:1;6261:10;;;;6249:23;;6245:32;;;6210:12;;;;6289:15;;;6286:35;;;6317:1;6314;6307:12;6286:35;6353:2;6345:6;6341:15;6365:147;6381:6;6376:3;6373:15;6365:147;;;6447:22;6465:3;6447:22;:::i;:::-;6435:35;;6490:12;;;;6398;;6365:147;;;-1:-1:-1;6530:5:176;5876:665;-1:-1:-1;;;;;;5876:665:176:o;6546:688::-;6607:5;6660:3;6653:4;6645:6;6641:17;6637:27;6627:55;;6678:1;6675;6668:12;6627:55;6714:6;6701:20;6740:4;6764:59;6780:42;6819:2;6780:42;:::i;6764:59::-;6857:15;;;6943:1;6939:10;;;;6927:23;;6923:32;;;6888:12;;;;6967:15;;;6964:35;;;6995:1;6992;6985:12;6964:35;7031:2;7023:6;7019:15;7043:162;7059:6;7054:3;7051:15;7043:162;;;7127:35;7158:3;7153;7127:35;:::i;:::-;7115:48;;7183:12;;;;7085:4;7076:14;7043:162;;7239:907;7302:5;7355:3;7348:4;7340:6;7336:17;7332:27;7322:55;;7373:1;7370;7363:12;7322:55;7409:6;7396:20;7435:4;7459:59;7475:42;7514:2;7475:42;:::i;7459:59::-;7552:15;;;7638:1;7634:10;;;;7622:23;;7618:32;;;7583:12;;;;7662:15;;;7659:35;;;7690:1;7687;7680:12;7659:35;7726:2;7718:6;7714:15;7738:379;7754:6;7749:3;7746:15;7738:379;;;7840:3;7827:17;-1:-1:-1;;;;;7863:11:176;7860:35;7857:125;;;7936:1;7965:2;7961;7954:14;7857:125;8007:67;8070:3;8065:2;8051:11;8043:6;8039:24;8035:33;8007:67;:::i;:::-;7995:80;;-1:-1:-1;8095:12:176;;;;7771;;7738:379;;8151:1566;8225:5;8273:6;8261:9;8256:3;8252:19;8248:32;8245:52;;;8293:1;8290;8283:12;8245:52;8315:22;;:::i;:::-;8306:31;;8373:9;8360:23;-1:-1:-1;;;;;8443:2:176;8435:6;8432:14;8429:34;;;8459:1;8456;8449:12;8429:34;8486:56;8538:3;8529:6;8518:9;8514:22;8486:56;:::i;:::-;8479:5;8472:71;8596:2;8585:9;8581:18;8568:32;8552:48;;8625:2;8615:8;8612:16;8609:36;;;8641:1;8638;8631:12;8609:36;8677:66;8739:3;8728:8;8717:9;8713:24;8677:66;:::i;:::-;8672:2;8665:5;8661:14;8654:90;8797:2;8786:9;8782:18;8769:32;8753:48;;8826:2;8816:8;8813:16;8810:36;;;8842:1;8839;8832:12;8810:36;8878:66;8940:3;8929:8;8918:9;8914:24;8878:66;:::i;:::-;8873:2;8866:5;8862:14;8855:90;8977:50;9023:3;9018:2;9007:9;9003:18;8977:50;:::i;:::-;8972:2;8965:5;8961:14;8954:74;9062:51;9109:3;9103;9092:9;9088:19;9062:51;:::i;:::-;9055:4;9048:5;9044:16;9037:77;9167:3;9156:9;9152:19;9139:33;9123:49;;9197:2;9187:8;9184:16;9181:36;;;9213:1;9210;9203:12;9181:36;9251:58;9305:3;9294:8;9283:9;9279:24;9251:58;:::i;:::-;9244:4;9237:5;9233:16;9226:84;9363:3;9352:9;9348:19;9335:33;9319:49;;9393:2;9383:8;9380:16;9377:36;;;9409:1;9406;9399:12;9377:36;9447:58;9501:3;9490:8;9479:9;9475:24;9447:58;:::i;:::-;9440:4;9433:5;9429:16;9422:84;9559:3;9548:9;9544:19;9531:33;9515:49;;9589:2;9579:8;9576:16;9573:36;;;9605:1;9602;9595:12;9573:36;;9642:68;9706:3;9695:8;9684:9;9680:24;9642:68;:::i;:::-;9636:3;9629:5;9625:15;9618:93;;8151:1566;;;;:::o;9722:454::-;9836:6;9844;9897:2;9885:9;9876:7;9872:23;9868:32;9865:52;;;9913:1;9910;9903:12;9865:52;9949:9;9936:23;9926:33;;10010:2;9999:9;9995:18;9982:32;-1:-1:-1;;;;;10029:6:176;10026:30;10023:50;;;10069:1;10066;10059:12;10023:50;10092:78;10162:7;10153:6;10142:9;10138:22;10092:78;:::i;:::-;10082:88;;;9722:454;;;;;:::o;10181:247::-;10240:6;10293:2;10281:9;10272:7;10268:23;10264:32;10261:52;;;10309:1;10306;10299:12;10261:52;10348:9;10335:23;10367:31;10392:5;10367:31;:::i;10433:658::-;10604:2;10656:21;;;10726:13;;10629:18;;;10748:22;;;10575:4;;10604:2;10827:15;;;;10801:2;10786:18;;;10575:4;10870:195;10884:6;10881:1;10878:13;10870:195;;;10949:13;;-1:-1:-1;;;;;10945:39:176;10933:52;;11040:15;;;;11005:12;;;;10981:1;10899:9;10870:195;;;-1:-1:-1;11082:3:176;;10433:658;-1:-1:-1;;;;;;10433:658:176:o;11096:118::-;11182:5;11175:13;11168:21;11161:5;11158:32;11148:60;;11204:1;11201;11194:12;11219:241;11275:6;11328:2;11316:9;11307:7;11303:23;11299:32;11296:52;;;11344:1;11341;11334:12;11296:52;11383:9;11370:23;11402:28;11424:5;11402:28;:::i;11465:388::-;11533:6;11541;11594:2;11582:9;11573:7;11569:23;11565:32;11562:52;;;11610:1;11607;11600:12;11562:52;11649:9;11636:23;11668:31;11693:5;11668:31;:::i;:::-;11718:5;-1:-1:-1;11775:2:176;11760:18;;11747:32;11788:33;11747:32;11788:33;:::i;:::-;11840:7;11830:17;;;11465:388;;;;;:::o;11858:526::-;11980:6;11988;11996;12049:2;12037:9;12028:7;12024:23;12020:32;12017:52;;;12065:1;12062;12055:12;12017:52;12101:9;12088:23;12078:33;;12130:37;12163:2;12152:9;12148:18;12130:37;:::i;:::-;12120:47;;12218:2;12207:9;12203:18;12190:32;-1:-1:-1;;;;;12237:6:176;12234:30;12231:50;;;12277:1;12274;12267:12;12231:50;12300:78;12370:7;12361:6;12350:9;12346:22;12300:78;:::i;:::-;12290:88;;;11858:526;;;;;:::o;12389:467::-;12441:3;12479:5;12473:12;12506:6;12501:3;12494:19;12532:4;12561:2;12556:3;12552:12;12545:19;;12598:2;12591:5;12587:14;12619:1;12629:202;12643:6;12640:1;12637:13;12629:202;;;12708:13;;-1:-1:-1;;;;;12704:46:176;12692:59;;12771:12;;;;12806:15;;;;12665:1;12658:9;12629:202;;;-1:-1:-1;12847:3:176;;12389:467;-1:-1:-1;;;;;12389:467:176:o;12861:645::-;13090:2;13079:9;13072:21;13053:4;13128:6;13122:13;13171:2;13166;13155:9;13151:18;13144:30;13197:62;13254:3;13243:9;13239:19;13225:12;13197:62;:::i;:::-;13183:76;;13308:4;13300:6;13296:17;13290:24;13382:2;13378:7;13366:9;13358:6;13354:22;13350:36;13345:2;13334:9;13330:18;13323:64;13404:51;13448:6;13432:14;13404:51;:::i;:::-;13396:59;;;;13493:6;13486:4;13475:9;13471:20;13464:36;12861:645;;;;;:::o;13511:348::-;13563:8;13573:6;13627:3;13620:4;13612:6;13608:17;13604:27;13594:55;;13645:1;13642;13635:12;13594:55;-1:-1:-1;13668:20:176;;-1:-1:-1;;;;;13700:30:176;;13697:50;;;13743:1;13740;13733:12;13697:50;13780:4;13772:6;13768:17;13756:29;;13832:3;13825:4;13816:6;13808;13804:19;13800:30;13797:39;13794:59;;;13849:1;13846;13839:12;13794:59;13511:348;;;;;:::o;13864:479::-;13944:6;13952;13960;14013:2;14001:9;13992:7;13988:23;13984:32;13981:52;;;14029:1;14026;14019:12;13981:52;14065:9;14052:23;14042:33;;14126:2;14115:9;14111:18;14098:32;-1:-1:-1;;;;;14145:6:176;14142:30;14139:50;;;14185:1;14182;14175:12;14139:50;14224:59;14275:7;14266:6;14255:9;14251:22;14224:59;:::i;:::-;13864:479;;14302:8;;-1:-1:-1;14198:85:176;;-1:-1:-1;;;;13864:479:176:o;15385:478::-;15464:6;15472;15480;15533:2;15521:9;15512:7;15508:23;15504:32;15501:52;;;15549:1;15546;15539:12;15501:52;15589:9;15576:23;-1:-1:-1;;;;;15614:6:176;15611:30;15608:50;;;15654:1;15651;15644:12;15608:50;15693:59;15744:7;15735:6;15724:9;15720:22;15693:59;:::i;:::-;15771:8;;15667:85;;-1:-1:-1;15853:2:176;15838:18;;;;15825:32;;15385:478;-1:-1:-1;;;;15385:478:176:o;15868:1026::-;15980:6;15988;16041:2;16029:9;16020:7;16016:23;16012:32;16009:52;;;16057:1;16054;16047:12;16009:52;16096:9;16083:23;16115:31;16140:5;16115:31;:::i;:::-;16165:5;-1:-1:-1;16221:2:176;16206:18;;16193:32;-1:-1:-1;;;;;16274:14:176;;;16271:34;;;16301:1;16298;16291:12;16271:34;16324:22;;;;16380:4;16362:16;;;16358:27;16355:47;;;16398:1;16395;16388:12;16355:47;16431:2;16425:9;16473:4;16465:6;16461:17;16528:6;16516:10;16513:22;16508:2;16496:10;16493:18;16490:46;16487:72;;;16539:18;;:::i;:::-;16575:2;16568:22;16615:16;;16643;;;16640:36;;;16672:1;16669;16662:12;16640:36;16700:44;16736:7;16725:8;16721:2;16717:17;16700:44;:::i;:::-;16692:6;16685:60;;16799:2;16795;16791:11;16778:25;16773:2;16765:6;16761:15;16754:50;16858:2;16854;16850:11;16837:25;16832:2;16824:6;16820:15;16813:50;16882:6;16872:16;;;;;15868:1026;;;;;:::o;16899:450::-;16968:6;17021:2;17009:9;17000:7;16996:23;16992:32;16989:52;;;17037:1;17034;17027:12;16989:52;17077:9;17064:23;-1:-1:-1;;;;;17102:6:176;17099:30;17096:50;;;17142:1;17139;17132:12;17096:50;17165:22;;17218:4;17210:13;;17206:27;-1:-1:-1;17196:55:176;;17247:1;17244;17237:12;17196:55;17270:73;17335:7;17330:2;17317:16;17312:2;17308;17304:11;17270:73;:::i;:::-;17260:83;16899:450;-1:-1:-1;;;;16899:450:176:o;17354:589::-;17477:6;17485;17493;17546:2;17534:9;17525:7;17521:23;17517:32;17514:52;;;17562:1;17559;17552:12;17514:52;17598:9;17585:23;17575:33;;17658:2;17647:9;17643:18;17630:32;17671:31;17696:5;17671:31;:::i;17948:180::-;18007:6;18060:2;18048:9;18039:7;18035:23;18031:32;18028:52;;;18076:1;18073;18066:12;18028:52;-1:-1:-1;18099:23:176;;17948:180;-1:-1:-1;17948:180:176:o;18745:652::-;18868:6;18876;18929:2;18917:9;18908:7;18904:23;18900:32;18897:52;;;18945:1;18942;18935:12;18897:52;18985:9;18972:23;-1:-1:-1;;;;;19055:2:176;19047:6;19044:14;19041:34;;;19071:1;19068;19061:12;19041:34;19109:6;19098:9;19094:22;19084:32;;19154:7;19147:4;19143:2;19139:13;19135:27;19125:55;;19176:1;19173;19166:12;19125:55;19216:2;19203:16;19242:2;19234:6;19231:14;19228:34;;;19258:1;19255;19248:12;19228:34;19311:7;19306:2;19296:6;19293:1;19289:14;19285:2;19281:23;19277:32;19274:45;19271:65;;;19332:1;19329;19322:12;19271:65;19363:2;19355:11;;;;;19385:6;;-1:-1:-1;18745:652:176;;-1:-1:-1;;;;18745:652:176:o;19402:294::-;19559:19;;;19616:2;19612:15;-1:-1:-1;;;;;;19608:53:176;19603:2;19594:12;;19587:75;19687:2;19678:12;;19402:294::o;20122:127::-;20183:10;20178:3;20174:20;20171:1;20164:31;20214:4;20211:1;20204:15;20238:4;20235:1;20228:15;21099:209;21131:1;21157;21147:132;;21201:10;21196:3;21192:20;21189:1;21182:31;21236:4;21233:1;21226:15;21264:4;21261:1;21254:15;21147:132;-1:-1:-1;21293:9:176;;21099:209::o;22365:278::-;22404:7;-1:-1:-1;;;;;22489:2:176;22486:1;22482:10;22519:2;22516:1;22512:10;22575:3;22571:2;22567:12;22562:3;22559:21;22552:3;22545:11;22538:19;22534:47;22531:73;;;22584:18;;:::i;:::-;22624:13;;22365:278;-1:-1:-1;;;;22365:278:176:o;22648:168::-;22688:7;22754:1;22750;22746:6;22742:14;22739:1;22736:21;22731:1;22724:9;22717:17;22713:45;22710:71;;;22761:18;;:::i;:::-;-1:-1:-1;22801:9:176;;22648:168::o;22821:428::-;23023:2;23005:21;;;23062:2;23042:18;;;23035:30;;;23101:34;23081:18;;;23074:62;23172:34;23167:2;23152:18;;23145:62;23239:3;23224:19;;22821:428::o;23254:125::-;23294:4;23322:1;23319;23316:8;23313:34;;;23327:18;;:::i;:::-;-1:-1:-1;23364:9:176;;23254:125::o;23384:424::-;23586:2;23568:21;;;23625:2;23605:18;;;23598:30;23664:34;23659:2;23644:18;;23637:62;23735:30;23730:2;23715:18;;23708:58;23798:3;23783:19;;23384:424::o;23813:184::-;23883:6;23936:2;23924:9;23915:7;23911:23;23907:32;23904:52;;;23952:1;23949;23942:12;23904:52;-1:-1:-1;23975:16:176;;23813:184;-1:-1:-1;23813:184:176:o;24184:290::-;24254:6;24307:2;24295:9;24286:7;24282:23;24278:32;24275:52;;;24323:1;24320;24313:12;24275:52;24349:16;;-1:-1:-1;;;;;24394:31:176;;24384:42;;24374:70;;24440:1;24437;24430:12;24479:273;24547:6;24600:2;24588:9;24579:7;24575:23;24571:32;24568:52;;;24616:1;24613;24606:12;24568:52;24648:9;24642:16;24698:4;24691:5;24687:16;24680:5;24677:27;24667:55;;24718:1;24715;24708:12;25135:135;25174:3;-1:-1:-1;;25195:17:176;;25192:43;;;25215:18;;:::i;:::-;-1:-1:-1;25262:1:176;25251:13;;25135:135::o;25535:137::-;-1:-1:-1;;;;;25613:5:176;25609:38;25602:5;25599:49;25589:77;;25662:1;25659;25652:12;25677:493;25780:6;25833:2;25821:9;25812:7;25808:23;25804:32;25801:52;;;25849:1;25846;25839:12;25801:52;25875:22;;:::i;:::-;25927:9;25921:16;25946:33;25971:7;25946:33;:::i;:::-;25988:22;;26055:2;26040:18;;26034:25;26068:32;26034:25;26068:32;:::i;:::-;26127:2;26116:14;;26109:31;26120:5;25677:493;-1:-1:-1;;;25677:493:176:o;26175:251::-;26245:6;26298:2;26286:9;26277:7;26273:23;26269:32;26266:52;;;26314:1;26311;26304:12;26266:52;26346:9;26340:16;26365:31;26390:5;26365:31;:::i;30654:294::-;30724:6;30777:2;30765:9;30756:7;30752:23;30748:32;30745:52;;;30793:1;30790;30783:12;30745:52;30819:16;;-1:-1:-1;;30864:35:176;;30854:46;;30844:74;;30914:1;30911;30904:12;31499:249;31568:6;31621:2;31609:9;31600:7;31596:23;31592:32;31589:52;;;31637:1;31634;31627:12;31589:52;31669:9;31663:16;31688:30;31712:5;31688:30;:::i;32200:237::-;32239:4;-1:-1:-1;;;;;32344:10:176;;;;32314;;32366:12;;;32363:38;;;32381:18;;:::i;:::-;32418:13;;32200:237;-1:-1:-1;;;32200:237:176:o;33344:644::-;33592:10;33587:3;33583:20;33574:6;33569:3;33565:16;33561:43;33556:3;33549:56;33531:3;33636:1;33631:3;33627:11;33667:6;33661:13;33716:4;33755:2;33747:6;33743:15;33776:1;33786:175;33800:6;33797:1;33794:13;33786:175;;;33863:13;;33849:28;;33899:14;;;;33936:15;;;;33822:1;33815:9;33786:175;;;-1:-1:-1;33977:5:176;;33344:644;-1:-1:-1;;;;;;;33344:644:176:o;34702:267::-;34791:6;34786:3;34779:19;34843:6;34836:5;34829:4;34824:3;34820:14;34807:43;-1:-1:-1;34895:1:176;34870:16;;;34888:4;34866:27;;;34859:38;;;;34951:2;34930:15;;;-1:-1:-1;;34926:29:176;34917:39;;;34913:50;;34702:267::o;34974:333::-;35171:10;35163:6;35159:23;35148:9;35141:42;35219:2;35214;35203:9;35199:18;35192:30;35122:4;35239:62;35297:2;35286:9;35282:18;35274:6;35266;35239:62;:::i;:::-;35231:70;34974:333;-1:-1:-1;;;;;34974:333:176:o;35312:430::-;-1:-1:-1;;;;;35525:32:176;;35507:51;;35606:10;35594:23;;35589:2;35574:18;;35567:51;35654:2;35649;35634:18;;35627:30;;;-1:-1:-1;;35674:62:176;;35717:18;;35709:6;35701;35674:62;:::i;:::-;35666:70;35312:430;-1:-1:-1;;;;;;35312:430:176:o;35747:271::-;35930:6;35922;35917:3;35904:33;35886:3;35956:16;;35981:13;;;35956:16;35747:271;-1:-1:-1;35747:271:176:o;36023:486::-;36225:2;36207:21;;;36264:2;36244:18;;;36237:30;36303:34;36298:2;36283:18;;36276:62;36374:34;36369:2;36354:18;;36347:62;-1:-1:-1;;;36440:3:176;36425:19;;36418:49;36499:3;36484:19;;36023:486::o;36514:471::-;36555:3;36593:5;36587:12;36620:6;36615:3;36608:19;36645:1;36655:162;36669:6;36666:1;36663:13;36655:162;;;36731:4;36787:13;;;36783:22;;36777:29;36759:11;;;36755:20;;36748:59;36684:12;36655:162;;;36835:6;36832:1;36829:13;36826:87;;;36901:1;36894:4;36885:6;36880:3;36876:16;36872:27;36865:38;36826:87;-1:-1:-1;36967:2:176;36946:15;-1:-1:-1;;36942:29:176;36933:39;;;;36974:4;36929:50;;36514:471;-1:-1:-1;;36514:471:176:o;36990:624::-;37264:1;37260;37255:3;37251:11;37247:19;37239:6;37235:32;37224:9;37217:51;37304:2;37299;37288:9;37284:18;37277:30;37198:4;37342:6;37336:13;37385:4;37380:2;37369:9;37365:18;37358:32;37413:51;37459:3;37448:9;37444:19;37430:12;37413:51;:::i;:::-;37399:65;;37520:2;37512:6;37508:15;37502:22;37495:4;37484:9;37480:20;37473:52;37580:2;37572:6;37568:15;37562:22;37556:3;37545:9;37541:19;37534:51;37602:6;37594:14;;;36990:624;;;;;:::o;37619:219::-;37768:2;37757:9;37750:21;37731:4;37788:44;37828:2;37817:9;37813:18;37805:6;37788:44;:::i;38735:335::-;38838:4;38896:11;38883:25;38990:3;38986:8;38975;38959:14;38955:29;38951:44;38931:18;38927:69;38917:97;;39010:1;39007;39000:12;38917:97;39031:33;;;;;38735:335;-1:-1:-1;;38735:335:176:o;39075:142::-;39151:20;;39180:31;39151:20;39180:31;:::i;39870:245::-;39937:6;39990:2;39978:9;39969:7;39965:23;39961:32;39958:52;;;40006:1;40003;39996:12;39958:52;40038:9;40032:16;40057:28;40079:5;40057:28;:::i;40708:756::-;40838:6;40833:3;40826:19;40808:3;40864:4;40893:2;40888:3;40884:12;40877:19;;40919:5;40942:1;40952:487;40966:6;40963:1;40960:13;40952:487;;;41043:6;41030:20;41063:33;41088:7;41063:33;:::i;:::-;-1:-1:-1;;;;;41121:33:176;41109:46;;41196:15;;;41183:29;41225:32;41183:29;41225:32;:::i;:::-;-1:-1:-1;;;;;41291:40:176;41277:12;;;41270:62;41355:4;41379:12;;;;41414:15;;;;;40988:1;40981:9;40952:487;;41469:2181;41722:2;41774:21;;;41747:18;;;41830:22;;;41693:4;;41871:2;41889:18;;;41953:1;41949:14;;;41934:30;;41930:39;;41992:6;41693:4;42026:1595;42040:6;42037:1;42034:13;42026:1595;;;42105:22;;;-1:-1:-1;;42101:36:176;42089:49;;42177:20;;42252:14;42248:27;;;-1:-1:-1;;42244:42:176;42220:67;;42210:95;;42301:1;42298;42291:12;42210:95;42331:31;;42385:4;42430:19;;42506:14;42502:26;;;-1:-1:-1;;42498:40:176;42472:67;;42462:95;;42553:1;42550;42543:12;42462:95;42585:32;;42644:21;;-1:-1:-1;;;;;42681:30:176;;42678:50;;;42724:1;42721;42714:12;42678:50;42782:6;42779:1;42775:14;42759;42755:35;42748:5;42744:47;42741:67;;;42804:1;42801;42794:12;42741:67;42836:2;42828:6;42821:18;42866:110;42972:2;42964:6;42960:15;42952:6;42947:2;42938:7;42934:16;42866:110;:::i;:::-;42852:124;;;;43009:42;43047:2;43040:5;43036:14;43009:42;:::i;:::-;-1:-1:-1;;;;;14431:31:176;43114:15;;;14419:44;43180:14;;;43167:28;43150:15;;;43143:53;43219:4;43258:33;43276:14;;;43258:33;:::i;:::-;18209:10;18198:22;43338:15;;;18186:35;43377:4;43416:33;43434:14;;;43416:33;:::i;:::-;18209:10;18198:22;43496:15;;18186:35;;;;-1:-1:-1;43599:12:176;;;;43564:15;;;;42062:1;42055:9;42026:1595;;;-1:-1:-1;43638:6:176;;41469:2181;-1:-1:-1;;;;;;;;41469:2181:176:o;45544:197::-;45582:3;45610:6;45651:2;45644:5;45640:14;45678:2;45669:7;45666:15;45663:41;;;45684:18;;:::i;:::-;45733:1;45720:15;;45544:197;-1:-1:-1;;;45544:197:176:o","linkReferences":{},"immutableReferences":{"20588":[{"start":1104,"length":32},{"start":4345,"length":32},{"start":5784,"length":32},{"start":6207,"length":32},{"start":6800,"length":32}],"20591":[{"start":1001,"length":32},{"start":7644,"length":32},{"start":8140,"length":32}],"20594":[{"start":925,"length":32},{"start":7151,"length":32}],"20597":[{"start":1552,"length":32},{"start":6620,"length":32}],"25427":[{"start":1050,"length":32},{"start":9577,"length":32},{"start":9789,"length":32},{"start":9916,"length":32}],"25430":[{"start":12394,"length":32},{"start":12582,"length":32},{"start":12818,"length":32}],"25433":[{"start":3125,"length":32},{"start":3268,"length":32},{"start":3396,"length":32},{"start":9493,"length":32},{"start":9697,"length":32},{"start":10840,"length":32},{"start":11256,"length":32}],"25436":[{"start":3598,"length":32},{"start":3945,"length":32},{"start":4096,"length":32},{"start":11034,"length":32},{"start":11421,"length":32},{"start":11580,"length":32}]}},"methodIdentifiers":{"avsDirectory()":"6b3aa72e","balanceOf(address)":"70a08231","batchesState(bytes32)":"b099627e","blsApkRegistry()":"5df45946","checkPublicInput(bytes,bytes32)":"95c6d604","checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"4ae07c37","createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":"fce36c7d","createNewTask(bytes32,string)":"5c008994","delegation()":"df5cf723","deregisterOperatorFromAVS(address)":"a364f4da","getOperatorRestakedStrategies(address)":"33cfb7b7","getRestakeableStrategies()":"e481af9d","initialize(address,address)":"485cc955","owner()":"8da5cb5b","registerOperatorToAVS(address,(bytes,bytes32,uint256))":"9926ee7d","registryCoordinator()":"6d14a987","renounceOwnership()":"715018a6","respondToTask(bytes32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"2dd94eba","respondToTaskV2(bytes32,address,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"ab21739a","rewardsInitiator()":"fc299dee","setRewardsInitiator(address)":"3bc28c8c","setStaleStakesForbidden(bool)":"416c7e5e","stakeRegistry()":"68304835","staleStakesForbidden()":"b98d0908","transferOwnership(address)":"f2fde38b","trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":"171f1d5b","updateAVSMetadataURI(string)":"a98fb355","verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)":"06045a91"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAVSDirectory\",\"name\":\"__avsDirectory\",\"type\":\"address\"},{\"internalType\":\"contract IRewardsCoordinator\",\"name\":\"__rewardsCoordinator\",\"type\":\"address\"},{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"__registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"contract IStakeRegistry\",\"name\":\"__stakeRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"BatchVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"batcher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"BatcherBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"}],\"name\":\"NewBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"}],\"name\":\"NewBatchV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevRewardsInitiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newRewardsInitiator\",\"type\":\"address\"}],\"name\":\"RewardsInitiatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"StaleStakesForbiddenUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"avsDirectory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"batchesState\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"responded\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blsApkRegistry\",\"outputs\":[{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"checkPublicInput\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlockNumber\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"checkSignatures\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96[]\",\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\"},{\"internalType\":\"uint96[]\",\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\"}],\"internalType\":\"struct IBLSSignatureChecker.QuorumStakeTotals\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IRewardsCoordinator.StrategyAndMultiplier[]\",\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"internalType\":\"struct IRewardsCoordinator.RewardsSubmission[]\",\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\"}],\"name\":\"createAVSRewardsSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"}],\"name\":\"createNewTask\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"deregisterOperatorFromAVS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRestakedStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRestakeableStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewardsInitiator\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"operatorSignature\",\"type\":\"tuple\"}],\"name\":\"registerOperatorToAVS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\"}],\"name\":\"respondToTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\"}],\"name\":\"respondToTaskV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsInitiator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRewardsInitiator\",\"type\":\"address\"}],\"name\":\"setRewardsInitiator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setStaleStakesForbidden\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contract IStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staleStakesForbidden\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"apk\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"}],\"name\":\"trySignatureAndApkVerification\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pairingSuccessful\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"siganatureIsValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metadataURI\",\"type\":\"string\"}],\"name\":\"updateAVSMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubInputCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"verifyBatchInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"details\":\"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.\",\"params\":{\"msgHash\":\"is the hash being signed\",\"params\":\"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature\",\"referenceBlockNumber\":\"is the block number at which the stake information is being verified\"},\"returns\":{\"_0\":\"quorumStakeTotals is the struct containing the total and signed stake for each quorum\",\"_1\":\"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs\"}},\"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])\":{\"details\":\"Only callabe by the permissioned rewardsInitiator addressThe duration of the `rewardsSubmission` cannot exceed `MAX_REWARDS_DURATION`The tokens are sent to the `RewardsCoordinator` contractStrategies must be in ascending order of addresses to check for duplicatesThis function will revert if the `rewardsSubmission` is malformed, e.g. if the `strategies` and `weights` arrays are of non-equal lengths\",\"params\":{\"rewardsSubmissions\":\"The rewards submissions being created\"}},\"deregisterOperatorFromAVS(address)\":{\"params\":{\"operator\":\"The address of the operator to deregister.\"}},\"getOperatorRestakedStrategies(address)\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately\",\"params\":{\"operator\":\"The address of the operator to get restaked strategies for\"}},\"getRestakeableStrategies()\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerOperatorToAVS(address,(bytes,bytes32,uint256))\":{\"params\":{\"operator\":\"The address of the operator to register.\",\"operatorSignature\":\"The signature, salt, and expiry of the operator's signature.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setRewardsInitiator(address)\":{\"details\":\"only callable by the owner\",\"params\":{\"newRewardsInitiator\":\"The new rewards initiator address\"}},\"setStaleStakesForbidden(bool)\":{\"params\":{\"value\":\"to toggle staleStakesForbidden\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"params\":{\"apk\":\"is the claimed G1 public key\",\"apkG2\":\"is provided G2 public key\",\"msgHash\":\"is the hash being signed\",\"sigma\":\"is the G1 point signature\"},\"returns\":{\"pairingSuccessful\":\"is true if the pairing precompile call was successful\",\"siganatureIsValid\":\"is true if the signature is valid\"}},\"updateAVSMetadataURI(string)\":{\"details\":\"only callable by the owner\",\"params\":{\"_metadataURI\":\"is the metadata URI for the AVS\"}}},\"title\":\"Primary entrypoint for procuring services from Aligned.\",\"version\":1},\"userdoc\":{\"events\":{\"StaleStakesForbiddenUpdate(bool)\":{\"notice\":\"Emitted when `staleStakesForbiddenUpdate` is set\"}},\"kind\":\"user\",\"methods\":{\"avsDirectory()\":{\"notice\":\"Returns the EigenLayer AVSDirectory contract.\"},\"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"notice\":\"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme.\"},\"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])\":{\"notice\":\"Creates a new rewards submission to the EigenLayer RewardsCoordinator contract, to be split amongst the set of stakers delegated to operators who are registered to this `avs`\"},\"deregisterOperatorFromAVS(address)\":{\"notice\":\"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator deregistration from the AVS\"},\"getOperatorRestakedStrategies(address)\":{\"notice\":\"Returns the list of strategies that the operator has potentially restaked on the AVS\"},\"getRestakeableStrategies()\":{\"notice\":\"Returns the list of strategies that the AVS supports for restaking\"},\"registerOperatorToAVS(address,(bytes,bytes32,uint256))\":{\"notice\":\"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator registration with the AVS\"},\"rewardsInitiator()\":{\"notice\":\"The address of the entity that can initiate rewards\"},\"setRewardsInitiator(address)\":{\"notice\":\"Sets the rewards initiator address\"},\"setStaleStakesForbidden(bool)\":{\"notice\":\"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window.\"},\"staleStakesForbidden()\":{\"notice\":\"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window.\"},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"notice\":\"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key\"},\"updateAVSMetadataURI(string)\":{\"notice\":\"Updates the metadata URI for the AVS\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/AlignedLayerServiceManager.sol\":\"AlignedLayerServiceManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x162271a3a98c3b1a15e96593762e53ff41c23569e93f7949f34f9abfff761aad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2db54243afaa81c0f104e9cf126c0e061e0fed0e3515f513e991fc55ecd0f7d\",\"dweb:/ipfs/QmZcSi3DcULHYCmqhLbcr46aQCQSPLbSziPd62918obkCP\"]},\"src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IAVSDirectory","name":"__avsDirectory","type":"address"},{"internalType":"contract IRewardsCoordinator","name":"__rewardsCoordinator","type":"address"},{"internalType":"contract IRegistryCoordinator","name":"__registryCoordinator","type":"address"},{"internalType":"contract IStakeRegistry","name":"__stakeRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"address","name":"senderAddress","type":"address","indexed":false}],"type":"event","name":"BatchVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"batcher","type":"address","indexed":true},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"BatcherBalanceUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32","indexed":false},{"internalType":"string","name":"batchDataPointer","type":"string","indexed":false}],"type":"event","name":"NewBatch","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"address","name":"senderAddress","type":"address","indexed":false},{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32","indexed":false},{"internalType":"string","name":"batchDataPointer","type":"string","indexed":false}],"type":"event","name":"NewBatchV2","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"prevRewardsInitiator","type":"address","indexed":false},{"internalType":"address","name":"newRewardsInitiator","type":"address","indexed":false}],"type":"event","name":"RewardsInitiatorUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"value","type":"bool","indexed":false}],"type":"event","name":"StaleStakesForbiddenUpdate","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"avsDirectory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"batchesState","outputs":[{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32"},{"internalType":"bool","name":"responded","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blsApkRegistry","outputs":[{"internalType":"contract IBLSApkRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"publicInput","type":"bytes"},{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"checkPublicInput","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"uint32","name":"referenceBlockNumber","type":"uint32"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"params","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"view","type":"function","name":"checkSignatures","outputs":[{"internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","name":"","type":"tuple","components":[{"internalType":"uint96[]","name":"signedStakeForQuorum","type":"uint96[]"},{"internalType":"uint96[]","name":"totalStakeForQuorum","type":"uint96[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct IRewardsCoordinator.RewardsSubmission[]","name":"rewardsSubmissions","type":"tuple[]","components":[{"internalType":"struct IRewardsCoordinator.StrategyAndMultiplier[]","name":"strategiesAndMultipliers","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint32","name":"startTimestamp","type":"uint32"},{"internalType":"uint32","name":"duration","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"createAVSRewardsSubmission"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"string","name":"batchDataPointer","type":"string"}],"stateMutability":"payable","type":"function","name":"createNewTask"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegation","outputs":[{"internalType":"contract IDelegationManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperatorFromAVS"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRestakedStrategies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRestakeableStrategies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"},{"internalType":"address","name":"_rewardsInitiator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"operatorSignature","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"registerOperatorToAVS"},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCoordinator","outputs":[{"internalType":"contract IRegistryCoordinator","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"nonSignerStakesAndSignature","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"respondToTask"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"address","name":"senderAddress","type":"address"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"nonSignerStakesAndSignature","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"respondToTaskV2"},{"inputs":[],"stateMutability":"view","type":"function","name":"rewardsInitiator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newRewardsInitiator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRewardsInitiator"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStaleStakesForbidden"},{"inputs":[],"stateMutability":"view","type":"function","name":"stakeRegistry","outputs":[{"internalType":"contract IStakeRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"staleStakesForbidden","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"struct BN254.G1Point","name":"apk","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}],"stateMutability":"view","type":"function","name":"trySignatureAndApkVerification","outputs":[{"internalType":"bool","name":"pairingSuccessful","type":"bool"},{"internalType":"bool","name":"siganatureIsValid","type":"bool"}]},{"inputs":[{"internalType":"string","name":"_metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateAVSMetadataURI"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"pubInputCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"address","name":"senderAddress","type":"address"}],"stateMutability":"view","type":"function","name":"verifyBatchInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"details":"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.","params":{"msgHash":"is the hash being signed","params":"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature","referenceBlockNumber":"is the block number at which the stake information is being verified"},"returns":{"_0":"quorumStakeTotals is the struct containing the total and signed stake for each quorum","_1":"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs"}},"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":{"details":"Only callabe by the permissioned rewardsInitiator addressThe duration of the `rewardsSubmission` cannot exceed `MAX_REWARDS_DURATION`The tokens are sent to the `RewardsCoordinator` contractStrategies must be in ascending order of addresses to check for duplicatesThis function will revert if the `rewardsSubmission` is malformed, e.g. if the `strategies` and `weights` arrays are of non-equal lengths","params":{"rewardsSubmissions":"The rewards submissions being created"}},"deregisterOperatorFromAVS(address)":{"params":{"operator":"The address of the operator to deregister."}},"getOperatorRestakedStrategies(address)":{"details":"This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately","params":{"operator":"The address of the operator to get restaked strategies for"}},"getRestakeableStrategies()":{"details":"This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately"},"owner()":{"details":"Returns the address of the current owner."},"registerOperatorToAVS(address,(bytes,bytes32,uint256))":{"params":{"operator":"The address of the operator to register.","operatorSignature":"The signature, salt, and expiry of the operator's signature."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setRewardsInitiator(address)":{"details":"only callable by the owner","params":{"newRewardsInitiator":"The new rewards initiator address"}},"setStaleStakesForbidden(bool)":{"params":{"value":"to toggle staleStakesForbidden"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"params":{"apk":"is the claimed G1 public key","apkG2":"is provided G2 public key","msgHash":"is the hash being signed","sigma":"is the G1 point signature"},"returns":{"pairingSuccessful":"is true if the pairing precompile call was successful","siganatureIsValid":"is true if the signature is valid"}},"updateAVSMetadataURI(string)":{"details":"only callable by the owner","params":{"_metadataURI":"is the metadata URI for the AVS"}}},"version":1},"userdoc":{"kind":"user","methods":{"avsDirectory()":{"notice":"Returns the EigenLayer AVSDirectory contract."},"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"notice":"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme."},"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":{"notice":"Creates a new rewards submission to the EigenLayer RewardsCoordinator contract, to be split amongst the set of stakers delegated to operators who are registered to this `avs`"},"deregisterOperatorFromAVS(address)":{"notice":"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator deregistration from the AVS"},"getOperatorRestakedStrategies(address)":{"notice":"Returns the list of strategies that the operator has potentially restaked on the AVS"},"getRestakeableStrategies()":{"notice":"Returns the list of strategies that the AVS supports for restaking"},"registerOperatorToAVS(address,(bytes,bytes32,uint256))":{"notice":"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator registration with the AVS"},"rewardsInitiator()":{"notice":"The address of the entity that can initiate rewards"},"setRewardsInitiator(address)":{"notice":"Sets the rewards initiator address"},"setStaleStakesForbidden(bool)":{"notice":"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window."},"staleStakesForbidden()":{"notice":"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window."},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"notice":"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key"},"updateAVSMetadataURI(string)":{"notice":"Updates the metadata URI for the AVS"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/AlignedLayerServiceManager.sol":"AlignedLayerServiceManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x162271a3a98c3b1a15e96593762e53ff41c23569e93f7949f34f9abfff761aad","urls":["bzz-raw://c2db54243afaa81c0f104e9cf126c0e061e0fed0e3515f513e991fc55ecd0f7d","dweb:/ipfs/QmZcSi3DcULHYCmqhLbcr46aQCQSPLbSziPd62918obkCP"],"license":"UNLICENSED"},"src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"}},"version":1},"id":171} \ No newline at end of file diff --git a/batcher/aligned-sdk/src/communication/batch.rs b/batcher/aligned-sdk/src/communication/batch.rs index cb7bf5665..027ba9f09 100644 --- a/batcher/aligned-sdk/src/communication/batch.rs +++ b/batcher/aligned-sdk/src/communication/batch.rs @@ -44,11 +44,17 @@ pub async fn await_batch_verification( aligned_verification_data: &AlignedVerificationData, rpc_url: &str, chain: Chain, + payment_service_addr: &str, ) -> Result<(), errors::SubmitError> { for _ in 0..RETRIES { - if is_proof_verified(aligned_verification_data, chain.clone(), rpc_url) - .await - .is_ok_and(|r| r) + if is_proof_verified( + aligned_verification_data, + chain.clone(), + rpc_url, + payment_service_addr, + ) + .await + .is_ok_and(|r| r) { return Ok(()); } diff --git a/batcher/aligned-sdk/src/sdk.rs b/batcher/aligned-sdk/src/sdk.rs index 074c8e5f1..f03bb9e5b 100644 --- a/batcher/aligned-sdk/src/sdk.rs +++ b/batcher/aligned-sdk/src/sdk.rs @@ -40,6 +40,7 @@ use futures_util::{ /// * `verification_data` - An array of verification data of each proof. /// * `wallet` - The wallet used to sign the proof. /// * `nonce` - The nonce of the submitter address. See `get_next_nonce`. +/// * `payment_service_addr` - The address of the payment service contract. /// # Returns /// * An array of aligned verification data obtained when submitting the proof. /// # Errors @@ -66,13 +67,19 @@ pub async fn submit_multiple_and_wait_verification( verification_data: &[VerificationData], wallet: Wallet, nonce: U256, + payment_service_addr: &str, ) -> Result, errors::SubmitError> { let aligned_verification_data = submit_multiple(batcher_url, verification_data, wallet, nonce).await?; for aligned_verification_data_item in aligned_verification_data.iter() { - await_batch_verification(aligned_verification_data_item, eth_rpc_url, chain.clone()) - .await?; + await_batch_verification( + aligned_verification_data_item, + eth_rpc_url, + chain.clone(), + payment_service_addr, + ) + .await?; } Ok(aligned_verification_data) @@ -182,6 +189,7 @@ async fn _submit_multiple( /// * `verification_data` - The verification data of the proof. /// * `wallet` - The wallet used to sign the proof. /// * `nonce` - The nonce of the submitter address. See `get_next_nonce`. +/// * `payment_service_addr` - The address of the payment service contract. /// # Returns /// * The aligned verification data obtained when submitting the proof. /// # Errors @@ -208,6 +216,7 @@ pub async fn submit_and_wait_verification( verification_data: &VerificationData, wallet: Wallet, nonce: U256, + payment_service_addr: &str, ) -> Result { let verification_data = vec![verification_data.clone()]; @@ -218,6 +227,7 @@ pub async fn submit_and_wait_verification( &verification_data, wallet, nonce, + payment_service_addr, ) .await?; @@ -265,6 +275,7 @@ pub async fn submit( /// * `aligned_verification_data` - The aligned verification data obtained when submitting the proofs. /// * `chain` - The chain on which the verification will be done. /// * `eth_rpc_url` - The URL of the Ethereum RPC node. +/// * `payment_service_addr` - The address of the payment service. /// # Returns /// * A boolean indicating whether the proof was verified on-chain and is included in the batch. /// # Errors @@ -275,18 +286,27 @@ pub async fn is_proof_verified( aligned_verification_data: &AlignedVerificationData, chain: Chain, eth_rpc_url: &str, + payment_service_addr: &str, ) -> Result { let eth_rpc_provider = Provider::::try_from(eth_rpc_url).map_err(|e: url::ParseError| { errors::VerificationError::EthereumProviderError(e.to_string()) })?; - _is_proof_verified(aligned_verification_data, chain, eth_rpc_provider).await + + _is_proof_verified( + aligned_verification_data, + chain, + eth_rpc_provider, + payment_service_addr, + ) + .await } async fn _is_proof_verified( aligned_verification_data: &AlignedVerificationData, chain: Chain, eth_rpc_provider: Provider, + payment_service_addr: &str, ) -> Result { let contract_address = match chain { Chain::Devnet => "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", @@ -294,6 +314,10 @@ async fn _is_proof_verified( Chain::HoleskyStage => "0x9C5231FC88059C086Ea95712d105A2026048c39B", }; + let payment_service_addr = payment_service_addr + .parse::
() + .map_err(|e| errors::VerificationError::HexDecodingError(e.to_string()))?; + // All the elements from the merkle proof have to be concatenated let merkle_proof: Vec = aligned_verification_data .batch_inclusion_proof @@ -317,6 +341,7 @@ async fn _is_proof_verified( aligned_verification_data.batch_merkle_root, merkle_proof.into(), aligned_verification_data.index_in_batch.into(), + payment_service_addr, ); let result = call @@ -405,6 +430,8 @@ mod test { use ethers::signers::LocalWallet; + const BATCHER_PAYMENT_SERVICE_ADDR: &str = "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0"; + #[tokio::test] async fn test_submit_success() { let base_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); @@ -438,6 +465,7 @@ mod test { &verification_data, wallet, U256::zero(), + BATCHER_PAYMENT_SERVICE_ADDR, ) .await .unwrap(); @@ -471,6 +499,7 @@ mod test { &verification_data, wallet, U256::zero(), + BATCHER_PAYMENT_SERVICE_ADDR, ) .await; @@ -512,6 +541,7 @@ mod test { &verification_data, wallet, U256::zero(), + BATCHER_PAYMENT_SERVICE_ADDR, ) .await .unwrap(); @@ -522,6 +552,7 @@ mod test { &aligned_verification_data[0], Chain::Devnet, "http://localhost:8545", + BATCHER_PAYMENT_SERVICE_ADDR, ) .await .unwrap(); @@ -562,6 +593,7 @@ mod test { &verification_data, wallet, U256::zero(), + BATCHER_PAYMENT_SERVICE_ADDR, ) .await .unwrap(); @@ -577,6 +609,7 @@ mod test { &aligned_verification_data_modified, Chain::Devnet, "http://localhost:8545", + BATCHER_PAYMENT_SERVICE_ADDR, ) .await .unwrap(); diff --git a/batcher/aligned/src/main.rs b/batcher/aligned/src/main.rs index 7cb1603db..43bcf69e2 100644 --- a/batcher/aligned/src/main.rs +++ b/batcher/aligned/src/main.rs @@ -162,6 +162,12 @@ pub struct VerifyProofOnchainArgs { default_value = "devnet" )] chain: ChainArg, + #[arg( + name = "Batcher Payment Service Eth Address", + long = "payment_service_addr", + default_value = "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0" + )] + payment_service_addr: String, } #[derive(Parser, Debug)] @@ -360,6 +366,7 @@ async fn main() -> Result<(), AlignedError> { &aligned_verification_data, chain, &verify_inclusion_args.eth_rpc_url, + &verify_inclusion_args.payment_service_addr, ) .await?; diff --git a/docs/guides/1_SDK.md b/docs/guides/1_SDK.md index 4aaccca89..3c002b8d1 100644 --- a/docs/guides/1_SDK.md +++ b/docs/guides/1_SDK.md @@ -114,6 +114,7 @@ pub async fn submit_and_wait_verification( verification_data: &VerificationData, wallet: Wallet, nonce: U256, + payment_service_addr: &str, ) -> Result ``` @@ -125,6 +126,7 @@ pub async fn submit_and_wait_verification( - `verification_data` - The verification data for the proof. - `wallet` - The wallet used to sign the proof. Should be using correct chain id. See `get_chain_id`. - `nonce` - The nonce of the submitter address. See `get_next_nonce`. +- `payment_service_addr` - The address of the batcher payment service contract. #### Returns @@ -162,6 +164,7 @@ pub async fn submit_multiple_and_wait_verification( verification_data: &[VerificationData], wallet: Wallet, nonce: U256, + payment_service_addr: &str, ) -> Result, errors::SubmitError> ``` @@ -173,6 +176,7 @@ pub async fn submit_multiple_and_wait_verification( - `verification_data` - A verification data array. - `wallet` - The wallet used to sign the proof. Should be using correct chain id. See `get_chain_id`. - `nonce` - The nonce of the submitter address. See `get_next_nonce`. +- `payment_service_addr` - The address of the batcher payment service contract. #### Returns @@ -206,6 +210,7 @@ pub async fn is_proof_verified( aligned_verification_data: AlignedVerificationData, chain: Chain, eth_rpc_url: &str, + payment_service_addr: &str, ) -> Result ``` @@ -214,6 +219,7 @@ pub async fn is_proof_verified( - `aligned_verification_data` - The aligned verification data obtained when submitting the proofs. - `chain` - The chain on which the verification will be done. - `eth_rpc_url` - The URL of the Ethereum RPC node. +- `payment_service_addr` - The address of the batcher payment service contract. #### Returns From dd52e7c5e6d9644dbdd6ded6e94f5e166fa8690a Mon Sep 17 00:00:00 2001 From: Nicolas Rampoldi <58613770+NicolasRampoldi@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:04:03 -0300 Subject: [PATCH 2/3] fix: public inputs sdk integration (#945) --- docs/guides/3_validating_public_input.md | 18 ++++-- .../aligned-integration/Cargo.lock | 52 +++++++++++++++++- .../aligned-integration/Cargo.toml | 2 +- .../aligned-integration/src/main.rs | 33 ++++++----- .../contracts/.env.example | 1 + .../contracts/deploy.sh | 8 ++- .../contracts/script/Deployer.s.sol | 8 ++- .../contracts/src/FibonacciValidator.sol | 9 ++- .../risc_zero_fibonacci.proof | Bin 215590 -> 215590 bytes 9 files changed, 104 insertions(+), 27 deletions(-) diff --git a/docs/guides/3_validating_public_input.md b/docs/guides/3_validating_public_input.md index 9b0900966..fcb6bbe0a 100644 --- a/docs/guides/3_validating_public_input.md +++ b/docs/guides/3_validating_public_input.md @@ -10,7 +10,7 @@ This guide assumes you are in the `examples/validating-public-input` directory. ## Generate your ZK Proof -> [!IMPORTANT] +> [!IMPORTANT] > To generate the proof ensure you have [docker](https://www.docker.com/get-started/) installed and the docker daemon running. > This is necessary to ensure deterministic builds of the binary we want to generate a proof of. If not used, builds may differ depending on the system you are running on. To know more about this, check [this link](https://dev.risczero.com/terminology#deterministic-builds) from RiscZero docs. @@ -42,6 +42,7 @@ pragma solidity ^0.8.12; contract FibonacciValidator { address public alignedServiceManager; + address public paymentServiceAddr; bytes32 public fibonacciProgramId; bytes32 public fibonacciProgramIdCommitment = @@ -49,8 +50,9 @@ contract FibonacciValidator { event FibonacciNumbers(uint32 fibN, uint32 fibNPlusOne); - constructor(address _alignedServiceManager) { + constructor(address _alignedServiceManager, address _paymentServiceAddr) { alignedServiceManager = _alignedServiceManager; + paymentServiceAddr = _paymentServiceAddr; } function verifyBatchInclusion( @@ -78,14 +80,15 @@ contract FibonacciValidator { bytes memory proofIsIncluded ) = alignedServiceManager.staticcall( abi.encodeWithSignature( - "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)", + "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)", proofCommitment, pubInputCommitment, programIdCommitment, proofGeneratorAddr, batchMerkleRoot, merkleProof, - verificationDataBatchIndex + verificationDataBatchIndex, + paymentServiceAddr ) ); @@ -116,6 +119,7 @@ contract FibonacciValidator { return (first, second); } } + ``` ### Explanation @@ -146,14 +150,15 @@ require( bytes memory proofIsIncluded ) = alignedServiceManager.staticcall( abi.encodeWithSignature( - "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)", + "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)", proofCommitment, pubInputCommitment, programIdCommitment, proofGeneratorAddr, batchMerkleRoot, merkleProof, - verificationDataBatchIndex + verificationDataBatchIndex, + paymentServiceAddr ) ); @@ -192,6 +197,7 @@ To deploy the contract, first you will need to set up the `.env` file in the con RPC_URL= #You can use publicnode RPC: https://ethereum-holesky-rpc.publicnode.com PRIVATE_KEY= ALIGNED_SERVICE_MANAGER_ADDRESS= #0x58F280BeBE9B34c9939C3C39e0890C81f163B623 for Holesky +PAYMENT_SERVICE_ADDRESS= #0x815aeCA64a974297942D2Bbf034ABEe22a38A003 for Holesky ``` Then, run `make deploy_fibonacci_validator`. diff --git a/examples/validating-public-input/aligned-integration/Cargo.lock b/examples/validating-public-input/aligned-integration/Cargo.lock index 6064458f8..9a2e89daa 100644 --- a/examples/validating-public-input/aligned-integration/Cargo.lock +++ b/examples/validating-public-input/aligned-integration/Cargo.lock @@ -63,8 +63,9 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/yetanotherco/aligned_layer?tag=v0.4.0#325aef8c3f54ec596b4733956a8ac487d5535fc3" +source = "git+https://github.com/yetanotherco/aligned_layer?rev=6908110aaa04ec3107f15ab8a8bb2603e7bbead9#6908110aaa04ec3107f15ab8a8bb2603e7bbead9" dependencies = [ + "ciborium", "ethers", "futures-util", "hex", @@ -72,6 +73,7 @@ dependencies = [ "log", "serde", "serde_json", + "serde_repr", "sha3", "tokio", "tokio-tungstenite 0.23.1", @@ -395,6 +397,33 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + [[package]] name = "cipher" version = "0.4.4" @@ -1396,6 +1425,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -2801,6 +2840,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.71", +] + [[package]] name = "serde_spanned" version = "0.6.6" diff --git a/examples/validating-public-input/aligned-integration/Cargo.toml b/examples/validating-public-input/aligned-integration/Cargo.toml index 102eff59c..018529fc7 100644 --- a/examples/validating-public-input/aligned-integration/Cargo.toml +++ b/examples/validating-public-input/aligned-integration/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -aligned-sdk = { git = "https://github.com/yetanotherco/aligned_layer", tag="v0.4.0" } +aligned-sdk = { git = "https://github.com/yetanotherco/aligned_layer", rev="6908110aaa04ec3107f15ab8a8bb2603e7bbead9" } tokio = { version = "1.37.0", features = ["io-std", "time", "macros", "rt", "rt-multi-thread", "sync"] } ethers = { tag = "v2.0.15-fix-reconnections", features = ["ws", "rustls"], git = "https://github.com/yetanotherco/ethers-rs.git" } serde = { version = "1.0.201", features = ["derive"] } diff --git a/examples/validating-public-input/aligned-integration/src/main.rs b/examples/validating-public-input/aligned-integration/src/main.rs index 1a0458c6f..f1de3f85f 100644 --- a/examples/validating-public-input/aligned-integration/src/main.rs +++ b/examples/validating-public-input/aligned-integration/src/main.rs @@ -1,3 +1,4 @@ +use std::env; use std::fs::File; use std::io::Write; use std::path::PathBuf; @@ -6,7 +7,7 @@ use std::str::FromStr; use aligned_sdk::core::errors::SubmitError; use aligned_sdk::core::types::Chain::Holesky; use aligned_sdk::core::types::{AlignedVerificationData, ProvingSystemId, VerificationData}; -use aligned_sdk::sdk::{get_next_nonce, submit_and_wait}; +use aligned_sdk::sdk::{get_next_nonce, submit_and_wait_verification}; use env_logger::Env; use ethers::signers::{LocalWallet, Signer}; use ethers::types::Address; @@ -49,20 +50,23 @@ async fn main() -> Result<(), SubmitError> { proof_generator_addr, }; - let wallet = LocalWallet::from_str(WALLET_PRIVATE_KEY).expect("Failed to create wallet"); + let wallet = LocalWallet::from_str(WALLET_PRIVATE_KEY) + .expect("Failed to create wallet") + .with_chain_id(17000u64); let nonce = get_next_nonce(RPC_URL, wallet.address(), BATCHER_PAYMENTS_ADDRESS) .await .expect("Failed to get next nonce"); info!("Submitting Fibonacci proof to Aligned and waiting for verification..."); - let aligned_verification_data = submit_and_wait( + let aligned_verification_data = submit_and_wait_verification( BATCHER_URL, RPC_URL, Holesky, &verification_data, wallet, nonce, + BATCHER_PAYMENTS_ADDRESS, ) .await?; @@ -72,14 +76,11 @@ async fn main() -> Result<(), SubmitError> { "Saving verification data to {:?}", batch_inclusion_data_directory_path ); - if let Some(aligned_verification_data) = aligned_verification_data { - save_response( - batch_inclusion_data_directory_path, - &aligned_verification_data, - )?; - } else { - return Err(SubmitError::EmptyVerificationDataList); - } + + save_response( + batch_inclusion_data_directory_path, + &aligned_verification_data, + )?; Ok(()) } @@ -104,13 +105,19 @@ fn save_response( let batch_inclusion_data_path = batch_inclusion_data_directory_path.join(batch_inclusion_data_file_name); - let data = serde_json::to_vec(&aligned_verification_data)?; + let data = serde_json::to_vec(&aligned_verification_data).unwrap(); let mut file = File::create(&batch_inclusion_data_path) .map_err(|e| SubmitError::IoError(batch_inclusion_data_path.clone(), e))?; - file.write_all(data.as_slice()) .map_err(|e| SubmitError::IoError(batch_inclusion_data_path.clone(), e))?; + let current_dir = env::current_dir().expect("Failed to get current directory"); + + info!( + "Saved batch inclusion data to {:?}", + current_dir.join(batch_inclusion_data_path) + ); + Ok(()) } diff --git a/examples/validating-public-input/contracts/.env.example b/examples/validating-public-input/contracts/.env.example index 8be214766..8b52b8ba1 100644 --- a/examples/validating-public-input/contracts/.env.example +++ b/examples/validating-public-input/contracts/.env.example @@ -1,3 +1,4 @@ RPC_URL= #You can use publicnode RPC: https://ethereum-holesky-rpc.publicnode.com PRIVATE_KEY= ALIGNED_SERVICE_MANAGER_ADDRESS= #0x58F280BeBE9B34c9939C3C39e0890C81f163B623 for Holesky +PAYMENT_SERVICE_ADDRESS= #0x815aeCA64a974297942D2Bbf034ABEe22a38A003 for Holesky diff --git a/examples/validating-public-input/contracts/deploy.sh b/examples/validating-public-input/contracts/deploy.sh index 108a07a0f..8cdb860f1 100755 --- a/examples/validating-public-input/contracts/deploy.sh +++ b/examples/validating-public-input/contracts/deploy.sh @@ -11,6 +11,11 @@ if [ -z "$ALIGNED_SERVICE_MANAGER_ADDRESS" ]; then exit 1 fi +if [ -z "$PAYMENT_SERVICE_ADDRESS" ]; then + echo "PAYMENT_SERVICE_ADDRESS is not set. Please set it in .env" + exit 1 +fi + if [ -z "$RPC_URL" ]; then echo "RPC_URL is not set. Please set it in .env" exit 1 @@ -25,7 +30,8 @@ forge install forge script script/Deployer.s.sol \ "$ALIGNED_SERVICE_MANAGER_ADDRESS" \ + "$PAYMENT_SERVICE_ADDRESS" \ --rpc-url "$RPC_URL" \ --private-key "$PRIVATE_KEY" \ --broadcast \ - --sig "run(address _alignedServiceManager)" + --sig "run(address _alignedServiceManager,address _paymentServiceAddr)" diff --git a/examples/validating-public-input/contracts/script/Deployer.s.sol b/examples/validating-public-input/contracts/script/Deployer.s.sol index 2efdc7156..5a9d76101 100644 --- a/examples/validating-public-input/contracts/script/Deployer.s.sol +++ b/examples/validating-public-input/contracts/script/Deployer.s.sol @@ -7,11 +7,15 @@ import {FibonacciValidator} from "../src/FibonacciValidator.sol"; contract FibonacciDeployer is Script { function setUp() public {} - function run(address _targetContract) external returns (address) { + function run( + address _alignedServiceManager, + address _paymentServiceAddr + ) external returns (address) { vm.startBroadcast(); FibonacciValidator fibonacciContract = new FibonacciValidator( - _targetContract + _alignedServiceManager, + _paymentServiceAddr ); vm.stopBroadcast(); diff --git a/examples/validating-public-input/contracts/src/FibonacciValidator.sol b/examples/validating-public-input/contracts/src/FibonacciValidator.sol index 8afa39737..29350c9a7 100644 --- a/examples/validating-public-input/contracts/src/FibonacciValidator.sol +++ b/examples/validating-public-input/contracts/src/FibonacciValidator.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.12; contract FibonacciValidator { address public alignedServiceManager; + address public paymentServiceAddr; bytes32 public fibonacciProgramId; bytes32 public fibonacciProgramIdCommitment = @@ -10,8 +11,9 @@ contract FibonacciValidator { event FibonacciNumbers(uint32 fibN, uint32 fibNPlusOne); - constructor(address _alignedServiceManager) { + constructor(address _alignedServiceManager, address _paymentServiceAddr) { alignedServiceManager = _alignedServiceManager; + paymentServiceAddr = _paymentServiceAddr; } function verifyBatchInclusion( @@ -39,14 +41,15 @@ contract FibonacciValidator { bytes memory proofIsIncluded ) = alignedServiceManager.staticcall( abi.encodeWithSignature( - "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)", + "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)", proofCommitment, pubInputCommitment, programIdCommitment, proofGeneratorAddr, batchMerkleRoot, merkleProof, - verificationDataBatchIndex + verificationDataBatchIndex, + paymentServiceAddr ) ); diff --git a/examples/validating-public-input/risc_zero/fibonacci_proof_generator/risc_zero_fibonacci.proof b/examples/validating-public-input/risc_zero/fibonacci_proof_generator/risc_zero_fibonacci.proof index 4f992198297adadf8783a2970e5aee4910584fbc..e70545747430d8e1a6cb603cf90641e76b44da53 100644 GIT binary patch literal 215590 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 VHWY` zzdxu=a@Xi5xr&Iio5%Rxp0>IH(;e0N3e+c>l%uXq9T^ZlI`%q!9x6-^4&d%ap*1^fjb}}rN zs6ze;_d+bhR*VFnMp;~C;}Vl{jW7yGT=gqEV&t(axMyGaJ3s^QM+}cGyG23bJdslr zRU;t=eqD=_NYC^vZw2j>8sk*rbNyBBuR>Bd8%L=W6}E-<#a!r_$f)w-ZvST)uZaU8 zoNg=dLb=_M2TG+Nve=kB#qyfq6IaNLn(G+6mA1a?z_+BSlbes5J<2%cM$q-^W+WkR zAZ#Qv*T^Lm6j@2j$J~B$+y3&AEr+0Np1ht`xLDZ!A@L_Gg8e=~Lr5@hEBsBYpSXQU z9dc}HM6tTVhzELCi6#{vtrqa-4L!$srWwDnY#nHayPdy?E z{5jn73BdZ>Pt5t>AQx1Ej(iIQaSvh)=TUGrRGn zBJ%D`8`qneOqp!DQ)NFm2D?Uz;$yBa$$(09jio3UT7zES22+b%@5=*5GvwvX{ zMB83G=Gb@`7?kw0z&+)8qSUy_1(}A$z{p0TLSQL|q+mDlomecGOAY96ND2&u|g;(yZm*VP8srB$e2 z=?OiH5&)gnL0>A{DF*J@P!vTgZTwPq4QFw|D#M9IhC-uXw8M;fMU|sp$O^s!F~`~a zMAklktP!0O=R9mM!uOVim7Lb6tM^mg%q^}x*S#khY#judVJpIsX|KKk0k2g{qGv$W zF1xR^>|YBc!lT1i!I*g(y`0yBp7BDCQSZhkBis=mjJCEk{D(mw5z~_2-R@}Lv8yQ8 zQq;)39UyIB0>NoMfQ6a-0%fx1a&}*i)Ob9ciX%C8MZ>YB+KS8K(CO85pPhmjvuQnk z4z7=DwgcaPoA?+~{7l~^iR#CMushrv3DL_Z>M^i%V6hjY?Bk?Uq{rlSSWs_VL~kcO z7VEkBmqT_aPo%n?)}h$USfb`mni(#kl2LRtDA4)OMTW1fWWEeK3v|XIElMMd9iY@? zZSY(q&t@mUQP*!r@+0xy>)ec6?vvcgHh*Ll&ouGrp@r!9rmHYM!ybg20ozZLPD*{y4+24e+E|8ZlX!*gVo=vpb+D@ah znc36cjJD*ub=2)m5yw~EaIs5ey8g?9R{-|Dr?A%!k%&>zQjDU$0PKOFwe3~)P|qv2x2-PZiRrX?{t99CV6^l- zFj2}iJ));8Rdh1G&!7eB{oyCKwCi~Cmt;Y@FzH=dJ3yA4W<!mzi_c_$K+7*8> z-o!tP#Ha8Hjx&JQYAJbA97Su<>XPoYRR({B7}0@&`D&;Q3;&X+Qt!ku8~64vse1o( z&``2LHBHh9idw8i$%E1`Louncp(1lv%UDyN3qhn zC3q)8)Csb784#!_rn#We>Pvaq7CD7RC{EL70CGvgUi#|8<_{dHQD>vCnAEJPQ2(EA zN&b&h9lmEhgXd^_)BXchSVww{m~G6vJBlQ{^oqNrZK$S&q;Ck*n5pzgPh+w$9_yg1i_iZ4Q<}arwn_~0R zP@Qg9RK9fuFOO$|B`^EFyBtoK6YI1?BcGj0bRH;mptc*ijI^_p_L`Nw670Y7C@*;W zz>#VAl)NY5PwMSekJ3hTwY@1G9M}-^>h5XUnXe-9&q`T+Jr=V;Oqami0uA*npz!Cs zDrObFEUf~xs!jVm!7GWHM;k%r3K9t*+5-V*!;3<}{g%9(0Faed*y&BtUn@JIxe1|a zuT%ff$&2nOaXy|z{i06O54@^nEx=+8nmVb{bZxHI4-Xkh3&>bLh1d~l4v?BR48o2{`|JuBcE-xGL~ZB5?GN$<`2At zc{2ms$;c0Xi^`>*7^X{wTd;L0mg1|_{0W%6s#H8 zW%7{VoOnS#miL1BUc=82I76f;EF@0ncjR_>h{KkMi_aYiPhW4HEs?uqJ6$2KM2ZAY z?cxVOo1;3;9cGStDqM{4dd%LghQ)dDZ< zItufAIdE+XIr3_d`WB>qzgJ{I*)%e3lrtvli5-0P$c|c&JM14Oa~#X`E{xXs=RQgL z)dXwKUn%-WN573jd{=a?%S(y>iK7_I7{yTGuVais(ow#CooRGc7z1X5*<_b4R#CxT zp>a`(7n$HIeQlaa@F@)?-}@NT05#Gf`%U+-HGdm-87*e%ezxdsd0zK3D@(^k{dg7!p;zKg`lBO;aW?epdnbZ7%40 z%^;WjBNp%D#UZxPuU~_vmn$gmJfO;aV!zpTgbV_^QoC5zd)8GXe!Ui*4SmZK8lvVE zdy_|4c*b2edy7trzHlPg@y`jZQllqiL})>|Y!yMHap|p-n3lsb&ErGu<*JV{4YS_htI&Y}mYO&RM{1`O@JCxr`QBfoEOZMSidz=+>I}*dwTRsG4+lS zeX_U0gOy%tt2d|_f^@W_I7T(G=LcI$u{dGVq5B(3bH$aeziN0n{3nvsZag;8LAP#r z%%I;Y`l*SBmh+17%J}kfVo`U9a$K%tFGXFSL}LYv1#PD$z)vcYJ`>@|8ptD(rksa{ z)MDK~Slo12f@9VH+L2ih%4Hro|6T{0GksCtcTO;4{lqSznOJPp1rU^Ko{5n;hGs$@ z&}4wzhAX{YevJd$N?6q6$DvBphkrHxvWZbIcJjjyU#!X}X;lHV%684_+h{eO$!emM zRd?y!ioQUnWE3<<tZ@MN;U;_lTb zt-GquU$v`T3K=6!#ItZrUvlOJZUgspuV3NS_;JZe*;+7+n@?btS@p4r1>%;ov%X^z zh(lk?pzuYi$ze0tZ7N7cJAvei(tTf3YSmFydoX*W-#G1rD4pb+YSmc>?)XcAb5QM;Bk} z-g=YEMPe=naYCLc)&05Vv+ypaWNxgMaOwvWY53YzgVD zmV^g!RxAcrwDfN0y2I6DT=s3mXraN)l%WY`j~lIX+FjLGrPbp`-3}h?kP|4Ckrpw! z)WVy4qR943Qm*)5-COU;NT-m zj*Pv|&gw)H;@os18+Of6&oWM9Wqc6A0RNyyrP0Yt`DaU}xj0;=EEQU_1 z;%d@00Sugm95vBXK7AN*@HZD%ua9vM?)9ZS<7BJvAm-eDvC5sxwq8sSmORcCLR^NB;A|_dncy7F-wh6m8y}<9QX2-Wp{QDA z4SG8|LG%+Ys@tM5vAf!s$spa{bhVQ3?s}Dm9H@f5{e>=c^~fB*8R&(ip<@Vcp4Bl| z|Ih%1ul|6#t=rLWU62KhtK60W#a3`2qOOBKp565cNbHTuxkJy=`?nUEK>5Tu`HdM9 z*LPXlAZt#}+GCARJKWv{|y{C8>- zV6`Nml+_1#_Z&i6xAe7@DSoDWJh&jXbCqgC-3E#1ULWx36Wt0u%x}g&yrSiB>)u~R zVC59TvhETaZ$duKLJVqbrul~J`J3WcQ@?xAUoqQqH;f0x%J<%2A3s|29K5xxt{Tyf zw3pgpmcGa@@>pdI)&^nmjE1Fn{hP%qjs-WyetPz{v*J z_w;3gF%QWkN=gzqw6~2T$WzDr#~UV}3q;KrB4wD@JS0ycgDr}SKY2IOucX|ilk0Y* z`72J_lSeDk<}ItHPZ~af4|LL`M;_z}>IE6;>UXj+5Nwnwsm*N$J=kAjS2rrvemvO< zI5aBqDGWdvVe#G}rG|Zm*rZ*j17w%v0gXT1C9-HZwQWQ7vYQ7}_QyN60h|y(cDxVF zORX4J`%FVwyF5omK{e28oaV9j3eiAuEoq4xsl(t$8UBEc4-%CDnr8;EPrfGbMgLHX z{!#4M)N?iR+M*sOh2gal%ZE-8`Y9Sr+(0l3`zxp){)wp--$lG(fGLY=BwpYCeMb>Q zuO?iX!2UkwICe#|N31USu-A9Sl(A+nKv9;OXKV#gj{JeC zYv;FOoz6;3PS{U(+IzxUYe`qUoC2v5{9@N7pTFY4qlwRDz1}q0_H&aYpT}+D(=az= zdraQxP>=JRT2sH!!iN{h+R;DpD(FEK(NSU1Z-r=!^4uScFPGW^k%A`ng^M<^nfHCd zNMw}j_33MYrqH+MZA)q)rWU`wsBX#Z7W4>MR(gm-P5V<)ZAO_g`H8)<`&F)3*fUx58336!4qmiK?sk z^qd+qbM^uuJ~jbgHKc)4?f=BXPgWB1qSXv<`<<(kfD8`IsmNgg%&sYjsuYL+YL?MV z=`vGn`GC;XvRjla>#GgMtO?+_3|O3{a#=;^oY}&Q^b&>Z*5~9q`#d?vI4;NP`0=ZL z=1;chPF|+VzNxRMnLcIwebgyJzsL!BmSfG?xTu1&`4VZgEvJdTGGu^yZTXAt?ouf@ zsLsNoDr{SSB#Mt1bbp5`q^|3-J=gEuwmZkmGg|Ct5DRi%o1j2P9F^FMh7xp6{1nB= z`aWj$#^sW<`cWD~WdE2gH=@Y%HG-FO_%Fx$FTeR-${Yys2lL=n5w4nk+E$GBQs)JM zOUU3|%(Uss!EFm+gJ3heyc3e}y(J8DA%OYQ&a#)+tO7tl;5eqybQZ-CXA!dl+Ew_* z@Q!kIf8NYK3@G#QaLSISca&r ztfWU*rzc@xRrczfj42(xIC<$2AmGoZbjkA{NF9zZ{{n0HURkg4?%UsX-)0yoY^Tu~ zI*JKL%M;52&3s-78e*nC` zZOm|d_%iO~)H7JlCtH!Oe}eE^?sItlX(^_2ED(NWUKRHD&LE)dtb_2chgV&W!(Z$| z*)Z7j_#q&-ET0(hHp=l>9mWEAdVtq6U6v2ZkJ8Wfs|p+bC+V;n)1sn$%^0(r^IBE- z>7pt3#m6+S+2Ew>x%RYQ>c11A0=)*$W<}K+%aQZ~x&+Et>^ve>`nCpgr(dFbJW*R2 zqp#<3+HB0(U~Gw&XB2V-%^K0kdc*z*nA@{pB-}H#>y)8E?M5YNE$KT)0}|dmmDqN^ zzsMRae^|V66xw`Jm1wBm3$P`u^Ye0lfyK171eqE`ny)^(-jDdh(GkY zsq>&VO5o8XhgdjY!ubaoYgoeFs3S=3KpzgLg1hS>dTO*&ti(G{n1mYws4~sMqKU;R zzz=PX+K2fNu}>y8vW)pK5^`A&enILahNRr1duG@Kyx?RNDGzoM>e;={t11^^_H!2r ztgs68pgcp^y?ba8sLvA?eLo@FLSi6MLHTo@@x~FsEl8*(TKfo0AJ{?9-4o6%A2hLs zl3`X5i>G)yn+>Gc7qPRbrN95jVA|5lWu-?4N?W+dx{Y+=Ny_S%l^GQY#7Jev(y6&< zjp3v**_Ea4qtFiA6t2c>-}5j`p!-%hF?b}{j_Iv>tj=rw=3tP}vsAG1yN$MJi(kih zqYocx*`Ch2f4Da%B81`xlf6mf3F_8uls*1M+Z+j5^vPT>~$eJ({1v&&%4103m|#PopZp9W`gR%!Lc+5+dG~ zaXg0*xZD^0!TwWg; z)6og!OBlrv$DRgPVQmzjPea6eu*sS|Pj1I-7O=S9Y)&KCr%$UGg&zmJ^K@p=2T$oT zT&z)z(Grx0 zhefMQ_g?l0D<|OF&+-*Hc$Iv0Mkc*EWRnB~G?{5_SEkf7rrWfhc5%>7CKe-qj<`wW zZM+Ps9nMlNNrU6+%fz@P7(t+Ge;@G+{|y(Pv4#pis!t)^NS}zgs9P2;pDyWk{ldPq z@SXP&R zqrbttHct+`zpxjOrKvB0lbp8VXP^|=C!Ga>mlHifK1#>D3uhV-+4?5jL)Hp8U_Rd8 zNt?2k#o|Ac-j@%gP_-1&)WB3!q?a``2UK~R;TDp>D#kQ zwY=2fu$*vfM|9eenBBBr_ZoXE8Ly!lxJ0n}e=PAf*LT>86-lIfGcvTv3?@20Is5`e zExgp1@o+>^kZ!PF-Up`<&m+zI_t?G1F-|(qQ^JI01$qMiHe`f4k3Wor^m4)g6D;unKJ>Jji%1Erk`%e;f9&WAjpW`DV4Cpzz zFDy<8AU_1+9VIt#7_5;b1*U^R`!P#39BO z>@?T&4b5UzU5kHk;z=tX;Iy9%wD>Nk#c;>}RIVe6J19a%v`^h`6H5oB?OqcKc@4hQ zN3W#qoR=3WG53p#rSo*GxH#TUvQ~y3QT*{rQk@kX8ruc;@okAW&{=GI(a`zZxJxa5 zYe`QC;Z9_H8F1a~AwcY>3HhJ11pLM<3h<)*r@ty@f~M<8O^c%6p*UdkOLdMF zB&;F(18&k;6xFe$D{&y@q5C~T)mucb->S}3%2VXL?s|>?chDks$3u~ZLnm6!ly-NL zMN6D_N%@VzF;*x=RL5cfPUU(L>kPE~XATyHaRpM+MK;dl1nKZM;BIVf>{%!N&YIO1 zOrMlG2R+$okIwu)@gQ>1U(_QO)t--3ZWcVx}addHMpJ358C(PRQ{Y9n&RKp$`y*LVj1e;f z>;BURHiMKDt^5}^$f2&j2Hpd{9Cva+YQ(#XQdw`xcov8_55EXyfHty5dHdv>qGDeb z?=urL<;f`)(W;ySIBjs`WFk+60zw!Wy*Ed6kJt?Gtornr(8csHN_~LtK+S&i^T!r2 zpwg*EW`-7l(09t^C3ykR9~vuv@y)vL^KWT99}#{gGMu-?k{QV^)zd+=K}LS0^s`_& z&+q{5{@%CI{AKmVg_3rxwvVGY1f}Y!X89C7iLcwr{x_lQR6%}`qq0;pAbH$_HY?Yj ztKC}-TrsC29Yyuki`Qiv;z(!HSGuqB=D9RK1I60@hq|R>TPQ2em!_YZe}q(VJR$H` z_So@MQ5#f6>*C!57P{?-f%4$zlRsE_ON6P86WL+vTYL1RGFhqDUFGPwy;qP>%o2ZO z!;yDQs=CPwU3S()1sdPEr|KyCzs!`iBMvSjOe&rmqKgRL^Hr#EDRMcHEA^ADDyQmI zsoQ-KS?0U>)4*jrWlL+g(Vw*HXBaH3@>(F3+XPy;*d!lC2(m%%TM)6#ErJ%A6QWJ;^GKFLxmRff){TApSR8-qDq%)ENo7t`o=o>hPX$PMv1ceLE zILCGrV=N|&B{BP#9eQ4@zZ6ufs1QEST+Wmp zW~P(8@+<1{(hTMJgMw7Sc%-y>l!4JwSD3|Z;la=bM`c&)?*|sM{FgZZ3+i^I@PDKu zrZFysqyZ-)J{VG=>8ba$V8!*I+eJ%ar$SBj`3nw-P%sceu41wze|C?6=~`O9=!#<9 zTD5@lWQ(dpi{y!4F#>N^{t&&N*P7Igq>#sJ-W!UP>q#RG17ev+A$E7TOPM4&>mksq z+5ol7`LM4}H-+BI9AO$%7}WCaUW!%wNFXa~uFB)N1Nc*Py`}X6y9A57&;p)=O$;1Q zP0a?}{s~gmpwe{EeSsIYu9677ZGX+Z)<}54Y>-q-1Y)D6F^sLHjZga!%0DZsFW&q% z#CaA+VY%7`lfasGYW!aOBG5-BdK+P{fP%5P?u}9$O7i*Dv^@g!u^CTTX(;nOHr!@A zuIXb>!QZH!gu-TaqbDrvQSDw3x!PJ&r&r?>xYv$Qo6Ba89Il{QXvXYCW2#cQ*)cvO zI*(yL<=uJ!gBQh!m5=lWG#o!8ouQT&>|voIN+MFsIYi)+L(a_HvqdPw5yu5Ucu%NH zw^o(f-QEQFJVz0*D>zHeEIUbqGC$@n8wm``?9|gap6~UQ^x8u8ew>aF zX?Tvge79XZ+5urdMEBOmuUbia%;dy$>boLq$XcY;{nX11TkrPU!Qwh!m?=em9oTK5YSbF z5dkvgTKuVb8}snwSTD!h2vxWEPa~uw6!1cj3lTCT2caWDcopq0>G_izxeC=qEq9Jg zDNk?l(7g!IR({5RT`mLSq+5`AHL#AhD

5negr(SKxIm6$0stp44DHjMd|o00!0k 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 K>m2_l{eJ;GgACLF literal 215590 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�x$e}>c@O26%H{7#qolLzv$=ff9FSiDrwxTz{wUIk5kHK|EUL4#;y8&GWNW|53tOF<+=FQN9n&* zg?SDV3k0})v07m_^Eijj^;00v?*j1W1<^isAPO|^js?S4N$o)ri>-L`O4tvl;oxHa zuY8YUb;BJGvck8j?-Ci+jbj2iE*l z&35kMJ)N{oU1`|)VnEdXBI;EdA@H43ug z;wx{~Wy@(E4?8=cZc-Fiz}XxvV6Y!A76Pz;&w6-S+WIRq!^h=&iqYcrb<^A#ZlC+X zrSucadk)S92SN`V6^&tYi3o-a*!I(dLNz3mkM)^5GZFb8zv=|$Ap|_Ktb%=$9k+;$ zMP+lHaX~s}VwwlT#o+Pt?9r6}i1UG~5vT)I*<`;2&5|#>SX)7B9Uoc-_rXt2L=Z5| z^v$px2omcdem>xyeaH9<7YM-KIMfQu${7@5HH+0F@Q}qgCome+lGIugkJ{%D#E_hS zD}I9g%^eL_cZFalZJS{0yRw-acSw@x5xtV={5ogwr=e^Q!Lq#s*1TT#=#&7d*a3?A zU+jd_VdXk+>&H)mNtgHSW2LP*TG<`qtwxX`M`7>XzrDZY>({|=xLU&&T)8*M8&$-w zeilc9oU40G-!}X$6`fS2)^|C?EG|Tzbk%tRq%ZMY^V^nm$j?=rN`qvvfYzUWu1|Wy z#GA2Cv|C+nV$l)TO$*MpVCmvM@v#L}Omo@`nv0i{#ZrbnOv5fpI8FxbtEK-ur|8dX z2fqPrR%bd7#-1ct)hz?U3r-)XXId?U36FWHYpkpX2&0y_9KJE9K}Wbh7&) z_*wbShjF%95Z66zPW^-lwDG?fTAkG_R|kqS{e;i*C`U!vg5RvFZr_t}aA*BwmxO=l z%B+jk&%QUS;VqXhWOQ8UQF-mOCPQ)b?*gh>O)6xlXe-Ym`x)ZGV-h3KjPVlYf&IY< zN7dQ{WtlFf#9>i6<<++;k3l_R=RRwzS4o(QeZoBi(0lJXx0!UrvaWx(YBmTERIKtb z@cNIR7xaCF88B2LmY9LSl|S+J)itUF>0)k1Ih_!6Zo1u7Uz

zby!uJ#Vpqm)*vD zy;v2I5mcXcD_YQUD0H|P1Ga)YDmmVa;z=9kuI9sgirHwIiUvmtzLLaoL**av_Tq$v z`)*1ZCNp)KH!&S>edO%XvwdBm*>;~1>=za&o;Qt;sdD6SE4-MmK!z(avAnMrBd7{_ z#|Ds1wr@V9sP@^aJV@e^|57z8@RIl@+U_`qH$47`hctCTUs~}J$%=iI+;D}Tc=>6k zgZN9h&?ClUeMfLTr-j@An}3%Bz-EWd>yfaUfgD_o5%Q!OpF#oqls; zW!T8TEP&OHBr%Xl))ka7Tpzw!#$G_kq+ z#qxHnYb^ebn>sgB!SZqU=c4=0``IJ3oD8_<3iRWiE|^|o-^Ba>rUx{;ULdShJ%Nzw zGQxt~Qq-=B8d|vkr%`X%{xg>n3IL7FDhuM62Yy+ z$@CuI_TLtUXs(KSzKAw#h||;%%x*V{f_i(;Mps35+bMuOKWx}8D(xE_D~n4JHv(gN z;#%TW*mrpa`5Sc-pD{!Eq;;H!K2vxOZA=Ue8%U7v6R?P^_X@%d&*l}v=dx+U>=d2a z{suB>-kVgp$}38Kyd=PjU7~JZf|=zIU{PF8tU`u;Dy_;7ro~jwpE!8z9+C;_AGqoO z?D(TPF<*4rGtqPQV=Q>&hy*wG5tSv1COB42uwfN^1?t*(1-ZOJKwN3p3!Q%t0`4ei%EbV46CbC%a09^ZvpwzaiCml3#H9?hDVSO5 zlZF(V`I12{L2>HU3TbouQoJ+?&P$M@k%fCF z7|SCTQJPCLvqb0c2VA})vJ<+9!hnCo{rq9!_@--()`VO0%3YgL7a4*q5$<$YJQ%@9dvJ&rqT zKHvLCtfE-aVy3iDO^Yej?eoZMEFkVqjD^n+=@14$k+{(`9>d+n1oXk_NX!fJx_{|>p_P;e=W)SKq!NTiF0H5lHjOZUVj#F zI6m*Q*WMO^lhB|JzZ8kr*=kN8C7i{SD6k8Rp;{#tEhYgP@c%rB(LeQSIX5jsgrp3l zH`2Mc#C72~9>@G*8GamzwMA)Ho2RoI@mf zTPHfS%|IXm3DC^4qOei|i-J9_>+(8e`6`$+quI`X-HtrLSqQw|0rBir?dz_4Ut!A0 z>Eij61hHib{4LV*NH{JeH;BciEf^KDJYf2^YmHeAsHgnX2by>}t|Ej^5&?P@T)|eD z>Z?JYYS~?jpN!(oPL_$e&=TtREnbbkr-*Md1S{elgK|tek&oHjnFRn z@K(K4nxCAMR~SpP7ZJ_}|B+p4v@kNSA?ZLiTA7phs)Fs4=d|Arj2aD7eViJtw{5>H z>Pb9UZlMTRj3u0BaWvrHmta}}-FKd~cf}0J%&E(7r)p0bx`hIhzCo1jQQQQp&w6rO zi)im;B1;*?(jg<_me~8J-3sC-{1CKuV{mQ;Sz<1F$K>hDe$HiKAseF44n6qaxPH7- ztJh<;a$JX`gIp!kXUEypv*ZN-ILQ>P3=;rbjo_IIpbG02A@JDfy4D$CBd&I=p+7@n zS74WZ298N>r!JF}3R(KtQWG^n_@cR8UL)Oh!8#cRE9Nd$^ zKz6NY;g5L(;#&19seHfe)t7jceYh-0xEwt@eg&RF?bJrC)5ei&>M8eD<3bEmIX|Pl z;y*lY2w$#US7}drK$N#ta(DbCDjg~?>++<!b$)SY9UbkItB~m;%x2mB&BBE99w=sWP5*u0wS?8(GNeuK zI#*Hw4<&z~9jK-41$`UkXdJtFJz!LR)y)QL9#Cao>1>i3qhx)Q5_8b_T2N2Lk$Xn< zl0cXfD;wXXZo&QP5YFHHcpIWbc*q$6$FMB$Q6xTZRal-XCz@XvBEb#`W;=9}XKiu* zY5<9^q{kClq+&jA+U#pGqzy5+!N=f&Iomy$AydC+yFV7^J|RS+?X%c3;k`%ktjv zNRJ{&6;-u}Q!!s#Nwk0cEWN17f%wftJYuTxy4A@uhO%p$weBnK3JPm=4#gN6Wt?=Z zKvL}Ll_EC|2`!8tqYC}rx>+PiI9_XbgZd&JXWvtU$Ys0PTk(brnQ}-p^r#J&xLP|dA z35iUaow7g zbn8FI&MY~Gzx&_2#CiSa8k5sx#9001*gCWO=zx4{b2goqVK!#jmZEhEe&b=ENed0) ziT|zF33y3AHdIO}^Y5U3S#r3;gNi8`afH2T?YV9Z)GJ9I%%>mCM1 z=DoMc<5Ts7@Pw^3YBE8PPsPUjHWJRSR_B2a4(~djiOm13pgl>OgF4^-jL|z zR(smase9TGYvcse$yt(;(^CsYJE-bG>ZCcEUuHeObtF~(|O-001$WE{KZsz99m?>f;Ham2`;(pD);8v zV{;1x4f^GwoM|i946lE)gT02N3;nq(>nX^wq_4=V0u*_QvqDztC@niHa>?5NwHOU~ zYEH-ylu*rb@j5S1EL}Vh=5J{GQ?d1)uuUg8@|;(q*j82EFu`2^N#M?us)noAy3sj)41Pc?tCjMObJT@bMSt{ zCZrLBECpX$@xHKa_kS-`;n!;&XFc-3Gf2C)*-WGVd88On!Qdf(C-T|53Ui_}93ONs z6@2Y^MzGPPctUfUY#`#VYh;to_2B%Bd2;5Rfy8fTX+oqZWdW<(UmVNNJq#Qh0}>@k zPfX{Q^vKYoGIr5Nf;y6wl_FVZw>5jtqvU{JKKMc;1+$4y-kMhfvK z@ar3GWw~m(+q)bLbcf2EnT&eq4`i=#1q1oJ4OxZzY@$YG^A-kQOQ?+FtF~FKJ|6o!2iE*sMeMi5vcXeb zZ%HoBzxY$qGkCs(Ur`Vv?1=}B z96Tk|vl6At_6~_NF`+rLiahAL_mW`Bn%QQxiNLB(NH}p%K33;7n|548pak`-3(qy_ zC;Y1YUzH`glez1pUTRWq=TK0f^gu1>Bzg(~6&7oHfPO#qE?Ou$$r5fo#M`pREQJVB ziHx;M1Ek(phA8&w>kfOLCC_dLr%h=(L&dM8 zC8+b@rXB7)59rpv68($T-bf1#Jn^okiEMQBHX8)D@QPh{tgtZ({@Fo`>RTL9!q zKK#FR3Bgcbh?UW=6s`81i&{PH6ml*O!V+5&$Kvsn3|4RrApUHR)_GESLYQc|rpCId z@V=uO#5T~r)NfT)5vbl6D8lQ!n;WlUJ2Ue!G>W>3rkO}X!qEj{R zn0_l866I_ei7TLpHf=fR6if~dw(gRk0$qUlL~!e zbM1n18~b+!C~5mZG0cH$v~;!@C+qb{&VI0-x`L<`tNV)pl9Cug6SC{fL!>BII&E{p z3T2S)ZL!Wq`r3*+p2yDC*EbY$YT!EEn}ML!&OTI&vRSkp%PPRXJKp}=>{GctlTysT z28N!Mp`O2VM81NLW}_KrX_aW=#3v}VaYyYhGRmj(*Cl(oGnR-9?`fard*=aXFSN%2ei~C`@L~0dde|;TtQr5&IOv(v`i}J=aD0xV##SBr(nP`-BIWt*7wz1!_ab(mS|WD`T+(LGDKm!UF&njVBgx$e8HE! z;~IjcafMHDzCgZQ{FAWl*)NWT?j(1#Sv5iJx{}H4=7O8Z>4S=pTRp%ktqhuRJ63~r zw#RqiZo4Ggwy|`4u4#-;*N#uloRiGmC`JC76iLUdv?H;wt8J`#oqud*moG#XJ{CZI z;0Y75K*Y#?uxgY~*mkxQxV7ms$knJXd2K9IotSJZxKYF9elEt5CC1ZQ^Tv6doS3qJ z9w3?{KJEsO5~+zL=x-BA>}@cj>}i<_&E5&!nzQD!cLg8ZFFPBib$=nIO7Vx;;PeS^ z*VU(|wdg&~nx{fOSNvwYjoDIR&mvqy0AWA9fbO#zraX&YH*4al%0fvh69!Hp&Sf;n zqe6^d+j&YE^AC-dJa&+#d$F=FAB7v|Nzbrtd${WB_$*;=qHyFvefv6r}lFeBL5 zd&p&_o@!{)a7F3^)JOO|t;coXjRN^#vW9&r#!7NLvW->dI|%r21tw(rtXWh;>j?5k zc11${`YfUBT#wj6u%Ie@zux?}<5y1dnN{GKPD=-wRgCx?T`_Qa?y^~-{S@;S>sIeQ; z`2Z%Ss~#QPuWbkM{?r~-yutAyTP$jDAw;+@nWoHJC45aoIpU?}WlnH%2l`6+n|R!6 zFmv-{G~)PjRe1N{SLWA;!kllZip=;hVSPmSm_5Ep($nE@n?cBYCV*gB4l97$f2seNRWt8reF6QO9=02{QISmt*eVfgcnI?{-Ldqv#iHtmT-52R1k5ZrxX0l8JAabzi83WoPb7l!}#-R@~_ipo%vNVm{|M4%`MN3ua-b)Uf0iBB{!5m6-UvTV_H9!dQEUz*X;h z8ZCHPHaOv>KmzaA%dL7-ZxYpB*jz=YKseNLpJ~fh5Y&|-=68hdg+MQW9>y8 zxBVB@l?&&IFTW$);eRaj_vh;HhVv+S(VaA9Xv2||OkjexT9t!yK zx1Q;m&GZS#I?rvu^J_9t$96xyuZK)x-v)1r6Leqcp3k$wNb7wvRCsV9>Qiryn`UaZ ziRi}#pC$!khtpjwIV`R(PcDuSeMw!7&WU4$4R-SDuy2~WSMT#cG3itBdIG7oi0^W2 z!0rK?NANbqiQM1LY=3l2_mv3YI%$=OFD=>Kc`s?nhQ=fHR83?f|B-w2GzFZ%VZK2D zbpZ>|G+C4!(*P|&?M1Lt*EAR8WOmQhytSYjfFczO*0#}}OO zbx7t*4-e$Nifct*$C4ldXD^eX^aUQ6xIyN z$wjiSa`V*gN{d;R{!ACF`f9=j&UusAe`PcH4M&kuNna;x>W(!og4AtV!5m2mvVIg4 z%vd+HT{+^h`I^Us9A#Jf{a{G6)jQi!3c=;q)z1V1ladG#TfH{gtCx&U^z((KB3m>8 z;BH9DC<_#~TI@_2iIOA-!$M|iJ{o5QKnV06BKqCa5%q4U+bzlI%nIq8r0Uqu}VjbPPPa|Hr8 zB?cJk)*W6nEeF9mX1iHRoQj+%_Wp`sM(z5zH;}!*-Khf^oT$%kF*QETBB0B^4SY!G7YS5x}g?w>kK90T)THwVlUsk(~H2F*sr*E zH{XYC8VE?mK(i>hY9m6I?zLz$6-UHA94$8G2ZpK0er~mtC4}K(ynEmel5EJYF5V3M z0a)k!&QuZQd@K;L!u^;0lg9{_cTLY%eQpFZHurx3J3z$0`Yfhf`$z!{8CUIb6FWz7 zYb@(q!YOZjGhF``D?HHuL|P#e_GT~NWjTnu?**SrmulYa(QVNfGiEypw=m*FdL2GxG zAWG!w_%2NMSUzf0_YDLp1_A|KJt2NN*-5s;|5{G8*f((Q9Mn)*WA9mlYWSd?4F2LP)J^0!G~ErbjkBG&}8b z$Zj;4tQQ*}yk(uvTQ3@1OmgyEHW9tGcq_5Nh#{8TlT2=*`YwrP5K*55XAfd^Hwh;S zI2tiVY%79aQZ4jCiJ@bt6el%U03U3^B&99tWTt<-Uphe za4U@w)(c9{dPA6Trx7{a2}GO$=P>_57!ufqcVOy<<8*Iqlr5%n-xUiT69>H{(MzYc zEi$l~3nGYPX$(j|t4@Ypo+*x23s6TG!D||AJR7-co`gX#-2tfLNb}7D`hfTzhZ#WmcdTv?0iU=VVTxxWRP(ORXKxXGq@<()7AXEQH zKnDbYxi7$(S{3ovVKS=WQBb^t+gf+a0!lq*N?48=R0|=ow<@q}G&1r(glZ$;6$5d_ zJQ-St^9@Q*|42%(t~}HfQg#dM(RD@7hj!)@L{6jhMI~h2NdUBNMN@eR2vFGIPie3V zBORZw#803_3oiFZ?LII9Nf*L>8E2ZFFDR)j@+JP(9VEvhVrqh4c3N1f1_^}~GfVk= z{|1sc%}y-WylQ^}4FJLtvTi)|MIs7@GEVP{5di#fc?;f0Tsz(;)JCA?77cfN5@iUN zG9Ay{R41}785_3eiCTC9M^Sy;I5f}RT1G>YttPY_BV?>{UL2Ji_f~_4>I$+3EO9u^t5y$4fG*TolXDeBH*lRD!eW&*R0R!O(n0H!d2)~S0SFZ_ z<|@6*q+85m`!0jz(<2q(@l-{}Eo;z(kNZv+^2 zd_|5U&r}D1IWEvHdj>rBEHkjL#0(boNf9SDtP<_OUO0;iG6UfbD+8e-`Y*ZDRfcoMSO$w$2b#xn>PE(#IH z?>A;?1XNIKoLWmExo7C70Rs+Dx*?Frh$7m2#21u@gJh+FacI9XqhF|3 zcW~seC`n}~_FafZS5YluXbpw=k!*ftXD{RBeHO!sY#FrGrWTmRLvK=)Gb+EU*bJtq zrwqMH)DcT^;!z`;)DpVSA`xg}^+2g?(h93C|0aU!HgNvbXN(OWmFkl5-&rU=s2{V#vs4)MxEJd5~P!8^l&vlcxBNhFg8(ozr=tOJe zvqrjC88Ie}KqG>V?kU~IIUpz9kvO`~?0(GRUfdfkuW^hjApaP0tQe94djm#U&;W=Qp}vC@!U? zYcR@5IRmGukSYl)MgSt0YCSVS_A?7!6kR$jH3Ds^BO$(kAWaK_pFk&8Ku%gOfS^-CKIyb*Wwgh&u`XY_e2^75a zTUsJ|4hIKpHA@kJ3r%Fa{3n$9$_wFkn{n1vSy%yN=TkPYbxVhtL=HhZZxxJ*o;W|z zEgxeH#1e-;6K0@(=tdRVfNo&rtRH3)bRcPjXmJFP9a_5qyeHvqy4?Zf1g*TL%(9IC8PR-7$JLepu@=0X12MQx1v$XdFqtuTo@4 z85S<10Rpp7b_Qm@j$a=w&uc$wwn$!Ng)pPP^E>j9-v|q8%RyU;T^ws_hE45CsXV6d z&^>U!HZUS+00SJn|5?CcaZao@nk?#|HCx+d6Ak610TUgbjB^ZLd`mR{0Zn-6uunlr z)&RgSVIth|F&*;~&05v75h#`Q>{9|=c`x)rgbF8KaxnU)cRMc55g7^Hm@QF(-&S(c z8vz=mAZ7p;r76PNjXwe9(;+YVj#6Y+&>N#6CUu*LsW5Yy#|ThpqGHN&LoHWYJY8m* zS7CYZ>seKH2+=`$ye-nn+wx6hzUdoE-!LB&T&pu137Zkf^UM~1XBD& z2x`EWMrI4KBXr!eIT1TgggcxjP(e1tIVarDZCUsu z4rL~WV0Cc;sX#50bpRXy_e0+XWo`>%F>jr-IbE2yQg&`oZD>J)Oc*L2@mk^@wR2s* za2#GBT}FdznQ)!M&nzw6z$|=&=3nPM2VMjxpaJuNWMa8lBd(QP{Flv`G2T^huT3JQ>YHdFAb%@T(eXbX|7dImPk zUq3=C>=XbOW({0^>1`k3TvQ&C4G7e4HcC6CTS9{#4*=%K^kdfSjAo<6x^q-bt1@QJ zs7eQ{tX5@_xe_;%DM{8F+ZC}-IY5?kTOpO=4+prP_zQ?TY93Kfa0u-6XjD`9N-7m< z2WBFuiw7I>o*UnkZ!R{@|5Z^4`6a1p?_92EN*pA|VQ`A+Rb5F{zye|$nL4ACOEUj< zdN06gIb4>3oqdJ(m5nr((Ph9sbs$6W+D-WK6Le+d9$)Lqhk%w&h5yG5~x8dr*e zHU_fGAq}+#@^cm`v@_YT1R#<}-voPqy92sGbX%N3kRa*&^jZ9Q`7jx)&`l8epAK~b zC_(W-Uln@l`4jol7Cw^tD{CS>d?n7!G!p6(VovXY9U2=KQZNhxs8sLT(+Z^en_KwT zH!Ht$WHuvv`xUhT#{v)6vQ9a@@)LIk>Rm_99v(V|wRXSn=0!U|US}F8I%2)-qAEeL z^l=)^Zgik4$##77lS4KXurs1$WkM$VQ&`Mk?t8#ki*N)(ZSx=-j%F=>U0KqE%QFA*Tn;&mzu5@L8-R448Udm6GiP6mNd z1tZe)WL~orCtrJ(J7F2SB~lJ~Y6vh;VoVc!FIs9auwg>eK0xArq-g?KGcM7esAMVL zJZO^t5lkzjok^jk8z(NyQd^kN8b3R1>~<>Xd@0a8|8hhzTR3FlT>*|i07%D#=NFl1 z;!F?47h(Zl+yi}F5I1rfO+e<}EMyg@u~V|w5GW=j{~;s*n%2`F8P;Y8^R9!P%;wM$f{eM>i2%PMFs#TBl?t2&6C4pylN zGe2u7n^Z$J`8oU~mv?>v(L75cPcqbrJ5V8nl64el*9+yt9w5Oy$Wf!$pg82Q&^IM_ zN^Sx*iE)Qusb}xZ06eUHu3R<)BOk;Rs%;Ipk3X<@8%pSQ*#h`n#Zv;}t2Jb>^j*@Y zegU+^1vBf57Z(P5qAMgRl||3YQV4Y~$z813W&phh9&e?pp&b#8&|vRbV~Sj zbYAYGLIF_2E*_!fr;HU{RZ;!xi^s29ktwe6x|3}aWT}n0I6Ajq`M`|Ruh7&&N zVmiJwXm@p??lTX)?H7f5A#F}k>Hy3GCvx#tRe9Bc_vCV-*kvG+(xx3 zJv<6+fOX{ahg^rT5e+=^$!@Bb;UV#!Gh~JAB{!g9yb1`t1Y6~%^d8y592LMYDRkVd zmNY2YAynUUPBV@~R!qS~{Bqc;O*sx7aBq(>LMv&Hy;k$Igj1bow;qyeZ6%$XB6A8F zpA6S$e=~Ut;}ey&WMCA7_6BIwXaOs5b1=yrE_2Og09;l7Ssnd11t1dxEl)hzBWHDq zQ5MpDU@ID~k~E6|h%e+Ai4g_Qz%2S_=rG}ZQcG}lTN}e=v}V&4F%kROBXcB@GEBg` zEO(+*yar|So->(>Tt1ob=~7-X(o0d+jUs1<86N=>ym1f4;T}f2z6gqCAze)*`6DI9 zNj#PDpEKH=En>$tPfWmQwF@Xl{ZzBP z|8UOKNN#u@Gdu?+Y8N#DDRX9o?JN)+!9Sz-vlnumcV7T&b0ENO6<9kj#|>_UAvUUr zxe1qU*J^TxpEM10(vp)Ll=t&sg@|jB=TR$tg^M zP)};-ml$MALrlhtXji77eobaCun;}S6o`ykXdJeML z&k#wlw_eNdigIv{tP6#0f)J-Nn<&~>0Ck+U_(ZnHS_*u~(Ox9h@?%|0e+l38 zyHnI}R|`Tr?$_YqBkyg^1m;w}4#~%%RW;lL&vk4}q zz&XJpXA>C?#a_0AtY}*N3tXxJ#5-o#5F*DPTNj?%VQWCup&EZ0920)E+Z?Hu`WP8K z+5|=LAP<-&=}+@IX9E8Ti%A%F>2s75dl*0IG!fk?jzhZ>B2E|QrEC1pE@U;1KWE)c zLMWrBE(%7!&p^M*9uh>@A4(Lt*9gZBi*&4Zeh`RxZ3R}`_CmTxlTwN)#bfoR{~byo z3sA<|ZUt~&`#G*-=LFLZaAr%DCtumuiEZZ`+-$?q{U-hIlXMQCZDtlaYGfeezi38J zCS^AoqX9Fqxd>WVt8}Pv?{^-U z-)GhKraJ9bokJR$l5nx&w2RfC3u1N!&$WvrD@E#}lbzj*9`vfh3lW}S$ zct_HEoE=FSOCu*R1wk>VQ7s{(0uvnQeN2_7%s{E3AVt&QIy+z< zfB}pl>19gbg>f^Hv_R0hMt3E_EoKGf)Y6Kpn z7XVggQXKKI%on>n1}04DuK++DkU5c9>tZ$7#3soWV`>$jz)MCVmbR&d1OUno~bL^QhULm|0KI#~1+)-ASu8D?$flp}fExo=?`zi8$zbVo>r z{1$;U}fd=uuYHc@py zF>D!B>rs1fLMZO?)@Hh~>^53)KMvin1!UxG+YEb_&P5OLHg^g5aW!#uFc|a~7Bv*= z*BBOdkzGgyi!C^aP9&LQGzB2kf-7B#Y68o2CK^ja#dC&i5)=@0T0D@W_*G6Z2r}1w ziCPPWmLE_|6%8Z6hAiKOxMGO%B^alcp>*6yok<|`ff~6@1RXd1o^I)W$!TDc{xEU5 z(GGsDsB2pL+b@a*q%JfeiXW{@?n^C)32nK+9#sv>Hd@B=#Y#Q)C0Oll6>#w+H4~+h zNEZbjfND*2LlxI0bK6AyuK1*>8HwG6Xasi{r8#gl-1Wqo$ZaCQ)94RrL%R8b~%m&+p zbXKmTfhBwOhyXd*P*P2wt`qNA%}N8pUxd$iVy(rTZ0x5&;rddgZtQ_LTKn;CM zmTPVF+GLz2!6BFfLtZ`@Iy;6(q(=4gP&X{7^j75JxEsa~Kwm)Z>loyk5ROi zl{P_`vl~-4`4)GjK60=CXJ+9D13AoOlQ=qFU`!->gjzMGwOW@AMKDF{m^Non)K(%J zDRnRPNG>33A7Q|mR~XAWy>I^;silo*9=WNdw0A#TRpvOgZ19A;`Bw`Uu~*gehOv}>E_6Jm8cuGh zx+aopTpQx3wJ}H1xMy(C9#U?;S!8@r{6;)t?PwxC+Bm{*pe>|+T2C?aVq3u(>>|cw z?+x8&3poG3LS5*=J_H7t;3vk5rE~hz3l_>-@io!bF-@WpUsggV3_lva3{3s$vN+so z2sYu3xfK_VNLLM!IChpts#y_bn{s(TjYmgjX%OLEFc<~?ek^C?lusMrTW~T5m~wICdssV8 zeQ=H|Tuhhcq6L0Tvh)v~HxRJ`wHGtwUU`>s`{y0uLZ_m|tfS zMgcwt-CZv3kr()%JUzuVh$>I4!~?r-YY7$fxHhb6iY3!KLM1yZH&IecofpYJ={b>$ z3<}=3CLWVsOCu*#@Dh-6aWFXfF=m^-2a0XO*XEGLYkZ)hq z$~MT*91fSS>L^6Qp#e<_nF4kS)kHg7aB-4D+c83js~z0!-7)RW3s}3ybXu~_=~Jdv zUQ?cnYgO*cNhcMUxn_#L*jG~W15$w+;s>99|crp-f~vhDh9JUTW+FLs99h5M@x>mZ)=9UD_q{Abt#y4 z{a;O!KS2O9xG%1WWC!WG)nI3#YHVQ!`(Om&6BO~j9wljYfM0Be?QyF&JsM5ROb{(rbxN-3eN9fj0$v2almH^T zdM6S%lN$9X4_`jNw_C+HXF2#K_Y~@gHdYa1-zX286f}Na$QulW|6RaogKWydrc0f( z-Vtwe0e1QVVk!!36j{{z{%`LLzD4szbT*9%mP{C+kO?|Dyi<)9!4#2+(@d#Z#!LML zAUGQ~eH~exDQ;(brWoUZy)L{UeHe}suL@H$YGMzZ%txF2+G_rj+H;J?;aOc)d&i%Yz55GLtp=q$38?{Z?TraR3?esV<| zs!zO1sc7tGr%fYOq5!L)l~Lhj(sGW)abfFC!(e)&{Xl0@gGRsWJv1m9FLma0?qznA zxC1Y;(nV7Oo>nU$KqJ0C-$_B|_zV-OVN;>V31I>* zXanhF9wf_Z9c^#)gE7_Q0z0hva4JtUJTx?-@^I{N+&s0O8FHVVBW@tp3PcV?r5CVg zKP?_2ZAf}ZhBctdWps<4kp_uT-ApEX))RiHoKa9#lX6jL*f&T@CPE-USt@{ju5vB> z;&#CnSi3Hv>x~hcHPFJ6FP*Rc>g4 zBWxShlO%>EQ3?idP*)}g%tA;=09m>w^K{W#LoCYcAa)vid2nI$_7Gmxaz(m-XgiwN zi%3*?d|FvG!x%Ipg+fofre=e5B5hK_m_V#m-Vk)4a7mDLgDP()x^0Q8R19LO{sgCF zlSU9GxE5Ha7iTi&aU~lik4%!0Y$i>RM=Bg69UA^FrU5h`b00)&M|6Gdu?y`=YG`6C z`W{KXQ451~AXft`hda905*HHx-CL@pWm$JiSWFY1lS474a$nBCkuKjEjv$#gbywHc z_e#}y4;NqBWQO$cLY z-$|iI{6z-=<5d0f-3Yn`NC`Py8W&3}R~046%r^P4HDLh_aSr5$EDY{eOCf*{)(`tl zDh{|Y!*9$iAuPMIEM1@@b76Gw5lS4-F){8hh#&vpomu#}Np$zNNOr=9zAM!M9Y!I| zCk4yB?ltQnv?Hrchae)DuT$=28Z_fQL?M@i*;=sHgLBfSgkY+Ag%)2*;Z6PFx@f~10UX=G6Bz3h zzjcS5he8xO{}YIDY$OwjUj%ISdn%1e9}S_vra;63YATiXl?ZKay>7(MYi2mFUqNn` z@JiUeIX|lm0~Zi-izAWA^u`C^q=T3Qv#|XwJtW50_mMYf_2LMh%h*g%KxE6qwTT6|hqA$Yd^#-X85pW#}-7 z^HG_0-&%L1I2}S_RvgSAzhU+ZL^^*$;xAH`#%)t`EM{PGVihCr6mZ68Ga4o>OGhLk zRx=~2F-ez~?^j!5sT#hp>}vHdcoOuvC|-l)$}k%)2tkkyo=2WoD{|Znq+gQYD0AUH z*HXIqqD^>5QH=RtKiZ)l*4lLgiBlr2TW!9@*V|3skY%`u1} zfkd8BLuAI0Wh%=MGdyJk@*XGPZb_)@|7#qO#$c>eNHBx|{S5yorEnI8WpAOS93n1j z@K<3(Qef(q0blLvB}0q?J!p2QDt5I|3PEtwUx~ zt!KuW6<%zu!g5{Q(<UWIxRYXx&cSoGlGjG@)QUZdL z$#eT&LN|CtAx3)tku^1zaWU@A6IW@2v@n$TDJ6eahFn$3u@UiSu1;$QHyWlNoju{$ zKPMX>MI(Wp?JawrzZ=v=++WRO-bt0gxMtBHnp^1_3>!Lu@p4l@TNBDnLM^+br)8D* z*K_V{djd%ak}~ZlZdXVPYf-Od`a_X+D;i11<3?R%W?eLwWfXo>93ra;{Udl7;!XD4bVbQc z9arGLKw3)5`~fa%Wm5lQG+kfbKM6K!G87_VMiALfG2Yw5<6jyLph%sR2pSI z%SIS(IY}8kS6=9&)(8LuAa5j%2tUUG^aV9Fgk{yWc}L+t@=o<090a3KU?yaSVPbSV zF=^5uI}+Oq@e{!4Jvz!kq&6xnNHr0IVj0FBa7h>Jl}XuML{(Y4Z$6Xg4`WT9lNoj6 zBrR2t^eA&O`FBi&2vcvfF&H!4sy=4L5iVruu9i~j9`4zN>n@v8E4mvc2IgM_Ee`evs7)1KQn5{WFdUX$2IM~ z^C{>nUvgT=32LVTv;{&SH#Aj9g;2IqR&MDm%~XV#*ITqY?{M^gYE=6Rs$8^{nrU=W zCUwQ#2t%xK$O60LR#)XQB2<5LZ3>XY9}zZlodog@P&7xLJ5!qX;oGfGr_0!VvDULJ2NN zLQ^lMhf?AZHCfT#ByBd0yApiXPI3yO@Hn*N3>2Y4{`wuSy`McCn`0QnhFT$ z^-7l#)Ni=tK1Ov}pjwDgzW>6LVH3=XNVsgm77*0KRqZIE8$qf{1 zE=zHUIW$pv%VNVjSWKEPS1@n(XbLyYc^l;K!z$~N(;_ut z%}Zh{unu~^^$4aPv{StiwRL&M^Go)ebsL`M6a%nS%}^4VRT^Tx+H~k^Svty;oM8W= zYyhf!Ockd{Xd>gesZDyY`2;z+F%Gn6xGu|5(*u@)x)BQ|&rZ^iRaG(^C}3=%=qh_7 zeM;@EFi8iC+&D&pf=|XwF$DoHYYKyZzcbjs3|7G-eRZ1CmI2K*eP1*r^GBW4)dEsq zgdw{scwTALjsr)7XKN)!yc~-r|0dUeY;a$~Lur{pm!~+m? zJSZXVGI5Tv`a=iiXcO&}e*?>^<5(6SB~rppYX)3(U<3!74FuEGmR_F`aV7&`tOD;@ zpef;q-cFYfSPMUw4rI08QC8FsS~JEum`MiMs~hY)_C8QtyAWs&%S~w44M*ynCRpdU z%tmTh&qaoGbWY$D6Lf|nY%I3c9aKg0{SA?MY$|6d0WD7?kyr-Km<`!hUs<3R-7{e8 zBW=9K`EZGTw;~9;eilfRX;`U$Gd%5U`U8DIlpDUj;1a2x!eaTaz*$V;6HB%YrC`eC z(QX_sk#YM_-OmLbh4w=?-*e?BJHwr2Tcw@(~Yu>+Wysc_xv7;oIXPAo=* z8#JfGnmbHU@c=mv7%s5u)hvCFrA(=HSp~5~Q$Ox*FdVc|)h@I<I z$_q#F!323Tx989g$vv1P19T~)2 z-#jf+A3^9thG1Reg*oL$RW)52{vg=$)d)qMu>qAZltb9YUvrcV3OHxujW}Hg5=)WH zhz&Bhu@TdgGbqH%l|LYE@e*63WG-E`;Sq%AL~|RO241i+Bp&nNU`V>oOBqYEQ)8t2 z*-t88CV z+f^!61`TlI)Gbw31O^E=bU{q6xGBRjvP7(j4kmqd;Tj5JPXwCvz$QIy5)Anw9e3Jp zNY&s?2)f=IV#!1uyQ4ocH&NyIktzHwgjt^vngdE3}qjcY}N;iK$;68lpa$np< z&t!9hhZux0`BTnjj3`G)b^uWQl?{f8PZ(3ap)`at%@{H~<8({of;>VxpFprPDk_w3 z(HkkLtXy4Ldn=e>_-3?K^KGog@|BbZ%W4Q*1WonNvF! z>=HE~M<2hDBphWWGzAQqta3h+esstmL_swXz8lPO^k$2(V>$)xP;|4A2}9}dxM7m5 z-9}55@d?j07EXq4z!iY34IF2A95hX6H4fURi6xO4CTNaFE?Fy&P)mX1qEANf%tR3a zk!7|u{X@Z2e>UqyscY4t^(rgZK`+8R$1rpe_j0S^+HI2{nO&n@C`97?j6yAb#2!F{LIoy5 zH4g2A-$dHDcOY<;1XJ$koM2esL>bfNY+Jq=d`8O8nPMajSvO37aataQ`%p{%cMlxT zgh@E{&KQG}T3YzRLr4;^(lyyWoKbXTic=RCwmge(qY&NXe@J;^#t+c>-fR3)bQscZ zKnHdaNgGhMyJ!2R&SuKHiUhr@Ru)YWrU(Y~yEbVGm}0T4M`Y~IF&w!}!f?u3b7MGn z{B0lTdlkLkz8Zvi`y^@e&}}vU21xRq-bQ-YEKgOG_e#@)#CMq`;ZCX~Jz}SKX>e6S zjay{rdRI_2zdS$pzGaz)F&l$X+C;b5>JSqY+Bd1O?Q?eZl2dj_hgdY#NjFK;qe;{r zuy=C>eIkcz*j|J|uqIn6jwKW#c`A(>>Nb*n|2cb2eK3-pGAVWsxH&s|G8)OJW=yFb zJyvY$yfjqZJS6-^@;8j!s7FJ_XKIvybZ<^%q5;M@Hc~U|)^sq=TVRgJIXHil_iDZx z*bg&6pgZ0N{YI>AjvLK-fo0KNNi#&}6AJbon_W9KK09Stjuy6YIBm0hY(a`N=wVp} zlQf`6zEeJr0!X40>^nJeb~^bSXJW}DQ6b_4fhK(JfI&E0VlWB6Dr9;6T0Q&^YGTu4 zWMP05mosyPCSo!b9uzZ#ms6=GiWf`m%?w~7o@-wzi!MrNy&c6#oo6my=nlhTFe0EZ z&M$w2AT9<_!Y_h({XDr_2xDcgA1jZNm^>5Zhent9^j>uRYA)MJW*%&xxEdL)`#m>P z)NHb6PfJofOl|$2ohKMZyJN|ibwW6Z%5Rb$ByY$-d?JkaP#qCt4HPXmpn3G92v+ zYY`?$(pJY_U1OGKV{SI5b7-_kk_HQumqJZ1!7f^!tO4HJ=115LBroj!^#)L%{B9*P zVR!!4TRKYnj6KPh!U52-Dl5mEYArO?K`-2nua2PTXdSp)3FQ%ksZBT3@T?D0YC$X?h*F_bwLou&&PpxyGHOWy zRdF~S>@qKn#&S2A>s2xY(Me_>kXK~tlpIbC(rNyLbV-A9ELPVvK5?QzYCBJ|C`01y zIcQ`@(q6+68xW8WBsNI5&0twzA1P~W+gzO7ew{VP;N*xN5yEMqu#%ls7SOB6_ z=siV|4H1FZn;wdQRWDMkFbyZ#u0AE@4sw$0#yXKuZXFl2=OBNXZU~FQ*UTdOq<&TsFkpF(MY8={+Dd@M*K>9agZU zuvX%E=oWrqn-m+y6)i1pQ5n}Qt!tI%;~-`Q3KI{VFIe4@6=CP_b_+Y+*ixxun^&_p z!f%vCH#K4#yKwJ-%skUJd@MQaH(BNS7iKP&mK*Ul&lhpwAqxls?K?Xn&PcwI^k>K& zr)~Zc3QfX@M=26>YydZ8#6cc-uSSSYS`mc5avgxGq&NvbKpaQomvE0JhDU}pnK5(j zI0Jm{SYmR{XLKfOsa#kcrc}hfODKK2oFqofiYR=O5)Wjn^;mkCHye-1a1>XA`9>z5 zJ0WYh-BOu{LnX7|uMGF={TV#A&;)4{ix!?hgD5kvsaCMo>=602DGrDvZ%)H4Uo_eV zgmBSyp+s#n6(#+fKyUtro&>At20h{t*I+QYgJTRt8#jz$uV`g}m+@MP=BH%%da{bglt7!epnS3_gmwr9D0R0M+CWnl_hbSdw7!2v>q%23M4Rf z8FVE{?Lr13Yfyz2OI*gO`WSAfkrJDS30o{F#$JhPzBe+^Ng=Bh!YK?pYX`&pr*EUw zqd9iy18BC%Vrt?^zfuGia3Yq>6dyhU#RoWr^$4wREkJ+jHXw=rvK3Mgc~ac6z8~^fkx-;<8DO|96b$%hMNMeq*d`>N9S@HS#%Rwjvrt%+ zT}cFtUu&KTGAqFk9wC4!)E&L-gJacfIUx!X9U1N7!~p=N&;enm((M83hp- ztq(vnV;mKGmI^&O_%lThn;i0~e<2%1>ndSdIBjqh^KNI`@@T(Wo-Qrm6-O>8Pf{;Y zh%^crvTQPV=?WDb+)N|D1vD0=u~kPhe|0Ty!%9*OYer0U=~T_J7zqOqzgKhLJVHW; zkSeYpG&Pk@);M0eeJ+`xV-9WdWlT%Vk2J5DVn4%nXgu5)m^1~SIZh~zU2)dLId1|# zMChlNIip3 z;cek5P&2c?E^q;o+AF8wa2NJxqjN+A6st^c>S4T08!76F9 zQBj-KAtA(#p#|9yJ|;R28*XyJK2BV7CK{k1A{IhpifyN{yB$%mJ`f}RdQ-G}+$I!C zcq_8y!z-v&*=3crm?sGi8bmpa)j`@P|5Pa+b24+P1{1ONDh(8&xD6|#7Ht|*;}elCa%xzOBr5H{yJ-*qRwKmeF=`E9 z(?2=eL>K2%*D@x5`5-N3ay*0`J7w&6T?|Bp7cIbJ;uB-BOjfNOUUQy{^%8sd6)=s{ zR}i}}FcB~mcW%5IVP7bTuv!`&<856B`9bRu{AvRfNHbs)3K1%hG-z$@KO#lVH5pGE z5S96!PJah4yMnQUmKTS5oE@)*ag;2yw5F@TY@m(-iMk>E!m|Rl&!FDUB>ONn1 z$wQX^kqUsg=uR48RAAOq>t*M{`(eYGHE|BSJ2V3o{3uSM3nJOAU>6^4#3rdT*g4Xn zx<$p)1}W73$Omns%n#dnzfQXPW+0sl)djL2qYA__%qu>dnh|WbU|6PI)x z3mDD;@dDXM30DfV5I08|h&A1Y6IC3dCOaZ86LM3alNmD}OLePc&IT}7^f5DU1#x+* zZwYVL?G>>SbUv8~k#wL4$}m5T{1rJV6IUd+Z&6k*8#cP_1403ucR6pyS^;+`TN@B0 z_evpOlu*j0U_MG18*G}il_C#L6(?$kCq*LA_z!q^<6&&-dp?$O@F(!zjxOpCf?JdW zs70!XLkbyTJvd~2@pYvIN(@mIRa8h6Xm+7)xfP8v&% z^K?B~VI;=Ck2x6o9W>bdfjL+#`((#yzZjK|awK$wML;{G%myuxO$a`z@EPl+%rT{$ zd}Sc^cOaZWZ(Hit{RYWhJSL-z;tfEyrv)auc0%2imm3W8lS;Wa_jVUa)&QT)d{7oj zI~#E)*K+iNhaK&m=?J3~3N-zu3tL1@XDuxoacwML>_$Jas16CE+Xz9}m;t<^atJ5r zIcHaj!fOpk;Ta=1fMu#O;00pHk3CgN40EjFa6tK#mrB5h7GC;YJ31pcd|NQT4;+`= z{z@AlNjmVGQgyyS9ADV1><|x@yb~Af?-T+zU1dTN#>tPH5c&fOAyjolU>`dsQ(IAxrA!e;vY0{|pLP zGZf!q$5%{xt`nWE>pMq}ZD+06Pc&BHx&?>hqAT++Dk;?`9yJF8J1t0pLI_q`CR*h( z-89Bvx?2glDnf4jR6BXO20)IXJ2xQO!g2DFVMj2vni;*v_Bub#Y$l|jk{Ho1eoRIJ z5h#2#VNm>=99|jEY%&$?g%Zbq<5*SJ=UV3O%5ve594Dqh;$W+%|a2cWv>$RS?z63Sosi_ zrZg_@5wvxRb^-}gl+ElZ^m=Gag)7Wow#1BW&P8}j%4on>mOaluuY)D|9 zgDe;Om~v->U5+|uEC?{Fk?1$?NTzHD{k0QC@um~PcTSs9!tusP1vS0$r>#Yy(xxgbhtj8}Qr><|*>^CFO z&0{wnb6XV{ayxP6Z`U;I33)xH!Z;r(@qBTQJv;|YZ`3%tgT+8&XOkGvt0g2k3=lCB zp#v=*hqre&sT^$pXIf#qvZY0Su_1LAy@DiUqt|U`t5Qqv-%oW-9k6mAf3s%3yK@2> zLER4*?BF%cKR6$DnXGK^EMHIa?0q9yyv-v}uE-#kEV*uK6cs8sd_YG(D3MXbSk_WD z5l0#Zq@p^$e9}&97H(WcY#a}{ozMu8wOh~R_SmA$hsljG`wy|bV?l=hjt^2S5#W$Hs>-Wk}?i=Po*C>xR+0T(okgQ zR3>)mMcEVCv%@pP-V`@{ZZ=n3@5U4vWHv#&|9e6Zm(>%LJq;5mAxn2v0>A)-)qDxa zmf>c=fV?t2Iqf(*aQ+yEFR>I~MkOr6&PpCSbZ{5|$Db%an;=Apa0ydkCecmh3K|dO znP(4reeE-|hjAs2XOlso6;5us5OHCL+Sgfd+SwebyBaBQaw%`@_oNqY35I74+Al-Dzg0~pc*z_oFyAUBf?z9m2`a3K?Wpr=kcDGwqyc%579wUV{Z>NX^F|4h zwpkE{Z%!Bs)^9Rt{Iz98 zUs5`_$m12tj2c0(3Mw|K%jHlClTSHd?ch)mzydE99K=y<{gOZ=PTpxDWalCMU&?9W zIT!)qi!W7m_aIEvKX_0w+#U-}grf~@ILkPeDoANjb9h%OHArG$3%y+|b`KeTLQP`D z>z@)f38M%f>{?@^Ixs-a5$|pWf4&UeDgbuZnf!BI!ZAXI+6h3&SS>`anoMSeIffX_ z@d#Y~Clg@j?O9Zw+N(>w2Cx}s8^@cd-WX1IlW3CC- z;UNS^g^Vo|<*yjA0atL5JhgVRKj15~mP;$&M9g7V;B`8xNpLtA#o!rOaQ!ogZt_qN z^_q4BB9L$Xv3@?q=O;hQwkb)%4QWyXLosJ0uXT$r9KT(UM&uRCUOY^7M!Pi!pZGC3EizR{xgcj4KrPoJc{hKDc62L-@grq!XREk8&&SN49 zoK~QVC z73^kFG}upeo$_s;PtytoO?_0-SqL4M|5H1ZRLeT%C5CUF^b-)xc_slxLN<0ZDPJ;& zLQz6Xy9Pv)_6-Sc9C`uT{}m;&IZy+pg#!?*)Us%;MO1DbSZO%E}2>D zQjSQ0f1C~hKjv>nY^!gqrqE~WP0%dc!(A>ikcI_mi8BxFSWa!w)$&AGawBg8R*n`@ ztuHAI3=M0G+Wr)hL6jAHZU`_aM|^Txq*-G(PpEYzt%4*E$cGg!l_wy%EBs*Moc2q| zDS2;xC}T!>EW{mU&EyW{HsfQ{N3J@kY2y@Xu+tV+d<-FqX6HtmKwWR}C<|<{8s;w* zDkV!;F>M_&l8YSC!&(IT=htewb=O2L@7W0<9%(vLxISBL<}M17)B9&8;YSk{#T^B9 zliD!{u98Qkp9?l`nD0o`+PX=FPb4uClc8}dy<#)|;CLS{lw%xa=nHHN_J%EU5Mu(! zv_4@ho#8Wt40Jh7RdgC>ZTV-gbe~_i{TCrO3ScMDK%Q_eCoI)FYfT}(5Zc_yv zGebAK59UXP#Gh=*Z-h8MUQ%oV0$NklI5{MnfYDA{E|MQdcf}u;Wtnq#1E*i7@m)o$ zh~HJFOS*Pa@w8UK?TaI3l^P{)mR=f7ob*x1F(NPK7&mtwUe!^QAW3qJ$t>7tf zea92|kZ)WuSDHiNl`(dAMVBkTg9cW;HVas*X~I7$-~v^7s_17|y&xs(te{(kfm9Hl zG`bseRjn6dT(x$c08vTw2(A|Z4LEdrf8PdO%EB;q+%pS8kRvOfcF<);9qAr-m@ON5 zzRDf~+bLv_Ql?*($t+$(E0sVmbOj#}x4lgYONU*44^?6bV{<5$@0SF4)?zsKHz@&Y zm$e$&`XL%bIfNC;PWd~dU+p&ja%^kuA#yj2Gzb9R6-I0gtJeVuF*6B6k6w0DChDjpIlltOU_&}ydiDP zzH~%BYC$`1J%%Vy*4{CBdKf5Vg~dx|Y5!|)G%af{LQ@O(Kl)FI>F-OCofT`|O&CN2 zAUG_aL%wqAlKd~Ldeb~d&-V*wf9hj%;~!ax!0HlypapeNZ+q^AY2fb9Lu;VCvBV#O1=m2drWw%O!V!cYS z-ezq;bA%qTWT;h@OV~t^=RY|(bCeM(UA_gR`lJmeaY`{OIKns&SvecHWNk}AxaQ?akwFDaPS4AW~O2;=m}z#wBj~@QlK?~_i;=$)vhnZM&EU9`-4LP zPi+3d87(#6tvEyz&L53sIFAf_*NIU|y7WNc!g;7~QBhdlc14}Owkhx@z zsX`KkRJ>}63x7sk?KBhi!u=Z)*#&G+?cYuxvfpJON=69&K}SgO%r8|%wdQi4<+ML2 zZgOa^oe)qPpPuumdi%=L0b=nODH)0OfhfIU^N?+GE5yR&!RKz3ad71@$?!Ar~y`H%nf&HfR|te z8uB9{xTh%;>Kh`rOP@O0KCV}DR)0JPLo;GS>EH|M!BlfI+1wQ|T>wt5mPT9? zG8IXaikCfOJ-S&_2FqS#_t$4k%w=mFjypK$yl`vQo2vlYiabb%*RBuu6LxX~BK!r9 zNRt4Mn{`4?KA;U)u3BUT9K1-oqXbWGY-a=Wzn6BC!Y@LlFmP-+Q79W~MA%549&cIL zDp4!6PheaFoGlEyrFL}`Oki)c{AFyebPfi!uTpVKuo(m;;G#3F0z)&$i>4(DrLaZ% zIkG|12+2x#hmbvm2P{=&7y4Mmdi_Q6vIiH%QR{2J?(r3347dh3i$rpt5g`aeW2{ob z4<9P|`qW`{R$Ws>YL7VM<;p0)PLmr?rK$>FTGTD!f$u>8n^Ibkbw3iFr>jVJr7BUq z7*I1H39=q}V(fJXzAz9b&g&#TMI~c0C22;VH^Fvhed$#W>W&mC!lYe~loCE(*xLht zt=%i6v=&q{lf+OEi2ZhG^?Dij{&8==We{&usAx`6Mg#%6Lh~Da^*mcM>6=+7bEO$K zZmMVIiG)F5G@CV9;Sv~{FAiSZ+uLc)Hz+ebqoN1gR$nCEbvXnso7*&_ zUpGbfSUDGJN|`Q5{MJO2)@>VyiGLqZ`pYa6PbEe7pQ%V3CCojG?{*DDZ)qG!DMn>y zC44r{KYm`b77;)ryvkntVkB#F2Y4-KgE?R(&tM*UE_MRdhTQ<9c*7VLy}xeW3`bN2 zz4${8O+fKovuFOKb94#~dZ%|JGCyNqD7e;TcABb%No%kfO=D!%KV~Pn$uMrUZzJL?j zJ$Eh^M^b7%m-h_S+SeQI=MMW~45 z>h&Rpx(6oD8#oY33r#a)G(J-OHo|o}p{`V}!Tc@S`R51w)89ROSzR^5g$E3MnPe&Y zU#utURQpNh#i>ce$4OK*4uN8)M~!6Vwo5dLG`ej18c82G+3IPK?{iv3({%txzmXZ{ z9X4Ho$y#&atu87~bcZHMPgP~iprAT46H#mljWjH8KnOy>^vorE?Y~{rf#4|4Ig}o& zA|Q1UdZH^fXAv-LQ^p{v%yB8!c)Cuz`Da(#hq75x_o*6mPoP#f{j?^=wDk-nGXO&= z`HWp%Eo)je%PTQ_^|v!(_8T7*a)tqllk#7gJ=0B(Yrj1%ZWUlC>SuOQ^#dU! zdU7ZweyBUKo?cLlYf3#?L$f$Hl$sIj4wPmR=A90}yS_2e53eF7at8;`wH88c+5=Ka z7vgURE599*9WFqIvFJ>%cikXU9E3Xac`iPYD*^;2XsH{c%q&x=TCEMc0^1oUS{gjIZ~`srArM5$Xoxq*4!kM22x2y= z><(jKOEU`!@P!)lBJ@%tIh1q9eUoEIY@-tMyFns2E_h!nNPH}M=8YiW zGp7#3MSMQDAlP9^uZVNU?_dY1pV688Mt0fXR&}0WZ`Y3ZG zReV5F1MM~fO(8n86#FKtW~Q2RFrysQb_`RG1ZmC_0jLp*C` zLj6Z&7!W&WI}0f`lgK$#Vb~KP{$2%)pV&ha!WdcYX{s;p6uv~KVPY2*+lMpqED9>Z z7#b1Q5Ljxu@%BtFckA-pF{rN~|7MMcS znf?RGM2aix( zAW?SysMBGEh7%2{s|jX>Mj}HhTk|^3+N0La|2XKUvnn^(|A!y=c!^;)fhp(W+g^gnr=+u`Qa8O91UcC z1%q9TfmAHoGy4{)qrCg&}6$QLrBc&s;+OC_r_DwBu({ zq>mDQw-P^uY3l)<-?)9!EZ8Wc<#b2Kv#W7}E>qf{HcF!vNOOg=Kc${kdEIvFD8 z1_cF)@!CcY&CL#~bleR{=cgAHAleoZ_9IvHPTnT>_JwdNyV5nmtI{R_QF&A8d5?5G zuMY#-RU8v|5h4mK@0m73>~9ssVTMjugnUB#_=-<2Ty9Pl&M*$j`(J0A=cP!J=&40p z;o%a0oM{f+@qjZ}&-^F8b7vzL1JPZyIs;UYHMVC0+gBlyfzeRb#M=w9aoa6+FQ-w2 zY_SwVCh{(&ufjs_363XKby95zd>m)TG5=$ScE(e0k&HNZP|*?NuS*bx$7%%3jQR)$ zi0)bM^?4S6K;d6h&@%^R&dYFz6nS0zouf;PbeAUaU?UQ#N=Zi-gn$~hggPDyqX=kz z-#sSE^|5H}dtx9gJds6k2BcvznFu4oQ-o{w4#jH?3I=HGrwUy=Cwv0aj-_35)HG%g z4s;&+4bXL8@q8CyGi4Trbfg)kP@xk;*X24xwYD*dWvo(VGP2PadVkWW+mTGBg? zqJ|Lhui+rqcD81TXJ9{_r6@dYgX>hTVxuaL8WI`aVg~}_4NMi4`HoU2n+YvHw4)kJ zQk@1c?o?=K2$d7*t(r)^k6slXY+pMrI-p5Fh>!}yOeJ$Q^A%-Y#+@~}%o+k|cHCSL zOq^nbH9iYN&?RtjOnC^T6nj$WC_Jx!5HIz9>$X_Dw_h$q_Rp+f`D&V9RQ( z@klyN`wv@tFdrZvdAcjW-Hy+Ic5Po_od?T0$1^TG&kd`ESA*r^nc$qqTs zNQo8)LCGW?NGMV%WhWHnRw_zK_BAenL0@JB58gp3`c?t@-2^Kt=Fm)1>P-RS7<);M zZ_gJ|a2Z8Z8NhLrimp&^&(aQObuJYE9K0;Y&fz}!X8vDG&_oEEu0I|4iOn0f=~Q0a zlc6ECttln_J+@nTFDy5&7=#w;v*~C!9$P$QPO3q=!@^?@2doZvB}5hbu3sx&4g?cD z6~=L7Th%`%Gv`uMd2wP$=ukTP&uj{nwP8|&CSO(e3z<0Iq6HL5%DHCndHr2P`0_nH zpi?OCHfmj9)Nw<|QLJWWL+v%3i?MX>(Elk;{*_Waxs4odtJYxOM4Srx77_QFO5aIGq@DLfk|4?UhoHCY7TP&nx)R$O*2pz>B%T9O#@GXyUqU8wQWz^2*C7mOx@ZpIUc@bEViHLg=(ifeF>3+*ao1kk zW91`3c&r9-H^U!e!G;e7{FNsAxztuIo7n=EkaKstWunTCBsy;hG+L2v6r~E=@X((z_VKWpY_!kJQ z2To?;R)1Kdl&WeZ0(xwCJ8TB)n;#oe<3A%JHGCJ(5?CB=Rw-u)vO#R801pM5)zc)g z_WUnegCSH-8x$f;ogzmZcD*+RH(zSy|I{e}!M!Y4DS|F7T1*}(JTU^+U2a#+cSr{; zhSh1lDt>XaU3o)c*%MTFq0&Uvn*Dbw*su-UrRQ_U)Xz;X)*^G03Nv3JKtEq&@pEym z^*1{8DIZA7*hg>EoHcMwy2UG+gPt~=)ZTdd=@83$f`;lS8 zPK{a09Hku|2wDq={U#K)>uiQx)yHjJm zaPK|3Ir|c|vh;U^J)U%sUAqM*wsLKrII(heAZR9v;l5Yvx`0udtxy8EG_On3R+u8_s=r$XqYyLtCuT2| z){Q-S9We~Tx{o==sef(L-*HQ42_^`gH1>9@!A~ZO-j8RopwBX6)Vd<6ndKG~t2t7T zh4>==mZUPxkzhdqXF*=Us&5g3^wt#E#o|mfaIbOxR~a##SiEs^@WBe$>?SF4d;1x= z?HfF9vFLQf6Ez-~PD2x&_#!8m3(+so1%^C=$sI9HF6<2Br8*C=p#wXg*=8yji^X@# z%1aiToXG@`kt`np{!dY)Oma~Bu_8n){--e3F?LeUi5WEsg}?xc+j0n1(aJH6B6c~I zgnTy~Is`XScQp^Uz5)gckC+qbXsRiiv3A-*nHDmVk51sWIEBLV~@W?>|yB#3Ujgp~p9h$~ICI0a9Y zfXgU}k;PL42-!y*K^ zOw>40H>eG7fNuk_YQl30MwvA_`6N@*f6N-_C3gtd*)TzJQ<^5q_Eba+a+@HH7u+*y zq>@gh$@~YYK%N`cxd$R*ZTCDEgTE|CS+aD&4f$*d7D+(3H#0HSP+vZRZL>zOulYAs z;*AIFEYDj_db%gp!DK4A?{ETQ0@*;>n_^+>76U1J6%tF zTlfS{&uvFZiP1U4?VeO%;(G;v&Bhi1?HNe;cRy&ySt>qqz2+N+`hp7(i4OzMvI{al z6i^gI7PW7x9MBXlwdMsPYe{FpGht&qpN%9u$TV04%Q#!VUEy|hm#G_(9~NpEI#UMF zuvJv9FX1Ktn=?p;fxSfIZUb1>vE_Azr@JSh$)7fyC;fYAQUDZ2JaXo z(n&Rfk{cP!tlw57=C1_9E?flPfPeuenm_@b1&!0Rd`bPTXBlYFY={;^x&$jW zv)L^-onQk2N9|}})7NtWgW^Qs=wmcqd(v~0q@H7HxJo&NF_>67fY3M-IRZ+G;>Q_o zIS><19kUJJ|J`%4ZG>=l-8xgM6%qY1~#^M1v7GE3kw}>hVbGRP1n-&u?>!Un&Ic+x^ z)AVbILnv!UJoH3DjY3sg?vO+m;9CVrQW^k=N;VsI|L7#(`IH z6@yZPI=?q#*%}e7fdvt`OKnJ2?=}IE1y(M(qEAvYeswGXxk5*<+gK$6ti&aJgE~$I zmwIdqVLo@`B^4HP-9c#`V`pUomE3H>gzpj(69*%f{4!HrwTL|Wwq_B?jyEw}6$uHH z!UqXYh@CpOCRY)(cq(XKdP)N-=r1l#tdOFCAnlyzLN)pcWDy1_553jj(h3EWZcqBx6J-c7O*x zNPU!@>`b;Y$f>Nghhtm;yHBVm}q- z-}?>9M&KS_>w76t4k`vd{yH3C-Fhdgg>oVFg1%p4eq9;UnwT)UX6L?+iKjK_1&thp&QFso`h|vR*0YV%> z7TkX30~mj`JNpJgDaXo?SCikNk`^HV$(8>0!?;wf86pN~q6CMO2~wOu+uTACvO zs;C)UHAi(_&2MV4UIuB3Hr)Vw%-3BhMTt3x7$`R8OmlK`Y6lH~#Y$|I13`9Bx_V5V zYSR(D$U!&^xo}ell6@8X)u3X@(W)TZ8n9JMa|v$>z4j6y3Kd>3m9r-liFHb(&mRq1 zO#T(&*ir*rL5Xlb+Ex&~#JpMJaPb{;M>8}au@EYa_p4#j@-1s)?!{<4AiheETSrKd zvL|vRXzm3kX;?Nz0;EAObaQtfujd1|d53F4cpq8D@_cW3pj_5b!gnUZ`E617!ncut;lit>!Ax z8Y?G~@B{z@mycT(F~nhI{1q)DdfhqtHqJqp0BkxDii1o{B1~VuH)?B+E#nzh+8}BM z0XJ(Q_`YHdqwgt<_H8j-@i9oEK3Fo3$Y3DE_?upu7EN=wi=B75|NS++eLW4dX!b}k z$$ThUD?S1kV}=dtI09+|>##KztK0)G)>B_(aoQgD`rAH;3Oq=`@W}x<5IsM}(#$_y zo&sXs!y5ohrpPcBd-^Vik1_U&Y4`qpA^~@y0KO@BtON#d zt1$&f%>_$|B7+FA(9IPMBPmG)>ew81om4KbQphy_Y=kw_`+{=y zo(>dKRHk=BVM!g}30qHXQDJJ6Xxk6Cy|_6?ri+psoj!O~5pLKJPYK{INh)K;i?&HgO7P0&XKof8-it z+s!+V-Ss~Fjgn1{>u*7biyKNKR!1a9WQYT^J7;K0^=LSMDak?|?>Am+mgGk8%nEla zDT5?az!!H;W#ttrIN}R+x%O13W}0sYfv!xj8GCMDE0SJ7+`&XN?%iG2QXN-}syIa3 znf5T!2FG!YuIF<>=OhSb!dyXh=_ft_ItwUfjPgZVaM}WX-ri!$04XL7iFO3Iy2D&v zu~H+^!COA4QA%JZSi5vz6v20Uf*!c(pV|QtxFkJlA}iM zK8_>JxKuMr??q%+kRAnzj;M5oq$Wn+UJD#jtdLh{u5DG_8(DByltCPgRpx7v@75*O zsRvpM_a-8{0{323AZs{qWFjSaMPDe!?v57~^Ufl(n|yR?{{3%=lp;MIqi_0R<=h9)jnsOy-(s59RILu*n0nJEr+edNe z*FPrl5;JN{27m?nrbBQYnJp@6Nd+L_dYHrSNR2 zO|chvR((jJG#663Kv!RNkdqcDD1>y^ONS_xy%TPjjQUrR z{uDrfU*Zq~RF^!t$zfJ{gP|%T+59c&lRP;(N-#6mOl3NqGl&*6l1>{1*l2Kp8O9|Y zgjsP{PFYPbJ+vV{x%oA3gQ^>(F^X$70B|_#NGDw>S+8c44jztmJa>XkL*hm&=h~sW{ zcB?@StDzWoRJiZgfaZIpNL1yd*_XJ$^go?;mAzF^_ivUTQ$L311qDmU%@`hBqRN zP%lwQG{b9sm-$)kUcV67p5;J5D@P6MHby}UYkD>@JIO#K#U42M6AT0UBm7#=+5&QW z3pPt8y}()&31B?dOsFWOTWuf4O28WD@$XOzCUZ@!(V(;} z{Lec;@*ZUt)F4u;Dd|*+6`Wnr^oUrrowY)6ITAyGQ=mH;AEr%I6Amx%x}#5(P_QA+ z{OC|7C!9v$`pXYA1t@Ga!3=R6(9vrxymeDo!*@vtfeSYJ6US_h7i9r8QqcmMGu}ih zUXv*Wh)i(4uuDxM^+_Zl4eu~v-ilxD*+?CDt{oTF`rBg@$s21iUsgZ-g%CrwlV1#M znD9}qYf=(aWJg3K64`2`bL(Xtp35%yj^$2)I@)3h7ep`Mr?4zYg5_8YgcvnwXJ})z z>pyI*Og9-0oKr`y{EG>`xnD2oD=#U>q6G+LYcEY(0?$MF7CR}N(0w5cGoCkhKco=6D$Lvbie}5lz_|8G@>1kNVN5o|)t>YEn z+EGJIN82m1e|ty6K;#n^9ycG~>pfQp1%E_P0&Y)hCd5>r3w=BpMh^?0>>U;0SJekz zA;3PRX=hxEO7tMg>=z>ETn=ZUB^eJNPWchh;hzX|WKlKHh^HS-B6v_+%*i_gqP|)k zo_1*8; zp)ww?9E>P}wUttWZ39HCg{B`$&EHtW3y%fuX45H^S*0=#5p_sS0J<*rVR=QV9ClO! zAu0~@@RM(S&CM0nBJ~+~`I0#08eU39$_ioY<=7UllIRVP`R!`9$@dK=fzep*#+4r} zSMy%4=x#mpi!^DiLe?#nAbS`W;CCym%aRM%!|)9qVwxpEnc_VY8iNl$@bL}9Fh3UU zhU*=`q}DflGhhMDIII^ExiSg!$(U~YU$b+WoA3dZdI?8*_D)6pZe=j7TXs1cV z;j47tmqt=S4zY4yHAfnz;+u84H)$adE@CGvY}W;V{yGWQsa0r;#PJ{*bGbIGP~JXD zjAAz}7Cv*>g6$XsN*fX$`7azCKY$n^95rC)eeZA_QHv*`<1qs(6t*7CZM8g>Gj*M7(D_ax!i+>M?+;ZljdTBgBna%tb=teDzE|in4A)5 ze=uq-K@CxgW9>(+8muX)C50di%Owl7-c4u!MmlEE@@zhBNY`!t)?yd+cfAPXwxAy$ zHhMDB>>ygiN*^=yo8W5u=vtGTiorQ}`3`E8V|z{8rYkMA;BZ7rm&OQ6aG)Py3{dh#I z1a=d?l+Oc=(QYO%oXi*ND56ak5M^?qkIHrPz-B^ZNU$%Z#VHwP=b!_C@v0wm-rZWS zBq|*$NgASoSLe6@qoi*xD!Q7|UTRkM{)u)J!?)x)>uF9S3Uu255H6ipm4U z7;z|-e8Mf1nkYDyUa%BDv2$mwP!usmDs>ich5}URE>&@@wJl_GPfJ||pXE$xkZ(Aa z6QfL}WoR8nIk`1;yiHf$AdxsvLUk4LnwbFB?6pnJO?o{HRd_TzM|T8jOl2NItx-u` z5G7Ffey4CgTsUHvgS!*@9#=KxgAqR_5r=Twu%9(Fr_H1y?b{!lP^F?9;t+J9T;VhB^;eUNfYNRDvh?Drip%5EflSE2%0NC5>sG#xIm_KOR$ zwoY>7=c_Xi7j6f;%z{(GxI;?l%_&Nx4CGO8{=_^7$xkUJ1Y;y&5rrFJn$$My1??m? zYwic*bInqAM_p9qM;dI*Fi0`(6nZ%mFR)cooVpu{%f1UFdk_Rp10qMpu*hdMw6ry~ zKh11E(_v#3wx|grC>=-}l9~{E@){#Idz&tsW_}1&e~=Q8!J#Gk+^-Wpuv-a$O%FA; zE2ngnu>)!3o`z5mM9MAm9Y0Ns51=vZ=o3Vzx@9gjtxF4smD?+QV4M&1+$~<&8V>@% zT8aS|A_HevV~sHo3ngK*7AnGRPrpgX=5V1XcCf;tk5BCOl8e9pbSeaxvtZP?Dz9$#$2i_QzMN~>Q zmiI_t(KRwaEpBfwszt zT!9NU+dvfvR3s9Hx}zMfZNERv!}3M4=B^Vz8jMiJ8>dZC!b4t00!LsaVOb3`!xlk9a0o5hJ|jUCo(;qMMf&dz-J&4`>R8S z1ZzVkZhQoC7)L$2Hd0RA0=OCid8Q@Kb?G!WsfjokvXhTFXKJ!$flPO^hM%lEN=_ z3Powrqh1wY|E5Ba= z`0D~g>y{8jU94147)DX0Y*Y#;EzbsBgRD1V`yEs-&Q@BOzxgN<%Mexg342|LPp50$ z?|^BzN(f?~zq6drv`JU1kIjjzkWsLh%GQDE2U+ zeSSaSE50>)j>KL#<+MU~=cEDxE(&G*I};DywDAGC9ZO+~?^F(Q`7ul*eaaUgX|_wA zZ)P+Ol7Kf|6+U4c0@iPWD5zmC{rX>;A75-KFMeQke<}e4i6mt~P^w4olsXXwVnSOS zl}K$@eHH>b$@?=;4jE}N>q!lUdguv{W@IGCesK*oi!lS-J5U$lG{`Uv>$xUVXU1Ww zGB-kdlS*SfP9{GZ%bg2%l9vr%v|ne{&DlBERpoZn*iRktFeDsH8&nku#sMBfrdoBT zY~W-Z!h2CBWCj7$&nF)<^XCJ~j1gazNv%$P$rLE+XDL3iYSve`1~_4_J`G|ZA2&Lb zTOv!tj6FE@V(v3`-*9WXV{IDXwz5Agz-dk*1@dTw^YLAq%&c~+P{>j|ezp|X%rgug z55RN?+FBPsDlH1{!DMqgBPv|1r+Y#)NVakXb*Km!GhR3-lb<(xj5=r1{7(+-YvU$l ze|bMjvs(lVmlg~3jJ7wkI2c`J1&V>>qV0ONKYLmNyYgbxd3?P+z} ziXbhC3}gn2q&y@o+EqRhGF(4iZqPoH|7aNTQ;M2SqAO2v=iAf-uY|t38$WRWHBnLRwDzP!Z zp&n`wB)CaMv$j_Sy<0N+e|-tHEL=%QR|B8*27105fD0wq@=X%}oKRA61bkM3awESKT}pv)N;U`Au(8b~h&%97io#3TFX5yQ+6@`(+cb)l33Au>T5SUUf=i z?I{9PIR`jbLRDErZ&PAQ8jv2n`}IkrT`3Z-k!lz{WyowlCLnYp9&kJVD0VOr{^Dc- zCW&tcT_8r05q3|zUYQTWG*3sl$6-kr(wtkd^gIM6+5aXmDlc%B6OLZz$lyCFA z>cR-aA0|_u$VNae^=VzrG!sq|vIY}u6(TZ%0+SXSjyV^7e9cELVlD1eB?F2asC7D+D_h1y)dTCzQ zb)lL;W6>DonFq~NGUMeu#rh6LWp|Nhf zz%dh6RjOsKD>f9{DsCmIg2;Ax6B0T6Dnm)&@MlbV|Bo^yl3*yv@JBEB!Y2|n0SPN4 zu6PT$)LTMepweoGJt7(D*FS-MmuD7Hfk_kKH36R$2dPDcu}UpQ^?my{KTiLqPzDdAWhx#lyTgiSUWoOd3| zbp#Voq$NFv-8CrUKyO&-3-M;eZn9gHz11Ki);U@pZcr;Firj0N>=aet&zo~mL#hF> z3^-i~XCY#;z+Bsf8;b=BGZ+R(u?~*)A~5mV-ek#H$u|`y^tFVAVk_+`e%E z?ZaV^!0ICr00B<)p&SGZ_jf>i^G0&3>?esDVhI(<$bs9XlZvP}zR9;TosxdugfI&_Q|A#w5ru#jS zyhtzH7w}x{v`iaombhg$HAPuZsHSVRy4g;#g(6HTWvd0!uZSpAg(`I>JA()kVvk}f zKldZ?*isZ-du#>P$q+uIo%bUZ{`beZ#J_lNI4@j9<_&htDTiI+g19r8eTtoJ9nFI!QpPufuGJBBTI;N}&uXDULY6 zk^dM0BIfLOjkO#U8;kk#8Me`&xjK61^YjRIB)R)qoh6x+4uIlbkGw}y(j^P|4N}AM zBoL#KR4+oor)(S6+#$;lR_1>$S>wccY9DCm@t?GU-Ii>@mpdAQGCx#iT9OU+Lm*b1 z4EpZz{IXi%ccnxppQPA8Wj1IN{4zK$xtwi&arpCvkK06KsXb7=V{Cxrt*wThML$;r z_|}*xJ=mhLW1ttjKMGUNO)a>FTU6BwEf|9@VAFdgkj4q=a>b? zIW!9w$irF|===)6KGtX222ltRaw}iv;u3pf-*4EVcWdD&?ES}u# zdiNE*#lVF`$;GPrZL5y_Lku+ns9C1pK5%TJGkwZw{!R{iO?}50^!u08`&ZjKoNy)Q z#-nYvO_v+kk7`Z-chP^st1k=O+&kS2lziUt=W)vD`C6uE&kL;vWQGRnc(d}*tG?5t zPe~!;*bln`{8{0$cSWXht-K4>D&=}&`j&H^HXuk*!OyMGk`7zzv>7bmJ?g9tbA6y| z_oY{qY7=EGdZz6XxIw7l%IMQ0^4a2%H4rcWzHkc+cvDFpObju!jH#fK(U-U+xOTUY ze+HGp=;6!6MU7cJ#zQW=UVAbkN~~|~vtN|~zXit9X=&wJ3`CyTaV4y~{f_K$Z6*Ik zzL~TDI*oWnwo0ESc|((h<(lOsH@kn$B{gGDKbzSXcS(p z>i>t4mC{wm1Y7=xGGhN)ifdD!pJ%u-7(KP9Zu#SG;5s6Rd0(5}%!JGbHLsO|$%>i? z+*8K*XZhCY2RVdA{1r%qAjzcJ2**{d^+PT!HL=Wyo%~8VFFA-7X%rX-( z%6cPr?>mP#VHl?J>thzFTrtvS1Z_<;DpP{l+_oY4{X2*&Lb#Ym|Fpry*GfjQ0rVet z)NUruXPK7k*1t&raa9#+N`5W&>`a(f;#>iGa|({Y@nJ;dv0KzLz+R!j1aU315h&SK ze~yQp^|8D!tWtJ;#oPvB|IOz7aTDueorulK>OnB)XM%DJz@I6E@tSjzwwuaDbwnni zKM<-}G7z%&0}d{j|MxC0m2kLR*7>h|_EoHZS_``DJ(3vgk0QjY)Z6U3Omb9m?-K*X zrJ>&2K|I8KZo;Njmnc1-&(!h%xOFZ?d-{!2e0HBhJm?3A9(&&>-8b(&tnqlF>Zf;u zk|8C)8^Sh*-OQR3{4k;0l0NL;#3LqOn~@ofTAMPy5=W6CxUdv?p1dcZ3h(SkOO(tG zDfZJA*_vt{kFga@7@@*RFgLOM8TEDbB}h9xj_129gY#|iy0g`M58;1L5O**g;!i6b=#lyYDgX7YhGV8M&ixgrzB zgqey0H>q>VuKH&xvVZax6k%mD^<@sVWS!8G5i5-4;veG;$f8tb2)W)Ro_c?dIO84E zlI@n}JaeTFfBDna=&_#~D~+YOfR&6JIx{*@$Un|Q>wb9(N#WHo+NauC>mTwoXhry~ zLmB;%{dtsSgr_gRdf9+G{c|ZbFRPiathUYky07HIT%td>iY4lf3G-C7Myw7;0gUMJ zoJE9LXzcG;ym18*{(R)S?l(MEkeK|)v;koz1{vZ9PuhpDoaHv^qC8ZnvcJ#C`MrbE zTY~Q^*Ne+|E?ZbyiX;fzbiPRUE)^<3OFbYK6{%O0dCKf7LDNVPlK-BKQlv!};O=ps z{7Q(!?6BYw%VlZ3^^STDO$#IigI)ZeIQh1(1P{ToIF4K2_(J99wZ5`wM)Y!M`;|D-TURH5@C=*%V%-TV;fZz= z9ND@h(7-HP($>-+koRb7iy-+JNQLJd#!rXBv@kly+Us$>ZK;fvYwiZXsTx@>4X$Ow1ovaZmA(lG}lS?8t>}aBye)S z7@y|Y;TA;e74(a(6by%W;KWa=yyNP*@ud3`eif&zUZTIy=)SfbtwMk!cXh{<0$yz} zD7Cr;(=g!!^Tnpo!uqPwicjf)M7f)Ak1#9in6hQ013e30DvSZ<*Y^qklKii29Gjfi z@lpe~>#I%WF@9O2E`vDsH6jG-Hf0nWkHbA@rgt-L^+6jj*g~X*Sj(ZpTbgv#uaoy) z8v)gfE>jb>Q1?v(PDe_c-rxP0u^@A*!60!*h3pqFqZmW7fbMDKs=;MkOr8tpt*)Vf zkL{`uq;Wu|-fR;NtgrE1UEFjV7yYB&9D?&zUsgc9I64hy@90#f`lSjvrpQ%0^`io4 zVb4)g$YOEZv|6kIZI)g)y$})qQUVNL(+)}9Jy1VI&`Y4bTT;7SgBluT3-AKCpFb^>Ddw?(*pE98iBhKw8$i-6!K*4-?m9 zrnGu6Ag3iArL2u}4fW_Oyb02brM8l2<8cm!gRz381_9Oo#p5?`s*Db=o{J>cNog4b z-_qm=>8OAjbCpXnpNLPZ+xrfGI~9A`Yz=f3dMvo&6yjx1 z>93gl{h1d_F){I*xA&1}^xQ&?(JGd&AZF;@_*gX?k_G9{7Cwv-q29sgPL86CAB>5* zDmU~${qbg8e#Xg9RJyJP2?+pw-S|yn9;Jx4D}M)0-5d!Zx?NL}v5cTJ0uD+?QPJUd z$2e8z6w$=x>h|u;@4M~iQo>w)`CkOSUi;0uwe*Nr$Z3b!YB`Yn>FafW6?-qrMp0E_0_C=~>)cDp2K<=F zEc7Aa*KoFOW2Q!kj>sE;f3l8rsQ;?iz<>Wa+z`g8!`2&x3ntL&bGU~vG$=P zFJ?3JB6aKN8vnUc#Ec*DdvKN$*Ij4(1H@rz_!o7gM#aWRLV3!ta^%lPblba&hP@_9#Hb5>nu6|oK3+@0 zh{r*H5W5fk{ofr~%P{*;(J0(dVg#=BIQK?J1$O;&%o0+cTiCoDH7>aTlZYhBa7wu! zDRCRP`Ek3Gn$~*n^G=d)`ZEwQc$qRi3hqKX6X;X98Sj_2k?)t$xHmC$v45HRC=u9T zK<_;L+M&Zq)@Ft{g7G()%i1?np1#Kz9oCUmEXy*o5SDTI(DQ=Si6VIq&E30D#h_Xs zR|Gj zO$*_#H0IKIw)zdQXQtB&|0*nC0_>Jmq0#`NSC=SyC2{ha0vtN#%2l56E37>GBe=id zKVeCEW-rNu&l(E|HfPN)TySt~DOCmjz^Mip8T2|UR`WkmI+<{FXMWssdy?^yFLby& zZY+CG^GFt(#|=I~(3_4(FH zm*J3IqyzD7wbIGhPbTa4nPjQ=*A0{j$#U=44J5)Fo}=H9OSsL|c@zD)r3u}*IkCQ~ zLO2e*fm0)P&!yp3BF;~8!gVV{0&tclDG<-$hxX{|RaWHBNEqo+mU;x91mgQ-0UUmu zOlFd8=PO+qsgK<|rNZf@cqecMg`Q-LnOYy1+0`6&3CF$jbeA$uQNet?48Lsc;j&}? zLtSO2Y}sF(r+9ZVKSaPQN?PF$7J}4ibb2KCS?_GoU!!H3%K`bZl^|yIK~E05EKhkG zONR@sBkmq_Mc?WA3qCmOw6nUM1XqS5wAyAH&9!D>3|fyr(k*Ml9QjkGHCpzL;6Hel zS(m)4{54w5&_@y~m;kSr6tLI)162IvN~0RzcDQcPDV@O*%c^w$nRew6n`!8{W98)P! z{fr<(t}T2vu(P3~z@0{tQhIDLRU_Ujr@3mHQ|QQZMH4$2m$c^FLJRfnsIz}V8Fq5{ z9z{f}biX`sAD_f4+zho7jVJQClH!=OoVE(=gRSjR=e|sG4|{J_fID=g8D+|xoC9<` z*yo;3yW*A7mG2n2e4D7$Nh5M4IZC4-my*#|2h4_ zQdnk3n0jqM`g^zt>i3W>yk!RGysg?r+isX1@a1tRHT7h>S9Il)gs_W?5ZJC--2C|i zwU)9AHC6{O=i$>Q-YErukRN}LjH_>+vUR6Dpx-_s!9Ghrl@zkm4=6tVCwiuQ&aRBH zQdU1(*ZNsm<-!jLaLwGuNYAv_sP$M6g7{-qNsU8iZ7g5L!oE}g2tWN%ppNi{1`vznHexn0a;T+~f1nnDK6uP0ch?r*ls9AFRcannHM$kM%Bh z5VQZT5x2?_96TRrRHw zTq&f=syv~dbD{K&+c1f_RB!bmG>i%19G+U@f1Opq6*pm`Klk-n(C27MoMJR6sAt~K zLQ}cTDQ}?o z3KM(oa`GH4m$+j9V~zs>hGOS}$NfxEI%skYP5WDVb>|->iHpgmuO8FT%IY?TBa2TB z7vFw^o%;l%ILdwkR#Yv6wK|r`-p9d%HlFA@ipL-Dh;=<+Xs%TBv5uSJNi0i)FRxhDZWWK<-{pH#QMc$)lqI;~`L=WsU^y;Fg6c13B$Xv1vA>yWPPDd#S zv+PeAnVHwLf{-2x6s4!7cU*dpnjVn>h1cvi*$WSGChRPwS-u#x@Yzm>ud8k&A?+! zvY*vRnEQ7!F*5J53cfczFgx$iauhoZ6ioeqe&-dY)0!qt%0K%G^z8vHsEW5-R7&5X&BPx}3ifbMVDaC7WF9FwiApzYwOAK?aWBMh*&IVnC?=B#|_d&M4 zOA=41`9FPh0v*3)?A~Kk7TLYFmbWe@)(C7CT<)JV`f3&Ad~e^{yDhsPc-1eBx%Sdi znqUxR03`V$)U#wD;CCcp*lrUwo45oZtY?K|SaMbhlz9qa=$Ug~6Hb;z0DUxSy_(fV zmW)F@tsrLW0(@3q!yBm!qi!O&931h8^hmDUK_4cYeEj4fItf@u;2-XeySd!M zeC;7ftxAO>yAkQQ+zkG0$49becYYaF{O5wb)-Xo?6031fEj~68t%~!sVI?SO!K3kRWOdbVrJs}b0{EV z80eqFbRggCttx<~=+u{wcQ2?YHm`N-^1%$GC;LyJ5Ci9qndc&$760KBpE8rcjd>IalGiCM(X_n?)vCsL-pB-0YcN9i3X@0MpwMF;H@#$Da6AT z8%7rnWF&7qC$F8w3ba)ClPf8Z+y879cK=2!&#RSiVkvNHPLsI$N4KT#jcA{&5!#<_ z+vdGXjJJial4PNtyvUwBSULMyD_H1`mm_$wElCWdq+VS@Znu{qvMC?gs>mIbPRsnXyqVzYk;JyCXgvo zLz=kIu4OES!9+R0s0_|3o-z}qcIRDBsMz&UU@0n3KdSjqLqAc>eFioIOmR@P)oL2@ z*(``xbAf^p`WX_!{p@_|OYm2iH!65NqxN&zdr`^Z*vmnV#W*6hK{jS*bi;RdGonF~ z)Pg;ReYYulWzudGP+UkCVP4|ns48MHl@rKCl8)s;wYbY4#`IZjh>#mQe&%yu@LmW) z)cpdStWR>jKhM>)6Lymth$SKE<^23bm{ZzL8`lp-lf zZ2lVzFn0(b&5F^(Nc=H4j1MPUTH6e}BB5|=CKZH%X^1Rl4OZ>xd-%Wu*O{8b?MlQQ z_GIL{9fpX~7oSb0pC)=)+Dz(wl~0v{PR|A($LV-y&C2Cxk?rAwr`GwJ2 zQ#LaT5*jtVj6p$1m?+z-fi{iMdgVH2Xcl z(YIENZ|V9#!m?4MxiN1&`NbQh(rd;&T$pIJ4%80V`K?U_M0NMr+QZ=#n$5v}i<3_g zLz6DLXT_@W81gdK=-O1OGG`L77>XH1!<$3G0WCChetmbO9coy`y{+^syq(l$rs>sSKF{PGKGMJkH+ZH|fZrY0b? zqN7Ol^0~6=Yo=3wXv>&TlV>L1;hCGI9@ZEIh_}=DyhtFr)UEV09S`A~dKOH(V{_m)-zDbZKcMJyNlSzuzpqa0;{2NZ{aU)LYTXyF#o%41(K(LbE87xG8zX)jmlY01%@6JcAt7i~^R# zCskmrAHPAlGJGs5>b{{(NfQh~;ctUg5I$Vfk2ws>Cy9u9*84;gY{7yj389Mfrg?_t zc@|t*TP>286eDu*4Pl3)^(C@h_!|j{-VFBCh-g-lRG6Zm?kxu;<0Nc4^Tbt+UXF=A zcnKa{eL*Q6(Z=1RyKHa}$-vUt${d=|Vu;|1$LfTfCvm)Cb`3aI6{09~&*CUEEaaB> zkxcwA4jK{86&(=q{sFX`@KoZNUW;%1B&>GmYa+7#F5^mI};rBXW^Tnls4I0+();OoExwD zMLEBBYQ&`qTaXI5t6(vp0Q8f|rZfK@rzG`y}14U2%bM_TnM6h8M z7tZd)h{?I{v&QhxINIc96^jyE`=G2e8|=YrP7A7M-kNt=xmb4BUI$ju7L)9L+QlUt z19Tfp0hA1Z1lk|95Pu^5F(!-lR#j@r(=}}j< zsY0*QPp4V_L$vl~D=lqdzP{`{DYr81ycU^$1;lVulE{ak6_OQ1#$K{|LiYJP5K~nIo@`e2Lf_+})jww^-2Hk#TnlgDPE)pt zp`p+y#>jc+EzxVtd2n&22NG0(MKGEd!0`q zdeTeqp1XTNQspYaY+CUdSw5Gkm7^+`zlAd? z*=llxqDq)Zo~{znIHv~V&dv!;EZR5+hG#_zgiHx&MI#v)zLT)I>u4SaVfb_q#_*kL#jl2^GJ!=z{x6XW2-%avV&k79{Y~< z)!YDs-`I(Qy(=AB+Rl+aGzB9%_EO$>SB5>b?@gOy+@~s{h?=y}Kt>6!Qr{L)&l!8N zDHzgo4*?Jn%U1NGAXz4M=r2VavTGTQ<@ zw*b|5vq*I#9}07NKfx44R^}~?+91;V^@zD&W>CfJ0v|G&p3dn6k;ZspvpA^!24#v4JyfR($gTtw5l$k4sgSDp)e7Ljgj$GZ zn2J#I)(b;9FI*MRXLFzkiWj9I;?McO5D9zH!@m%q_iqPXCQ-f+PP`aipOrrFO5C68Ven9iBfJdn|)FA1~t{>SP8l!~J zl@mGQ&AI(2Tw0Z3%hh>mG2M{vJ53eq51JJ+kCgOto3|Sc{0ZSEshoEg?FqjTAxzWK z@`t=6;=RJCy1F*{h|`C%+lIe_5IAa7FFzcr7^r3Y^U^)_@xgca(=&=#t(hp%)>Czpr;bE|b=)YP}=^dh146Srxjf{7{ljuto@j;*I zh93cKe%j*9z)g@(ESaM0?xzZHm!)&a3h`$z>?~7)7*8M%LZ63%4-!P;hZDlsixI}5 zC?X%(ELXajL>r{D(SKwbdAW+3xKEt5{dtD?_rr>|Ikxs70dwKCtXfpS3kk$$QEvf> z5aO_|?K9~x{1pa>C^u zf)QBb+pzik9ArO3kZT4zs`ruY`y=3uqvdC<9&&J9UWng=l`q;JiWRpUs z6vZ<87okvxYt&#oEOu;Ncn$wb)+{@mUugI$^0|b~tIwigr#=$1MLLdM7Y?RZ)b>}PJLYi;c$Q#MXu)k~}Ct&>eoqT%p%0#wWYM@!U=n3a9!ywWZW|Q2(>mO}zfqgRP z35*zFOb_xzLP+rEDA3aWRXQcGWjL&|LRV*5t=HO<0v}9~K}FUczeO5*;>`)$8K%`{ z?Sd|nFtRt^jpfDCmr$9je`Q=raFAfu;FBOX>42`%knqaJ^ibt|`DVS;Qce+}5bLQZ zR%~E@k3PJA_%DU(yqU*F#h^^>JulSuog4AW+zR_`E z!xaYgRUuL21@E!Q_{N#Ti1amc%g1e@hwX46^Xq5`xpoQ`s*n%vK9gn z$uO36*r8E<^}tH}=B@?FZDqUtL_&*o!0nRENT^4srFxo_OacRn*~gLUq1;;x1X#qH zX?KiM7@s3Z)H|to>KYKlWsqi4ox)&~eh$M7q=fS#P{q5O9Ran?rc#q8H79rWNoHx! z5_1Fn$s|sHCxRkTsc@$?9VT@NPk#HsISo=M&u@j(3=j6Vf6aZ{_xgDprTpyY56kGKOVARI zH|pH{h!=MJnkk42%VJZq{7CtZSs$l_p8-56(gi9nD;F)G^CHyKfE3%%j0axbNivM( z@F40~oPWqtLX1-p>jc8*xIkWLy@k%rCrHV!{k~wq9SneP8H_G^p2Ck^{Rw<*NX)AI zD8{+ST#Rms%US5~0H^HMd}UnpicHz&FNYbWemmqf)w!R>`tyi4D;o-U!3unPtBS&~ z5oP$dtOIYkY#jBU$3S-3-Acyhp?cboXL*WzgP$4i7w3l6n5n91KYYmWkvl`!p7D#? zmPb7Bnr_L5(a}uyL7<&zJeibSsZtpb+t(s1J5~!=KvdyHX;us@t zf$`v>%QklBzIv)&A)83t(&xfY}|x9HURniPGVjfH$IUJpCd^j z9ali(h#m!^9=;uN<8F8nA%3y%9|o7O_3vd;n{0kWM<69NbTu*6+Z%p+%wd>M}Jb0ECYP9&+1N}ytxJ_Hl*j6w@ zfCOkMJwn$-f&RNs-$79r+#s5%qbXov<-C?jnmNW5#vgqcnBJ3&KhNhz?}BX1sbn48 z`#nDKTIiMf_1~eDF#^i?Y8ZT{5Bj>#hAfcPW7gKDOZ*TP%(cO*F$Q4Op1MpW2C@E9 zev`$)ijX&94R#qO1TCtmI~qEN{A^DlbVeRVP_>?bn#Uj-UJr^{N_c1WiW$Z2Z^abF zki{J8fdV!vXXUr*0a;!V&c(ffwyC+eez9gd5bJz=H3i@AYOkP4*F!>pdb`9I_^2!+Or!;IiOQsc(Aq_k}$# zlJ&Xx1@GI_8BjaA9Ps1VdABrUzaOhl6$)}oaWDgUbqtX8ho1pz0&8Xg#{~I84ne5Q zdoH@3sSpk)pbQ0L?3ByPvK74nsJg9t=3SoZs%W9t zG*H`IntgoefrKh8%Y_LLW#BcL@c`5{F3vd|AM~TF_vpJ{|k-CrlDL|ShT5P=6gjoH)|(($#U!iKNGFwLTbeh zkxfUPN}T4>;1e_`(jBhe&_x0oCNh@C_;GtS+j|&-flhHs_lXP79ANlJ6O)+E-O%hG z)((Hm*~nJQ3PR$8;VS;e9C{B>u>{+5I9^+V-ecFtOPDE`g!_WBLVLZ1l=;iivIIm! zhnV%>*pwZJ0d1vT!xUc^LhX21=;Zu<8c-(YLx22eix}r`)`_cHQy6d6Ay4v~BMWuG z+q}H?WBpS4f%z#%Jh2wU!LngT#lzwrySDL1Gwai$@35WfCwe~qdF~UG#J0}MWbCTj zX%euzK7!_uW8Kc&JueFSIRk}`3X?k0b{kU41g_BA2*vJRTKJ;NV^8c{y(9hX9GyGg zm!Q6Fj8Fb)zT?5jZ%D+owod&-lf-0Qxtnj)OXZxGf93w>zcpT`DFOD!Qw3q}cL{uF z>{Q_g*VsR$X=W-~*$!Z{e~$|@C$sv{HG#X^_L26j;S-MPn{?_)pdBS5aChX(tA` z>u~=EG#~tq8GlePT0yM%g!jqoxY9wAVphDt?ZTXoaQ4D?TWTy8ENqqKI^#(HP{Zum z4dE=}#t)3;z8ZNoPe0HPq^LyULeqleHtt}q6FAw(@4sRX=!mwZ+;HdmOs0VGedsH! znO*>D71Wjt$@|VBX0dPU!fPZ=(n8M^O>j0Jy`51#D_VEUP;P@fW6lMnmkLFQA1I30 zwRY0x{Im@ZYE_Yol|oW3D)D>Td|#tYJ}Q8}si%{=U{WHZc)m|mpQ>sAdoE%zC@4bI zZBOZNGvmvu|1c(^6K;VXR`-A~vR)C4N@iebX8tgSQ6B7cS(a<}Mi?g})Qqg|=-Q3; z!xy6nCcm&ul9$#1XsaC!6WBJtUsuXa!B~j)QINy8IvwKmN4S7Oy)S<8^CTw!HO{g& z_5&3EyBIOrnYciO{3_EK&~CH2%pRp%sWJ9?8mQ{(=E3b|rLi3fxm3|KyY9E$(%e!l%NpPv^PHzxtn9}{SHu+jD09+FY;Sl08mfCWOg%Y`!;kMz** zvNZ!VKjCWJSG{X*TNqAbby!=Ttr|8pZ0f(Bj&yVpvGa9W$Q7h*EfKz$d1?GRW0gf= zvJIqW5oRRL7$ND%@|XV4AOWuNAJl3=?UE_6rwAP{oMb=9E(Q&YX)`_}f-@S^QKGv% zeMHnFe)3EzH9MbHJX zPFvSvQ7(If-gDDRjV*Gn-7%gB=G0f%X49UcZXzRsA@Z1^Rs3PQLo*!1BxQ5UMDxU} z*+jqjRw+Lth26B_*sO}ML6Al#@mt64s4761ol38?qEf2YE(WQ|# zM~<5W3;g_z-Ce7fo691~{m1hkRo108&Q zASMBSI0q~KNEfvfF_*N7P}^QRkSJc;xeua~IKMfBd)oPZ0f}}`!GF=%a08f%+!v}s zd4TVFM7O>w1dgWt4BO_5WG=8wi6HM)Wyo~8)hHe=g_tFzBg_;RtgbXp<>q&3s44zg z{FgVi@fpm^^4ysY$IdpYTZ#t=DM~?)#O^ zDilW$Er7aUvwJW$E3TW)A99sFbpOaXHl{sgnVl;W-G%IW>_^F2e|q^^aMpiMftHgv zygQjfr9R@2@y!DOrT@!B!&VhLp&5fEk;AUH_UA`JH0(TD?4ghqUfv>4#}_1prS`Qx;<{RU-)77? z0Tup_;}6ahJ-zzMURxAGcc-#bqaZC*B0fS+>(F_HQfjar*3tSEI=-Z+NBMEjA*{mN z7W2fK*9>{jJ9bON;+OoInDye%@cf}nzAN`OPs@dOL_fDW4gZEFt8w49X>leAxL=pH zO6zthJHCj)dr8IAhUuiear|B(XE!_HXucINC4Qu0CWG7w5f+@7)xizx+G@P6wT?f0 zs;p|MF4#p(}YN06OQYn;L3wYs;ucdaOK5lT8|5Zb4;-9Gj2a2}_dU8Fs4 z0HC|MUtL^u2XvExy!4S;4|q+xG8p+T za~}@R0@4I$r9q9AnDu$R-+uev6An*OUab7W0z)X%Vy1UWm#?4B434F2R8Y8 zNQymw3AjprDFTV%V^)gkw`$SC5tc-prX6vGKS9wN2uHd9`k@3flXK>GX6GEPTEjKpUO4v%_GcI^7$%fQ_Q#g;Ud_6cFFpZ%RlI zR_+_L#)M*)G=Miw^wTt72~~E9YHW*tDDA8g0G-de|7{=!9bC;Y00$m2ux<}6G6aE8 z6?S8#)w-Ew6CWZGyChd)08{^GSV5BEoZ!IAWYsDPvVZ&C)~M5;a4B&?+X`XwG192C zX8$JU=v%W)tDWkj%;fi$Odi@mUZE--z|sx^uM?)7y1IHqzs0-B2#&tuAHMiXdHT4UVFq-M@Ak?@aU^_>V)p`I zt9a3YOm1K!I`xcaH_@~fSPue`ZB^Vj@TNo){=dB}Wi8&Pl}{F0bp{Wxa6I?E{%$6I zHxdkzyG4Q`p-tX_I9AUv>}zMS^JAF=G?5%rOQsbci7a8_<7)}ml{87zRJ;C`vkpcG zuL)?2krF>k(ss+&&Y)1qCvj`dri?gZ4GN)^1X_Q5KFT<>vKP$vFVCJ7&l+Trc!FFE z(X>gOB%`b@jDSKee9&F65uv8x0eRx7$9T+bl_-!S-_41|McAWCkk#v;Q~4|tXC>aZ zYf7OsY<`BC^nCuP3}=X77WhRcLX{rfBdjgtM*sW8Pa0)~?~uU064|a;X7Ta)eZ?2A z@+pL3XK`JZsSHH_ElQiwr^!dv3(Mm8X1`am}=HtV{T- zY>7hzu``kc6Z>MsY(qIWp5V17d)>2!Fa6=fbNZF6{+PM3AW_BV|0%_+DLXlk{XzHy zdYOPiKSt2zoGNuNuW&9|GvghulL+69At8dKilI3#c8H5Sq%2;7$8>90ScUxM)WiuZ z23V%qD($Y5Ee=e?5;m>YB7_mwWhgfOll1s7T9BVch5jQw3u$Y38-#coN~HA9!!Yp3 zN4FFv$hKFlgAQy?14_wyJDqae@iq9b)*VcA>%_2|CmkV@uDx$V;~S`XWJ$-O zAUEh;z`rETBh={o%Urd=!Yl<h1D07aq&l^{W?W=F5&0#03%}8*1rBz*xDUsu$~2wPQGWQl zM$VU)pk{gXkkw;K*%QOz;;L$V>YVjGog6v>!@Cd-a<$YN$TO}!ww0>$h<|*&` zLwEiY#8f_IOgqbcP-SmHiP0j^51%Oi%SG@^&j<~Ilm9A>kfBVX_qnO8Gh%3Vz4jI4G0LAF12DE3J`f|>=xBOov{?Ufth;!c-);8e{L2k0Dj2tFtcQCdhFv!6C! zpyzK8h9xMNnVeEf`+j^piS}mdAPD!6q4rS{G|HK0JcFlkO0SC2NZ*6IkreV0EMfoU zh#Qt|a1j@m=@ZytplU6D_}HYUUj6S#q6;rHy;kxcSy%E6Wxb9!qWaZVesRJ&ss?jy zmTSnS5XsI95Tw}K6Nt7D1Bw-T)Cl<@o!{Mal<(o_~=Hm;5G3UH+CFI{8t0Zu2b`pKTsMW6$T$R!Szm_9t5< zL~O^S5-O*&$D~eaKHo&~@KKHy*o0a_;*KQkW=*FwZ9F^E>}yi?k4lyJk)HDqhb~RY z?cZ+7bqxBRpIuk*cQvhnRdZ6#T~EvDp60*j{lMR-UzmmF#4H|&t67g5lhSqQedCMq z_pY;L$sIf}kNI2fvRC<#%H>lCy>|O7{@1VVFz5JMIYhja;gSyzK*{#5Zqr;bPRJz5 zV`JYMTl85<+ju&Y)4cqdHg*y#{_Xl(XMr)aClOpA0%rR z{{vG-2g-K$Ne&~n{v*g3T=D%6c#y|c2-o|;oyVbw)alSide68jtSBHSl>8fv`~aXD zK}db6eDBvPnRjV`0z2lEsw8~F9l<(a{GeDG#5Pr9`FTQB>>iV*3tJ>TR4rf2RmT1dReB@3ioY1CJHP1BlrHk16tt#DhnuOCcQh8ZqduYMMX(mA_$XnPrE}w$rK+aY7|7+FTu<|w+?*a5tK6rAqKzc4 zJ@gcs{Hsm89Q>hTVKdl!On{nrs)Ms+-U*s*u$Rbp+9n*QTB1h3qh@t1 zJ3UdWaJ;ZJ{QTh3@?EF7H!%MP_uKb(faeY` zp>D4Obgl2l2vT?(I2U$-lpSVUy(nb_J;!@W5wr(p0n;NNx#D^%4Rp|qS~td<(oZAS znJFUg()VO1LMpz)1*B6EvV$Fgu2Lfei6wVsvI7e>%^jshop-Dk0i-|JT&1(ciEg?U z13vz}AnEN$w*feax@A{k3E%tDv}L2x#lTMA_zO3U&DYzP`G4EEsgah|iA@+UnOvB#UVdtr*yi5VjK90HV_^{-lz3A;7X9&s0U9Af=n3)tjT=si}Trkv=0 zBl&(l-Auh)S4j!a&6cQVh_A%|va8V*q-3!lir@^XaJO!N&r|_Q1TQrK(3Tecll$v#s^d+ zS>K?m8{s^L|KH9n;JxK*jy5iB6Z%(Qxuh80ifD(<2uz})vH3=c+~1b*Bw0|8kmbX5 zgBcBV0hQHaMD0gDnh4Y1L}UOeiE>hx!22TKXe8?_u_WtnmA?PCCYZC$;_9+PD&9|Q z=UNoc%+`P0>L%AeDcN1oPYW{!KC| zX1J_xVf{9QJFZlT-1kU_EM<~b|JJm~ZgR8TEP&A{cuAd4nB+1r@Y6h8lz3$&u&Jq= z!IPpJnWs)A7#wrq&k?-I(7iWDRsIMpN)mm+EBB)WlCd=C7FV;(vlvZ=1>S#VGTwrc zGefI~Jh@|`^vxA3m3p>hLul0vVv&dyO?;g}223(VJI;}_ioi`&?yYumK&uSAVW%)u z@R$MxgG}(hyU9ARvo6XlQ$^8`ieTw@DoqnH8j+~=uWb_RRbmi)^|Vi8iJ-#zg^1Pl zn-^Z^cc4q?GWofS_Nu01ZbO&W)!7i~pV?b!%~C~A_!Nlt4Sp{mvMxizlj;N6U+-Jr z!CN|AS#&n>I76-5GtyG@#;A?a?obZDAwZOlxLHZGRN7m+P{V^N=UEMO2Di#c-04im z_t(JzIB~#-geeOZ|8WJ{_r7wFs!e1d0oN007=JbXE=$beT1m=2%r)-e@Y~54M&0DZ zT`VtW+r493WwNUE6dXtpZ%g7bIH%`VS&f(EE1hG~-M7&jztR#}M^7Js9Ou1)zeRc6kjHa^p} z$Z^!SaC=jxyg_!fx3q*(c>?M*nP2AMe*j=WpTGFh zX3YWGbyP9Z8E8cyLM}u~Mio^EB5DnWAGb9Y6}aE10{tSXDlD0Z1HA?&0i!G+3n1K8 zGnM5g2gL=-6u6i9OpXepVL2;@aG=?-M6;5$I0tsKK=r9NBK~iFcN@#yV%Q-(TgAx) zbO8VPSaidRUlVS#IxtX(cB`ceTo6kK1>(f_4YIdnJpn^eVNKe!52N8GSd`K|8Rgsw zH*yc_D(%!BCZm~GkOZiHeAL4bXlc&DOoI9Wg5feFF6(_3u~>n zT%$`6B=sxSRvX#BMqIV9F!;3UTS!@5I|wZ+M+c`ZVOb8-W$h_ka*Gx$Wp>OOFqw4T z0C;IUP_R=7HpSsz0l^UoQ-s#lS#~hoa+mb;0ilyW9pg3XU2JMyZQ3}(MSLLmz$33;6_HH$np0)v4kA`uj_83AB2EY|G`Z^?1g?7nClN+F0MZ**KMSq1Z}&ENX%+%#A6bE*XX$vAN_#*raFPr7gEt1U9P?fpPQk=ItR1KM< zah#=0cNDSgZ`lB6PMv8Q4nev`DACh1Gm4y07}xVFQRKbJB}an9XFgvRb*i#%VS+r; zU=_|%41zM`V#flAQhA;hJz-Kk3A7Yo1CB}|LA<}yb1q6HVPdgjKv}1tD!I*BY*UPm zVP8D_U|vX%V6);6MC4=zYuGbAZy*d-0>xP$F|CO%JmWu;CXUWB2xOmVOFMp?5j}6w z3TVvkBld~eIHn{vL`C>F5n2>AF3RDuM!ZR3Qq{DC9Hiq*L~)A09_5zzLnxoO2Hbwv zItE5iboDG1Ch4j6Pfm#DQbneiJ&ZC>42)~}4$SzjHU@zWR{bTiF4U|=JuNj~Zxrw4 zO}@hBDKoN&BZ@p=8b5APS~gd|E;gs3PFQPMRYSuEDUy}d9w)x=JmQGP5-UCQZ@BW*)sCNm0{Dw?k%6Ahu=H%05FB2LRd z4n9IJK{$PBGEq<8ZC0@ZWrmWQH|_098n}4aOdnosV2Lxx4nsdnJtaSaKfTb9He((u zN&rb(3P3sWBeRT{8Y0BnA7O62PKk#7UIz^fBE6LmH2uBvP8jYXO-@duY`nO?6-7X> zJcZM1MV4b_106bAbbOzKEZane3D3J4P*rS$DnSWZGC<)MF6V5#LiO5zDzmd+b|y>h zN3ht47y~*mN6lpt0_s?EQ#76k1S@3Z0Fp<{aS-}R2RF&1GP*GyN4oggItH%yXv|B! z0D9TEE;Q+GC8?-^7%@r}M7^vs6_lH)Zc9Z+cJy9fIr|;YB-s}yC4}X} zCt*rC3!E6@8QK@=a|XtX_+ajsSuZ;YrXL4eVLIOphLBNd=NIUcgcXn@w-Y0Qa8 z0-t^BMRbtF4(kXlGKklb2!_{23Z3C$LE)dtXmL@$Mh}N#Y0R%&5-2*+b}%bP7h)MC zU;2k(U|X1LSajjPLR6HyJ}&q1X}I&fZD6}1E7gnMZ&YeWU0;64bqiF?Kjd58M^-rd zV-Ex?1k6-J1{g|cAf#_dV^rrn6;+YyNi%t0IhdIh13hzd9D1h&RC{k$C%G_SZeUB* zB`u17W+LqNMKACaId~(HAT{OG0{2D}1Nd|VYmRkfZ>XS%F1yrOAIr&9Ze7F`V;h}? zYb!GIFqVq^VI^*x1k(n%6(c^VK#3b{cFiae0PivjM7^lvNqcwfPNV{pL&IMrH9bKT z5M@S4Jy5OEO%(}L2s;HnPmSXSXMq|aXh@sWI32#gZ}D*jDAc5CI?|?+TkP}VW_3P7 zT|@1(6zYv~6o>f$Q?&Nj8TLJM25-U~Ucb(pYQjJeH>xs{4mQS}PUo>wQ5^yR5`%m8 zId`5{GSnyVDm4lbNN0dQF<399Vxqq?CW%ZHY^~_;Uh2t|8Ng?*P!VC^B{U_YUqijP zMd)7^Hr7+!6Ge}QXBKsKEvyM6Eh!{W8WE85W)M*ATEM|FJ)<;P=j*Mbz~GgEEofzCOvt;LW$oBEa7$*C9S2!Hu-BoGpC9GANTrl zGeC&y7tCT2GbM$1OMqBAY4)L)T5cK|LMpMe3NMRXA^!RHc19xMJ1{IX3L=={FGLs+ zSvvm-3Zl7*IdN=uNOIbHD7Ff3TXLSYH=nDRQH~aZPZKfFDiU;;NCdYD1f{3fJuwU= zO)pe_KEX%n7Y}*#8f>ilT1Z=R3v7m7Jg_Y06i@ZzASsJF8JHZbavAzw6@fmWIae&V zYBM7C89*&OHa;~VBgp~qHPL(lQ;NY}E&;)d95H&iYj!w|ckF@uPq-3%R4(imV~+Ro zG(n0iH!uVuF5fczZC1c#4e$I{4LCnpK+l`K28xCiCJssaE*xz(J33nDBL=fiCC|7% zYy<47JLAuaTJ^_s2vlTGM#DTST#YZ#Gd(lEL$-J~AL_V>I*+xs50P-22Or2VGszxC=8;NRvuiTG8uvHr|&hUB0G5TL1la1&G@iZgsmOS!Czf z2Qh!#1O>DeC7bG+V${i2R$t$&H4b%JQfeuMLKTB5It@RILfKh}Z;WNtE-Rn!DE};z zSwFo$bnhD5US+Xi8-tQj6oS!89@ViJJg}nTPr!FaL;<>EN~s2o76MCUUW0zgY=(%S zPw!I|2mV_uD-R!DPAex-MAg$qG$|+PT5WgyAQ5^mL@Q+<8AMyBP>?W>CGgulFQzI_ zQZ+ByByFXWQke}5G-r^`bjoWMaMLjVYcKJRb_9L7Nn(P=5E7mJ4p2!r0wfu8V&S8X zZ&?l03l4>B2S7D58pPrQ%QeyABa`yc8&D)3+zLC zX5+qlEfh@d1^*WgH`>(i0O}SiK)tW1Oq+y{1i$87bB?Z)Cjw_F1WFt3a)%Onc!a2wFwB6a1Xz5D5Ds3W4^jPyhB7ZZ00m1MrQyN5k8ITgn&PF^s;7 zF3?|VQ@wOVUhAFaP~8(eNbSOB3!@(!UCQ^w6C^M`1NGZ^Cl!`LITy06B0Z?^39oXz zS%F^auL+&5KNO$E0gF!s^HX_yy{7DF=67}=ZDE^DFALGmG~PuG|V4AoHr5&EP?P>|KAXl__XXBE|q zO`$dh6k|YgVjw`FZYtg?bw)*EQ;8)+CkKwG7v3GFS9D>YUsq37DnMRQZTB&VBOAFQ z2>pEj9x!5lEnjoKV(ph&I(Si36s~~l5;}bhG0H)-StWukPHE9JJY?)lX>mN5Lv`;x zZomPgJz9*HIqlBSVSSMRa2B$yZjWr20q7RnLRc#&0bzQTb>HyT8E7Nq7|l#CGy&>X zJsmX3aU%l6AY?VCC}l39Oy6^qDRwBf5*H%!QI4<&6J_#BbjAHCQ%dK!Joos)S5Py8 zI!r^yK|ik@469m$3HcUr5SFz|T>4Rsb#Q9RYoJ0eVE}#}J=Q0>J);vwWreo{Kd(1M zHK#frE*>d~Lb;VQ&1WPjRKl5CP2N8%MDUDehaMCqaB4W{R?4LfVnb#G}LVD(f4 za6&Q{Ki;ERcY3#G9F1fcXk!UZ046v|OO?SnIrK;s0Kz_lO(AVD7N7f7S>3?#Z-NdfEIQwP`mUT;1_H>?$;4g4piDOYgKY?m=JMZc7Y0}ZED z4B5bjAbYnvE{^{KN+?m*Tg?wlAVI(fmOPAcJ!V0&H5G!!YISayuK7F3$?Nz*#12UrR^4;Qx(b9j7A@u)gQL&;10(I+D3z0HaBC?k}Rnia) zQOagMCB9BM8Y-Bhb7SFG1O~6$P>3U-7A@pNUrR;fL3I-#52e5*OGq=JBfNaoV_H0_ z4pJEq0BTMrZU$O8QQnn>U7S0W5Df+c7#WCK9(FMOVrVJVXU?#dUPLR^6M1tE8;<*0 zRE2{pL|7b)5`&x&bX;JVUb8_vFoaw4Ti%D$4!CKcNKwC4at1RXY_Pl`Zg{$FZEJ!; zNZn0=A4!A*2sEWqA>N078hCqrX~bD{R@|_LKZOXG1OeZEPXS1(HerTwI)N0YCKH29 z1S&sw7LwzyXV9OtJEdK?L${}`DP1Q3G>kvB5n;lEBoHYjLM6H=aY}WmIfKNtPx|qs z8*ELSa*n4?Uu=P4Bx{4t0)vPHNofOBQ%W|+8SZ7IPqdq%VFeY5DUlZ>0KSIWFZ*UK zWwaiBV6`k9blYqlUm`?KF>&LDX=-Xy3!-RRJ5EZ@4VUuw9Rhu_LRKMSWEMqYaE1vf zAKTT137~)+53&1#2KH+o3j0$LY+2pY97{W1I(41ACtxPyCZ<93Pt?umYKyX~TFx11 z5C!cbVC6U9GA-K?Pt>8w9sQ^h0BDoHG;b>gY$hb>CngIRCJ;PS4i*7LS4649Oze5x zV+)>|3zd2;8PsBZVGr3=8taJK9-~WzNeUB`F}<0hOy;$z5^;VaZpp$a0MKtnWa~uP zQ3g2{N*u_?8|NQf008=qR)YXnU?Y#sP^{KwDFx%FQV2vvTOEDRY6$X?SM540SFwCk zZZD}=ZR)SSbFrB=N3c@O2U`a$3!&!AL6gB%Zj}p@R_#;s9o&q?2JaeJKsRcpM-yHO zJ~$VY4Q`?hAPWL9G5&=nOQ1|%nZJ`#90V>Ab705SzM61%bNE{sWOcYq7xSF%{1bS)e|11s7Y7cm4t zTCChxF6e1_Qh>4zLB>^TPaTh6NO^UNGupi@Yzq5NEZi6(9y4z_4=HfnWziAg9yK>C zVJ%K@aWo0PB(c0$WmC9;FueZ1O7!W|af7LPRE%bYM<_2WMXyAo3iZ~mUHr8$bxUMn zN0q_ZJd}I=GRWAD4t5nHLZx#91*K1WG)8h}44`zdGb#ScXkmTw$^g zFM6A)L;!QDSQNEV13PP%S(SkvGCV?FJ4e|rD_B8hTdqnQWf#C9BP3+M1%aOMQrOla z3Sj2HBU?n?9@FcbUkjEN6)!-%L$(ydQS|sVE%{l!3%QOMcCPs4 z9nR~|I}@TM5UroxJ<&9MY9kLoFx?W5WHyE%4xw5UJE6$77C=DHAhw6D3eU)&FIpd4 zLe%U@RCUv9TuRH7DG6Y-QUbhaZEdWUE%1^!WYjFnbC6OcWcp0@G!Mj$Lu<-tM1!WQ zNU1kuFR06`a)(YVUcL7`1(GyABY%VBKHM1DQJwY|0{tArZkUC09edYkJLurTJg6uD2d`?$Ms`^~PD?2TWyo@m z1{E0PGM+-lQUEj)NlIO3SH`y^SCDFI6r1~dqe za)EOcBxQ>IXhs1;JyoDXYbhgjU(RJ&NKX1ts|HV7lk;cO*5lU31_w6?gMLLU(UbHRI#%M|>5S6kmF52QMZ-VznV5 zH0T;PSUS@BFp6ka6`CzGWpKYra4Y{FSih3w7A6eIBu(@0ZNf{XQ;?LZFr&*bRMgE* zB2yhAAk=*dZM#E?a97HnTFbOxDBYbf2%fHm9N(y*5Jq~XfxBRJj{W97EiG+g{jO$i`$LIISF1=f}k2ZSmLRF{9a3i9Xh54vFE92>TD za`tHSIgp^rWhN9kT(m+JJt_g5bjI)tAr@#TNv)ndOTyE)3KZqBYYkvX6*(CRGFVi= za4g+kLul@YbsUF6YkN#0bE??@TN@Yq3&Rsv0-#NQQTkf46vUy94bBHhJ@w9v0Q4Pl zTA~EEX358$5AV$5ZnaMDZZ-1WGe5zcJW8vWBTmOJ02$9iT|!3NP&i>+On@0>{ES38|Oh;Fb4UeY!F06oi61tn8Gj)++2~eRBIKYpz0nY2yE&1SCZMqj# z2435i1i={QW<85sb=0#qP1RHR7A-`!10muOYRa#RDHQn563Pd%L~Y-uPiqP{Tn8He zN-@u$L_K09M4uQW=NLx2{=EcDL`73E>z>eAjI-fBn}h@9!~0# zH5OgNYb00X3R(PVMD@r~awpTUMzU^=PcZ-Z8(lLcUZ?b(QmJ^W6hv%kE=rt3T9JB* zD3Yh>WGfW0U|z3IIcd5a9`9X19|Y9KT$I;2cC&%pDcW}}PkL=sLh`l{Ua+j2G2E2z zC+Rq7JP(DqBRlUsIH4#3aCHtQPr>u%b#MgwN0`L#J1)=zUCpuQH4qv0b_M?8Hxb3* zbQkny1iYT0SJHMNM{8>eYpl&;9rCxJOL_qhWl_#6WvAiMMJv)kMv}WML2d(hYvidP zOl2w)CS#+0B!SiZ2$IN?A4(*1N00z3LbtcTE2_jHFOrh21RJLLB?6`RTXtVTZWx=L zS_I>FGgHUtPk5;wC`gx-Z5HqycQ~4UK-9dKWB~O6GjFXWTJDFAa_vfEJ)&ae1eicL zRGRs!YtXF*bpR!cb*4YSREQ<0Pyqm;5mt+&ZH5LbIy+_;U)$nV2@PQbbp;?s7hfH( zXFZ3BL$$6S2*^>lSN6wVDkde(aPlBwS|Cwg0ZLHLN!w?V0FWjm8=9_PU;YHk0S>T_ zNjocTUG56Nl!x!YFGe*6oJACWL`kuRA>`GAd8UZN>kO<36EO%A`rKOG3=<84j8$1 zY0Gtj5h@L%E3y%$9nWOv9_ewmOG5khCub#~VFL`V67q6TP7kkZMOz4HR$vmAMLaKl za4lE3MHx3EJffe4LA}0uak>=tM{yeR70V^D2o+lNO@j-@P&aIeaY>3aESg)MVq+Ze z66KmA0iHq!At%l9A+ec-Z5$o}DrAl)W+kr`ENd_=HFM5(T3sRrYe&Gx8f)5l2br<^ zbQtkX2#-f}TgNnx7TZ6l006`^YnP|t0Y5~eSNCetM(#{49?1<O8e2%tmUb5}>y zF&K@xHn7*qV9`mVReSfuV=h8?L!-f*CF&mX1dwZX47F0E6o}_xZ&uJVP;}MzP)FaC zTz1Ju0)ifvS7Smqb~>2OM{M_{W31x#8fLacSg^GKNA%#)cFO=tccl+SJOt1{M%uCG z1t>E+Ya>g>Hz_mkE@(PPIm`XaP%ZkD8N{Z1Xlt%38{H>d7X57x5wMFdXn!f}1)}~C zDo#neIu7#-L0VI&O?ZYe3y6AJX$xCXY}_dU-@fz0KP&mWC@dkb@4eM z0Uwg@C4dprcbM-q2u323G-?Q`0wcoJOBsytV8ALgV(T5j6CtoK6=B^J1E}OHvl{PS&)A>52$rcPazj$XWHKR8Xehs8Y1?+ zLq#T9OBmz<7la#&IQv7WXGH=?9=rz5PUP;h8d(tA0;X;gcGU(5A+nJ6YI79w9U}qy zU=1WOTGqzvYx@G}Nn{646UeF8DwyO80w#g~H&_6NPVIjPIze~N{fh-HwOv)Y?yNM0btYcQQ@nmS?wacK3ilb9HWP$ zP@60rbE~Oe5YcQ>HN4w&YN=6KAZaVw1p*9oJ($sk6Wp1dI~;>kbiw1uJ6l-IA_`7@ z9}p(%P~sT-b~((DQzHsULOx!!OKS{^C-JJ+3F?=MPthpVYfJ%@0_J?$BcdJ%EeQt! z2Go<=Q&EqwST|-gBeuePcaG&zM7P9IUE6e>BBGXobxYg!28pcl6BbCTEOC!xFX8yc zGg<)yD!@zCQ%YxWM@ts~94EvBVaI1KI3YCoWbYmZU@=nMQWs2eZaY0XJAoJhZ91#^ z90piOb;s-2ToNybJuqQ0Pe9$eZ~9igH~`QwVzvIiR*AKqIackjGs4mqUCyL+ zEHf`hVb$OaX}SfUHWOL8ZYi%1X_*lg5x#@+DS2~tRaoV|8>m7o0UxvL4{a10bCTdv zGZe(rS4sK8V58~ZG8vo9o8LR@P5%v|oP%s27Gjy+=LZLok6m{*t9b2hP5GDN$7dQf} z5FuxfO+x9o2=aMf6F#Dn54|UnLlcbQ2GJ|d9OrfS1Os9xAgbr-JZgHJF{;i?JS%?s z5PHw4W@j*Rg=E~Wspid zPh?~5K@`-aD)E0&6TheWK|jW+8KD})TO2enHmxdN2{3o7I)iqYH~DpRVkhqxE1A8x zcD$QpqbFQsMkFAfvPkXw0DQ4xzHw zAW%`D2S--(4%rCw9R@y594kI>bbhU*B9LfNC4A&8xQ7hWoTUo?3 zKQgcYE??<2P^ggSbdLBC|*kHEV32VTFz_7XO9YTy5FhdfVx)*M0u+3$aQg3qVt#qV~z9oSm!VeOPTD~bR>zOK67WB&O-h~~3(5Q` zML!PbC@H5FX{RT6@GFcc#hoOb`XNE0yz(XFA1HPc=MTNLOpR1ZHFtu1*UGpl=FH4eHZOi=(1Z@EIDaA2E6;qfrAZ+FM zClsSNLQzk`Y2tVFWH3}lN^A4_R+<@l5l*|IQYqeFXBd8wAZ5lWVr%s6P2!`Y6JsYR zS7NL0Qh&8rB%*Z+M6f87G>ET_&tf1Ys{KaF1f-SX|u3R7=r^EK_}y zJx=q5Y)vQRRU0(-QSxoSZ(}K3XKwsQ2iZAc8aMjzS$KsIXd8a5Y)=7XT^$!v0&4IK z6nRw>1DE~vL6ZSKRxp#>Xd^#(AgJNyBYIEna2>zeJD-t2VoeRiZhO07JRzsgJRm?! z7IPsg1Q^wgX@qsuX}b@(62d5(70jP}AOmoLC?@3cV-+3^FpK+0A*_;~7Y6?s8*~o$ zTzB+!F@7N8Jd3+$Eo0)=IPO5GF^34GLQAv|G1*&;a&I!U8pDLKSJmJTQXd7M98;5U zE1oZlS@>0js=!P3k~=GGE~N z0nS9T_7Szmu7)`)KUA8y}T{ir?ILpYGYR4*P7C1eOLx#81 zI`{a5VIyj_45n&NRy7;^Tjq$OUJf5OY&X%1U5D+~2qbao3t3z%H8}#`S(hG*4S8Y^ zAKcfvKJU=A|@b>&YgaJzxkQwqZdK8L@X62|74 zP6k9OCm22&0LDRk19pNpT}@X_GNg!EMosccI2NkG2F@E~8$yO-H)0kHUkjJ$0xz76 zENFgxD91tEXI+JU4w6`nDpqBG5sJuDAda%6MT4)qN(4E5JS2;60t)X_FWPMXoVNu8X^cR8^`Lha)YpWTDiiuEv-d|9L2-OY;3xlPW|VkYKq173s4LTXzjk# zQ7DY;386Z8Tv?&u3z|*NOGs+Zu0~)~xJ|mH7F4smEUNohXb~}L)TA8K& zRC6|1EvXU-U0H--4q6V@Arg5mRM?~iH(C}6Fx=-5E}TKuU~7b~UY`LnM3g?lKY+7z zQ5EG^Jb`2GEYe_)UYmm(GsmCENHExs9YoF53<%t5V6>$`VGhnw9?F3EF?GErTP~tF zX5U-V2h+_QPDE|#7R2Rq3QcG&6MmZ}X;z8eDjpG#54{aCEW6L~RE8ITFl0H@65i_F zBa#3y1BKxoR;+!7%vNw7<_ySRl0dpIk)*S8+Np} zJD_*+Y?=djUXO75Eg%OAL=JHT19#~o9~Hm6Txp2gDmaZt%c8bw=784BGdpDZ?(iLr3r^ zMdS|Q5x49>8U+pnH~)^tXSZBaS)x$4B;kXz08PUdELlXyb#w(SP!C1UW%($66hqI) zQ~^BmT~<))W?j^uTwe*yJc90xah-VYIsR!BN;m}PDQcyQUG4~ya!yJO5lxDUKmJp_ zL~YW7JY8$HM|Kh$GVnO`Tq9fa5(sA>MP={fC_4s1U!C~p*v z6J#AQXE-XCXwQKpF^_}GMbG>=Fnu4+H(f056?-g55xMkAahRm5LrOJYLk!*wX@2$X zY`Pd7US`Y7K}K>_AO5?PWUg+UQ^W9fbW7!S6DL?W59ONZJbjH?Z^kRLL#K8L7pjAH z0~B5&TClc{I+lYPJg;QpE|{E7bwl~UZg&$RZ(fh^4F|$7G6u(DIF{dg)ZM--pBZTrL3T$MKR)W4U3#H!tNC541 zaqdEGOXH%I1jneT5PJ5N5{}k>T=BviWU-$(E{1o3Oqaz5M_=W-0Bd zPV^n!Vcvit07n7 zT1X`XA7kyMbkLUBE3^w*6*CZ%2-MI0T(yj=YuyH0N1|VFM%eIdI*B&nb{8Em1VXGk zL#=OaVxS6EoPODt#_* zEk|OvD7A{&FP?e!N+~gf5!yD6P5yODQ7w-L3{OrpK7MCMbSpj}C!muqPB~Dq5Ci>k zWa6&?G}&;M5IZ4G0!skOHXlU@TSag|8j)!LIooj6Pwr6cK??4V7VLSB7?031kKTG8_z(NwcRsJ9(enR!ng01o(7n zMS^aP40mE53u;xPHZ!GTLWyvm7H$P7C`bTK?;SvMB}(xWc-?obTvr!GrQQD5XJ&N z6GIAcNxO^HZNmf0C;evh7>XfXa@MzLQ=l>1b&OK-NXmaVP9W4Hl?t zAi*8UXA>DRVy=xRbH+00D`Ij!M#ZXTU2msG6~$A(U*tE(MS`%+Q&|Z1T;h?FS97>u zD6NM{JP~~#6BOttW=B~xAW9*)8;!5H1J?%Z8_+|$Sz)nfY${HjEdcXJAgyI1SRPx% z3J+q`bD2QUUP4zvb$)sz1ND}(ZPlZ2AfKg7Ie{?5J?TAIWd$`67zcN!FBwahV#FTv zWbSQRUztSn0>2q_0RhFPJXVLg58K9*1Hx?MBvN`SK8KFUULY=1cd11n7r}2TS(ku{ zR>!ToU?%VXH49LsR*QS)M#4gELju^@aVj#(J`7e}EcE6|Z|9q(ShIsIK3^`q3qY5^AKHGf3xHZv3S2auEg8v(W1Y5= zOQ>5LN@=Y{WMiGb6M(|CCOxZZX}OodSzMEjLo;A477Y2k8pX zZSNZ9Lr-IZF7}^_B(~+=U(Oc?Oc%=(UU2U+Vn;BGRXv$oN`tOA5RrEOFC!klX3pR@ zO;Y}F1ozuF1f@C2T=kILZcI(bJb(;NY`GP_@Z9HH;; zN{D9R+l~1UfwXK1WGh6GUZotIK^=8ZUIg>5RiciThgi|Bat<{FSR33AF&Hgc9rl! zH7GWLJj~SKRO$Oy7a?W3A1H*Pah7ixXh65VUggdB75H{^AI371ACB~TOtif|V@PqC zG~2?jXi6j0IB3E;H_3rfEv#`s9X==fB`qhvB*5nTDlp&OXqszWQQ{o89#N0nL^J%J zB#jRXb=j^dBL@ZqE>8HB9YgI|UV#|;O2uV&Qt)uVCpdT!9CEz49U2!hbD|s)D~+(` zb^t9{K&M}OP%7h8b*Uo8W|m+xO}3jfNcC-O=cRZ+<8CLbkW zO$+aaDx09^ByePc48SE`KQ!$i7gsaLIbyS9NW)?SUO3g3 z6qY&_KaoQ%RG{oZ0F7L!QW}mJX`q1*Ot3x51MF^B2Xj!eWRv9QRxZZaT)kH@R&a)^ zbg!`Q5UQU4F0b-}L0kKA8@xzb3QLh>Aa-a}SiSTCRnyh%701^q1pocBOG2jp9R~!dNM_%3BcREN)0TkSII{glwNHwIfD=9i@YCr0d zWdS$282{E+KA4TvXE;##8hRc4D>{pAK{=i47&L^)A$Xg=0CWEuMP<5cSDQCuBt_1G z5To|wagXE!SrR@}IFh1hDQ0yFLw}qVW{*q63?^OFZ9%ceL<-iAce{TG98-8BZv9Ao zb|4~XS4(-A1No>G9K4l#V+nPBL?C_Ab7+w{J2ptbb#Qw!9g4Jh34cc<18iFr6^vUL zC!xXgJ_i4zTi||$4xs$n8hrq*HpF-dXsK8daP*O|FqQsQOyaqJTJYe_Xg!P1ck1M) zC9J9QFKJr3P1b6R9F|y?8EPtk0=!EJ6SeN(7yv|311iEr0qM#NP(A;)vNAC|PH6=}Anapd)b5kRw3cd6Ou zW{jWM1v4R1FA1LRcT4GqB&d&gKo_!WX7u0i8~)D;bkdiwMaHL}ZA&985_a|1IJ(Pg zbQ7SJ7*r|ja%@DFI@qeQ1S*CK9u~?01FB8k8-1iG2^3usFYw1zCrC zX^VYa7HJ=47F_HCN|3$TMVALkOcw&K4OMu#bl+=b5gi$PJf4zcRS++aa|Gz?Ki~9G zCZd~cCfLXiU@F}KL5ONK3_8P^G8%gaWeU3h8>+>GD+oOM8r!d2B3Huvaru*FAQOSp zJ@M|YtHezNv)y4bVwj2XkHnKME*_9R8rR_3Z=FjUn*a}45PB#E>OTI z1qU!3L~5pS3FqtG8V#07L|1y055TK7L*yyOU79f1G4_3@b1QpLUXC~_Tlln{_dgZx z|HjQ@AIHHlj=lGGjB|`*9-CtxoMCf}b8JawWn^VXMrKlGg(NE@i3&wXMphA7iTJ+% zgU?Ujf8u^zkNb5!pV!Q{uz`6i#9M7J@M`HwEyTIUp&j^N zbK|CJv8uhEq1XMM7-&GJH;u0nn%wGgY^RZ#9`LxCjFPW4 zrwKJpvXgNU1ExK{<#XCGXf4spoHgBda z;yXhu6`c@P4N+P`b*T#HaktYk?Cj6*3`f1U=+qXsaqZ=jH4B|~o*eWB$_6zG^vaf* zZMA|T&%cZ5SlvH!Z0++1u#<~0?~Z0SborYpA(lw=ULWFe`VKw{IeqhiHirfapNkBU z-T(B6=ex9~NyI}q7CC3hSR2hO;8PkU3wy5!S&S2sRv#YJpH+~d=p6BrnaWY&P~qG( z#dM-PYNM*Ck_$HJ-iogAb2_)U{xA1aPLjAwvV5xKAZ@kolhY9HBQX+wOd75ROQ7}) zRevdWgnS`b=818Ze<$cB{xgny^CO4Xe)BJ`lM$?r&zP!eS~!B^uW)dP(Wlms-5h_) zYoQN~iu_FF9`m-tmm8u9__DP3+_VYLHx ze4H!sXm`>Y3cBPu%=+#P<*cTzAQ{-AHg2+JFUnC*$GL?VeCpAP??Q%FEFK!FH0NQY z^G8$^uE&rEzbImBBg%z=cI&o3(r|Rg{_Orw7+qW!(uxhGW^-I#oLB``3(c8q1Uvc< z-sL73#hdDH{eug-SzB_ogsPL?k6x*4rR+fHLFddD`@3wX)p@#dyJy~1L-np*yf@i; z?rboA_}%C7+iO_>ZPVUAG$ zBx#--ifwE?KMqw=Cpk&)EH~j3Z5_PDp<0%&AOQ7m=ap9S^|p2~g+sQ_yszvZ?4}0U z#%6~6FZa``+iT{~hI{JP5Ho2V6#;?xIu@8F%2Z|O>>lzD19CX~w zc9_Dl1ed?UVy;(dU||0ZqX z8?Or)gaGJ1Sg5i~jEa6fdx;GoR$Fczn@bgQP~wrzhT!8t3i|Cqd00xi1Y=83jd20v zg6Ns=H$=L&w)1T{xK*Pqm>L-yA#fq|fJ{z~C;B|!wPm`l?r&Q1B>JT1xo>8L3i`q8 zPVPwOui?c-3dS~MBQKxL0#T!9oD4aUM5^9Ry8vnCCDJ)Kg2CXFI^vpxqjKW$CN%m^ zAy1Q9S8&R}sl|R*hIIDWg^X`~ze?*;kx=Z|t`<%Af(z$}ulnL+0`_@b17Y2vTTbq8 zy6ZwKEsD*c9-YZfa1~CbHBewF&{Gx=RL~GXQMs);nUn_Y0<4V}AioM9qY@nJ}Jh=jN|@YLrV`3qqGqs03j$oDR0=!Bv1C^r%pG`Sk2H4zXHssVeY zp=3POXK8)OPte!}H51 zS^e%aKWxjRqYqQj!ukHBS5*w=B0NKNf>zY(${PYa$`oSEu~{#$ zRNXkM&*e&3o4#bimv}qow?#EtfhGgMg*&GKij}ItA3Pg_o7U{*&bC+u7H&2{!QPp& zxYKjJ9rs~)g#b)SwuYK}RW{0apqs$`HdWXkGcPGZRWz?mR~sqIoATPwz-KXx((ofM z`%qed)9@)+oZU*0@Y0p;{=@ia?X?%S_K+N-UqpHDwcaINMWIbfgf^Av{g@b*3V;Uo z>i)6Sr_LWlXQV>pQfN5zMf;`G?iVQpt{&|kWc-6E>g&Itja_Rnv&L^t#Tv3CbB(t{ z{#g%o$3++1mIGW|EWzUw840mJ=a4Tf$)022fq)lDSxCS=V{ZygcdPc`YFM9XX5 z!nvRl+1D5;+sesvh24uryulNr=Q@!${_RuG-N_Jt`56-V9QR)Vd;3UvoHtt4b2i3o zd4Uy$(P|9YGhWr%MFLz@tK|d@hWof;~3rm;jsk7Oo z6Xv$?q1Woee*#V#WjaJpl}e0lw1MtZlLVYcAHUCReNB^FYO8MH3n z4OKIG{CIm-nzUqXV zL9YZ|S4+9xW6gq-EqQJYTAcc_r1oCxP()pLo+{9>hOYmUpKG|}lC1SygV+Z;Pv5Q9 zFcu|lC`+Yzf#jmSAgew9uBE#!*sKSYKwz8ivVFNbp^R1~`07tCYDI5^U^*WSfWH=2 z^VYuzFiv+?HwBN;${==3m9w*6pcl_L1a-Y1D0dVxkxL6$z*zyQtl9rfv?*3CN9aWw zabH_=P~X-n@uE^fn-u@p(&wJOqSV7bw4*K3wd+?Wc_4dp?Ng#LUaqfuDMYtWu!v<8d zWZ%=bA;}OE?bs|Gz#=$YDxiPW08?RYv!S_7t+FJ8H5QS!`2{G4?yD)ue0=2_Y&iCc zeaNl^DGZyY0|Egy9J+X*YP^H&#L<0|0A`br!Ka8o)<;hAC8Pr>u&%04)>4He-(@yy z6MP$LDHG-Ap4tjz!i&S7Ah-C95m*9+r4)_;?((d&09ZWuL_@0rdhU$(YzU`SPI6wl z(6(TpsD^)hm`7{1w9FkCs^WHgHQ0U?HL6b)2v&L3I01}Rb7q=+&SLH0KHxKZq`}qE zUSm4(x;Ok|*=Lj6wOh_<{$)U`z6A5ThqVF`x-}eMGOxJpYRe4Ez7p+4{)3pG{+@RD z-L^owHCv_fX-|{WsH}#y>8XQ2Zp##GFGHU7plUVTQ2l8rvEn`_8EiC{sKs-);}e-7+5eHj8^TdtES zBujC)5)A_t5IV%PV<_M~`uT)4Hy~MEg+G~(wvY_L9 zvU+6Ae4XWIZj^lsNCa2c;7b|#*`0;~U*J}hFyq4!v#O;_Xy6Xn8}NFpC92a4Z}r+8 zXoEnG>P@LHN)4M|XmY;)5ad;Szf@+ih>3_y$>&;Wq~gGoW1a7iYNR3FCBb?oyH>Ez z_{hsQ%mKg8rSURe5Rt;Y80S10XEC^rj5-@EDOxD5*{0r@#gX~+o5{=8G4xUHYD9q6 z8E7ejo+jmIG2qzwok<-^f|2P@jcGrlfgo37ML^YWZ-FN1(QqX+49n0&vc|~Y1g-=) zsk#?)h+7!thl>i;pgM!}ynq2chLTb95rfN{l0SmfsNS4-b8^nBx{?K4g=ILkO|1!* z^7->Y%(8>8l(Vu(zWo}SL6MVh;O!M!zAvlm!T`TogG*EUX`h-&$!nzwS^t0YvTT3H zJ-X1##hrlki3A!+E zB?T@4HMwDrD5rm(VbZRS%-V8(3qUr3{s^uPuQ1l{cj+O<2WGYATC~(Qpa2|yIP>(B z43+MMH`>cAj?0aIn&?tVwmv1&VZLZ7dNYMo17BTdVYm2o0kRpow9saH?fGW*E}45} zQn!ky)lQ?eoDC!Q3Y+Rb${}%h!eIrnHj^l z%Z}=o+HnNDqV8}}lbNcwSNNr=CLtBGDqMkm=hhK)fI`3IG=+e7(C>oTkOO^J3Xy+u z^!{6e=Tg;Rq3>J$>JaQJFMD*FOqU@>3>BTNcI_LrZ`09QP=$(uVK!lS^DpFx9Jn$#kT|Rr+D9QJ7Eg z8_%D=f#Bhww`?6kjItjHt73gD$cTc?Bi|eoJWQJ^QLkT>D}=u($*GAyz{q!VUV73b zjYa>oM3~SgBL4nCB|UA47jyh4M-;B=BQaG+glBtwC%{^B(eAb2mE24FJG!c?C^4=Z z#Au7DY<)CGvBN|dP0)i_4NdWZ9jlnEv&J3EK3Luk6>)!dzTeX#E&7u-+_<%zBb; zV!FJs87i98WcO}=B}?Pg=lbl|9Q+DLy0kYBP4sW__|YZZJfNkk;`F=&7nMKjF19i1 z=<|iDPP5wu-}djXs+12s{eW$a7x$5_|1W#rukuG`fM_QU8>3+@rVdkit5!76l&R9| z<(>XZhUiQhpTI;GHfQEJ4xESk7Z0-oWs3-`euVzZ0na*>1?aLd9Q1o8oYumqRr*Vb z1bV>dp2weBTY-Pp3x=C$T9BVGn$&YmL))Zr2^A4WMqHC5S~CC43@I$q)mMG~!s3Uv z8u%ziiz8GriK_Vd3O7Tv9*6(%3i_P*NTX}wI}en8#zYv9;-*=cC{{DYYxT$P*q1MK zQb)d^bQe5QPcmMhHKQ^bR%Lk@zjInuGANcIWymi|x5ld;GCfbiJX;KciWFjTtDfC3{ zAZ6Z_E_xrwH-KAz6llX1sHxEUB6lXU|db8b!1IV>|34RA_Q#OXs zOX|$SKA-sqU1quMtBOPVO|sQZ)#mqjlI(A#q*9Y^XD7msFbH!uy{K%SXB>H;({gz=(>zSKM~@4bi}6Ugp|cP*nLI4b|NbjPqJ}|Es*4!EXE&wY2X8`<%JZ^ADJ2E?Av1awUR*XFsGXh8sTI5ELGug$ zt7u-cof84|pM#IcZizkoe7g;r5{3~j0dJx1G`PEZ+tEu@OVB z|5m_pCN_M!)wBYQd)gSQ_-)OsZmWRSJPOawxjve^N(H`~95Tv)(r?U6HcncnCPS$G zuqU2&G7emODf7B4;zgtuc3Knfl@y&ri?k4J6?I+VVR}lVLszXSk;|ZG-)f|_RF;JW zpTV?to%uuU$nV5Gux% z&%aEO$26!UN*k*t=~gR&uf4P-9EBXpdfiq+c_n<$m@~ykW0+7AyqW?Zo(KrT0_3F^ zgfeKd*O44$FKAij??&SM$}uGCK1%vTalO!nFJH(smx9g@X`;DK8yF%dYfEipt`3|Y zoO#&v{`lfM3@{I*Zu%uUkQc^EEa*hWvBWFoHzZldJAjx*nDsOQEYSg&mhW96uR70 zF6OUIE#0rQL+LFd^$gzNF@n8IAVvlTzS8b8{>86?{@gP;?(l?p-BOaW>ywx99DhZf z)#>&0Ay$0PaCAbn` zgts!l3$@X)LQK{1PK1b2-{S{3g7i65^0liNx7#?2X%(NIca4o6?2ro$tK=Dj<;(p> zsC~Z)A8Y0Z$60fUlz-B~=X1k6%6xL|#+UwbF#e;Uv8wIBnFP{{hnk02?f*Ir=%NY4 zuM~zoe>C~hzMDU z%(Ta#O-nAbVZIjk%KKY>-KYE>AKZA%=&xn*N8To?pZ;yo!bgY<&xl^3&$4mUp2eN&G2J%0hwurP|j20UL1807~Wl_mkvQw*~f!a`Y1ECsjzS=PUJ z4N5_du5bXicX-QoxC=SiMA#`bCFzGc#fe`?QZf$$o5cUx{NoM{v&6sqbyx7qHAhd% zn``_vLTrKcyWHSz&K^f6mPHeH#VBpz%BH}WdyDpDfP=rV<4{Q3xjTm5W`iRv>`?mM z&lmdN?ov25-+LHZtXIf@^JWVlX}Kpmh>%rn4{RhXnm)5RzLY^d?6WlRFETPZeg6_{wO}#Knbbp?^zUVSbrQkqnMIK_NDCK{s_s{IwPP+UNm`Ot zNr3?}fK4&B^W_|$nh-*8DPYMtweg-^-5D34uAN;masRFJ=g@E=2G=$-gnEzZW4*W5 z=nrNpW3Hq~e-BOWmy?0oLWeJPGl;_B>{DX$<6kV5t@s>?qU~)$WXyBc?!Hua#PX>K z3l2^N7nN~;+;H7M4fQ;XHu51ow<=CkD!)?WdZxDD#|s_w6ej573FEcLCjpR{FJ;=<(UnI^6+N#mTJPqD;YDqaV>>BWi_BmlUxm{kZHO3yT znTj=5>*3zgj_H_YGuu^Aym*a|G`7lC`u*h%WK6FZ%a(_8rx_Mek~=8$JM`VQgBj-N zF!`x@(2pTmMrkv2|FJm+w-$*3Ex$f=oaOkzeiz;?FCY4V(NA5}aT33b2nWHXXE(!@ zj%Z&h*7G~csE&!tvE)v0)n}8akjx&g{32TcCx4ft1S_$ICIEOuaN(h5_UWL}zDtbh z(+y=#3fK|nvn~;htOi z+asA74v{IeOXhXl>;o%gys%NUuauu@;=|j%CFT;s{S4pDH6FeU=p3QLsmn{Kzq9xo zJmNs9%m@%hRi1BKHVoaNJIPX$HObn+Cz%zCHHGEtriTaE#)))$puVXg;0F7F$5DQQ zJ`0tYe>B%j^Gwd5TO4)P(FKd3+&eoamQL3he+CPqBRc&Z%aLlb{=^0-CBRV~IT>fA zUwwdV;SYwbj=MrUk-ylG=e}6`5MJ8{y+478jIWhDvx|c=ld59U>#Nm zHj^;2K(5m(9mgQh!+*MrpHv`H`UgxOnppr%=Vbm9dO?P*u?lIMzgK+ZAxb$vy(S>@ zhfxW|3{zWUjW~`*k1HXZHx3~`xI_{VZ}#@>p|FAGMv6l`DOiIx%{joBE2o&OUkXX9 zKTO=Mrr5f3?m~E@MY+lnI4S*OhIvE{_N_&yK05viQ`VGY84o_ zTj($%qocOIG8}v7pv~|>v%Q3_OsyVjqlP076=AEJq8g?<+k=~d)e5UOqYZyu z6LeRfi3tQHo5AO8U;2u1h+0O^{tbD3r$F+W*$Yf{t2!sk-noI)$G4>2r_x5(_vQG< zcM=@GiU?`YuB3@7-PN`y$M7gw$S0^0N!Nn*smJ-ouSr;ZZEdBFe7_6h8?3io?($dK z7^##}O3g;r>wH(r&ZMRq$URro4w6?L2Hv1ab$F%mkFguKu}%R4zpK z%BswBR0o8)oGhW^8!31sCDPr$_7`cwYgomFJde)HO)$AT)5$PX0E}EV^>gD)vk+Qt z!|7WNW1=Tk&N1oTe)?aOR$FZ7-)qRlI{Aa>~=3q!Y*Bj$sBW_ zY2wn|0WYiu@URwa8ER4$+YR-q$`7xt5aU}*`H8z9oF+o|WbV~_sc3$4#@~y2MALfv z0nC<`ZaZgY54rE6fv%3_rI(d&uq0`(lMVfDNB7OEb7H(R zmF0h2rxrk-yEBiDbJU+3YauG96kHmMOuG~AGJON@QceXHhWp+07L6F>^VFJR^zyOx z=345@hzE=b zySRC%(uo|xAW?ICkQD=^pxJe2T)G?k@zs&xJwax@?J`^bsWZp|KTyl|l8{*_IN|)`_ z)o-AFzlQ96=x<^FUcF7hM%hQCaB)=V2r}=TCdp%kBho6o0GJE+FQ&-U=tLXu!2r62 z9aH+-tTUna@gfcd(WSJqTRR~&utOV1TQM=_LKAi0==-#8Cxg=LbQS!$W*oHszPT2N zKWsM68;VQ`#U!(1LIWp}XIXr&tVB!2Wgdzbd**F%Xyd=8Gwv*8*vg!DPf)wuxj2aK zmJaY|xt+suSge<`9L8PknY7$p$uRzln_7Y_;lp&IpQf2u@)KR&eFgKK17sMLRx<4Y zD;a^?d{?O9Og1XR$I~jKm^YlmTu~z2;-H`wYH@k^WiDl@;E*l3OT#wd&m(Zd?My22 z6|?H+(FiRgMp{zLZ3Be6TYBVd@47p$H?vx}*#o8Q+AS}(x?TzAoO;fda5brG$&Xmn zX6`ALz4m0*LT^dDHCqH+$2e zqHZDOKc3bPg_3y2J|D|z=ecRXE~f+x`Be>740B`08tjBk2A&0q6b zv@;O6HA19fx9aje5_b=hb0QHY;;NYfS{Ut|P>bRS14{ZB`5&&==RAl~D@8PHYZE4< z4Fmd+xAjP_!tav7dny7+V--47)t~*f`p7D)Jlr->85Ep5k3yt-JELs0YZ9=(;U36d zzBT0!FJ%dW6SFP?OFG!)H+P+4KW(WzqHSX4f7IY?%pq;L(mgGjMY_ZOE|ml}78js-+_$LOX4F974_stmcRerit!}Wu3!$)zVmUXVi(Rb5K_l6vu4%pl&kG&Q^ zv^TB`zvb*=l5HpBuJ|IH<}Vp}y(xWyZ(QrgdK29=UzUFNVT^phQMuJ>HuT=mWOYtO zgW$@;7xI*(ZE!J4s@K5DZ%B2xmRb6QS=Q$gczd>4f9w}}ot^B5JrXW3-~1d5{!&uM z{c}2%ykA1Jxq75xTsf`m&8PEnM+R__=K;HO5;3L z5fhrD8D05WaC?1U6ZU$aPj)vHMqESsP#VZ8+CuT{0$%?y*-^nfgN9;4a1mFEuYS|2 z-unn@ny)uPYp*+LbexMSvrTL8A(?URhay+78?1w>4s%#@)mA3@ZMeTh&P!G*A&GYg zQ}it_uhDguaeX1KA~@N-@~FneTwy`#dx)%*@~J(8lI|zLBG!9OYD$rgFJx^jLPl$p zIy~>PPN~sQm2v)I{Tz+wnmn(w_B{O~9pU*}E4w&N$>F0NngjR3*V2iG#H5Fol<%Wu z^f1#Ac%UbO5#Y*`b;x)_d+>gMF|g;YVK4hhR8YD*3;)C&YTfuNy{%Wz0|Hf^kkx)j zS)Qf;!$~jbbLYMeL&PN+FyHSD;Td@M1k8H++3s_OyXB~eo)tjb-=*WXDwS*Jm74Nx z4yjP<4gVz8Q;A*EU5y%^|2WsWT|Th|UT?mpV`;VadFV}}n_0?vA2>lsQqUWy{QkjWY)vl&73HZvC7^Kd^qW?W;mgW}jJOBQ*qEJba zD~Hq*-v9-5Z|u5Ns$w@x4)I=rmy7XyM``mySmc_*DCJ%IZe~RKQ;$u4O2aY;Lm){# zjvo8uRfs_G5H3Hx8mAgVGRtGt)%mII$@xq9p-EH5C+i0Hr+kat?;=m#3i!u&0R}Ye zBDgoHZV+=w_T~rJ11ADi4ChWf8$npIQAZQd?M)S;(qdXVI zKvwTN`QF6*7FKY#bSRcL4g13WL$?md##KC)DWjzA7OA+EWEY{?9NIHfr9k-D={GbT z8R%^!Bk(F#iRUZNf^5M(XU|J(ODBTJb8`e^( zbzuTXu-grZbio?-Z22@2ERuG1AKvL9>YC$top0CzM1^;qkzYyrg`_A$yXHpffy*13 zP|xTszMCy0@pl$M$)}f0!d8%5Ysgl_fioLFsalSi1NL$?Fih-=8zt&#pV=% zb#ZeG)Co_PWNV*798~gO+k(>mMfo4c^1!`f`JMMfl!&?&(ro>X?l0pu(Zg3^7L0d| z{wr=5@LD~kgR;eLVWG0qL^aJ|8me)Fs647L9X?w>kKO>V)SpIm^FpP&9xdYYWClSt zpu$Z`l!bYt|3@(^W@P1=&WR+Ns(-5=kp_!%%$a%N>YjAOFV|D2o%cnV-{k?NAo-S@ zU+iVP0jGU1u}pkJjziuy0)6t=VtZ^r+*?aCs{ZS-+_z;-kr&6RruZtOqq`k!b3zgTT3|Rs77(R2K5ML!;56kdn05oa_55GzB$>0JzS-- zvf7j!aHf1Vlvy}OD)(nNx0+ zwBOpTcblb28-Q@=SrURb`t6oGUACsjzjs20BTI7>%?xn_T9I7IZ@q&S+9JOM4;~wN zJeL0sqjy;st#~`=u`U#5{r%%d+Q6+nE8hEqQ~|g@#xD@<(1~6mGEOstyh1Jw)bagG zyp^gKBw+CgM1SJPR==*Hu1CigRKye@x&KVbaZ=uiHRB|aKzEo!`zFwoWNq;bWcRa` zeyt?btZ@|_YWB!Nb5rYrV_Z_xd7{%$(ByBZ^h}zJ`B2#{){oDB(qB_E1^K^bqNPDM z8h}gl_yD6;=Io}m9wi>NA|3x;*k`WrSneu+3XU9`_dWP7&nJa~1#aj~`$oSS_Urlg zUzceW#AD~?3I_Ux@IMx7>K$_@VxVC)5p3+dWpi=-K!y$F2# zo{|jN<?2$PJ&JhA9~*mlSE? ziWhRPx=F#`y{_~Q2Hx^Ym!*ooY176o)_&yK0{-znoV?Ox&Np!=c>6kx*n8hSd|iQO zy}!;xdiFZ%ny`h{r2L$=T-zh3?IlIsuopgdW674Rjv((aGed63W348G{6DG=sqsBZ zcuJ6Pw~Y^C6iU=)yHUZLP3xlgbHhdZ%B(B+mX!%(*!OmOZ!j6~qx=R7FL79%@$8(l zoRUXW`{sxNvcj6JX*(YLjuehB-EQN&qDn`6d7@2f$~SZyLXSwCeTOl1e!>N+UdC!9 zEf96bWbwRV=bx}?3&y-VB`(pm*H#T*r?*-8wl)CDH@ksj@vHbl;1IeVP(f`yeol;1 zIPos}H0x*cdWE%aa4tGNOw^8VdfLNg>)2oMe8i;UN_Wz2Hb8CL|LnUu2fv*ZL!)O!!6~hww-Ag~hGEr83|ZO3)}0-R{8XY+Qxlg38|pwryeQ=Y|!Kf zAB0xt28?+6o|24O76btM3qYmAX3F#*v(e|{6h?R{8utMyR%&JXGG`|vd#M9hOvG^N zE$FDoq3_FRpyzDEaqVK5!v9+@KxRP_{(<`QerNx4`Gai?cAs z+kwWDZO=51r`iZjChN+K&PT*Y>BpFBYm9_Ig}2gHrB>*y@kH4mZDZDzSa6{oDeElIlIa?Czs;M8w3ToSE2PEc;7_+5O-ReCxxTTR{>kPSiIQQSo#v z$BXhHG#vp?*4IpKPfZExiBYi}l0SIPE%w=Y?7nfFsrj$PYy}M1K6|ED+FkBj7*s}4 z(+vT2A8xQ*nK((KU;U8R-KF)4CmS2>ZnJwbZ|piq4cz2#?L&Ef@*!fY+M{W^W9I|S z+5d#Cc)YZ(L-R9zdUK|o3_3BfbkzmiPzW{dyRSk+d|7P?yy-H1KDWftO^A8&2X43qV^F^8u9 zW-WRCatgS8I7&$=_geJ9!wQ|d3Pm0T$aEh2r$3_y=mNvI@69kNymr)#<9lqYa3N(q z!&u0e2I|L)>~e`y4f$v<0`^2u2@pv+EkV(bCn);>W1)Z-AGS^Mvj7TS^`eTSW1pp- zM_g#tXd-BJua!#e?hrkA&N3a{#7N}qPs?0`#a=4Yzh&TE7uonYcsVo;DQ+h6bw=90 zn;(_dpm+h;x+@KchwaJPW-zAoxfMJs6G4{Y9JPHVn*J8a%rw@xl*-$+` z!})pqr#1N1C4%Myv)-v-l#m#I7G_@nvg7y|ZlkwlMSFsH&mPhy?C(1ENT%z@ z8xGX1dDc9%k$ zK)T;aRnAbr#ICHlFI;Ygmvs>STzxpIU8oe%Vzuw~L-a-BZH^k#UORlrHHW7&4kA4p zn$R8^8ppF|w-q;F-r)ylSUn_3#z}cf8TdSaOj+4s0e744)ML?=L#Z9y;bc9*L|}Vg z!2z+4J)cU4`l~%D;fqGlSc`7ROR6{i6`7Q}4t7HRWb6L#=Jo(0ARb$K4kZRvC@V%L zg@E&;0(dOW3|0%A4BrhL346+zpdvdx8JOPRaC*n~nPZx+LaXuika&$?DAqGtiGSBz zip4zD95ktA7T_T!B)a-J&7*X(5>6fWf*o<)7t^^42JL1Sk*dW@-S{&zF$vlRj1zIQ z7E)(BbkX7ifPUR5V7Z+iZ zM$4Igftx3li04a+{`hsVz-7x3L8G)K%|pjxrFGd>l+5;uP0dt@Fvg!G^rVqV%dHRL z`zM>tFy$~J+zs`X=9)5#-RHC{)9Pd>c;{9Kwz|f6`*Knf5!uvov#%zeQ2g z`yP|Mxv}xo*;hdNI9;SXuSbg(@oLlg{8N!!XY&DN>Af8Jtp+`HT}uJ2*=<3Zr0h07 zWV5qP;NV-8fdWP6^vfTbBgUGTw^F}CcYF>lI$Aa(+a4C;$*Z^d-!%tXyxe%sIHODp zbwA})>J+gR_81chwtF9>|BaQ#Tb57RXho3?v$S@>yc{D-2{s9`*&p5HGzG>&T@@@M z#uE`zlKW`J4M>MXx396-^1oqKBb!Gk+*89%2cOuv@G*r4E4n*buuTTi$a@(LsWo;;*V{ebjh%`~K*SiPy@EXf6yez5AVeqqd)_~(pK{={!$?_PqTazZ(v ze7d(TV>Dm+c}!eEa3avHWRy;zar4}5zTk-Ix$|#q+*T}UK~I7R^~Dk+NFgpKIp<>k z4nQ9FCd-xn6G9TSBtC1mY`0U&8reDTu`p8RzNRP39i8c*_3VA7ng83I+sNm%Ydh!s zaPZLMQSBVvTjy%FuAF9L=7Mhdo$XR4OiTnl?N_wr!<0&)j+hiQXvZUT`}jWXuDF}# zqG5>N6zT-P^Jyl0x~`tk@JWX}qTb~5Z50E3K)Iu1i!amDv2lm6xYv^J?|d+~2H=7D zmaEQU2jd2vVqtdANbY<}vJc3{$5HB;5uw7pb1Qqj02-b8xP@s$9_tSJz)zsWl| z^ARy641$^pg;0zY9-*dd8+l)Sc&28k>%_J8bJNjk$Sc6O{EY9Z^A(fiIZ?ZMSUI@# zj2zIkCnfr==Bps>WgOKvuS$y?>NFxBHUZhn&!tj&Tp}+X7$3%9F{L-<86$Kf@P)#S zDL;#_&hSW<$3UA*x?5WQ15GTej9H)wBXhzx@qaYGa3B=3ZaA8PDujCR6wMHTu7Q{2h_T_~ce1wr8&4M@HkWG3EbsV|Vh*!# zD@whBb=;k%d)%>ePbF&9`owd->FRhcKlGq}To2R}@8rsKThnTPLniVFTQbq#Hwg{g z8|N*kWA{yJ`3nSeczgTjyb*8H4v40Z*;9Zpu2J8He2+L6dP@5>XPVGl z2Bt>XwFsDusPox23_B41fDj?Q1*gW#&|1zRsSG}ckKf=8Z~mI*(6YO?=pP`@L2zX{ zyEy^&@9$LJ-l-9J6fzN(`c9S7{bz*=-zZQFs^uuVK-(k5%2UJ%sGtwnOP;spp_a4q z3mrGg5^=HcOJLU-K4LfE@{yBEj`&LdfRM$X@pv0w2Ls5wdYkLY!BL72w7|=kEoNcK zeW8kPP9`*DU`AN!)o#SR=%$^=csxT!k*VeRy?Ei>z;`aY^`|mjac0sZV-0vwq&Vhk z=a2wlgt{;;2vc*V_CS9B_CuV?)Zs{LZ&?>PSGlj*_$uQcy*BO1-4pJPQ6<;?df?oZ zlS}%k#1m|A!*A0_*0a=v2$Qdmq;0Cpc;`8RkrlCp}$;jcX_dLWG9(u&8F$1sMmkHhfiZIRHWC> z7-Q+3q00Mp5PCqC5|39iZ)jNxGVCZ7D0q@bS=Xjy`cw)9akQ z9F|RB-ySeplTyl;E?!T>vqCXjV7D|zqeRvXeJh8?iSS8LGPL3=YWepMM%!1(Y!=O3 z4ktVAaz!0Ljd1Ld9iJvx^6yxL!r^w1!vU{4%>;STm40zt;JN6=2-E_S!IB7#*bob%SeQH zw%!x3hFdqJxBChyd3oVF5x-dj9%S=g>*ey?wFjp9#v~t~BG--OniZ;Nygm1!@m*Pbgg(9lq$HqC79bCfqr?1?qjl zFRdF4#d!9S(N_wAzClLNW(Q%4LfHW45v~ibziq#nzf=TksW7PnkC^hocfN^vegMWm zo}j{51m34}&oG2(!K#x)sHruKku7*4eWj*|r-+K3itZD;xU#?YdJ)b1ug(=dncZ_#xQeb95?^{e~h%LxRgD4>g+22M#O^j%z7!J;SU z+~gT(SjmA736U2K$fZ|4y8Gb&0Bk^$zeSR7O$IygCuW9Hya5ham1#`}sRVF1NgjH5 zT`QMSlWSqrVF?~8(P6|%w?>x~eQs&a_g0tNj7UoT14Y1u90U)mw*>VcTycS9yHP$O z$OZ9>QXnTS1PM6&+a`2~qdi~rd{eo1Kp}#*EJIidsRR{J9t#qm6$&gZI5`u2DP3UD zTuXla=46DbsV&yI-wR%Dwlq@cM{9$x7IK8@4>mn2h#-(28ef!;$SWC=-X}sF1_1@h zF9Py4L14C3gi&|{=S(%tNmfe16gF2Owpb!;)*K^rDFn_pYcYRP)*`W1^;RA3WJC$3 z1S=mtm=RKklN()myAgHW*;sF(Jw>b5`4r=E(mc)}I9JC;Cm&!ws{y-d{u?L_rz-m+ zG!-Pg=Ne_RYbyK>RP;_cWxftss^USAXQS+GfrGOcSNK$CRaR#A0Nuy7;OQa8Bg%9`Bxo6K{q(w z;REB3KN8N}lu8${J8>qBj|Z%Omv`4YMqfaOD@;vpOL8O&E!2 zsV4!^8X4feRyp5S>}S%Yz7?)g_cOUzIWyU18F21d>Q!`*(JFtvD|6qGY;n}QhGz~` z@J2^|M_uz4)C6w@r$MK!$Pxba;!87l8ebJK*eJ(Z=NuTOJ(l5Mutb6jER zSywShATUwET@&AaQ($k^@iSs9MGold_IE}*HB`^;Wm}w!FJ_MK*&#>INoidpEmUvL z{X__R7EzFk;WiQ>wGM4vYcTiYHd?bDDqvFXL^zFIt5~$0GmnK^7k#izm&-2O=SQHyjgkxp0M? z^Fl@qcsD!0$|)6DlSijV;6S6zb|lKc?iT@Gp*aWRT4^m%(rtn1re=Dp88r$1)+(EIvKY7& z>qIKlu`tD0*IQPmlmfPf@^VcJcTRLl@f1W5r2rd7p;lId7a%x%QV?6xyCrajavTs$ z7*&4W)GU^*Lur!qYe_v&H9j;6KnZSvdRzeMz+nBHhgpl`I!=5^21(59K2L!p0UJC- zTvIn6BobY-b0E7|b2w17a4iI}BPxKwHA-*fc2}urK^>4uPhv>8ZZ$vv+;I1M6dai- zH6n-PdI36izdb)3oEEenp>^DY4N0NpO-doVZUDVtPjvCx<~*>8jAc&>c_&{ETq;-q z&Ji7Nb7RP?o;OnCz8b5%tTfZ&qFoPD;8;3)iYRVkAX9*01`n=P`AJq4|4zo;i3#Tp zX*>eiGDd1+p$4GawO%6_coLuDx=B)ECqsOxF*Axt5KwHYFJ)A_%2O#9%s$_V0G5g==2vYi&qD+F z>HzcL$70(9ngm}x({}FQxoVLk+Ap{Qg>zlW$w45Lrxi~u;SPy<$RDxbLSUdqj5Vb4 zs&)RUM?7Wx5kL6q5e(KArZs4;RXnxUn?0|+Csbqd8$wOR9=+DtgQs0bIH%n##<>uu2L zz(T+Gk}3H^1!eWXU?u;X+!E;xby}n-rw;&O*(x8(XG^}?SqAV}s~`RI7z_%YC1Kfv zcqAYCNGzVkI4@}swiVH>cqapQpfE+1e=~DUSrr3b8Wbj2$N1cD2vwbr{|SuZRuWlGd^^KXMF2`u(KtmYcW>EgN(!TCEOD;Upj@C&IZlMR z3npUu2m|f?TTU|NFa%wjGS!6$@|7++B#7kxZgu_I_;D2Bdu)Aq^GUv1yK}th=s{W57*6DlI6F+= zz)H8&>Poq+$1*dktYK$6s2l8OM|DME&vTx_32u`Z|=RAsFNxh*(StX0(;kwwbU!8hC_UuOx?W;$_oQyH5w>RDVc zAS?bs#0ongAsYfvG*N#!Vq^#XcT@_@%S}@JF+zH9mkcS(4RUK?%XBLwaRZf?Xb<8? zeJ?9VZ+C|vFkibFDf8(;wt$pp6ec4&-Hwp4byUP{al&^R{sCnq=zNjac=F*Oq2om2oV zo^>90upCHXw1scZ_c>s9SMk?u*K@^PaD-iNDzAy|%xCp|OGy-#q zK0BUR$~VIvmTZ`M+(UJ@4@3*{^&Hf{b4YZ$p=4`}LoK=m#8-XrVFq}Kb~1gC(MPOj znl(;QN*qKb0agmRf?uCBoB*S0)N8oDrGf25^)j-Egv;Ix_0=6sW|k@+hVFSZV449^d)R~ zBM19*&sg}bP*M+Ee`oX+8vscRk6BBiS74h1x^QL0juqZq-YhoB2wyv6J}#$(Zz!tz zq)A@!0Vfa@P#ht!8U<{yC1=cCZc?^GL>6pS@pE)l0&Q2liD^S0@-?Zas6;ixc~;|d zJqW-Qzc*`K>ve;;)C&Oz?!X;`<= zvQh3X)USG#|fc*Ed)NrJtg!Z7zpQ)cRej~Pi)J(l@bl2UI(;RGzHZ4 z^K7|OoLx+;ydX#XS4{VK6(Gd(g(Pc6hFgc&&R!%lgJ}G(a2YUyO+rlK_6iadfNWxl zZVwlX#v^zpp);Vu!B}%1JYop6u^^_$F$KH1_-Qk%?kZ$N`x>{H#6ceSm2smBk#SvR zekZ)(_)fSBGfMSW+cVi3GZ*&I7$O(wvIrE%6L;|AUUMj4hCDocZess#$`I71Fg){g zh%LdVB`*`fJ}#P@Mop6`q#7Wsp<7H3UUY@e$}gs422hP2ISt*?b+Hdh0AP!4HpHFIurR|}=}JzYZ>lQT{T{!-Qa zwK^J77h}5Ngi-dIT3l3>NElkpNHWC}`9#yfJWi;tLnu<@8*1AB1asav&Oijp))GRV z0An7L(+w^uJ9ab&yE#Dxa#JFRSyl{_gGV>`IA9PiVkazY*9Cz7ItkaQRcMRE@gNy< zxi+j&-abl4&^nl5cz0DKP9P;^GUnm}8u@mHbuPC}ii??f=9i*CHv({l#JO$-BZ z+9)h=zD1wOYbPBU07n^&I~A6e30IIX-kXDHTqaZej~-f=&Xr!%gaQD>lVH zS0em|s!|mhd}BTIw@n%+oiZx_6$N$vaZPKGt47a6fi)G~m1(I3p;7`ZS~jG4wglEG zh%y%T${3MPgI97sN*6gBvk|W9b1%8IDoO}+u}9|S)?E|1*lqdX$QHVeO-gRQcP67Q zIcQvcI9#7Dn=a9xAtQ~3?PbY#T013bhbvMf+ht<-t5x?IaxYqvEGKJ(tZ-JyHWvdH zs#|mIV+IUo%0b?LdR^#tVfQQx6mzbvE{vx^YSE92_V}HC6g=C|x~^S4%e*PebGc zR%8j>4hiZb5_4^DmIO?5DhZHFksRbwss+7$w@NzMuLs=V z061MoyatO=u`!0x@^;Uy0d20E4?#6!9wQ~0#4<*J2y21ntypyIx>B2PfLp|?S#;cL zqgV)LbS6&n+5si1{csSfX=OfGDoM_58B_Ud#%D^QEMVeuhAZP!pHOzMKy`5?#%{YD zA6q$;jwiXhEMTe?ijo7{USFr)g|3KlWKe<26d2WZYA^0UQE7NV>zV9#vk#HVM}@DHc+XS?oC?D z={$1^-3soY2NoJ1TMR^^@EbsKol(0`cROwr-WpF0r4s`(R5zBaj6DhsAr)}l-3{aT z6*ue(N)w)M2sz3Lh;-oh?<77*5?LyCLIn2LV`7Ef!b@89cMSHVky2(W0WZ`@E<+<1 z!XKPaPB`~n#|Wky{*3Jt~_9~k_UIRNKobyt{ZEF+G48dqxFltti$3pz{9&l$o` zD|b~N!$&my@L0@CXgj@17!n%)3mBvLQv?Mq2wn8Z>;;biDmoYnKpZOcUpBkCgidTH z3S81bjU|cd{wwNIS2H@uVKCH`o=p4a{w=xjr3I0FXEAElD+$M%HwCz38$Xq9sW{E- znrJ`eIuT@kaR~vmsQ6S5@~89^#TP*hat^#6k0BJ z+7`ht)n~+VQdIi!&=nV%hFnIQJxOSAE(I(8iDhG%3TdjU849vxCU4}xd>_w~Sp#~h zxLNAtOjb_aCk{`zBt?PHn+D!neqUoMo+ex2HcW^RO=v$!U@R!SR4huu>L=!~kzt8Z zdL4L zmN-X?!eHQ6Y%2GGrWnz7(@QY`5kq9D`Z4NWM>J%DSQny<^bsJzpi1m;TMu7?J0oAA zWJr1-kWKwaks0fCOmrSY<6J@+8(zHfymqYH*L9gsvJb}7(l}N}pIt5IQDF3c6%k{4 z**K8PU1U(PRt=jR4NoyFuWl&QOPC|O-EoH%XjWZZ+l&s17-7dkQ@E#xcA$Nlve#Yz9A>vQIwBJPF?&nF~X4 ziw{|nz$|hDVpd_ZLtK5w#6ZK1i48uYv~F&asTG_5E zm_Z?L4pDGscz3J5RvGy+=?^SghD=|# z6Fs1aR$dil0(W8O{S9t$b7iDLn?A75Dj3lXhGTkM2R6k}wLQH@&KlA3ux+2Hr6s|> zV^3Y(haRBs^K>}65nHNE?gBwh6LXk|iZV`R(LrL~@NZUq=r=((eOwo*cPNy%upCL! z*K1bb%xXR--X32;JO=3*swvyYISL zr67R!eKsyQ+HjODfJP6oumtaCjBWp|0dT`aaBs=r)el7_N?_QoN=5%Bie9&EOaj}> zjw}y{y>yn^RXXh?*BbYnJ9Q89asYGI15TAA=4qDag?CSAyi3N!OosC=Y!~r2CqU)|vJp)o6A~ z^BcDmhDznuOBa1R)(8#LJ9JkN)=8q@&vrZlYaKC|KT@5~r8FRn16i$M^k!CPb3$_5 z2u~E+%o8<_NKan6?;EI|CuupLM;L6TgLKoLKvC*h=O_B^|3^d0tR5}tXH(qXFvH?uT&T!sftVPN1BWCgaFeTt- z@?@#rt0r$<1ZC7*I$#>UeFnM5WEO7>-6z|^Wh+(iUP3scIVM|;IAAUeVlx@OWoQo4 z{dJ%XVrT4f=P1p(p$T1@;ApGs)jNvLfl1j?OJhOyfeBscDjj$x^LMT>tPeZeRw5#h zLjgz@{U)v)!8buG;0BwW%>X%ETq{t?U;u1s%^)~=)fX_%C|Su)&~~u)ct6NKltSfu zWmfJ;QET3leJ@uSWJ2tU&XuM6?0=$zN-n zl|MAC2VNLZre7aWfIvTPgd;;9ds}{9T5Y|icXhhu&H%FR1sC@gcoPXFY-M~v9&%TB zqAwO|omZ`*o@%v)r)aVreiC!87dX=FtsAPS`*f6%;5}ii6*-SxBq`(s9T&*hnrvRO zT3Y~KPE5XPwsT9P1O%8_i%-RB=|J_nK}x6EJUKr-pANDpeo?0qw@@gg07)Mm%MAD| z#~KeP_ged*%SA_=o&^3fw{{7L&Sm1Pb~8QW$}5uTh-R^Fuos`!!3E4=9SY^Nu|y() z_B%>)sWlZDQ#s`ps!7%BjdNoTAxxX*uo4>%ycb65?Q1n{69bj%>tltFl?`OxPBxRd zjas%^@)aF&QV`W2d^|X{E7%vWP{wBr` zv^FoI??WcY$RQ8<93dChv@-wgKP;U3p<)$neNY+=2L?l#?gEm17AGFVyA1YgkVtBt z_6CIn_00i6)yoG7m-%?sw*Byd(-| zdlJZAhb6%eb30qH+d4|17KuBcw-r>8w&=~*erX(W<1Ro zbrpQ7VJgO+C_sF>w+iN(Lvbycz#xdvfkX>UVs-IA+#dgur)Gwa-E5ONQ3_6l;BUQJ zSWDEHx@~4z-86FLc2N>X3ma!mDip>`Bm-v(U?1F?zbm>jEFRN0Q5eb)vo$|rks)St zas>+rDs%YOSP8!|pEe@0;U-E3_W?%twJ+fj&|^va1T%2(p;R~yj2L2A0tv|K2}dAZ zRWr1d$sOxrnrT}XoMgOFx)i|2P;#}hfCaHQx;J&M z17*D0dKOh-3`V%JL1T*}7(qCGA28p{K~>RTC~~Hv)pOEW9#X7@&o0c-$q;wkN@IT$hYXpEn;Gtz*H(o72oO}S$8rec zU}Ky=foq<*-XyEB$a1E%;S0=5pK#VC7iKW)?HZa5FdtRdF=6}*OEbljhIQ_5{1j#L zH)3{9z@}b6Juom$_ytr z9uOypf<@NDbVkrWKNlmrT3tdLVJM<{L_Baex>vH6_in38uS4>$SOqyLg=u)@YzXUW zf@~mb^*A_1jYWa(;YYL}6FhmnYz+0HmU8WkYFUBYC``~7OJ`U>pV*WB{`ZnX-2^8m_uTYon`vIegkDzrw~(bJuOHTsCA6$PIQx$319ikyJj@| zJ2nSH9t9kXIVSC+j%<{fcmj}BnlOOlYja+}m{`ll#3arSKwkDr=LzvTa6o9<6kj** zy;&qQOGoM=PH&x9?nKY?w^?cha4-kzn`ns9i8lgC0}#yYgd2huWedgiI13xo9TlYv zJTGymg>jy^9Z0E2DGCxfRatFrLq7Qq(O=>{3r3F%t}I(Lt0+{{B6N{R;aM)b=vKbH zPEq~a>NqR&)Lz1rA_Fv|kWpsLnHQ6^ln6rQ2n!72|$>lPl!^mL03I0aE|p$+DLoHI4+Z5w_KqdEdo^)Uk`J`XBp zwiFuW@)$gdcPNgEfp2ncr#aO>r)Xp|om`k9o&g$nKrfz>*&e-}xI08?j1nGeVew=m2Hn#UmvDM@T%z!Zl=VZavOO z^+(5Hcyv~+^>+tE&>y{< zUmm&@tQ^KdDg@M(`ADv>qh)BTg?D~Ng$M7xATxm@01tH-G-69iaA+z2nrbe>NF$1H z$4UmN&=w68s&5QtKp7@L5fJ%3W(D)>#%42jc^-S|&Iw$uDi^kQX*uiaIB+lEo4s+8eKQlh} zPF^Y+Hcl<5i(qY<6`E$tdtNr|rxO&^Uv-@-wP}Mx9339zTv#jp#5l5t;v~Da&ktbyv8@yG%`s{88=fE^iHNxg~4V7#4gltTqWVj0mY|17Y{sy=WlBwLa10 zL_KeSaSI!i?*+|ZAWB;@Av9SyC_}>P6AOsZJWm?l$r1?9UR1~Y3o1_bLT2pWb7@280Vol(Hz!(JjdXJUTL&&RfEGObCJZsP00myL za4I_5N2mag>~fKL1i=KbPwvb%nDzNdS(_^ zL@Cq@Pe$<%Fbc;#v8(Dji{yHzsL}JsA0Ec~|XHGi}-uMib;Ro>fcxs|k8#w-E6Vk~Gops$z?5 zs~>R=w_viH=r|AmfF)4oN;+id+zjubbPXbGS!FP*>uEzZR%N8qI$2W_IzdBG6=-MF zb0!OJxpKt|!*4e|>@K;ab8!v}VG8D#k!Vc}NnHvbK~o5QC_cyrom{#1ViO!5oDC#z zXJtPU6cLRtzYeiuHFNlH9x1f=B}3;s94y0Yfd#BY<|UlRd5Ep|r=4hy-BTO8@hiOGbdK4b53LZCoZ$8H+TOj4e zL0%pjJXZ5$l}rYZT{QTn5lVmGSYRW@6$@tw1U*5ynkO;i*lB$u#Z82pg*7q796M?E z`D@eZAyPq3tQ8flXhkJ~^+pI5L+2|=?I|S{UG03#%wGdJ!V*HGFN#h z3MUdeZBNX6-4bPe8xPED+eJ6RPhpN%ZE9|5i39OMaU`UyZgMP)1zI7No+oy&Vi$li znQ);@-aM!|G!Sf3C?nYUByHtt+6Rh7gao|{utS$CbSTDF2w%zqay}A684QPUXB2%C zMPH1n{6u|nmQcO|k}tH?3keP-Bm=d^kqHF;eMl~=uUOF2S=Ba zq7fqgKG{3N(vfABs)Jjr5AZjns*!t!$cg~O&?yx5pzi>A{;3@ zS9fBRfeW5x0Bh0%_hjI+%yOCd*nbH7;-lR1f7;KM!pc1kuWz1B5mP-}4k_P$U1b)MVh`R1 z&_1l9B}|0|^I6X-u{+-x$v6Q>>2PVkSZYu|O%p|Q24CjuK}+=A?Osp3hjnT|npWnK z*8$b0B40YZsT2nwd3BlgP-wa4(m?&;7e9inRx_$YzGCD;%sN?pHU)h7djV+eN*U%O zC3bV3=W=_Fz8_MH18{)IS}e4uIS;HRc?Jh2BXk2vU2&M)$x7nQCvY_!%r>0lKt^VF z5*E&L=4la|9x5p-&q1qW=x42dsU*f9{c4mMq8N&R$`o~5b08H^HAXYeTQYFNb~zIM zg97V`i(afVMpWi#%wxaMs7Wc{l5%JGk5yfFyct7GkZB432tlvNtVlazd2cvH6h^<) zQ!eCJc2{2%FENKughS@s2R?bK##jZ9cOuA?whSK!kRJ7rFF~f@$v)u4{9&YIcni%K z-)xggl3yl@3OH+cmKGU0C><^`mmu(oI!hva+;FTVWhg<+dNH%l zqY0sU_h;)NFKYLpoHic?S8*yBcyoW?Qf>USb{viPvOY6Ejz1p^erR9_yiN#YS~T`q zXg)+;gl8{R$u88cdIwlS`#k25hEXn@Jy03ep#!&Pjd7uCjR3^wG!snZuOY-VyBT;g zfO36msUB~EE(&bdM+bV|VPtJ^=v4<21|4^1#8P@X@K7#2@=cIH!~u59Sr_`e?MxD? zhjwaCd`#bR*bzxf85F4yz%YVK4nl9xic5pZ;VdPAe>BcC(I$6v>qjC6oLU1-zZH*5 zVq%lu!W9yw146mxZb|62GG8!02q$wIo>hHbR1aB;yjh{0K{Y>*I9Q?eS!$Up|2=Ss z%VRknUukeU6i7Wmvl2lL|sA3lxJ*5iz|3N*ERuP_f!x}A2ijc7bA-4DJKi<@SPk5hcz4LCeNfenFfgdwRzoAAN=Hb~9x;v3jWfmyh9Mq4048W(|8bxzMHH4X zWIBeeoK>DIy*E$j*%Be)p%p{Ad?>)rcNIq!=|yX2w=9b};WZ&ISqu@fr*0A0`X805 zVF&-C9&8|^#xKD+cNamU?JKFXvJDNJmPj+$1RgpK*g^$Jq#a7*F92w7LUUFypa<)0 z+%pc)*-_{(e@IBQE+e`Kr4y;?cOqpG$aUsv!gXJ-1tQg}LnH?f{!c*LH&TtdrU2WN zS4QGNGi$h|!EHWa_9T;A z8%`OLnIvIE0AwlEw*%%xT@b5UIS-mHBoM^)0}FuGjV4-S`aO*^vQkv#FH0BVpcg1# z;z%soqyoM*Oc|gU0a={O_C%?|+)hKPy%AjZt5A*#S2#FF3nPYDc%IZvb70yp(j zXCQ87nL*nA0(6W&A#4#dUpM?nfe#A>3uIB9ULqaLKM6a|_zaIrZ%fFh;B`$^=?X*? zi8Kml7Be;?VIV9--d!XFJZ#@TWIqd)awtvtN@tI_a66MT9B&2}uQOwc$7grd@?NP= zdo~pmR3e7j5(zQGlFAw7T0aH}PUoP5X zB@ID;HgsfVvN;;6dPDzQr#bFk2om8dPI9GE?P#afpI$OKov<2JJKNHLTJ-f9u- z8xc#MGZ4_I$pYe=Z45=$5*#B)_9p?fYd_QVc507emRW4gidA1t=rv%a7*c!~DhA2Jx4Mq8&|5mmK!@@}9X zvu+d8hFm@qYeEw2C}2?Z$SJ_K0a%akJY#DDK6c5uhCt`&@MEcxE(#TuyDOkyko&yly>32d`ofjVQox^+D|xf8bXouB`s`i!x>1w3@pMQomP9saV|*NY8)1} z(lmG|Q$;xKvv&erX9A|#CUDaJI5Q1xo(1`UHfE-@6LV#of+KQc;3X1tfO36qG+z?e z*cr1IuU6sPMM5iI@-#jp%x_f`VQIKRmo`Xaf)R<PR~_-`|5FEf_b(v_Xjd_ORw>5pD_-S&@D<<^u?Q4fyC~i7pDF1#O9;d?9b$yx z(P*wEraFGdf-^@UZyKAT6AAa!CT(N(gmag$)f#aMxg64;#UXc#dt!02`3tcgo<({; z&L<1v$1R%EdABnhW5E_8zv_bdDJT{#0X zd>2a+E)+>ugmg^*s!~@VLU)~@?IwB|3`0e}H&~E#phS`5O&V~i{1WQnb$3y6H3`>0 zm1wWymM)h;z)d38EO&6`z(}qx=MQuG zPj@BM+f1C!{0(a-jbXu{yD$BiXX`%nf-z_QTuv&0t#b$e&tGg?nxHx(K0|$cS zOcKhMN@_oXnJjGB#yPjq#de0V8XVP38wyZ(Z&%US!#NL(Dhyi(R1y0k{|nNxN->O4 z^>Wm*=ql4O5h4x*n|PTSeS8Y*SoKBSsLou^gnIF<#fG z;5E89OHP5={xp$=R0f!b@i6=+)gJ2}Nle$cr9Bo_;#l(s6IN`h$x13Ks6GS#T|r$y z%n*&2aXD-&unt43Lo}m%A5+;rple*+Y6Ur74HFX^1#m`-vnQ^5+DUVbU~D@~)G`!4 zFl64_TSEr3qea%&t~nEM&S6^PY7H*g{1!0S-4qt(d0_*3;Bdq8BueUic@WhfuRG8d zLuO|}-~bZPA3c~faVU#AGzjc)^+uQuKv$IM`UFW@w^VKa+cL;>WOP$LjW9BX5JVJc zTnd6Tx>y|toEDH-@oNij&T@c45;k;VVFFB7N+_o#z(jk_fJ*5@L@n>^OAbJQoK3BB z&~8%AH!Qk?T3Ym>gfeq?yeD*QXKXMoOb!$$#{%We;A%q>EJZR-Nfyx}@@D=GfOK!J z*)$1Zkx4G*i!$!Rd}aVcRASPXy;9a&@JZ9OQU`@5$xDqzFm}Jin=jJS(qs=3_9&}m zrBE1GFE61;k!|a``gOra-DjS~zjhCY0YSck;wF8q=oyB23|}rVmJHjM)EIXboF}_| z965Y^AwwCbof+4z0w)r%7ZeZ!uMe1>{a3J>oeQ;vCSv|5q+p|i<_<%CWMO@2{{oFq zG&6X-7D?|+=mh$Y_cDL~$!qOZO>F^n2ol^p{aEbD>JG*5kQXhS$aGpT{w539zZDI% ztyoF!8%dadD<-YR!UfaYsbPhhW@-b&lUgzK~X=m!OrzE}EYF}kE6jvMBKv=q% zOj`}*=~wRur5cEX&n9Gp|4-D{6mv(IZ87`U^It{NbzIF|a0;)E!bvdkm{)x#<2IH^ zzEYt?`d909ybW3IolQU1Z$$4d6%9nl_X<5~F=&{)-(K;xv2?yIRC2Q5% zs&)I2%6G9KX*4An4_oeynI|5!HBOm{t1>nZxkjAt-Cle&(J<19x-mJ*n?L|3%{7L^ zdT<9J$Vg)HPFdj_pa6Z^P#w0d3^dJer4L3xfjkUhAXE(zSz*yujw=EH=1l&`&RlCkpo`mrVQtsYB=MIAsSS=BV*C;RZXsd5fOcOBoxAtb4O=RKM6FCz&Oj6MUvf+m_m$~tX?q(y&MGG`lpI8iqPfmzzd z7+JxX;cZ(6cO{!N;9$&mToMc=jhiU3C)CQ%qv_zb8p>Bl>=sVex z_6t<>`a@I$))Tpf#x*$BUk(VV%_M>2=~Ef)VnG3?!BM6~S4vEP2t`WavITPjs&kQP zHC@%wx@MpXVP7)@3rs-ZpH+*>^afHVNp4Q0qChQjNmhTgibeOSN;+yr_fsnE=OzLi zS!tLIoDR*FY*&(=h6q77%~!ATfEV6_B@9?u*e8qXG$FL&L@}qD3mSeVSyAto`gZ8X zuRQKpbQDR0mP4crV!g!WNnZ;%**h$s6K26fJT- z_i?gjGbp*ER8~gzqgy!0Kq$to`dQqk{4*GuAPx}oy9hmk!CiIF@h<>tqzImV5Jwa) zKQnU;m@m{&nQ&xfOdW;YIW%nNlqm!76&2Zm96^wLlRa}12UbB!Gh^s&0vKKv4LOr0s%!_a33kW0eLeCA&jfOV?p3+iK`h%Pln_eC zBp6c?#v`XL6hv1Lkt_&|{U{SlYYMgBZa4pH;~G27={46qbTVb4BomNx`ZBze!Zo|` zjTxWQvk4!b;!IOHS4Q5afI1k$Q!N+-7+kM$)&$V|AO(rXeKlHHwi$|Ta61^9M0Ra? zrX0RT;w2;`r6!#(vK7g@D^t(8$#JqMM?6VBMoSOnLZg<7L$WgY}BLI-dXo*`G5bW`!mLsh3zJx@9n^GsRmv`kBl!Y`Cy zk9S8884@Z1c_YVC`8ssKJ01a=J^;rJUO^Us=OoxgT4F*dayqA;2m>!Pg+&cXWh1da zs1vIIV?+ZCm=YMy>OxWf)DMcEI|NFDt6cns1WCv=>R80Vi#4mE3~Bq-o;K=eKM|o_ zr3tte&l{LQr^IjcIk#6M>kf>j+O0vaU70bf1|wIhyi`4~h4 zDLtV%yd#CR9vth4Omz;P0vE-9Z&r9*rTs5sz8nK+;mw>1)2lnkHe zXJ-&K8f*a8~k6Zlqj&jd`mmM8G1{07% ztyRh6=_v^2*EiHqZBXFk9Y?w3zB9Hn>tzq_848VkD-D;j_D2=-+XOl?tVb6IIdm!J zS1n*jH8%Pfd>ihl{U*AFnoWg|3q%7`wl&cuQ8e?gQ%-a>76cIL-w`D8Pbcw5%`$cX zS!i{+H7ey+H8@`y@KVMX4i2t`iyPJFcth8+s1znz!(0B$o+<#DsdXv!{BztQ>uSw< z{aa#CaV8)?*$B*}dUk5Fyg+j`)l9u-nL@gI6lEYUQ2UIj4>7!UKv<3j3SJ@ zNeN1*ie@Z~fK}4KUIH6-{Bdp{)Fd{##uB;OWp2}-a!TR(Eo2b&F;GQ;;w>NlX;}5# zw`xv@Q5Gp`#8a*G=ra+OQwgAkP;C{mD?RyXS7^>`!VGo;3K1Sxohs4zY+Q(Aq&xO* z31kRIs4O{!CLYEjB2AqOsXHd@SZ3L?C=Ug!$S{Se$t^4hTv6A>QbfF9Q8KvxaTbm> z=5B6uCUJ7cDg^%}Jv4r#@;D)0vIgoO=qL!TSrB}};BDfAcpPX7(HEdmI&ZTa3k#}) zTO$TtC}OtjI2Qt`w<$Z)oo4T3O>+>Wdl|Jc14Rglk}zeKRTcns#U7Sna%P^7ZY|{V zD@CaAzEW)>BVAiWg$)d|_-1g9jtv-H9YX1C%mD(>_6@vH8Z8l;+*@!;aVz3{<~5zx zd3Osb*Ht2=GNG&?=lML{^`!%*g-^K7N{ zVh{v8Hd>45pF?x1V<`_Lp$H}$eruv+D+T?A1uYw)AYB`?Q)Fs5v?SB;dqynu&~XSD zWefHxi{DkC<=EE>kY z)>5oJVo6D{YZ64Qfj(l}-$SjV(l5cB?^GoOp(wfh{9-rgR$M@@nmt>(K}VBkYavm) z>OZwr)(A~?-dgwE?*TI=d^Ayms183YZzG}={u{@wT@uLuPFS1pidC^O+f!Ff(GN=H zwFa53S^`+o>mddmAY_1c98Z6*?L-eYM?6bYZ6eFm(__*smqQLXQFUwEq)JZX!DGBd z1|7V@4IC*>nKN|KoN`+;13sGfC<(>}vNLDALIt;bS{1%5;|!tmI#OO2l^i)wWlGQO z&S?Fc9X@pwN+1SD|P(V3tlPtIvF)` zNlkKm*mpO(Bxn&1Z#!g0@HwPjg)$e1Xj@u{EgH{gq*byR1T87E@Ef7oS2Ucvk!6vh zX+cmfGCSYX$vwM~xjvzpF)Y99IyHBbFD?hy>1=Fp%m8pekH1&Y+^uB`m z-T+d9vJxTYc1256SJ?=3krEbk;c*aXDeh$w_HYAiJp?zO+e1?3X0An^m6vK^(M2VS zmZETyNt96ULZd1PGwg7XnDTCeSdA1@--8-~8s|l~U`7#1uLVSrV?|4FO_n$8#x`eY z*l#i;W;s&2t&=%(Def!VB6u~_trtYS67pOjdH!9M8+c^{;0^*U+q@iutpZ=cG_zgD zoCRe39F8LHa=&*0aQq1FCBzaL0>v5W3zJmHDaB13&XhQuym(!CTBsF8PXl2m{YW4L zT_9?Nx_S+xzGPgXe??!Ajt63!baMlrtJo6iyi7Zpbr~L=`x#3nQT96~u;N8%%n1{~ z#}ic^hkbXhUyvl-JgjK=0rw_AdYV4DHjV@&-5+Ib;PD-wFP%u=glct1ifK~x`0sPk zY(-PmsrV49A;EQ6ro|cZ79mi?Fb{Gu5rSh$7b`(+o<&+?LLETC)VE#|)7k?|7{Ny* ze32y_p+HkSxUd4|iHcIG!z){E2+(F^oUu_}AORpR%AICsEbntAeODsL>N+=_VYVi+ z^G^?IP<2~~g&riI@=_5*nm|*95qd_^{ofk6{7mW)XXwS)_cCdED>j+qrK+zWQf z@Ix$st=%TupCcw-{jjx#NYEb3Arumwmg?pHd{ zEG9(gC_n@B(9vtwmgPE&oS7}~A+9+14)iWv#M>VjJHSlAT4O7pM#)SflTmV|7;J^{LpE+!=vkYEa_i!Vr z)m#l``&=x!krx9U;QTL7>ODDvXE77XKdEuDT~eh~+xP6XR}_)*sm3&DS}SXP`}+t0f~`-8P$NGs0Od2;<6u~%)Fx+miakB>$p=um zp<8TH6^}ino%V3Zzr@rHhL9pgWD<|4smP# z@V^0}&#e|_y!b@;S*;?b5r-8aiIOhEU2Oow^;9A^s=;JaE}|w~qe~4t%H%M_S|4T% zC&ei9Xsj@=XPG6`NU1zZ=X@jI3r<6Ie!D+;=;*D`HtqW9=Lq$($u-8Q4^o0u2UC=R52AV-x0xWcLT>4v%sH`7} zxqD%VApJEnx#S1M>@Xc;|FAIyr2R+k-6LbaqB?R!pTkg!OqK_sG)G1fsX8cf%^GmJ zVopu&^0QqK+G;f4YQ{}&f`e8%@vIW~dwf`$p#?hesn0lHiFR&8qER!ItwKcsFo$IP zxY7yf9u!Tj2Z$)VFx)L*!ckIwb{im;@RV=Nt-c-40wrDsE7c)G;%rUL*n$%|n>Kgn zpQ<6J>GWN0plLbi+KmL5G8;GuIN}RfWB^>{54tQTK&dUL0l*!} zOj%Fg3JgFOlaUmE5sxKlHqtwxE3qX=YjhjqqzVO(lTRvf?lx!NFPs<-?SnK`mq|J! z|7#)&SvNio4%BE#Z_RgAUk_(BnK^3BfZru5B~K1t&T1GS^NtV6ejpz9XdnkPKNJAx z*_#R3@r5u31V&`%n{Wt@|EmDHHK{jp^oud+)kI^Dpea~7jY%B*jZB?&LjM6@3nbxsE$)H&p_>M1n1aO7J<928tlc#)~Ddg;FhD|0-Cx`S&Qm{kd-1 z)4*v?EeSOiEkz$v_0&sdb{#bH(vNHS1BXLa`nO~=hs6vKQ#>&VH)R+Ehz&i_sd89f zeM1uej|~qFvb#E`wr6oWjY1BGmMSia3;PK{*CG^3Dl=vul@KFDin3|=LIN32QP~Eg zSN>F7vCSEV zS27-CCGl(+E}#K2Z{#Oqj%8%n^Q>LM2xmje5QJuHYVjUFeA6JykrySrB?JZ_Ox|Zn z)K^ysWw~hZb{fM7UX*c1R6Su{ zerro3+U^5s4jvPfzwc58p2<=Qt2JLZL%2ZyWjQ4AhpACrxivBF2z6SB9B~(xwqNSPCAFm6PrbKV#ANoOK=(sV}R+AT6H7H2PVS&apt@550^(L+-eOdxd&gE(LOR#wb4tZ(qS)M{MHqVZjJ$(i)}V7;+S%XY0e0a zzDrt1^hHDJ65k3%iyvz{07qn!Sjh#lb+8)jsrDJE3t=RJtJ_FH{{}E`B@YZ>O9xS& z?|wR&l_O8zL}@Yd6=r07Os7W#QtM-2%+fSddSNei{AphW_I@ad(~ALJ$nAA?a_K` zcj*Zq$Jr^*w6PkNTvSeATdqTIJZchk`Qk}H!8TtQG42IVXqj4e%xxr>(Y!vc{P8|* zRvIqCoZ}+fpD82>`=<}}$l4(A^$8q=h7=0dwht5v%cfYCvHcu-yICf21|&WgjS6%9 z#fD1-#GPV$WuA9YK&??(eyccNUIuJ?WJDXE%IRw#h3G7NT_z24T{k>YA|H1YunQ2i zv4Kojb{!$$RNw$tRbVWn=;k==dBSXnL@owSVCM&6#Qb${0@+$P1Oq@>*xo-*3a@48 z;b=Trq|aWwQ{6OGP+=Pxq*h!MO0fkk+c|Kn^I=MJXyydpW*|6sb|6#oI2=gYRhtC< zAy@?ecM@)nDF|h`cn5D*|En2WJ$6p<7mp?44#!>3<bj>krZTSf;It=Jh2hR|=@*ke+AB4tDnwx}^-*Ex0k zHncG{(9{~yNDOTP{u(~%?h_F?!ZJ?{I*@cfYRo@4M&BUccP=(oc0gk51g&GRu%Z%f z)X6kfO|%eMISyZMQ6bnBJ(GDzC3hs5lz|mgTJt7kt zI)rmwmN8ttNO(QTD|}T%ZBZ`17yM0pyDa7Pm3XbEjgaM57yugkWM4xncmlvjAgG&cAIE@}~;kAjbvF z11>qVVKEn+w9R#*T%kuRt^H{T^H~*$6CFGjSRHporLH&Bl?G>mu?}FsB;Fz;J2g8- zc-sc7A?6ikud4@MlM6O47H9_uKOI})3WGmCj$k)s=(aL^L=$MrJHU2;)8|K9cgi5#GBj*eV}=8f zES_){Rn}xyaeQ_B^4~9nmOviyC39Fp6}mds$+}?IkOe2c1^pPfVN`DHFK-ePqS7c3 z$k%IfbznS>+A2^-X*U-koI>>N}(x!W0NbcSnyL@jY;0g-D3NjgzJ@4O>F8n7_kC<`Fmb8 zimzze*tu)ZJ|iufg#TQv2Vf>c0IETmVyt1+mw8G#{Mkz_axXxYVOwpdF-Sw5kXd#? z3I0+ugcc{9k#8irMS~6n@+Wh>P9>r}#@4 zt{hV3D=6_+gh z!p3%J<83q?1L9<-zvnV+sURMX;${Sc8k1v$x~)2mlNw6#C0s_O@bNWJQP~AJFf$#| zM0#byP9SN29r_;Zpo4Uoz$y`eH?m-_2NG$98gV~_I3gC+VE6QuNg=v@ZCvNW0GRGNu5*Bz8fV_wn;MSx;|`^6F?eZVdYL~ zN)QD!=C?lSvHK~@pZ*(nq~Qu<*drIgoGD_bvO)qQl$v8t&d|m zZ1@ARoGf%7pJrNp93yC9^|nHNKU+-{5?WfbrOk0IF85)}5JoyF9P%5! z2qJaK(cmW@$SPrbMUzS1CpR|4%ftm8wV^x9r<^lOMMOfV3Rv(6{0V| ztYt_=-+ns%Sn&n|Dg-K|JVO`w_5ess?Yc|OvgRvzZlMyJt??G$n|L;~rR6g}7E@-P zLQWA@-Pd>iB33+9RaFp)*@tYPiYftL!;)QZBJfVAyX!UnOG5zjG*BeB!?Z+x7V0(l zqqrFaIq)%is%0a7pE*6l7t~=577-7C8SzD;<;4tGa$`8gEN}_jh2bx#;gbUu^A8&d z)c8(NPmFNW#NaQkUV}smIMyNnWX2Qf$qjd;MqoMHRU!#V0d!i~N=7!tl(%*>s|8fz zZ!->sLLC7d6!&tE5=U+HZofrlgQ5rRI@YfiNSh_*2Bu)7KA#&nm|iX zpx0!EHW@zZ2y${}NTWF&5f?(RaUohPWh`e#<3ceMP#HR(4^9(@eu)N>@{KOR+$c

4^v>p{7VrXswHv}3sn;EZ7dcs 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

WGT;1ML9mGBs;eGx8`?qa|Ib~Qv5 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 VlVLL{*l+fo&)Wa{jQ<_}{{hBRsi*(| From bdda0d2efdb563c5d49a2562bebb27d52182807d Mon Sep 17 00:00:00 2001 From: Uriel Mihura <43704209+uri-99@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:14:08 -0300 Subject: [PATCH 3/3] fix: apply zkquiz fixes from v052 to v060 (#946) Co-authored-by: taturosati --- ...tegrating_aligned_into_your_application.md | 66 ++++++++----------- examples/zkquiz/Makefile | 2 +- examples/zkquiz/contracts/.env.example | 1 + examples/zkquiz/contracts/deploy.sh | 9 ++- .../zkquiz/contracts/script/Deployer.s.sol | 10 ++- .../zkquiz/contracts/src/VerifierContract.sol | 62 ++++++++++++----- examples/zkquiz/quiz/program/Cargo.toml | 4 +- examples/zkquiz/quiz/script/Cargo.lock | 52 ++++++++++++++- examples/zkquiz/quiz/script/Cargo.toml | 2 +- .../zkquiz/quiz/script/VerifierContract.json | 2 +- examples/zkquiz/quiz/script/src/main.rs | 41 +++++------- 11 files changed, 161 insertions(+), 90 deletions(-) diff --git a/docs/guides/2_integrating_aligned_into_your_application.md b/docs/guides/2_integrating_aligned_into_your_application.md index abbe46cc1..8b0a279b8 100644 --- a/docs/guides/2_integrating_aligned_into_your_application.md +++ b/docs/guides/2_integrating_aligned_into_your_application.md @@ -116,12 +116,13 @@ The proof submission and verification can be done either with the SDK or by usin #### Using the SDK -To submit a proof using the SDK, you can use the `submit` function, and then you can use the `verify_proof_onchain` function to check if the proof was correctly verified in Aligned. - +To submit a proof using the SDK, you can use the `submit_and_wait_verification` function. +This function submits the proof to aligned and waits for it to be verified in Aligned. +Alternatively you can call `submit` if you dont want to wait for proof verification. The following code is an example of how to submit a proof using the SDK: ```rust -use aligned_sdk::sdk::{submit, get_next_nonce}; +use aligned_sdk::sdk::{submit_and_wait_verification, get_next_nonce}; use aligned_sdk::types::{ProvingSystemId, VerificationData}; use ethers::prelude::*; @@ -147,13 +148,33 @@ async fn submit_proof_to_aligned( .await .map_err(|e| anyhow::anyhow!("Failed to get next nonce: {:?}", e))?; - submit(BATCHER_URL, &verification_data, wallet, nonce).await - .map_err(|e| anyhow::anyhow!("Failed to submit proof: {:?}", e)) + match submit_and_wait_verification( + BATCHER_URL, + &rpc_url, + Chain::Holesky, + &verification_data, + wallet.clone(), + nonce, + BATCHER_PAYMENTS_ADDRESS + ) + + submit_and_wait_verification( + BATCHER_URL, + RPC_URL, + Chain::Holesky, + &verification_data, + wallet, + nonce, + BATCHER_CONTRACT_ADDRESS + ).await.map_err(|e| anyhow::anyhow!("Failed to submit proof: {:?}", e)) } #[tokio::main] async fn main() { let wallet = // Initialize wallet + + let wallet = wallet.with_chain_id(17000u64) + let proof = // Generate or obtain proof match submit_proof_to_aligned(proof, wallet).await { @@ -163,41 +184,6 @@ async fn main() { } ``` -The following code is an example of how to verify the proof was correctly verified in Aligned using the SDK: - -```rust -use aligned_sdk::sdk::verify_proof_onchain; -use aligned_sdk::types::{AlignedVerificationData, Chain}; -use ethers::prelude::*; -use tokio::time::{sleep, Duration}; - -async fn wait_for_proof_verification( - aligned_verification_data: AlignedVerificationData, - rpc_url: String, -) -> Result<(), anyhow::Error> { - for _ in 0..10 { - if verify_proof_onchain(aligned_verification_data.clone(), Chain::Holesky, rpc_url.as_str()).await.is_ok_and(|r| r) { - println!("Proof verified successfully."); - return Ok(()); - } - println!("Proof not verified yet. Waiting 10 seconds before checking again..."); - sleep(Duration::from_secs(10)).await; - } - anyhow::bail!("Proof verification failed") -} - -#[tokio::main] -async fn main() { - let aligned_verification_data = // Obtain aligned verification data - let rpc_url = "https://ethereum-holesky-rpc.publicnode.com".to_string(); - - match wait_for_proof_verification(aligned_verification_data, rpc_url).await { - Ok(_) => println!("Proof verified"), - Err(err) => println!("Error: {:?}", err), - } -} -``` - You can find an example of the proof submission and verification in the [ZKQuiz Program](../../examples/zkquiz/quiz/script/src/main.rs). This example generates a proof, instantiates a wallet to submit the proof, and then submits the proof to Aligned for verification. It then waits for the proof to be verified in Aligned. diff --git a/examples/zkquiz/Makefile b/examples/zkquiz/Makefile index 2846ebc1d..45dfc5324 100644 --- a/examples/zkquiz/Makefile +++ b/examples/zkquiz/Makefile @@ -1,7 +1,7 @@ deploy_verifier: @. ./contracts/.env && . ./contracts/deploy.sh -CONTRACT_ADDRESS=0x8dB9e6f1393c3486F30181d606312ec632189621 +CONTRACT_ADDRESS=0xA828f1463074d26FB761c662F80194f5dB2d31D0 RPC_URL=https://ethereum-holesky-rpc.publicnode.com VERIFICATION_DATA=./aligned_verification_data/0a1fab5df88a71e48633cbdeedc8d1a234b790d15a8a2fd04cd6a03c1e05b5ef_212.json diff --git a/examples/zkquiz/contracts/.env.example b/examples/zkquiz/contracts/.env.example index 54eb1f76b..0e0482ae6 100644 --- a/examples/zkquiz/contracts/.env.example +++ b/examples/zkquiz/contracts/.env.example @@ -1,4 +1,5 @@ RPC_URL= PRIVATE_KEY= ALIGNED_SERVICE_MANAGER_ADDRESS=# 0x58F280BeBE9B34c9939C3C39e0890C81f163B623 for Holesky +BATCHER_PAYMENT_SERVICE_ADDRESS=# 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 ETHERSCAN_API_KEY= diff --git a/examples/zkquiz/contracts/deploy.sh b/examples/zkquiz/contracts/deploy.sh index dfb8ae93f..062ec2a0c 100755 --- a/examples/zkquiz/contracts/deploy.sh +++ b/examples/zkquiz/contracts/deploy.sh @@ -11,6 +11,11 @@ if [ -z "$ALIGNED_SERVICE_MANAGER_ADDRESS" ]; then exit 1 fi +if [ -z "$BATCHER_PAYMENT_SERVICE_ADDRESS" ]; then + echo "BATCHER_PAYMENT_SERVICE_ADDRESS is not set. Please set it in .env" + exit 1 +fi + if [ -z "$RPC_URL" ]; then echo "RPC_URL is not set. Please set it in .env" exit 1 @@ -24,8 +29,8 @@ fi forge install forge script script/Deployer.s.sol \ - "$ALIGNED_SERVICE_MANAGER_ADDRESS" \ + "$ALIGNED_SERVICE_MANAGER_ADDRESS" "$BATCHER_PAYMENT_SERVICE_ADDRESS" \ --rpc-url "$RPC_URL" \ --private-key "$PRIVATE_KEY" \ --broadcast \ - --sig "run(address _alignedServiceManager)" + --sig "run(address _alignedServiceManager, address _paymentService)" diff --git a/examples/zkquiz/contracts/script/Deployer.s.sol b/examples/zkquiz/contracts/script/Deployer.s.sol index 189c88b0d..aabc9433b 100644 --- a/examples/zkquiz/contracts/script/Deployer.s.sol +++ b/examples/zkquiz/contracts/script/Deployer.s.sol @@ -7,10 +7,16 @@ import {VerifierContract} from "../src/VerifierContract.sol"; contract CounterScript is Script { function setUp() public {} - function run(address _targetContract) external returns (address) { + function run( + address _alignedServiceManager, + address _paymentService + ) external returns (address) { vm.startBroadcast(); - VerifierContract verifyBatchInclusionCaller = new VerifierContract(_targetContract); + VerifierContract verifyBatchInclusionCaller = new VerifierContract( + _alignedServiceManager, + _paymentService + ); vm.stopBroadcast(); diff --git a/examples/zkquiz/contracts/src/VerifierContract.sol b/examples/zkquiz/contracts/src/VerifierContract.sol index 12adf8e24..aa9900887 100644 --- a/examples/zkquiz/contracts/src/VerifierContract.sol +++ b/examples/zkquiz/contracts/src/VerifierContract.sol @@ -8,14 +8,20 @@ contract VerifierContract is ERC721URIStorage { uint256 private _nextTokenId; address public alignedServiceManager; + address public paymentServiceAddr; - bytes32 public elfCommitment = 0x35dd40ab04e180712996495caec915b8a7c488433acbb50c4d8d912cb55bf1f1; + bytes32 public elfCommitment = + 0x35dd40ab04e180712996495caec915b8a7c488433acbb50c4d8d912cb55bf1f1; // map to check if proof has already been submitted mapping(bytes32 => bool) public mintedProofs; - constructor(address _alignedServiceManager) ERC721("Aligned Layer ZK Quiz", "AZKQ") { + constructor( + address _alignedServiceManager, + address _paymentServiceAddr + ) ERC721("Aligned Layer ZK Quiz", "AZKQ") { alignedServiceManager = _alignedServiceManager; + paymentServiceAddr = _paymentServiceAddr; } function verifyBatchInclusion( @@ -27,25 +33,41 @@ contract VerifierContract is ERC721URIStorage { bytes memory merkleProof, uint256 verificationDataBatchIndex ) external returns (uint256) { - require(elfCommitment == provingSystemAuxDataCommitment, "ELF does not match"); - require(address(proofGeneratorAddr) == msg.sender, "proofGeneratorAddr does not match"); - - bytes32 fullHash = keccak256(abi.encodePacked(proofCommitment, - pubInputCommitment, provingSystemAuxDataCommitment, proofGeneratorAddr)); - require(!mintedProofs[fullHash], "proof already minted"); + require( + elfCommitment == provingSystemAuxDataCommitment, + "ELF does not match" + ); + require( + address(proofGeneratorAddr) == msg.sender, + "proofGeneratorAddr does not match" + ); - (bool callWasSuccessfull, bytes memory proofIsIncluded) = alignedServiceManager.staticcall( - abi.encodeWithSignature( - "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)", + bytes32 fullHash = keccak256( + abi.encodePacked( proofCommitment, pubInputCommitment, provingSystemAuxDataCommitment, - proofGeneratorAddr, - batchMerkleRoot, - merkleProof, - verificationDataBatchIndex + proofGeneratorAddr ) ); + require(!mintedProofs[fullHash], "proof already minted"); + + ( + bool callWasSuccessfull, + bytes memory proofIsIncluded + ) = alignedServiceManager.staticcall( + abi.encodeWithSignature( + "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)", + proofCommitment, + pubInputCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex, + paymentServiceAddr + ) + ); require(callWasSuccessfull, "static_call failed"); @@ -56,15 +78,19 @@ contract VerifierContract is ERC721URIStorage { uint256 tokenId = _nextTokenId++; _mint(msg.sender, tokenId); - _setTokenURI(tokenId, "ipfs://QmUKviny9x2oQUegyJFFBAUU2q5rvu5CsPzrUaBSDukpHQ"); + _setTokenURI( + tokenId, + "ipfs://QmUKviny9x2oQUegyJFFBAUU2q5rvu5CsPzrUaBSDukpHQ" + ); return tokenId; } - function tokenURI(uint256 tokenId) public override view virtual returns (string memory) { + function tokenURI( + uint256 tokenId + ) public view virtual override returns (string memory) { _requireOwned(tokenId); return "ipfs://QmUKviny9x2oQUegyJFFBAUU2q5rvu5CsPzrUaBSDukpHQ"; } - } diff --git a/examples/zkquiz/quiz/program/Cargo.toml b/examples/zkquiz/quiz/program/Cargo.toml index e00b6ba28..410e66548 100644 --- a/examples/zkquiz/quiz/program/Cargo.toml +++ b/examples/zkquiz/quiz/program/Cargo.toml @@ -6,4 +6,6 @@ edition = "2021" [dependencies] sp1-zkvm = { git = "https://github.com/succinctlabs/sp1.git", rev = "v1.0.8-testnet" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", branch = "patch-v2.0.2", features = ["sha3"] } +tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", branch = "patch-v2.0.2", features = [ + "sha3", +] } diff --git a/examples/zkquiz/quiz/script/Cargo.lock b/examples/zkquiz/quiz/script/Cargo.lock index 1e9927bc8..b018fae39 100644 --- a/examples/zkquiz/quiz/script/Cargo.lock +++ b/examples/zkquiz/quiz/script/Cargo.lock @@ -73,8 +73,9 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/yetanotherco/aligned_layer?tag=v0.4.0#325aef8c3f54ec596b4733956a8ac487d5535fc3" +source = "git+https://github.com/yetanotherco/aligned_layer?rev=6908110aaa04ec3107f15ab8a8bb2603e7bbead9#6908110aaa04ec3107f15ab8a8bb2603e7bbead9" dependencies = [ + "ciborium", "ethers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "futures-util", "hex", @@ -82,6 +83,7 @@ dependencies = [ "log", "serde", "serde_json", + "serde_repr", "sha3", "tokio", "tokio-tungstenite 0.23.1", @@ -822,6 +824,33 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + [[package]] name = "cipher" version = "0.4.4" @@ -2304,6 +2333,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "halo2" version = "0.1.0-beta.2" @@ -4902,6 +4941,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "serde_spanned" version = "0.6.7" diff --git a/examples/zkquiz/quiz/script/Cargo.toml b/examples/zkquiz/quiz/script/Cargo.toml index 0a0ed50da..6aa3eb935 100644 --- a/examples/zkquiz/quiz/script/Cargo.toml +++ b/examples/zkquiz/quiz/script/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", rev = "v1.0.1" } -aligned-sdk = { git = "https://github.com/yetanotherco/aligned_layer", tag = "v0.4.0" } +aligned-sdk = { git = "https://github.com/yetanotherco/aligned_layer", rev = "6908110aaa04ec3107f15ab8a8bb2603e7bbead9" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", diff --git a/examples/zkquiz/quiz/script/VerifierContract.json b/examples/zkquiz/quiz/script/VerifierContract.json index 4e8e374d6..9dca47857 100644 --- a/examples/zkquiz/quiz/script/VerifierContract.json +++ b/examples/zkquiz/quiz/script/VerifierContract.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"alignedServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"elfCommitment","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintedProofs","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyBatchInclusion","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"pubInputCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"BatchMetadataUpdate","inputs":[{"name":"_fromTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_toTokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MetadataUpdate","inputs":[{"name":"_tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60806040527f35dd40ab04e180712996495caec915b8a7c488433acbb50c4d8d912cb55bf1f16009553480156200003557600080fd5b50604051620016bd380380620016bd8339810160408190526200005891620000f5565b6040518060400160405280601581526020017f416c69676e6564204c61796572205a4b205175697a000000000000000000000081525060405180604001604052806004815260200163415a4b5160e01b8152508160009081620000bc9190620001cc565b506001620000cb8282620001cc565b5050600880546001600160a01b0319166001600160a01b0393909316929092179091555062000298565b6000602082840312156200010857600080fd5b81516001600160a01b03811681146200012057600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200015257607f821691505b6020821081036200017357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001c757600081815260208120601f850160051c81016020861015620001a25750805b601f850160051c820191505b81811015620001c357828155600101620001ae565b5050505b505050565b81516001600160401b03811115620001e857620001e862000127565b6200020081620001f984546200013d565b8462000179565b602080601f8311600181146200023857600084156200021f5750858301515b600019600386901b1c1916600185901b178555620001c3565b600085815260208120601f198616915b82811015620002695788860151825594840194600190910190840162000248565b5085821015620002885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61141580620002a86000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063c87b56dd11610071578063c87b56dd1461021e578063dd3df4bd14610231578063e985e9c514610254578063f19cd88214610267578063fa534dc01461027a57600080fd5b806370a08231146101dd57806395d89b41146101f0578063a22cb465146101f8578063b88d4fde1461020b57600080fd5b80632212d607116100de5780632212d6071461018d57806323b872dd146101a457806342842e0e146101b75780636352211e146101ca57600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e366004610e02565b61028d565b60405190151581526020015b60405180910390f35b6101406102b8565b60405161012f9190610e76565b61016061015b366004610e89565b61034a565b6040516001600160a01b03909116815260200161012f565b61018b610186366004610ebe565b610373565b005b61019660095481565b60405190815260200161012f565b61018b6101b2366004610ee8565b610382565b61018b6101c5366004610ee8565b610412565b6101606101d8366004610e89565b610432565b6101966101eb366004610f24565b61043d565b610140610485565b61018b610206366004610f4d565b610494565b61018b610219366004611027565b61049f565b61014061022c366004610e89565b6104b6565b61012361023f366004610e89565b600a6020526000908152604090205460ff1681565b61012361026236600461108f565b6104e1565b600854610160906001600160a01b031681565b6101966102883660046110c2565b61050f565b60006001600160e01b03198216632483248360e11b14806102b257506102b28261080d565b92915050565b6060600080546102c790611154565b80601f01602080910402602001604051908101604052809291908181526020018280546102f390611154565b80156103405780601f1061031557610100808354040283529160200191610340565b820191906000526020600020905b81548152906001019060200180831161032357829003601f168201915b5050505050905090565b60006103558261085d565b506000828152600460205260409020546001600160a01b03166102b2565b61037e828233610896565b5050565b6001600160a01b0382166103b157604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103be8383336108a3565b9050836001600160a01b0316816001600160a01b03161461040c576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103a8565b50505050565b61042d8383836040518060200160405280600081525061049f565b505050565b60006102b28261085d565b60006001600160a01b038216610469576040516322718ad960e21b8152600060048201526024016103a8565b506001600160a01b031660009081526003602052604090205490565b6060600180546102c790611154565b61037e33838361099c565b6104aa848484610382565b61040c84848484610a3b565b60606104c18261085d565b506040518060600160405280603581526020016113ab6035913992915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600085600954146105575760405162461bcd60e51b815260206004820152601260248201527108a988c40c8decae640dcdee840dac2e8c6d60731b60448201526064016103a8565b606085901c33146105b45760405162461bcd60e51b815260206004820152602160248201527f70726f6f6647656e657261746f724164647220646f6573206e6f74206d6174636044820152600d60fb1b60648201526084016103a8565b6040805160208082018b90528183018a9052606082018990526bffffffffffffffffffffffff198816608083015282516074818403018152609490920183528151918101919091206000818152600a9092529190205460ff16156106515760405162461bcd60e51b81526020600482015260146024820152731c1c9bdbd988185b1c9958591e481b5a5b9d195960621b60448201526064016103a8565b60085460405160009182916001600160a01b0390911690610682908d908d908d908d908d908d908d9060240161118e565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516106b791906111e2565b600060405180830381855afa9150503d80600081146106f2576040519150601f19603f3d011682016040523d82523d6000602084013e6106f7565b606091505b50915091508161073e5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b60448201526064016103a8565b60008180602001905181019061075491906111fe565b9050806107a35760405162461bcd60e51b815260206004820152601b60248201527f70726f6f66206e6f7420696e636c7564656420696e206261746368000000000060448201526064016103a8565b6000848152600a60205260408120805460ff191660011790556007805490826107cb8361121b565b9190505590506107db3382610b64565b6107fd816040518060600160405280603581526020016113ab60359139610bc9565b9c9b505050505050505050505050565b60006001600160e01b031982166380ac58cd60e01b148061083e57506001600160e01b03198216635b5e139f60e01b145b806102b257506301ffc9a760e01b6001600160e01b03198316146102b2565b6000818152600260205260408120546001600160a01b0316806102b257604051637e27328960e01b8152600481018490526024016103a8565b61042d8383836001610c19565b6000828152600260205260408120546001600160a01b03908116908316156108d0576108d0818486610d1f565b6001600160a01b0381161561090e576108ed600085600080610c19565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561093d576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0382166109ce57604051630b61174360e31b81526001600160a01b03831660048201526024016103a8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561040c57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a7d903390889087908790600401611242565b6020604051808303816000875af1925050508015610ab8575060408051601f3d908101601f19168201909252610ab59181019061127f565b60015b610b21573d808015610ae6576040519150601f19603f3d011682016040523d82523d6000602084013e610aeb565b606091505b508051600003610b1957604051633250574960e11b81526001600160a01b03851660048201526024016103a8565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b5d57604051633250574960e11b81526001600160a01b03851660048201526024016103a8565b5050505050565b6001600160a01b038216610b8e57604051633250574960e11b8152600060048201526024016103a8565b6000610b9c838360006108a3565b90506001600160a01b0381161561042d576040516339e3563760e11b8152600060048201526024016103a8565b6000828152600660205260409020610be182826112ea565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b8080610c2d57506001600160a01b03821615155b15610cef576000610c3d8461085d565b90506001600160a01b03831615801590610c695750826001600160a01b0316816001600160a01b031614155b8015610c7c5750610c7a81846104e1565b155b15610ca55760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103a8565b8115610ced5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d2a838383610d83565b61042d576001600160a01b038316610d5857604051637e27328960e01b8152600481018290526024016103a8565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103a8565b60006001600160a01b03831615801590610de15750826001600160a01b0316846001600160a01b03161480610dbd5750610dbd84846104e1565b80610de157506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610dff57600080fd5b50565b600060208284031215610e1457600080fd5b8135610e1f81610de9565b9392505050565b60005b83811015610e41578181015183820152602001610e29565b50506000910152565b60008151808452610e62816020860160208601610e26565b601f01601f19169290920160200192915050565b602081526000610e1f6020830184610e4a565b600060208284031215610e9b57600080fd5b5035919050565b80356001600160a01b0381168114610eb957600080fd5b919050565b60008060408385031215610ed157600080fd5b610eda83610ea2565b946020939093013593505050565b600080600060608486031215610efd57600080fd5b610f0684610ea2565b9250610f1460208501610ea2565b9150604084013590509250925092565b600060208284031215610f3657600080fd5b610e1f82610ea2565b8015158114610dff57600080fd5b60008060408385031215610f6057600080fd5b610f6983610ea2565b91506020830135610f7981610f3f565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610fab57600080fd5b813567ffffffffffffffff80821115610fc657610fc6610f84565b604051601f8301601f19908116603f01168101908282118183101715610fee57610fee610f84565b8160405283815286602085880101111561100757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561103d57600080fd5b61104685610ea2565b935061105460208601610ea2565b925060408501359150606085013567ffffffffffffffff81111561107757600080fd5b61108387828801610f9a565b91505092959194509250565b600080604083850312156110a257600080fd5b6110ab83610ea2565b91506110b960208401610ea2565b90509250929050565b600080600080600080600060e0888a0312156110dd57600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461110f57600080fd5b93506080880135925060a088013567ffffffffffffffff81111561113257600080fd5b61113e8a828b01610f9a565b92505060c0880135905092959891949750929550565b600181811c9082168061116857607f821691505b60208210810361118857634e487b7160e01b600052602260045260246000fd5b50919050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a082015260006111ce60e0830185610e4a565b90508260c083015298975050505050505050565b600082516111f4818460208701610e26565b9190910192915050565b60006020828403121561121057600080fd5b8151610e1f81610f3f565b60006001820161123b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061127590830184610e4a565b9695505050505050565b60006020828403121561129157600080fd5b8151610e1f81610de9565b601f82111561042d57600081815260208120601f850160051c810160208610156112c35750805b601f850160051c820191505b818110156112e2578281556001016112cf565b505050505050565b815167ffffffffffffffff81111561130457611304610f84565b611318816113128454611154565b8461129c565b602080601f83116001811461134d57600084156113355750858301515b600019600386901b1c1916600185901b1785556112e2565b600085815260208120601f198616915b8281101561137c5788860151825594840194600190910190840161135d565b508582101561139a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe697066733a2f2f516d554b76696e793978326f51556567794a464642415555327135727675354373507a725561425344756b704851a2646970667358221220c610e2b3fc584ff15378d793e3eceea724322a73ed33c7051568c6a5c551b55764736f6c63430008150033","sourceMap":"241:2396:35:-:0;;;402:66;371:97;;582:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1381:113:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1381:113:23;;;1455:5;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:23;:17;1480:7;1470;:17;:::i;:::-;-1:-1:-1;;676:21:35::1;:46:::0;;-1:-1:-1;;;;;;676:46:35::1;-1:-1:-1::0;;;;;676:46:35;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;241:2396:35;;14:290:36;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:36;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:36:o;309:127::-;370:10;365:3;361:20;358:1;351:31;401:4;398:1;391:15;425:4;422:1;415:15;441:380;520:1;516:12;;;;563;;;584:61;;638:4;630:6;626:17;616:27;;584:61;691:2;683:6;680:14;660:18;657:38;654:161;;737:10;732:3;728:20;725:1;718:31;772:4;769:1;762:15;800:4;797:1;790:15;654:161;;441:380;;;:::o;952:545::-;1054:2;1049:3;1046:11;1043:448;;;1090:1;1115:5;1111:2;1104:17;1160:4;1156:2;1146:19;1230:2;1218:10;1214:19;1211:1;1207:27;1201:4;1197:38;1266:4;1254:10;1251:20;1248:47;;;-1:-1:-1;1289:4:36;1248:47;1344:2;1339:3;1335:12;1332:1;1328:20;1322:4;1318:31;1308:41;;1399:82;1417:2;1410:5;1407:13;1399:82;;;1462:17;;;1443:1;1432:13;1399:82;;;1403:3;;;1043:448;952:545;;;:::o;1673:1352::-;1793:10;;-1:-1:-1;;;;;1815:30:36;;1812:56;;;1848:18;;:::i;:::-;1877:97;1967:6;1927:38;1959:4;1953:11;1927:38;:::i;:::-;1921:4;1877:97;:::i;:::-;2029:4;;2093:2;2082:14;;2110:1;2105:663;;;;2812:1;2829:6;2826:89;;;-1:-1:-1;2881:19:36;;;2875:26;2826:89;-1:-1:-1;;1630:1:36;1626:11;;;1622:24;1618:29;1608:40;1654:1;1650:11;;;1605:57;2928:81;;2075:944;;2105:663;899:1;892:14;;;936:4;923:18;;-1:-1:-1;;2141:20:36;;;2259:236;2273:7;2270:1;2267:14;2259:236;;;2362:19;;;2356:26;2341:42;;2454:27;;;;2422:1;2410:14;;;;2289:19;;2259:236;;;2263:3;2523:6;2514:7;2511:19;2508:201;;;2584:19;;;2578:26;-1:-1:-1;;2667:1:36;2663:14;;;2679:3;2659:24;2655:37;2651:42;2636:58;2621:74;;2508:201;-1:-1:-1;;;;;2755:1:36;2739:14;;;2735:22;2722:36;;-1:-1:-1;1673:1352:36:o;:::-;241:2396:35;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063c87b56dd11610071578063c87b56dd1461021e578063dd3df4bd14610231578063e985e9c514610254578063f19cd88214610267578063fa534dc01461027a57600080fd5b806370a08231146101dd57806395d89b41146101f0578063a22cb465146101f8578063b88d4fde1461020b57600080fd5b80632212d607116100de5780632212d6071461018d57806323b872dd146101a457806342842e0e146101b75780636352211e146101ca57600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e366004610e02565b61028d565b60405190151581526020015b60405180910390f35b6101406102b8565b60405161012f9190610e76565b61016061015b366004610e89565b61034a565b6040516001600160a01b03909116815260200161012f565b61018b610186366004610ebe565b610373565b005b61019660095481565b60405190815260200161012f565b61018b6101b2366004610ee8565b610382565b61018b6101c5366004610ee8565b610412565b6101606101d8366004610e89565b610432565b6101966101eb366004610f24565b61043d565b610140610485565b61018b610206366004610f4d565b610494565b61018b610219366004611027565b61049f565b61014061022c366004610e89565b6104b6565b61012361023f366004610e89565b600a6020526000908152604090205460ff1681565b61012361026236600461108f565b6104e1565b600854610160906001600160a01b031681565b6101966102883660046110c2565b61050f565b60006001600160e01b03198216632483248360e11b14806102b257506102b28261080d565b92915050565b6060600080546102c790611154565b80601f01602080910402602001604051908101604052809291908181526020018280546102f390611154565b80156103405780601f1061031557610100808354040283529160200191610340565b820191906000526020600020905b81548152906001019060200180831161032357829003601f168201915b5050505050905090565b60006103558261085d565b506000828152600460205260409020546001600160a01b03166102b2565b61037e828233610896565b5050565b6001600160a01b0382166103b157604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103be8383336108a3565b9050836001600160a01b0316816001600160a01b03161461040c576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103a8565b50505050565b61042d8383836040518060200160405280600081525061049f565b505050565b60006102b28261085d565b60006001600160a01b038216610469576040516322718ad960e21b8152600060048201526024016103a8565b506001600160a01b031660009081526003602052604090205490565b6060600180546102c790611154565b61037e33838361099c565b6104aa848484610382565b61040c84848484610a3b565b60606104c18261085d565b506040518060600160405280603581526020016113ab6035913992915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600085600954146105575760405162461bcd60e51b815260206004820152601260248201527108a988c40c8decae640dcdee840dac2e8c6d60731b60448201526064016103a8565b606085901c33146105b45760405162461bcd60e51b815260206004820152602160248201527f70726f6f6647656e657261746f724164647220646f6573206e6f74206d6174636044820152600d60fb1b60648201526084016103a8565b6040805160208082018b90528183018a9052606082018990526bffffffffffffffffffffffff198816608083015282516074818403018152609490920183528151918101919091206000818152600a9092529190205460ff16156106515760405162461bcd60e51b81526020600482015260146024820152731c1c9bdbd988185b1c9958591e481b5a5b9d195960621b60448201526064016103a8565b60085460405160009182916001600160a01b0390911690610682908d908d908d908d908d908d908d9060240161118e565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516106b791906111e2565b600060405180830381855afa9150503d80600081146106f2576040519150601f19603f3d011682016040523d82523d6000602084013e6106f7565b606091505b50915091508161073e5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b60448201526064016103a8565b60008180602001905181019061075491906111fe565b9050806107a35760405162461bcd60e51b815260206004820152601b60248201527f70726f6f66206e6f7420696e636c7564656420696e206261746368000000000060448201526064016103a8565b6000848152600a60205260408120805460ff191660011790556007805490826107cb8361121b565b9190505590506107db3382610b64565b6107fd816040518060600160405280603581526020016113ab60359139610bc9565b9c9b505050505050505050505050565b60006001600160e01b031982166380ac58cd60e01b148061083e57506001600160e01b03198216635b5e139f60e01b145b806102b257506301ffc9a760e01b6001600160e01b03198316146102b2565b6000818152600260205260408120546001600160a01b0316806102b257604051637e27328960e01b8152600481018490526024016103a8565b61042d8383836001610c19565b6000828152600260205260408120546001600160a01b03908116908316156108d0576108d0818486610d1f565b6001600160a01b0381161561090e576108ed600085600080610c19565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561093d576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0382166109ce57604051630b61174360e31b81526001600160a01b03831660048201526024016103a8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561040c57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a7d903390889087908790600401611242565b6020604051808303816000875af1925050508015610ab8575060408051601f3d908101601f19168201909252610ab59181019061127f565b60015b610b21573d808015610ae6576040519150601f19603f3d011682016040523d82523d6000602084013e610aeb565b606091505b508051600003610b1957604051633250574960e11b81526001600160a01b03851660048201526024016103a8565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b5d57604051633250574960e11b81526001600160a01b03851660048201526024016103a8565b5050505050565b6001600160a01b038216610b8e57604051633250574960e11b8152600060048201526024016103a8565b6000610b9c838360006108a3565b90506001600160a01b0381161561042d576040516339e3563760e11b8152600060048201526024016103a8565b6000828152600660205260409020610be182826112ea565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b8080610c2d57506001600160a01b03821615155b15610cef576000610c3d8461085d565b90506001600160a01b03831615801590610c695750826001600160a01b0316816001600160a01b031614155b8015610c7c5750610c7a81846104e1565b155b15610ca55760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103a8565b8115610ced5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d2a838383610d83565b61042d576001600160a01b038316610d5857604051637e27328960e01b8152600481018290526024016103a8565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103a8565b60006001600160a01b03831615801590610de15750826001600160a01b0316846001600160a01b03161480610dbd5750610dbd84846104e1565b80610de157506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610dff57600080fd5b50565b600060208284031215610e1457600080fd5b8135610e1f81610de9565b9392505050565b60005b83811015610e41578181015183820152602001610e29565b50506000910152565b60008151808452610e62816020860160208601610e26565b601f01601f19169290920160200192915050565b602081526000610e1f6020830184610e4a565b600060208284031215610e9b57600080fd5b5035919050565b80356001600160a01b0381168114610eb957600080fd5b919050565b60008060408385031215610ed157600080fd5b610eda83610ea2565b946020939093013593505050565b600080600060608486031215610efd57600080fd5b610f0684610ea2565b9250610f1460208501610ea2565b9150604084013590509250925092565b600060208284031215610f3657600080fd5b610e1f82610ea2565b8015158114610dff57600080fd5b60008060408385031215610f6057600080fd5b610f6983610ea2565b91506020830135610f7981610f3f565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610fab57600080fd5b813567ffffffffffffffff80821115610fc657610fc6610f84565b604051601f8301601f19908116603f01168101908282118183101715610fee57610fee610f84565b8160405283815286602085880101111561100757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561103d57600080fd5b61104685610ea2565b935061105460208601610ea2565b925060408501359150606085013567ffffffffffffffff81111561107757600080fd5b61108387828801610f9a565b91505092959194509250565b600080604083850312156110a257600080fd5b6110ab83610ea2565b91506110b960208401610ea2565b90509250929050565b600080600080600080600060e0888a0312156110dd57600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461110f57600080fd5b93506080880135925060a088013567ffffffffffffffff81111561113257600080fd5b61113e8a828b01610f9a565b92505060c0880135905092959891949750929550565b600181811c9082168061116857607f821691505b60208210810361118857634e487b7160e01b600052602260045260246000fd5b50919050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a082015260006111ce60e0830185610e4a565b90508260c083015298975050505050505050565b600082516111f4818460208701610e26565b9190910192915050565b60006020828403121561121057600080fd5b8151610e1f81610f3f565b60006001820161123b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061127590830184610e4a565b9695505050505050565b60006020828403121561129157600080fd5b8151610e1f81610de9565b601f82111561042d57600081815260208120601f850160051c810160208610156112c35750805b601f850160051c820191505b818110156112e2578281556001016112cf565b505050505050565b815167ffffffffffffffff81111561130457611304610f84565b611318816113128454611154565b8461129c565b602080601f83116001811461134d57600084156113355750858301515b600019600386901b1c1916600185901b1785556112e2565b600085815260208120601f198616915b8281101561137c5788860151825594840194600190910190840161135d565b508582101561139a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe697066733a2f2f516d554b76696e793978326f51556567794a464642415555327135727675354373507a725561425344756b704851a2646970667358221220c610e2b3fc584ff15378d793e3eceea724322a73ed33c7051568c6a5c551b55764736f6c63430008150033","sourceMap":"241:2396:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:207:26;;;;;;:::i;:::-;;:::i;:::-;;;565:14:36;;558:22;540:41;;528:2;513:18;937:207:26;;;;;;;;2365:89:23;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:36;;;1679:51;;1667:2;1652:18;3497:154:23;1533:203:36;3323:113:23;;;;;;:::i;:::-;;:::i;:::-;;371:97:35;;;;;;;;;2324:25:36;;;2312:2;2297:18;371:97:35;2178:177:36;4143:578:23;;;;;;:::i;:::-;;:::i;4787:132::-;;;;;;:::i;:::-;;:::i;2185:118::-;;;;;;:::i;:::-;;:::i;1920:208::-;;;;;;:::i;:::-;;:::i;2518:93::-;;;:::i;3718:144::-;;;;;;:::i;:::-;;:::i;4985:208::-;;;;;;:::i;:::-;;:::i;2434:200:35:-;;;;;;:::i;:::-;;:::i;531:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3928:153:23;;;;;;:::i;:::-;;:::i;328:36:35:-;;;;;-1:-1:-1;;;;;328:36:35;;;735:1693;;;;;;:::i;:::-;;:::i;937:207:26:-;1039:4;-1:-1:-1;;;;;;1062:35:26;;-1:-1:-1;;;1062:35:26;;:75;;;1101:36;1125:11;1101:23;:36::i;:::-;1055:82;937:207;-1:-1:-1;;937:207:26:o;2365:89:23:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:23;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:23;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:28;3394:8:23;:35::i;:::-;3323:113;;:::o;4143:578::-;-1:-1:-1;;;;;4237:16:23;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:23;;4306:1;4276:33;;;1679:51:36;1652:18;;4276:33:23;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:28;4562:7:23;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:23;:13;-1:-1:-1;;;;;4610:21:23;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:23;;-1:-1:-1;;;;;6854:15:36;;;4654:50:23;;;6836:34:36;6886:18;;;6879:34;;;6949:15;;6929:18;;;6922:43;6771:18;;4654:50:23;6596:375:36;4606:109:23;4223:498;4143:578;;;:::o;4787:132::-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;1920:208::-;1983:7;-1:-1:-1;;;;;2006:19:23;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:23;;2075:1;2048:30;;;1679:51:36;1652:18;;2048:30:23;1533:203:36;2002:87:23;-1:-1:-1;;;;;;2105:16:23;;;;;:9;:16;;;;;;;1920:208::o;2518:93::-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:28;3836:8:23;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;2434:200:35:-;2507:13;2532:22;2546:7;2532:13;:22::i;:::-;;2565:62;;;;;;;;;;;;;;;;;;2434:200;-1:-1:-1;;2434:200:35:o;3928:153:23:-;-1:-1:-1;;;;;4039:25:23;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;735:1693:35:-;1053:7;1097:30;1080:13;;:47;1072:78;;;;-1:-1:-1;;;1072:78:35;;7178:2:36;1072:78:35;;;7160:21:36;7217:2;7197:18;;;7190:30;-1:-1:-1;;;7236:18:36;;;7229:48;7294:18;;1072:78:35;6976:342:36;1072:78:35;1168:27;;;;1199:10;1168:41;1160:87;;;;-1:-1:-1;;;1160:87:35;;7525:2:36;1160:87:35;;;7507:21:36;7564:2;7544:18;;;7537:30;7603:34;7583:18;;;7576:62;-1:-1:-1;;;7654:18:36;;;7647:31;7695:19;;1160:87:35;7323:397:36;1160:87:35;1287:117;;;;;;;7938:19:36;;;7973:12;;;7966:28;;;8010:12;;;8003:28;;;-1:-1:-1;;8061:44:36;;8047:12;;;8040:66;1287:117:35;;;;;;;;;8122:13:36;;;;1287:117:35;;1277:128;;;;;;;;;-1:-1:-1;1424:22:35;;;:12;:22;;;;;;;;;1423:23;1415:56;;;;-1:-1:-1;;;1415:56:35;;8348:2:36;1415:56:35;;;8330:21:36;8387:2;8367:18;;;8360:30;-1:-1:-1;;;8406:18:36;;;8399:50;8466:18;;1415:56:35;8146:344:36;1415:56:35;1540:21;;1586:391;;1483:23;;;;-1:-1:-1;;;;;1540:21:35;;;;1586:391;;1722:15;;1755:18;;1791:30;;1839:18;;1875:15;;1908:11;;1937:26;;1586:391;;;:::i;:::-;;;;-1:-1:-1;;1586:391:35;;;;;;;;;;;;;;-1:-1:-1;;;;;1586:391:35;-1:-1:-1;;;1586:391:35;;;1540:447;;;1586:391;1540:447;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1482:505;;;;2006:18;1998:49;;;;-1:-1:-1;;;1998:49:35;;9681:2:36;1998:49:35;;;9663:21:36;9720:2;9700:18;;;9693:30;-1:-1:-1;;;9739:18:36;;;9732:48;9797:18;;1998:49:35;9479:342:36;1998:49:35;2058:24;2096:15;2085:35;;;;;;;;;;;;:::i;:::-;2058:62;;2138:19;2130:59;;;;-1:-1:-1;;;2130:59:35;;10278:2:36;2130:59:35;;;10260:21:36;10317:2;10297:18;;;10290:30;10356:29;10336:18;;;10329:57;10403:18;;2130:59:35;10076:351:36;2130:59:35;2200:22;;;;:12;:22;;;;;:29;;-1:-1:-1;;2200:29:35;2225:4;2200:29;;;2258:12;:14;;;2200:22;2258:14;;;:::i;:::-;;;;;2240:32;;2282:26;2288:10;2300:7;2282:5;:26::i;:::-;2318:78;2331:7;2318:78;;;;;;;;;;;;;;;;;:12;:78::i;:::-;2414:7;735:1693;-1:-1:-1;;;;;;;;;;;;735:1693:35:o;1561:300:23:-;1663:4;-1:-1:-1;;;;;;1698:40:23;;-1:-1:-1;;;1698:40:23;;:104;;-1:-1:-1;;;;;;;1754:48:23;;-1:-1:-1;;;1754:48:23;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:30;;;1818:36:23;762:146:30;16138:241:23;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:23;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:23;;;;;2324:25:36;;;2297:18;;16309:31:23;2178:177:36;14418:120:23;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;8838:795::-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:23;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:23;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:23;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:23;;;9157:256;-1:-1:-1;;;;;9427:16:23;;;9423:107;;-1:-1:-1;;;;;9487:13:23;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:23;-1:-1:-1;;;;;9540:21:23;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:23:o;15591:312::-;-1:-1:-1;;;;;15698:22:23;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:23;;-1:-1:-1;;;;;1697:32:36;;15743:31:23;;;1679:51:36;1652:18;;15743:31:23;1533:203:36;15694:91:23;-1:-1:-1;;;;;15794:25:23;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:23;;;;;;;;;;15855:41;;540::36;;;15855::23;;513:18:36;15855:41:23;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:23;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:23;;-1:-1:-1;;;;;17072:36:23;;;;;:71;;735:10:28;;17123:4:23;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:23;;;;;;;;-1:-1:-1;;17072:71:23;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:23;;-1:-1:-1;;;;;1697:32:36;;17430:25:23;;;1679:51:36;1652:18;;17430:25:23;1533:203:36;17377:293:23;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:23;;-1:-1:-1;;;17190:51:23;17186:130;;17272:25;;-1:-1:-1;;;17272:25:23;;-1:-1:-1;;;;;1697:32:36;;17272:25:23;;;1679:51:36;1652:18;;17272:25:23;1533:203:36;17186:130:23;17144:186;16918:782;;;;:::o;9955:327::-;-1:-1:-1;;;;;10022:16:23;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:23;;10091:1;10061:33;;;1679:51:36;1652:18;;10061:33:23;1533:203:36;10018:87:23;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:23;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:23;;10262:1;10234:31;;;1679:51:36;1652:18;;10234:31:23;1533:203:36;1922:167:26;2013:19;;;;:10;:19;;;;;:31;2035:9;2013:19;:31;:::i;:::-;-1:-1:-1;2059:23:26;;2324:25:36;;;2059:23:26;;2312:2:36;2297:18;2059:23:26;;;;;;;1922:167;;:::o;14720:662:23:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:23;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:23;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:23;:5;-1:-1:-1;;;;;15115:13:23;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:23;;-1:-1:-1;;;;;1697:32:36;;15189:27:23;;;1679:51:36;1652:18;;15189:27:23;1533:203:36;15089:142:23;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:23;15292:5;-1:-1:-1;;;;;15283:28:23;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:23;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:23;-1:-1:-1;;;;;15346:29:23;;;;;;;;;;14720:662::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:23;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:23;;;;;2324:25:36;;;2297:18;;7298:31:23;2178:177:36;7248:186:23;7375:44;;-1:-1:-1;;;7375:44:23;;-1:-1:-1;;;;;13813:32:36;;7375:44:23;;;13795:51:36;13862:18;;;13855:34;;;13768:18;;7375:44:23;13621:274:36;6376:272:23;6479:4;-1:-1:-1;;;;;6514:21:23;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:23;:5;-1:-1:-1;;;;;6552:16:23;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;6008:7:23;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6608:32:23;;;6034:24;;6608:32;6552:88;6495:146;6376:272;-1:-1:-1;;;;6376:272:23:o;14:131:36:-;-1:-1:-1;;;;;;88:32:36;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:36:o;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:36;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:36;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:36:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:36;;1348:180;-1:-1:-1;1348:180:36:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:36;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:36:o;2360:328::-;2437:6;2445;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2545:29;2564:9;2545:29;:::i;:::-;2535:39;;2593:38;2627:2;2616:9;2612:18;2593:38;:::i;:::-;2583:48;;2678:2;2667:9;2663:18;2650:32;2640:42;;2360:328;;;;;:::o;2693:186::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2844:29;2863:9;2844:29;:::i;3066:118::-;3152:5;3145:13;3138:21;3131:5;3128:32;3118:60;;3174:1;3171;3164:12;3189:315;3254:6;3262;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;3354:29;3373:9;3354:29;:::i;:::-;3344:39;;3433:2;3422:9;3418:18;3405:32;3446:28;3468:5;3446:28;:::i;:::-;3493:5;3483:15;;;3189:315;;;;;:::o;3509:127::-;3570:10;3565:3;3561:20;3558:1;3551:31;3601:4;3598:1;3591:15;3625:4;3622:1;3615:15;3641:718;3683:5;3736:3;3729:4;3721:6;3717:17;3713:27;3703:55;;3754:1;3751;3744:12;3703:55;3790:6;3777:20;3816:18;3853:2;3849;3846:10;3843:36;;;3859:18;;:::i;:::-;3934:2;3928:9;3902:2;3988:13;;-1:-1:-1;;3984:22:36;;;4008:2;3980:31;3976:40;3964:53;;;4032:18;;;4052:22;;;4029:46;4026:72;;;4078:18;;:::i;:::-;4118:10;4114:2;4107:22;4153:2;4145:6;4138:18;4199:3;4192:4;4187:2;4179:6;4175:15;4171:26;4168:35;4165:55;;;4216:1;4213;4206:12;4165:55;4280:2;4273:4;4265:6;4261:17;4254:4;4246:6;4242:17;4229:54;4327:1;4320:4;4315:2;4307:6;4303:15;4299:26;4292:37;4347:6;4338:15;;;;;;3641:718;;;;:::o;4364:537::-;4459:6;4467;4475;4483;4536:3;4524:9;4515:7;4511:23;4507:33;4504:53;;;4553:1;4550;4543:12;4504:53;4576:29;4595:9;4576:29;:::i;:::-;4566:39;;4624:38;4658:2;4647:9;4643:18;4624:38;:::i;:::-;4614:48;;4709:2;4698:9;4694:18;4681:32;4671:42;;4764:2;4753:9;4749:18;4736:32;4791:18;4783:6;4780:30;4777:50;;;4823:1;4820;4813:12;4777:50;4846:49;4887:7;4878:6;4867:9;4863:22;4846:49;:::i;:::-;4836:59;;;4364:537;;;;;;;:::o;5091:260::-;5159:6;5167;5220:2;5208:9;5199:7;5195:23;5191:32;5188:52;;;5236:1;5233;5226:12;5188:52;5259:29;5278:9;5259:29;:::i;:::-;5249:39;;5307:38;5341:2;5330:9;5326:18;5307:38;:::i;:::-;5297:48;;5091:260;;;;;:::o;5356:850::-;5478:6;5486;5494;5502;5510;5518;5526;5579:3;5567:9;5558:7;5554:23;5550:33;5547:53;;;5596:1;5593;5586:12;5547:53;5619:23;;;-1:-1:-1;5689:2:36;5674:18;;5661:32;;-1:-1:-1;5740:2:36;5725:18;;5712:32;;-1:-1:-1;5794:2:36;5779:18;;5766:32;-1:-1:-1;;5827:43:36;;5817:54;;5807:82;;5885:1;5882;5875:12;5807:82;5908:5;-1:-1:-1;5960:3:36;5945:19;;5932:33;;-1:-1:-1;6016:3:36;6001:19;;5988:33;6044:18;6033:30;;6030:50;;;6076:1;6073;6066:12;6030:50;6099:49;6140:7;6131:6;6120:9;6116:22;6099:49;:::i;:::-;6089:59;;;6195:3;6184:9;6180:19;6167:33;6157:43;;5356:850;;;;;;;;;;:::o;6211:380::-;6290:1;6286:12;;;;6333;;;6354:61;;6408:4;6400:6;6396:17;6386:27;;6354:61;6461:2;6453:6;6450:14;6430:18;6427:38;6424:161;;6507:10;6502:3;6498:20;6495:1;6488:31;6542:4;6539:1;6532:15;6570:4;6567:1;6560:15;6424:161;;6211:380;;;:::o;8495:687::-;8810:6;8799:9;8792:25;8853:6;8848:2;8837:9;8833:18;8826:34;8896:6;8891:2;8880:9;8876:18;8869:34;8955:26;8951:31;8943:6;8939:44;8934:2;8923:9;8919:18;8912:72;9021:6;9015:3;9004:9;9000:19;8993:35;9065:3;9059;9048:9;9044:19;9037:32;8773:4;9086:46;9127:3;9116:9;9112:19;9104:6;9086:46;:::i;:::-;9078:54;;9169:6;9163:3;9152:9;9148:19;9141:35;8495:687;;;;;;;;;;:::o;9187:287::-;9316:3;9354:6;9348:13;9370:66;9429:6;9424:3;9417:4;9409:6;9405:17;9370:66;:::i;:::-;9452:16;;;;;9187:287;-1:-1:-1;;9187:287:36:o;9826:245::-;9893:6;9946:2;9934:9;9925:7;9921:23;9917:32;9914:52;;;9962:1;9959;9952:12;9914:52;9994:9;9988:16;10013:28;10035:5;10013:28;:::i;10432:232::-;10471:3;10492:17;;;10489:140;;10551:10;10546:3;10542:20;10539:1;10532:31;10586:4;10583:1;10576:15;10614:4;10611:1;10604:15;10489:140;-1:-1:-1;10656:1:36;10645:13;;10432:232::o;10669:489::-;-1:-1:-1;;;;;10938:15:36;;;10920:34;;10990:15;;10985:2;10970:18;;10963:43;11037:2;11022:18;;11015:34;;;11085:3;11080:2;11065:18;;11058:31;;;10863:4;;11106:46;;11132:19;;11124:6;11106:46;:::i;:::-;11098:54;10669:489;-1:-1:-1;;;;;;10669:489:36:o;11163:249::-;11232:6;11285:2;11273:9;11264:7;11260:23;11256:32;11253:52;;;11301:1;11298;11291:12;11253:52;11333:9;11327:16;11352:30;11376:5;11352:30;:::i;11543:545::-;11645:2;11640:3;11637:11;11634:448;;;11681:1;11706:5;11702:2;11695:17;11751:4;11747:2;11737:19;11821:2;11809:10;11805:19;11802:1;11798:27;11792:4;11788:38;11857:4;11845:10;11842:20;11839:47;;;-1:-1:-1;11880:4:36;11839:47;11935:2;11930:3;11926:12;11923:1;11919:20;11913:4;11909:31;11899:41;;11990:82;12008:2;12001:5;11998:13;11990:82;;;12053:17;;;12034:1;12023:13;11990:82;;;11994:3;;;11543:545;;;:::o;12264:1352::-;12390:3;12384:10;12417:18;12409:6;12406:30;12403:56;;;12439:18;;:::i;:::-;12468:97;12558:6;12518:38;12550:4;12544:11;12518:38;:::i;:::-;12512:4;12468:97;:::i;:::-;12620:4;;12684:2;12673:14;;12701:1;12696:663;;;;13403:1;13420:6;13417:89;;;-1:-1:-1;13472:19:36;;;13466:26;13417:89;-1:-1:-1;;12221:1:36;12217:11;;;12213:24;12209:29;12199:40;12245:1;12241:11;;;12196:57;13519:81;;12666:944;;12696:663;11490:1;11483:14;;;11527:4;11514:18;;-1:-1:-1;;12732:20:36;;;12850:236;12864:7;12861:1;12858:14;12850:236;;;12953:19;;;12947:26;12932:42;;13045:27;;;;13013:1;13001:14;;;;12880:19;;12850:236;;;12854:3;13114:6;13105:7;13102:19;13099:201;;;13175:19;;;13169:26;-1:-1:-1;;13258:1:36;13254:14;;;13270:3;13250:24;13246:37;13242:42;13227:58;13212:74;;13099:201;-1:-1:-1;;;;;13346:1:36;13330:14;;;13326:22;13313:36;;-1:-1:-1;12264:1352:36:o","linkReferences":{}},"methodIdentifiers":{"alignedServiceManager()":"f19cd882","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","elfCommitment()":"2212d607","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mintedProofs(bytes32)":"dd3df4bd","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)":"fa534dc0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"alignedServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"elfCommitment\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"mintedProofs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubInputCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"}],\"name\":\"verifyBatchInclusion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/VerifierContract.sol\":\"VerifierContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/VerifierContract.sol\":{\"keccak256\":\"0xd3344cfa7286501ef5bdfabfe336dfab042c4c420e13be7ca3d7f8f74cf9c8b6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5bcf78be8463542ce798e79fc6c7c3acc89b4cd6941500503c7fbd1d5f324c2d\",\"dweb:/ipfs/QmPKcDT6wVbD5PWAKDYJCfEyG1RGn8QYe9CXx2jmvFngZy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_fromTokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"_toTokenId","type":"uint256","indexed":false}],"type":"event","name":"BatchMetadataUpdate","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":false}],"type":"event","name":"MetadataUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"alignedServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"elfCommitment","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"mintedProofs","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"pubInputCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"verifyBatchInclusion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}"},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/VerifierContract.sol":"VerifierContract"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol":{"keccak256":"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44","urls":["bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd","dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol":{"keccak256":"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d","urls":["bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b","dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"keccak256":"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670","urls":["bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96","dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"src/VerifierContract.sol":{"keccak256":"0xd3344cfa7286501ef5bdfabfe336dfab042c4c420e13be7ca3d7f8f74cf9c8b6","urls":["bzz-raw://5bcf78be8463542ce798e79fc6c7c3acc89b4cd6941500503c7fbd1d5f324c2d","dweb:/ipfs/QmPKcDT6wVbD5PWAKDYJCfEyG1RGn8QYe9CXx2jmvFngZy"],"license":"UNLICENSED"}},"version":1},"id":35} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceManager","type":"address","internalType":"address"},{"name":"_paymentServiceAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"alignedServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"elfCommitment","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintedProofs","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paymentServiceAddr","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyBatchInclusion","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"pubInputCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"BatchMetadataUpdate","inputs":[{"name":"_fromTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_toTokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MetadataUpdate","inputs":[{"name":"_tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60806040527f35dd40ab04e180712996495caec915b8a7c488433acbb50c4d8d912cb55bf1f1600a553480156200003557600080fd5b506040516200172538038062001725833981016040819052620000589162000121565b6040518060400160405280601581526020017f416c69676e6564204c61796572205a4b205175697a000000000000000000000081525060405180604001604052806004815260200163415a4b5160e01b8152508160009081620000bc9190620001fe565b506001620000cb8282620001fe565b5050600880546001600160a01b039485166001600160a01b031991821617909155600980549390941692169190911790915550620002ca565b80516001600160a01b03811681146200011c57600080fd5b919050565b600080604083850312156200013557600080fd5b620001408362000104565b9150620001506020840162000104565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018457607f821691505b602082108103620001a557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001f957600081815260208120601f850160051c81016020861015620001d45750805b601f850160051c820191505b81811015620001f557828155600101620001e0565b5050505b505050565b81516001600160401b038111156200021a576200021a62000159565b62000232816200022b84546200016f565b84620001ab565b602080601f8311600181146200026a5760008415620002515750858301515b600019600386901b1c1916600185901b178555620001f5565b600085815260208120601f198616915b828110156200029b578886015182559484019460019091019084016200027a565b5085821015620002ba5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61144b80620002da6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806390a05f2e116100a2578063c87b56dd11610071578063c87b56dd1461023c578063dd3df4bd1461024f578063e985e9c514610272578063f19cd88214610285578063fa534dc01461029857600080fd5b806390a05f2e146101fb57806395d89b411461020e578063a22cb46514610216578063b88d4fde1461022957600080fd5b80632212d607116100e95780632212d6071461019857806323b872dd146101af57806342842e0e146101c25780636352211e146101d557806370a08231146101e857600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e610129366004610e25565b6102ab565b60405190151581526020015b60405180910390f35b61014b6102d6565b60405161013a9190610e99565b61016b610166366004610eac565b610368565b6040516001600160a01b03909116815260200161013a565b610196610191366004610ee1565b610391565b005b6101a1600a5481565b60405190815260200161013a565b6101966101bd366004610f0b565b6103a0565b6101966101d0366004610f0b565b610430565b61016b6101e3366004610eac565b610450565b6101a16101f6366004610f47565b61045b565b60095461016b906001600160a01b031681565b61014b6104a3565b610196610224366004610f70565b6104b2565b61019661023736600461104a565b6104bd565b61014b61024a366004610eac565b6104d4565b61012e61025d366004610eac565b600b6020526000908152604090205460ff1681565b61012e6102803660046110b2565b6104ff565b60085461016b906001600160a01b031681565b6101a16102a63660046110e5565b61052d565b60006001600160e01b03198216632483248360e11b14806102d057506102d082610830565b92915050565b6060600080546102e590611177565b80601f016020809104026020016040519081016040528092919081815260200182805461031190611177565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b600061037382610880565b506000828152600460205260409020546001600160a01b03166102d0565b61039c8282336108b9565b5050565b6001600160a01b0382166103cf57604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103dc8383336108c6565b9050836001600160a01b0316816001600160a01b03161461042a576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c6565b50505050565b61044b838383604051806020016040528060008152506104bd565b505050565b60006102d082610880565b60006001600160a01b038216610487576040516322718ad960e21b8152600060048201526024016103c6565b506001600160a01b031660009081526003602052604090205490565b6060600180546102e590611177565b61039c3383836109bf565b6104c88484846103a0565b61042a84848484610a5e565b60606104df82610880565b506040518060600160405280603581526020016113e16035913992915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600085600a54146105755760405162461bcd60e51b815260206004820152601260248201527108a988c40c8decae640dcdee840dac2e8c6d60731b60448201526064016103c6565b606085901c33146105d25760405162461bcd60e51b815260206004820152602160248201527f70726f6f6647656e657261746f724164647220646f6573206e6f74206d6174636044820152600d60fb1b60648201526084016103c6565b6040805160208082018b90528183018a9052606082018990526bffffffffffffffffffffffff198816608083015282516074818403018152609490920183528151918101919091206000818152600b9092529190205460ff161561066f5760405162461bcd60e51b81526020600482015260146024820152731c1c9bdbd988185b1c9958591e481b5a5b9d195960621b60448201526064016103c6565b60085460095460405160009283926001600160a01b03918216926106a5928f928f928f928f928f928f928f9216906024016111b1565b60408051601f198184030181529181526020820180516001600160e01b03166306045a9160e01b179052516106da9190611218565b600060405180830381855afa9150503d8060008114610715576040519150601f19603f3d011682016040523d82523d6000602084013e61071a565b606091505b5091509150816107615760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b60448201526064016103c6565b6000818060200190518101906107779190611234565b9050806107c65760405162461bcd60e51b815260206004820152601b60248201527f70726f6f66206e6f7420696e636c7564656420696e206261746368000000000060448201526064016103c6565b6000848152600b60205260408120805460ff191660011790556007805490826107ee83611251565b9190505590506107fe3382610b87565b610820816040518060600160405280603581526020016113e160359139610bec565b9c9b505050505050505050505050565b60006001600160e01b031982166380ac58cd60e01b148061086157506001600160e01b03198216635b5e139f60e01b145b806102d057506301ffc9a760e01b6001600160e01b03198316146102d0565b6000818152600260205260408120546001600160a01b0316806102d057604051637e27328960e01b8152600481018490526024016103c6565b61044b8383836001610c3c565b6000828152600260205260408120546001600160a01b03908116908316156108f3576108f3818486610d42565b6001600160a01b0381161561093157610910600085600080610c3c565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610960576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0382166109f157604051630b61174360e31b81526001600160a01b03831660048201526024016103c6565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561042a57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610aa0903390889087908790600401611278565b6020604051808303816000875af1925050508015610adb575060408051601f3d908101601f19168201909252610ad8918101906112b5565b60015b610b44573d808015610b09576040519150601f19603f3d011682016040523d82523d6000602084013e610b0e565b606091505b508051600003610b3c57604051633250574960e11b81526001600160a01b03851660048201526024016103c6565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b8057604051633250574960e11b81526001600160a01b03851660048201526024016103c6565b5050505050565b6001600160a01b038216610bb157604051633250574960e11b8152600060048201526024016103c6565b6000610bbf838360006108c6565b90506001600160a01b0381161561044b576040516339e3563760e11b8152600060048201526024016103c6565b6000828152600660205260409020610c048282611320565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b8080610c5057506001600160a01b03821615155b15610d12576000610c6084610880565b90506001600160a01b03831615801590610c8c5750826001600160a01b0316816001600160a01b031614155b8015610c9f5750610c9d81846104ff565b155b15610cc85760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103c6565b8115610d105783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d4d838383610da6565b61044b576001600160a01b038316610d7b57604051637e27328960e01b8152600481018290526024016103c6565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c6565b60006001600160a01b03831615801590610e045750826001600160a01b0316846001600160a01b03161480610de05750610de084846104ff565b80610e0457506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610e2257600080fd5b50565b600060208284031215610e3757600080fd5b8135610e4281610e0c565b9392505050565b60005b83811015610e64578181015183820152602001610e4c565b50506000910152565b60008151808452610e85816020860160208601610e49565b601f01601f19169290920160200192915050565b602081526000610e426020830184610e6d565b600060208284031215610ebe57600080fd5b5035919050565b80356001600160a01b0381168114610edc57600080fd5b919050565b60008060408385031215610ef457600080fd5b610efd83610ec5565b946020939093013593505050565b600080600060608486031215610f2057600080fd5b610f2984610ec5565b9250610f3760208501610ec5565b9150604084013590509250925092565b600060208284031215610f5957600080fd5b610e4282610ec5565b8015158114610e2257600080fd5b60008060408385031215610f8357600080fd5b610f8c83610ec5565b91506020830135610f9c81610f62565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610fce57600080fd5b813567ffffffffffffffff80821115610fe957610fe9610fa7565b604051601f8301601f19908116603f0116810190828211818310171561101157611011610fa7565b8160405283815286602085880101111561102a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561106057600080fd5b61106985610ec5565b935061107760208601610ec5565b925060408501359150606085013567ffffffffffffffff81111561109a57600080fd5b6110a687828801610fbd565b91505092959194509250565b600080604083850312156110c557600080fd5b6110ce83610ec5565b91506110dc60208401610ec5565b90509250929050565b600080600080600080600060e0888a03121561110057600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461113257600080fd5b93506080880135925060a088013567ffffffffffffffff81111561115557600080fd5b6111618a828b01610fbd565b92505060c0880135905092959891949750929550565b600181811c9082168061118b57607f821691505b6020821081036111ab57634e487b7160e01b600052602260045260246000fd5b50919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a08401526111f281840187610e6d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b6000825161122a818460208701610e49565b9190910192915050565b60006020828403121561124657600080fd5b8151610e4281610f62565b60006001820161127157634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906112ab90830184610e6d565b9695505050505050565b6000602082840312156112c757600080fd5b8151610e4281610e0c565b601f82111561044b57600081815260208120601f850160051c810160208610156112f95750805b601f850160051c820191505b8181101561131857828155600101611305565b505050505050565b815167ffffffffffffffff81111561133a5761133a610fa7565b61134e816113488454611177565b846112d2565b602080601f831160018114611383576000841561136b5750858301515b600019600386901b1c1916600185901b178555611318565b600085815260208120601f198616915b828110156113b257888601518255948401946001909101908401611393565b50858210156113d05787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe697066733a2f2f516d554b76696e793978326f51556567794a464642415555327135727675354373507a725561425344756b704851a2646970667358221220e18828ee8df71e0807a53db821b319416c0c2e1d2b9761b2de39a61c4555fc6d64736f6c63430008150033","sourceMap":"241:2873:35:-:0;;;449:66;410:105;;629:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1381:113:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1381:113:23;;;1455:5;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:23;:17;1480:7;1470;:17;:::i;:::-;-1:-1:-1;;774:21:35::1;:46:::0;;-1:-1:-1;;;;;774:46:35;;::::1;-1:-1:-1::0;;;;;;774:46:35;;::::1;;::::0;;;830:18:::1;:40:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;241:2873:35;;14:177:36;93:13;;-1:-1:-1;;;;;135:31:36;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:127::-;555:10;550:3;546:20;543:1;536:31;586:4;583:1;576:15;610:4;607:1;600:15;626:380;705:1;701:12;;;;748;;;769:61;;823:4;815:6;811:17;801:27;;769:61;876:2;868:6;865:14;845:18;842:38;839:161;;922:10;917:3;913:20;910:1;903:31;957:4;954:1;947:15;985:4;982:1;975:15;839:161;;626:380;;;:::o;1137:545::-;1239:2;1234:3;1231:11;1228:448;;;1275:1;1300:5;1296:2;1289:17;1345:4;1341:2;1331:19;1415:2;1403:10;1399:19;1396:1;1392:27;1386:4;1382:38;1451:4;1439:10;1436:20;1433:47;;;-1:-1:-1;1474:4:36;1433:47;1529:2;1524:3;1520:12;1517:1;1513:20;1507:4;1503:31;1493:41;;1584:82;1602:2;1595:5;1592:13;1584:82;;;1647:17;;;1628:1;1617:13;1584:82;;;1588:3;;;1228:448;1137:545;;;:::o;1858:1352::-;1978:10;;-1:-1:-1;;;;;2000:30:36;;1997:56;;;2033:18;;:::i;:::-;2062:97;2152:6;2112:38;2144:4;2138:11;2112:38;:::i;:::-;2106:4;2062:97;:::i;:::-;2214:4;;2278:2;2267:14;;2295:1;2290:663;;;;2997:1;3014:6;3011:89;;;-1:-1:-1;3066:19:36;;;3060:26;3011:89;-1:-1:-1;;1815:1:36;1811:11;;;1807:24;1803:29;1793:40;1839:1;1835:11;;;1790:57;3113:81;;2260:944;;2290:663;1084:1;1077:14;;;1121:4;1108:18;;-1:-1:-1;;2326:20:36;;;2444:236;2458:7;2455:1;2452:14;2444:236;;;2547:19;;;2541:26;2526:42;;2639:27;;;;2607:1;2595:14;;;;2474:19;;2444:236;;;2448:3;2708:6;2699:7;2696:19;2693:201;;;2769:19;;;2763:26;-1:-1:-1;;2852:1:36;2848:14;;;2864:3;2844:24;2840:37;2836:42;2821:58;2806:74;;2693:201;-1:-1:-1;;;;;2940:1:36;2924:14;;;2920:22;2907:36;;-1:-1:-1;1858:1352:36:o;:::-;241:2873:35;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101165760003560e01c806390a05f2e116100a2578063c87b56dd11610071578063c87b56dd1461023c578063dd3df4bd1461024f578063e985e9c514610272578063f19cd88214610285578063fa534dc01461029857600080fd5b806390a05f2e146101fb57806395d89b411461020e578063a22cb46514610216578063b88d4fde1461022957600080fd5b80632212d607116100e95780632212d6071461019857806323b872dd146101af57806342842e0e146101c25780636352211e146101d557806370a08231146101e857600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e610129366004610e25565b6102ab565b60405190151581526020015b60405180910390f35b61014b6102d6565b60405161013a9190610e99565b61016b610166366004610eac565b610368565b6040516001600160a01b03909116815260200161013a565b610196610191366004610ee1565b610391565b005b6101a1600a5481565b60405190815260200161013a565b6101966101bd366004610f0b565b6103a0565b6101966101d0366004610f0b565b610430565b61016b6101e3366004610eac565b610450565b6101a16101f6366004610f47565b61045b565b60095461016b906001600160a01b031681565b61014b6104a3565b610196610224366004610f70565b6104b2565b61019661023736600461104a565b6104bd565b61014b61024a366004610eac565b6104d4565b61012e61025d366004610eac565b600b6020526000908152604090205460ff1681565b61012e6102803660046110b2565b6104ff565b60085461016b906001600160a01b031681565b6101a16102a63660046110e5565b61052d565b60006001600160e01b03198216632483248360e11b14806102d057506102d082610830565b92915050565b6060600080546102e590611177565b80601f016020809104026020016040519081016040528092919081815260200182805461031190611177565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b600061037382610880565b506000828152600460205260409020546001600160a01b03166102d0565b61039c8282336108b9565b5050565b6001600160a01b0382166103cf57604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103dc8383336108c6565b9050836001600160a01b0316816001600160a01b03161461042a576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c6565b50505050565b61044b838383604051806020016040528060008152506104bd565b505050565b60006102d082610880565b60006001600160a01b038216610487576040516322718ad960e21b8152600060048201526024016103c6565b506001600160a01b031660009081526003602052604090205490565b6060600180546102e590611177565b61039c3383836109bf565b6104c88484846103a0565b61042a84848484610a5e565b60606104df82610880565b506040518060600160405280603581526020016113e16035913992915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600085600a54146105755760405162461bcd60e51b815260206004820152601260248201527108a988c40c8decae640dcdee840dac2e8c6d60731b60448201526064016103c6565b606085901c33146105d25760405162461bcd60e51b815260206004820152602160248201527f70726f6f6647656e657261746f724164647220646f6573206e6f74206d6174636044820152600d60fb1b60648201526084016103c6565b6040805160208082018b90528183018a9052606082018990526bffffffffffffffffffffffff198816608083015282516074818403018152609490920183528151918101919091206000818152600b9092529190205460ff161561066f5760405162461bcd60e51b81526020600482015260146024820152731c1c9bdbd988185b1c9958591e481b5a5b9d195960621b60448201526064016103c6565b60085460095460405160009283926001600160a01b03918216926106a5928f928f928f928f928f928f928f9216906024016111b1565b60408051601f198184030181529181526020820180516001600160e01b03166306045a9160e01b179052516106da9190611218565b600060405180830381855afa9150503d8060008114610715576040519150601f19603f3d011682016040523d82523d6000602084013e61071a565b606091505b5091509150816107615760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b60448201526064016103c6565b6000818060200190518101906107779190611234565b9050806107c65760405162461bcd60e51b815260206004820152601b60248201527f70726f6f66206e6f7420696e636c7564656420696e206261746368000000000060448201526064016103c6565b6000848152600b60205260408120805460ff191660011790556007805490826107ee83611251565b9190505590506107fe3382610b87565b610820816040518060600160405280603581526020016113e160359139610bec565b9c9b505050505050505050505050565b60006001600160e01b031982166380ac58cd60e01b148061086157506001600160e01b03198216635b5e139f60e01b145b806102d057506301ffc9a760e01b6001600160e01b03198316146102d0565b6000818152600260205260408120546001600160a01b0316806102d057604051637e27328960e01b8152600481018490526024016103c6565b61044b8383836001610c3c565b6000828152600260205260408120546001600160a01b03908116908316156108f3576108f3818486610d42565b6001600160a01b0381161561093157610910600085600080610c3c565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610960576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0382166109f157604051630b61174360e31b81526001600160a01b03831660048201526024016103c6565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561042a57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610aa0903390889087908790600401611278565b6020604051808303816000875af1925050508015610adb575060408051601f3d908101601f19168201909252610ad8918101906112b5565b60015b610b44573d808015610b09576040519150601f19603f3d011682016040523d82523d6000602084013e610b0e565b606091505b508051600003610b3c57604051633250574960e11b81526001600160a01b03851660048201526024016103c6565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b8057604051633250574960e11b81526001600160a01b03851660048201526024016103c6565b5050505050565b6001600160a01b038216610bb157604051633250574960e11b8152600060048201526024016103c6565b6000610bbf838360006108c6565b90506001600160a01b0381161561044b576040516339e3563760e11b8152600060048201526024016103c6565b6000828152600660205260409020610c048282611320565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b8080610c5057506001600160a01b03821615155b15610d12576000610c6084610880565b90506001600160a01b03831615801590610c8c5750826001600160a01b0316816001600160a01b031614155b8015610c9f5750610c9d81846104ff565b155b15610cc85760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103c6565b8115610d105783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d4d838383610da6565b61044b576001600160a01b038316610d7b57604051637e27328960e01b8152600481018290526024016103c6565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c6565b60006001600160a01b03831615801590610e045750826001600160a01b0316846001600160a01b03161480610de05750610de084846104ff565b80610e0457506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610e2257600080fd5b50565b600060208284031215610e3757600080fd5b8135610e4281610e0c565b9392505050565b60005b83811015610e64578181015183820152602001610e4c565b50506000910152565b60008151808452610e85816020860160208601610e49565b601f01601f19169290920160200192915050565b602081526000610e426020830184610e6d565b600060208284031215610ebe57600080fd5b5035919050565b80356001600160a01b0381168114610edc57600080fd5b919050565b60008060408385031215610ef457600080fd5b610efd83610ec5565b946020939093013593505050565b600080600060608486031215610f2057600080fd5b610f2984610ec5565b9250610f3760208501610ec5565b9150604084013590509250925092565b600060208284031215610f5957600080fd5b610e4282610ec5565b8015158114610e2257600080fd5b60008060408385031215610f8357600080fd5b610f8c83610ec5565b91506020830135610f9c81610f62565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610fce57600080fd5b813567ffffffffffffffff80821115610fe957610fe9610fa7565b604051601f8301601f19908116603f0116810190828211818310171561101157611011610fa7565b8160405283815286602085880101111561102a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561106057600080fd5b61106985610ec5565b935061107760208601610ec5565b925060408501359150606085013567ffffffffffffffff81111561109a57600080fd5b6110a687828801610fbd565b91505092959194509250565b600080604083850312156110c557600080fd5b6110ce83610ec5565b91506110dc60208401610ec5565b90509250929050565b600080600080600080600060e0888a03121561110057600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461113257600080fd5b93506080880135925060a088013567ffffffffffffffff81111561115557600080fd5b6111618a828b01610fbd565b92505060c0880135905092959891949750929550565b600181811c9082168061118b57607f821691505b6020821081036111ab57634e487b7160e01b600052602260045260246000fd5b50919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a08401526111f281840187610e6d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b6000825161122a818460208701610e49565b9190910192915050565b60006020828403121561124657600080fd5b8151610e4281610f62565b60006001820161127157634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906112ab90830184610e6d565b9695505050505050565b6000602082840312156112c757600080fd5b8151610e4281610e0c565b601f82111561044b57600081815260208120601f850160051c810160208610156112f95750805b601f850160051c820191505b8181101561131857828155600101611305565b505050505050565b815167ffffffffffffffff81111561133a5761133a610fa7565b61134e816113488454611177565b846112d2565b602080601f831160018114611383576000841561136b5750858301515b600019600386901b1c1916600185901b178555611318565b600085815260208120601f198616915b828110156113b257888601518255948401946001909101908401611393565b50858210156113d05787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe697066733a2f2f516d554b76696e793978326f51556567794a464642415555327135727675354373507a725561425344756b704851a2646970667358221220e18828ee8df71e0807a53db821b319416c0c2e1d2b9761b2de39a61c4555fc6d64736f6c63430008150033","sourceMap":"241:2873:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:207:26;;;;;;:::i;:::-;;:::i;:::-;;;565:14:36;;558:22;540:41;;528:2;513:18;937:207:26;;;;;;;;2365:89:23;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:36;;;1679:51;;1667:2;1652:18;3497:154:23;1533:203:36;3323:113:23;;;;;;:::i;:::-;;:::i;:::-;;410:105:35;;;;;;;;;2324:25:36;;;2312:2;2297:18;410:105:35;2178:177:36;4143:578:23;;;;;;:::i;:::-;;:::i;4787:132::-;;;;;;:::i;:::-;;:::i;2185:118::-;;;;;;:::i;:::-;;:::i;1920:208::-;;;;;;:::i;:::-;;:::i;370:33:35:-;;;;;-1:-1:-1;;;;;370:33:35;;;2518:93:23;;;:::i;3718:144::-;;;;;;:::i;:::-;;:::i;4985:208::-;;;;;;:::i;:::-;;:::i;2898:214:35:-;;;;;;:::i;:::-;;:::i;578:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3928:153:23;;;;;;:::i;:::-;;:::i;328:36:35:-;;;;;-1:-1:-1;;;;;328:36:35;;;883:2009;;;;;;:::i;:::-;;:::i;937:207:26:-;1039:4;-1:-1:-1;;;;;;1062:35:26;;-1:-1:-1;;;1062:35:26;;:75;;;1101:36;1125:11;1101:23;:36::i;:::-;1055:82;937:207;-1:-1:-1;;937:207:26:o;2365:89:23:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:23;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:23;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:28;3394:8:23;:35::i;:::-;3323:113;;:::o;4143:578::-;-1:-1:-1;;;;;4237:16:23;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:23;;4306:1;4276:33;;;1679:51:36;1652:18;;4276:33:23;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:28;4562:7:23;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:23;:13;-1:-1:-1;;;;;4610:21:23;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:23;;-1:-1:-1;;;;;6854:15:36;;;4654:50:23;;;6836:34:36;6886:18;;;6879:34;;;6949:15;;6929:18;;;6922:43;6771:18;;4654:50:23;6596:375:36;4606:109:23;4223:498;4143:578;;;:::o;4787:132::-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;1920:208::-;1983:7;-1:-1:-1;;;;;2006:19:23;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:23;;2075:1;2048:30;;;1679:51:36;1652:18;;2048:30:23;1533:203:36;2002:87:23;-1:-1:-1;;;;;;2105:16:23;;;;;:9;:16;;;;;;;1920:208::o;2518:93::-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:28;3836:8:23;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;2898:214:35:-;2985:13;3010:22;3024:7;3010:13;:22::i;:::-;;3043:62;;;;;;;;;;;;;;;;;;2898:214;-1:-1:-1;;2898:214:35:o;3928:153:23:-;-1:-1:-1;;;;;4039:25:23;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;883:2009:35:-;1201:7;1258:30;1241:13;;:47;1220:112;;;;-1:-1:-1;;;1220:112:35;;7178:2:36;1220:112:35;;;7160:21:36;7217:2;7197:18;;;7190:30;-1:-1:-1;;;7236:18:36;;;7229:48;7294:18;;1220:112:35;6976:342:36;1220:112:35;1363:27;;;;1394:10;1363:41;1342:121;;;;-1:-1:-1;;;1342:121:35;;7525:2:36;1342:121:35;;;7507:21:36;7564:2;7544:18;;;7537:30;7603:34;7583:18;;;7576:62;-1:-1:-1;;;7654:18:36;;;7647:31;7695:19;;1342:121:35;7323:397:36;1342:121:35;1516:183;;;;;;;7938:19:36;;;7973:12;;;7966:28;;;8010:12;;;8003:28;;;-1:-1:-1;;8061:44:36;;8047:12;;;8040:66;1516:183:35;;;;;;;;;8122:13:36;;;;1516:183:35;;1493:216;;;;;;;;;-1:-1:-1;1728:22:35;;;:12;:22;;;;;;;;;1727:23;1719:56;;;;-1:-1:-1;;;1719:56:35;;8348:2:36;1719:56:35;;;8330:21:36;8387:2;8367:18;;;8360:30;-1:-1:-1;;;8406:18:36;;;8399:50;8466:18;;1719:56:35;8146:344:36;1719:56:35;1878:21;;2367:18;;1928:475;;1800:23;;;;-1:-1:-1;;;;;1878:21:35;;;;1928:475;;2080:15;;2117:18;;2157:30;;2209:18;;2249:15;;2286:11;;2319:26;;2367:18;;1928:475;;;:::i;:::-;;;;-1:-1:-1;;1928:475:35;;;;;;;;;;;;;;-1:-1:-1;;;;;1928:475:35;-1:-1:-1;;;1928:475:35;;;1878:539;;;1928:475;1878:539;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1786:631;;;;2436:18;2428:49;;;;-1:-1:-1;;;2428:49:35;;9799:2:36;2428:49:35;;;9781:21:36;9838:2;9818:18;;;9811:30;-1:-1:-1;;;9857:18:36;;;9850:48;9915:18;;2428:49:35;9597:342:36;2428:49:35;2488:24;2526:15;2515:35;;;;;;;;;;;;:::i;:::-;2488:62;;2568:19;2560:59;;;;-1:-1:-1;;;2560:59:35;;10396:2:36;2560:59:35;;;10378:21:36;10435:2;10415:18;;;10408:30;10474:29;10454:18;;;10447:57;10521:18;;2560:59:35;10194:351:36;2560:59:35;2630:22;;;;:12;:22;;;;;:29;;-1:-1:-1;;2630:29:35;2655:4;2630:29;;;2688:12;:14;;;2630:22;2688:14;;;:::i;:::-;;;;;2670:32;;2712:26;2718:10;2730:7;2712:5;:26::i;:::-;2748:112;2774:7;2748:112;;;;;;;;;;;;;;;;;:12;:112::i;:::-;2878:7;883:2009;-1:-1:-1;;;;;;;;;;;;883:2009:35:o;1561:300:23:-;1663:4;-1:-1:-1;;;;;;1698:40:23;;-1:-1:-1;;;1698:40:23;;:104;;-1:-1:-1;;;;;;;1754:48:23;;-1:-1:-1;;;1754:48:23;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:30;;;1818:36:23;762:146:30;16138:241:23;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:23;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:23;;;;;2324:25:36;;;2297:18;;16309:31:23;2178:177:36;14418:120:23;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;8838:795::-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:23;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:23;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:23;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:23;;;9157:256;-1:-1:-1;;;;;9427:16:23;;;9423:107;;-1:-1:-1;;;;;9487:13:23;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:23;-1:-1:-1;;;;;9540:21:23;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:23:o;15591:312::-;-1:-1:-1;;;;;15698:22:23;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:23;;-1:-1:-1;;;;;1697:32:36;;15743:31:23;;;1679:51:36;1652:18;;15743:31:23;1533:203:36;15694:91:23;-1:-1:-1;;;;;15794:25:23;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:23;;;;;;;;;;15855:41;;540::36;;;15855::23;;513:18:36;15855:41:23;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:23;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:23;;-1:-1:-1;;;;;17072:36:23;;;;;:71;;735:10:28;;17123:4:23;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:23;;;;;;;;-1:-1:-1;;17072:71:23;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:23;;-1:-1:-1;;;;;1697:32:36;;17430:25:23;;;1679:51:36;1652:18;;17430:25:23;1533:203:36;17377:293:23;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:23;;-1:-1:-1;;;17190:51:23;17186:130;;17272:25;;-1:-1:-1;;;17272:25:23;;-1:-1:-1;;;;;1697:32:36;;17272:25:23;;;1679:51:36;1652:18;;17272:25:23;1533:203:36;17186:130:23;17144:186;16918:782;;;;:::o;9955:327::-;-1:-1:-1;;;;;10022:16:23;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:23;;10091:1;10061:33;;;1679:51:36;1652:18;;10061:33:23;1533:203:36;10018:87:23;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:23;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:23;;10262:1;10234:31;;;1679:51:36;1652:18;;10234:31:23;1533:203:36;1922:167:26;2013:19;;;;:10;:19;;;;;:31;2035:9;2013:19;:31;:::i;:::-;-1:-1:-1;2059:23:26;;2324:25:36;;;2059:23:26;;2312:2:36;2297:18;2059:23:26;;;;;;;1922:167;;:::o;14720:662:23:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:23;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:23;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:23;:5;-1:-1:-1;;;;;15115:13:23;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:23;;-1:-1:-1;;;;;1697:32:36;;15189:27:23;;;1679:51:36;1652:18;;15189:27:23;1533:203:36;15089:142:23;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:23;15292:5;-1:-1:-1;;;;;15283:28:23;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:23;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:23;-1:-1:-1;;;;;15346:29:23;;;;;;;;;;14720:662::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:23;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:23;;;;;2324:25:36;;;2297:18;;7298:31:23;2178:177:36;7248:186:23;7375:44;;-1:-1:-1;;;7375:44:23;;-1:-1:-1;;;;;13931:32:36;;7375:44:23;;;13913:51:36;13980:18;;;13973:34;;;13886:18;;7375:44:23;13739:274:36;6376:272:23;6479:4;-1:-1:-1;;;;;6514:21:23;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:23;:5;-1:-1:-1;;;;;6552:16:23;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;6008:7:23;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6608:32:23;;;6034:24;;6608:32;6552:88;6495:146;6376:272;-1:-1:-1;;;;6376:272:23:o;14:131:36:-;-1:-1:-1;;;;;;88:32:36;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:36:o;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:36;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:36;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:36:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:36;;1348:180;-1:-1:-1;1348:180:36:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:36;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:36:o;2360:328::-;2437:6;2445;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2545:29;2564:9;2545:29;:::i;:::-;2535:39;;2593:38;2627:2;2616:9;2612:18;2593:38;:::i;:::-;2583:48;;2678:2;2667:9;2663:18;2650:32;2640:42;;2360:328;;;;;:::o;2693:186::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2844:29;2863:9;2844:29;:::i;3066:118::-;3152:5;3145:13;3138:21;3131:5;3128:32;3118:60;;3174:1;3171;3164:12;3189:315;3254:6;3262;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;3354:29;3373:9;3354:29;:::i;:::-;3344:39;;3433:2;3422:9;3418:18;3405:32;3446:28;3468:5;3446:28;:::i;:::-;3493:5;3483:15;;;3189:315;;;;;:::o;3509:127::-;3570:10;3565:3;3561:20;3558:1;3551:31;3601:4;3598:1;3591:15;3625:4;3622:1;3615:15;3641:718;3683:5;3736:3;3729:4;3721:6;3717:17;3713:27;3703:55;;3754:1;3751;3744:12;3703:55;3790:6;3777:20;3816:18;3853:2;3849;3846:10;3843:36;;;3859:18;;:::i;:::-;3934:2;3928:9;3902:2;3988:13;;-1:-1:-1;;3984:22:36;;;4008:2;3980:31;3976:40;3964:53;;;4032:18;;;4052:22;;;4029:46;4026:72;;;4078:18;;:::i;:::-;4118:10;4114:2;4107:22;4153:2;4145:6;4138:18;4199:3;4192:4;4187:2;4179:6;4175:15;4171:26;4168:35;4165:55;;;4216:1;4213;4206:12;4165:55;4280:2;4273:4;4265:6;4261:17;4254:4;4246:6;4242:17;4229:54;4327:1;4320:4;4315:2;4307:6;4303:15;4299:26;4292:37;4347:6;4338:15;;;;;;3641:718;;;;:::o;4364:537::-;4459:6;4467;4475;4483;4536:3;4524:9;4515:7;4511:23;4507:33;4504:53;;;4553:1;4550;4543:12;4504:53;4576:29;4595:9;4576:29;:::i;:::-;4566:39;;4624:38;4658:2;4647:9;4643:18;4624:38;:::i;:::-;4614:48;;4709:2;4698:9;4694:18;4681:32;4671:42;;4764:2;4753:9;4749:18;4736:32;4791:18;4783:6;4780:30;4777:50;;;4823:1;4820;4813:12;4777:50;4846:49;4887:7;4878:6;4867:9;4863:22;4846:49;:::i;:::-;4836:59;;;4364:537;;;;;;;:::o;5091:260::-;5159:6;5167;5220:2;5208:9;5199:7;5195:23;5191:32;5188:52;;;5236:1;5233;5226:12;5188:52;5259:29;5278:9;5259:29;:::i;:::-;5249:39;;5307:38;5341:2;5330:9;5326:18;5307:38;:::i;:::-;5297:48;;5091:260;;;;;:::o;5356:850::-;5478:6;5486;5494;5502;5510;5518;5526;5579:3;5567:9;5558:7;5554:23;5550:33;5547:53;;;5596:1;5593;5586:12;5547:53;5619:23;;;-1:-1:-1;5689:2:36;5674:18;;5661:32;;-1:-1:-1;5740:2:36;5725:18;;5712:32;;-1:-1:-1;5794:2:36;5779:18;;5766:32;-1:-1:-1;;5827:43:36;;5817:54;;5807:82;;5885:1;5882;5875:12;5807:82;5908:5;-1:-1:-1;5960:3:36;5945:19;;5932:33;;-1:-1:-1;6016:3:36;6001:19;;5988:33;6044:18;6033:30;;6030:50;;;6076:1;6073;6066:12;6030:50;6099:49;6140:7;6131:6;6120:9;6116:22;6099:49;:::i;:::-;6089:59;;;6195:3;6184:9;6180:19;6167:33;6157:43;;5356:850;;;;;;;;;;:::o;6211:380::-;6290:1;6286:12;;;;6333;;;6354:61;;6408:4;6400:6;6396:17;6386:27;;6354:61;6461:2;6453:6;6450:14;6430:18;6427:38;6424:161;;6507:10;6502:3;6498:20;6495:1;6488:31;6542:4;6539:1;6532:15;6570:4;6567:1;6560:15;6424:161;;6211:380;;;:::o;8495:805::-;8801:4;8830:3;8860:6;8849:9;8842:25;8903:6;8898:2;8887:9;8883:18;8876:34;8946:6;8941:2;8930:9;8926:18;8919:34;9005:26;9001:31;8993:6;8989:44;8984:2;8973:9;8969:18;8962:72;9071:6;9065:3;9054:9;9050:19;9043:35;9115:2;9109:3;9098:9;9094:19;9087:31;9135:45;9176:2;9165:9;9161:18;9153:6;9135:45;:::i;:::-;9211:3;9196:19;;9189:35;;;;-1:-1:-1;;;;;;;9261:32:36;;;;9255:3;9240:19;;;9233:61;9127:53;8495:805;-1:-1:-1;;;;;;8495:805:36:o;9305:287::-;9434:3;9472:6;9466:13;9488:66;9547:6;9542:3;9535:4;9527:6;9523:17;9488:66;:::i;:::-;9570:16;;;;;9305:287;-1:-1:-1;;9305:287:36:o;9944:245::-;10011:6;10064:2;10052:9;10043:7;10039:23;10035:32;10032:52;;;10080:1;10077;10070:12;10032:52;10112:9;10106:16;10131:28;10153:5;10131:28;:::i;10550:232::-;10589:3;10610:17;;;10607:140;;10669:10;10664:3;10660:20;10657:1;10650:31;10704:4;10701:1;10694:15;10732:4;10729:1;10722:15;10607:140;-1:-1:-1;10774:1:36;10763:13;;10550:232::o;10787:489::-;-1:-1:-1;;;;;11056:15:36;;;11038:34;;11108:15;;11103:2;11088:18;;11081:43;11155:2;11140:18;;11133:34;;;11203:3;11198:2;11183:18;;11176:31;;;10981:4;;11224:46;;11250:19;;11242:6;11224:46;:::i;:::-;11216:54;10787:489;-1:-1:-1;;;;;;10787:489:36:o;11281:249::-;11350:6;11403:2;11391:9;11382:7;11378:23;11374:32;11371:52;;;11419:1;11416;11409:12;11371:52;11451:9;11445:16;11470:30;11494:5;11470:30;:::i;11661:545::-;11763:2;11758:3;11755:11;11752:448;;;11799:1;11824:5;11820:2;11813:17;11869:4;11865:2;11855:19;11939:2;11927:10;11923:19;11920:1;11916:27;11910:4;11906:38;11975:4;11963:10;11960:20;11957:47;;;-1:-1:-1;11998:4:36;11957:47;12053:2;12048:3;12044:12;12041:1;12037:20;12031:4;12027:31;12017:41;;12108:82;12126:2;12119:5;12116:13;12108:82;;;12171:17;;;12152:1;12141:13;12108:82;;;12112:3;;;11661:545;;;:::o;12382:1352::-;12508:3;12502:10;12535:18;12527:6;12524:30;12521:56;;;12557:18;;:::i;:::-;12586:97;12676:6;12636:38;12668:4;12662:11;12636:38;:::i;:::-;12630:4;12586:97;:::i;:::-;12738:4;;12802:2;12791:14;;12819:1;12814:663;;;;13521:1;13538:6;13535:89;;;-1:-1:-1;13590:19:36;;;13584:26;13535:89;-1:-1:-1;;12339:1:36;12335:11;;;12331:24;12327:29;12317:40;12363:1;12359:11;;;12314:57;13637:81;;12784:944;;12814:663;11608:1;11601:14;;;11645:4;11632:18;;-1:-1:-1;;12850:20:36;;;12968:236;12982:7;12979:1;12976:14;12968:236;;;13071:19;;;13065:26;13050:42;;13163:27;;;;13131:1;13119:14;;;;12998:19;;12968:236;;;12972:3;13232:6;13223:7;13220:19;13217:201;;;13293:19;;;13287:26;-1:-1:-1;;13376:1:36;13372:14;;;13388:3;13368:24;13364:37;13360:42;13345:58;13330:74;;13217:201;-1:-1:-1;;;;;13464:1:36;13448:14;;;13444:22;13431:36;;-1:-1:-1;12382:1352:36:o","linkReferences":{}},"methodIdentifiers":{"alignedServiceManager()":"f19cd882","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","elfCommitment()":"2212d607","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mintedProofs(bytes32)":"dd3df4bd","name()":"06fdde03","ownerOf(uint256)":"6352211e","paymentServiceAddr()":"90a05f2e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)":"fa534dc0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_paymentServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"alignedServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"elfCommitment\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"mintedProofs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymentServiceAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubInputCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"}],\"name\":\"verifyBatchInclusion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/VerifierContract.sol\":\"VerifierContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/VerifierContract.sol\":{\"keccak256\":\"0xc8659bc4c13fefdfa3dcbc8cfefc578a7bbfa3e265d0058cd2cd474bdab87966\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a218a59d1a5502392148e281e6018d7214fc5dbe3e830ae683601e16986734f8\",\"dweb:/ipfs/QmVJ6yQ4vijhg6FEZQnaBY8YJspFxEgPqZZhPiiQHahVdw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceManager","type":"address"},{"internalType":"address","name":"_paymentServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_fromTokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"_toTokenId","type":"uint256","indexed":false}],"type":"event","name":"BatchMetadataUpdate","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":false}],"type":"event","name":"MetadataUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"alignedServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"elfCommitment","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"mintedProofs","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paymentServiceAddr","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"pubInputCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"verifyBatchInclusion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}"},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/VerifierContract.sol":"VerifierContract"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol":{"keccak256":"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44","urls":["bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd","dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol":{"keccak256":"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d","urls":["bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b","dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"keccak256":"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670","urls":["bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96","dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"src/VerifierContract.sol":{"keccak256":"0xc8659bc4c13fefdfa3dcbc8cfefc578a7bbfa3e265d0058cd2cd474bdab87966","urls":["bzz-raw://a218a59d1a5502392148e281e6018d7214fc5dbe3e830ae683601e16986734f8","dweb:/ipfs/QmVJ6yQ4vijhg6FEZQnaBY8YJspFxEgPqZZhPiiQHahVdw"],"license":"UNLICENSED"}},"version":1},"id":35} \ No newline at end of file diff --git a/examples/zkquiz/quiz/script/src/main.rs b/examples/zkquiz/quiz/script/src/main.rs index 1880a85b9..383d3a763 100644 --- a/examples/zkquiz/quiz/script/src/main.rs +++ b/examples/zkquiz/quiz/script/src/main.rs @@ -5,7 +5,7 @@ use std::str::FromStr; use std::sync::Arc; use aligned_sdk::core::types::{AlignedVerificationData, Chain, ProvingSystemId, VerificationData}; -use aligned_sdk::sdk::{submit_and_wait, get_next_nonce}; +use aligned_sdk::sdk::{submit_and_wait_verification, get_next_nonce}; use clap::Parser; use dialoguer::Confirm; use ethers::prelude::*; @@ -72,7 +72,7 @@ async fn main() { let client = ProverClient::new(); let (pk, vk) = client.setup(ELF); - match client.prove(&pk, stdin).compressed().run() { + match client.prove(&pk, stdin).run() { Ok(proof) => { println!("Proof generated successfully. Verifying proof..."); @@ -109,35 +109,30 @@ async fn main() { let nonce = get_next_nonce(&rpc_url, wallet.address(), BATCHER_PAYMENTS_ADDRESS).await .expect("Failed to get next nonce"); - match submit_and_wait( + match submit_and_wait_verification( BATCHER_URL, &rpc_url, Chain::Holesky, &verification_data, wallet.clone(), - nonce + nonce, + BATCHER_PAYMENTS_ADDRESS ) .await { - Ok(maybe_aligned_verification_data) => match maybe_aligned_verification_data { - Some(aligned_verification_data) => { - println!( - "Proof submitted and verified successfully on batch {}, claiming prize...", - hex::encode(aligned_verification_data.batch_merkle_root) - ); - - if let Err(e) = verify_batch_inclusion( - aligned_verification_data.clone(), - signer.clone(), - args.verifier_contract_address, - ) - .await - { - println!("Failed to claim prize: {:?}", e); - } - } - None => { - println!("Proof submission failed. No verification data"); + Ok(aligned_verification_data) => { + println!( + "Proof submitted and verified successfully on batch {}, claiming prize...", + hex::encode(aligned_verification_data.batch_merkle_root) + ); + if let Err(e) = verify_batch_inclusion( + aligned_verification_data.clone(), + signer.clone(), + args.verifier_contract_address, + ) + .await + { + println!("Failed to claim prize: {:?}", e); } }, Err(e) => {