// This file was autogenerated by Hardhat, do not edit it. // prettier-ignore // tslint:disable // eslint-disable // biome-ignore format: see above export interface IndexingAgreementManager$Type { readonly _format: "hh3-artifact-1"; readonly contractName: "IndexingAgreementManager"; readonly sourceName: "contracts/allocate/IndexingAgreementManager.sol"; readonly abi: [{"inputs":[{"internalType":"address","name":"graphToken","type":"address"},{"internalType":"address","name":"paymentsEscrow","type":"address"},{"internalType":"address","name":"recurringCollector","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"GovernorCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"GraphTokenCannotBeZeroAddress","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementAlreadyAccepted","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementAlreadyOffered","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementNotAccepted","type":"error"},{"inputs":[{"internalType":"bytes32","name":"agreementHash","type":"bytes32"}],"name":"IndexingAgreementManagerAgreementNotAuthorized","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementNotOffered","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint256","name":"maxNextClaim","type":"uint256"}],"name":"IndexingAgreementManagerAgreementStillClaimable","type":"error"},{"inputs":[{"internalType":"address","name":"dataService","type":"address"}],"name":"IndexingAgreementManagerInvalidDataService","type":"error"},{"inputs":[{"internalType":"string","name":"field","type":"string"}],"name":"IndexingAgreementManagerInvalidRCAField","type":"error"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"expected","type":"address"}],"name":"IndexingAgreementManagerPayerMismatch","type":"error"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"IndexingAgreementManagerStillHasAgreements","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"AgreementCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"maxNextClaim","type":"uint256"}],"name":"AgreementOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint256","name":"oldMaxNextClaim","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxNextClaim","type":"uint256"}],"name":"AgreementReconciled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"AgreementRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint256","name":"pendingMaxNextClaim","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"updateNonce","type":"uint32"}],"name":"AgreementUpdateOffered","type":"event"},{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"requiredEscrow","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deposited","type":"uint256"}],"name":"EscrowFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"EscrowThawed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"EscrowWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"OfferRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MILLION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAYMENTS_ESCROW","outputs":[{"internalType":"contract IPaymentsEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RECURRING_COLLECTOR","outputs":[{"internalType":"contract IRecurringCollector","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"cancelAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getAgreementInfo","outputs":[{"components":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"uint32","name":"pendingUpdateNonce","type":"uint32"},{"internalType":"uint256","name":"maxNextClaim","type":"uint256"},{"internalType":"uint256","name":"pendingUpdateMaxNextClaim","type":"uint256"},{"internalType":"bytes32","name":"agreementHash","type":"bytes32"},{"internalType":"bytes32","name":"pendingUpdateHash","type":"bytes32"}],"internalType":"struct IIndexingAgreementManager.AgreementInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getAgreementMaxNextClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getDeficit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getIndexerAgreementCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getIndexerAgreements","outputs":[{"internalType":"bytes16[]","name":"","type":"bytes16[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getRequiredEscrow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"governor","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"agreementHash","type":"bytes32"}],"name":"isAuthorizedAgreement","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"maintain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"}],"name":"offerAgreement","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"}],"name":"offerAgreementUpdate","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"reconcile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"reconcileAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16[]","name":"agreementIds","type":"bytes16[]"}],"name":"reconcileBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"removeAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"revokeOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]; readonly bytecode: "0x60e0346101c057601f6137bc38819003918201601f19168301916001600160401b038311848410176101c4578084926060946040528339810103126101c057610047816101d8565b906100606040610059602084016101d8565b92016101d8565b916001600160a01b031680156101b1576080525f51602061379c5f395f51905f525460ff8160401c166101a2576002600160401b03196001600160401b0382160161014c575b506001600160a01b0390811660a0521660c0526040516135af90816101ed823960805181612d24015260a051818181611c0901528181612050015281816123b701528181612526015281816129500152612c82015260c05181818161024201528181610a190152818161103f015281816114e90152818161177701528181611e0d015281816123db0152818161256c0152818161291a01528181612a1f0152612c5e0152f35b6001600160401b0319166001600160401b039081175f51602061379c5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100a6565b63f92ee8a960e01b5f5260045ffd5b6369e4eeb360e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c05756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a71461214b57508063037c5d7f1461212a578063085b3e65146120e257806309a186351461207f57806318d620f81461203b5780631d1e41aa14611da25780631f19ce54146116cb578063248a9ca3146116ac57806327cc6df11461133d5780632f2ff15d1461130b57806332bc934c146112ed57806336568abe146112a8578063389ed267146112805780633df8d682146112485780633f4ba83a146111c857806359249b0914610fbd5780635c975abb14610f8e57806378ecca5f14610e435780638456cb5914610dd05780638d202ecf14610d395780639010d07c14610ce757806391d1485414610c91578063931c0ac114610c15578063a217fddf14610bf9578063a2a5837914610b04578063a3246ad314610a48578063a49c2e5714610a03578063a74558e1146109d7578063c4d66de8146106cb578063ca15c87314610695578063ccc574901461066d578063d253c4c414610610578063d547741f146105d5578063e9a91276146105b1578063e9b78bc814610452578063f2da52c514610425578063f5b541a6146103fd5763f83118af146101c0575f80fd5b346103fa5760203660031901126103fa576101d961225c565b6101e1612eff565b6101e9612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f5260205260408320805490919061022290849060e01c60ff16612630565b604051600162469ee760e01b03198152600481018290526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916103c0575b5001805160048110156103ac571561039857516004811015610384576001146102c0575b506102ae6102bd926129d4565b546001600160a01b0316612c47565b80f35b60018201546001600160a01b0316803b15610372578085913b1561036e5781809160246040518094819363e5920be960e01b83528860048401525af180156103635761034a575b505081546102bd936102ae9290916001600160a01b0316907f8d1e8d6c67fdf03cb558b5b15ebfac9259fe187a4e9fd980ba7be16ad413e8b58780a392506102a1565b8161035491612338565b61035f57835f610307565b8380fd5b6040513d84823e3d90fd5b5080fd5b630da096cf60e31b8552600452602484fd5b634e487b7160e01b85526021600452602485fd5b6341b3ac3560e11b85526004829052602485fd5b634e487b7160e01b86526021600452602486fd5b6103e291506101a03d81116103e8575b6103da8183612338565b810190612692565b5f61027d565b503d6103d0565b6040513d87823e3d90fd5b80fd5b50346103fa57806003193601126103fa5760206040515f5160206134da5f395f51905f528152f35b50346103fa5760203660031901126103fa57602061044961044461221c565b612273565b54604051908152f35b50346103fa5760203660031901126103fa5760406101209161047261225c565b81610100845161048181612308565b82815282602082015282868201528260608201528260808201528260a08201528260c08201528260e0820152015260018060801b03191681525f5160206134ba5f395f51905f52602052206040516104d881612308565b81549160018060a01b0383169283835260208301906001600160401b038160a01c16825260ff604085019160e01c161515815263ffffffff60018401546060860160018060a01b038216815282608088019260a01c16825260028601549360a088019485526001600160401b0360038801549660c08a01978852610100600560048b01549a60e08d019b8c5201549a01998a526040519a8b52511660208a0152511515604089015260018060a01b039051166060880152511660808601525160a08501525160c08401525160e083015251610100820152f35b50346103fa5760203660031901126103fa5760206104496105d061221c565b6122ab565b50346103fa5760403660031901126103fa5761060c6004356105f5612232565b9061060761060282612885565b612fb7565b61306a565b5080f35b50346103fa5760203660031901126103fa576102bd61062d61225c565b6001600160801b0319811683525f5160206134ba5f395f51905f5260205260408320805490916102ae9161066890829060e01c60ff16612630565b6129d4565b50346103fa57806003193601126103fa5760206040515f51602061347a5f395f51905f528152f35b50346103fa5760203660031901126103fa57604060209160043581525f51602061343a5f395f51905f5283522054604051908152f35b50346103fa5760203660031901126103fa576106e561221c565b5f51602061355a5f395f51905f52549060ff8260401c1615916001600160401b038116801590816109cf575b60011490816109c5575b1590816109bc575b506109ad5767ffffffffffffffff1981166001175f51602061355a5f395f51905f525582610981575b506107556133ee565b61075d6133ee565b6001600160a01b038116908115610972576108dd905f51602061347a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001548187525f5160206134fa5f395f51905f52602052816001604089200155815f51602061341a5f395f51905f528880a45f51602061353a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f51602061353a5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f51602061353a5f395f51905f525f51602061341a5f395f51905f528880a45f5160206134da5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f5160206134da5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f5160206134da5f395f51905f525f51602061341a5f395f51905f528880a46131f0565b61093d575b506108ea5780f35b60ff60401b195f51602061355a5f395f51905f5254165f51602061355a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b61096b905f51602061347a5f395f51905f5284525f51602061343a5f395f51905f526020526040842061319c565b505f6108e2565b63395d053560e01b8452600484fd5b68ffffffffffffffffff191668010000000000000001175f51602061355a5f395f51905f52555f61074c565b63f92ee8a960e01b8452600484fd5b9050155f610723565b303b15915061071b565b849150610711565b50346103fa5760203660031901126103fa5760206109fb6109f661221c565b6128f3565b604051908152f35b50346103fa57806003193601126103fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346103fa5760203660031901126103fa5760043581525f51602061343a5f395f51905f5260205260408120604051908160208254918281520190819285526020852090855b818110610aee5750505082610aa4910383612338565b604051928392602084019060208552518091526040840192915b818110610acc575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610abe565b8254845260209093019260019283019201610a8e565b50346103fa5760203660031901126103fa57610b2161044461221c565b8054610b2c816128dc565b90610b3a6040519283612338565b808252610b46816128dc565b602083019390601f1901368537845b828110610bab5750505090604051928392602084019060208552518091526040840192915b818110610b88575050500390f35b82516001600160801b031916845285945060209384019390920191600101610b7a565b610bb581836130ac565b9054855160039290921b1c6001600160801b03191690821015610be557600582901b850160200152600101610b55565b634e487b7160e01b87526032600452602487fd5b50346103fa57806003193601126103fa57602090604051908152f35b50346103fa5760203660031901126103fa57610c2f61221c565b505f51602061347a5f395f51905f5281525f5160206134fa5f395f51905f5260209081526040808320335f908152925290205460ff1615610c6d5780f35b63e2517d3f60e01b8152336004525f51602061347a5f395f51905f52602452604490fd5b50346103fa5760403660031901126103fa576040610cad612232565b9160043581525f5160206134fa5f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346103fa5760403660031901126103fa57610d2060209160043581525f51602061343a5f395f51905f528352604060243591206130ac565b905460405160039290921b1c6001600160a01b03168152f35b50346103fa5760203660031901126103fa576004358082525f51602061345a5f395f51905f52602052604082205490919060801b6001600160801b0319168015159081610dab575b5015610d9957604051638d202ecf60e01b8152602090f35b6024916389a8b8bf60e01b8252600452fd5b8252505f5160206134ba5f395f51905f52602052604081205460e01c60ff165f610d81565b50346103fa57806003193601126103fa57610de9612f5b565b610df1612ffd565b600160ff195f51602061351a5f395f51905f525416175f51602061351a5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103fa5760203660031901126103fa576004356001600160401b03811161036e573660238201121561036e578060040135906001600160401b038211610f8a576024810190602436918460051b010111610f8a57825b828110610f3057508290815b838310610eb2578480f35b6001600160801b0319610ece610ec98587866128b8565b6128a3565b1685525f5160206134ba5f395f51905f5260205260408520546001600160a01b03169081158015610f1e575b610f14575080610f0b600192612c47565b925b0191610ea7565b9260019150610f0d565b506001600160a01b0381168214610efa565b6001906001600160801b0319610f4a610ec98387876128b8565b1685525f5160206134ba5f395f51905f5260205260ff604086205460e01c1615610f8557610f7f610668610ec98387876128b8565b01610e9b565b610f7f565b8280fd5b50346103fa57806003193601126103fa57602060ff5f51602061351a5f395f51905f5254166040519015158152f35b50346103fa5760203660031901126103fa57610fd761225c565b610fdf612eff565b610fe7612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f52602052604083208054909261101f9060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916111a9575b5001516004811015610384576111955760018060a01b03169160056110a86002830154600384015490612795565b600483015486525f51602061345a5f395f51905f526020526040862080546001600160801b03191690559101548061116a575b506110f06110e8846122ab565b9182546127b6565b9055611104816110ff84612273565b6130c1565b508083525f5160206134ba5f395f51905f526020526111436040842060055f918281558260018201558260028201558260038201558260048201550155565b7f570eed002bce0bf86c1e1b74f6a8ade057760189a0747bbe89c97ab64794dce88380a380f35b84525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f6110db565b6335e47ac160e01b84526004829052602484fd5b6111c291506101a03d81116103e8576103da8183612338565b5f61107a565b50346103fa57806003193601126103fa576111e1612f5b565b5f51602061351a5f395f51905f525460ff8116156112395760ff19165f51602061351a5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103fa57806003193601126103fa577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194068180a180f35b50346103fa57806003193601126103fa5760206040515f51602061353a5f395f51905f528152f35b50346103fa5760403660031901126103fa576112c2612232565b336001600160a01b038216036112de5761060c9060043561306a565b63334bd91960e11b8252600482fd5b50346103fa57806003193601126103fa576020604051620f42408152f35b50346103fa5760403660031901126103fa5761060c60043561132b612232565b9061133861060282612885565b613024565b50346103fa5760203660031901126103fa57600435906001600160401b0382116103fa57816004019061012060031984360301126103fa5761137d612eff565b611385612ffd565b61138e826128a3565b60018060801b03198116928383525f5160206134ba5f395f51905f5260205260408320918254906113c58160ff8460e01c16612630565b60848701359460c48801936113e863ffffffff6113e1876127eb565b16886127fc565b946113f860648b01358097612795565b9760058801958654611661575b50604051634b7827df60e01b8152602060048201529683356001600160801b031981169081900361165d57908894939291602486015260248d016114489061280f565b6001600160401b0316604486015260448d016114639061280f565b6001600160401b03166064860152608485015260a484015260a48b0161148890612823565b63ffffffff1660c484015261149c90612823565b63ffffffff1660e483015260e48a01996114b58b612823565b63ffffffff16610104840152610104016114ce91612834565b610124830161012090526101448301906114e792612865565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691869103815a93602094fa93841561165057819461160d575b506020976115f57f3d2ef8c85debab05fdf59ff23a2b0f231ce3544dd7b82d08dbeaf5367c7a5ae796868a999663ffffffff96604087819b6115fa99528f5f51602061345a5f395f51905f529052209060801c60018060801b03198254161790558760038401556115c461159d866127eb565b60018501805463ffffffff60a01b191660a09290921b63ffffffff60a01b16919091179055565b5580546115d9906001600160a01b03166122ab565b6115e4878254612795565b9055546001600160a01b0316612c47565b6127eb565b83519283521686820152a2604051908152f35b9592919093506020863d602011611648575b8161162c60209383612338565b8101031261164457945191949192909190602061152a565b5f80fd5b3d915061161f565b50604051903d90823e3d90fd5b8580fd5b60038901549061167d906110e8906001600160a01b03166122ab565b9055855484525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f611405565b50346103fa5760203660031901126103fa5760206109fb600435612885565b503461164457602036600319011261164457600435906001600160401b03821161164457816004019161016060031982360301126116445761170b612eff565b611713612ffd565b6044810192611721846127c3565b61172a856127c3565b90306001600160a01b0390911603611d7e575060848201906001600160a01b03611753836127c3565b1615611d465760648301906001600160a01b0361176f836127c3565b1615611d12577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316946117a9876127c3565b6117b2846127c3565b966001600160401b036117c4876127c3565b6117cd866127d7565b60405163e1e9b47560e01b81526001600160a01b0395861660048201529a851660248c0152931660448a0152909116606488015261012486013560848801819052969060208260a481845afa918215611caf575f92611ccd575b506001600160801b031982165f8181525f5160206134ba5f395f51905f52602052604090205490989060e01c60ff16611cba5760ff61186d611868896127c3565b6122d0565b5416611c07575b60c4880135996101048901986118898a6127eb565b63ffffffff16611899908d6127fc565b9260a482013593846118aa91612795565b9a6040519d8e958695631163b3f960e31b875260048701602090526118ce8c61280f565b6001600160401b03166024880152602486016118e99061280f565b6001600160401b031660448801526001600160a01b039061190990612248565b1660648701526001600160a01b036119208d612248565b1660848701526001600160a01b036119378e612248565b1660a487015260c486015260e485015260e4830161195490612823565b63ffffffff1661010485015261196990612823565b63ffffffff16610124840152610144830152610144016119899087612834565b610164830161016090526101848301906119a292612865565b03815a93602094fa978815610363578298611bcc575b50926005878960209a9589611b53877f259739c18c8e83f3e1c8b4c6e33f610b34846e32f2decfbf4f90b950e8d9d36b9a8f9a879d9a525f51602061345a5f395f51905f528b52604082209060801c60018060801b031982541617905563ffffffff611a35611a2f611a298c6127c3565b966127d7565b996127c3565b91604051998a96611a4588612308565b60018060a01b031687526001600160401b038d880191168152604087019060018252606088019460018060a01b031685526040608089019380855260a08a0198895261010060c08b019a828c5260e081019c8d52019b818d5281528f5f5160206134ba5f395f51905f529052209b60018060a01b039060018060a01b039051161660018060a01b03198d5416178c5551908b549060ff60e01b9051151560e01b16916001600160401b0360a01b9060a01b169068ffffffffffffffffff60a01b191617178a5560018a019260018060a01b039060018060a01b039051161660018060a01b0319845416178355511681549063ffffffff60a01b9060a01b169063ffffffff60a01b1916179055565b51600286015551600385015551600484015551910155611b7e84611b79610444846127c3565b61319c565b50611b8b6105d0826127c3565b611b96868254612795565b9055611ba9611ba4826127c3565b612c47565b6001600160a01b0390611bbb906127c3565b1693604051908152a3604051908152f35b94919750926020853d602011611bff575b81611bea60209383612338565b810103126116445793519690939260056119b8565b3d9150611bdd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c3a886127c3565b90803b1561164457604051632c741f7960e21b81526001600160a01b0385811660048301529290921660248301525f908290604490829084905af18015611caf57611c9a575b50611c8d611868886127c3565b805460ff19169055611874565b611ca79194505f90612338565b5f925f611c80565b6040513d5f823e3d90fd5b88633ad6907160e11b5f5260045260245ffd5b9091506020813d602011611d0a575b81611ce960209383612338565b8101031261164457516001600160801b03198116810361164457905f611827565b3d9150611cdc565b6040516372367e2160e01b815260206004820152600b60248201526a646174615365727669636560a81b6044820152606490fd5b6040516372367e2160e01b815260206004820152600f60248201526e39b2b93b34b1b2a83937bb34b232b960891b6044820152606490fd5b63079cbb8160e01b5f9081526001600160a01b039190911660045230602452604490fd5b3461164457602036600319011261164457611dbb61225c565b6001600160801b031981165f8181525f5160206134ba5f395f51905f526020526040902080549092611df49060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166101a082602481845afa918215611caf575f9261201a575b506101805f920151600481101561200657611fa057506001600160401b038260a01c16421115611f95575b80611f7f575060018060a01b0316916005611e9c6002830154600384015490612795565b60048301545f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905591015480611f52575b50611ede6110e8846122ab565b9055611eed816110ff84612273565b50805f525f5160206134ba5f395f51905f52602052611f2c60405f2060055f918281558260018201558260028201558260038201558260048201550155565b7f370620d8b2b6b19922292127954be721558200b2233a982111ab5eac961dcd1e5f80a3005b5f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905583611ed1565b8263f833901960e01b5f5260045260245260445ffd5b506002830154611e78565b602491506020906040519283809263b6cd33a760e01b82528760048301525afa908115611caf575f91611fd4575b50611e78565b90506020813d602011611ffe575b81611fef60209383612338565b81010312611644575184611fce565b3d9150611fe2565b634e487b7160e01b5f52602160045260245ffd5b6120349192506101a03d81116103e8576103da8183612338565b9085611e4d565b34611644575f366003190112611644576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346116445760203660031901126116445761209861221c565b6120a181612273565b8054905f5b8281106120b8576120b684612c47565b005b806120dc6120c8600193856130ac565b848060801b031991549060031b1c166129d4565b016120a6565b34611644576020366003190112611644576001600160801b031961210461225c565b165f525f5160206134ba5f395f51905f526020526020600260405f200154604051908152f35b34611644576020366003190112611644576120b661214661221c565b61237c565b34611644576020366003190112611644576004359063ffffffff60e01b82168092036116445760209163aee4dc4360e01b811490811561220b575b81156121fa575b811561219b575b5015158152f35b631cf1473b60e31b8114915081156121b5575b5083612194565b635a05180f60e01b8114915081156121cf575b50836121ae565b637965db0b60e01b8114915081156121e9575b50836121c8565b6301ffc9a760e01b149050836121e2565b636de1cd7f60e11b8114915061218d565b638d202ecf60e01b81149150612186565b600435906001600160a01b038216820361164457565b602435906001600160a01b038216820361164457565b35906001600160a01b038216820361164457565b600435906001600160801b03198216820361164457565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb036020526040902090565b6001600160a01b03165f9081525f51602061349a5f395f51905f526020526040902090565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb046020526040902090565b61012081019081106001600160401b0382111761232457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761232457604052565b6001600160a01b0391821681529181166020830152909116604082015260600190565b61238581612273565b905f91546126105760ff612398826122d0565b5416612524575b6040516335af580f60e21b8152916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f0000000000000000000000000000000000000000000000000000000000000000166020858061240e87853060048501612359565b0381855afa9485156125195783956124e5575b508461242f575b5050505050565b813b15610f8a57604051630f93f1cd60e41b81526001600160a01b0391821660048201529084166024820152604481018590529082908290606490829084905af18015610363576124d0575b50506020816124aa7f9bb27b15352e734811dc60e560d3862af1f1e9da5066ee6f7bc1bd880a031112936122d0565b805460ff191660011790556040519384526001600160a01b031692a25f80808080612428565b6124db828092612338565b6103fa578061247b565b9094506020813d602011612511575b8161250160209383612338565b810103126116445751935f612421565b3d91506124f4565b6040513d85823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156116445760405163f940e38560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152905f908290604490829084905af190816125fb575b506125b7575050565b6125c0816122d0565b805460ff191690556001600160a01b0381167fd900faab28619592e985fe698e5edf2e0819a9d670c3b2547afb60504aa115fb8380a261239f565b6126089193505f90612338565b5f915f6125ae565b63a017a1b160e01b5f9081526001600160a01b0391909116600452602490fd5b156126385750565b6324b1c47960e21b5f9081526001600160801b031991909116600452602490fd5b51906001600160a01b038216820361164457565b51906001600160401b038216820361164457565b519063ffffffff8216820361164457565b90816101a091031261164457604051906101a08201908282106001600160401b0383111761232457610180916040526126ca81612659565b83526126d860208201612659565b60208401526126e960408201612659565b60408401526126fa6060820161266d565b606084015261270b6080820161266d565b608084015261271c60a0820161266d565b60a084015260c081015160c084015260e081015160e08401526127426101008201612681565b6101008401526127556101208201612681565b6101208401526127686101408201612681565b61014084015261277b610160820161266d565b610160840152015160048110156116445761018082015290565b919082018092116127a257565b634e487b7160e01b5f52601160045260245ffd5b919082039182116127a257565b356001600160a01b03811681036116445790565b356001600160401b03811681036116445790565b3563ffffffff811681036116445790565b818102929181159184041417156127a257565b35906001600160401b038216820361164457565b359063ffffffff8216820361164457565b9035601e19823603018112156116445701602081359101916001600160401b03821161164457813603831361164457565b908060209392818452848401375f828201840152601f01601f1916010190565b5f525f5160206134fa5f395f51905f52602052600160405f20015490565b356001600160801b0319811681036116445790565b91908110156128c85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0381116123245760051b60200190565b61294c6020612901836122ab565b546040516335af580f60e21b81529093909283918291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163060048501612359565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611caf575f916129a2575b508181106129965750505f90565b61299f916127b6565b90565b90506020813d6020116129cc575b816129bd60209383612338565b8101031261164457515f612988565b3d91506129b0565b6001600160801b0319165f8181525f5160206134ba5f395f51905f5260205260409020805460e081901c60ff1615612c4257604051600162469ee760e01b03198152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691906101a081602481865afa908115611caf575f91612c23575b5061018081015160048110156120065715612428576005840190815415159081612c03575b50612b8a575b50506002820190602460208354926040519283809263b6cd33a760e01b82528960048301525afa908115611caf575f91612b58575b50808203612ad0575050505050565b7f09645923a9d076af2798e345c9e427afd40e7679993c496d420ee25a9a89140693816040945560018060a01b03905416805f525f51602061349a5f395f51905f52602052612b2b82612b2685875f20546127b6565b612795565b905f525f51602061349a5f395f51905f52602052835f205582519182526020820152a25f80808080612428565b90506020813d602011612b82575b81612b7360209383612338565b8101031261164457515f612ac1565b3d9150612b66565b5f8092600386019081549060018060a01b031683525f51602061349a5f395f51905f52602052612bbf604084209182546127b6565b9055825482525f51602061345a5f395f51905f526020526040822080546001600160801b03191690555560018401805463ffffffff60a01b19169055555f80612a8c565b905063ffffffff61014081600188015460a01c169201511610155f612a86565b612c3c91506101a03d81116103e8576103da8183612338565b5f612a61565b505050565b6040516335af580f60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116927f0000000000000000000000000000000000000000000000000000000000000000909116919060208280612cb984883060048501612359565b0381865afa918215611caf575f92612ecb575b506001600160a01b0381165f8181525f51602061349a5f395f51905f52602052604090205490949091828410612d05575b505050505050565b612d0f84846127b6565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939190602081602481885afa908115611caf575f91612e99575b5080821015612e915750925b83612d7f575b5050612cfd565b60205f9160446040518094819363095ea7b360e01b83528c60048401528960248401525af18015611caf57612e5a575b50853b1561164457604051638340f54960e01b81526001600160a01b0391821660048201529116602482015260448101829052935f908590606490829084905af1938415611caf5781606094612e2c927fd3f0e58aa4675ac50da832cc55494b3f7205de4eaf8f3d703da23b48105db95c97612e4a575b50612795565b60405192835260208301526040820152a25f80808080808080612d78565b5f612e5491612338565b5f612e26565b6020813d602011612e89575b81612e7360209383612338565b8101031261164457518015158114612daf575f80fd5b3d9150612e66565b905092612d72565b90506020813d602011612ec3575b81612eb460209383612338565b8101031261164457515f612d66565b3d9150612ea7565b9091506020813d602011612ef7575b81612ee760209383612338565b810103126116445751905f612ccc565b3d9150612eda565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615612f3757565b63e2517d3f60e01b5f52336004525f5160206134da5f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615612f9357565b63e2517d3f60e01b5f52336004525f51602061353a5f395f51905f5260245260445ffd5b5f8181525f5160206134fa5f395f51905f526020908152604080832033845290915290205460ff1615612fe75750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f51602061351a5f395f51905f52541661301557565b63d93c066560e01b5f5260045ffd5b61302e82826132ae565b918261303957505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b03169061319c565b5090565b6130748282613352565b918261307f57505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b0316906130c1565b80548210156128c8575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613194575f1981018181116127a25782545f198101919082116127a257818103613149575b50505080548015613135575f19019061311682826130ac565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b61317f61315961316993866130ac565b90549060031b1c928392866130ac565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f80806130fd565b505050505f90565b6001810190825f528160205260405f2054155f146131e9578054600160401b811015612324576131d66131698260018794018555846130ac565b905554915f5260205260405f2055600190565b5050505f90565b6001600160a01b0381165f9081527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee803602052604090205460ff166132a9576001600160a01b03165f8181527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee80360205260408120805460ff191660011790553391905f51602061347a5f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f51602061355a5f395f51905f525460401c161561340a57565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb007935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb02479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb0197667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c8f0305fd351e2f42e60e7e56be7d003b3c4c3b5287f7b57d4d250450410ef1764736f6c63430008210033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"; readonly deployedBytecode: "0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a71461214b57508063037c5d7f1461212a578063085b3e65146120e257806309a186351461207f57806318d620f81461203b5780631d1e41aa14611da25780631f19ce54146116cb578063248a9ca3146116ac57806327cc6df11461133d5780632f2ff15d1461130b57806332bc934c146112ed57806336568abe146112a8578063389ed267146112805780633df8d682146112485780633f4ba83a146111c857806359249b0914610fbd5780635c975abb14610f8e57806378ecca5f14610e435780638456cb5914610dd05780638d202ecf14610d395780639010d07c14610ce757806391d1485414610c91578063931c0ac114610c15578063a217fddf14610bf9578063a2a5837914610b04578063a3246ad314610a48578063a49c2e5714610a03578063a74558e1146109d7578063c4d66de8146106cb578063ca15c87314610695578063ccc574901461066d578063d253c4c414610610578063d547741f146105d5578063e9a91276146105b1578063e9b78bc814610452578063f2da52c514610425578063f5b541a6146103fd5763f83118af146101c0575f80fd5b346103fa5760203660031901126103fa576101d961225c565b6101e1612eff565b6101e9612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f5260205260408320805490919061022290849060e01c60ff16612630565b604051600162469ee760e01b03198152600481018290526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916103c0575b5001805160048110156103ac571561039857516004811015610384576001146102c0575b506102ae6102bd926129d4565b546001600160a01b0316612c47565b80f35b60018201546001600160a01b0316803b15610372578085913b1561036e5781809160246040518094819363e5920be960e01b83528860048401525af180156103635761034a575b505081546102bd936102ae9290916001600160a01b0316907f8d1e8d6c67fdf03cb558b5b15ebfac9259fe187a4e9fd980ba7be16ad413e8b58780a392506102a1565b8161035491612338565b61035f57835f610307565b8380fd5b6040513d84823e3d90fd5b5080fd5b630da096cf60e31b8552600452602484fd5b634e487b7160e01b85526021600452602485fd5b6341b3ac3560e11b85526004829052602485fd5b634e487b7160e01b86526021600452602486fd5b6103e291506101a03d81116103e8575b6103da8183612338565b810190612692565b5f61027d565b503d6103d0565b6040513d87823e3d90fd5b80fd5b50346103fa57806003193601126103fa5760206040515f5160206134da5f395f51905f528152f35b50346103fa5760203660031901126103fa57602061044961044461221c565b612273565b54604051908152f35b50346103fa5760203660031901126103fa5760406101209161047261225c565b81610100845161048181612308565b82815282602082015282868201528260608201528260808201528260a08201528260c08201528260e0820152015260018060801b03191681525f5160206134ba5f395f51905f52602052206040516104d881612308565b81549160018060a01b0383169283835260208301906001600160401b038160a01c16825260ff604085019160e01c161515815263ffffffff60018401546060860160018060a01b038216815282608088019260a01c16825260028601549360a088019485526001600160401b0360038801549660c08a01978852610100600560048b01549a60e08d019b8c5201549a01998a526040519a8b52511660208a0152511515604089015260018060a01b039051166060880152511660808601525160a08501525160c08401525160e083015251610100820152f35b50346103fa5760203660031901126103fa5760206104496105d061221c565b6122ab565b50346103fa5760403660031901126103fa5761060c6004356105f5612232565b9061060761060282612885565b612fb7565b61306a565b5080f35b50346103fa5760203660031901126103fa576102bd61062d61225c565b6001600160801b0319811683525f5160206134ba5f395f51905f5260205260408320805490916102ae9161066890829060e01c60ff16612630565b6129d4565b50346103fa57806003193601126103fa5760206040515f51602061347a5f395f51905f528152f35b50346103fa5760203660031901126103fa57604060209160043581525f51602061343a5f395f51905f5283522054604051908152f35b50346103fa5760203660031901126103fa576106e561221c565b5f51602061355a5f395f51905f52549060ff8260401c1615916001600160401b038116801590816109cf575b60011490816109c5575b1590816109bc575b506109ad5767ffffffffffffffff1981166001175f51602061355a5f395f51905f525582610981575b506107556133ee565b61075d6133ee565b6001600160a01b038116908115610972576108dd905f51602061347a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001548187525f5160206134fa5f395f51905f52602052816001604089200155815f51602061341a5f395f51905f528880a45f51602061353a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f51602061353a5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f51602061353a5f395f51905f525f51602061341a5f395f51905f528880a45f5160206134da5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f5160206134da5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f5160206134da5f395f51905f525f51602061341a5f395f51905f528880a46131f0565b61093d575b506108ea5780f35b60ff60401b195f51602061355a5f395f51905f5254165f51602061355a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b61096b905f51602061347a5f395f51905f5284525f51602061343a5f395f51905f526020526040842061319c565b505f6108e2565b63395d053560e01b8452600484fd5b68ffffffffffffffffff191668010000000000000001175f51602061355a5f395f51905f52555f61074c565b63f92ee8a960e01b8452600484fd5b9050155f610723565b303b15915061071b565b849150610711565b50346103fa5760203660031901126103fa5760206109fb6109f661221c565b6128f3565b604051908152f35b50346103fa57806003193601126103fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346103fa5760203660031901126103fa5760043581525f51602061343a5f395f51905f5260205260408120604051908160208254918281520190819285526020852090855b818110610aee5750505082610aa4910383612338565b604051928392602084019060208552518091526040840192915b818110610acc575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610abe565b8254845260209093019260019283019201610a8e565b50346103fa5760203660031901126103fa57610b2161044461221c565b8054610b2c816128dc565b90610b3a6040519283612338565b808252610b46816128dc565b602083019390601f1901368537845b828110610bab5750505090604051928392602084019060208552518091526040840192915b818110610b88575050500390f35b82516001600160801b031916845285945060209384019390920191600101610b7a565b610bb581836130ac565b9054855160039290921b1c6001600160801b03191690821015610be557600582901b850160200152600101610b55565b634e487b7160e01b87526032600452602487fd5b50346103fa57806003193601126103fa57602090604051908152f35b50346103fa5760203660031901126103fa57610c2f61221c565b505f51602061347a5f395f51905f5281525f5160206134fa5f395f51905f5260209081526040808320335f908152925290205460ff1615610c6d5780f35b63e2517d3f60e01b8152336004525f51602061347a5f395f51905f52602452604490fd5b50346103fa5760403660031901126103fa576040610cad612232565b9160043581525f5160206134fa5f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346103fa5760403660031901126103fa57610d2060209160043581525f51602061343a5f395f51905f528352604060243591206130ac565b905460405160039290921b1c6001600160a01b03168152f35b50346103fa5760203660031901126103fa576004358082525f51602061345a5f395f51905f52602052604082205490919060801b6001600160801b0319168015159081610dab575b5015610d9957604051638d202ecf60e01b8152602090f35b6024916389a8b8bf60e01b8252600452fd5b8252505f5160206134ba5f395f51905f52602052604081205460e01c60ff165f610d81565b50346103fa57806003193601126103fa57610de9612f5b565b610df1612ffd565b600160ff195f51602061351a5f395f51905f525416175f51602061351a5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103fa5760203660031901126103fa576004356001600160401b03811161036e573660238201121561036e578060040135906001600160401b038211610f8a576024810190602436918460051b010111610f8a57825b828110610f3057508290815b838310610eb2578480f35b6001600160801b0319610ece610ec98587866128b8565b6128a3565b1685525f5160206134ba5f395f51905f5260205260408520546001600160a01b03169081158015610f1e575b610f14575080610f0b600192612c47565b925b0191610ea7565b9260019150610f0d565b506001600160a01b0381168214610efa565b6001906001600160801b0319610f4a610ec98387876128b8565b1685525f5160206134ba5f395f51905f5260205260ff604086205460e01c1615610f8557610f7f610668610ec98387876128b8565b01610e9b565b610f7f565b8280fd5b50346103fa57806003193601126103fa57602060ff5f51602061351a5f395f51905f5254166040519015158152f35b50346103fa5760203660031901126103fa57610fd761225c565b610fdf612eff565b610fe7612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f52602052604083208054909261101f9060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916111a9575b5001516004811015610384576111955760018060a01b03169160056110a86002830154600384015490612795565b600483015486525f51602061345a5f395f51905f526020526040862080546001600160801b03191690559101548061116a575b506110f06110e8846122ab565b9182546127b6565b9055611104816110ff84612273565b6130c1565b508083525f5160206134ba5f395f51905f526020526111436040842060055f918281558260018201558260028201558260038201558260048201550155565b7f570eed002bce0bf86c1e1b74f6a8ade057760189a0747bbe89c97ab64794dce88380a380f35b84525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f6110db565b6335e47ac160e01b84526004829052602484fd5b6111c291506101a03d81116103e8576103da8183612338565b5f61107a565b50346103fa57806003193601126103fa576111e1612f5b565b5f51602061351a5f395f51905f525460ff8116156112395760ff19165f51602061351a5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103fa57806003193601126103fa577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194068180a180f35b50346103fa57806003193601126103fa5760206040515f51602061353a5f395f51905f528152f35b50346103fa5760403660031901126103fa576112c2612232565b336001600160a01b038216036112de5761060c9060043561306a565b63334bd91960e11b8252600482fd5b50346103fa57806003193601126103fa576020604051620f42408152f35b50346103fa5760403660031901126103fa5761060c60043561132b612232565b9061133861060282612885565b613024565b50346103fa5760203660031901126103fa57600435906001600160401b0382116103fa57816004019061012060031984360301126103fa5761137d612eff565b611385612ffd565b61138e826128a3565b60018060801b03198116928383525f5160206134ba5f395f51905f5260205260408320918254906113c58160ff8460e01c16612630565b60848701359460c48801936113e863ffffffff6113e1876127eb565b16886127fc565b946113f860648b01358097612795565b9760058801958654611661575b50604051634b7827df60e01b8152602060048201529683356001600160801b031981169081900361165d57908894939291602486015260248d016114489061280f565b6001600160401b0316604486015260448d016114639061280f565b6001600160401b03166064860152608485015260a484015260a48b0161148890612823565b63ffffffff1660c484015261149c90612823565b63ffffffff1660e483015260e48a01996114b58b612823565b63ffffffff16610104840152610104016114ce91612834565b610124830161012090526101448301906114e792612865565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691869103815a93602094fa93841561165057819461160d575b506020976115f57f3d2ef8c85debab05fdf59ff23a2b0f231ce3544dd7b82d08dbeaf5367c7a5ae796868a999663ffffffff96604087819b6115fa99528f5f51602061345a5f395f51905f529052209060801c60018060801b03198254161790558760038401556115c461159d866127eb565b60018501805463ffffffff60a01b191660a09290921b63ffffffff60a01b16919091179055565b5580546115d9906001600160a01b03166122ab565b6115e4878254612795565b9055546001600160a01b0316612c47565b6127eb565b83519283521686820152a2604051908152f35b9592919093506020863d602011611648575b8161162c60209383612338565b8101031261164457945191949192909190602061152a565b5f80fd5b3d915061161f565b50604051903d90823e3d90fd5b8580fd5b60038901549061167d906110e8906001600160a01b03166122ab565b9055855484525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f611405565b50346103fa5760203660031901126103fa5760206109fb600435612885565b503461164457602036600319011261164457600435906001600160401b03821161164457816004019161016060031982360301126116445761170b612eff565b611713612ffd565b6044810192611721846127c3565b61172a856127c3565b90306001600160a01b0390911603611d7e575060848201906001600160a01b03611753836127c3565b1615611d465760648301906001600160a01b0361176f836127c3565b1615611d12577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316946117a9876127c3565b6117b2846127c3565b966001600160401b036117c4876127c3565b6117cd866127d7565b60405163e1e9b47560e01b81526001600160a01b0395861660048201529a851660248c0152931660448a0152909116606488015261012486013560848801819052969060208260a481845afa918215611caf575f92611ccd575b506001600160801b031982165f8181525f5160206134ba5f395f51905f52602052604090205490989060e01c60ff16611cba5760ff61186d611868896127c3565b6122d0565b5416611c07575b60c4880135996101048901986118898a6127eb565b63ffffffff16611899908d6127fc565b9260a482013593846118aa91612795565b9a6040519d8e958695631163b3f960e31b875260048701602090526118ce8c61280f565b6001600160401b03166024880152602486016118e99061280f565b6001600160401b031660448801526001600160a01b039061190990612248565b1660648701526001600160a01b036119208d612248565b1660848701526001600160a01b036119378e612248565b1660a487015260c486015260e485015260e4830161195490612823565b63ffffffff1661010485015261196990612823565b63ffffffff16610124840152610144830152610144016119899087612834565b610164830161016090526101848301906119a292612865565b03815a93602094fa978815610363578298611bcc575b50926005878960209a9589611b53877f259739c18c8e83f3e1c8b4c6e33f610b34846e32f2decfbf4f90b950e8d9d36b9a8f9a879d9a525f51602061345a5f395f51905f528b52604082209060801c60018060801b031982541617905563ffffffff611a35611a2f611a298c6127c3565b966127d7565b996127c3565b91604051998a96611a4588612308565b60018060a01b031687526001600160401b038d880191168152604087019060018252606088019460018060a01b031685526040608089019380855260a08a0198895261010060c08b019a828c5260e081019c8d52019b818d5281528f5f5160206134ba5f395f51905f529052209b60018060a01b039060018060a01b039051161660018060a01b03198d5416178c5551908b549060ff60e01b9051151560e01b16916001600160401b0360a01b9060a01b169068ffffffffffffffffff60a01b191617178a5560018a019260018060a01b039060018060a01b039051161660018060a01b0319845416178355511681549063ffffffff60a01b9060a01b169063ffffffff60a01b1916179055565b51600286015551600385015551600484015551910155611b7e84611b79610444846127c3565b61319c565b50611b8b6105d0826127c3565b611b96868254612795565b9055611ba9611ba4826127c3565b612c47565b6001600160a01b0390611bbb906127c3565b1693604051908152a3604051908152f35b94919750926020853d602011611bff575b81611bea60209383612338565b810103126116445793519690939260056119b8565b3d9150611bdd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c3a886127c3565b90803b1561164457604051632c741f7960e21b81526001600160a01b0385811660048301529290921660248301525f908290604490829084905af18015611caf57611c9a575b50611c8d611868886127c3565b805460ff19169055611874565b611ca79194505f90612338565b5f925f611c80565b6040513d5f823e3d90fd5b88633ad6907160e11b5f5260045260245ffd5b9091506020813d602011611d0a575b81611ce960209383612338565b8101031261164457516001600160801b03198116810361164457905f611827565b3d9150611cdc565b6040516372367e2160e01b815260206004820152600b60248201526a646174615365727669636560a81b6044820152606490fd5b6040516372367e2160e01b815260206004820152600f60248201526e39b2b93b34b1b2a83937bb34b232b960891b6044820152606490fd5b63079cbb8160e01b5f9081526001600160a01b039190911660045230602452604490fd5b3461164457602036600319011261164457611dbb61225c565b6001600160801b031981165f8181525f5160206134ba5f395f51905f526020526040902080549092611df49060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166101a082602481845afa918215611caf575f9261201a575b506101805f920151600481101561200657611fa057506001600160401b038260a01c16421115611f95575b80611f7f575060018060a01b0316916005611e9c6002830154600384015490612795565b60048301545f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905591015480611f52575b50611ede6110e8846122ab565b9055611eed816110ff84612273565b50805f525f5160206134ba5f395f51905f52602052611f2c60405f2060055f918281558260018201558260028201558260038201558260048201550155565b7f370620d8b2b6b19922292127954be721558200b2233a982111ab5eac961dcd1e5f80a3005b5f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905583611ed1565b8263f833901960e01b5f5260045260245260445ffd5b506002830154611e78565b602491506020906040519283809263b6cd33a760e01b82528760048301525afa908115611caf575f91611fd4575b50611e78565b90506020813d602011611ffe575b81611fef60209383612338565b81010312611644575184611fce565b3d9150611fe2565b634e487b7160e01b5f52602160045260245ffd5b6120349192506101a03d81116103e8576103da8183612338565b9085611e4d565b34611644575f366003190112611644576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346116445760203660031901126116445761209861221c565b6120a181612273565b8054905f5b8281106120b8576120b684612c47565b005b806120dc6120c8600193856130ac565b848060801b031991549060031b1c166129d4565b016120a6565b34611644576020366003190112611644576001600160801b031961210461225c565b165f525f5160206134ba5f395f51905f526020526020600260405f200154604051908152f35b34611644576020366003190112611644576120b661214661221c565b61237c565b34611644576020366003190112611644576004359063ffffffff60e01b82168092036116445760209163aee4dc4360e01b811490811561220b575b81156121fa575b811561219b575b5015158152f35b631cf1473b60e31b8114915081156121b5575b5083612194565b635a05180f60e01b8114915081156121cf575b50836121ae565b637965db0b60e01b8114915081156121e9575b50836121c8565b6301ffc9a760e01b149050836121e2565b636de1cd7f60e11b8114915061218d565b638d202ecf60e01b81149150612186565b600435906001600160a01b038216820361164457565b602435906001600160a01b038216820361164457565b35906001600160a01b038216820361164457565b600435906001600160801b03198216820361164457565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb036020526040902090565b6001600160a01b03165f9081525f51602061349a5f395f51905f526020526040902090565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb046020526040902090565b61012081019081106001600160401b0382111761232457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761232457604052565b6001600160a01b0391821681529181166020830152909116604082015260600190565b61238581612273565b905f91546126105760ff612398826122d0565b5416612524575b6040516335af580f60e21b8152916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f0000000000000000000000000000000000000000000000000000000000000000166020858061240e87853060048501612359565b0381855afa9485156125195783956124e5575b508461242f575b5050505050565b813b15610f8a57604051630f93f1cd60e41b81526001600160a01b0391821660048201529084166024820152604481018590529082908290606490829084905af18015610363576124d0575b50506020816124aa7f9bb27b15352e734811dc60e560d3862af1f1e9da5066ee6f7bc1bd880a031112936122d0565b805460ff191660011790556040519384526001600160a01b031692a25f80808080612428565b6124db828092612338565b6103fa578061247b565b9094506020813d602011612511575b8161250160209383612338565b810103126116445751935f612421565b3d91506124f4565b6040513d85823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156116445760405163f940e38560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152905f908290604490829084905af190816125fb575b506125b7575050565b6125c0816122d0565b805460ff191690556001600160a01b0381167fd900faab28619592e985fe698e5edf2e0819a9d670c3b2547afb60504aa115fb8380a261239f565b6126089193505f90612338565b5f915f6125ae565b63a017a1b160e01b5f9081526001600160a01b0391909116600452602490fd5b156126385750565b6324b1c47960e21b5f9081526001600160801b031991909116600452602490fd5b51906001600160a01b038216820361164457565b51906001600160401b038216820361164457565b519063ffffffff8216820361164457565b90816101a091031261164457604051906101a08201908282106001600160401b0383111761232457610180916040526126ca81612659565b83526126d860208201612659565b60208401526126e960408201612659565b60408401526126fa6060820161266d565b606084015261270b6080820161266d565b608084015261271c60a0820161266d565b60a084015260c081015160c084015260e081015160e08401526127426101008201612681565b6101008401526127556101208201612681565b6101208401526127686101408201612681565b61014084015261277b610160820161266d565b610160840152015160048110156116445761018082015290565b919082018092116127a257565b634e487b7160e01b5f52601160045260245ffd5b919082039182116127a257565b356001600160a01b03811681036116445790565b356001600160401b03811681036116445790565b3563ffffffff811681036116445790565b818102929181159184041417156127a257565b35906001600160401b038216820361164457565b359063ffffffff8216820361164457565b9035601e19823603018112156116445701602081359101916001600160401b03821161164457813603831361164457565b908060209392818452848401375f828201840152601f01601f1916010190565b5f525f5160206134fa5f395f51905f52602052600160405f20015490565b356001600160801b0319811681036116445790565b91908110156128c85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0381116123245760051b60200190565b61294c6020612901836122ab565b546040516335af580f60e21b81529093909283918291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163060048501612359565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611caf575f916129a2575b508181106129965750505f90565b61299f916127b6565b90565b90506020813d6020116129cc575b816129bd60209383612338565b8101031261164457515f612988565b3d91506129b0565b6001600160801b0319165f8181525f5160206134ba5f395f51905f5260205260409020805460e081901c60ff1615612c4257604051600162469ee760e01b03198152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691906101a081602481865afa908115611caf575f91612c23575b5061018081015160048110156120065715612428576005840190815415159081612c03575b50612b8a575b50506002820190602460208354926040519283809263b6cd33a760e01b82528960048301525afa908115611caf575f91612b58575b50808203612ad0575050505050565b7f09645923a9d076af2798e345c9e427afd40e7679993c496d420ee25a9a89140693816040945560018060a01b03905416805f525f51602061349a5f395f51905f52602052612b2b82612b2685875f20546127b6565b612795565b905f525f51602061349a5f395f51905f52602052835f205582519182526020820152a25f80808080612428565b90506020813d602011612b82575b81612b7360209383612338565b8101031261164457515f612ac1565b3d9150612b66565b5f8092600386019081549060018060a01b031683525f51602061349a5f395f51905f52602052612bbf604084209182546127b6565b9055825482525f51602061345a5f395f51905f526020526040822080546001600160801b03191690555560018401805463ffffffff60a01b19169055555f80612a8c565b905063ffffffff61014081600188015460a01c169201511610155f612a86565b612c3c91506101a03d81116103e8576103da8183612338565b5f612a61565b505050565b6040516335af580f60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116927f0000000000000000000000000000000000000000000000000000000000000000909116919060208280612cb984883060048501612359565b0381865afa918215611caf575f92612ecb575b506001600160a01b0381165f8181525f51602061349a5f395f51905f52602052604090205490949091828410612d05575b505050505050565b612d0f84846127b6565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939190602081602481885afa908115611caf575f91612e99575b5080821015612e915750925b83612d7f575b5050612cfd565b60205f9160446040518094819363095ea7b360e01b83528c60048401528960248401525af18015611caf57612e5a575b50853b1561164457604051638340f54960e01b81526001600160a01b0391821660048201529116602482015260448101829052935f908590606490829084905af1938415611caf5781606094612e2c927fd3f0e58aa4675ac50da832cc55494b3f7205de4eaf8f3d703da23b48105db95c97612e4a575b50612795565b60405192835260208301526040820152a25f80808080808080612d78565b5f612e5491612338565b5f612e26565b6020813d602011612e89575b81612e7360209383612338565b8101031261164457518015158114612daf575f80fd5b3d9150612e66565b905092612d72565b90506020813d602011612ec3575b81612eb460209383612338565b8101031261164457515f612d66565b3d9150612ea7565b9091506020813d602011612ef7575b81612ee760209383612338565b810103126116445751905f612ccc565b3d9150612eda565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615612f3757565b63e2517d3f60e01b5f52336004525f5160206134da5f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615612f9357565b63e2517d3f60e01b5f52336004525f51602061353a5f395f51905f5260245260445ffd5b5f8181525f5160206134fa5f395f51905f526020908152604080832033845290915290205460ff1615612fe75750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f51602061351a5f395f51905f52541661301557565b63d93c066560e01b5f5260045ffd5b61302e82826132ae565b918261303957505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b03169061319c565b5090565b6130748282613352565b918261307f57505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b0316906130c1565b80548210156128c8575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613194575f1981018181116127a25782545f198101919082116127a257818103613149575b50505080548015613135575f19019061311682826130ac565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b61317f61315961316993866130ac565b90549060031b1c928392866130ac565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f80806130fd565b505050505f90565b6001810190825f528160205260405f2054155f146131e9578054600160401b811015612324576131d66131698260018794018555846130ac565b905554915f5260205260405f2055600190565b5050505f90565b6001600160a01b0381165f9081527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee803602052604090205460ff166132a9576001600160a01b03165f8181527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee80360205260408120805460ff191660011790553391905f51602061347a5f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f51602061355a5f395f51905f525460401c161561340a57565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb007935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb02479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb0197667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c8f0305fd351e2f42e60e7e56be7d003b3c4c3b5287f7b57d4d250450410ef1764736f6c63430008210033"; readonly linkReferences: {}; readonly deployedLinkReferences: {}; readonly immutableReferences: {"10099":[{"length":32,"start":7177},{"length":32,"start":8272},{"length":32,"start":9143},{"length":32,"start":9510},{"length":32,"start":10576},{"length":32,"start":11394}],"10103":[{"length":32,"start":578},{"length":32,"start":2585},{"length":32,"start":4159},{"length":32,"start":5353},{"length":32,"start":6007},{"length":32,"start":7693},{"length":32,"start":9179},{"length":32,"start":9580},{"length":32,"start":10522},{"length":32,"start":10783},{"length":32,"start":11358}],"14015":[{"length":32,"start":11556}]}; readonly inputSourceName: "project/contracts/allocate/IndexingAgreementManager.sol"; readonly buildInfoId: "solc-0_8_33-4b238b4fe0cedd7be5f2b0aa5999a5f7433e9c71"; }; import "hardhat/types/artifacts"; declare module "hardhat/types/artifacts" { interface ArtifactMap { ["IndexingAgreementManager"]: IndexingAgreementManager$Type; ["contracts/allocate/IndexingAgreementManager.sol:IndexingAgreementManager"]: IndexingAgreementManager$Type; } }