diff --git a/docs/3_guides/6_setup_aligned.md b/docs/3_guides/6_setup_aligned.md index 58459c416..3c541a8af 100644 --- a/docs/3_guides/6_setup_aligned.md +++ b/docs/3_guides/6_setup_aligned.md @@ -668,6 +668,7 @@ The `.env` file needs to contain the following variables: | `DB_HOST` | The host URL where the postgres database will be running. | | `ELIXIR_HOSTNAME` | The hostname of your running elixir. | | `DEBUG_ERRORS` | If you want to enable phoenix errors on your browser instead of a 500 page, set this to `true`. | +| `TRACKER_API_URL` | The URL of the aligned version each operator is running. | Then you can run the explorer with this env file config by entering the following command: diff --git a/explorer/.env.dev b/explorer/.env.dev index 3726128b9..c93bcea2c 100644 --- a/explorer/.env.dev +++ b/explorer/.env.dev @@ -17,3 +17,6 @@ ALIGNED_CONFIG_FILE="../contracts/script/output/devnet/alignedlayer_deployment_o # Debug DEBUG_ERRORS=true + +# Operator version tracker API +TRACKER_API_URL=http://localhost:3030 diff --git a/explorer/.env.example b/explorer/.env.example index 5701c445b..290801b6a 100644 --- a/explorer/.env.example +++ b/explorer/.env.example @@ -17,3 +17,6 @@ ALIGNED_CONFIG_FILE="" # Debug DEBUG_ERRORS= + +# Tracker API +TRACKER_API_URL= diff --git a/explorer/config/config.exs b/explorer/config/config.exs index 070db71d6..74e986d08 100644 --- a/explorer/config/config.exs +++ b/explorer/config/config.exs @@ -8,7 +8,8 @@ import Config config :explorer, - generators: [timestamp_type: :utc_datetime] + generators: [timestamp_type: :utc_datetime], + tracker_api_url: System.get_env("TRACKER_API_URL") host = System.get_env("PHX_HOST") || "localhost" diff --git a/explorer/lib/abi/AlignedLayerServiceManager.json b/explorer/lib/abi/AlignedLayerServiceManager.json index d5df0cb5d..bf0021e83 100644 --- a/explorer/lib/abi/AlignedLayerServiceManager.json +++ b/explorer/lib/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":"receive","stateMutability":"payable"},{"type":"function","name":"alignedAggregator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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"},{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"}],"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"},{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"view"},{"type":"function","name":"depositToBatcher","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"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"},{"name":"_alignedAggregator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeAggregator","inputs":[{"name":"_alignedAggregator","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":"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":"setAggregator","inputs":[{"name":"_alignedAggregator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"NewBatchV3","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"},{"name":"respondToTaskFeeLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"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},{"type":"error","name":"BatchAlreadyResponded","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"BatchAlreadySubmitted","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"BatchDoesNotExist","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ExceededMaxRespondFee","inputs":[{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"},{"name":"txCost","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientFunds","inputs":[{"name":"batcher","type":"address","internalType":"address"},{"name":"required","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidDepositAmount","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidQuorumThreshold","inputs":[{"name":"signedStake","type":"uint256","internalType":"uint256"},{"name":"requiredStake","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SenderIsNotAggregator","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"alignedAggregator","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6101806040523480156200001257600080fd5b50604051620056fe380380620056fe8339810160408190526200003591620002e5565b6001600160a01b0380851660805280841660a05280831660c052811660e0528184848284620000636200020a565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e791906200034d565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016691906200034d565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e891906200034d565b6001600160a01b03166101605250620002006200020a565b5050505062000374565b600054610100900460ff1615620002775760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620002ca576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002e257600080fd5b50565b60008060008060808587031215620002fc57600080fd5b84516200030981620002cc565b60208601519094506200031c81620002cc565b60408601519093506200032f81620002cc565b60608601519092506200034281620002cc565b939692955090935050565b6000602082840312156200036057600080fd5b81516200036d81620002cc565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161527c620004826000396000818161064901526117ca01526000818161038c01526119dd0152600081816103c001528181611bca0152611dba01526000818161042701528181610ff2015281816114860152818161162d015261187e015260008181610d0701528181610e6201528181610ef901528181612aa801528181612c2b0152612cca015260008181610b2e01528181610bbd01528181610c3d0152818161216801528181612234015281816129e60152612b8601526000818161309701528181613153015261323f0152600081816103f1015281816121bc01528181612290015261230f015261527c6000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063c0c53b8b116100a0578063f2fde38b1161006f578063f2fde38b14610680578063f9120af6146106a0578063fa534dc0146106c0578063fc299dee146106e0578063fce36c7d1461070057600080fd5b8063c0c53b8b14610604578063d66eaabd14610624578063df5cf72314610637578063e481af9d1461066b57600080fd5b8063a98fb355116100dc578063a98fb35514610540578063ab21739a14610560578063b099627e14610580578063b98d0908146105ea57600080fd5b80638da5cb5b146104c257806395c6d604146104e05780639926ee7d14610500578063a364f4da1461052057600080fd5b80634ae07c37116101855780636d14a987116101545780636d14a9871461041557806370a0823114610449578063715018a61461048d578063800fb61f146104a257600080fd5b80634ae07c371461034c5780635df459461461037a57806368304835146103ae5780636b3aa72e146103e257600080fd5b80633bc28c8c116101c15780633bc28c8c146102c1578063416c7e5e146102e15780634223d551146103015780634a5bf6321461031457600080fd5b806306045a9114610208578063171f1d5b1461023d5780632e1a7d4d1461027457806333cfb7b71461029457600080fd5b36610203576102013334610720565b005b600080fd5b34801561021457600080fd5b506102286102233660046141cc565b6107b2565b60405190151581526020015b60405180910390f35b34801561024957600080fd5b5061025d61025836600461431e565b6108a7565b604080519215158352901515602083015201610234565b34801561028057600080fd5b5061020161028f36600461436f565b610a31565b3480156102a057600080fd5b506102b46102af366004614388565b610b09565b60405161023491906143a5565b3480156102cd57600080fd5b506102016102dc366004614388565b610fdc565b3480156102ed57600080fd5b506102016102fc366004614400565b610ff0565b61020161030f366004614388565b611127565b34801561032057600080fd5b5060cb54610334906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561035857600080fd5b5061036c6103673660046146d3565b611131565b60405161023492919061476d565b34801561038657600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ba57600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ee57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610334565b34801561042157600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561045557600080fd5b5061047f610464366004614388565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610234565b34801561049957600080fd5b50610201612084565b3480156104ae57600080fd5b506102016104bd366004614388565b612098565b3480156104ce57600080fd5b506033546001600160a01b0316610334565b3480156104ec57600080fd5b506102286104fb3660046147fe565b612138565b34801561050c57600080fd5b5061020161051b366004614849565b61215d565b34801561052c57600080fd5b5061020161053b366004614388565b612229565b34801561054c57600080fd5b5061020161055b3660046148f4565b6122f0565b34801561056c57600080fd5b5061020161057b366004614944565b612344565b34801561058c57600080fd5b506105c861059b36600461436f565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610234565b3480156105f657600080fd5b506097546102289060ff1681565b34801561061057600080fd5b5061020161061f36600461496b565b6126fe565b6102016106323660046149b6565b6127e8565b34801561064357600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561067757600080fd5b506102b46129e0565b34801561068c57600080fd5b5061020161069b366004614388565b612da9565b3480156106ac57600080fd5b506102016106bb366004614388565b612e1f565b3480156106cc57600080fd5b506102286106db366004614a08565b612e49565b3480156106ec57600080fd5b50606554610334906001600160a01b031681565b34801561070c57600080fd5b5061020161071b366004614a85565b612ebe565b8061074657604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca60205260408120805483929061076e908490614b0f565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25050565b6000806001600160a01b0383166107ca5750846107f6565b85836040516020016107dd929190614b27565b6040516020818303038152906040528051906020012090505b600081815260c9602052604090205463ffffffff1661081957600091505061089b565b600081815260c96020526040902054640100000000900460ff1661084157600091505061089b565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f198184030181529190528051602082012090915061089587898389613276565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106108ef576108ef614b42565b60200201518951600160200201518a6020015160006002811061091457610914614b42565b60200201518b6020015160016002811061093057610930614b42565b602090810291909101518c518d83015160405161098d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109b09190614b58565b9050610a236109c96109c2888461328e565b8690613325565b6109d16133b9565b610a19610a0a85610a04604080518082018252600080825260209182015281518083019092526001825260029082015290565b9061328e565b610a138c613479565b90613325565b886201d4c0613509565b909890975095505050505050565b33600090815260ca6020526040902054811115610a825733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201839052604482015260640161073d565b33600090815260ca602052604081208054839290610aa1908490614b7a565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b05573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190614b91565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c289190614baa565b90506001600160c01b0381161580610cc257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd9190614bd3565b60ff16155b15610ce25760408051600080825260208201909252905b50949350505050565b6000610cf6826001600160c01b031661372d565b90506000805b8251811015610dcc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d4657610d46614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae9190614b91565b610db89083614b0f565b915080610dc481614bf6565b915050610cfc565b506000816001600160401b03811115610de757610de76140a8565b604051908082528060200260200182016040528015610e10578160200160208202803683370190505b5090506000805b8451811015610fcf576000858281518110610e3457610e34614b42565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190614b91565b905060005b81811015610fb9576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190614c26565b60000151868681518110610f8157610f81614b42565b6001600160a01b039092166020928302919091019091015284610fa381614bf6565b9550508080610fb190614bf6565b915050610ed2565b5050508080610fc790614bf6565b915050610e17565b5090979650505050505050565b610fe46137ef565b610fed81613849565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190614c67565b6001600160a01b0316336001600160a01b03161461111e5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161073d565b610fed816138b2565b610fed8134610720565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561118d57508260a0015151604051806040016040528060018152602001600081525051145b80156111b457508260c0015151604051806040016040528060018152602001600081525051145b80156111db57508260e0015151604051806040016040528060018152602001600081525051145b6112455760405162461bcd60e51b8152602060048201526041602482015260008051602061522783398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161073d565b825151602084015151146112bd5760405162461bcd60e51b815260206004820152604460248201819052600080516020615227833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161073d565b4363ffffffff168463ffffffff161061132c5760405162461bcd60e51b815260206004820152603c602482015260008051602061522783398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161073d565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156113ed576113ed6140a8565b604051908082528060200260200182016040528015611416578160200160208202803683370190505b5081526020860151516001600160401b03811115611436576114366140a8565b60405190808252806020026020018201604052801561145f578160200160208202803683370190505b508160200181905250600061150b60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190614bd3565b6138f9565b905060005b8760200151518110156117a6576115558860200151828151811061153657611536614b42565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061156b5761156b614b42565b6020908102919091010152801561162b57602083015161158c600183614b7a565b8151811061159c5761159c614b42565b602002602001015160001c836020015182815181106115bd576115bd614b42565b602002602001015160001c1161162b576040805162461bcd60e51b815260206004820152602481019190915260008051602061522783398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061167057611670614b42565b60200260200101518b8b60000151858151811061168f5761168f614b42565b60200260200101516040518463ffffffff1660e01b81526004016116cc9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190614baa565b6001600160c01b03168360000151828151811061172c5761172c614b42565b6020026020010181815250506117926109c2611766848660000151858151811061175857611758614b42565b60200260200101511661398c565b8a60200151848151811061177c5761177c614b42565b60200260200101516139b790919063ffffffff16565b94508061179e81614bf6565b915050611510565b50506117b183613a9b565b60975490935060ff166000816117c857600061184a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184a9190614b91565b905060005b604051806040016040528060018152602001600081525051811015611f555782156119db578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118d3576118d3614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b9190614b91565b6119459190614b0f565b116119db5760405162461bcd60e51b8152602060048201526066602482015260008051602061522783398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a3257611a32614b42565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a5757611a57614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad79190614c84565b6001600160401b031916611afa8a60400151838151811061153657611536614b42565b67ffffffffffffffff191614611b965760405162461bcd60e51b8152602060048201526061602482015260008051602061522783398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161073d565b611bc689604001518281518110611baf57611baf614b42565b60200260200101518761332590919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c1f57611c1f614b42565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c4457611c44614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc49190614caf565b85602001518281518110611cda57611cda614b42565b6001600160601b03909216602092830291909101820152850151805182908110611d0657611d06614b42565b602002602001015185600001518281518110611d2457611d24614b42565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4057611db386600001518281518110611d6e57611d6e614b42565b602002602001015160405180604001604052806001815260200160008152508581518110611d9e57611d9e614b42565b016020015160f81c60ff161c60019081161490565b15611f2e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e0f57611e0f614b42565b602001015160f81c60f81b60f81c8e89602001518581518110611e3457611e34614b42565b60200260200101518f60e001518881518110611e5257611e52614b42565b60200260200101518781518110611e6b57611e6b614b42565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef39190614caf565b8751805185908110611f0757611f07614b42565b60200260200101818151611f1b9190614ccc565b6001600160601b03169052506001909101905b80611f3881614bf6565b915050611d48565b50508080611f4d90614bf6565b91505061184f565b505050600080611f6f8a868a606001518b608001516108a7565b9150915081611fe05760405162461bcd60e51b8152602060048201526043602482015260008051602061522783398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161073d565b806120415760405162461bcd60e51b8152602060048201526039602482015260008051602061522783398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161073d565b5050600087826020015160405160200161205c929190614cf4565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208c6137ef565b6120966000613b36565b565b600054600290610100900460ff161580156120ba575060005460ff8083169116105b6120d65760405162461bcd60e51b815260040161073d90614d3c565b6000805461ffff191660ff8316176101001790556120f382612e1f565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161214b929190614d8a565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a55760405162461bcd60e51b815260040161073d90614d9a565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f39085908590600401614e5f565b600060405180830381600087803b15801561220d57600080fd5b505af1158015612221573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122715760405162461bcd60e51b815260040161073d90614d9a565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d557600080fd5b505af11580156122e9573d6000803e3d6000fd5b5050505050565b6122f86137ef565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122bb908490600401614eaa565b60cb546001600160a01b031633146123845760cb54604051632cbe419560e01b81523360048201526001600160a01b03909116602482015260440161073d565b60005a90506000848460405160200161239e929190614b27565b60408051601f198184030181529181528151602092830120600081815260c9909352912080549192509063ffffffff166123ee576040516311cb69a760e11b81526004810183905260240161073d565b8054640100000000900460ff161561241c57604051634e78d7f960e11b81526004810183905260240161073d565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca6020526040902054101561249f5760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820192909252604481019190915260640161073d565b80546000906124b690849063ffffffff1687611131565b509050604360ff1681602001516000815181106124d5576124d5614b42565b60200260200101516124e79190614ebd565b6001600160601b03166064826000015160008151811061250957612509614b42565b60200260200101516001600160601b03166125249190614eec565b10156125b7576064816000015160008151811061254357612543614b42565b60200260200101516001600160601b031661255e9190614eec565b604360ff16826020015160008151811061257a5761257a614b42565b602002602001015161258c9190614ebd565b60405163530f5c4560e11b815260048101929092526001600160601b0316602482015260440161073d565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126039087614b7a565b6126109062011170614b0f565b61261a9190614eec565b9050826001015481111561265157600183015460405163437e283f60e11b815260048101919091526024810182905260440161073d565b6001600160a01b038716600090815260ca602052604081208054839290612679908490614b7a565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f3573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161073d90614d3c565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b6127818484613b88565b60cb80546001600160a01b0319166001600160a01b03841617905580156127e2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016127fd929190614b27565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561284c57604051630c40bc4360e21b81526004810182905260240161073d565b34156128a95733600090815260ca602052604081208054349290612871908490614b0f565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25b33600090815260ca60205260409020548211156128fa5733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201849052604482015260640161073d565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f130d3e81af62e03ed6fff5e3bb343695ec513892cfad24d286486745dcc6143791612990913391908a908a90614f34565b60405180910390a2857f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5533438888886040516129d0959493929190614f6f565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a669190614bd3565b60ff16905080612a8457505060408051600081526020810190915290565b6000805b82811015612b3957604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b9190614b91565b612b259083614b0f565b915080612b3181614bf6565b915050612a88565b506000816001600160401b03811115612b5457612b546140a8565b604051908082528060200260200182016040528015612b7d578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c069190614bd3565b60ff16811015612d9f57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9e9190614b91565b905060005b81811015612d8a576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3c9190614c26565b60000151858581518110612d5257612d52614b42565b6001600160a01b039092166020928302919091019091015283612d7481614bf6565b9450508080612d8290614bf6565b915050612ca3565b50508080612d9790614bf6565b915050612b84565b5090949350505050565b612db16137ef565b6001600160a01b038116612e165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073d565b610fed81613b36565b612e276137ef565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612e7d908b908b908b908b908b908b908b908b90600401614fb2565b602060405180830381865afa158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190615014565b6065546001600160a01b03163314612f535760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161073d565b60005b8181101561322757828282818110612f7057612f70614b42565b9050602002810190612f829190615031565b612f93906040810190602001614388565b6001600160a01b03166323b872dd3330868686818110612fb557612fb5614b42565b9050602002810190612fc79190615031565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af115801561301e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130429190615014565b50600083838381811061305757613057614b42565b90506020028101906130699190615031565b61307a906040810190602001614388565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c9190614b91565b905083838381811061312057613120614b42565b90506020028101906131329190615031565b613143906040810190602001614388565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061318557613185614b42565b90506020028101906131979190615031565b604001356131a59190614b0f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156131f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132149190615014565b50508061322090614bf6565b9050612f56565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f390859085906004016150b7565b600083613284868585613c05565b1495945050505050565b60408051808201909152600080825260208201526132aa613fb6565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156132dd576132df565bfe5b508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161073d565b505092915050565b6040805180820190915260008082526020820152613341613fd4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156132dd57508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161073d565b6133c1613ff2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806134a96000805160206151e783398151915286614b58565b90505b6134b581613cff565b90935091506000805160206151e78339815191528283098314156134ef576040805180820190915290815260208101919091529392505050565b6000805160206151e78339815191526001820890506134ac565b60408051808201825286815260208082018690528251808401909352868352820184905260009182919061353b614017565b60005b6002811015613700576000613554826006614eec565b905084826002811061356857613568614b42565b6020020151518361357a836000614b0f565b600c811061358a5761358a614b42565b60200201528482600281106135a1576135a1614b42565b602002015160200151838260016135b89190614b0f565b600c81106135c8576135c8614b42565b60200201528382600281106135df576135df614b42565b60200201515151836135f2836002614b0f565b600c811061360257613602614b42565b602002015283826002811061361957613619614b42565b6020020151516001602002015183613632836003614b0f565b600c811061364257613642614b42565b602002015283826002811061365957613659614b42565b60200201516020015160006002811061367457613674614b42565b602002015183613685836004614b0f565b600c811061369557613695614b42565b60200201528382600281106136ac576136ac614b42565b6020020151602001516001600281106136c7576136c7614b42565b6020020151836136d8836005614b0f565b600c81106136e8576136e8614b42565b602002015250806136f881614bf6565b91505061353e565b50613709614036565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b606060008061373b8461398c565b61ffff166001600160401b03811115613756576137566140a8565b6040519080825280601f01601f191660200182016040528015613780576020820181803683370190505b5090506000805b825182108015613798575061010081105b15612d9f576001811b9350858416156137df578060f81b8383815181106137c1576137c1614b42565b60200101906001600160f81b031916908160001a9053508160010191505b6137e881614bf6565b9050613787565b6033546001600160a01b031633146120965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073d565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061390584613d81565b9050808360ff166001901b116139835760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161073d565b90505b92915050565b6000805b8215613986576139a1600184614b7a565b90921691806139af816151c4565b915050613990565b60408051808201909152600080825260208201526102008261ffff1610613a135760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161073d565b8161ffff1660011415613a27575081613986565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613a9057600161ffff871660ff83161c81161415613a7357613a708484613325565b93505b613a7d8384613325565b92506201fffe600192831b169101613a43565b509195945050505050565b60408051808201909152600080825260208201528151158015613ac057506020820151155b15613ade575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e78339815191528460200151613b119190614b58565b613b29906000805160206151e7833981519152614b7a565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613bf35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161073d565b613bfc82613b36565b610b0581613849565b600060208451613c159190614b58565b15613c9c5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161073d565b8260205b85518111610cd957613cb3600285614b58565b613cd457816000528086015160205260406000209150600284049350613ced565b8086015160005281602052604060002091506002840493505b613cf8602082614b0f565b9050613ca0565b600080806000805160206151e783398151915260036000805160206151e7833981519152866000805160206151e7833981519152888909090890506000613d75827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e7833981519152613f0e565b91959194509092505050565b600061010082511115613e0a5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161073d565b8151613e1857506000919050565b60008083600081518110613e2e57613e2e614b42565b0160200151600160f89190911c81901b92505b8451811015613f0557848181518110613e5c57613e5c614b42565b0160200151600160f89190911c1b9150828211613ef15760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161073d565b91811791613efe81614bf6565b9050613e41565b50909392505050565b600080613f19614036565b613f21614054565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156132dd575082613fab5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161073d565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614005614072565b8152602001614012614072565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b3157600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156140e0576140e06140a8565b60405290565b60405161010081016001600160401b03811182821017156140e0576140e06140a8565b604051601f8201601f191681016001600160401b0381118282101715614131576141316140a8565b604052919050565b60006001600160401b03831115614152576141526140a8565b614165601f8401601f1916602001614109565b905082815283838301111561417957600080fd5b828260208301376000602084830101529392505050565b600082601f8301126141a157600080fd5b6141b083833560208501614139565b9392505050565b6001600160a01b0381168114610fed57600080fd5b600080600080600080600080610100898b0312156141e957600080fd5b88359750602089013596506040890135955061420760608a01614090565b94506080890135935060a08901356001600160401b0381111561422957600080fd5b6142358b828c01614190565b93505060c0890135915060e089013561424d816141b7565b809150509295985092959890939650565b60006040828403121561427057600080fd5b6142786140be565b9050813581526020820135602082015292915050565b600082601f83011261429f57600080fd5b6142a76140be565b8060408401858111156142b957600080fd5b845b818110156142d35780358452602093840193016142bb565b509095945050505050565b6000608082840312156142f057600080fd5b6142f86140be565b9050614304838361428e565b8152614313836040840161428e565b602082015292915050565b600080600080610120858703121561433557600080fd5b84359350614346866020870161425e565b925061435586606087016142de565b91506143648660e0870161425e565b905092959194509250565b60006020828403121561438157600080fd5b5035919050565b60006020828403121561439a57600080fd5b8135613983816141b7565b6020808252825182820181905260009190848201906040850190845b818110156143e65783516001600160a01b0316835292840192918401916001016143c1565b50909695505050505050565b8015158114610fed57600080fd5b60006020828403121561441257600080fd5b8135613983816143f2565b803563ffffffff81168114613b3157600080fd5b60006001600160401b0382111561444a5761444a6140a8565b5060051b60200190565b600082601f83011261446557600080fd5b8135602061447a61447583614431565b614109565b82815260059290921b8401810191818101908684111561449957600080fd5b8286015b848110156144bb576144ae8161441d565b835291830191830161449d565b509695505050505050565b600082601f8301126144d757600080fd5b813560206144e761447583614431565b82815260069290921b8401810191818101908684111561450657600080fd5b8286015b848110156144bb5761451c888261425e565b83529183019160400161450a565b600082601f83011261453b57600080fd5b8135602061454b61447583614431565b82815260059290921b8401810191818101908684111561456a57600080fd5b8286015b848110156144bb5780356001600160401b0381111561458d5760008081fd5b61459b8986838b0101614454565b84525091830191830161456e565b600061018082840312156145bc57600080fd5b6145c46140e6565b905081356001600160401b03808211156145dd57600080fd5b6145e985838601614454565b835260208401359150808211156145ff57600080fd5b61460b858386016144c6565b6020840152604084013591508082111561462457600080fd5b614630858386016144c6565b604084015261464285606086016142de565b60608401526146548560e0860161425e565b608084015261012084013591508082111561466e57600080fd5b61467a85838601614454565b60a084015261014084013591508082111561469457600080fd5b6146a085838601614454565b60c08401526101608401359150808211156146ba57600080fd5b506146c78482850161452a565b60e08301525092915050565b6000806000606084860312156146e857600080fd5b833592506146f86020850161441d565b915060408401356001600160401b0381111561471357600080fd5b61471f868287016145a9565b9150509250925092565b600081518084526020808501945080840160005b838110156147625781516001600160601b03168752958201959082019060010161473d565b509495945050505050565b60408152600083516040808401526147886080840182614729565b90506020850151603f198483030160608501526147a58282614729565b925050508260208301529392505050565b60008083601f8401126147c857600080fd5b5081356001600160401b038111156147df57600080fd5b6020830191508360208285010111156147f757600080fd5b9250929050565b60008060006040848603121561481357600080fd5b83356001600160401b0381111561482957600080fd5b614835868287016147b6565b909790965060209590950135949350505050565b6000806040838503121561485c57600080fd5b8235614867816141b7565b915060208301356001600160401b038082111561488357600080fd5b908401906060828703121561489757600080fd5b6040516060810181811083821117156148b2576148b26140a8565b6040528235828111156148c457600080fd5b6148d088828601614190565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561490657600080fd5b81356001600160401b0381111561491c57600080fd5b8201601f8101841361492d57600080fd5b61493c84823560208401614139565b949350505050565b60008060006060848603121561495957600080fd5b8335925060208401356146f8816141b7565b60008060006060848603121561498057600080fd5b833561498b816141b7565b9250602084013561499b816141b7565b915060408401356149ab816141b7565b809150509250925092565b600080600080606085870312156149cc57600080fd5b8435935060208501356001600160401b038111156149e957600080fd5b6149f5878288016147b6565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a2357600080fd5b873596506020880135955060408801359450614a4160608901614090565b93506080880135925060a08801356001600160401b03811115614a6357600080fd5b614a6f8a828b01614190565b92505060c0880135905092959891949750929550565b60008060208385031215614a9857600080fd5b82356001600160401b0380821115614aaf57600080fd5b818501915085601f830112614ac357600080fd5b813581811115614ad257600080fd5b8660208260051b8501011115614ae757600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b2257614b22614af9565b500190565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614b7557634e487b7160e01b600052601260045260246000fd5b500690565b600082821015614b8c57614b8c614af9565b500390565b600060208284031215614ba357600080fd5b5051919050565b600060208284031215614bbc57600080fd5b81516001600160c01b038116811461398357600080fd5b600060208284031215614be557600080fd5b815160ff8116811461398357600080fd5b6000600019821415614c0a57614c0a614af9565b5060010190565b6001600160601b0381168114610fed57600080fd5b600060408284031215614c3857600080fd5b614c406140be565b8251614c4b816141b7565b81526020830151614c5b81614c11565b60208201529392505050565b600060208284031215614c7957600080fd5b8151613983816141b7565b600060208284031215614c9657600080fd5b815167ffffffffffffffff198116811461398357600080fd5b600060208284031215614cc157600080fd5b815161398381614c11565b60006001600160601b0383811690831681811015614cec57614cec614af9565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d2f57815185529382019390820190600101614d13565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e3857602081850181015186830182015201614e1c565b81811115614e4a576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b0383168152604060208201526000825160606040840152614e8960a0840182614e12565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006141b06020830184614e12565b60006001600160601b0380831681851681830481118215151615614ee357614ee3614af9565b02949350505050565b6000816000190483118215151615614f0657614f06614af9565b500290565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038516815263ffffffff84166020820152606060408201819052600090614f659083018486614f0b565b9695505050505050565b6001600160a01b038616815263ffffffff85166020820152608060408201819052600090614fa09083018587614f0b565b90508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fee81840187614e12565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502657600080fd5b8151613983816143f2565b60008235609e1983360301811261504757600080fd5b9190910192915050565b8035613b31816141b7565b8183526000602080850194508260005b8581101561476257813561507f816141b7565b6001600160a01b031687528183013561509781614c11565b6001600160601b031687840152604096870196919091019060010161506c565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b657878303603f190184528135368b9003609e190181126150fc57600080fd5b8a0160a0813536839003601e1901811261511557600080fd5b820180356001600160401b0381111561512d57600080fd5b8060061b360384131561513f57600080fd5b828752615151838801828c850161505c565b92505050615160888301615051565b6001600160a01b0316888601528187013587860152606061518281840161441d565b63ffffffff1690860152608061519983820161441d565b63ffffffff169501949094525092850192908501906001016150d6565b509098975050505050505050565b600061ffff808316818114156151dc576151dc614af9565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122017dfd150dae9460b2ec60dad206a1badc342ad50fc4b8453a30d1d04bafbb76364736f6c634300080c0033","sourceMap":"847:9537:180:-:0;;;1134:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1590:30:121;;;;;1630:42;;;;;1682:44;;;;;1736:32;;;;1360:21:180;1423:14;1451:20;1360:21;1520:15;2276:22:120::1;:20;:22::i;:::-;1894:411:::0;;;;1793:20:114;-1:-1:-1;;;;;1771:42:114;;;-1:-1:-1;;;;;1771:42:114;;;;;1839:20;-1:-1:-1;;;;;1839:34:114;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1823:52:114;;;-1:-1:-1;;;;;1823:52:114;;;;;1902:20;-1:-1:-1;;;;;1902:35:114;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1885:54:114;;;-1:-1:-1;;;;;1885:54:114;;;;;1962:13;;-1:-1:-1;;;;;1962:24:114;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1949:39:114;;;-1:-1:-1;1560:22:180::2;:20;:22::i;:::-;1134:455:::0;;;;847:9537;;5388:279:46;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:46;;2079:2:186;5447:66:46;;;2061:21:186;2118:2;2098:18;;;2091:30;2157:34;2137:18;;;2130:62;-1:-1:-1;;;2208:18:186;;;2201:37;2255:19;;5447:66:46;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:46;5588:15;5573:30;;;;;;5622:28;;2427:36:186;;;5622:28:46;;2415:2:186;2400:18;5622:28:46;;;;;;;5523:138;5388:279::o;14:146:186:-;-1:-1:-1;;;;;104:31:186;;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:186;605:25;639:48;:::i;:::-;758:2;743:18;;737:25;706:7;;-1:-1:-1;771:48:186;737:25;771:48;:::i;:::-;890:2;875:18;;869:25;838:7;;-1:-1:-1;903:48:186;869:25;903:48;:::i;:::-;165:818;;;;-1:-1:-1;165:818:186;;-1:-1:-1;;165:818:186: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:186:o;2285:184::-;847:9537:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063c0c53b8b116100a0578063f2fde38b1161006f578063f2fde38b14610680578063f9120af6146106a0578063fa534dc0146106c0578063fc299dee146106e0578063fce36c7d1461070057600080fd5b8063c0c53b8b14610604578063d66eaabd14610624578063df5cf72314610637578063e481af9d1461066b57600080fd5b8063a98fb355116100dc578063a98fb35514610540578063ab21739a14610560578063b099627e14610580578063b98d0908146105ea57600080fd5b80638da5cb5b146104c257806395c6d604146104e05780639926ee7d14610500578063a364f4da1461052057600080fd5b80634ae07c37116101855780636d14a987116101545780636d14a9871461041557806370a0823114610449578063715018a61461048d578063800fb61f146104a257600080fd5b80634ae07c371461034c5780635df459461461037a57806368304835146103ae5780636b3aa72e146103e257600080fd5b80633bc28c8c116101c15780633bc28c8c146102c1578063416c7e5e146102e15780634223d551146103015780634a5bf6321461031457600080fd5b806306045a9114610208578063171f1d5b1461023d5780632e1a7d4d1461027457806333cfb7b71461029457600080fd5b36610203576102013334610720565b005b600080fd5b34801561021457600080fd5b506102286102233660046141cc565b6107b2565b60405190151581526020015b60405180910390f35b34801561024957600080fd5b5061025d61025836600461431e565b6108a7565b604080519215158352901515602083015201610234565b34801561028057600080fd5b5061020161028f36600461436f565b610a31565b3480156102a057600080fd5b506102b46102af366004614388565b610b09565b60405161023491906143a5565b3480156102cd57600080fd5b506102016102dc366004614388565b610fdc565b3480156102ed57600080fd5b506102016102fc366004614400565b610ff0565b61020161030f366004614388565b611127565b34801561032057600080fd5b5060cb54610334906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561035857600080fd5b5061036c6103673660046146d3565b611131565b60405161023492919061476d565b34801561038657600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ba57600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ee57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610334565b34801561042157600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561045557600080fd5b5061047f610464366004614388565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610234565b34801561049957600080fd5b50610201612084565b3480156104ae57600080fd5b506102016104bd366004614388565b612098565b3480156104ce57600080fd5b506033546001600160a01b0316610334565b3480156104ec57600080fd5b506102286104fb3660046147fe565b612138565b34801561050c57600080fd5b5061020161051b366004614849565b61215d565b34801561052c57600080fd5b5061020161053b366004614388565b612229565b34801561054c57600080fd5b5061020161055b3660046148f4565b6122f0565b34801561056c57600080fd5b5061020161057b366004614944565b612344565b34801561058c57600080fd5b506105c861059b36600461436f565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610234565b3480156105f657600080fd5b506097546102289060ff1681565b34801561061057600080fd5b5061020161061f36600461496b565b6126fe565b6102016106323660046149b6565b6127e8565b34801561064357600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561067757600080fd5b506102b46129e0565b34801561068c57600080fd5b5061020161069b366004614388565b612da9565b3480156106ac57600080fd5b506102016106bb366004614388565b612e1f565b3480156106cc57600080fd5b506102286106db366004614a08565b612e49565b3480156106ec57600080fd5b50606554610334906001600160a01b031681565b34801561070c57600080fd5b5061020161071b366004614a85565b612ebe565b8061074657604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca60205260408120805483929061076e908490614b0f565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25050565b6000806001600160a01b0383166107ca5750846107f6565b85836040516020016107dd929190614b27565b6040516020818303038152906040528051906020012090505b600081815260c9602052604090205463ffffffff1661081957600091505061089b565b600081815260c96020526040902054640100000000900460ff1661084157600091505061089b565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f198184030181529190528051602082012090915061089587898389613276565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106108ef576108ef614b42565b60200201518951600160200201518a6020015160006002811061091457610914614b42565b60200201518b6020015160016002811061093057610930614b42565b602090810291909101518c518d83015160405161098d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109b09190614b58565b9050610a236109c96109c2888461328e565b8690613325565b6109d16133b9565b610a19610a0a85610a04604080518082018252600080825260209182015281518083019092526001825260029082015290565b9061328e565b610a138c613479565b90613325565b886201d4c0613509565b909890975095505050505050565b33600090815260ca6020526040902054811115610a825733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201839052604482015260640161073d565b33600090815260ca602052604081208054839290610aa1908490614b7a565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b05573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190614b91565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c289190614baa565b90506001600160c01b0381161580610cc257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd9190614bd3565b60ff16155b15610ce25760408051600080825260208201909252905b50949350505050565b6000610cf6826001600160c01b031661372d565b90506000805b8251811015610dcc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d4657610d46614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae9190614b91565b610db89083614b0f565b915080610dc481614bf6565b915050610cfc565b506000816001600160401b03811115610de757610de76140a8565b604051908082528060200260200182016040528015610e10578160200160208202803683370190505b5090506000805b8451811015610fcf576000858281518110610e3457610e34614b42565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190614b91565b905060005b81811015610fb9576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190614c26565b60000151868681518110610f8157610f81614b42565b6001600160a01b039092166020928302919091019091015284610fa381614bf6565b9550508080610fb190614bf6565b915050610ed2565b5050508080610fc790614bf6565b915050610e17565b5090979650505050505050565b610fe46137ef565b610fed81613849565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190614c67565b6001600160a01b0316336001600160a01b03161461111e5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161073d565b610fed816138b2565b610fed8134610720565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561118d57508260a0015151604051806040016040528060018152602001600081525051145b80156111b457508260c0015151604051806040016040528060018152602001600081525051145b80156111db57508260e0015151604051806040016040528060018152602001600081525051145b6112455760405162461bcd60e51b8152602060048201526041602482015260008051602061522783398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161073d565b825151602084015151146112bd5760405162461bcd60e51b815260206004820152604460248201819052600080516020615227833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161073d565b4363ffffffff168463ffffffff161061132c5760405162461bcd60e51b815260206004820152603c602482015260008051602061522783398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161073d565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156113ed576113ed6140a8565b604051908082528060200260200182016040528015611416578160200160208202803683370190505b5081526020860151516001600160401b03811115611436576114366140a8565b60405190808252806020026020018201604052801561145f578160200160208202803683370190505b508160200181905250600061150b60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190614bd3565b6138f9565b905060005b8760200151518110156117a6576115558860200151828151811061153657611536614b42565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061156b5761156b614b42565b6020908102919091010152801561162b57602083015161158c600183614b7a565b8151811061159c5761159c614b42565b602002602001015160001c836020015182815181106115bd576115bd614b42565b602002602001015160001c1161162b576040805162461bcd60e51b815260206004820152602481019190915260008051602061522783398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061167057611670614b42565b60200260200101518b8b60000151858151811061168f5761168f614b42565b60200260200101516040518463ffffffff1660e01b81526004016116cc9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190614baa565b6001600160c01b03168360000151828151811061172c5761172c614b42565b6020026020010181815250506117926109c2611766848660000151858151811061175857611758614b42565b60200260200101511661398c565b8a60200151848151811061177c5761177c614b42565b60200260200101516139b790919063ffffffff16565b94508061179e81614bf6565b915050611510565b50506117b183613a9b565b60975490935060ff166000816117c857600061184a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184a9190614b91565b905060005b604051806040016040528060018152602001600081525051811015611f555782156119db578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118d3576118d3614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b9190614b91565b6119459190614b0f565b116119db5760405162461bcd60e51b8152602060048201526066602482015260008051602061522783398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a3257611a32614b42565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a5757611a57614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad79190614c84565b6001600160401b031916611afa8a60400151838151811061153657611536614b42565b67ffffffffffffffff191614611b965760405162461bcd60e51b8152602060048201526061602482015260008051602061522783398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161073d565b611bc689604001518281518110611baf57611baf614b42565b60200260200101518761332590919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c1f57611c1f614b42565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c4457611c44614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc49190614caf565b85602001518281518110611cda57611cda614b42565b6001600160601b03909216602092830291909101820152850151805182908110611d0657611d06614b42565b602002602001015185600001518281518110611d2457611d24614b42565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4057611db386600001518281518110611d6e57611d6e614b42565b602002602001015160405180604001604052806001815260200160008152508581518110611d9e57611d9e614b42565b016020015160f81c60ff161c60019081161490565b15611f2e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e0f57611e0f614b42565b602001015160f81c60f81b60f81c8e89602001518581518110611e3457611e34614b42565b60200260200101518f60e001518881518110611e5257611e52614b42565b60200260200101518781518110611e6b57611e6b614b42565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef39190614caf565b8751805185908110611f0757611f07614b42565b60200260200101818151611f1b9190614ccc565b6001600160601b03169052506001909101905b80611f3881614bf6565b915050611d48565b50508080611f4d90614bf6565b91505061184f565b505050600080611f6f8a868a606001518b608001516108a7565b9150915081611fe05760405162461bcd60e51b8152602060048201526043602482015260008051602061522783398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161073d565b806120415760405162461bcd60e51b8152602060048201526039602482015260008051602061522783398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161073d565b5050600087826020015160405160200161205c929190614cf4565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208c6137ef565b6120966000613b36565b565b600054600290610100900460ff161580156120ba575060005460ff8083169116105b6120d65760405162461bcd60e51b815260040161073d90614d3c565b6000805461ffff191660ff8316176101001790556120f382612e1f565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161214b929190614d8a565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a55760405162461bcd60e51b815260040161073d90614d9a565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f39085908590600401614e5f565b600060405180830381600087803b15801561220d57600080fd5b505af1158015612221573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122715760405162461bcd60e51b815260040161073d90614d9a565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d557600080fd5b505af11580156122e9573d6000803e3d6000fd5b5050505050565b6122f86137ef565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122bb908490600401614eaa565b60cb546001600160a01b031633146123845760cb54604051632cbe419560e01b81523360048201526001600160a01b03909116602482015260440161073d565b60005a90506000848460405160200161239e929190614b27565b60408051601f198184030181529181528151602092830120600081815260c9909352912080549192509063ffffffff166123ee576040516311cb69a760e11b81526004810183905260240161073d565b8054640100000000900460ff161561241c57604051634e78d7f960e11b81526004810183905260240161073d565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca6020526040902054101561249f5760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820192909252604481019190915260640161073d565b80546000906124b690849063ffffffff1687611131565b509050604360ff1681602001516000815181106124d5576124d5614b42565b60200260200101516124e79190614ebd565b6001600160601b03166064826000015160008151811061250957612509614b42565b60200260200101516001600160601b03166125249190614eec565b10156125b7576064816000015160008151811061254357612543614b42565b60200260200101516001600160601b031661255e9190614eec565b604360ff16826020015160008151811061257a5761257a614b42565b602002602001015161258c9190614ebd565b60405163530f5c4560e11b815260048101929092526001600160601b0316602482015260440161073d565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126039087614b7a565b6126109062011170614b0f565b61261a9190614eec565b9050826001015481111561265157600183015460405163437e283f60e11b815260048101919091526024810182905260440161073d565b6001600160a01b038716600090815260ca602052604081208054839290612679908490614b7a565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f3573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161073d90614d3c565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b6127818484613b88565b60cb80546001600160a01b0319166001600160a01b03841617905580156127e2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016127fd929190614b27565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561284c57604051630c40bc4360e21b81526004810182905260240161073d565b34156128a95733600090815260ca602052604081208054349290612871908490614b0f565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25b33600090815260ca60205260409020548211156128fa5733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201849052604482015260640161073d565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f130d3e81af62e03ed6fff5e3bb343695ec513892cfad24d286486745dcc6143791612990913391908a908a90614f34565b60405180910390a2857f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5533438888886040516129d0959493929190614f6f565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a669190614bd3565b60ff16905080612a8457505060408051600081526020810190915290565b6000805b82811015612b3957604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b9190614b91565b612b259083614b0f565b915080612b3181614bf6565b915050612a88565b506000816001600160401b03811115612b5457612b546140a8565b604051908082528060200260200182016040528015612b7d578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c069190614bd3565b60ff16811015612d9f57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9e9190614b91565b905060005b81811015612d8a576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3c9190614c26565b60000151858581518110612d5257612d52614b42565b6001600160a01b039092166020928302919091019091015283612d7481614bf6565b9450508080612d8290614bf6565b915050612ca3565b50508080612d9790614bf6565b915050612b84565b5090949350505050565b612db16137ef565b6001600160a01b038116612e165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073d565b610fed81613b36565b612e276137ef565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612e7d908b908b908b908b908b908b908b908b90600401614fb2565b602060405180830381865afa158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190615014565b6065546001600160a01b03163314612f535760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161073d565b60005b8181101561322757828282818110612f7057612f70614b42565b9050602002810190612f829190615031565b612f93906040810190602001614388565b6001600160a01b03166323b872dd3330868686818110612fb557612fb5614b42565b9050602002810190612fc79190615031565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af115801561301e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130429190615014565b50600083838381811061305757613057614b42565b90506020028101906130699190615031565b61307a906040810190602001614388565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c9190614b91565b905083838381811061312057613120614b42565b90506020028101906131329190615031565b613143906040810190602001614388565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061318557613185614b42565b90506020028101906131979190615031565b604001356131a59190614b0f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156131f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132149190615014565b50508061322090614bf6565b9050612f56565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f390859085906004016150b7565b600083613284868585613c05565b1495945050505050565b60408051808201909152600080825260208201526132aa613fb6565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156132dd576132df565bfe5b508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161073d565b505092915050565b6040805180820190915260008082526020820152613341613fd4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156132dd57508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161073d565b6133c1613ff2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806134a96000805160206151e783398151915286614b58565b90505b6134b581613cff565b90935091506000805160206151e78339815191528283098314156134ef576040805180820190915290815260208101919091529392505050565b6000805160206151e78339815191526001820890506134ac565b60408051808201825286815260208082018690528251808401909352868352820184905260009182919061353b614017565b60005b6002811015613700576000613554826006614eec565b905084826002811061356857613568614b42565b6020020151518361357a836000614b0f565b600c811061358a5761358a614b42565b60200201528482600281106135a1576135a1614b42565b602002015160200151838260016135b89190614b0f565b600c81106135c8576135c8614b42565b60200201528382600281106135df576135df614b42565b60200201515151836135f2836002614b0f565b600c811061360257613602614b42565b602002015283826002811061361957613619614b42565b6020020151516001602002015183613632836003614b0f565b600c811061364257613642614b42565b602002015283826002811061365957613659614b42565b60200201516020015160006002811061367457613674614b42565b602002015183613685836004614b0f565b600c811061369557613695614b42565b60200201528382600281106136ac576136ac614b42565b6020020151602001516001600281106136c7576136c7614b42565b6020020151836136d8836005614b0f565b600c81106136e8576136e8614b42565b602002015250806136f881614bf6565b91505061353e565b50613709614036565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b606060008061373b8461398c565b61ffff166001600160401b03811115613756576137566140a8565b6040519080825280601f01601f191660200182016040528015613780576020820181803683370190505b5090506000805b825182108015613798575061010081105b15612d9f576001811b9350858416156137df578060f81b8383815181106137c1576137c1614b42565b60200101906001600160f81b031916908160001a9053508160010191505b6137e881614bf6565b9050613787565b6033546001600160a01b031633146120965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073d565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061390584613d81565b9050808360ff166001901b116139835760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161073d565b90505b92915050565b6000805b8215613986576139a1600184614b7a565b90921691806139af816151c4565b915050613990565b60408051808201909152600080825260208201526102008261ffff1610613a135760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161073d565b8161ffff1660011415613a27575081613986565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613a9057600161ffff871660ff83161c81161415613a7357613a708484613325565b93505b613a7d8384613325565b92506201fffe600192831b169101613a43565b509195945050505050565b60408051808201909152600080825260208201528151158015613ac057506020820151155b15613ade575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e78339815191528460200151613b119190614b58565b613b29906000805160206151e7833981519152614b7a565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613bf35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161073d565b613bfc82613b36565b610b0581613849565b600060208451613c159190614b58565b15613c9c5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161073d565b8260205b85518111610cd957613cb3600285614b58565b613cd457816000528086015160205260406000209150600284049350613ced565b8086015160005281602052604060002091506002840493505b613cf8602082614b0f565b9050613ca0565b600080806000805160206151e783398151915260036000805160206151e7833981519152866000805160206151e7833981519152888909090890506000613d75827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e7833981519152613f0e565b91959194509092505050565b600061010082511115613e0a5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161073d565b8151613e1857506000919050565b60008083600081518110613e2e57613e2e614b42565b0160200151600160f89190911c81901b92505b8451811015613f0557848181518110613e5c57613e5c614b42565b0160200151600160f89190911c1b9150828211613ef15760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161073d565b91811791613efe81614bf6565b9050613e41565b50909392505050565b600080613f19614036565b613f21614054565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156132dd575082613fab5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161073d565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614005614072565b8152602001614012614072565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b3157600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156140e0576140e06140a8565b60405290565b60405161010081016001600160401b03811182821017156140e0576140e06140a8565b604051601f8201601f191681016001600160401b0381118282101715614131576141316140a8565b604052919050565b60006001600160401b03831115614152576141526140a8565b614165601f8401601f1916602001614109565b905082815283838301111561417957600080fd5b828260208301376000602084830101529392505050565b600082601f8301126141a157600080fd5b6141b083833560208501614139565b9392505050565b6001600160a01b0381168114610fed57600080fd5b600080600080600080600080610100898b0312156141e957600080fd5b88359750602089013596506040890135955061420760608a01614090565b94506080890135935060a08901356001600160401b0381111561422957600080fd5b6142358b828c01614190565b93505060c0890135915060e089013561424d816141b7565b809150509295985092959890939650565b60006040828403121561427057600080fd5b6142786140be565b9050813581526020820135602082015292915050565b600082601f83011261429f57600080fd5b6142a76140be565b8060408401858111156142b957600080fd5b845b818110156142d35780358452602093840193016142bb565b509095945050505050565b6000608082840312156142f057600080fd5b6142f86140be565b9050614304838361428e565b8152614313836040840161428e565b602082015292915050565b600080600080610120858703121561433557600080fd5b84359350614346866020870161425e565b925061435586606087016142de565b91506143648660e0870161425e565b905092959194509250565b60006020828403121561438157600080fd5b5035919050565b60006020828403121561439a57600080fd5b8135613983816141b7565b6020808252825182820181905260009190848201906040850190845b818110156143e65783516001600160a01b0316835292840192918401916001016143c1565b50909695505050505050565b8015158114610fed57600080fd5b60006020828403121561441257600080fd5b8135613983816143f2565b803563ffffffff81168114613b3157600080fd5b60006001600160401b0382111561444a5761444a6140a8565b5060051b60200190565b600082601f83011261446557600080fd5b8135602061447a61447583614431565b614109565b82815260059290921b8401810191818101908684111561449957600080fd5b8286015b848110156144bb576144ae8161441d565b835291830191830161449d565b509695505050505050565b600082601f8301126144d757600080fd5b813560206144e761447583614431565b82815260069290921b8401810191818101908684111561450657600080fd5b8286015b848110156144bb5761451c888261425e565b83529183019160400161450a565b600082601f83011261453b57600080fd5b8135602061454b61447583614431565b82815260059290921b8401810191818101908684111561456a57600080fd5b8286015b848110156144bb5780356001600160401b0381111561458d5760008081fd5b61459b8986838b0101614454565b84525091830191830161456e565b600061018082840312156145bc57600080fd5b6145c46140e6565b905081356001600160401b03808211156145dd57600080fd5b6145e985838601614454565b835260208401359150808211156145ff57600080fd5b61460b858386016144c6565b6020840152604084013591508082111561462457600080fd5b614630858386016144c6565b604084015261464285606086016142de565b60608401526146548560e0860161425e565b608084015261012084013591508082111561466e57600080fd5b61467a85838601614454565b60a084015261014084013591508082111561469457600080fd5b6146a085838601614454565b60c08401526101608401359150808211156146ba57600080fd5b506146c78482850161452a565b60e08301525092915050565b6000806000606084860312156146e857600080fd5b833592506146f86020850161441d565b915060408401356001600160401b0381111561471357600080fd5b61471f868287016145a9565b9150509250925092565b600081518084526020808501945080840160005b838110156147625781516001600160601b03168752958201959082019060010161473d565b509495945050505050565b60408152600083516040808401526147886080840182614729565b90506020850151603f198483030160608501526147a58282614729565b925050508260208301529392505050565b60008083601f8401126147c857600080fd5b5081356001600160401b038111156147df57600080fd5b6020830191508360208285010111156147f757600080fd5b9250929050565b60008060006040848603121561481357600080fd5b83356001600160401b0381111561482957600080fd5b614835868287016147b6565b909790965060209590950135949350505050565b6000806040838503121561485c57600080fd5b8235614867816141b7565b915060208301356001600160401b038082111561488357600080fd5b908401906060828703121561489757600080fd5b6040516060810181811083821117156148b2576148b26140a8565b6040528235828111156148c457600080fd5b6148d088828601614190565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561490657600080fd5b81356001600160401b0381111561491c57600080fd5b8201601f8101841361492d57600080fd5b61493c84823560208401614139565b949350505050565b60008060006060848603121561495957600080fd5b8335925060208401356146f8816141b7565b60008060006060848603121561498057600080fd5b833561498b816141b7565b9250602084013561499b816141b7565b915060408401356149ab816141b7565b809150509250925092565b600080600080606085870312156149cc57600080fd5b8435935060208501356001600160401b038111156149e957600080fd5b6149f5878288016147b6565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a2357600080fd5b873596506020880135955060408801359450614a4160608901614090565b93506080880135925060a08801356001600160401b03811115614a6357600080fd5b614a6f8a828b01614190565b92505060c0880135905092959891949750929550565b60008060208385031215614a9857600080fd5b82356001600160401b0380821115614aaf57600080fd5b818501915085601f830112614ac357600080fd5b813581811115614ad257600080fd5b8660208260051b8501011115614ae757600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b2257614b22614af9565b500190565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614b7557634e487b7160e01b600052601260045260246000fd5b500690565b600082821015614b8c57614b8c614af9565b500390565b600060208284031215614ba357600080fd5b5051919050565b600060208284031215614bbc57600080fd5b81516001600160c01b038116811461398357600080fd5b600060208284031215614be557600080fd5b815160ff8116811461398357600080fd5b6000600019821415614c0a57614c0a614af9565b5060010190565b6001600160601b0381168114610fed57600080fd5b600060408284031215614c3857600080fd5b614c406140be565b8251614c4b816141b7565b81526020830151614c5b81614c11565b60208201529392505050565b600060208284031215614c7957600080fd5b8151613983816141b7565b600060208284031215614c9657600080fd5b815167ffffffffffffffff198116811461398357600080fd5b600060208284031215614cc157600080fd5b815161398381614c11565b60006001600160601b0383811690831681811015614cec57614cec614af9565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d2f57815185529382019390820190600101614d13565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e3857602081850181015186830182015201614e1c565b81811115614e4a576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b0383168152604060208201526000825160606040840152614e8960a0840182614e12565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006141b06020830184614e12565b60006001600160601b0380831681851681830481118215151615614ee357614ee3614af9565b02949350505050565b6000816000190483118215151615614f0657614f06614af9565b500290565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038516815263ffffffff84166020820152606060408201819052600090614f659083018486614f0b565b9695505050505050565b6001600160a01b038616815263ffffffff85166020820152608060408201819052600090614fa09083018587614f0b565b90508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fee81840187614e12565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502657600080fd5b8151613983816143f2565b60008235609e1983360301811261504757600080fd5b9190910192915050565b8035613b31816141b7565b8183526000602080850194508260005b8581101561476257813561507f816141b7565b6001600160a01b031687528183013561509781614c11565b6001600160601b031687840152604096870196919091019060010161506c565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b657878303603f190184528135368b9003609e190181126150fc57600080fd5b8a0160a0813536839003601e1901811261511557600080fd5b820180356001600160401b0381111561512d57600080fd5b8060061b360384131561513f57600080fd5b828752615151838801828c850161505c565b92505050615160888301615051565b6001600160a01b0316888601528187013587860152606061518281840161441d565b63ffffffff1690860152608061519983820161441d565b63ffffffff169501949094525092850192908501906001016150d6565b509098975050505050505050565b600061ffff808316818114156151dc576151dc614af9565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122017dfd150dae9460b2ec60dad206a1badc342ad50fc4b8453a30d1d04bafbb76364736f6c634300080c0033","sourceMap":"847:9537:180:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9978:40;9996:10;10008:9;9978:17;:40::i;:::-;847:9537;;;;;6848:1282;;;;;;;;;;-1:-1:-1;6848:1282:180;;;;;:::i;:::-;;:::i;:::-;;;3210:14:186;;3203:22;3185:41;;3173:2;3158:18;6848:1282:180;;;;;;;;14547:1081:114;;;;;;;;;;-1:-1:-1;14547:1081:114;;;;;:::i;:::-;;:::i;:::-;;;;5060:14:186;;5053:22;5035:41;;5119:14;;5112:22;5107:2;5092:18;;5085:50;5008:18;14547:1081:114;4873:268:186;8972:437:180;;;;;;;;;;-1:-1:-1;8972:437:180;;;;;:::i;:::-;;:::i;7697:1470:120:-;;;;;;;;;;-1:-1:-1;7697:1470:120;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5599:135::-;;;;;;;;;;-1:-1:-1;5599:135:120;;;;;:::i;:::-;;:::i;2232:123:114:-;;;;;;;;;;-1:-1:-1;2232:123:114;;;;;:::i;:::-;;:::i;9536:114:180:-;;;;;;:::i;:::-;;:::i;483:32:181:-;;;;;;;;;;-1:-1:-1;483:32:181;;;;-1:-1:-1;;;;;483:32:181;;;;;;-1:-1:-1;;;;;6779:32:186;;;6761:51;;6749:2;6734:18;483:32:181;6615:203:186;4387:9678:114;;;;;;;;;;-1:-1:-1;4387:9678:114;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1183:47::-;;;;;;;;;;;;;;;1132:45;;;;;;;;;;;;;;;9235:111:120;;;;;;;;;;-1:-1:-1;9325:13:120;9235:111;;1069:57:114;;;;;;;;;;;;;;;9415:115:180;;;;;;;;;;-1:-1:-1;9415:115:180;;;;;:::i;:::-;-1:-1:-1;;;;;9498:25:180;9472:7;9498:25;;;:16;:25;;;;;;;9415:115;;;;13652:25:186;;;13640:2;13625:18;9415:115:180;13506:177:186;2071:101:42;;;;;;;;;;;;;:::i;2218:146:180:-;;;;;;;;;;-1:-1:-1;2218:146:180;;;;;:::i;:::-;;:::i;1441:85:42:-;;;;;;;;;;-1:-1:-1;1513:6:42;;-1:-1:-1;;;;;1513:6:42;1441:85;;10031:171:180;;;;;;;;;;-1:-1:-1;10031:171:180;;;;;:::i;:::-;;:::i;4797:260:120:-;;;;;;;;;;-1:-1:-1;4797:260:120;;;;;:::i;:::-;;:::i;5262:158::-;;;;;;;;;;-1:-1:-1;5262:158:120;;;;;:::i;:::-;;:::i;2721:148::-;;;;;;;;;;-1:-1:-1;2721:148:120;;;;;:::i;:::-;;:::i;3858:2984:180:-;;;;;;;;;;-1:-1:-1;3858:2984:180;;;;;:::i;:::-;;:::i;284:50:181:-;;;;;;;;;;-1:-1:-1;284:50:181;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17110:10:186;17098:23;;;17080:42;;17165:14;;17158:22;17153:2;17138:18;;17131:50;17197:18;;;17190:34;17068:2;17053:18;284:50:181;16886:344:186;1421:32:114;;;;;;;;;;-1:-1:-1;1421:32:114;;;;;;;;1691:338:180;;;;;;;;;;-1:-1:-1;1691:338:180;;;;;:::i;:::-;;:::i;2370:1482::-;;;;;;:::i;:::-;;:::i;1236:46:114:-;;;;;;;;;;;;;;;6262:951:120;;;;;;;;;;;;;:::i;2321:198:42:-;;;;;;;;;;-1:-1:-1;2321:198:42;;;;;:::i;:::-;;:::i;8843:123:180:-;;;;;;;;;;-1:-1:-1;8843:123:180;;;;;:::i;:::-;;:::i;8194:643::-;;;;;;;;;;-1:-1:-1;8194:643:180;;;;;:::i;:::-;;:::i;1212:31:121:-;;;;;;;;;;-1:-1:-1;1212:31:121;;;;-1:-1:-1;;;;;1212:31:121;;;3631:872:120;;;;;;;;;;-1:-1:-1;3631:872:120;;;;;:::i;:::-;;:::i;9656:279:180:-;9739:11;9735:77;;9773:28;;-1:-1:-1;;;9773:28:180;;;;;13652:25:186;;;13625:18;;9773:28:180;;;;;;;;9735:77;-1:-1:-1;;;;;9821:25:180;;;;;;:16;:25;;;;;:35;;9850:6;;9821:25;:35;;9850:6;;9821:35;:::i;:::-;;;;-1:-1:-1;;;;;;;9871:57:180;;9902:25;;;;:16;:25;;;;;;;;;;9871:57;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;9871:57:180;13625:18:186;9871:57:180;;;;;;;9656:279;;:::o;6848:1282::-;7202:4;;-1:-1:-1;;;;;7255:27:180;;7251:229;;-1:-1:-1;7316:15:180;7251:229;;;7424:15;7441:13;7407:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7380:89;;;;;;7362:107;;7251:229;7494:29;;;;:12;:29;;;;;:46;;;7490:94;;7568:5;7561:12;;;;;7490:94;7599:29;;;;:12;:29;;;;;:39;;;;;;7594:83;;7661:5;7654:12;;;;;7594:83;7707:163;;;;;;20732:19:186;;;20767:12;;;20760:28;;;20804:12;;;20797:28;;;-1:-1:-1;;;;;;20855:44:186;;20841:12;;;20834:66;7687:17:180;;20916:13:186;;7707:163:180;;;-1:-1:-1;;7707:163:180;;;;;;;;;7902:15;;7707:163;7902:15;;;7707:163;;-1:-1:-1;7947:176:180;7993:11;8022:15;7902;8083:26;7947:28;:176::i;:::-;7928:195;;;;;6848:1282;;;;;;;;;;;:::o;14547:1081:114:-;14745:22;14769;14878:13;2037:77:135;14980:7:114;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;;;;;;;;;;;21425:19:186;;;21469:2;21460:12;;21453:28;;;;21506:2;21497:12;;21490:28;;;;21543:2;21534:12;;21527:28;;;;21580:3;21571:13;;21564:29;;;;21618:3;21609:13;;21602:29;21656:3;21647:13;;21640:29;21694:3;21685:13;;21678:29;21732:3;21723:13;;21716:29;21770:3;21761:13;;21072:708;14942:303:114;;;;;;;;;;;;;14915:344;;;;;;14894:375;;:394;;;;:::i;:::-;14878:410;-1:-1:-1;15371:250:114;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:135;;;;;;;;2400:1;2392:13;;2403:1;2392:13;;;;;2313:99;15514:19:114;: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:114;-1:-1:-1;;;;;;14547:1081:114:o;8972:437:180:-;9046:10;9029:28;;;;:16;:28;;;;;;:37;-1:-1:-1;9025:204:180;;;9124:10;9176:28;;;;:16;:28;;;;;;;;9089:129;;-1:-1:-1;;;9089:129:180;;;;;22333:51:186;;;;22400:18;;;22393:34;;;22443:18;;;22436:34;22306:18;;9089:129:180;22131:345:186;9025:204:180;9256:10;9239:28;;;;:16;:28;;;;;:38;;9271:6;;9239:28;:38;;9271:6;;9239:38;:::i;:::-;;;;-1:-1:-1;;9314:10:180;9326:28;;;;:16;:28;;;;;;;;;;9292:63;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;9292:63:180;13625:18:186;9292:63:180;;;;;;;9366:36;;9374:10;;9366:36;;;;;9395:6;;9366:36;;;;9395:6;9374:10;9366:36;;;;;;;;;;;;;;;;;;;;;8972:437;:::o;7697:1470:120:-;7854:44;;-1:-1:-1;;;7854:44:120;;-1:-1:-1;;;;;6779:32:186;;;7854:44:120;;;6761:51:186;7801:16:120;;7833:18;;7854:20;:34;;;;6734:18:186;;7854:44:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7933:55;;-1:-1:-1;;;7933:55:120;;;;;13652:25:186;;;7833:65:120;;-1:-1:-1;7908:22:120;;-1:-1:-1;;;;;7933:20:120;:43;;;;13625:18:186;;7933:55:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7908:80;-1:-1:-1;;;;;;8003:19:120;;;;:62;;;8026:20;-1:-1:-1;;;;;8026:32:120;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;8003:62;7999:116;;;8088:16;;;8102:1;8088:16;;;;;;;;;;;-1:-1:-1;8081:23:120;7697:1470;-1:-1:-1;;;;7697:1470:120:o;7999:116::-;8196:36;8235:46;8266:14;-1:-1:-1;;;;;8235:46:120;:30;:46::i;:::-;8196:85;-1:-1:-1;8291:21:120;;8322:173;8346:23;:30;8342:1;:34;8322:173;;;8414:14;-1:-1:-1;;;;;8414:35:120;;8456:23;8480:1;8456:26;;;;;;;;:::i;:::-;;;;;8414:70;;-1:-1:-1;;;;;;8414:70:120;;;;;;;8456:26;;;;;8414:70;;;23697:36:186;23670:18;;8414:70:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8397:87;;;;:::i;:::-;;-1:-1:-1;8378:3:120;;;;:::i;:::-;;;;8322:173;;;;8566:35;8618:13;-1:-1:-1;;;;;8604:28:120;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8604:28:120;;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:120;;8765:26;;;;;8837:43;;;23697:36:186;;;8765:26:120;-1:-1:-1;;;;;;;;8837:14:120;:35;;;;23670:18:186;;8837:43:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8806:74;;8899:9;8894:222;8918:20;8914:1;:24;8894:222;;;9019:47;;-1:-1:-1;;;9019:47:120;;24273:4:186;24261:17;;9019:47:120;;;24243:36:186;24295:18;;;24288:34;;;9019:14:120;-1:-1:-1;;;;;9019:36:120;;;;24216:18:186;;9019:47:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;8963:18;8982:5;8963:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8963:113:120;;;:25;;;;;;;;;;;:113;9094:7;;;;:::i;:::-;;;;8940:3;;;;;:::i;:::-;;;;8894:222;;;;8730:396;;8725:3;;;;;:::i;:::-;;;;8669:457;;;-1:-1:-1;9142:18:120;;7697:1470;-1:-1:-1;;;;;;;7697:1470:120:o;5599:135::-;1334:13:42;:11;:13::i;:::-;5686:41:120::1;5707:19;5686:20;:41::i;:::-;5599:135:::0;:::o;2232:123:114:-;1537:19;-1:-1:-1;;;;;1537:25:114;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1523:41:114;:10;-1:-1:-1;;;;;1523:41:114;;1502:180;;;;-1:-1:-1;;;1502:180:114;;25431:2:186;1502:180:114;;;25413:21:186;25470:2;25450:18;;;25443:30;25509:34;25489:18;;;25482:62;25580:34;25560:18;;;25553:62;25652:30;25631:19;;;25624:59;25700:19;;1502:180:114;25229:496:186;1502:180:114;2317:31:::1;2342:5;2317:24;:31::i;9536:114:180:-:0;9606:37;9624:7;9633:9;9606:17;:37::i;4387:9678:114:-;-1:-1:-1;;;;;;;;;;;;;;;;;4578:7:114;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:114;;25932:2:186;4597:428:114;;;25914:21:186;25971:2;25951:18;;;25944:30;-1:-1:-1;;;;;;;;;;;25990:18:186;;;25983:62;26081:34;26061:18;;;26054:62;-1:-1:-1;;;26132:19:186;;;26125:32;26174:19;;4597:428:114;25730:469:186;4597:428:114;5107:35;;:42;5057:23;;;;:30;:92;5036:207;;;;-1:-1:-1;;;5036:207:114;;26406:2:186;5036:207:114;;;26388:21:186;26445:2;26425:18;;;26418:30;;;-1:-1:-1;;;;;;;;;;;26464:18:186;;;26457:62;26555:34;26535:18;;;26528:62;-1:-1:-1;;;26606:19:186;;;26599:35;26651:19;;5036:207:114;26204:472:186;5036:207:114;5305:12;5275:43;;:20;:43;;;5254:150;;;;-1:-1:-1;;;5254:150:114;;26883:2:186;5254:150:114;;;26865:21:186;26922:2;26902:18;;;26895:30;-1:-1:-1;;;;;;;;;;;26941:18:186;;;26934:62;27032:30;27012:18;;;27005:58;27080:19;;5254:150:114;26681:424:186;5254:150:114;5921:19;;;;;;;;-1:-1:-1;5921:19:114;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;6277:21:114;;;;;;;;;;;;;;;;;;6264:42;;;;;;;;;;;5921:19;;6264:42;6277:21;6264:42;;;;5921:19;6264:42;;;;;-1:-1:-1;;6230:31:114;;;;:76;;;;6364:21;;;;;;;;;;;;-1:-1:-1;6364:21:114;;;;;6351:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6316:77:114;;-1:-1:-1;;;;;;;;;;;;;;;;;6499:6:114;:23;;;:30;-1:-1:-1;;;;;6472:67:114;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:67:114;-1:-1:-1;6445:94:114;;6589:23;;;;:30;-1:-1:-1;;;;;6575:45:114;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6575:45:114;;6549:10;:23;;:71;;;;6799:27;6829:141;6884:21;;;;;;;;;;;;;;;;;6923:19;-1:-1:-1;;;;;6923:31:114;;: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:135;;10473:16;10524:20;;;10580:4;10576:13;;;10570:20;10557:34;;;10629:4;10616:18;;;10404:246;7301:82:114;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:114;;27312:2:186;7435:252:114;;;27294:21:186;27331:18;;;27324:30;;;;-1:-1:-1;;;;;;;;;;;27370:18:186;;;27363:62;27461:34;27441:18;;;27434:62;27513:19;;7435:252:114;27110:428:186;7435:252:114;7846:19;-1:-1:-1;;;;;7846:76:114;;7961:10;:23;;;7985:1;7961:26;;;;;;;;:::i;:::-;;;;;;;8026:20;8079:6;:35;;;8115:1;8079:38;;;;;;;;:::i;:::-;;;;;;;7846:294;;;;;;;;;;;;;;;;27742:25:186;;;27786:10;27832:15;;;27827:2;27812:18;;27805:43;27884:15;27879:2;27864:18;;27857:43;27730:2;27715:18;;27543:363;7846:294:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7816:324:114;: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:114;;;;:::i;:::-;;;;6985:1728;;;;6631:2092;8996:12;:3;:10;:12::i;:::-;9340:20;;8990:18;;-1:-1:-1;9340:20:114;;9311:26;9340:20;9406:97;;9502:1;9406:97;;;9446:10;-1:-1:-1;;;;;9446:35:114;;: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:114;;9911:21;;;;;;;;;;;;;;;;;9933:1;9911:24;;;;;;;;:::i;:::-;;;;;9832:130;;-1:-1:-1;;;;;;9832:130:114;;;;;;;9911:24;;;;;9832:130;;;23697:36:186;23670:18;;9832:130:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:182;;;;:::i;:::-;:233;9799:418;;;;-1:-1:-1;;;9799:418:114;;28113:2:186;9799:418:114;;;28095:21:186;28152:3;28132:18;;;28125:31;-1:-1:-1;;;;;;;;;;;28172:18:186;;;28165:62;28263:34;28243:18;;;28236:62;28335:34;28314:19;;;28307:63;-1:-1:-1;;;28386:19:186;;;28379:37;28433:19;;9799:418:114;27911:547:186;9799:418:114;10504:14;-1:-1:-1;;;;;10504:46:114;;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:114;;;;;;;28688:4:186;28676:17;;;10504:275:114;;;28658:36:186;10504:275:114;28759:15:186;;;28739:18;;;28732:43;28811:15;28791:18;;;28784:43;28631:18;;10504:275:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10433:346:114;;10441:34;:6;:17;;;10459:1;10441:20;;;;;;;;:::i;:34::-;-1:-1:-1;;10433:346:114;;10404:514;;;;-1:-1:-1;;;10404:514:114;;29339:2:186;10404:514:114;;;29321:21:186;29378:2;29358:18;;;29351:30;-1:-1:-1;;;;;;;;;;;29397:18:186;;;29390:62;29488:34;29468:18;;;29461:62;29560:34;29539:19;;;29532:63;-1:-1:-1;;;29611:19:186;;;29604:32;29653:19;;10404:514:114;29137:541:186;10404:514:114;10942:30;10951:6;:17;;;10969:1;10951:20;;;;;;;;:::i;:::-;;;;;;;10942:3;:8;;:30;;;;:::i;:::-;10936:36;;11126:13;-1:-1:-1;;;;;11126:70:114;;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:114;;;;;;;28688:4:186;28676:17;;;11126:284:114;;;28658:36:186;11126:284:114;28759:15:186;;;28739:18;;;28732:43;28811:15;28791:18;;;28784:43;28631:18;;11126:284:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11089:11;:31;;;11121:1;11089:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11089:321:114;;;:34;;;;;;;;;;:321;11466:52;;;:55;;11519:1;;11466:55;;;;;;:::i;:::-;;;;;;;11428:11;:32;;;11461:1;11428:35;;;;;;;;:::i;:::-;;;;;;:93;-1:-1:-1;;;;;11428:93:114;;;-1:-1:-1;;;;;11428:93:114;;;;;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:136;;;7404:1;7386:19;;;7380:26;;7292:121;12107:161:114;12078:907;;;12356:13;-1:-1:-1;;;;;12356:72:114;;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:114;;;;;;;30191:4:186;30179:17;;;12356:489:114;;;30161:36:186;12356:489:114;30262:15:186;;;30242:18;;;30235:43;30294:18;;;30287:34;;;;30357:15;30337:18;;;30330:43;30133:19;;12356:489:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12317:32;;:35;;12350:1;;12317:35;;;;;;:::i;:::-;;;;;;:528;;;;;;;:::i;:::-;-1:-1:-1;;;;;12317:528:114;;;-1:-1:-1;12911:25:114;;;;;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:114;;30828:2:186;13366:143:114;;;30810:21:186;30867:2;30847:18;;;30840:30;-1:-1:-1;;;;;;;;;;;30886:18:186;;;30879:62;30977:34;30957:18;;;30950:62;-1:-1:-1;;;31028:19:186;;;31021:34;31072:19;;13366:143:114;30626:471:186;13366:143:114;13548:16;13523:132;;;;-1:-1:-1;;;13523:132:114;;31304:2:186;13523:132:114;;;31286:21:186;31343:2;31323:18;;;31316:30;-1:-1:-1;;;;;;;;;;;31362:18:186;;;31355:62;31453:27;31433:18;;;31426:55;31498:19;;13523:132:114;31102:421:186;13523:132:114;13036:630;;13740:27;13810:20;13832:10;:23;;;13793:63;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;13793:63:114;;;;;;13770:96;;13793:63;13770:96;;;;14025:11;;13770:96;;-1:-1:-1;4387:9678:114;;-1:-1:-1;;;;;;;4387:9678:114:o;2071:101:42:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2218:146:180:-;4418:13:46;;2311:1:180;;4418:13:46;;;;;4417:14;:40;;;;-1:-1:-1;4435:12:46;;:22;;;;:12;;:22;4417:40;4409:99;;;;-1:-1:-1;;;4409:99:46;;;;;;;:::i;:::-;4518:12;:22;;-1:-1:-1;;4550:20:46;4518:22;;;4550:20;4518:22;4550:20;;;2324:33:180::1;2338:18:::0;2324:13:::1;:33::i;:::-;4607:5:46::0;4591:21;;-1:-1:-1;;4591:21:46;;;4627:20;;23727:4:186;23715:17;;23697:36;;4627:20:46;;23685:2:186;23670:18;4627:20:46;;;;;;;2218:146:180;;:::o;10031:171::-;10142:4;10191;10175:11;;10165:22;;;;;;;:::i;:::-;;;;;;;;:30;10158:37;;10031:171;;;;;:::o;4797:260:120:-;1358:10;-1:-1:-1;;;;;1380:20:120;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:120;;;;;;;:::i;:::-;4986:64:::1;::::0;-1:-1:-1;;;4986:64:120;;-1:-1:-1;;;;;4986:13:120::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:120;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:120;;;;;;;:::i;:::-;5364:49:::1;::::0;-1:-1:-1;;;5364:49:120;;-1:-1:-1;;;;;6779:32:186;;;5364:49:120::1;::::0;::::1;6761:51:186::0;5364:13:120::1;:39;::::0;::::1;::::0;6734:18:186;;5364:49:120::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5262:158:::0;:::o;2721:148::-;1334:13:42;:11;:13::i;:::-;2814:48:120::1;::::0;-1:-1:-1;;;2814:48:120;;-1:-1:-1;;;;;2814:13:120::1;:34;::::0;::::1;::::0;:48:::1;::::0;2849:12;;2814:48:::1;;;:::i;3858:2984:180:-:0;10262:17;;-1:-1:-1;;;;;10262:17:180;10248:10;:31;10244:121;;10336:17;;10302:52;;-1:-1:-1;;;10302:52:180;;10324:10;10302:52;;;34900:34:186;-1:-1:-1;;;;;10336:17:180;;;34950:18:186;;;34943:43;34835:18;;10302:52:180;34688:304:186;10244:121:180;4151:22:::1;4176:9;4151:34;;4196:27;4266:15;4283:13;4249:48;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4249:48:180;;::::1;::::0;;;;;;4226:81;;4249:48:::1;4226:81:::0;;::::1;::::0;4318:31:::1;4352:33:::0;;;:12:::1;:33:::0;;;;;4557:29;;4226:81;;-1:-1:-1;4352:33:180;4557:29:::1;;4553:110;;4614:38;::::0;-1:-1:-1;;;4614:38:180;;::::1;::::0;::::1;13652:25:186::0;;;13625:18;;4614:38:180::1;13506:177:186::0;4553:110:180::1;4725:22:::0;;;;::::1;;;4721:102;;;4770:42;::::0;-1:-1:-1;;;4770:42:180;;::::1;::::0;::::1;13652:25:186::0;;;13625:18;;4770:42:180::1;13506:177:186::0;4721:102:180::1;4832:29:::0;;-1:-1:-1;;4832:29:180::1;::::0;::::1;::::0;;4857:4:::1;4975:34:::0;::::1;::::0;-1:-1:-1;;;;;4941:31:180;::::1;4832:22;4941:31:::0;;;:16:::1;:31;::::0;;;;;:68:::1;4937:269;;;5098:34;::::0;::::1;::::0;-1:-1:-1;;;;;5150:31:180;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;5032:163;;-1:-1:-1;;;5032:163:180;;::::1;::::0;::::1;22333:51:186::0;;;;22400:18;;;22393:34;;;;22443:18;;;22436:34;;;;22306:18;;5032:163:180::1;22131:345:186::0;4937:269:180::1;5452:29:::0;;5342:42:::1;::::0;5390:142:::1;::::0;5419:19;;5452:29:::1;;5495:27:::0;5390:15:::1;:142::i;:::-;5341:191;;;1125:2;5725:86;;:17;:37;;;5763:1;5725:40;;;;;;;;:::i;:::-;;;;;;;:86;;;;:::i;:::-;-1:-1:-1::0;;;;;5645:166:180::1;1062:3;5645:17;:38;;;5684:1;5645:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;5645:65:180::1;;;;;:::i;:::-;:166;5628:473;;;1062:3;5883:17;:38;;;5922:1;5883:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;5883:85:180::1;;;;;:::i;:::-;1125:2;5986:90;;:17;:37;;;6024:1;5986:40;;;;;;;;:::i;:::-;;;;;;;:90;;;;:::i;:::-;5843:247;::::0;-1:-1:-1;;;5843:247:180;;::::1;::::0;::::1;35626:25:186::0;;;;-1:-1:-1;;;;;35687:39:186;35667:18;;;35660:67;35599:18;;5843:247:180::1;35453:280:186::0;5628:473:180::1;6116:45;::::0;-1:-1:-1;;;;;6779:32:186;;6761:51;;6130:15:180;;6116:45:::1;::::0;6749:2:186;6734:18;6116:45:180::1;;;;;;;6275:14;6332:11;6310:9;6293:26;::::0;:14;:26:::1;:::i;:::-;:35;::::0;6322:6:::1;6293:35;:::i;:::-;6292:51;;;;:::i;:::-;6275:68;;6367:12;:34;;;6358:6;:43;6354:192;;;6463:34;::::0;::::1;::::0;6424:111:::1;::::0;-1:-1:-1;;;6424:111:180;;::::1;::::0;::::1;35912:25:186::0;;;;35953:18;;;35946:34;;;35885:18;;6424:111:180::1;35738:248:186::0;6354:192:180::1;-1:-1:-1::0;;;;;6614:31:180;::::1;;::::0;;;:16:::1;:31;::::0;;;;:41;;6649:6;;6614:31;:41:::1;::::0;6649:6;;6614:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;6670:103:180;::::1;6732:31;::::0;;;:16:::1;:31;::::0;;;;;;;;;6670:103;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;6670:103:180;13625:18:186;6670:103:180::1;;;;;;;6800:17;::::0;6792:43:::1;::::0;-1:-1:-1;;;;;6800:17:180;;::::1;::::0;6792:43;::::1;;;::::0;6828:6;;6800:17:::1;6792:43:::0;6800:17;6792:43;6828:6;6800:17;6792:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4141:2701;;;;;3858:2984:::0;;;:::o;1691:338::-;3111:19:46;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:46;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:46;1476:19:50;:23;;;3219:66:46;;-1:-1:-1;3268:12:46;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:46;;;;;;;:::i;:::-;3368:12;:16;;-1:-1:-1;;3368:16:46;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:46;;;;;3394:65;1848:59:180::1;1874:13;1889:17;1848:25;:59::i;:::-;1917:17;:38:::0;;-1:-1:-1;;;;;;1917:38:180::1;-1:-1:-1::0;;;;;1917:38:180;::::1;;::::0;;3479:99:46;;;;3529:5;3513:21;;-1:-1:-1;;3513:21:46;;;3553:14;;-1:-1:-1;23697:36:186;;3553:14:46;;23685:2:186;23670:18;3553:14:46;;;;;;;3479:99;3101:483;1691:338:180;;;:::o;2370:1482::-;2540:23;2606:15;2623:10;2589:45;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2589:45:180;;;;;;;;;2566:78;;2589:45;2566:78;;;;2659:29;;;;:12;:29;;;;;:46;2566:78;;-1:-1:-1;2659:46:180;;:51;2655:127;;2733:38;;-1:-1:-1;;;2733:38:180;;;;;13652:25:186;;;13625:18;;2733:38:180;13506:177:186;2655:127:180;2796:9;:13;2792:213;;2842:10;2825:28;;;;:16;:28;;;;;:41;;2857:9;;2825:28;:41;;2857:9;;2825:41;:::i;:::-;;;;-1:-1:-1;;2924:10:180;2952:28;;;;:16;:28;;;;;;;;;;2885:109;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;2885:109:180;13625:18:186;2885:109:180;;;;;;;2792:213;3036:10;3019:28;;;;:16;:28;;;;;;:52;-1:-1:-1;3015:234:180;;;3129:10;3196:28;;;;:16;:28;;;;;;;;3094:144;;-1:-1:-1;;;3094:144:180;;;;;22333:51:186;;;;22400:18;;;22393:34;;;22443:18;;;22436:34;22306:18;;3094:144:180;22131:345:186;3015:234:180;-1:-1:-1;;;;;;;;;;;;;;;;3298:50:180;3335:12;3298:50;;;;;-1:-1:-1;;;3396:56:180;;;3463:29;;;:12;:29;;;;;;;:42;;;;;;;;;;-1:-1:-1;;3463:42:180;;;;;;;;;;;;;;;;;-1:-1:-1;3463:42:180;;;;3521:137;;-1:-1:-1;;3545:15:180;;3521:137;;;;3574:10;;3335:12;3632:16;;;;3521:137;:::i;:::-;;;;;;;;3697:15;3673:172;3726:10;3757:12;3784:16;;3814:21;3673:172;;;;;;;;;;:::i;:::-;;;;;;;;2530:1322;;2370:1482;;;;:::o;6262:951:120:-;6321:16;6349:19;6371:20;-1:-1:-1;;;;;6371:32:120;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6349:56;;;-1:-1:-1;6420:16:120;6416:70;;-1:-1:-1;;6459:16:120;;;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:120;;23727:4:186;23715:17;;6600:45:120;;;23697:36:186;6600:14:120;-1:-1:-1;;;;;6600:35:120;;;;23670:18:186;;6600:45:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6583:62;;;;:::i;:::-;;-1:-1:-1;6564:3:120;;;;:::i;:::-;;;;6527:129;;;;6666:35;6718:13;-1:-1:-1;;;;;6704:28:120;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6704:28:120;;6666:66;;6742:13;6774:9;6769:403;6793:20;-1:-1:-1;;;;;6793:32:120;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6789:38;;:1;:38;6769:403;;;6879:45;;-1:-1:-1;;;6879:45:120;;23727:4:186;23715:17;;6879:45:120;;;23697:36:186;6848:28:120;;6879:14;-1:-1:-1;;;;;6879:35:120;;;;23670:18:186;;6879:45:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6848:76;;6943:9;6938:224;6962:20;6958:1;:24;6938:224;;;7063:49;;-1:-1:-1;;;7063:49:120;;24273:4:186;24261:17;;7063:49:120;;;24243:36:186;24295:18;;;24288:34;;;7063:14:120;-1:-1:-1;;;;;7063:36:120;;;;24216:18:186;;7063:49:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;7007:18;7026:5;7007:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7007:115:120;;;:25;;;;;;;;;;;:115;7140:7;;;;:::i;:::-;;;;6984:3;;;;;:::i;:::-;;;;6938:224;;;;6834:338;6829:3;;;;;:::i;:::-;;;;6769:403;;;-1:-1:-1;7188:18:120;;6262:951;-1:-1:-1;;;;6262:951:120:o;2321:198:42:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:42;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:42;;37607:2:186;2401:73:42::1;::::0;::::1;37589:21:186::0;37646:2;37626:18;;;37619:30;37685:34;37665:18;;;37658:62;-1:-1:-1;;;37736:18:186;;;37729:36;37782:19;;2401:73:42::1;37405:402:186::0;2401:73:42::1;2484:28;2503:8;2484:18;:28::i;8843:123:180:-:0;1334:13:42;:11;:13::i;:::-;8921:17:180::1;:38:::0;;-1:-1:-1;;;;;;8921:38:180::1;-1:-1:-1::0;;;;;8921:38:180;;;::::1;::::0;;;::::1;::::0;;8843:123::o;8194:643::-;8540:290;;-1:-1:-1;;;8540:290:180;;8517:4;;8540;;:25;;:290;;8579:15;;8608:18;;8640:30;;8684:18;;8716:15;;8745:11;;8770:26;;8517:4;;8540:290;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3631:872:120:-;1684:16;;-1:-1:-1;;;;;1684:16:120;1670:10;:30;1649:153;;;;-1:-1:-1;;;1649:153:120;;39073:2:186;1649:153:120;;;39055:21:186;39112:2;39092:18;;;39085:30;39151:34;39131:18;;;39124:62;39222:34;39202:18;;;39195:62;-1:-1:-1;;;39273:19:186;;;39266:43;39326:19;;1649:153:120;38871:480:186;1649:153:120;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:120::1;;4070:10;4090:4;4097:18;;4116:1;4097:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;4029:97:::0;;-1:-1:-1;;;;;;4029:97:120::1;::::0;;;;;;-1:-1:-1;;;;;40369:15:186;;;4029:97:120::1;::::0;::::1;40351:34:186::0;40421:15;;;;40401:18;;;40394:43;4097:28:120::1;;40453:18:186::0;;;40446:34;40286:18;;4029:97:120::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:120;;4222:4:::1;4176:82;::::0;::::1;34900:34:186::0;-1:-1:-1;;;;;4237:19:120::1;34970:15:186::0;;34950:18;;;34943:43;4176:37:120;;;::::1;::::0;::::1;::::0;34835:18:186;;4176:82:120::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4140:118;;4272:18;;4291:1;4272:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4272:35:120::1;;4333:19;4386:9;4355:18;;4374:1;4355:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;;;:40;;;;:::i;:::-;4272:137;::::0;-1:-1:-1;;;;;;4272:137:120::1;::::0;;;;;;-1:-1:-1;;;;;40683:32:186;;;4272:137:120::1;::::0;::::1;40665:51:186::0;40732:18;;;40725:34;40638:18;;4272:137:120::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3866:554;3861:3;;;;:::i;:::-;;;3810:610;;;-1:-1:-1::0;4430:66:120::1;::::0;-1:-1:-1;;;4430:66:120;;-1:-1:-1;;;;;4430:19:120::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:135:-;-1:-1:-1;;;;;;;;;;;;;;;;;7184:23:135;;:::i;:::-;7228:3;;7217:14;;:8;7252:3;;;;7241:8;;;:14;7265:8;;;;:12;;;-1:-1:-1;;7452:1:135;7446:4;7217:14;7436:1;7429:4;7422:5;7418:16;7407:53;7396:64;-1:-1:-1;7396:64:135;7557:48;;;;7530:75;;7557:48;7582:9;7530:75;;7632:7;7624:33;;;;-1:-1:-1;;;7624:33:135;;43919:2:186;7624:33:135;;;43901:21:186;43958:2;43938:18;;;43931:30;-1:-1:-1;;;43977:18:186;;;43970:43;44030:18;;7624:33:135;43717:337:186;7624:33:135;7174:490;;7084:580;;;;:::o;4823:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4926:23:135;;:::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:135;5219:4;4959:15;5209:1;5202:4;5195:5;5191:16;5180:53;5169:64;-1:-1:-1;5169:64:135;5330:48;;;;5303:75;5406:7;5398:33;;;;-1:-1:-1;;;5398:33:135;;44261:2:186;5398:33:135;;;44243:21:186;44300:2;44280:18;;;44273:30;-1:-1:-1;;;44319:18:186;;;44312:43;44372:18;;5398:33:135;44059:337:186;4070:128:135;4119:14;;:::i;:::-;-1:-1:-1;4152:39:135;;;;;;;;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:135;;;11185:24;-1:-1:-1;;;;;;;;;;;11193:2:135;11185:24;:::i;:::-;11173:36;;11220:239;11259:13;11270:1;11259:10;:13::i;:::-;11247:25;;-1:-1:-1;11247:25:135;-1:-1:-1;;;;;;;;;;;;11336:1:135;11333;11326:24;11318:4;:32;11314:92;;;11378:13;;;;;;;;;;;;;;;;;;;;11044:451;-1:-1:-1;;;11044:451:135:o;11314:92::-;-1:-1:-1;;;;;;;;;;;11434:1:135;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:135;;;;:::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:135;;-1:-1:-1;;;;;;;;;;9189:1112:135:o;5465:1257:136:-;5532:12;5650:15;5728:23;5764:20;5777:6;5764:12;:20::i;:::-;5754:31;;-1:-1:-1;;;;;5754:31:136;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5754:31:136;;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:136;;;:21;6335:344;;6524:1;6511:16;;6486:10;6497;6486:22;;;;;;;;:::i;:::-;;;;:41;-1:-1:-1;;;;;6486:41:136;;;;;;;;;6650:12;;;;;6335:344;6155:3;;;:::i;:::-;;;6088:601;;1599:130:42;1513:6;;-1:-1:-1;;;;;1513:6:42;929:10:51;1662:23:42;1654:68;;;;-1:-1:-1;;;1654:68:42;;44603:2:186;1654:68:42;;;44585:21:186;;;44622:18;;;44615:30;44681:34;44661:18;;;44654:62;44733:18;;1654:68:42;44401:356:186;5740:200:120;5847:16;;5823:62;;;-1:-1:-1;;;;;5847:16:120;;;34900:34:186;;34970:15;;;34965:2;34950:18;;34943:43;5823:62:120;;34835:18:186;5823:62:120;;;;;;;5895:16;:38;;-1:-1:-1;;;;;;5895:38:120;-1:-1:-1;;;;;5895:38:120;;;;;;;;;;5740:200::o;15634:148:114:-;15699:20;:28;;-1:-1:-1;;15699:28:114;;;;;;;;;;15742:33;;3185:41:186;;;15742:33:114;;3173:2:186;3158:18;15742:33:114;;;;;;;15634:148;:::o;3308:360:136:-;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:136;;44964:2:186;3510:127:136;;;44946:21:186;45003:2;44983:18;;;44976:30;45042:34;45022:18;;;45015:62;45113:33;45093:18;;;45086:61;45164:19;;3510:127:136;44762:427:186;3510:127:136;3655:6;-1:-1:-1;3308:360:136;;;;;:::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:135;-1:-1:-1;;;;;;;;;;;;;;;;;5824:4:135;5820:1;:8;;;5812:37;;;;-1:-1:-1;;;5812:37:135;;45598:2:186;5812:37:135;;;45580:21:186;45637:2;45617:18;;;45610:30;-1:-1:-1;;;45656:18:186;;;45649:46;45712:18;;5812:37:135;45396:340:186;5812:37:135;5893:1;:6;;5898:1;5893:6;5890:44;;;-1:-1:-1;5922:1:135;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:135;6771:1;6765:7;;;;;6790:3;6337:481;;;-1:-1:-1;6885:3:135;;5698:1197;-1:-1:-1;;;;;5698:1197:135:o;4461:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4600:3:135;;:8;:20;;;;-1:-1:-1;4612:3:135;;;;:8;4600:20;4596:154;;;-1:-1:-1;;4643:13:135;;;;;;;;;-1:-1:-1;4643:13:135;;;;;;;;4461:295::o;4596:154::-;4694:45;;;;;;;;4702:1;:3;;;4694:45;;;;-1:-1:-1;;;;;;;;;;;4721:1:135;:3;;;:16;;;;:::i;:::-;4707:31;;-1:-1:-1;;;;;;;;;;;4707:31:135;:::i;:::-;4694:45;;4687:52;4461:295;-1:-1:-1;;4461:295:135:o;4596:154::-;4461:295;;;:::o;2673:187:42:-;2765:6;;;-1:-1:-1;;;;;2781:17:42;;;-1:-1:-1;;;;;;2781:17:42;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2311:238:120:-;4910:13:46;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:46;;45943:2:186;4902:69:46;;;45925:21:186;45982:2;45962:18;;;45955:30;46021:34;46001:18;;;45994:62;-1:-1:-1;;;46072:18:186;;;46065:41;46123:19;;4902:69:46;45741:407:186;4902:69:46;2461:32:120::1;2480:12;2461:18;:32::i;:::-;2503:39;2524:17;2503:20;:39::i;1997:1172:27:-:0;2136:7;2191:2;2176:5;:12;:17;;;;:::i;:::-;:22;2155:144;;;;-1:-1:-1;;;2155:144:27;;46355:2:186;2155:144:27;;;46337:21:186;46394:2;46374:18;;;46367:30;46433:34;46413:18;;;46406:62;46504:34;46484:18;;;46477:62;-1:-1:-1;;;46555:19:186;;;46548:42;46607:19;;2155:144:27;46153:479:186;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:135;11670:7;;;-1:-1:-1;;;;;;;;;;;11801:1:135;-1:-1:-1;;;;;;;;;;;11785:1:135;-1:-1:-1;;;;;;;;;;;11769:1:135;11766;11759:24;11752:47;11745:70;11730:85;;11912:9;11924:91;11931:4;11937:65;-1:-1:-1;;;;;;;;;;;11924:6:135;:91::i;:::-;12034:4;;11912:103;;-1:-1:-1;11616:433:135;;-1:-1:-1;;;11616:433:135:o;1188:1693:136:-;1278:7;571:3;1409:17;:24;:49;;1401:142;;;;-1:-1:-1;;;1401:142:136;;46839:2:186;1401:142:136;;;46821:21:186;46878:2;46858:18;;;46851:30;;;46917:34;46897:18;;;46890:62;46988:34;46968:18;;;46961:62;-1:-1:-1;;;47039:19:186;;;47032:35;47084:19;;1401:142:136;46637:472:186;1401:142:136;1619:24;;1615:77;;-1:-1:-1;1679:1:136;;1188:1693;-1:-1:-1;1188:1693:136: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:136;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:136;;;2657:100;;;;-1:-1:-1;;;2657:100:136;;47316:2:186;2657:100:136;;;47298:21:186;47355:2;47335:18;;;47328:30;47394:34;47374:18;;;47367:62;47465:34;47445:18;;;47438:62;-1:-1:-1;;;47516:19:186;;;47509:38;47564:19;;2657:100:136;47114:475:186;2657:100:136;2824:16;;;;2334:3;;;:::i;:::-;;;2284:568;;;-1:-1:-1;2868:6:136;;1188:1693;-1:-1:-1;;;1188:1693:136:o;12055:874:135:-;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:135;12783:48;;;;12756:75;12858:7;12850:46;;;;-1:-1:-1;;;12850:46:135;;47796:2:186;12850:46:135;;;47778:21:186;47835:2;47815:18;;;47808:30;47874:28;47854:18;;;47847:56;47920:18;;12850:46:135;47594:350:186;12850:46:135;-1:-1:-1;12913:9:135;;;-1:-1:-1;;;;;12055:874:135:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:185:186:-;82:20;;-1:-1:-1;;;;;;131:43:186;;121:54;;111:82;;189:1;186;179:12;204:127;265:10;260:3;256:20;253:1;246:31;296:4;293:1;286:15;320:4;317:1;310:15;336:257;408:4;402:11;;;440:17;;-1:-1:-1;;;;;472:34:186;;508:22;;;469:62;466:88;;;534:18;;:::i;:::-;570:4;563:24;336:257;:::o;854:255::-;926:2;920:9;968:6;956:19;;-1:-1:-1;;;;;990:34:186;;1026:22;;;987:62;984:88;;;1052:18;;:::i;1114:275::-;1185:2;1179:9;1250:2;1231:13;;-1:-1:-1;;1227:27:186;1215:40;;-1:-1:-1;;;;;1270:34:186;;1306:22;;;1267:62;1264:88;;;1332:18;;:::i;:::-;1368:2;1361:22;1114:275;;-1:-1:-1;1114:275:186:o;1394:406::-;1458:5;-1:-1:-1;;;;;1484:6:186;1481:30;1478:56;;;1514:18;;:::i;:::-;1552:57;1597:2;1576:15;;-1:-1:-1;;1572:29:186;1603:4;1568:40;1552:57;:::i;:::-;1543:66;;1632:6;1625:5;1618:21;1672:3;1663:6;1658:3;1654:16;1651:25;1648:45;;;1689:1;1686;1679:12;1648:45;1738:6;1733:3;1726:4;1719:5;1715:16;1702:43;1792:1;1785:4;1776:6;1769:5;1765:18;1761:29;1754:40;1394:406;;;;;:::o;1805:220::-;1847:5;1900:3;1893:4;1885:6;1881:17;1877:27;1867:55;;1918:1;1915;1908:12;1867:55;1940:79;2015:3;2006:6;1993:20;1986:4;1978:6;1974:17;1940:79;:::i;:::-;1931:88;1805:220;-1:-1:-1;;;1805:220:186:o;2030:131::-;-1:-1:-1;;;;;2105:31:186;;2095:42;;2085:70;;2151:1;2148;2141:12;2166:874;2297:6;2305;2313;2321;2329;2337;2345;2353;2406:3;2394:9;2385:7;2381:23;2377:33;2374:53;;;2423:1;2420;2413:12;2374:53;2459:9;2446:23;2436:33;;2516:2;2505:9;2501:18;2488:32;2478:42;;2567:2;2556:9;2552:18;2539:32;2529:42;;2590:38;2624:2;2613:9;2609:18;2590:38;:::i;:::-;2580:48;;2675:3;2664:9;2660:19;2647:33;2637:43;;2731:3;2720:9;2716:19;2703:33;-1:-1:-1;;;;;2751:6:186;2748:30;2745:50;;;2791:1;2788;2781:12;2745:50;2814:49;2855:7;2846:6;2835:9;2831:22;2814:49;:::i;:::-;2804:59;;;2910:3;2899:9;2895:19;2882:33;2872:43;;2965:3;2954:9;2950:19;2937:33;2979:31;3004:5;2979:31;:::i;:::-;3029:5;3019:15;;;2166:874;;;;;;;;;;;:::o;3237:282::-;3291:5;3339:4;3327:9;3322:3;3318:19;3314:30;3311:50;;;3357:1;3354;3347:12;3311:50;3379:22;;:::i;:::-;3370:31;;3437:9;3424:23;3417:5;3410:38;3508:2;3497:9;3493:18;3480:32;3475:2;3468:5;3464:14;3457:56;3237:282;;;;:::o;3524:484::-;3574:5;3627:3;3620:4;3612:6;3608:17;3604:27;3594:55;;3645:1;3642;3635:12;3594:55;3669:22;;:::i;:::-;3713:3;3751:2;3743:6;3739:15;3777:3;3769:6;3766:15;3763:35;;;3794:1;3791;3784:12;3763:35;3818:6;3833:146;3849:6;3844:3;3841:15;3833:146;;;3917:17;;3905:30;;3964:4;3955:14;;;;3866;3833:146;;;-1:-1:-1;3997:5:186;;3524:484;-1:-1:-1;;;;;3524:484:186:o;4013:320::-;4067:5;4115:4;4103:9;4098:3;4094:19;4090:30;4087:50;;;4133:1;4130;4123:12;4087:50;4155:22;;:::i;:::-;4146:31;;4200:40;4236:3;4225:9;4200:40;:::i;:::-;4193:5;4186:55;4275:51;4322:3;4315:4;4304:9;4300:20;4275:51;:::i;:::-;4268:4;4261:5;4257:16;4250:77;4013:320;;;;:::o;4338:530::-;4502:6;4510;4518;4526;4579:3;4567:9;4558:7;4554:23;4550:33;4547:53;;;4596:1;4593;4586:12;4547:53;4632:9;4619:23;4609:33;;4661:54;4707:7;4702:2;4691:9;4687:18;4661:54;:::i;:::-;4651:64;;4734:54;4780:7;4775:2;4764:9;4760:18;4734:54;:::i;:::-;4724:64;;4807:55;4854:7;4848:3;4837:9;4833:19;4807:55;:::i;:::-;4797:65;;4338:530;;;;;;;:::o;5146:180::-;5205:6;5258:2;5246:9;5237:7;5233:23;5229:32;5226:52;;;5274:1;5271;5264:12;5226:52;-1:-1:-1;5297:23:186;;5146:180;-1:-1:-1;5146:180:186:o;5331:247::-;5390:6;5443:2;5431:9;5422:7;5418:23;5414:32;5411:52;;;5459:1;5456;5449:12;5411:52;5498:9;5485:23;5517:31;5542:5;5517:31;:::i;5583:658::-;5754:2;5806:21;;;5876:13;;5779:18;;;5898:22;;;5725:4;;5754:2;5977:15;;;;5951:2;5936:18;;;5725:4;6020:195;6034:6;6031:1;6028:13;6020:195;;;6099:13;;-1:-1:-1;;;;;6095:39:186;6083:52;;6190:15;;;;6155:12;;;;6131:1;6049:9;6020:195;;;-1:-1:-1;6232:3:186;;5583:658;-1:-1:-1;;;;;;5583:658:186:o;6246:118::-;6332:5;6325:13;6318:21;6311:5;6308:32;6298:60;;6354:1;6351;6344:12;6369:241;6425:6;6478:2;6466:9;6457:7;6453:23;6449:32;6446:52;;;6494:1;6491;6484:12;6446:52;6533:9;6520:23;6552:28;6574:5;6552:28;:::i;6823:163::-;6890:20;;6950:10;6939:22;;6929:33;;6919:61;;6976:1;6973;6966:12;6991:182;7050:4;-1:-1:-1;;;;;7075:6:186;7072:30;7069:56;;;7105:18;;:::i;:::-;-1:-1:-1;7150:1:186;7146:14;7162:4;7142:25;;6991:182::o;7178:665::-;7231:5;7284:3;7277:4;7269:6;7265:17;7261:27;7251:55;;7302:1;7299;7292:12;7251:55;7338:6;7325:20;7364:4;7388:59;7404:42;7443:2;7404:42;:::i;:::-;7388:59;:::i;:::-;7481:15;;;7567:1;7563:10;;;;7551:23;;7547:32;;;7512:12;;;;7591:15;;;7588:35;;;7619:1;7616;7609:12;7588:35;7655:2;7647:6;7643:15;7667:147;7683:6;7678:3;7675:15;7667:147;;;7749:22;7767:3;7749:22;:::i;:::-;7737:35;;7792:12;;;;7700;;7667:147;;;-1:-1:-1;7832:5:186;7178:665;-1:-1:-1;;;;;;7178:665:186:o;7848:688::-;7909:5;7962:3;7955:4;7947:6;7943:17;7939:27;7929:55;;7980:1;7977;7970:12;7929:55;8016:6;8003:20;8042:4;8066:59;8082:42;8121:2;8082:42;:::i;8066:59::-;8159:15;;;8245:1;8241:10;;;;8229:23;;8225:32;;;8190:12;;;;8269:15;;;8266:35;;;8297:1;8294;8287:12;8266:35;8333:2;8325:6;8321:15;8345:162;8361:6;8356:3;8353:15;8345:162;;;8429:35;8460:3;8455;8429:35;:::i;:::-;8417:48;;8485:12;;;;8387:4;8378:14;8345:162;;8541:907;8604:5;8657:3;8650:4;8642:6;8638:17;8634:27;8624:55;;8675:1;8672;8665:12;8624:55;8711:6;8698:20;8737:4;8761:59;8777:42;8816:2;8777:42;:::i;8761:59::-;8854:15;;;8940:1;8936:10;;;;8924:23;;8920:32;;;8885:12;;;;8964:15;;;8961:35;;;8992:1;8989;8982:12;8961:35;9028:2;9020:6;9016:15;9040:379;9056:6;9051:3;9048:15;9040:379;;;9142:3;9129:17;-1:-1:-1;;;;;9165:11:186;9162:35;9159:125;;;9238:1;9267:2;9263;9256:14;9159:125;9309:67;9372:3;9367:2;9353:11;9345:6;9341:24;9337:33;9309:67;:::i;:::-;9297:80;;-1:-1:-1;9397:12:186;;;;9073;;9040:379;;9453:1566;9527:5;9575:6;9563:9;9558:3;9554:19;9550:32;9547:52;;;9595:1;9592;9585:12;9547:52;9617:22;;:::i;:::-;9608:31;;9675:9;9662:23;-1:-1:-1;;;;;9745:2:186;9737:6;9734:14;9731:34;;;9761:1;9758;9751:12;9731:34;9788:56;9840:3;9831:6;9820:9;9816:22;9788:56;:::i;:::-;9781:5;9774:71;9898:2;9887:9;9883:18;9870:32;9854:48;;9927:2;9917:8;9914:16;9911:36;;;9943:1;9940;9933:12;9911:36;9979:66;10041:3;10030:8;10019:9;10015:24;9979:66;:::i;:::-;9974:2;9967:5;9963:14;9956:90;10099:2;10088:9;10084:18;10071:32;10055:48;;10128:2;10118:8;10115:16;10112:36;;;10144:1;10141;10134:12;10112:36;10180:66;10242:3;10231:8;10220:9;10216:24;10180:66;:::i;:::-;10175:2;10168:5;10164:14;10157:90;10279:50;10325:3;10320:2;10309:9;10305:18;10279:50;:::i;:::-;10274:2;10267:5;10263:14;10256:74;10364:51;10411:3;10405;10394:9;10390:19;10364:51;:::i;:::-;10357:4;10350:5;10346:16;10339:77;10469:3;10458:9;10454:19;10441:33;10425:49;;10499:2;10489:8;10486:16;10483:36;;;10515:1;10512;10505:12;10483:36;10553:58;10607:3;10596:8;10585:9;10581:24;10553:58;:::i;:::-;10546:4;10539:5;10535:16;10528:84;10665:3;10654:9;10650:19;10637:33;10621:49;;10695:2;10685:8;10682:16;10679:36;;;10711:1;10708;10701:12;10679:36;10749:58;10803:3;10792:8;10781:9;10777:24;10749:58;:::i;:::-;10742:4;10735:5;10731:16;10724:84;10861:3;10850:9;10846:19;10833:33;10817:49;;10891:2;10881:8;10878:16;10875:36;;;10907:1;10904;10897:12;10875:36;;10944:68;11008:3;10997:8;10986:9;10982:24;10944:68;:::i;:::-;10938:3;10931:5;10927:15;10920:93;;9453:1566;;;;:::o;11024:526::-;11146:6;11154;11162;11215:2;11203:9;11194:7;11190:23;11186:32;11183:52;;;11231:1;11228;11221:12;11183:52;11267:9;11254:23;11244:33;;11296:37;11329:2;11318:9;11314:18;11296:37;:::i;:::-;11286:47;;11384:2;11373:9;11369:18;11356:32;-1:-1:-1;;;;;11403:6:186;11400:30;11397:50;;;11443:1;11440;11433:12;11397:50;11466:78;11536:7;11527:6;11516:9;11512:22;11466:78;:::i;:::-;11456:88;;;11024:526;;;;;:::o;11555:467::-;11607:3;11645:5;11639:12;11672:6;11667:3;11660:19;11698:4;11727:2;11722:3;11718:12;11711:19;;11764:2;11757:5;11753:14;11785:1;11795:202;11809:6;11806:1;11803:13;11795:202;;;11874:13;;-1:-1:-1;;;;;11870:46:186;11858:59;;11937:12;;;;11972:15;;;;11831:1;11824:9;11795:202;;;-1:-1:-1;12013:3:186;;11555:467;-1:-1:-1;;;;;11555:467:186:o;12027:645::-;12256:2;12245:9;12238:21;12219:4;12294:6;12288:13;12337:2;12332;12321:9;12317:18;12310:30;12363:62;12420:3;12409:9;12405:19;12391:12;12363:62;:::i;:::-;12349:76;;12474:4;12466:6;12462:17;12456:24;12548:2;12544:7;12532:9;12524:6;12520:22;12516:36;12511:2;12500:9;12496:18;12489:64;12570:51;12614:6;12598:14;12570:51;:::i;:::-;12562:59;;;;12659:6;12652:4;12641:9;12637:20;12630:36;12027:645;;;;;:::o;13688:347::-;13739:8;13749:6;13803:3;13796:4;13788:6;13784:17;13780:27;13770:55;;13821:1;13818;13811:12;13770:55;-1:-1:-1;13844:20:186;;-1:-1:-1;;;;;13876:30:186;;13873:50;;;13919:1;13916;13909:12;13873:50;13956:4;13948:6;13944:17;13932:29;;14008:3;14001:4;13992:6;13984;13980:19;13976:30;13973:39;13970:59;;;14025:1;14022;14015:12;13970:59;13688:347;;;;;:::o;14040:477::-;14119:6;14127;14135;14188:2;14176:9;14167:7;14163:23;14159:32;14156:52;;;14204:1;14201;14194:12;14156:52;14244:9;14231:23;-1:-1:-1;;;;;14269:6:186;14266:30;14263:50;;;14309:1;14306;14299:12;14263:50;14348:58;14398:7;14389:6;14378:9;14374:22;14348:58;:::i;:::-;14425:8;;14322:84;;-1:-1:-1;14507:2:186;14492:18;;;;14479:32;;14040:477;-1:-1:-1;;;;14040:477:186:o;14522:1026::-;14634:6;14642;14695:2;14683:9;14674:7;14670:23;14666:32;14663:52;;;14711:1;14708;14701:12;14663:52;14750:9;14737:23;14769:31;14794:5;14769:31;:::i;:::-;14819:5;-1:-1:-1;14875:2:186;14860:18;;14847:32;-1:-1:-1;;;;;14928:14:186;;;14925:34;;;14955:1;14952;14945:12;14925:34;14978:22;;;;15034:4;15016:16;;;15012:27;15009:47;;;15052:1;15049;15042:12;15009:47;15085:2;15079:9;15127:4;15119:6;15115:17;15182:6;15170:10;15167:22;15162:2;15150:10;15147:18;15144:46;15141:72;;;15193:18;;:::i;:::-;15229:2;15222:22;15269:16;;15297;;;15294:36;;;15326:1;15323;15316:12;15294:36;15354:44;15390:7;15379:8;15375:2;15371:17;15354:44;:::i;:::-;15346:6;15339:60;;15453:2;15449;15445:11;15432:25;15427:2;15419:6;15415:15;15408:50;15512:2;15508;15504:11;15491:25;15486:2;15478:6;15474:15;15467:50;15536:6;15526:16;;;;;14522:1026;;;;;:::o;15553:450::-;15622:6;15675:2;15663:9;15654:7;15650:23;15646:32;15643:52;;;15691:1;15688;15681:12;15643:52;15731:9;15718:23;-1:-1:-1;;;;;15756:6:186;15753:30;15750:50;;;15796:1;15793;15786:12;15750:50;15819:22;;15872:4;15864:13;;15860:27;-1:-1:-1;15850:55:186;;15901:1;15898;15891:12;15850:55;15924:73;15989:7;15984:2;15971:16;15966:2;15962;15958:11;15924:73;:::i;:::-;15914:83;15553:450;-1:-1:-1;;;;15553:450:186:o;16008:589::-;16131:6;16139;16147;16200:2;16188:9;16179:7;16175:23;16171:32;16168:52;;;16216:1;16213;16206:12;16168:52;16252:9;16239:23;16229:33;;16312:2;16301:9;16297:18;16284:32;16325:31;16350:5;16325:31;:::i;17235:529::-;17312:6;17320;17328;17381:2;17369:9;17360:7;17356:23;17352:32;17349:52;;;17397:1;17394;17387:12;17349:52;17436:9;17423:23;17455:31;17480:5;17455:31;:::i;:::-;17505:5;-1:-1:-1;17562:2:186;17547:18;;17534:32;17575:33;17534:32;17575:33;:::i;:::-;17627:7;-1:-1:-1;17686:2:186;17671:18;;17658:32;17699:33;17658:32;17699:33;:::i;:::-;17751:7;17741:17;;;17235:529;;;;;:::o;17769:546::-;17858:6;17866;17874;17882;17935:2;17923:9;17914:7;17910:23;17906:32;17903:52;;;17951:1;17948;17941:12;17903:52;17987:9;17974:23;17964:33;;18048:2;18037:9;18033:18;18020:32;-1:-1:-1;;;;;18067:6:186;18064:30;18061:50;;;18107:1;18104;18097:12;18061:50;18146:58;18196:7;18187:6;18176:9;18172:22;18146:58;:::i;:::-;17769:546;;18223:8;;-1:-1:-1;18120:84:186;;18305:2;18290:18;18277:32;;17769:546;-1:-1:-1;;;;17769:546:186:o;18555:738::-;18677:6;18685;18693;18701;18709;18717;18725;18778:3;18766:9;18757:7;18753:23;18749:33;18746:53;;;18795:1;18792;18785:12;18746:53;18831:9;18818:23;18808:33;;18888:2;18877:9;18873:18;18860:32;18850:42;;18939:2;18928:9;18924:18;18911:32;18901:42;;18962:38;18996:2;18985:9;18981:18;18962:38;:::i;:::-;18952:48;;19047:3;19036:9;19032:19;19019:33;19009:43;;19103:3;19092:9;19088:19;19075:33;-1:-1:-1;;;;;19123:6:186;19120:30;19117:50;;;19163:1;19160;19153:12;19117:50;19186:49;19227:7;19218:6;19207:9;19203:22;19186:49;:::i;:::-;19176:59;;;19282:3;19271:9;19267:19;19254:33;19244:43;;18555:738;;;;;;;;;;:::o;19298:652::-;19421:6;19429;19482:2;19470:9;19461:7;19457:23;19453:32;19450:52;;;19498:1;19495;19488:12;19450:52;19538:9;19525:23;-1:-1:-1;;;;;19608:2:186;19600:6;19597:14;19594:34;;;19624:1;19621;19614:12;19594:34;19662:6;19651:9;19647:22;19637:32;;19707:7;19700:4;19696:2;19692:13;19688:27;19678:55;;19729:1;19726;19719:12;19678:55;19769:2;19756:16;19795:2;19787:6;19784:14;19781:34;;;19811:1;19808;19801:12;19781:34;19864:7;19859:2;19849:6;19846:1;19842:14;19838:2;19834:23;19830:32;19827:45;19824:65;;;19885:1;19882;19875:12;19824:65;19916:2;19908:11;;;;;19938:6;;-1:-1:-1;19298:652:186;;-1:-1:-1;;;;19298:652:186:o;19955:127::-;20016:10;20011:3;20007:20;20004:1;19997:31;20047:4;20044:1;20037:15;20071:4;20068:1;20061:15;20087:128;20127:3;20158:1;20154:6;20151:1;20148:13;20145:39;;;20164:18;;:::i;:::-;-1:-1:-1;20200:9:186;;20087:128::o;20220:294::-;20377:19;;;20434:2;20430:15;-1:-1:-1;;;;;;20426:53:186;20421:2;20412:12;;20405:75;20505:2;20496:12;;20220:294::o;20940:127::-;21001:10;20996:3;20992:20;20989:1;20982:31;21032:4;21029:1;21022:15;21056:4;21053:1;21046:15;21917:209;21949:1;21975;21965:132;;22019:10;22014:3;22010:20;22007:1;22000:31;22054:4;22051:1;22044:15;22082:4;22079:1;22072:15;21965:132;-1:-1:-1;22111:9:186;;21917:209::o;22481:125::-;22521:4;22549:1;22546;22543:8;22540:34;;;22554:18;;:::i;:::-;-1:-1:-1;22591:9:186;;22481:125::o;22611:184::-;22681:6;22734:2;22722:9;22713:7;22709:23;22705:32;22702:52;;;22750:1;22747;22740:12;22702:52;-1:-1:-1;22773:16:186;;22611:184;-1:-1:-1;22611:184:186:o;22982:290::-;23052:6;23105:2;23093:9;23084:7;23080:23;23076:32;23073:52;;;23121:1;23118;23111:12;23073:52;23147:16;;-1:-1:-1;;;;;23192:31:186;;23182:42;;23172:70;;23238:1;23235;23228:12;23277:273;23345:6;23398:2;23386:9;23377:7;23373:23;23369:32;23366:52;;;23414:1;23411;23404:12;23366:52;23446:9;23440:16;23496:4;23489:5;23485:16;23478:5;23475:27;23465:55;;23516:1;23513;23506:12;23933:135;23972:3;-1:-1:-1;;23993:17:186;;23990:43;;;24013:18;;:::i;:::-;-1:-1:-1;24060:1:186;24049:13;;23933:135::o;24333:137::-;-1:-1:-1;;;;;24411:5:186;24407:38;24400:5;24397:49;24387:77;;24460:1;24457;24450:12;24475:493;24578:6;24631:2;24619:9;24610:7;24606:23;24602:32;24599:52;;;24647:1;24644;24637:12;24599:52;24673:22;;:::i;:::-;24725:9;24719:16;24744:33;24769:7;24744:33;:::i;:::-;24786:22;;24853:2;24838:18;;24832:25;24866:32;24832:25;24866:32;:::i;:::-;24925:2;24914:14;;24907:31;24918:5;24475:493;-1:-1:-1;;;24475:493:186:o;24973:251::-;25043:6;25096:2;25084:9;25075:7;25071:23;25067:32;25064:52;;;25112:1;25109;25102:12;25064:52;25144:9;25138:16;25163:31;25188:5;25163:31;:::i;28838:294::-;28908:6;28961:2;28949:9;28940:7;28936:23;28932:32;28929:52;;;28977:1;28974;28967:12;28929:52;29003:16;;-1:-1:-1;;29048:35:186;;29038:46;;29028:74;;29098:1;29095;29088:12;29683:249;29752:6;29805:2;29793:9;29784:7;29780:23;29776:32;29773:52;;;29821:1;29818;29811:12;29773:52;29853:9;29847:16;29872:30;29896:5;29872:30;:::i;30384:237::-;30423:4;-1:-1:-1;;;;;30528:10:186;;;;30498;;30550:12;;;30547:38;;;30565:18;;:::i;:::-;30602:13;;30384:237;-1:-1:-1;;;30384:237:186:o;31528:644::-;31776:10;31771:3;31767:20;31758:6;31753:3;31749:16;31745:43;31740:3;31733:56;31715:3;31820:1;31815:3;31811:11;31851:6;31845:13;31900:4;31939:2;31931:6;31927:15;31960:1;31970:175;31984:6;31981:1;31978:13;31970:175;;;32047:13;;32033:28;;32083:14;;;;32120:15;;;;32006:1;31999:9;31970:175;;;-1:-1:-1;32161:5:186;;31528:644;-1:-1:-1;;;;;;;31528:644:186:o;32177:410::-;32379:2;32361:21;;;32418:2;32398:18;;;32391:30;32457:34;32452:2;32437:18;;32430:62;-1:-1:-1;;;32523:2:186;32508:18;;32501:44;32577:3;32562:19;;32177:410::o;32592:271::-;32775:6;32767;32762:3;32749:33;32731:3;32801:16;;32826:13;;;32801:16;32592:271;-1:-1:-1;32592:271:186:o;32868:486::-;33070:2;33052:21;;;33109:2;33089:18;;;33082:30;33148:34;33143:2;33128:18;;33121:62;33219:34;33214:2;33199:18;;33192:62;-1:-1:-1;;;33285:3:186;33270:19;;33263:49;33344:3;33329:19;;32868:486::o;33359:471::-;33400:3;33438:5;33432:12;33465:6;33460:3;33453:19;33490:1;33500:162;33514:6;33511:1;33508:13;33500:162;;;33576:4;33632:13;;;33628:22;;33622:29;33604:11;;;33600:20;;33593:59;33529:12;33500:162;;;33680:6;33677:1;33674:13;33671:87;;;33746:1;33739:4;33730:6;33725:3;33721:16;33717:27;33710:38;33671:87;-1:-1:-1;33812:2:186;33791:15;-1:-1:-1;;33787:29:186;33778:39;;;;33819:4;33774:50;;33359:471;-1:-1:-1;;33359:471:186:o;33835:624::-;34109:1;34105;34100:3;34096:11;34092:19;34084:6;34080:32;34069:9;34062:51;34149:2;34144;34133:9;34129:18;34122:30;34043:4;34187:6;34181:13;34230:4;34225:2;34214:9;34210:18;34203:32;34258:51;34304:3;34293:9;34289:19;34275:12;34258:51;:::i;:::-;34244:65;;34365:2;34357:6;34353:15;34347:22;34340:4;34329:9;34325:20;34318:52;34425:2;34417:6;34413:15;34407:22;34401:3;34390:9;34386:19;34379:51;34447:6;34439:14;;;33835:624;;;;;:::o;34464:219::-;34613:2;34602:9;34595:21;34576:4;34633:44;34673:2;34662:9;34658:18;34650:6;34633:44;:::i;34997:278::-;35036:7;-1:-1:-1;;;;;35121:2:186;35118:1;35114:10;35151:2;35148:1;35144:10;35207:3;35203:2;35199:12;35194:3;35191:21;35184:3;35177:11;35170:19;35166:47;35163:73;;;35216:18;;:::i;:::-;35256:13;;34997:278;-1:-1:-1;;;;34997:278:186:o;35280:168::-;35320:7;35386:1;35382;35378:6;35374:14;35371:1;35368:21;35363:1;35356:9;35349:17;35345:45;35342:71;;;35393:18;;:::i;:::-;-1:-1:-1;35433:9:186;;35280:168::o;36190:267::-;36279:6;36274:3;36267:19;36331:6;36324:5;36317:4;36312:3;36308:14;36295:43;-1:-1:-1;36383:1:186;36358:16;;;36376:4;36354:27;;;36347:38;;;;36439:2;36418:15;;;-1:-1:-1;;36414:29:186;36405:39;;;36401:50;;36190:267::o;36462:430::-;-1:-1:-1;;;;;36675:32:186;;36657:51;;36756:10;36744:23;;36739:2;36724:18;;36717:51;36804:2;36799;36784:18;;36777:30;;;-1:-1:-1;;36824:62:186;;36867:18;;36859:6;36851;36824:62;:::i;:::-;36816:70;36462:430;-1:-1:-1;;;;;;36462:430:186:o;36897:503::-;-1:-1:-1;;;;;37138:32:186;;37120:51;;37219:10;37207:23;;37202:2;37187:18;;37180:51;37267:3;37262:2;37247:18;;37240:31;;;-1:-1:-1;;37288:63:186;;37331:19;;37323:6;37315;37288:63;:::i;:::-;37280:71;;37387:6;37382:2;37371:9;37367:18;37360:34;36897:503;;;;;;;;:::o;37812:804::-;38118:4;38147:3;38177:6;38166:9;38159:25;38220:6;38215:2;38204:9;38200:18;38193:34;38263:6;38258:2;38247:9;38243:18;38236:34;-1:-1:-1;;;;;38318:31:186;38310:6;38306:44;38301:2;38290:9;38286:18;38279:72;38388:6;38382:3;38371:9;38367:19;38360:35;38432:2;38426:3;38415:9;38411:19;38404:31;38452:44;38492:2;38481:9;38477:18;38469:6;38452:44;:::i;:::-;38527:3;38512:19;;38505:35;;;;-1:-1:-1;;;;;;;38577:32:186;;;;38571:3;38556:19;;;38549:61;38444:52;37812:804;-1:-1:-1;;;;;;37812:804:186:o;38621:245::-;38688:6;38741:2;38729:9;38720:7;38716:23;38712:32;38709:52;;;38757:1;38754;38747:12;38709:52;38789:9;38783:16;38808:28;38830:5;38808:28;:::i;39356:335::-;39459:4;39517:11;39504:25;39611:3;39607:8;39596;39580:14;39576:29;39572:44;39552:18;39548:69;39538:97;;39631:1;39628;39621:12;39538:97;39652:33;;;;;39356:335;-1:-1:-1;;39356:335:186:o;39696:142::-;39772:20;;39801:31;39772:20;39801:31;:::i;40770:756::-;40900:6;40895:3;40888:19;40870:3;40926:4;40955:2;40950:3;40946:12;40939:19;;40981:5;41004:1;41014:487;41028:6;41025:1;41022:13;41014:487;;;41105:6;41092:20;41125:33;41150:7;41125:33;:::i;:::-;-1:-1:-1;;;;;41183:33:186;41171:46;;41258:15;;;41245:29;41287:32;41245:29;41287:32;:::i;:::-;-1:-1:-1;;;;;41353:40:186;41339:12;;;41332:62;41417:4;41441:12;;;;41476:15;;;;;41050:1;41043:9;41014:487;;41531:2181;41784:2;41836:21;;;41809:18;;;41892:22;;;41755:4;;41933:2;41951:18;;;42015:1;42011:14;;;41996:30;;41992:39;;42054:6;41755:4;42088:1595;42102:6;42099:1;42096:13;42088:1595;;;42167:22;;;-1:-1:-1;;42163:36:186;42151:49;;42239:20;;42314:14;42310:27;;;-1:-1:-1;;42306:42:186;42282:67;;42272:95;;42363:1;42360;42353:12;42272:95;42393:31;;42447:4;42492:19;;42568:14;42564:26;;;-1:-1:-1;;42560:40:186;42534:67;;42524:95;;42615:1;42612;42605:12;42524:95;42647:32;;42706:21;;-1:-1:-1;;;;;42743:30:186;;42740:50;;;42786:1;42783;42776:12;42740:50;42844:6;42841:1;42837:14;42821;42817:35;42810:5;42806:47;42803:67;;;42866:1;42863;42856:12;42803:67;42898:2;42890:6;42883:18;42928:110;43034:2;43026:6;43022:15;43014:6;43009:2;43000:7;42996:16;42928:110;:::i;:::-;42914:124;;;;43071:42;43109:2;43102:5;43098:14;43071:42;:::i;:::-;-1:-1:-1;;;;;12760:31:186;43176:15;;;12748:44;43242:14;;;43229:28;43212:15;;;43205:53;43281:4;43320:33;43338:14;;;43320:33;:::i;:::-;16863:10;16852:22;43400:15;;;16840:35;43439:4;43478:33;43496:14;;;43478:33;:::i;:::-;16863:10;16852:22;43558:15;;16840:35;;;;-1:-1:-1;43661:12:186;;;;43626:15;;;;42124:1;42117:9;42088:1595;;;-1:-1:-1;43700:6:186;;41531:2181;-1:-1:-1;;;;;;;;41531:2181:186:o;45194:197::-;45232:3;45260:6;45301:2;45294:5;45290:14;45328:2;45319:7;45316:15;45313:41;;;45334:18;;:::i;:::-;45383:1;45370:15;;45194:197;-1:-1:-1;;;45194:197:186:o","linkReferences":{},"immutableReferences":{"21316":[{"start":1063,"length":32},{"start":4082,"length":32},{"start":5254,"length":32},{"start":5677,"length":32},{"start":6270,"length":32}],"21319":[{"start":960,"length":32},{"start":7114,"length":32},{"start":7610,"length":32}],"21322":[{"start":908,"length":32},{"start":6621,"length":32}],"21325":[{"start":1609,"length":32},{"start":6090,"length":32}],"26155":[{"start":1009,"length":32},{"start":8636,"length":32},{"start":8848,"length":32},{"start":8975,"length":32}],"26158":[{"start":12439,"length":32},{"start":12627,"length":32},{"start":12863,"length":32}],"26161":[{"start":2862,"length":32},{"start":3005,"length":32},{"start":3133,"length":32},{"start":8552,"length":32},{"start":8756,"length":32},{"start":10726,"length":32},{"start":11142,"length":32}],"26164":[{"start":3335,"length":32},{"start":3682,"length":32},{"start":3833,"length":32},{"start":10920,"length":32},{"start":11307,"length":32},{"start":11466,"length":32}]}},"methodIdentifiers":{"alignedAggregator()":"4a5bf632","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,uint256)":"d66eaabd","delegation()":"df5cf723","depositToBatcher(address)":"4223d551","deregisterOperatorFromAVS(address)":"a364f4da","getOperatorRestakedStrategies(address)":"33cfb7b7","getRestakeableStrategies()":"e481af9d","initialize(address,address,address)":"c0c53b8b","initializeAggregator(address)":"800fb61f","owner()":"8da5cb5b","registerOperatorToAVS(address,(bytes,bytes32,uint256))":"9926ee7d","registryCoordinator()":"6d14a987","renounceOwnership()":"715018a6","respondToTaskV2(bytes32,address,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"ab21739a","rewardsInitiator()":"fc299dee","setAggregator(address)":"f9120af6","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","verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)":"06045a91","withdraw(uint256)":"2e1a7d4d"},"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\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchAlreadyResponded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchAlreadySubmitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"txCost\",\"type\":\"uint256\"}],\"name\":\"ExceededMaxRespondFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"batcher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidDepositAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"signedStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"}],\"name\":\"InvalidQuorumThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"alignedAggregator\",\"type\":\"address\"}],\"name\":\"SenderIsNotAggregator\",\"type\":\"error\"},{\"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\":\"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\":\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"name\":\"NewBatchV3\",\"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\":\"alignedAggregator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\"},{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"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\"},{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"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\":\"account\",\"type\":\"address\"}],\"name\":\"depositToBatcher\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\"},{\"internalType\":\"address\",\"name\":\"_alignedAggregator\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedAggregator\",\"type\":\"address\"}],\"name\":\"initializeAggregator\",\"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\"},{\"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\":\"_alignedAggregator\",\"type\":\"address\"}],\"name\":\"setAggregator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"},{\"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\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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/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\":\"0xdbdcd86907893d219bfa4b896607708e794873d51386932f174244379c112b1f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://01a5b146fd03e45c41cbf4dcea9241089fa3c30480d20572e5dbe9614a7b28c1\",\"dweb:/ipfs/QmR3dwvzi4B9RNBMdiGm6NoDYk13Jp7Z9jnFw9vFCWi5nj\"]},\"src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0x75a172a7fe27faa5aa0ee9b8299d825f2bc2065cdd683aec03cc68185a770b5e\",\"urls\":[\"bzz-raw://142ed88838bc15b02efa259e0514f56c280302107bc05e740257812b6668f78c\",\"dweb:/ipfs/QmU2Ec5iJEY5YRvRX3itor4JtTsghC2uxSrw7CuriSe3hG\"]},\"src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x3078c57c2b5ee2ecc402b324d3809a5aee17a0c25243f76a9e563fd184084164\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2e5b25a944279860537cb3132a44f54798045fb5834128145414967a04a37526\",\"dweb:/ipfs/QmUTRGwoVXYptZbdmFUnJ6NYBS4pJTvm4XKBwzZXHycJcx\"]}},\"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":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchAlreadyResponded"},{"inputs":[{"internalType":"bytes32","name":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchAlreadySubmitted"},{"inputs":[{"internalType":"bytes32","name":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchDoesNotExist"},{"inputs":[{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"},{"internalType":"uint256","name":"txCost","type":"uint256"}],"type":"error","name":"ExceededMaxRespondFee"},{"inputs":[{"internalType":"address","name":"batcher","type":"address"},{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"InsufficientFunds"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"InvalidDepositAmount"},{"inputs":[{"internalType":"uint256","name":"signedStake","type":"uint256"},{"internalType":"uint256","name":"requiredStake","type":"uint256"}],"type":"error","name":"InvalidQuorumThreshold"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"alignedAggregator","type":"address"}],"type":"error","name":"SenderIsNotAggregator"},{"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":"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":"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},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256","indexed":false}],"type":"event","name":"NewBatchV3","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":"alignedAggregator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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"},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"}]},{"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"},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createNewTask"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegation","outputs":[{"internalType":"contract IDelegationManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositToBatcher"},{"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"},{"internalType":"address","name":"_alignedAggregator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_alignedAggregator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initializeAggregator"},{"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":"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":"_alignedAggregator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAggregator"},{"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":[{"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"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"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/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":"0xdbdcd86907893d219bfa4b896607708e794873d51386932f174244379c112b1f","urls":["bzz-raw://01a5b146fd03e45c41cbf4dcea9241089fa3c30480d20572e5dbe9614a7b28c1","dweb:/ipfs/QmR3dwvzi4B9RNBMdiGm6NoDYk13Jp7Z9jnFw9vFCWi5nj"],"license":"UNLICENSED"},"src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0x75a172a7fe27faa5aa0ee9b8299d825f2bc2065cdd683aec03cc68185a770b5e","urls":["bzz-raw://142ed88838bc15b02efa259e0514f56c280302107bc05e740257812b6668f78c","dweb:/ipfs/QmU2Ec5iJEY5YRvRX3itor4JtTsghC2uxSrw7CuriSe3hG"],"license":null},"src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x3078c57c2b5ee2ecc402b324d3809a5aee17a0c25243f76a9e563fd184084164","urls":["bzz-raw://2e5b25a944279860537cb3132a44f54798045fb5834128145414967a04a37526","dweb:/ipfs/QmUTRGwoVXYptZbdmFUnJ6NYBS4pJTvm4XKBwzZXHycJcx"],"license":"UNLICENSED"}},"version":1},"id":180} \ No newline at end of file +{"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":"alignedAggregator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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"},{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"}],"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"},{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"view"},{"type":"function","name":"depositToBatcher","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"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"},{"name":"_alignedAggregator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeAggregator","inputs":[{"name":"_alignedAggregator","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":"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":"setAggregator","inputs":[{"name":"_alignedAggregator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"NewBatchV3","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"},{"name":"respondToTaskFeeLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"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},{"type":"error","name":"BatchAlreadyResponded","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"BatchAlreadySubmitted","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"BatchDoesNotExist","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ExceededMaxRespondFee","inputs":[{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"},{"name":"txCost","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientFunds","inputs":[{"name":"batcher","type":"address","internalType":"address"},{"name":"required","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidDepositAmount","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidQuorumThreshold","inputs":[{"name":"signedStake","type":"uint256","internalType":"uint256"},{"name":"requiredStake","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SenderIsNotAggregator","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"alignedAggregator","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6101806040523480156200001257600080fd5b50604051620056fe380380620056fe8339810160408190526200003591620002e5565b6001600160a01b0380851660805280841660a05280831660c052811660e0528184848284620000636200020a565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e791906200034d565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016691906200034d565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e891906200034d565b6001600160a01b03166101605250620002006200020a565b5050505062000374565b600054610100900460ff1615620002775760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620002ca576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002e257600080fd5b50565b60008060008060808587031215620002fc57600080fd5b84516200030981620002cc565b60208601519094506200031c81620002cc565b60408601519093506200032f81620002cc565b60608601519092506200034281620002cc565b939692955090935050565b6000602082840312156200036057600080fd5b81516200036d81620002cc565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161527c620004826000396000818161064901526117ca01526000818161038c01526119dd0152600081816103c001528181611bca0152611dba01526000818161042701528181610ff2015281816114860152818161162d015261187e015260008181610d0701528181610e6201528181610ef901528181612aa801528181612c2b0152612cca015260008181610b2e01528181610bbd01528181610c3d0152818161216801528181612234015281816129e60152612b8601526000818161309701528181613153015261323f0152600081816103f1015281816121bc01528181612290015261230f015261527c6000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063c0c53b8b116100a0578063f2fde38b1161006f578063f2fde38b14610680578063f9120af6146106a0578063fa534dc0146106c0578063fc299dee146106e0578063fce36c7d1461070057600080fd5b8063c0c53b8b14610604578063d66eaabd14610624578063df5cf72314610637578063e481af9d1461066b57600080fd5b8063a98fb355116100dc578063a98fb35514610540578063ab21739a14610560578063b099627e14610580578063b98d0908146105ea57600080fd5b80638da5cb5b146104c257806395c6d604146104e05780639926ee7d14610500578063a364f4da1461052057600080fd5b80634ae07c37116101855780636d14a987116101545780636d14a9871461041557806370a0823114610449578063715018a61461048d578063800fb61f146104a257600080fd5b80634ae07c371461034c5780635df459461461037a57806368304835146103ae5780636b3aa72e146103e257600080fd5b80633bc28c8c116101c15780633bc28c8c146102c1578063416c7e5e146102e15780634223d551146103015780634a5bf6321461031457600080fd5b806306045a9114610208578063171f1d5b1461023d5780632e1a7d4d1461027457806333cfb7b71461029457600080fd5b36610203576102013334610720565b005b600080fd5b34801561021457600080fd5b506102286102233660046141cc565b6107b2565b60405190151581526020015b60405180910390f35b34801561024957600080fd5b5061025d61025836600461431e565b6108a7565b604080519215158352901515602083015201610234565b34801561028057600080fd5b5061020161028f36600461436f565b610a31565b3480156102a057600080fd5b506102b46102af366004614388565b610b09565b60405161023491906143a5565b3480156102cd57600080fd5b506102016102dc366004614388565b610fdc565b3480156102ed57600080fd5b506102016102fc366004614400565b610ff0565b61020161030f366004614388565b611127565b34801561032057600080fd5b5060cb54610334906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561035857600080fd5b5061036c6103673660046146d3565b611131565b60405161023492919061476d565b34801561038657600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ba57600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ee57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610334565b34801561042157600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561045557600080fd5b5061047f610464366004614388565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610234565b34801561049957600080fd5b50610201612084565b3480156104ae57600080fd5b506102016104bd366004614388565b612098565b3480156104ce57600080fd5b506033546001600160a01b0316610334565b3480156104ec57600080fd5b506102286104fb3660046147fe565b612138565b34801561050c57600080fd5b5061020161051b366004614849565b61215d565b34801561052c57600080fd5b5061020161053b366004614388565b612229565b34801561054c57600080fd5b5061020161055b3660046148f4565b6122f0565b34801561056c57600080fd5b5061020161057b366004614944565b612344565b34801561058c57600080fd5b506105c861059b36600461436f565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610234565b3480156105f657600080fd5b506097546102289060ff1681565b34801561061057600080fd5b5061020161061f36600461496b565b6126fe565b6102016106323660046149b6565b6127e8565b34801561064357600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561067757600080fd5b506102b46129e0565b34801561068c57600080fd5b5061020161069b366004614388565b612da9565b3480156106ac57600080fd5b506102016106bb366004614388565b612e1f565b3480156106cc57600080fd5b506102286106db366004614a08565b612e49565b3480156106ec57600080fd5b50606554610334906001600160a01b031681565b34801561070c57600080fd5b5061020161071b366004614a85565b612ebe565b8061074657604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca60205260408120805483929061076e908490614b0f565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25050565b6000806001600160a01b0383166107ca5750846107f6565b85836040516020016107dd929190614b27565b6040516020818303038152906040528051906020012090505b600081815260c9602052604090205463ffffffff1661081957600091505061089b565b600081815260c96020526040902054640100000000900460ff1661084157600091505061089b565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f198184030181529190528051602082012090915061089587898389613276565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106108ef576108ef614b42565b60200201518951600160200201518a6020015160006002811061091457610914614b42565b60200201518b6020015160016002811061093057610930614b42565b602090810291909101518c518d83015160405161098d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109b09190614b58565b9050610a236109c96109c2888461328e565b8690613325565b6109d16133b9565b610a19610a0a85610a04604080518082018252600080825260209182015281518083019092526001825260029082015290565b9061328e565b610a138c613479565b90613325565b886201d4c0613509565b909890975095505050505050565b33600090815260ca6020526040902054811115610a825733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201839052604482015260640161073d565b33600090815260ca602052604081208054839290610aa1908490614b7a565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b05573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190614b91565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c289190614baa565b90506001600160c01b0381161580610cc257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd9190614bd3565b60ff16155b15610ce25760408051600080825260208201909252905b50949350505050565b6000610cf6826001600160c01b031661372d565b90506000805b8251811015610dcc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d4657610d46614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae9190614b91565b610db89083614b0f565b915080610dc481614bf6565b915050610cfc565b506000816001600160401b03811115610de757610de76140a8565b604051908082528060200260200182016040528015610e10578160200160208202803683370190505b5090506000805b8451811015610fcf576000858281518110610e3457610e34614b42565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190614b91565b905060005b81811015610fb9576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190614c26565b60000151868681518110610f8157610f81614b42565b6001600160a01b039092166020928302919091019091015284610fa381614bf6565b9550508080610fb190614bf6565b915050610ed2565b5050508080610fc790614bf6565b915050610e17565b5090979650505050505050565b610fe46137ef565b610fed81613849565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190614c67565b6001600160a01b0316336001600160a01b03161461111e5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161073d565b610fed816138b2565b610fed8134610720565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561118d57508260a0015151604051806040016040528060018152602001600081525051145b80156111b457508260c0015151604051806040016040528060018152602001600081525051145b80156111db57508260e0015151604051806040016040528060018152602001600081525051145b6112455760405162461bcd60e51b8152602060048201526041602482015260008051602061522783398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161073d565b825151602084015151146112bd5760405162461bcd60e51b815260206004820152604460248201819052600080516020615227833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161073d565b4363ffffffff168463ffffffff161061132c5760405162461bcd60e51b815260206004820152603c602482015260008051602061522783398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161073d565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156113ed576113ed6140a8565b604051908082528060200260200182016040528015611416578160200160208202803683370190505b5081526020860151516001600160401b03811115611436576114366140a8565b60405190808252806020026020018201604052801561145f578160200160208202803683370190505b508160200181905250600061150b60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190614bd3565b6138f9565b905060005b8760200151518110156117a6576115558860200151828151811061153657611536614b42565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061156b5761156b614b42565b6020908102919091010152801561162b57602083015161158c600183614b7a565b8151811061159c5761159c614b42565b602002602001015160001c836020015182815181106115bd576115bd614b42565b602002602001015160001c1161162b576040805162461bcd60e51b815260206004820152602481019190915260008051602061522783398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061167057611670614b42565b60200260200101518b8b60000151858151811061168f5761168f614b42565b60200260200101516040518463ffffffff1660e01b81526004016116cc9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190614baa565b6001600160c01b03168360000151828151811061172c5761172c614b42565b6020026020010181815250506117926109c2611766848660000151858151811061175857611758614b42565b60200260200101511661398c565b8a60200151848151811061177c5761177c614b42565b60200260200101516139b790919063ffffffff16565b94508061179e81614bf6565b915050611510565b50506117b183613a9b565b60975490935060ff166000816117c857600061184a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184a9190614b91565b905060005b604051806040016040528060018152602001600081525051811015611f555782156119db578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118d3576118d3614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b9190614b91565b6119459190614b0f565b116119db5760405162461bcd60e51b8152602060048201526066602482015260008051602061522783398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a3257611a32614b42565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a5757611a57614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad79190614c84565b6001600160401b031916611afa8a60400151838151811061153657611536614b42565b67ffffffffffffffff191614611b965760405162461bcd60e51b8152602060048201526061602482015260008051602061522783398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161073d565b611bc689604001518281518110611baf57611baf614b42565b60200260200101518761332590919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c1f57611c1f614b42565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c4457611c44614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc49190614caf565b85602001518281518110611cda57611cda614b42565b6001600160601b03909216602092830291909101820152850151805182908110611d0657611d06614b42565b602002602001015185600001518281518110611d2457611d24614b42565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4057611db386600001518281518110611d6e57611d6e614b42565b602002602001015160405180604001604052806001815260200160008152508581518110611d9e57611d9e614b42565b016020015160f81c60ff161c60019081161490565b15611f2e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e0f57611e0f614b42565b602001015160f81c60f81b60f81c8e89602001518581518110611e3457611e34614b42565b60200260200101518f60e001518881518110611e5257611e52614b42565b60200260200101518781518110611e6b57611e6b614b42565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef39190614caf565b8751805185908110611f0757611f07614b42565b60200260200101818151611f1b9190614ccc565b6001600160601b03169052506001909101905b80611f3881614bf6565b915050611d48565b50508080611f4d90614bf6565b91505061184f565b505050600080611f6f8a868a606001518b608001516108a7565b9150915081611fe05760405162461bcd60e51b8152602060048201526043602482015260008051602061522783398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161073d565b806120415760405162461bcd60e51b8152602060048201526039602482015260008051602061522783398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161073d565b5050600087826020015160405160200161205c929190614cf4565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208c6137ef565b6120966000613b36565b565b600054600290610100900460ff161580156120ba575060005460ff8083169116105b6120d65760405162461bcd60e51b815260040161073d90614d3c565b6000805461ffff191660ff8316176101001790556120f382612e1f565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161214b929190614d8a565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a55760405162461bcd60e51b815260040161073d90614d9a565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f39085908590600401614e5f565b600060405180830381600087803b15801561220d57600080fd5b505af1158015612221573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122715760405162461bcd60e51b815260040161073d90614d9a565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d557600080fd5b505af11580156122e9573d6000803e3d6000fd5b5050505050565b6122f86137ef565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122bb908490600401614eaa565b60cb546001600160a01b031633146123845760cb54604051632cbe419560e01b81523360048201526001600160a01b03909116602482015260440161073d565b60005a90506000848460405160200161239e929190614b27565b60408051601f198184030181529181528151602092830120600081815260c9909352912080549192509063ffffffff166123ee576040516311cb69a760e11b81526004810183905260240161073d565b8054640100000000900460ff161561241c57604051634e78d7f960e11b81526004810183905260240161073d565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca6020526040902054101561249f5760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820192909252604481019190915260640161073d565b80546000906124b690849063ffffffff1687611131565b509050604360ff1681602001516000815181106124d5576124d5614b42565b60200260200101516124e79190614ebd565b6001600160601b03166064826000015160008151811061250957612509614b42565b60200260200101516001600160601b03166125249190614eec565b10156125b7576064816000015160008151811061254357612543614b42565b60200260200101516001600160601b031661255e9190614eec565b604360ff16826020015160008151811061257a5761257a614b42565b602002602001015161258c9190614ebd565b60405163530f5c4560e11b815260048101929092526001600160601b0316602482015260440161073d565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126039087614b7a565b6126109062011170614b0f565b61261a9190614eec565b9050826001015481111561265157600183015460405163437e283f60e11b815260048101919091526024810182905260440161073d565b6001600160a01b038716600090815260ca602052604081208054839290612679908490614b7a565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f3573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161073d90614d3c565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b6127818484613b88565b60cb80546001600160a01b0319166001600160a01b03841617905580156127e2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016127fd929190614b27565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561284c57604051630c40bc4360e21b81526004810182905260240161073d565b34156128a95733600090815260ca602052604081208054349290612871908490614b0f565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25b33600090815260ca60205260409020548211156128fa5733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201849052604482015260640161073d565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f130d3e81af62e03ed6fff5e3bb343695ec513892cfad24d286486745dcc6143791612990913391908a908a90614f34565b60405180910390a2857f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5533438888886040516129d0959493929190614f6f565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a669190614bd3565b60ff16905080612a8457505060408051600081526020810190915290565b6000805b82811015612b3957604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b9190614b91565b612b259083614b0f565b915080612b3181614bf6565b915050612a88565b506000816001600160401b03811115612b5457612b546140a8565b604051908082528060200260200182016040528015612b7d578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c069190614bd3565b60ff16811015612d9f57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9e9190614b91565b905060005b81811015612d8a576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3c9190614c26565b60000151858581518110612d5257612d52614b42565b6001600160a01b039092166020928302919091019091015283612d7481614bf6565b9450508080612d8290614bf6565b915050612ca3565b50508080612d9790614bf6565b915050612b84565b5090949350505050565b612db16137ef565b6001600160a01b038116612e165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073d565b610fed81613b36565b612e276137ef565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612e7d908b908b908b908b908b908b908b908b90600401614fb2565b602060405180830381865afa158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190615014565b6065546001600160a01b03163314612f535760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161073d565b60005b8181101561322757828282818110612f7057612f70614b42565b9050602002810190612f829190615031565b612f93906040810190602001614388565b6001600160a01b03166323b872dd3330868686818110612fb557612fb5614b42565b9050602002810190612fc79190615031565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af115801561301e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130429190615014565b50600083838381811061305757613057614b42565b90506020028101906130699190615031565b61307a906040810190602001614388565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c9190614b91565b905083838381811061312057613120614b42565b90506020028101906131329190615031565b613143906040810190602001614388565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061318557613185614b42565b90506020028101906131979190615031565b604001356131a59190614b0f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156131f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132149190615014565b50508061322090614bf6565b9050612f56565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f390859085906004016150b7565b600083613284868585613c05565b1495945050505050565b60408051808201909152600080825260208201526132aa613fb6565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156132dd576132df565bfe5b508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161073d565b505092915050565b6040805180820190915260008082526020820152613341613fd4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156132dd57508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161073d565b6133c1613ff2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806134a96000805160206151e783398151915286614b58565b90505b6134b581613cff565b90935091506000805160206151e78339815191528283098314156134ef576040805180820190915290815260208101919091529392505050565b6000805160206151e78339815191526001820890506134ac565b60408051808201825286815260208082018690528251808401909352868352820184905260009182919061353b614017565b60005b6002811015613700576000613554826006614eec565b905084826002811061356857613568614b42565b6020020151518361357a836000614b0f565b600c811061358a5761358a614b42565b60200201528482600281106135a1576135a1614b42565b602002015160200151838260016135b89190614b0f565b600c81106135c8576135c8614b42565b60200201528382600281106135df576135df614b42565b60200201515151836135f2836002614b0f565b600c811061360257613602614b42565b602002015283826002811061361957613619614b42565b6020020151516001602002015183613632836003614b0f565b600c811061364257613642614b42565b602002015283826002811061365957613659614b42565b60200201516020015160006002811061367457613674614b42565b602002015183613685836004614b0f565b600c811061369557613695614b42565b60200201528382600281106136ac576136ac614b42565b6020020151602001516001600281106136c7576136c7614b42565b6020020151836136d8836005614b0f565b600c81106136e8576136e8614b42565b602002015250806136f881614bf6565b91505061353e565b50613709614036565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b606060008061373b8461398c565b61ffff166001600160401b03811115613756576137566140a8565b6040519080825280601f01601f191660200182016040528015613780576020820181803683370190505b5090506000805b825182108015613798575061010081105b15612d9f576001811b9350858416156137df578060f81b8383815181106137c1576137c1614b42565b60200101906001600160f81b031916908160001a9053508160010191505b6137e881614bf6565b9050613787565b6033546001600160a01b031633146120965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073d565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061390584613d81565b9050808360ff166001901b116139835760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161073d565b90505b92915050565b6000805b8215613986576139a1600184614b7a565b90921691806139af816151c4565b915050613990565b60408051808201909152600080825260208201526102008261ffff1610613a135760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161073d565b8161ffff1660011415613a27575081613986565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613a9057600161ffff871660ff83161c81161415613a7357613a708484613325565b93505b613a7d8384613325565b92506201fffe600192831b169101613a43565b509195945050505050565b60408051808201909152600080825260208201528151158015613ac057506020820151155b15613ade575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e78339815191528460200151613b119190614b58565b613b29906000805160206151e7833981519152614b7a565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613bf35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161073d565b613bfc82613b36565b610b0581613849565b600060208451613c159190614b58565b15613c9c5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161073d565b8260205b85518111610cd957613cb3600285614b58565b613cd457816000528086015160205260406000209150600284049350613ced565b8086015160005281602052604060002091506002840493505b613cf8602082614b0f565b9050613ca0565b600080806000805160206151e783398151915260036000805160206151e7833981519152866000805160206151e7833981519152888909090890506000613d75827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e7833981519152613f0e565b91959194509092505050565b600061010082511115613e0a5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161073d565b8151613e1857506000919050565b60008083600081518110613e2e57613e2e614b42565b0160200151600160f89190911c81901b92505b8451811015613f0557848181518110613e5c57613e5c614b42565b0160200151600160f89190911c1b9150828211613ef15760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161073d565b91811791613efe81614bf6565b9050613e41565b50909392505050565b600080613f19614036565b613f21614054565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156132dd575082613fab5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161073d565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614005614072565b8152602001614012614072565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b3157600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156140e0576140e06140a8565b60405290565b60405161010081016001600160401b03811182821017156140e0576140e06140a8565b604051601f8201601f191681016001600160401b0381118282101715614131576141316140a8565b604052919050565b60006001600160401b03831115614152576141526140a8565b614165601f8401601f1916602001614109565b905082815283838301111561417957600080fd5b828260208301376000602084830101529392505050565b600082601f8301126141a157600080fd5b6141b083833560208501614139565b9392505050565b6001600160a01b0381168114610fed57600080fd5b600080600080600080600080610100898b0312156141e957600080fd5b88359750602089013596506040890135955061420760608a01614090565b94506080890135935060a08901356001600160401b0381111561422957600080fd5b6142358b828c01614190565b93505060c0890135915060e089013561424d816141b7565b809150509295985092959890939650565b60006040828403121561427057600080fd5b6142786140be565b9050813581526020820135602082015292915050565b600082601f83011261429f57600080fd5b6142a76140be565b8060408401858111156142b957600080fd5b845b818110156142d35780358452602093840193016142bb565b509095945050505050565b6000608082840312156142f057600080fd5b6142f86140be565b9050614304838361428e565b8152614313836040840161428e565b602082015292915050565b600080600080610120858703121561433557600080fd5b84359350614346866020870161425e565b925061435586606087016142de565b91506143648660e0870161425e565b905092959194509250565b60006020828403121561438157600080fd5b5035919050565b60006020828403121561439a57600080fd5b8135613983816141b7565b6020808252825182820181905260009190848201906040850190845b818110156143e65783516001600160a01b0316835292840192918401916001016143c1565b50909695505050505050565b8015158114610fed57600080fd5b60006020828403121561441257600080fd5b8135613983816143f2565b803563ffffffff81168114613b3157600080fd5b60006001600160401b0382111561444a5761444a6140a8565b5060051b60200190565b600082601f83011261446557600080fd5b8135602061447a61447583614431565b614109565b82815260059290921b8401810191818101908684111561449957600080fd5b8286015b848110156144bb576144ae8161441d565b835291830191830161449d565b509695505050505050565b600082601f8301126144d757600080fd5b813560206144e761447583614431565b82815260069290921b8401810191818101908684111561450657600080fd5b8286015b848110156144bb5761451c888261425e565b83529183019160400161450a565b600082601f83011261453b57600080fd5b8135602061454b61447583614431565b82815260059290921b8401810191818101908684111561456a57600080fd5b8286015b848110156144bb5780356001600160401b0381111561458d5760008081fd5b61459b8986838b0101614454565b84525091830191830161456e565b600061018082840312156145bc57600080fd5b6145c46140e6565b905081356001600160401b03808211156145dd57600080fd5b6145e985838601614454565b835260208401359150808211156145ff57600080fd5b61460b858386016144c6565b6020840152604084013591508082111561462457600080fd5b614630858386016144c6565b604084015261464285606086016142de565b60608401526146548560e0860161425e565b608084015261012084013591508082111561466e57600080fd5b61467a85838601614454565b60a084015261014084013591508082111561469457600080fd5b6146a085838601614454565b60c08401526101608401359150808211156146ba57600080fd5b506146c78482850161452a565b60e08301525092915050565b6000806000606084860312156146e857600080fd5b833592506146f86020850161441d565b915060408401356001600160401b0381111561471357600080fd5b61471f868287016145a9565b9150509250925092565b600081518084526020808501945080840160005b838110156147625781516001600160601b03168752958201959082019060010161473d565b509495945050505050565b60408152600083516040808401526147886080840182614729565b90506020850151603f198483030160608501526147a58282614729565b925050508260208301529392505050565b60008083601f8401126147c857600080fd5b5081356001600160401b038111156147df57600080fd5b6020830191508360208285010111156147f757600080fd5b9250929050565b60008060006040848603121561481357600080fd5b83356001600160401b0381111561482957600080fd5b614835868287016147b6565b909790965060209590950135949350505050565b6000806040838503121561485c57600080fd5b8235614867816141b7565b915060208301356001600160401b038082111561488357600080fd5b908401906060828703121561489757600080fd5b6040516060810181811083821117156148b2576148b26140a8565b6040528235828111156148c457600080fd5b6148d088828601614190565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561490657600080fd5b81356001600160401b0381111561491c57600080fd5b8201601f8101841361492d57600080fd5b61493c84823560208401614139565b949350505050565b60008060006060848603121561495957600080fd5b8335925060208401356146f8816141b7565b60008060006060848603121561498057600080fd5b833561498b816141b7565b9250602084013561499b816141b7565b915060408401356149ab816141b7565b809150509250925092565b600080600080606085870312156149cc57600080fd5b8435935060208501356001600160401b038111156149e957600080fd5b6149f5878288016147b6565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a2357600080fd5b873596506020880135955060408801359450614a4160608901614090565b93506080880135925060a08801356001600160401b03811115614a6357600080fd5b614a6f8a828b01614190565b92505060c0880135905092959891949750929550565b60008060208385031215614a9857600080fd5b82356001600160401b0380821115614aaf57600080fd5b818501915085601f830112614ac357600080fd5b813581811115614ad257600080fd5b8660208260051b8501011115614ae757600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b2257614b22614af9565b500190565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614b7557634e487b7160e01b600052601260045260246000fd5b500690565b600082821015614b8c57614b8c614af9565b500390565b600060208284031215614ba357600080fd5b5051919050565b600060208284031215614bbc57600080fd5b81516001600160c01b038116811461398357600080fd5b600060208284031215614be557600080fd5b815160ff8116811461398357600080fd5b6000600019821415614c0a57614c0a614af9565b5060010190565b6001600160601b0381168114610fed57600080fd5b600060408284031215614c3857600080fd5b614c406140be565b8251614c4b816141b7565b81526020830151614c5b81614c11565b60208201529392505050565b600060208284031215614c7957600080fd5b8151613983816141b7565b600060208284031215614c9657600080fd5b815167ffffffffffffffff198116811461398357600080fd5b600060208284031215614cc157600080fd5b815161398381614c11565b60006001600160601b0383811690831681811015614cec57614cec614af9565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d2f57815185529382019390820190600101614d13565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e3857602081850181015186830182015201614e1c565b81811115614e4a576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b0383168152604060208201526000825160606040840152614e8960a0840182614e12565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006141b06020830184614e12565b60006001600160601b0380831681851681830481118215151615614ee357614ee3614af9565b02949350505050565b6000816000190483118215151615614f0657614f06614af9565b500290565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038516815263ffffffff84166020820152606060408201819052600090614f659083018486614f0b565b9695505050505050565b6001600160a01b038616815263ffffffff85166020820152608060408201819052600090614fa09083018587614f0b565b90508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fee81840187614e12565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502657600080fd5b8151613983816143f2565b60008235609e1983360301811261504757600080fd5b9190910192915050565b8035613b31816141b7565b8183526000602080850194508260005b8581101561476257813561507f816141b7565b6001600160a01b031687528183013561509781614c11565b6001600160601b031687840152604096870196919091019060010161506c565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b657878303603f190184528135368b9003609e190181126150fc57600080fd5b8a0160a0813536839003601e1901811261511557600080fd5b820180356001600160401b0381111561512d57600080fd5b8060061b360384131561513f57600080fd5b828752615151838801828c850161505c565b92505050615160888301615051565b6001600160a01b0316888601528187013587860152606061518281840161441d565b63ffffffff1690860152608061519983820161441d565b63ffffffff169501949094525092850192908501906001016150d6565b509098975050505050505050565b600061ffff808316818114156151dc576151dc614af9565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122017dfd150dae9460b2ec60dad206a1badc342ad50fc4b8453a30d1d04bafbb76364736f6c634300080c0033","sourceMap":"847:9537:180:-:0;;;1134:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1590:30:121;;;;;1630:42;;;;;1682:44;;;;;1736:32;;;;1360:21:180;1423:14;1451:20;1360:21;1520:15;2276:22:120::1;:20;:22::i;:::-;1894:411:::0;;;;1793:20:114;-1:-1:-1;;;;;1771:42:114;;;-1:-1:-1;;;;;1771:42:114;;;;;1839:20;-1:-1:-1;;;;;1839:34:114;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1823:52:114;;;-1:-1:-1;;;;;1823:52:114;;;;;1902:20;-1:-1:-1;;;;;1902:35:114;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1885:54:114;;;-1:-1:-1;;;;;1885:54:114;;;;;1962:13;;-1:-1:-1;;;;;1962:24:114;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1949:39:114;;;-1:-1:-1;1560:22:180::2;:20;:22::i;:::-;1134:455:::0;;;;847:9537;;5388:279:46;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:46;;2079:2:186;5447:66:46;;;2061:21:186;2118:2;2098:18;;;2091:30;2157:34;2137:18;;;2130:62;-1:-1:-1;;;2208:18:186;;;2201:37;2255:19;;5447:66:46;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:46;5588:15;5573:30;;;;;;5622:28;;2427:36:186;;;5622:28:46;;2415:2:186;2400:18;5622:28:46;;;;;;;5523:138;5388:279::o;14:146:186:-;-1:-1:-1;;;;;104:31:186;;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:186;605:25;639:48;:::i;:::-;758:2;743:18;;737:25;706:7;;-1:-1:-1;771:48:186;737:25;771:48;:::i;:::-;890:2;875:18;;869:25;838:7;;-1:-1:-1;903:48:186;869:25;903:48;:::i;:::-;165:818;;;;-1:-1:-1;165:818:186;;-1:-1:-1;;165:818:186: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:186:o;2285:184::-;847:9537:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063c0c53b8b116100a0578063f2fde38b1161006f578063f2fde38b14610680578063f9120af6146106a0578063fa534dc0146106c0578063fc299dee146106e0578063fce36c7d1461070057600080fd5b8063c0c53b8b14610604578063d66eaabd14610624578063df5cf72314610637578063e481af9d1461066b57600080fd5b8063a98fb355116100dc578063a98fb35514610540578063ab21739a14610560578063b099627e14610580578063b98d0908146105ea57600080fd5b80638da5cb5b146104c257806395c6d604146104e05780639926ee7d14610500578063a364f4da1461052057600080fd5b80634ae07c37116101855780636d14a987116101545780636d14a9871461041557806370a0823114610449578063715018a61461048d578063800fb61f146104a257600080fd5b80634ae07c371461034c5780635df459461461037a57806368304835146103ae5780636b3aa72e146103e257600080fd5b80633bc28c8c116101c15780633bc28c8c146102c1578063416c7e5e146102e15780634223d551146103015780634a5bf6321461031457600080fd5b806306045a9114610208578063171f1d5b1461023d5780632e1a7d4d1461027457806333cfb7b71461029457600080fd5b36610203576102013334610720565b005b600080fd5b34801561021457600080fd5b506102286102233660046141cc565b6107b2565b60405190151581526020015b60405180910390f35b34801561024957600080fd5b5061025d61025836600461431e565b6108a7565b604080519215158352901515602083015201610234565b34801561028057600080fd5b5061020161028f36600461436f565b610a31565b3480156102a057600080fd5b506102b46102af366004614388565b610b09565b60405161023491906143a5565b3480156102cd57600080fd5b506102016102dc366004614388565b610fdc565b3480156102ed57600080fd5b506102016102fc366004614400565b610ff0565b61020161030f366004614388565b611127565b34801561032057600080fd5b5060cb54610334906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561035857600080fd5b5061036c6103673660046146d3565b611131565b60405161023492919061476d565b34801561038657600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ba57600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ee57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610334565b34801561042157600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561045557600080fd5b5061047f610464366004614388565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610234565b34801561049957600080fd5b50610201612084565b3480156104ae57600080fd5b506102016104bd366004614388565b612098565b3480156104ce57600080fd5b506033546001600160a01b0316610334565b3480156104ec57600080fd5b506102286104fb3660046147fe565b612138565b34801561050c57600080fd5b5061020161051b366004614849565b61215d565b34801561052c57600080fd5b5061020161053b366004614388565b612229565b34801561054c57600080fd5b5061020161055b3660046148f4565b6122f0565b34801561056c57600080fd5b5061020161057b366004614944565b612344565b34801561058c57600080fd5b506105c861059b36600461436f565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610234565b3480156105f657600080fd5b506097546102289060ff1681565b34801561061057600080fd5b5061020161061f36600461496b565b6126fe565b6102016106323660046149b6565b6127e8565b34801561064357600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561067757600080fd5b506102b46129e0565b34801561068c57600080fd5b5061020161069b366004614388565b612da9565b3480156106ac57600080fd5b506102016106bb366004614388565b612e1f565b3480156106cc57600080fd5b506102286106db366004614a08565b612e49565b3480156106ec57600080fd5b50606554610334906001600160a01b031681565b34801561070c57600080fd5b5061020161071b366004614a85565b612ebe565b8061074657604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca60205260408120805483929061076e908490614b0f565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25050565b6000806001600160a01b0383166107ca5750846107f6565b85836040516020016107dd929190614b27565b6040516020818303038152906040528051906020012090505b600081815260c9602052604090205463ffffffff1661081957600091505061089b565b600081815260c96020526040902054640100000000900460ff1661084157600091505061089b565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f198184030181529190528051602082012090915061089587898389613276565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106108ef576108ef614b42565b60200201518951600160200201518a6020015160006002811061091457610914614b42565b60200201518b6020015160016002811061093057610930614b42565b602090810291909101518c518d83015160405161098d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109b09190614b58565b9050610a236109c96109c2888461328e565b8690613325565b6109d16133b9565b610a19610a0a85610a04604080518082018252600080825260209182015281518083019092526001825260029082015290565b9061328e565b610a138c613479565b90613325565b886201d4c0613509565b909890975095505050505050565b33600090815260ca6020526040902054811115610a825733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201839052604482015260640161073d565b33600090815260ca602052604081208054839290610aa1908490614b7a565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b05573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190614b91565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c289190614baa565b90506001600160c01b0381161580610cc257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd9190614bd3565b60ff16155b15610ce25760408051600080825260208201909252905b50949350505050565b6000610cf6826001600160c01b031661372d565b90506000805b8251811015610dcc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d4657610d46614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae9190614b91565b610db89083614b0f565b915080610dc481614bf6565b915050610cfc565b506000816001600160401b03811115610de757610de76140a8565b604051908082528060200260200182016040528015610e10578160200160208202803683370190505b5090506000805b8451811015610fcf576000858281518110610e3457610e34614b42565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190614b91565b905060005b81811015610fb9576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190614c26565b60000151868681518110610f8157610f81614b42565b6001600160a01b039092166020928302919091019091015284610fa381614bf6565b9550508080610fb190614bf6565b915050610ed2565b5050508080610fc790614bf6565b915050610e17565b5090979650505050505050565b610fe46137ef565b610fed81613849565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190614c67565b6001600160a01b0316336001600160a01b03161461111e5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a40161073d565b610fed816138b2565b610fed8134610720565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561118d57508260a0015151604051806040016040528060018152602001600081525051145b80156111b457508260c0015151604051806040016040528060018152602001600081525051145b80156111db57508260e0015151604051806040016040528060018152602001600081525051145b6112455760405162461bcd60e51b8152602060048201526041602482015260008051602061522783398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a40161073d565b825151602084015151146112bd5760405162461bcd60e51b815260206004820152604460248201819052600080516020615227833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a40161073d565b4363ffffffff168463ffffffff161061132c5760405162461bcd60e51b815260206004820152603c602482015260008051602061522783398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b00000000606482015260840161073d565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156113ed576113ed6140a8565b604051908082528060200260200182016040528015611416578160200160208202803683370190505b5081526020860151516001600160401b03811115611436576114366140a8565b60405190808252806020026020018201604052801561145f578160200160208202803683370190505b508160200181905250600061150b60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190614bd3565b6138f9565b905060005b8760200151518110156117a6576115558860200151828151811061153657611536614b42565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061156b5761156b614b42565b6020908102919091010152801561162b57602083015161158c600183614b7a565b8151811061159c5761159c614b42565b602002602001015160001c836020015182815181106115bd576115bd614b42565b602002602001015160001c1161162b576040805162461bcd60e51b815260206004820152602481019190915260008051602061522783398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f72746564606482015260840161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061167057611670614b42565b60200260200101518b8b60000151858151811061168f5761168f614b42565b60200260200101516040518463ffffffff1660e01b81526004016116cc9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190614baa565b6001600160c01b03168360000151828151811061172c5761172c614b42565b6020026020010181815250506117926109c2611766848660000151858151811061175857611758614b42565b60200260200101511661398c565b8a60200151848151811061177c5761177c614b42565b60200260200101516139b790919063ffffffff16565b94508061179e81614bf6565b915050611510565b50506117b183613a9b565b60975490935060ff166000816117c857600061184a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184a9190614b91565b905060005b604051806040016040528060018152602001600081525051811015611f555782156119db578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118d3576118d3614b42565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b9190614b91565b6119459190614b0f565b116119db5760405162461bcd60e51b8152602060048201526066602482015260008051602061522783398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c40161073d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a3257611a32614b42565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a5757611a57614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad79190614c84565b6001600160401b031916611afa8a60400151838151811061153657611536614b42565b67ffffffffffffffff191614611b965760405162461bcd60e51b8152602060048201526061602482015260008051602061522783398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c40161073d565b611bc689604001518281518110611baf57611baf614b42565b60200260200101518761332590919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c1f57611c1f614b42565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c4457611c44614b42565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc49190614caf565b85602001518281518110611cda57611cda614b42565b6001600160601b03909216602092830291909101820152850151805182908110611d0657611d06614b42565b602002602001015185600001518281518110611d2457611d24614b42565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4057611db386600001518281518110611d6e57611d6e614b42565b602002602001015160405180604001604052806001815260200160008152508581518110611d9e57611d9e614b42565b016020015160f81c60ff161c60019081161490565b15611f2e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e0f57611e0f614b42565b602001015160f81c60f81b60f81c8e89602001518581518110611e3457611e34614b42565b60200260200101518f60e001518881518110611e5257611e52614b42565b60200260200101518781518110611e6b57611e6b614b42565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef39190614caf565b8751805185908110611f0757611f07614b42565b60200260200101818151611f1b9190614ccc565b6001600160601b03169052506001909101905b80611f3881614bf6565b915050611d48565b50508080611f4d90614bf6565b91505061184f565b505050600080611f6f8a868a606001518b608001516108a7565b9150915081611fe05760405162461bcd60e51b8152602060048201526043602482015260008051602061522783398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a40161073d565b806120415760405162461bcd60e51b8152602060048201526039602482015260008051602061522783398151915260448201527f7265733a207369676e617475726520697320696e76616c696400000000000000606482015260840161073d565b5050600087826020015160405160200161205c929190614cf4565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208c6137ef565b6120966000613b36565b565b600054600290610100900460ff161580156120ba575060005460ff8083169116105b6120d65760405162461bcd60e51b815260040161073d90614d3c565b6000805461ffff191660ff8316176101001790556120f382612e1f565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161214b929190614d8a565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a55760405162461bcd60e51b815260040161073d90614d9a565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f39085908590600401614e5f565b600060405180830381600087803b15801561220d57600080fd5b505af1158015612221573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122715760405162461bcd60e51b815260040161073d90614d9a565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d557600080fd5b505af11580156122e9573d6000803e3d6000fd5b5050505050565b6122f86137ef565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122bb908490600401614eaa565b60cb546001600160a01b031633146123845760cb54604051632cbe419560e01b81523360048201526001600160a01b03909116602482015260440161073d565b60005a90506000848460405160200161239e929190614b27565b60408051601f198184030181529181528151602092830120600081815260c9909352912080549192509063ffffffff166123ee576040516311cb69a760e11b81526004810183905260240161073d565b8054640100000000900460ff161561241c57604051634e78d7f960e11b81526004810183905260240161073d565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca6020526040902054101561249f5760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820192909252604481019190915260640161073d565b80546000906124b690849063ffffffff1687611131565b509050604360ff1681602001516000815181106124d5576124d5614b42565b60200260200101516124e79190614ebd565b6001600160601b03166064826000015160008151811061250957612509614b42565b60200260200101516001600160601b03166125249190614eec565b10156125b7576064816000015160008151811061254357612543614b42565b60200260200101516001600160601b031661255e9190614eec565b604360ff16826020015160008151811061257a5761257a614b42565b602002602001015161258c9190614ebd565b60405163530f5c4560e11b815260048101929092526001600160601b0316602482015260440161073d565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126039087614b7a565b6126109062011170614b0f565b61261a9190614eec565b9050826001015481111561265157600183015460405163437e283f60e11b815260048101919091526024810182905260440161073d565b6001600160a01b038716600090815260ca602052604081208054839290612679908490614b7a565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f3573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161073d90614d3c565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b6127818484613b88565b60cb80546001600160a01b0319166001600160a01b03841617905580156127e2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016127fd929190614b27565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561284c57604051630c40bc4360e21b81526004810182905260240161073d565b34156128a95733600090815260ca602052604081208054349290612871908490614b0f565b909155505033600081815260ca6020908152604091829020549151918252600080516020615207833981519152910160405180910390a25b33600090815260ca60205260409020548211156128fa5733600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201849052604482015260640161073d565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f130d3e81af62e03ed6fff5e3bb343695ec513892cfad24d286486745dcc6143791612990913391908a908a90614f34565b60405180910390a2857f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5533438888886040516129d0959493929190614f6f565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a669190614bd3565b60ff16905080612a8457505060408051600081526020810190915290565b6000805b82811015612b3957604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b9190614b91565b612b259083614b0f565b915080612b3181614bf6565b915050612a88565b506000816001600160401b03811115612b5457612b546140a8565b604051908082528060200260200182016040528015612b7d578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c069190614bd3565b60ff16811015612d9f57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9e9190614b91565b905060005b81811015612d8a576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3c9190614c26565b60000151858581518110612d5257612d52614b42565b6001600160a01b039092166020928302919091019091015283612d7481614bf6565b9450508080612d8290614bf6565b915050612ca3565b50508080612d9790614bf6565b915050612b84565b5090949350505050565b612db16137ef565b6001600160a01b038116612e165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073d565b610fed81613b36565b612e276137ef565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612e7d908b908b908b908b908b908b908b908b90600401614fb2565b602060405180830381865afa158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190615014565b6065546001600160a01b03163314612f535760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a40161073d565b60005b8181101561322757828282818110612f7057612f70614b42565b9050602002810190612f829190615031565b612f93906040810190602001614388565b6001600160a01b03166323b872dd3330868686818110612fb557612fb5614b42565b9050602002810190612fc79190615031565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af115801561301e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130429190615014565b50600083838381811061305757613057614b42565b90506020028101906130699190615031565b61307a906040810190602001614388565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c9190614b91565b905083838381811061312057613120614b42565b90506020028101906131329190615031565b613143906040810190602001614388565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061318557613185614b42565b90506020028101906131979190615031565b604001356131a59190614b0f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156131f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132149190615014565b50508061322090614bf6565b9050612f56565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f390859085906004016150b7565b600083613284868585613c05565b1495945050505050565b60408051808201909152600080825260208201526132aa613fb6565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156132dd576132df565bfe5b508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b604482015260640161073d565b505092915050565b6040805180820190915260008082526020820152613341613fd4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156132dd57508061331d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b604482015260640161073d565b6133c1613ff2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806134a96000805160206151e783398151915286614b58565b90505b6134b581613cff565b90935091506000805160206151e78339815191528283098314156134ef576040805180820190915290815260208101919091529392505050565b6000805160206151e78339815191526001820890506134ac565b60408051808201825286815260208082018690528251808401909352868352820184905260009182919061353b614017565b60005b6002811015613700576000613554826006614eec565b905084826002811061356857613568614b42565b6020020151518361357a836000614b0f565b600c811061358a5761358a614b42565b60200201528482600281106135a1576135a1614b42565b602002015160200151838260016135b89190614b0f565b600c81106135c8576135c8614b42565b60200201528382600281106135df576135df614b42565b60200201515151836135f2836002614b0f565b600c811061360257613602614b42565b602002015283826002811061361957613619614b42565b6020020151516001602002015183613632836003614b0f565b600c811061364257613642614b42565b602002015283826002811061365957613659614b42565b60200201516020015160006002811061367457613674614b42565b602002015183613685836004614b0f565b600c811061369557613695614b42565b60200201528382600281106136ac576136ac614b42565b6020020151602001516001600281106136c7576136c7614b42565b6020020151836136d8836005614b0f565b600c81106136e8576136e8614b42565b602002015250806136f881614bf6565b91505061353e565b50613709614036565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b606060008061373b8461398c565b61ffff166001600160401b03811115613756576137566140a8565b6040519080825280601f01601f191660200182016040528015613780576020820181803683370190505b5090506000805b825182108015613798575061010081105b15612d9f576001811b9350858416156137df578060f81b8383815181106137c1576137c1614b42565b60200101906001600160f81b031916908160001a9053508160010191505b6137e881614bf6565b9050613787565b6033546001600160a01b031633146120965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073d565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061390584613d81565b9050808360ff166001901b116139835760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c756500606482015260840161073d565b90505b92915050565b6000805b8215613986576139a1600184614b7a565b90921691806139af816151c4565b915050613990565b60408051808201909152600080825260208201526102008261ffff1610613a135760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b604482015260640161073d565b8161ffff1660011415613a27575081613986565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613a9057600161ffff871660ff83161c81161415613a7357613a708484613325565b93505b613a7d8384613325565b92506201fffe600192831b169101613a43565b509195945050505050565b60408051808201909152600080825260208201528151158015613ac057506020820151155b15613ade575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e78339815191528460200151613b119190614b58565b613b29906000805160206151e7833981519152614b7a565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613bf35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161073d565b613bfc82613b36565b610b0581613849565b600060208451613c159190614b58565b15613c9c5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161073d565b8260205b85518111610cd957613cb3600285614b58565b613cd457816000528086015160205260406000209150600284049350613ced565b8086015160005281602052604060002091506002840493505b613cf8602082614b0f565b9050613ca0565b600080806000805160206151e783398151915260036000805160206151e7833981519152866000805160206151e7833981519152888909090890506000613d75827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e7833981519152613f0e565b91959194509092505050565b600061010082511115613e0a5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161073d565b8151613e1857506000919050565b60008083600081518110613e2e57613e2e614b42565b0160200151600160f89190911c81901b92505b8451811015613f0557848181518110613e5c57613e5c614b42565b0160200151600160f89190911c1b9150828211613ef15760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161073d565b91811791613efe81614bf6565b9050613e41565b50909392505050565b600080613f19614036565b613f21614054565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156132dd575082613fab5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c757265000000000000604482015260640161073d565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614005614072565b8152602001614012614072565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b3157600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156140e0576140e06140a8565b60405290565b60405161010081016001600160401b03811182821017156140e0576140e06140a8565b604051601f8201601f191681016001600160401b0381118282101715614131576141316140a8565b604052919050565b60006001600160401b03831115614152576141526140a8565b614165601f8401601f1916602001614109565b905082815283838301111561417957600080fd5b828260208301376000602084830101529392505050565b600082601f8301126141a157600080fd5b6141b083833560208501614139565b9392505050565b6001600160a01b0381168114610fed57600080fd5b600080600080600080600080610100898b0312156141e957600080fd5b88359750602089013596506040890135955061420760608a01614090565b94506080890135935060a08901356001600160401b0381111561422957600080fd5b6142358b828c01614190565b93505060c0890135915060e089013561424d816141b7565b809150509295985092959890939650565b60006040828403121561427057600080fd5b6142786140be565b9050813581526020820135602082015292915050565b600082601f83011261429f57600080fd5b6142a76140be565b8060408401858111156142b957600080fd5b845b818110156142d35780358452602093840193016142bb565b509095945050505050565b6000608082840312156142f057600080fd5b6142f86140be565b9050614304838361428e565b8152614313836040840161428e565b602082015292915050565b600080600080610120858703121561433557600080fd5b84359350614346866020870161425e565b925061435586606087016142de565b91506143648660e0870161425e565b905092959194509250565b60006020828403121561438157600080fd5b5035919050565b60006020828403121561439a57600080fd5b8135613983816141b7565b6020808252825182820181905260009190848201906040850190845b818110156143e65783516001600160a01b0316835292840192918401916001016143c1565b50909695505050505050565b8015158114610fed57600080fd5b60006020828403121561441257600080fd5b8135613983816143f2565b803563ffffffff81168114613b3157600080fd5b60006001600160401b0382111561444a5761444a6140a8565b5060051b60200190565b600082601f83011261446557600080fd5b8135602061447a61447583614431565b614109565b82815260059290921b8401810191818101908684111561449957600080fd5b8286015b848110156144bb576144ae8161441d565b835291830191830161449d565b509695505050505050565b600082601f8301126144d757600080fd5b813560206144e761447583614431565b82815260069290921b8401810191818101908684111561450657600080fd5b8286015b848110156144bb5761451c888261425e565b83529183019160400161450a565b600082601f83011261453b57600080fd5b8135602061454b61447583614431565b82815260059290921b8401810191818101908684111561456a57600080fd5b8286015b848110156144bb5780356001600160401b0381111561458d5760008081fd5b61459b8986838b0101614454565b84525091830191830161456e565b600061018082840312156145bc57600080fd5b6145c46140e6565b905081356001600160401b03808211156145dd57600080fd5b6145e985838601614454565b835260208401359150808211156145ff57600080fd5b61460b858386016144c6565b6020840152604084013591508082111561462457600080fd5b614630858386016144c6565b604084015261464285606086016142de565b60608401526146548560e0860161425e565b608084015261012084013591508082111561466e57600080fd5b61467a85838601614454565b60a084015261014084013591508082111561469457600080fd5b6146a085838601614454565b60c08401526101608401359150808211156146ba57600080fd5b506146c78482850161452a565b60e08301525092915050565b6000806000606084860312156146e857600080fd5b833592506146f86020850161441d565b915060408401356001600160401b0381111561471357600080fd5b61471f868287016145a9565b9150509250925092565b600081518084526020808501945080840160005b838110156147625781516001600160601b03168752958201959082019060010161473d565b509495945050505050565b60408152600083516040808401526147886080840182614729565b90506020850151603f198483030160608501526147a58282614729565b925050508260208301529392505050565b60008083601f8401126147c857600080fd5b5081356001600160401b038111156147df57600080fd5b6020830191508360208285010111156147f757600080fd5b9250929050565b60008060006040848603121561481357600080fd5b83356001600160401b0381111561482957600080fd5b614835868287016147b6565b909790965060209590950135949350505050565b6000806040838503121561485c57600080fd5b8235614867816141b7565b915060208301356001600160401b038082111561488357600080fd5b908401906060828703121561489757600080fd5b6040516060810181811083821117156148b2576148b26140a8565b6040528235828111156148c457600080fd5b6148d088828601614190565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561490657600080fd5b81356001600160401b0381111561491c57600080fd5b8201601f8101841361492d57600080fd5b61493c84823560208401614139565b949350505050565b60008060006060848603121561495957600080fd5b8335925060208401356146f8816141b7565b60008060006060848603121561498057600080fd5b833561498b816141b7565b9250602084013561499b816141b7565b915060408401356149ab816141b7565b809150509250925092565b600080600080606085870312156149cc57600080fd5b8435935060208501356001600160401b038111156149e957600080fd5b6149f5878288016147b6565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a2357600080fd5b873596506020880135955060408801359450614a4160608901614090565b93506080880135925060a08801356001600160401b03811115614a6357600080fd5b614a6f8a828b01614190565b92505060c0880135905092959891949750929550565b60008060208385031215614a9857600080fd5b82356001600160401b0380821115614aaf57600080fd5b818501915085601f830112614ac357600080fd5b813581811115614ad257600080fd5b8660208260051b8501011115614ae757600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b2257614b22614af9565b500190565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614b7557634e487b7160e01b600052601260045260246000fd5b500690565b600082821015614b8c57614b8c614af9565b500390565b600060208284031215614ba357600080fd5b5051919050565b600060208284031215614bbc57600080fd5b81516001600160c01b038116811461398357600080fd5b600060208284031215614be557600080fd5b815160ff8116811461398357600080fd5b6000600019821415614c0a57614c0a614af9565b5060010190565b6001600160601b0381168114610fed57600080fd5b600060408284031215614c3857600080fd5b614c406140be565b8251614c4b816141b7565b81526020830151614c5b81614c11565b60208201529392505050565b600060208284031215614c7957600080fd5b8151613983816141b7565b600060208284031215614c9657600080fd5b815167ffffffffffffffff198116811461398357600080fd5b600060208284031215614cc157600080fd5b815161398381614c11565b60006001600160601b0383811690831681811015614cec57614cec614af9565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d2f57815185529382019390820190600101614d13565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e3857602081850181015186830182015201614e1c565b81811115614e4a576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b0383168152604060208201526000825160606040840152614e8960a0840182614e12565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006141b06020830184614e12565b60006001600160601b0380831681851681830481118215151615614ee357614ee3614af9565b02949350505050565b6000816000190483118215151615614f0657614f06614af9565b500290565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038516815263ffffffff84166020820152606060408201819052600090614f659083018486614f0b565b9695505050505050565b6001600160a01b038616815263ffffffff85166020820152608060408201819052600090614fa09083018587614f0b565b90508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fee81840187614e12565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502657600080fd5b8151613983816143f2565b60008235609e1983360301811261504757600080fd5b9190910192915050565b8035613b31816141b7565b8183526000602080850194508260005b8581101561476257813561507f816141b7565b6001600160a01b031687528183013561509781614c11565b6001600160601b031687840152604096870196919091019060010161506c565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b657878303603f190184528135368b9003609e190181126150fc57600080fd5b8a0160a0813536839003601e1901811261511557600080fd5b820180356001600160401b0381111561512d57600080fd5b8060061b360384131561513f57600080fd5b828752615151838801828c850161505c565b92505050615160888301615051565b6001600160a01b0316888601528187013587860152606061518281840161441d565b63ffffffff1690860152608061519983820161441d565b63ffffffff169501949094525092850192908501906001016150d6565b509098975050505050505050565b600061ffff808316818114156151dc576151dc614af9565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122017dfd150dae9460b2ec60dad206a1badc342ad50fc4b8453a30d1d04bafbb76364736f6c634300080c0033","sourceMap":"847:9537:180:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9978:40;9996:10;10008:9;9978:17;:40::i;:::-;847:9537;;;;;6848:1282;;;;;;;;;;-1:-1:-1;6848:1282:180;;;;;:::i;:::-;;:::i;:::-;;;3210:14:186;;3203:22;3185:41;;3173:2;3158:18;6848:1282:180;;;;;;;;14547:1081:114;;;;;;;;;;-1:-1:-1;14547:1081:114;;;;;:::i;:::-;;:::i;:::-;;;;5060:14:186;;5053:22;5035:41;;5119:14;;5112:22;5107:2;5092:18;;5085:50;5008:18;14547:1081:114;4873:268:186;8972:437:180;;;;;;;;;;-1:-1:-1;8972:437:180;;;;;:::i;:::-;;:::i;7697:1470:120:-;;;;;;;;;;-1:-1:-1;7697:1470:120;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5599:135::-;;;;;;;;;;-1:-1:-1;5599:135:120;;;;;:::i;:::-;;:::i;2232:123:114:-;;;;;;;;;;-1:-1:-1;2232:123:114;;;;;:::i;:::-;;:::i;9536:114:180:-;;;;;;:::i;:::-;;:::i;483:32:181:-;;;;;;;;;;-1:-1:-1;483:32:181;;;;-1:-1:-1;;;;;483:32:181;;;;;;-1:-1:-1;;;;;6779:32:186;;;6761:51;;6749:2;6734:18;483:32:181;6615:203:186;4387:9678:114;;;;;;;;;;-1:-1:-1;4387:9678:114;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1183:47::-;;;;;;;;;;;;;;;1132:45;;;;;;;;;;;;;;;9235:111:120;;;;;;;;;;-1:-1:-1;9325:13:120;9235:111;;1069:57:114;;;;;;;;;;;;;;;9415:115:180;;;;;;;;;;-1:-1:-1;9415:115:180;;;;;:::i;:::-;-1:-1:-1;;;;;9498:25:180;9472:7;9498:25;;;:16;:25;;;;;;;9415:115;;;;13652:25:186;;;13640:2;13625:18;9415:115:180;13506:177:186;2071:101:42;;;;;;;;;;;;;:::i;2218:146:180:-;;;;;;;;;;-1:-1:-1;2218:146:180;;;;;:::i;:::-;;:::i;1441:85:42:-;;;;;;;;;;-1:-1:-1;1513:6:42;;-1:-1:-1;;;;;1513:6:42;1441:85;;10031:171:180;;;;;;;;;;-1:-1:-1;10031:171:180;;;;;:::i;:::-;;:::i;4797:260:120:-;;;;;;;;;;-1:-1:-1;4797:260:120;;;;;:::i;:::-;;:::i;5262:158::-;;;;;;;;;;-1:-1:-1;5262:158:120;;;;;:::i;:::-;;:::i;2721:148::-;;;;;;;;;;-1:-1:-1;2721:148:120;;;;;:::i;:::-;;:::i;3858:2984:180:-;;;;;;;;;;-1:-1:-1;3858:2984:180;;;;;:::i;:::-;;:::i;284:50:181:-;;;;;;;;;;-1:-1:-1;284:50:181;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17110:10:186;17098:23;;;17080:42;;17165:14;;17158:22;17153:2;17138:18;;17131:50;17197:18;;;17190:34;17068:2;17053:18;284:50:181;16886:344:186;1421:32:114;;;;;;;;;;-1:-1:-1;1421:32:114;;;;;;;;1691:338:180;;;;;;;;;;-1:-1:-1;1691:338:180;;;;;:::i;:::-;;:::i;2370:1482::-;;;;;;:::i;:::-;;:::i;1236:46:114:-;;;;;;;;;;;;;;;6262:951:120;;;;;;;;;;;;;:::i;2321:198:42:-;;;;;;;;;;-1:-1:-1;2321:198:42;;;;;:::i;:::-;;:::i;8843:123:180:-;;;;;;;;;;-1:-1:-1;8843:123:180;;;;;:::i;:::-;;:::i;8194:643::-;;;;;;;;;;-1:-1:-1;8194:643:180;;;;;:::i;:::-;;:::i;1212:31:121:-;;;;;;;;;;-1:-1:-1;1212:31:121;;;;-1:-1:-1;;;;;1212:31:121;;;3631:872:120;;;;;;;;;;-1:-1:-1;3631:872:120;;;;;:::i;:::-;;:::i;9656:279:180:-;9739:11;9735:77;;9773:28;;-1:-1:-1;;;9773:28:180;;;;;13652:25:186;;;13625:18;;9773:28:180;;;;;;;;9735:77;-1:-1:-1;;;;;9821:25:180;;;;;;:16;:25;;;;;:35;;9850:6;;9821:25;:35;;9850:6;;9821:35;:::i;:::-;;;;-1:-1:-1;;;;;;;9871:57:180;;9902:25;;;;:16;:25;;;;;;;;;;9871:57;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;9871:57:180;13625:18:186;9871:57:180;;;;;;;9656:279;;:::o;6848:1282::-;7202:4;;-1:-1:-1;;;;;7255:27:180;;7251:229;;-1:-1:-1;7316:15:180;7251:229;;;7424:15;7441:13;7407:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7380:89;;;;;;7362:107;;7251:229;7494:29;;;;:12;:29;;;;;:46;;;7490:94;;7568:5;7561:12;;;;;7490:94;7599:29;;;;:12;:29;;;;;:39;;;;;;7594:83;;7661:5;7654:12;;;;;7594:83;7707:163;;;;;;20732:19:186;;;20767:12;;;20760:28;;;20804:12;;;20797:28;;;-1:-1:-1;;;;;;20855:44:186;;20841:12;;;20834:66;7687:17:180;;20916:13:186;;7707:163:180;;;-1:-1:-1;;7707:163:180;;;;;;;;;7902:15;;7707:163;7902:15;;;7707:163;;-1:-1:-1;7947:176:180;7993:11;8022:15;7902;8083:26;7947:28;:176::i;:::-;7928:195;;;;;6848:1282;;;;;;;;;;;:::o;14547:1081:114:-;14745:22;14769;14878:13;2037:77:135;14980:7:114;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;;;;;;;;;;;21425:19:186;;;21469:2;21460:12;;21453:28;;;;21506:2;21497:12;;21490:28;;;;21543:2;21534:12;;21527:28;;;;21580:3;21571:13;;21564:29;;;;21618:3;21609:13;;21602:29;21656:3;21647:13;;21640:29;21694:3;21685:13;;21678:29;21732:3;21723:13;;21716:29;21770:3;21761:13;;21072:708;14942:303:114;;;;;;;;;;;;;14915:344;;;;;;14894:375;;:394;;;;:::i;:::-;14878:410;-1:-1:-1;15371:250:114;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:135;;;;;;;;2400:1;2392:13;;2403:1;2392:13;;;;;2313:99;15514:19:114;: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:114;-1:-1:-1;;;;;;14547:1081:114:o;8972:437:180:-;9046:10;9029:28;;;;:16;:28;;;;;;:37;-1:-1:-1;9025:204:180;;;9124:10;9176:28;;;;:16;:28;;;;;;;;9089:129;;-1:-1:-1;;;9089:129:180;;;;;22333:51:186;;;;22400:18;;;22393:34;;;22443:18;;;22436:34;22306:18;;9089:129:180;22131:345:186;9025:204:180;9256:10;9239:28;;;;:16;:28;;;;;:38;;9271:6;;9239:28;:38;;9271:6;;9239:38;:::i;:::-;;;;-1:-1:-1;;9314:10:180;9326:28;;;;:16;:28;;;;;;;;;;9292:63;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;9292:63:180;13625:18:186;9292:63:180;;;;;;;9366:36;;9374:10;;9366:36;;;;;9395:6;;9366:36;;;;9395:6;9374:10;9366:36;;;;;;;;;;;;;;;;;;;;;8972:437;:::o;7697:1470:120:-;7854:44;;-1:-1:-1;;;7854:44:120;;-1:-1:-1;;;;;6779:32:186;;;7854:44:120;;;6761:51:186;7801:16:120;;7833:18;;7854:20;:34;;;;6734:18:186;;7854:44:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7933:55;;-1:-1:-1;;;7933:55:120;;;;;13652:25:186;;;7833:65:120;;-1:-1:-1;7908:22:120;;-1:-1:-1;;;;;7933:20:120;:43;;;;13625:18:186;;7933:55:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7908:80;-1:-1:-1;;;;;;8003:19:120;;;;:62;;;8026:20;-1:-1:-1;;;;;8026:32:120;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;8003:62;7999:116;;;8088:16;;;8102:1;8088:16;;;;;;;;;;;-1:-1:-1;8081:23:120;7697:1470;-1:-1:-1;;;;7697:1470:120:o;7999:116::-;8196:36;8235:46;8266:14;-1:-1:-1;;;;;8235:46:120;:30;:46::i;:::-;8196:85;-1:-1:-1;8291:21:120;;8322:173;8346:23;:30;8342:1;:34;8322:173;;;8414:14;-1:-1:-1;;;;;8414:35:120;;8456:23;8480:1;8456:26;;;;;;;;:::i;:::-;;;;;8414:70;;-1:-1:-1;;;;;;8414:70:120;;;;;;;8456:26;;;;;8414:70;;;23697:36:186;23670:18;;8414:70:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8397:87;;;;:::i;:::-;;-1:-1:-1;8378:3:120;;;;:::i;:::-;;;;8322:173;;;;8566:35;8618:13;-1:-1:-1;;;;;8604:28:120;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8604:28:120;;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:120;;8765:26;;;;;8837:43;;;23697:36:186;;;8765:26:120;-1:-1:-1;;;;;;;;8837:14:120;:35;;;;23670:18:186;;8837:43:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8806:74;;8899:9;8894:222;8918:20;8914:1;:24;8894:222;;;9019:47;;-1:-1:-1;;;9019:47:120;;24273:4:186;24261:17;;9019:47:120;;;24243:36:186;24295:18;;;24288:34;;;9019:14:120;-1:-1:-1;;;;;9019:36:120;;;;24216:18:186;;9019:47:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;8963:18;8982:5;8963:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8963:113:120;;;:25;;;;;;;;;;;:113;9094:7;;;;:::i;:::-;;;;8940:3;;;;;:::i;:::-;;;;8894:222;;;;8730:396;;8725:3;;;;;:::i;:::-;;;;8669:457;;;-1:-1:-1;9142:18:120;;7697:1470;-1:-1:-1;;;;;;;7697:1470:120:o;5599:135::-;1334:13:42;:11;:13::i;:::-;5686:41:120::1;5707:19;5686:20;:41::i;:::-;5599:135:::0;:::o;2232:123:114:-;1537:19;-1:-1:-1;;;;;1537:25:114;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1523:41:114;:10;-1:-1:-1;;;;;1523:41:114;;1502:180;;;;-1:-1:-1;;;1502:180:114;;25431:2:186;1502:180:114;;;25413:21:186;25470:2;25450:18;;;25443:30;25509:34;25489:18;;;25482:62;25580:34;25560:18;;;25553:62;25652:30;25631:19;;;25624:59;25700:19;;1502:180:114;25229:496:186;1502:180:114;2317:31:::1;2342:5;2317:24;:31::i;9536:114:180:-:0;9606:37;9624:7;9633:9;9606:17;:37::i;4387:9678:114:-;-1:-1:-1;;;;;;;;;;;;;;;;;4578:7:114;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:114;;25932:2:186;4597:428:114;;;25914:21:186;25971:2;25951:18;;;25944:30;-1:-1:-1;;;;;;;;;;;25990:18:186;;;25983:62;26081:34;26061:18;;;26054:62;-1:-1:-1;;;26132:19:186;;;26125:32;26174:19;;4597:428:114;25730:469:186;4597:428:114;5107:35;;:42;5057:23;;;;:30;:92;5036:207;;;;-1:-1:-1;;;5036:207:114;;26406:2:186;5036:207:114;;;26388:21:186;26445:2;26425:18;;;26418:30;;;-1:-1:-1;;;;;;;;;;;26464:18:186;;;26457:62;26555:34;26535:18;;;26528:62;-1:-1:-1;;;26606:19:186;;;26599:35;26651:19;;5036:207:114;26204:472:186;5036:207:114;5305:12;5275:43;;:20;:43;;;5254:150;;;;-1:-1:-1;;;5254:150:114;;26883:2:186;5254:150:114;;;26865:21:186;26922:2;26902:18;;;26895:30;-1:-1:-1;;;;;;;;;;;26941:18:186;;;26934:62;27032:30;27012:18;;;27005:58;27080:19;;5254:150:114;26681:424:186;5254:150:114;5921:19;;;;;;;;-1:-1:-1;5921:19:114;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;6277:21:114;;;;;;;;;;;;;;;;;;6264:42;;;;;;;;;;;5921:19;;6264:42;6277:21;6264:42;;;;5921:19;6264:42;;;;;-1:-1:-1;;6230:31:114;;;;:76;;;;6364:21;;;;;;;;;;;;-1:-1:-1;6364:21:114;;;;;6351:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6316:77:114;;-1:-1:-1;;;;;;;;;;;;;;;;;6499:6:114;:23;;;:30;-1:-1:-1;;;;;6472:67:114;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:67:114;-1:-1:-1;6445:94:114;;6589:23;;;;:30;-1:-1:-1;;;;;6575:45:114;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6575:45:114;;6549:10;:23;;:71;;;;6799:27;6829:141;6884:21;;;;;;;;;;;;;;;;;6923:19;-1:-1:-1;;;;;6923:31:114;;: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:135;;10473:16;10524:20;;;10580:4;10576:13;;;10570:20;10557:34;;;10629:4;10616:18;;;10404:246;7301:82:114;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:114;;27312:2:186;7435:252:114;;;27294:21:186;27331:18;;;27324:30;;;;-1:-1:-1;;;;;;;;;;;27370:18:186;;;27363:62;27461:34;27441:18;;;27434:62;27513:19;;7435:252:114;27110:428:186;7435:252:114;7846:19;-1:-1:-1;;;;;7846:76:114;;7961:10;:23;;;7985:1;7961:26;;;;;;;;:::i;:::-;;;;;;;8026:20;8079:6;:35;;;8115:1;8079:38;;;;;;;;:::i;:::-;;;;;;;7846:294;;;;;;;;;;;;;;;;27742:25:186;;;27786:10;27832:15;;;27827:2;27812:18;;27805:43;27884:15;27879:2;27864:18;;27857:43;27730:2;27715:18;;27543:363;7846:294:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7816:324:114;: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:114;;;;:::i;:::-;;;;6985:1728;;;;6631:2092;8996:12;:3;:10;:12::i;:::-;9340:20;;8990:18;;-1:-1:-1;9340:20:114;;9311:26;9340:20;9406:97;;9502:1;9406:97;;;9446:10;-1:-1:-1;;;;;9446:35:114;;: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:114;;9911:21;;;;;;;;;;;;;;;;;9933:1;9911:24;;;;;;;;:::i;:::-;;;;;9832:130;;-1:-1:-1;;;;;;9832:130:114;;;;;;;9911:24;;;;;9832:130;;;23697:36:186;23670:18;;9832:130:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:182;;;;:::i;:::-;:233;9799:418;;;;-1:-1:-1;;;9799:418:114;;28113:2:186;9799:418:114;;;28095:21:186;28152:3;28132:18;;;28125:31;-1:-1:-1;;;;;;;;;;;28172:18:186;;;28165:62;28263:34;28243:18;;;28236:62;28335:34;28314:19;;;28307:63;-1:-1:-1;;;28386:19:186;;;28379:37;28433:19;;9799:418:114;27911:547:186;9799:418:114;10504:14;-1:-1:-1;;;;;10504:46:114;;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:114;;;;;;;28688:4:186;28676:17;;;10504:275:114;;;28658:36:186;10504:275:114;28759:15:186;;;28739:18;;;28732:43;28811:15;28791:18;;;28784:43;28631:18;;10504:275:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10433:346:114;;10441:34;:6;:17;;;10459:1;10441:20;;;;;;;;:::i;:34::-;-1:-1:-1;;10433:346:114;;10404:514;;;;-1:-1:-1;;;10404:514:114;;29339:2:186;10404:514:114;;;29321:21:186;29378:2;29358:18;;;29351:30;-1:-1:-1;;;;;;;;;;;29397:18:186;;;29390:62;29488:34;29468:18;;;29461:62;29560:34;29539:19;;;29532:63;-1:-1:-1;;;29611:19:186;;;29604:32;29653:19;;10404:514:114;29137:541:186;10404:514:114;10942:30;10951:6;:17;;;10969:1;10951:20;;;;;;;;:::i;:::-;;;;;;;10942:3;:8;;:30;;;;:::i;:::-;10936:36;;11126:13;-1:-1:-1;;;;;11126:70:114;;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:114;;;;;;;28688:4:186;28676:17;;;11126:284:114;;;28658:36:186;11126:284:114;28759:15:186;;;28739:18;;;28732:43;28811:15;28791:18;;;28784:43;28631:18;;11126:284:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11089:11;:31;;;11121:1;11089:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11089:321:114;;;:34;;;;;;;;;;:321;11466:52;;;:55;;11519:1;;11466:55;;;;;;:::i;:::-;;;;;;;11428:11;:32;;;11461:1;11428:35;;;;;;;;:::i;:::-;;;;;;:93;-1:-1:-1;;;;;11428:93:114;;;-1:-1:-1;;;;;11428:93:114;;;;;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:136;;;7404:1;7386:19;;;7380:26;;7292:121;12107:161:114;12078:907;;;12356:13;-1:-1:-1;;;;;12356:72:114;;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:114;;;;;;;30191:4:186;30179:17;;;12356:489:114;;;30161:36:186;12356:489:114;30262:15:186;;;30242:18;;;30235:43;30294:18;;;30287:34;;;;30357:15;30337:18;;;30330:43;30133:19;;12356:489:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12317:32;;:35;;12350:1;;12317:35;;;;;;:::i;:::-;;;;;;:528;;;;;;;:::i;:::-;-1:-1:-1;;;;;12317:528:114;;;-1:-1:-1;12911:25:114;;;;;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:114;;30828:2:186;13366:143:114;;;30810:21:186;30867:2;30847:18;;;30840:30;-1:-1:-1;;;;;;;;;;;30886:18:186;;;30879:62;30977:34;30957:18;;;30950:62;-1:-1:-1;;;31028:19:186;;;31021:34;31072:19;;13366:143:114;30626:471:186;13366:143:114;13548:16;13523:132;;;;-1:-1:-1;;;13523:132:114;;31304:2:186;13523:132:114;;;31286:21:186;31343:2;31323:18;;;31316:30;-1:-1:-1;;;;;;;;;;;31362:18:186;;;31355:62;31453:27;31433:18;;;31426:55;31498:19;;13523:132:114;31102:421:186;13523:132:114;13036:630;;13740:27;13810:20;13832:10;:23;;;13793:63;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;13793:63:114;;;;;;13770:96;;13793:63;13770:96;;;;14025:11;;13770:96;;-1:-1:-1;4387:9678:114;;-1:-1:-1;;;;;;;4387:9678:114:o;2071:101:42:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2218:146:180:-;4418:13:46;;2311:1:180;;4418:13:46;;;;;4417:14;:40;;;;-1:-1:-1;4435:12:46;;:22;;;;:12;;:22;4417:40;4409:99;;;;-1:-1:-1;;;4409:99:46;;;;;;;:::i;:::-;4518:12;:22;;-1:-1:-1;;4550:20:46;4518:22;;;4550:20;4518:22;4550:20;;;2324:33:180::1;2338:18:::0;2324:13:::1;:33::i;:::-;4607:5:46::0;4591:21;;-1:-1:-1;;4591:21:46;;;4627:20;;23727:4:186;23715:17;;23697:36;;4627:20:46;;23685:2:186;23670:18;4627:20:46;;;;;;;2218:146:180;;:::o;10031:171::-;10142:4;10191;10175:11;;10165:22;;;;;;;:::i;:::-;;;;;;;;:30;10158:37;;10031:171;;;;;:::o;4797:260:120:-;1358:10;-1:-1:-1;;;;;1380:20:120;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:120;;;;;;;:::i;:::-;4986:64:::1;::::0;-1:-1:-1;;;4986:64:120;;-1:-1:-1;;;;;4986:13:120::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:120;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:120;;;;;;;:::i;:::-;5364:49:::1;::::0;-1:-1:-1;;;5364:49:120;;-1:-1:-1;;;;;6779:32:186;;;5364:49:120::1;::::0;::::1;6761:51:186::0;5364:13:120::1;:39;::::0;::::1;::::0;6734:18:186;;5364:49:120::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5262:158:::0;:::o;2721:148::-;1334:13:42;:11;:13::i;:::-;2814:48:120::1;::::0;-1:-1:-1;;;2814:48:120;;-1:-1:-1;;;;;2814:13:120::1;:34;::::0;::::1;::::0;:48:::1;::::0;2849:12;;2814:48:::1;;;:::i;3858:2984:180:-:0;10262:17;;-1:-1:-1;;;;;10262:17:180;10248:10;:31;10244:121;;10336:17;;10302:52;;-1:-1:-1;;;10302:52:180;;10324:10;10302:52;;;34900:34:186;-1:-1:-1;;;;;10336:17:180;;;34950:18:186;;;34943:43;34835:18;;10302:52:180;34688:304:186;10244:121:180;4151:22:::1;4176:9;4151:34;;4196:27;4266:15;4283:13;4249:48;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4249:48:180;;::::1;::::0;;;;;;4226:81;;4249:48:::1;4226:81:::0;;::::1;::::0;4318:31:::1;4352:33:::0;;;:12:::1;:33:::0;;;;;4557:29;;4226:81;;-1:-1:-1;4352:33:180;4557:29:::1;;4553:110;;4614:38;::::0;-1:-1:-1;;;4614:38:180;;::::1;::::0;::::1;13652:25:186::0;;;13625:18;;4614:38:180::1;13506:177:186::0;4553:110:180::1;4725:22:::0;;;;::::1;;;4721:102;;;4770:42;::::0;-1:-1:-1;;;4770:42:180;;::::1;::::0;::::1;13652:25:186::0;;;13625:18;;4770:42:180::1;13506:177:186::0;4721:102:180::1;4832:29:::0;;-1:-1:-1;;4832:29:180::1;::::0;::::1;::::0;;4857:4:::1;4975:34:::0;::::1;::::0;-1:-1:-1;;;;;4941:31:180;::::1;4832:22;4941:31:::0;;;:16:::1;:31;::::0;;;;;:68:::1;4937:269;;;5098:34;::::0;::::1;::::0;-1:-1:-1;;;;;5150:31:180;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;5032:163;;-1:-1:-1;;;5032:163:180;;::::1;::::0;::::1;22333:51:186::0;;;;22400:18;;;22393:34;;;;22443:18;;;22436:34;;;;22306:18;;5032:163:180::1;22131:345:186::0;4937:269:180::1;5452:29:::0;;5342:42:::1;::::0;5390:142:::1;::::0;5419:19;;5452:29:::1;;5495:27:::0;5390:15:::1;:142::i;:::-;5341:191;;;1125:2;5725:86;;:17;:37;;;5763:1;5725:40;;;;;;;;:::i;:::-;;;;;;;:86;;;;:::i;:::-;-1:-1:-1::0;;;;;5645:166:180::1;1062:3;5645:17;:38;;;5684:1;5645:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;5645:65:180::1;;;;;:::i;:::-;:166;5628:473;;;1062:3;5883:17;:38;;;5922:1;5883:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;5883:85:180::1;;;;;:::i;:::-;1125:2;5986:90;;:17;:37;;;6024:1;5986:40;;;;;;;;:::i;:::-;;;;;;;:90;;;;:::i;:::-;5843:247;::::0;-1:-1:-1;;;5843:247:180;;::::1;::::0;::::1;35626:25:186::0;;;;-1:-1:-1;;;;;35687:39:186;35667:18;;;35660:67;35599:18;;5843:247:180::1;35453:280:186::0;5628:473:180::1;6116:45;::::0;-1:-1:-1;;;;;6779:32:186;;6761:51;;6130:15:180;;6116:45:::1;::::0;6749:2:186;6734:18;6116:45:180::1;;;;;;;6275:14;6332:11;6310:9;6293:26;::::0;:14;:26:::1;:::i;:::-;:35;::::0;6322:6:::1;6293:35;:::i;:::-;6292:51;;;;:::i;:::-;6275:68;;6367:12;:34;;;6358:6;:43;6354:192;;;6463:34;::::0;::::1;::::0;6424:111:::1;::::0;-1:-1:-1;;;6424:111:180;;::::1;::::0;::::1;35912:25:186::0;;;;35953:18;;;35946:34;;;35885:18;;6424:111:180::1;35738:248:186::0;6354:192:180::1;-1:-1:-1::0;;;;;6614:31:180;::::1;;::::0;;;:16:::1;:31;::::0;;;;:41;;6649:6;;6614:31;:41:::1;::::0;6649:6;;6614:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;6670:103:180;::::1;6732:31;::::0;;;:16:::1;:31;::::0;;;;;;;;;6670:103;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;6670:103:180;13625:18:186;6670:103:180::1;;;;;;;6800:17;::::0;6792:43:::1;::::0;-1:-1:-1;;;;;6800:17:180;;::::1;::::0;6792:43;::::1;;;::::0;6828:6;;6800:17:::1;6792:43:::0;6800:17;6792:43;6828:6;6800:17;6792:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4141:2701;;;;;3858:2984:::0;;;:::o;1691:338::-;3111:19:46;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:46;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:46;1476:19:50;:23;;;3219:66:46;;-1:-1:-1;3268:12:46;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:46;;;;;;;:::i;:::-;3368:12;:16;;-1:-1:-1;;3368:16:46;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:46;;;;;3394:65;1848:59:180::1;1874:13;1889:17;1848:25;:59::i;:::-;1917:17;:38:::0;;-1:-1:-1;;;;;;1917:38:180::1;-1:-1:-1::0;;;;;1917:38:180;::::1;;::::0;;3479:99:46;;;;3529:5;3513:21;;-1:-1:-1;;3513:21:46;;;3553:14;;-1:-1:-1;23697:36:186;;3553:14:46;;23685:2:186;23670:18;3553:14:46;;;;;;;3479:99;3101:483;1691:338:180;;;:::o;2370:1482::-;2540:23;2606:15;2623:10;2589:45;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2589:45:180;;;;;;;;;2566:78;;2589:45;2566:78;;;;2659:29;;;;:12;:29;;;;;:46;2566:78;;-1:-1:-1;2659:46:180;;:51;2655:127;;2733:38;;-1:-1:-1;;;2733:38:180;;;;;13652:25:186;;;13625:18;;2733:38:180;13506:177:186;2655:127:180;2796:9;:13;2792:213;;2842:10;2825:28;;;;:16;:28;;;;;:41;;2857:9;;2825:28;:41;;2857:9;;2825:41;:::i;:::-;;;;-1:-1:-1;;2924:10:180;2952:28;;;;:16;:28;;;;;;;;;;2885:109;;13652:25:186;;;-1:-1:-1;;;;;;;;;;;2885:109:180;13625:18:186;2885:109:180;;;;;;;2792:213;3036:10;3019:28;;;;:16;:28;;;;;;:52;-1:-1:-1;3015:234:180;;;3129:10;3196:28;;;;:16;:28;;;;;;;;3094:144;;-1:-1:-1;;;3094:144:180;;;;;22333:51:186;;;;22400:18;;;22393:34;;;22443:18;;;22436:34;22306:18;;3094:144:180;22131:345:186;3015:234:180;-1:-1:-1;;;;;;;;;;;;;;;;3298:50:180;3335:12;3298:50;;;;;-1:-1:-1;;;3396:56:180;;;3463:29;;;:12;:29;;;;;;;:42;;;;;;;;;;-1:-1:-1;;3463:42:180;;;;;;;;;;;;;;;;;-1:-1:-1;3463:42:180;;;;3521:137;;-1:-1:-1;;3545:15:180;;3521:137;;;;3574:10;;3335:12;3632:16;;;;3521:137;:::i;:::-;;;;;;;;3697:15;3673:172;3726:10;3757:12;3784:16;;3814:21;3673:172;;;;;;;;;;:::i;:::-;;;;;;;;2530:1322;;2370:1482;;;;:::o;6262:951:120:-;6321:16;6349:19;6371:20;-1:-1:-1;;;;;6371:32:120;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6349:56;;;-1:-1:-1;6420:16:120;6416:70;;-1:-1:-1;;6459:16:120;;;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:120;;23727:4:186;23715:17;;6600:45:120;;;23697:36:186;6600:14:120;-1:-1:-1;;;;;6600:35:120;;;;23670:18:186;;6600:45:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6583:62;;;;:::i;:::-;;-1:-1:-1;6564:3:120;;;;:::i;:::-;;;;6527:129;;;;6666:35;6718:13;-1:-1:-1;;;;;6704:28:120;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6704:28:120;;6666:66;;6742:13;6774:9;6769:403;6793:20;-1:-1:-1;;;;;6793:32:120;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6789:38;;:1;:38;6769:403;;;6879:45;;-1:-1:-1;;;6879:45:120;;23727:4:186;23715:17;;6879:45:120;;;23697:36:186;6848:28:120;;6879:14;-1:-1:-1;;;;;6879:35:120;;;;23670:18:186;;6879:45:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6848:76;;6943:9;6938:224;6962:20;6958:1;:24;6938:224;;;7063:49;;-1:-1:-1;;;7063:49:120;;24273:4:186;24261:17;;7063:49:120;;;24243:36:186;24295:18;;;24288:34;;;7063:14:120;-1:-1:-1;;;;;7063:36:120;;;;24216:18:186;;7063:49:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;7007:18;7026:5;7007:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7007:115:120;;;:25;;;;;;;;;;;:115;7140:7;;;;:::i;:::-;;;;6984:3;;;;;:::i;:::-;;;;6938:224;;;;6834:338;6829:3;;;;;:::i;:::-;;;;6769:403;;;-1:-1:-1;7188:18:120;;6262:951;-1:-1:-1;;;;6262:951:120:o;2321:198:42:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:42;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:42;;37607:2:186;2401:73:42::1;::::0;::::1;37589:21:186::0;37646:2;37626:18;;;37619:30;37685:34;37665:18;;;37658:62;-1:-1:-1;;;37736:18:186;;;37729:36;37782:19;;2401:73:42::1;37405:402:186::0;2401:73:42::1;2484:28;2503:8;2484:18;:28::i;8843:123:180:-:0;1334:13:42;:11;:13::i;:::-;8921:17:180::1;:38:::0;;-1:-1:-1;;;;;;8921:38:180::1;-1:-1:-1::0;;;;;8921:38:180;;;::::1;::::0;;;::::1;::::0;;8843:123::o;8194:643::-;8540:290;;-1:-1:-1;;;8540:290:180;;8517:4;;8540;;:25;;:290;;8579:15;;8608:18;;8640:30;;8684:18;;8716:15;;8745:11;;8770:26;;8517:4;;8540:290;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3631:872:120:-;1684:16;;-1:-1:-1;;;;;1684:16:120;1670:10;:30;1649:153;;;;-1:-1:-1;;;1649:153:120;;39073:2:186;1649:153:120;;;39055:21:186;39112:2;39092:18;;;39085:30;39151:34;39131:18;;;39124:62;39222:34;39202:18;;;39195:62;-1:-1:-1;;;39273:19:186;;;39266:43;39326:19;;1649:153:120;38871:480:186;1649:153:120;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:120::1;;4070:10;4090:4;4097:18;;4116:1;4097:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;4029:97:::0;;-1:-1:-1;;;;;;4029:97:120::1;::::0;;;;;;-1:-1:-1;;;;;40369:15:186;;;4029:97:120::1;::::0;::::1;40351:34:186::0;40421:15;;;;40401:18;;;40394:43;4097:28:120::1;;40453:18:186::0;;;40446:34;40286:18;;4029:97:120::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:120;;4222:4:::1;4176:82;::::0;::::1;34900:34:186::0;-1:-1:-1;;;;;4237:19:120::1;34970:15:186::0;;34950:18;;;34943:43;4176:37:120;;;::::1;::::0;::::1;::::0;34835:18:186;;4176:82:120::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4140:118;;4272:18;;4291:1;4272:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4272:35:120::1;;4333:19;4386:9;4355:18;;4374:1;4355:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;;;:40;;;;:::i;:::-;4272:137;::::0;-1:-1:-1;;;;;;4272:137:120::1;::::0;;;;;;-1:-1:-1;;;;;40683:32:186;;;4272:137:120::1;::::0;::::1;40665:51:186::0;40732:18;;;40725:34;40638:18;;4272:137:120::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3866:554;3861:3;;;;:::i;:::-;;;3810:610;;;-1:-1:-1::0;4430:66:120::1;::::0;-1:-1:-1;;;4430:66:120;;-1:-1:-1;;;;;4430:19:120::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:135:-;-1:-1:-1;;;;;;;;;;;;;;;;;7184:23:135;;:::i;:::-;7228:3;;7217:14;;:8;7252:3;;;;7241:8;;;:14;7265:8;;;;:12;;;-1:-1:-1;;7452:1:135;7446:4;7217:14;7436:1;7429:4;7422:5;7418:16;7407:53;7396:64;-1:-1:-1;7396:64:135;7557:48;;;;7530:75;;7557:48;7582:9;7530:75;;7632:7;7624:33;;;;-1:-1:-1;;;7624:33:135;;43919:2:186;7624:33:135;;;43901:21:186;43958:2;43938:18;;;43931:30;-1:-1:-1;;;43977:18:186;;;43970:43;44030:18;;7624:33:135;43717:337:186;7624:33:135;7174:490;;7084:580;;;;:::o;4823:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4926:23:135;;:::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:135;5219:4;4959:15;5209:1;5202:4;5195:5;5191:16;5180:53;5169:64;-1:-1:-1;5169:64:135;5330:48;;;;5303:75;5406:7;5398:33;;;;-1:-1:-1;;;5398:33:135;;44261:2:186;5398:33:135;;;44243:21:186;44300:2;44280:18;;;44273:30;-1:-1:-1;;;44319:18:186;;;44312:43;44372:18;;5398:33:135;44059:337:186;4070:128:135;4119:14;;:::i;:::-;-1:-1:-1;4152:39:135;;;;;;;;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:135;;;11185:24;-1:-1:-1;;;;;;;;;;;11193:2:135;11185:24;:::i;:::-;11173:36;;11220:239;11259:13;11270:1;11259:10;:13::i;:::-;11247:25;;-1:-1:-1;11247:25:135;-1:-1:-1;;;;;;;;;;;;11336:1:135;11333;11326:24;11318:4;:32;11314:92;;;11378:13;;;;;;;;;;;;;;;;;;;;11044:451;-1:-1:-1;;;11044:451:135:o;11314:92::-;-1:-1:-1;;;;;;;;;;;11434:1:135;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:135;;;;:::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:135;;-1:-1:-1;;;;;;;;;;9189:1112:135:o;5465:1257:136:-;5532:12;5650:15;5728:23;5764:20;5777:6;5764:12;:20::i;:::-;5754:31;;-1:-1:-1;;;;;5754:31:136;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5754:31:136;;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:136;;;:21;6335:344;;6524:1;6511:16;;6486:10;6497;6486:22;;;;;;;;:::i;:::-;;;;:41;-1:-1:-1;;;;;6486:41:136;;;;;;;;;6650:12;;;;;6335:344;6155:3;;;:::i;:::-;;;6088:601;;1599:130:42;1513:6;;-1:-1:-1;;;;;1513:6:42;929:10:51;1662:23:42;1654:68;;;;-1:-1:-1;;;1654:68:42;;44603:2:186;1654:68:42;;;44585:21:186;;;44622:18;;;44615:30;44681:34;44661:18;;;44654:62;44733:18;;1654:68:42;44401:356:186;5740:200:120;5847:16;;5823:62;;;-1:-1:-1;;;;;5847:16:120;;;34900:34:186;;34970:15;;;34965:2;34950:18;;34943:43;5823:62:120;;34835:18:186;5823:62:120;;;;;;;5895:16;:38;;-1:-1:-1;;;;;;5895:38:120;-1:-1:-1;;;;;5895:38:120;;;;;;;;;;5740:200::o;15634:148:114:-;15699:20;:28;;-1:-1:-1;;15699:28:114;;;;;;;;;;15742:33;;3185:41:186;;;15742:33:114;;3173:2:186;3158:18;15742:33:114;;;;;;;15634:148;:::o;3308:360:136:-;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:136;;44964:2:186;3510:127:136;;;44946:21:186;45003:2;44983:18;;;44976:30;45042:34;45022:18;;;45015:62;45113:33;45093:18;;;45086:61;45164:19;;3510:127:136;44762:427:186;3510:127:136;3655:6;-1:-1:-1;3308:360:136;;;;;:::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:135;-1:-1:-1;;;;;;;;;;;;;;;;;5824:4:135;5820:1;:8;;;5812:37;;;;-1:-1:-1;;;5812:37:135;;45598:2:186;5812:37:135;;;45580:21:186;45637:2;45617:18;;;45610:30;-1:-1:-1;;;45656:18:186;;;45649:46;45712:18;;5812:37:135;45396:340:186;5812:37:135;5893:1;:6;;5898:1;5893:6;5890:44;;;-1:-1:-1;5922:1:135;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:135;6771:1;6765:7;;;;;6790:3;6337:481;;;-1:-1:-1;6885:3:135;;5698:1197;-1:-1:-1;;;;;5698:1197:135:o;4461:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4600:3:135;;:8;:20;;;;-1:-1:-1;4612:3:135;;;;:8;4600:20;4596:154;;;-1:-1:-1;;4643:13:135;;;;;;;;;-1:-1:-1;4643:13:135;;;;;;;;4461:295::o;4596:154::-;4694:45;;;;;;;;4702:1;:3;;;4694:45;;;;-1:-1:-1;;;;;;;;;;;4721:1:135;:3;;;:16;;;;:::i;:::-;4707:31;;-1:-1:-1;;;;;;;;;;;4707:31:135;:::i;:::-;4694:45;;4687:52;4461:295;-1:-1:-1;;4461:295:135:o;4596:154::-;4461:295;;;:::o;2673:187:42:-;2765:6;;;-1:-1:-1;;;;;2781:17:42;;;-1:-1:-1;;;;;;2781:17:42;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2311:238:120:-;4910:13:46;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:46;;45943:2:186;4902:69:46;;;45925:21:186;45982:2;45962:18;;;45955:30;46021:34;46001:18;;;45994:62;-1:-1:-1;;;46072:18:186;;;46065:41;46123:19;;4902:69:46;45741:407:186;4902:69:46;2461:32:120::1;2480:12;2461:18;:32::i;:::-;2503:39;2524:17;2503:20;:39::i;1997:1172:27:-:0;2136:7;2191:2;2176:5;:12;:17;;;;:::i;:::-;:22;2155:144;;;;-1:-1:-1;;;2155:144:27;;46355:2:186;2155:144:27;;;46337:21:186;46394:2;46374:18;;;46367:30;46433:34;46413:18;;;46406:62;46504:34;46484:18;;;46477:62;-1:-1:-1;;;46555:19:186;;;46548:42;46607:19;;2155:144:27;46153:479:186;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:135;11670:7;;;-1:-1:-1;;;;;;;;;;;11801:1:135;-1:-1:-1;;;;;;;;;;;11785:1:135;-1:-1:-1;;;;;;;;;;;11769:1:135;11766;11759:24;11752:47;11745:70;11730:85;;11912:9;11924:91;11931:4;11937:65;-1:-1:-1;;;;;;;;;;;11924:6:135;:91::i;:::-;12034:4;;11912:103;;-1:-1:-1;11616:433:135;;-1:-1:-1;;;11616:433:135:o;1188:1693:136:-;1278:7;571:3;1409:17;:24;:49;;1401:142;;;;-1:-1:-1;;;1401:142:136;;46839:2:186;1401:142:136;;;46821:21:186;46878:2;46858:18;;;46851:30;;;46917:34;46897:18;;;46890:62;46988:34;46968:18;;;46961:62;-1:-1:-1;;;47039:19:186;;;47032:35;47084:19;;1401:142:136;46637:472:186;1401:142:136;1619:24;;1615:77;;-1:-1:-1;1679:1:136;;1188:1693;-1:-1:-1;1188:1693:136: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:136;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:136;;;2657:100;;;;-1:-1:-1;;;2657:100:136;;47316:2:186;2657:100:136;;;47298:21:186;47355:2;47335:18;;;47328:30;47394:34;47374:18;;;47367:62;47465:34;47445:18;;;47438:62;-1:-1:-1;;;47516:19:186;;;47509:38;47564:19;;2657:100:136;47114:475:186;2657:100:136;2824:16;;;;2334:3;;;:::i;:::-;;;2284:568;;;-1:-1:-1;2868:6:136;;1188:1693;-1:-1:-1;;;1188:1693:136:o;12055:874:135:-;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:135;12783:48;;;;12756:75;12858:7;12850:46;;;;-1:-1:-1;;;12850:46:135;;47796:2:186;12850:46:135;;;47778:21:186;47835:2;47815:18;;;47808:30;47874:28;47854:18;;;47847:56;47920:18;;12850:46:135;47594:350:186;12850:46:135;-1:-1:-1;12913:9:135;;;-1:-1:-1;;;;;12055:874:135:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:185:186:-;82:20;;-1:-1:-1;;;;;;131:43:186;;121:54;;111:82;;189:1;186;179:12;204:127;265:10;260:3;256:20;253:1;246:31;296:4;293:1;286:15;320:4;317:1;310:15;336:257;408:4;402:11;;;440:17;;-1:-1:-1;;;;;472:34:186;;508:22;;;469:62;466:88;;;534:18;;:::i;:::-;570:4;563:24;336:257;:::o;854:255::-;926:2;920:9;968:6;956:19;;-1:-1:-1;;;;;990:34:186;;1026:22;;;987:62;984:88;;;1052:18;;:::i;1114:275::-;1185:2;1179:9;1250:2;1231:13;;-1:-1:-1;;1227:27:186;1215:40;;-1:-1:-1;;;;;1270:34:186;;1306:22;;;1267:62;1264:88;;;1332:18;;:::i;:::-;1368:2;1361:22;1114:275;;-1:-1:-1;1114:275:186:o;1394:406::-;1458:5;-1:-1:-1;;;;;1484:6:186;1481:30;1478:56;;;1514:18;;:::i;:::-;1552:57;1597:2;1576:15;;-1:-1:-1;;1572:29:186;1603:4;1568:40;1552:57;:::i;:::-;1543:66;;1632:6;1625:5;1618:21;1672:3;1663:6;1658:3;1654:16;1651:25;1648:45;;;1689:1;1686;1679:12;1648:45;1738:6;1733:3;1726:4;1719:5;1715:16;1702:43;1792:1;1785:4;1776:6;1769:5;1765:18;1761:29;1754:40;1394:406;;;;;:::o;1805:220::-;1847:5;1900:3;1893:4;1885:6;1881:17;1877:27;1867:55;;1918:1;1915;1908:12;1867:55;1940:79;2015:3;2006:6;1993:20;1986:4;1978:6;1974:17;1940:79;:::i;:::-;1931:88;1805:220;-1:-1:-1;;;1805:220:186:o;2030:131::-;-1:-1:-1;;;;;2105:31:186;;2095:42;;2085:70;;2151:1;2148;2141:12;2166:874;2297:6;2305;2313;2321;2329;2337;2345;2353;2406:3;2394:9;2385:7;2381:23;2377:33;2374:53;;;2423:1;2420;2413:12;2374:53;2459:9;2446:23;2436:33;;2516:2;2505:9;2501:18;2488:32;2478:42;;2567:2;2556:9;2552:18;2539:32;2529:42;;2590:38;2624:2;2613:9;2609:18;2590:38;:::i;:::-;2580:48;;2675:3;2664:9;2660:19;2647:33;2637:43;;2731:3;2720:9;2716:19;2703:33;-1:-1:-1;;;;;2751:6:186;2748:30;2745:50;;;2791:1;2788;2781:12;2745:50;2814:49;2855:7;2846:6;2835:9;2831:22;2814:49;:::i;:::-;2804:59;;;2910:3;2899:9;2895:19;2882:33;2872:43;;2965:3;2954:9;2950:19;2937:33;2979:31;3004:5;2979:31;:::i;:::-;3029:5;3019:15;;;2166:874;;;;;;;;;;;:::o;3237:282::-;3291:5;3339:4;3327:9;3322:3;3318:19;3314:30;3311:50;;;3357:1;3354;3347:12;3311:50;3379:22;;:::i;:::-;3370:31;;3437:9;3424:23;3417:5;3410:38;3508:2;3497:9;3493:18;3480:32;3475:2;3468:5;3464:14;3457:56;3237:282;;;;:::o;3524:484::-;3574:5;3627:3;3620:4;3612:6;3608:17;3604:27;3594:55;;3645:1;3642;3635:12;3594:55;3669:22;;:::i;:::-;3713:3;3751:2;3743:6;3739:15;3777:3;3769:6;3766:15;3763:35;;;3794:1;3791;3784:12;3763:35;3818:6;3833:146;3849:6;3844:3;3841:15;3833:146;;;3917:17;;3905:30;;3964:4;3955:14;;;;3866;3833:146;;;-1:-1:-1;3997:5:186;;3524:484;-1:-1:-1;;;;;3524:484:186:o;4013:320::-;4067:5;4115:4;4103:9;4098:3;4094:19;4090:30;4087:50;;;4133:1;4130;4123:12;4087:50;4155:22;;:::i;:::-;4146:31;;4200:40;4236:3;4225:9;4200:40;:::i;:::-;4193:5;4186:55;4275:51;4322:3;4315:4;4304:9;4300:20;4275:51;:::i;:::-;4268:4;4261:5;4257:16;4250:77;4013:320;;;;:::o;4338:530::-;4502:6;4510;4518;4526;4579:3;4567:9;4558:7;4554:23;4550:33;4547:53;;;4596:1;4593;4586:12;4547:53;4632:9;4619:23;4609:33;;4661:54;4707:7;4702:2;4691:9;4687:18;4661:54;:::i;:::-;4651:64;;4734:54;4780:7;4775:2;4764:9;4760:18;4734:54;:::i;:::-;4724:64;;4807:55;4854:7;4848:3;4837:9;4833:19;4807:55;:::i;:::-;4797:65;;4338:530;;;;;;;:::o;5146:180::-;5205:6;5258:2;5246:9;5237:7;5233:23;5229:32;5226:52;;;5274:1;5271;5264:12;5226:52;-1:-1:-1;5297:23:186;;5146:180;-1:-1:-1;5146:180:186:o;5331:247::-;5390:6;5443:2;5431:9;5422:7;5418:23;5414:32;5411:52;;;5459:1;5456;5449:12;5411:52;5498:9;5485:23;5517:31;5542:5;5517:31;:::i;5583:658::-;5754:2;5806:21;;;5876:13;;5779:18;;;5898:22;;;5725:4;;5754:2;5977:15;;;;5951:2;5936:18;;;5725:4;6020:195;6034:6;6031:1;6028:13;6020:195;;;6099:13;;-1:-1:-1;;;;;6095:39:186;6083:52;;6190:15;;;;6155:12;;;;6131:1;6049:9;6020:195;;;-1:-1:-1;6232:3:186;;5583:658;-1:-1:-1;;;;;;5583:658:186:o;6246:118::-;6332:5;6325:13;6318:21;6311:5;6308:32;6298:60;;6354:1;6351;6344:12;6369:241;6425:6;6478:2;6466:9;6457:7;6453:23;6449:32;6446:52;;;6494:1;6491;6484:12;6446:52;6533:9;6520:23;6552:28;6574:5;6552:28;:::i;6823:163::-;6890:20;;6950:10;6939:22;;6929:33;;6919:61;;6976:1;6973;6966:12;6991:182;7050:4;-1:-1:-1;;;;;7075:6:186;7072:30;7069:56;;;7105:18;;:::i;:::-;-1:-1:-1;7150:1:186;7146:14;7162:4;7142:25;;6991:182::o;7178:665::-;7231:5;7284:3;7277:4;7269:6;7265:17;7261:27;7251:55;;7302:1;7299;7292:12;7251:55;7338:6;7325:20;7364:4;7388:59;7404:42;7443:2;7404:42;:::i;:::-;7388:59;:::i;:::-;7481:15;;;7567:1;7563:10;;;;7551:23;;7547:32;;;7512:12;;;;7591:15;;;7588:35;;;7619:1;7616;7609:12;7588:35;7655:2;7647:6;7643:15;7667:147;7683:6;7678:3;7675:15;7667:147;;;7749:22;7767:3;7749:22;:::i;:::-;7737:35;;7792:12;;;;7700;;7667:147;;;-1:-1:-1;7832:5:186;7178:665;-1:-1:-1;;;;;;7178:665:186:o;7848:688::-;7909:5;7962:3;7955:4;7947:6;7943:17;7939:27;7929:55;;7980:1;7977;7970:12;7929:55;8016:6;8003:20;8042:4;8066:59;8082:42;8121:2;8082:42;:::i;8066:59::-;8159:15;;;8245:1;8241:10;;;;8229:23;;8225:32;;;8190:12;;;;8269:15;;;8266:35;;;8297:1;8294;8287:12;8266:35;8333:2;8325:6;8321:15;8345:162;8361:6;8356:3;8353:15;8345:162;;;8429:35;8460:3;8455;8429:35;:::i;:::-;8417:48;;8485:12;;;;8387:4;8378:14;8345:162;;8541:907;8604:5;8657:3;8650:4;8642:6;8638:17;8634:27;8624:55;;8675:1;8672;8665:12;8624:55;8711:6;8698:20;8737:4;8761:59;8777:42;8816:2;8777:42;:::i;8761:59::-;8854:15;;;8940:1;8936:10;;;;8924:23;;8920:32;;;8885:12;;;;8964:15;;;8961:35;;;8992:1;8989;8982:12;8961:35;9028:2;9020:6;9016:15;9040:379;9056:6;9051:3;9048:15;9040:379;;;9142:3;9129:17;-1:-1:-1;;;;;9165:11:186;9162:35;9159:125;;;9238:1;9267:2;9263;9256:14;9159:125;9309:67;9372:3;9367:2;9353:11;9345:6;9341:24;9337:33;9309:67;:::i;:::-;9297:80;;-1:-1:-1;9397:12:186;;;;9073;;9040:379;;9453:1566;9527:5;9575:6;9563:9;9558:3;9554:19;9550:32;9547:52;;;9595:1;9592;9585:12;9547:52;9617:22;;:::i;:::-;9608:31;;9675:9;9662:23;-1:-1:-1;;;;;9745:2:186;9737:6;9734:14;9731:34;;;9761:1;9758;9751:12;9731:34;9788:56;9840:3;9831:6;9820:9;9816:22;9788:56;:::i;:::-;9781:5;9774:71;9898:2;9887:9;9883:18;9870:32;9854:48;;9927:2;9917:8;9914:16;9911:36;;;9943:1;9940;9933:12;9911:36;9979:66;10041:3;10030:8;10019:9;10015:24;9979:66;:::i;:::-;9974:2;9967:5;9963:14;9956:90;10099:2;10088:9;10084:18;10071:32;10055:48;;10128:2;10118:8;10115:16;10112:36;;;10144:1;10141;10134:12;10112:36;10180:66;10242:3;10231:8;10220:9;10216:24;10180:66;:::i;:::-;10175:2;10168:5;10164:14;10157:90;10279:50;10325:3;10320:2;10309:9;10305:18;10279:50;:::i;:::-;10274:2;10267:5;10263:14;10256:74;10364:51;10411:3;10405;10394:9;10390:19;10364:51;:::i;:::-;10357:4;10350:5;10346:16;10339:77;10469:3;10458:9;10454:19;10441:33;10425:49;;10499:2;10489:8;10486:16;10483:36;;;10515:1;10512;10505:12;10483:36;10553:58;10607:3;10596:8;10585:9;10581:24;10553:58;:::i;:::-;10546:4;10539:5;10535:16;10528:84;10665:3;10654:9;10650:19;10637:33;10621:49;;10695:2;10685:8;10682:16;10679:36;;;10711:1;10708;10701:12;10679:36;10749:58;10803:3;10792:8;10781:9;10777:24;10749:58;:::i;:::-;10742:4;10735:5;10731:16;10724:84;10861:3;10850:9;10846:19;10833:33;10817:49;;10891:2;10881:8;10878:16;10875:36;;;10907:1;10904;10897:12;10875:36;;10944:68;11008:3;10997:8;10986:9;10982:24;10944:68;:::i;:::-;10938:3;10931:5;10927:15;10920:93;;9453:1566;;;;:::o;11024:526::-;11146:6;11154;11162;11215:2;11203:9;11194:7;11190:23;11186:32;11183:52;;;11231:1;11228;11221:12;11183:52;11267:9;11254:23;11244:33;;11296:37;11329:2;11318:9;11314:18;11296:37;:::i;:::-;11286:47;;11384:2;11373:9;11369:18;11356:32;-1:-1:-1;;;;;11403:6:186;11400:30;11397:50;;;11443:1;11440;11433:12;11397:50;11466:78;11536:7;11527:6;11516:9;11512:22;11466:78;:::i;:::-;11456:88;;;11024:526;;;;;:::o;11555:467::-;11607:3;11645:5;11639:12;11672:6;11667:3;11660:19;11698:4;11727:2;11722:3;11718:12;11711:19;;11764:2;11757:5;11753:14;11785:1;11795:202;11809:6;11806:1;11803:13;11795:202;;;11874:13;;-1:-1:-1;;;;;11870:46:186;11858:59;;11937:12;;;;11972:15;;;;11831:1;11824:9;11795:202;;;-1:-1:-1;12013:3:186;;11555:467;-1:-1:-1;;;;;11555:467:186:o;12027:645::-;12256:2;12245:9;12238:21;12219:4;12294:6;12288:13;12337:2;12332;12321:9;12317:18;12310:30;12363:62;12420:3;12409:9;12405:19;12391:12;12363:62;:::i;:::-;12349:76;;12474:4;12466:6;12462:17;12456:24;12548:2;12544:7;12532:9;12524:6;12520:22;12516:36;12511:2;12500:9;12496:18;12489:64;12570:51;12614:6;12598:14;12570:51;:::i;:::-;12562:59;;;;12659:6;12652:4;12641:9;12637:20;12630:36;12027:645;;;;;:::o;13688:347::-;13739:8;13749:6;13803:3;13796:4;13788:6;13784:17;13780:27;13770:55;;13821:1;13818;13811:12;13770:55;-1:-1:-1;13844:20:186;;-1:-1:-1;;;;;13876:30:186;;13873:50;;;13919:1;13916;13909:12;13873:50;13956:4;13948:6;13944:17;13932:29;;14008:3;14001:4;13992:6;13984;13980:19;13976:30;13973:39;13970:59;;;14025:1;14022;14015:12;13970:59;13688:347;;;;;:::o;14040:477::-;14119:6;14127;14135;14188:2;14176:9;14167:7;14163:23;14159:32;14156:52;;;14204:1;14201;14194:12;14156:52;14244:9;14231:23;-1:-1:-1;;;;;14269:6:186;14266:30;14263:50;;;14309:1;14306;14299:12;14263:50;14348:58;14398:7;14389:6;14378:9;14374:22;14348:58;:::i;:::-;14425:8;;14322:84;;-1:-1:-1;14507:2:186;14492:18;;;;14479:32;;14040:477;-1:-1:-1;;;;14040:477:186:o;14522:1026::-;14634:6;14642;14695:2;14683:9;14674:7;14670:23;14666:32;14663:52;;;14711:1;14708;14701:12;14663:52;14750:9;14737:23;14769:31;14794:5;14769:31;:::i;:::-;14819:5;-1:-1:-1;14875:2:186;14860:18;;14847:32;-1:-1:-1;;;;;14928:14:186;;;14925:34;;;14955:1;14952;14945:12;14925:34;14978:22;;;;15034:4;15016:16;;;15012:27;15009:47;;;15052:1;15049;15042:12;15009:47;15085:2;15079:9;15127:4;15119:6;15115:17;15182:6;15170:10;15167:22;15162:2;15150:10;15147:18;15144:46;15141:72;;;15193:18;;:::i;:::-;15229:2;15222:22;15269:16;;15297;;;15294:36;;;15326:1;15323;15316:12;15294:36;15354:44;15390:7;15379:8;15375:2;15371:17;15354:44;:::i;:::-;15346:6;15339:60;;15453:2;15449;15445:11;15432:25;15427:2;15419:6;15415:15;15408:50;15512:2;15508;15504:11;15491:25;15486:2;15478:6;15474:15;15467:50;15536:6;15526:16;;;;;14522:1026;;;;;:::o;15553:450::-;15622:6;15675:2;15663:9;15654:7;15650:23;15646:32;15643:52;;;15691:1;15688;15681:12;15643:52;15731:9;15718:23;-1:-1:-1;;;;;15756:6:186;15753:30;15750:50;;;15796:1;15793;15786:12;15750:50;15819:22;;15872:4;15864:13;;15860:27;-1:-1:-1;15850:55:186;;15901:1;15898;15891:12;15850:55;15924:73;15989:7;15984:2;15971:16;15966:2;15962;15958:11;15924:73;:::i;:::-;15914:83;15553:450;-1:-1:-1;;;;15553:450:186:o;16008:589::-;16131:6;16139;16147;16200:2;16188:9;16179:7;16175:23;16171:32;16168:52;;;16216:1;16213;16206:12;16168:52;16252:9;16239:23;16229:33;;16312:2;16301:9;16297:18;16284:32;16325:31;16350:5;16325:31;:::i;17235:529::-;17312:6;17320;17328;17381:2;17369:9;17360:7;17356:23;17352:32;17349:52;;;17397:1;17394;17387:12;17349:52;17436:9;17423:23;17455:31;17480:5;17455:31;:::i;:::-;17505:5;-1:-1:-1;17562:2:186;17547:18;;17534:32;17575:33;17534:32;17575:33;:::i;:::-;17627:7;-1:-1:-1;17686:2:186;17671:18;;17658:32;17699:33;17658:32;17699:33;:::i;:::-;17751:7;17741:17;;;17235:529;;;;;:::o;17769:546::-;17858:6;17866;17874;17882;17935:2;17923:9;17914:7;17910:23;17906:32;17903:52;;;17951:1;17948;17941:12;17903:52;17987:9;17974:23;17964:33;;18048:2;18037:9;18033:18;18020:32;-1:-1:-1;;;;;18067:6:186;18064:30;18061:50;;;18107:1;18104;18097:12;18061:50;18146:58;18196:7;18187:6;18176:9;18172:22;18146:58;:::i;:::-;17769:546;;18223:8;;-1:-1:-1;18120:84:186;;18305:2;18290:18;18277:32;;17769:546;-1:-1:-1;;;;17769:546:186:o;18555:738::-;18677:6;18685;18693;18701;18709;18717;18725;18778:3;18766:9;18757:7;18753:23;18749:33;18746:53;;;18795:1;18792;18785:12;18746:53;18831:9;18818:23;18808:33;;18888:2;18877:9;18873:18;18860:32;18850:42;;18939:2;18928:9;18924:18;18911:32;18901:42;;18962:38;18996:2;18985:9;18981:18;18962:38;:::i;:::-;18952:48;;19047:3;19036:9;19032:19;19019:33;19009:43;;19103:3;19092:9;19088:19;19075:33;-1:-1:-1;;;;;19123:6:186;19120:30;19117:50;;;19163:1;19160;19153:12;19117:50;19186:49;19227:7;19218:6;19207:9;19203:22;19186:49;:::i;:::-;19176:59;;;19282:3;19271:9;19267:19;19254:33;19244:43;;18555:738;;;;;;;;;;:::o;19298:652::-;19421:6;19429;19482:2;19470:9;19461:7;19457:23;19453:32;19450:52;;;19498:1;19495;19488:12;19450:52;19538:9;19525:23;-1:-1:-1;;;;;19608:2:186;19600:6;19597:14;19594:34;;;19624:1;19621;19614:12;19594:34;19662:6;19651:9;19647:22;19637:32;;19707:7;19700:4;19696:2;19692:13;19688:27;19678:55;;19729:1;19726;19719:12;19678:55;19769:2;19756:16;19795:2;19787:6;19784:14;19781:34;;;19811:1;19808;19801:12;19781:34;19864:7;19859:2;19849:6;19846:1;19842:14;19838:2;19834:23;19830:32;19827:45;19824:65;;;19885:1;19882;19875:12;19824:65;19916:2;19908:11;;;;;19938:6;;-1:-1:-1;19298:652:186;;-1:-1:-1;;;;19298:652:186:o;19955:127::-;20016:10;20011:3;20007:20;20004:1;19997:31;20047:4;20044:1;20037:15;20071:4;20068:1;20061:15;20087:128;20127:3;20158:1;20154:6;20151:1;20148:13;20145:39;;;20164:18;;:::i;:::-;-1:-1:-1;20200:9:186;;20087:128::o;20220:294::-;20377:19;;;20434:2;20430:15;-1:-1:-1;;;;;;20426:53:186;20421:2;20412:12;;20405:75;20505:2;20496:12;;20220:294::o;20940:127::-;21001:10;20996:3;20992:20;20989:1;20982:31;21032:4;21029:1;21022:15;21056:4;21053:1;21046:15;21917:209;21949:1;21975;21965:132;;22019:10;22014:3;22010:20;22007:1;22000:31;22054:4;22051:1;22044:15;22082:4;22079:1;22072:15;21965:132;-1:-1:-1;22111:9:186;;21917:209::o;22481:125::-;22521:4;22549:1;22546;22543:8;22540:34;;;22554:18;;:::i;:::-;-1:-1:-1;22591:9:186;;22481:125::o;22611:184::-;22681:6;22734:2;22722:9;22713:7;22709:23;22705:32;22702:52;;;22750:1;22747;22740:12;22702:52;-1:-1:-1;22773:16:186;;22611:184;-1:-1:-1;22611:184:186:o;22982:290::-;23052:6;23105:2;23093:9;23084:7;23080:23;23076:32;23073:52;;;23121:1;23118;23111:12;23073:52;23147:16;;-1:-1:-1;;;;;23192:31:186;;23182:42;;23172:70;;23238:1;23235;23228:12;23277:273;23345:6;23398:2;23386:9;23377:7;23373:23;23369:32;23366:52;;;23414:1;23411;23404:12;23366:52;23446:9;23440:16;23496:4;23489:5;23485:16;23478:5;23475:27;23465:55;;23516:1;23513;23506:12;23933:135;23972:3;-1:-1:-1;;23993:17:186;;23990:43;;;24013:18;;:::i;:::-;-1:-1:-1;24060:1:186;24049:13;;23933:135::o;24333:137::-;-1:-1:-1;;;;;24411:5:186;24407:38;24400:5;24397:49;24387:77;;24460:1;24457;24450:12;24475:493;24578:6;24631:2;24619:9;24610:7;24606:23;24602:32;24599:52;;;24647:1;24644;24637:12;24599:52;24673:22;;:::i;:::-;24725:9;24719:16;24744:33;24769:7;24744:33;:::i;:::-;24786:22;;24853:2;24838:18;;24832:25;24866:32;24832:25;24866:32;:::i;:::-;24925:2;24914:14;;24907:31;24918:5;24475:493;-1:-1:-1;;;24475:493:186:o;24973:251::-;25043:6;25096:2;25084:9;25075:7;25071:23;25067:32;25064:52;;;25112:1;25109;25102:12;25064:52;25144:9;25138:16;25163:31;25188:5;25163:31;:::i;28838:294::-;28908:6;28961:2;28949:9;28940:7;28936:23;28932:32;28929:52;;;28977:1;28974;28967:12;28929:52;29003:16;;-1:-1:-1;;29048:35:186;;29038:46;;29028:74;;29098:1;29095;29088:12;29683:249;29752:6;29805:2;29793:9;29784:7;29780:23;29776:32;29773:52;;;29821:1;29818;29811:12;29773:52;29853:9;29847:16;29872:30;29896:5;29872:30;:::i;30384:237::-;30423:4;-1:-1:-1;;;;;30528:10:186;;;;30498;;30550:12;;;30547:38;;;30565:18;;:::i;:::-;30602:13;;30384:237;-1:-1:-1;;;30384:237:186:o;31528:644::-;31776:10;31771:3;31767:20;31758:6;31753:3;31749:16;31745:43;31740:3;31733:56;31715:3;31820:1;31815:3;31811:11;31851:6;31845:13;31900:4;31939:2;31931:6;31927:15;31960:1;31970:175;31984:6;31981:1;31978:13;31970:175;;;32047:13;;32033:28;;32083:14;;;;32120:15;;;;32006:1;31999:9;31970:175;;;-1:-1:-1;32161:5:186;;31528:644;-1:-1:-1;;;;;;;31528:644:186:o;32177:410::-;32379:2;32361:21;;;32418:2;32398:18;;;32391:30;32457:34;32452:2;32437:18;;32430:62;-1:-1:-1;;;32523:2:186;32508:18;;32501:44;32577:3;32562:19;;32177:410::o;32592:271::-;32775:6;32767;32762:3;32749:33;32731:3;32801:16;;32826:13;;;32801:16;32592:271;-1:-1:-1;32592:271:186:o;32868:486::-;33070:2;33052:21;;;33109:2;33089:18;;;33082:30;33148:34;33143:2;33128:18;;33121:62;33219:34;33214:2;33199:18;;33192:62;-1:-1:-1;;;33285:3:186;33270:19;;33263:49;33344:3;33329:19;;32868:486::o;33359:471::-;33400:3;33438:5;33432:12;33465:6;33460:3;33453:19;33490:1;33500:162;33514:6;33511:1;33508:13;33500:162;;;33576:4;33632:13;;;33628:22;;33622:29;33604:11;;;33600:20;;33593:59;33529:12;33500:162;;;33680:6;33677:1;33674:13;33671:87;;;33746:1;33739:4;33730:6;33725:3;33721:16;33717:27;33710:38;33671:87;-1:-1:-1;33812:2:186;33791:15;-1:-1:-1;;33787:29:186;33778:39;;;;33819:4;33774:50;;33359:471;-1:-1:-1;;33359:471:186:o;33835:624::-;34109:1;34105;34100:3;34096:11;34092:19;34084:6;34080:32;34069:9;34062:51;34149:2;34144;34133:9;34129:18;34122:30;34043:4;34187:6;34181:13;34230:4;34225:2;34214:9;34210:18;34203:32;34258:51;34304:3;34293:9;34289:19;34275:12;34258:51;:::i;:::-;34244:65;;34365:2;34357:6;34353:15;34347:22;34340:4;34329:9;34325:20;34318:52;34425:2;34417:6;34413:15;34407:22;34401:3;34390:9;34386:19;34379:51;34447:6;34439:14;;;33835:624;;;;;:::o;34464:219::-;34613:2;34602:9;34595:21;34576:4;34633:44;34673:2;34662:9;34658:18;34650:6;34633:44;:::i;34997:278::-;35036:7;-1:-1:-1;;;;;35121:2:186;35118:1;35114:10;35151:2;35148:1;35144:10;35207:3;35203:2;35199:12;35194:3;35191:21;35184:3;35177:11;35170:19;35166:47;35163:73;;;35216:18;;:::i;:::-;35256:13;;34997:278;-1:-1:-1;;;;34997:278:186:o;35280:168::-;35320:7;35386:1;35382;35378:6;35374:14;35371:1;35368:21;35363:1;35356:9;35349:17;35345:45;35342:71;;;35393:18;;:::i;:::-;-1:-1:-1;35433:9:186;;35280:168::o;36190:267::-;36279:6;36274:3;36267:19;36331:6;36324:5;36317:4;36312:3;36308:14;36295:43;-1:-1:-1;36383:1:186;36358:16;;;36376:4;36354:27;;;36347:38;;;;36439:2;36418:15;;;-1:-1:-1;;36414:29:186;36405:39;;;36401:50;;36190:267::o;36462:430::-;-1:-1:-1;;;;;36675:32:186;;36657:51;;36756:10;36744:23;;36739:2;36724:18;;36717:51;36804:2;36799;36784:18;;36777:30;;;-1:-1:-1;;36824:62:186;;36867:18;;36859:6;36851;36824:62;:::i;:::-;36816:70;36462:430;-1:-1:-1;;;;;;36462:430:186:o;36897:503::-;-1:-1:-1;;;;;37138:32:186;;37120:51;;37219:10;37207:23;;37202:2;37187:18;;37180:51;37267:3;37262:2;37247:18;;37240:31;;;-1:-1:-1;;37288:63:186;;37331:19;;37323:6;37315;37288:63;:::i;:::-;37280:71;;37387:6;37382:2;37371:9;37367:18;37360:34;36897:503;;;;;;;;:::o;37812:804::-;38118:4;38147:3;38177:6;38166:9;38159:25;38220:6;38215:2;38204:9;38200:18;38193:34;38263:6;38258:2;38247:9;38243:18;38236:34;-1:-1:-1;;;;;38318:31:186;38310:6;38306:44;38301:2;38290:9;38286:18;38279:72;38388:6;38382:3;38371:9;38367:19;38360:35;38432:2;38426:3;38415:9;38411:19;38404:31;38452:44;38492:2;38481:9;38477:18;38469:6;38452:44;:::i;:::-;38527:3;38512:19;;38505:35;;;;-1:-1:-1;;;;;;;38577:32:186;;;;38571:3;38556:19;;;38549:61;38444:52;37812:804;-1:-1:-1;;;;;;37812:804:186:o;38621:245::-;38688:6;38741:2;38729:9;38720:7;38716:23;38712:32;38709:52;;;38757:1;38754;38747:12;38709:52;38789:9;38783:16;38808:28;38830:5;38808:28;:::i;39356:335::-;39459:4;39517:11;39504:25;39611:3;39607:8;39596;39580:14;39576:29;39572:44;39552:18;39548:69;39538:97;;39631:1;39628;39621:12;39538:97;39652:33;;;;;39356:335;-1:-1:-1;;39356:335:186:o;39696:142::-;39772:20;;39801:31;39772:20;39801:31;:::i;40770:756::-;40900:6;40895:3;40888:19;40870:3;40926:4;40955:2;40950:3;40946:12;40939:19;;40981:5;41004:1;41014:487;41028:6;41025:1;41022:13;41014:487;;;41105:6;41092:20;41125:33;41150:7;41125:33;:::i;:::-;-1:-1:-1;;;;;41183:33:186;41171:46;;41258:15;;;41245:29;41287:32;41245:29;41287:32;:::i;:::-;-1:-1:-1;;;;;41353:40:186;41339:12;;;41332:62;41417:4;41441:12;;;;41476:15;;;;;41050:1;41043:9;41014:487;;41531:2181;41784:2;41836:21;;;41809:18;;;41892:22;;;41755:4;;41933:2;41951:18;;;42015:1;42011:14;;;41996:30;;41992:39;;42054:6;41755:4;42088:1595;42102:6;42099:1;42096:13;42088:1595;;;42167:22;;;-1:-1:-1;;42163:36:186;42151:49;;42239:20;;42314:14;42310:27;;;-1:-1:-1;;42306:42:186;42282:67;;42272:95;;42363:1;42360;42353:12;42272:95;42393:31;;42447:4;42492:19;;42568:14;42564:26;;;-1:-1:-1;;42560:40:186;42534:67;;42524:95;;42615:1;42612;42605:12;42524:95;42647:32;;42706:21;;-1:-1:-1;;;;;42743:30:186;;42740:50;;;42786:1;42783;42776:12;42740:50;42844:6;42841:1;42837:14;42821;42817:35;42810:5;42806:47;42803:67;;;42866:1;42863;42856:12;42803:67;42898:2;42890:6;42883:18;42928:110;43034:2;43026:6;43022:15;43014:6;43009:2;43000:7;42996:16;42928:110;:::i;:::-;42914:124;;;;43071:42;43109:2;43102:5;43098:14;43071:42;:::i;:::-;-1:-1:-1;;;;;12760:31:186;43176:15;;;12748:44;43242:14;;;43229:28;43212:15;;;43205:53;43281:4;43320:33;43338:14;;;43320:33;:::i;:::-;16863:10;16852:22;43400:15;;;16840:35;43439:4;43478:33;43496:14;;;43478:33;:::i;:::-;16863:10;16852:22;43558:15;;16840:35;;;;-1:-1:-1;43661:12:186;;;;43626:15;;;;42124:1;42117:9;42088:1595;;;-1:-1:-1;43700:6:186;;41531:2181;-1:-1:-1;;;;;;;;41531:2181:186:o;45194:197::-;45232:3;45260:6;45301:2;45294:5;45290:14;45328:2;45319:7;45316:15;45313:41;;;45334:18;;:::i;:::-;45383:1;45370:15;;45194:197;-1:-1:-1;;;45194:197:186:o","linkReferences":{},"immutableReferences":{"21316":[{"start":1063,"length":32},{"start":4082,"length":32},{"start":5254,"length":32},{"start":5677,"length":32},{"start":6270,"length":32}],"21319":[{"start":960,"length":32},{"start":7114,"length":32},{"start":7610,"length":32}],"21322":[{"start":908,"length":32},{"start":6621,"length":32}],"21325":[{"start":1609,"length":32},{"start":6090,"length":32}],"26155":[{"start":1009,"length":32},{"start":8636,"length":32},{"start":8848,"length":32},{"start":8975,"length":32}],"26158":[{"start":12439,"length":32},{"start":12627,"length":32},{"start":12863,"length":32}],"26161":[{"start":2862,"length":32},{"start":3005,"length":32},{"start":3133,"length":32},{"start":8552,"length":32},{"start":8756,"length":32},{"start":10726,"length":32},{"start":11142,"length":32}],"26164":[{"start":3335,"length":32},{"start":3682,"length":32},{"start":3833,"length":32},{"start":10920,"length":32},{"start":11307,"length":32},{"start":11466,"length":32}]}},"methodIdentifiers":{"alignedAggregator()":"4a5bf632","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,uint256)":"d66eaabd","delegation()":"df5cf723","depositToBatcher(address)":"4223d551","deregisterOperatorFromAVS(address)":"a364f4da","getOperatorRestakedStrategies(address)":"33cfb7b7","getRestakeableStrategies()":"e481af9d","initialize(address,address,address)":"c0c53b8b","initializeAggregator(address)":"800fb61f","owner()":"8da5cb5b","registerOperatorToAVS(address,(bytes,bytes32,uint256))":"9926ee7d","registryCoordinator()":"6d14a987","renounceOwnership()":"715018a6","respondToTaskV2(bytes32,address,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"ab21739a","rewardsInitiator()":"fc299dee","setAggregator(address)":"f9120af6","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","verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)":"06045a91","withdraw(uint256)":"2e1a7d4d"},"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\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchAlreadyResponded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchAlreadySubmitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"txCost\",\"type\":\"uint256\"}],\"name\":\"ExceededMaxRespondFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"batcher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidDepositAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"signedStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"}],\"name\":\"InvalidQuorumThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"alignedAggregator\",\"type\":\"address\"}],\"name\":\"SenderIsNotAggregator\",\"type\":\"error\"},{\"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\":\"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\":\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"name\":\"NewBatchV3\",\"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\":\"alignedAggregator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\"},{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"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\"},{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"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\":\"account\",\"type\":\"address\"}],\"name\":\"depositToBatcher\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\"},{\"internalType\":\"address\",\"name\":\"_alignedAggregator\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedAggregator\",\"type\":\"address\"}],\"name\":\"initializeAggregator\",\"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\"},{\"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\":\"_alignedAggregator\",\"type\":\"address\"}],\"name\":\"setAggregator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"},{\"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\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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/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\":\"0xdbdcd86907893d219bfa4b896607708e794873d51386932f174244379c112b1f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://01a5b146fd03e45c41cbf4dcea9241089fa3c30480d20572e5dbe9614a7b28c1\",\"dweb:/ipfs/QmR3dwvzi4B9RNBMdiGm6NoDYk13Jp7Z9jnFw9vFCWi5nj\"]},\"src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0x75a172a7fe27faa5aa0ee9b8299d825f2bc2065cdd683aec03cc68185a770b5e\",\"urls\":[\"bzz-raw://142ed88838bc15b02efa259e0514f56c280302107bc05e740257812b6668f78c\",\"dweb:/ipfs/QmU2Ec5iJEY5YRvRX3itor4JtTsghC2uxSrw7CuriSe3hG\"]},\"src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x3078c57c2b5ee2ecc402b324d3809a5aee17a0c25243f76a9e563fd184084164\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2e5b25a944279860537cb3132a44f54798045fb5834128145414967a04a37526\",\"dweb:/ipfs/QmUTRGwoVXYptZbdmFUnJ6NYBS4pJTvm4XKBwzZXHycJcx\"]}},\"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":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchAlreadyResponded"},{"inputs":[{"internalType":"bytes32","name":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchAlreadySubmitted"},{"inputs":[{"internalType":"bytes32","name":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchDoesNotExist"},{"inputs":[{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"},{"internalType":"uint256","name":"txCost","type":"uint256"}],"type":"error","name":"ExceededMaxRespondFee"},{"inputs":[{"internalType":"address","name":"batcher","type":"address"},{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"InsufficientFunds"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"InvalidDepositAmount"},{"inputs":[{"internalType":"uint256","name":"signedStake","type":"uint256"},{"internalType":"uint256","name":"requiredStake","type":"uint256"}],"type":"error","name":"InvalidQuorumThreshold"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"alignedAggregator","type":"address"}],"type":"error","name":"SenderIsNotAggregator"},{"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":"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":"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},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256","indexed":false}],"type":"event","name":"NewBatchV3","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":"alignedAggregator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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"},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"}]},{"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"},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createNewTask"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegation","outputs":[{"internalType":"contract IDelegationManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositToBatcher"},{"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"},{"internalType":"address","name":"_alignedAggregator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_alignedAggregator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initializeAggregator"},{"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":"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":"_alignedAggregator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAggregator"},{"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":[{"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"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"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/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":"0xdbdcd86907893d219bfa4b896607708e794873d51386932f174244379c112b1f","urls":["bzz-raw://01a5b146fd03e45c41cbf4dcea9241089fa3c30480d20572e5dbe9614a7b28c1","dweb:/ipfs/QmR3dwvzi4B9RNBMdiGm6NoDYk13Jp7Z9jnFw9vFCWi5nj"],"license":"UNLICENSED"},"src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0x75a172a7fe27faa5aa0ee9b8299d825f2bc2065cdd683aec03cc68185a770b5e","urls":["bzz-raw://142ed88838bc15b02efa259e0514f56c280302107bc05e740257812b6668f78c","dweb:/ipfs/QmU2Ec5iJEY5YRvRX3itor4JtTsghC2uxSrw7CuriSe3hG"],"license":null},"src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x3078c57c2b5ee2ecc402b324d3809a5aee17a0c25243f76a9e563fd184084164","urls":["bzz-raw://2e5b25a944279860537cb3132a44f54798045fb5834128145414967a04a37526","dweb:/ipfs/QmUTRGwoVXYptZbdmFUnJ6NYBS4pJTvm4XKBwzZXHycJcx"],"license":"UNLICENSED"}},"version":1},"id":180} diff --git a/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex b/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex index 8877a05b9..d35e0b1fe 100644 --- a/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex +++ b/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex @@ -60,9 +60,14 @@ defmodule AlignedLayerServiceManager do |> Ethers.get_logs(fromBlock: fromBlock, toBlock: toBlock) case events do - {:ok, []} -> [] - {:ok, list} -> Enum.map(list, &extract_new_batch_event_info/1) - {:error, reason} -> raise("Error fetching events: #{Map.get(reason, "message")}") + {:ok, []} -> + [] + + {:ok, list} -> + Enum.map(list, &extract_new_batch_event_info/1) + + {:error, reason} -> + raise("Error fetching events: #{Map.get(reason, "message")}") end end @@ -94,8 +99,9 @@ defmodule AlignedLayerServiceManager do def is_batch_responded(merkle_root) do event = - AlignedLayerServiceManager.EventFilters.batch_verified(Utils.string_to_bytes32(merkle_root)) - |> Ethers.get_logs(fromBlock: @first_block) + Utils.string_to_bytes32(merkle_root) + |> AlignedLayerServiceManager.EventFilters.batch_verified() + |> Ethers.get_logs(fromBlock: @first_block) case event do {:error, reason} -> {:error, reason} @@ -189,7 +195,6 @@ defmodule AlignedLayerServiceManager do batch_merkle_root = event |> Map.get(:topics_raw) |> Enum.at(1) sender_address = event |> Map.get(:data) |> Enum.at(0) - {:ok, %BatchVerifiedInfo{ address: event |> Map.get(:address), @@ -228,5 +233,4 @@ defmodule AlignedLayerServiceManager do raise("Error fetching restakeable strategies: #{error}") end end - end diff --git a/explorer/lib/explorer/models/restakings.ex b/explorer/lib/explorer/models/restakings.ex index 1cce659f1..94444fdaa 100644 --- a/explorer/lib/explorer/models/restakings.ex +++ b/explorer/lib/explorer/models/restakings.ex @@ -85,6 +85,7 @@ defmodule Restakings do query = from r in Restakings, join: s in Strategies, on: r.strategy_address == s.strategy_address, where: r.operator_id == ^operator_id, + order_by: [desc: r.stake], select: %{ restaking: r, strategy: %{ diff --git a/explorer/lib/explorer_web/components/assets_cta.ex b/explorer/lib/explorer_web/components/assets_cta.ex index db0c65866..8f0c33a92 100644 --- a/explorer/lib/explorer_web/components/assets_cta.ex +++ b/explorer/lib/explorer_web/components/assets_cta.ex @@ -14,7 +14,7 @@ defmodule AssetsCTAComponent do <.link navigate={~p"/operators"} class="flex flex-col justify-start gap-0.5 group">

- Total Active Operators + Registered Active Operators

<.right_arrow />
diff --git a/explorer/lib/explorer_web/components/core_components.ex b/explorer/lib/explorer_web/components/core_components.ex index f0ec4892b..54976b84f 100644 --- a/explorer/lib/explorer_web/components/core_components.ex +++ b/explorer/lib/explorer_web/components/core_components.ex @@ -388,32 +388,64 @@ defmodule ExplorerWeb.CoreComponents do end @doc """ - Renders a dynamic badge compoent. + Renders a badge component. """ attr :class, :string, default: nil - attr :status, :boolean, default: true - attr :falsy_text, :string, default: "Pending" - attr :truthy_text, :string, default: "Verified" + attr :variant, :string, default: "accent" slot :inner_block, default: nil - def dynamic_badge(assigns) do + def badge(assigns) do ~H""" "text-accent-foreground bg-accent group-hover:bg-primary/80" - false -> "text-background bg-foreground group-hover:bg-foreground/80" + "px-3 py-1 rounded-full font-semibold", + case @variant do + "accent" -> "text-accent-foreground bg-accent group-hover:bg-accent/80" + "primary" -> "text-primary-foreground bg-primary group-hover:bg-primary/80" + "secondary" -> "text-secondary-foreground bg-secondary group-hover:bg-secondary/80" + "destructive" -> "text-destructive-foreground bg-destructive group-hover:bg-destructive/80" + "foreground" -> "text-background bg-foreground group-hover:bg-foreground/80" + "card" -> "text-card-foreground bg-card group-hover:bg-card/80" + _ -> "text-accent-foreground bg-accent group-hover:bg-accent/80" end, @class ]) }> + <%= render_slot(@inner_block) %> + + """ + end + + @doc """ + Renders a dynamic badge compoent. + """ + attr :class, :string, default: nil + attr :status, :boolean, default: true + attr :falsy_text, :string, default: "Pending" + attr :truthy_text, :string, default: "Verified" + slot :inner_block, default: nil + + def dynamic_badge(assigns) do + ~H""" + <.badge + variant={ + case @status do + true -> "accent" + false -> "foreground" + end + } + class={ + classes([ + @class + ]) + } + > <%= case @status do true -> @truthy_text false -> @falsy_text end %> <%= render_slot(@inner_block) %> - + """ end @@ -708,6 +740,43 @@ defmodule ExplorerWeb.CoreComponents do """ end + @doc """ + Renders an empty card background. + + ## Examples + + <.empty_card_background text="No users found" /> + + """ + attr :class, :string, default: nil + attr :inner_text_class, :string, default: nil + attr :text, :string, default: nil + slot :inner_block + + def empty_card_background(assigns) do + ~H""" + <.card_background class={ + classes([ + "overflow-x-auto min-h-[38.45rem] flex flex-col items-center justify-center gap-2", + @class + ]) + }> +

+ <%= @text %> +

+ <%= render_slot(@inner_block) %> + + """ + end + @doc """ Renders a data list. @@ -735,30 +804,6 @@ defmodule ExplorerWeb.CoreComponents do """ end - @doc """ - Renders a back navigation link. - - ## Examples - - <.back navigate={~p"/posts"}>Back to posts - """ - attr :navigate, :any, required: true - slot :inner_block, required: true - - def back(assigns) do - ~H""" -
- <.link - navigate={@navigate} - class="text-sm font-semibold leading-6 text-zinc-900 hover:text-zinc-700" - > - <.icon name="hero-arrow-left-solid" class="h-3 w-3" /> - <%= render_slot(@inner_block) %> - -
- """ - end - @doc """ Renders a [Heroicon](https://heroicons.com). diff --git a/explorer/lib/explorer_web/components/nav.ex b/explorer/lib/explorer_web/components/nav.ex index f4ed5ff0f..a93b9565e 100644 --- a/explorer/lib/explorer_web/components/nav.ex +++ b/explorer/lib/explorer_web/components/nav.ex @@ -1,6 +1,11 @@ defmodule NavComponent do use ExplorerWeb, :live_component + @impl true + def mount(socket) do + {:ok, assign(socket, latest_release: ReleasesHelper.get_latest_release())} + end + @impl true def render(assigns) do ~H""" @@ -46,6 +51,12 @@ defmodule NavComponent do GitHub + <.badge :if={@latest_release != nil} class="hidden md:inline"> + <%= @latest_release %> + <.tooltip> + Latest Aligned version + +