@boostxyz/sdk 5.2.0 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BoostCore.cjs +1 -1
- package/dist/BoostCore.js +1 -1
- package/dist/{Incentive-CZw_hu64.cjs → Incentive-BpZePiOD.cjs} +2 -2
- package/dist/Incentive-BpZePiOD.cjs.map +1 -0
- package/dist/{Incentive-BwRH0A6j.js → Incentive-DBZHQ9Np.js} +152 -100
- package/dist/Incentive-DBZHQ9Np.js.map +1 -0
- package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts +16 -4
- package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +367 -19
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.test.ts +67 -25
- package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts +89 -7
- package/dist/Incentive-BwRH0A6j.js.map +0 -1
- package/dist/Incentive-CZw_hu64.cjs.map +0 -1
package/dist/BoostCore.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./generated-CRD9XfOT.cjs"),y=require("@wagmi/core"),i=require("viem"),x=require("./deployments-BGpr4ppG.cjs"),G=require("./Actions/Action.cjs"),W=require("./Actions/EventAction.cjs"),q=require("./AllowLists/AllowList.cjs"),U=require("./AllowLists/SimpleAllowList.cjs"),k=require("./SimpleDenyList-DIb4xX3j.cjs"),Q=require("./Auth/PassthroughAuth.cjs"),B=require("./Boost.cjs"),D=require("./Budget-N0YEfSt2.cjs"),Y=require("./Budgets/ManagedBudget.cjs"),J=require("./Deployable/Deployable.cjs"),S=require("./Deployable/DeployableTargetWithRBAC.cjs"),K=require("./Incentives/AllowListIncentive.cjs"),X=require("./Incentives/CGDAIncentive.cjs"),Z=require("./Incentives/ERC20Incentive.cjs"),E=require("./Incentive-CZw_hu64.cjs"),p=require("./Incentives/ERC20VariableCriteriaIncentive.cjs"),ff=require("./Incentives/PointsIncentive.cjs"),ef=require("./Validators/LimitedSignerValidator.cjs"),bf=require("./Validators/SignerValidator.cjs"),m=require("./Validators/Validator.cjs"),v=require("./errors.cjs"),g=require("./utils.cjs"),af=require("./Incentives/ERC20VariableIncentive.cjs"),L=require("viem/actions"),z=require("viem/utils"),tf="0x60806040526103e8600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550348015610064575f80fd5b5060405161589b38038061589b83398181016040528101906100869190610296565b6100958161011d60201b60201c565b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102e6565b61012b6101f960201b60201c565b156101a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101f6565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61022a82610201565b9050919050565b5f61023b82610220565b9050919050565b61024b81610231565b8114610255575f80fd5b50565b5f8151905061026681610242565b92915050565b61027581610220565b811461027f575f80fd5b50565b5f815190506102908161026c565b92915050565b5f805f606084860312156102ad576102ac6101fd565b5b5f6102ba86828701610258565b93505060206102cb86828701610282565b92505060406102dc86828701610282565b9150509250925092565b6155a8806102f35f395ff3fe6080604052600436106101b6575f3560e01c80638da5cb5b116100eb578063dd98558c11610089578063f04e283e11610063578063f04e283e1461056b578063f2fde38b14610587578063fee81cf4146105a3578063fefceca9146105df576101b6565b8063dd98558c146104ca578063e21ff73114610507578063eccc19a614610543576101b6565b8063b0e21e8a116100c5578063b0e21e8a14610424578063caa1647b1461044e578063d73792a914610476578063dd7dc9a9146104a0576101b6565b80638da5cb5b146103b45780638fe4f523146103de578063a92647dc146103fa576101b6565b80635045b866116101585780635f32c23e116101325780635f32c23e1461033c578063715018a614610364578063730f9c571461036e5780637b1039991461038a576101b6565b80635045b866146102de57806354d1f13d146103085780635edb9eb014610312576101b6565b8063346339d511610194578063346339d51461022857806339a51be51461026457806343bc42d31461028e57806346877b1a146102b6576101b6565b806313c8e2de146101ba578063219f71f0146101f6578063256929621461021e575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190613cda565b61061f565b6040516101ed9190613fb6565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190614000565b6108c7565b005b610226610912565b005b348015610233575f80fd5b5061024e6004803603810190610249919061405e565b610963565b60405161025b9190614162565b60405180910390f35b34801561026f575f80fd5b50610278610a3a565b604051610285919061418a565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af91906141cd565b610a5f565b005b3480156102c1575f80fd5b506102dc60048036038101906102d79190614000565b610a93565b005b3480156102e9575f80fd5b506102f2610ade565b6040516102ff919061418a565b60405180910390f35b610310610b03565b005b34801561031d575f80fd5b50610326610b3c565b6040516103339190614207565b60405180910390f35b348015610347575f80fd5b50610362600480360381019061035d9190614220565b610b47565b005b61036c610d34565b005b610388600480360381019061038391906142bf565b610d47565b005b348015610395575f80fd5b5061039e611291565b6040516103ab9190614375565b60405180910390f35b3480156103bf575f80fd5b506103c86112b6565b6040516103d5919061418a565b60405180910390f35b6103f860048036038101906103f3919061438e565b6112de565b005b348015610405575f80fd5b5061040e6112f3565b60405161041b9190614432565b60405180910390f35b34801561042f575f80fd5b50610438611318565b604051610445919061445a565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f91906141cd565b611332565b005b348015610481575f80fd5b5061048a6113b4565b604051610497919061445a565b60405180910390f35b3480156104ab575f80fd5b506104b46113ba565b6040516104c1919061445a565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190614473565b6113d3565b6040516104fe9291906144e4565b60405180910390f35b348015610512575f80fd5b5061052d6004803603810190610528919061450b565b611ab9565b60405161053a9190613fb6565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190614000565b6126be565b005b61058560048036038101906105809190614000565b612709565b005b6105a1600480360381019061059c9190614000565b612747565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190614000565b612770565b6040516105d69190614207565b60405180910390f35b3480156105ea575f80fd5b506106056004803603810190610600919061405e565b612789565b604051610616959493929190614565565b60405180910390f35b610627613aec565b5f828154811061063a576106396145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561082757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107de575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6108cf6127e6565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61091b61281d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61096b613ba2565b60065f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff1660028111156109aa576109a9614089565b5b60028111156109bc576109bb614089565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a676127e6565b80600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610a9b6127e6565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd212685403610b655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610b7c8383612827565b90505f60065f8381526020019081526020015f2090505f808581548110610ba657610ba56145b6565b5b905f5260205f2090600802016004018481548110610bc757610bc66145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f826002015461271067ffffffffffffffff168460010154610c139190614610565b610c1d919061467e565b90505f610c2a8484612859565b905081811115610d1f575f8282610c4191906146ae565b90505f61271067ffffffffffffffff16866002015483610c619190614610565b610c6b919061467e565b9050610c778682612a60565b80866001015410610ca15780866001015f828254610c9591906146ae565b92505081905550610cab565b5f86600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16888a7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610d149190614207565b60405180910390a450505b50505050503868929eee149b4bd21268555050565b610d3c6127e6565b610d455f612c6d565b565b3068929eee149b4bd212685403610d655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610d8557610d846145b6565b5b905f5260205f20906008020190505f610d9e8888612827565b90505f60065f8381526020019081526020015f2090505f836004018981548110610dcb57610dca6145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050836002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8689896040518463ffffffff1660e01b8152600401610e559392919061473b565b602060405180830381865afa158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9491906147a0565b610eca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b6900348c8c898c8c6040518763ffffffff1660e01b8152600401610f2f9594939291906147cb565b60206040518083038185885af1158015610f4b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7091906147a0565b610fa6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611003575f61100e565b61100d8383612859565b5b90508173ffffffffffffffffffffffffffffffffffffffff1663bb1757cf878a8a6040518463ffffffff1660e01b815260040161104d9392919061473b565b6020604051808303815f875af1158015611069573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d91906147a0565b6110d2578588886040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016110c99392919061473b565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361112f575f61113a565b6111398484612859565b5b90505f81831161114a575f611157565b818361115691906146ae565b5b90505f61271067ffffffffffffffff168660020154836111779190614610565b611181919061467e565b90505f811115611221576111958682612a60565b80866001015f8282546111a891906146ae565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516112189190614207565b60405180910390a45b8873ffffffffffffffffffffffffffffffffffffffff168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f60405161126d9392919061473b565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6112ec858585858533610d47565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900467ffffffffffffffff1681565b61133a6127e6565b61271067ffffffffffffffff168167ffffffffffffffff1610611389576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61271081565b60055f9054906101000a900467ffffffffffffffff1681565b5f803068929eee149b4bd2126854036113f35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808581548110611413576114126145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561160057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115b7575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61170f8686612827565b90505f60065f8381526020019081526020015f2090505f898981019061173591906149a2565b90505f816020015180602001905181019061175091906149fd565b90505f61271067ffffffffffffffff168460020154836117709190614610565b61177a919061467e565b90505f811115611979576001600281111561179857611797614089565b5b845f015f9054906101000a900460ff1660028111156117ba576117b9614089565b5b14806117f857505f60028111156117d4576117d3614089565b5b845f015f9054906101000a900460ff1660028111156117f6576117f5614089565b5b145b156118535761184e835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b611925565b60028081111561186657611865614089565b5b845f015f9054906101000a900460ff16600281111561188857611887614089565b5b0361192457835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016118f69493929190614a4b565b5f604051808303815f87803b15801561190d575f80fd5b505af115801561191f573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516119709190614207565b60405180910390a45b5f8087608001518b81518110611992576119916145b6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016119c69190614b3b565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016119f19190614b93565b60408051808303815f875af1158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a309190614bc7565b915091505f8203611a7c57338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611a739392919061473b565b60405180910390fd5b82866001015f828254611a8f91906146ae565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b611ac1613aec565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611bb5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401611b74919061418a565b602060405180830381865afa158015611b8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb391906147a0565b155b15611bec576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611c0a5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611c6385858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612d7c565b806020019051810190611c769190614f65565b9050611c84815f0151612e15565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611dae578160a00151600460149054906101000a900467ffffffffffffffff16611da99190614fac565b611e59565b8160a0015160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1539a6b88886040518363ffffffff1660e01b8152600401611e0f929190614fe7565b602060405180830381865afa158015611e2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4e9190615009565b611e589190614fac565b5b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611ebf7fe67157950000000000000000000000000000000000000000000000000000000083602001516001612ef0565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f2f7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612ef0565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611fcb575f612067565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7f1ecff88886040518363ffffffff1660e01b8152600401612027929190614fe7565b602060405180830381865afa158015612042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120669190615034565b5b90506120938360800151845f0151846005015f9054906101000a900467ffffffffffffffff1684612f12565b8260040190805190602001906120aa929190613bf4565b505f73ffffffffffffffffffffffffffffffffffffffff1683604001516020015173ffffffffffffffffffffffffffffffffffffffff161461211b576121167f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001612ef0565b612204565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016121969190615099565b602060405180830381865afa1580156121b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d591906147a0565b6121df575f612203565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b826001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122fa577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016122f19291906150b2565b60405180910390fd5b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f8054905061237e91906146ae565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8560040180549050866001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161242394939291906150d9565b60405180910390a481604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561260d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125c4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505094505050503868929eee149b4bd21268555092915050565b6126c66127e6565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127116127e6565b63389a75e1600c52805f526020600c20805442111561273757636f5e88185f526004601cfd5b5f81555061274481612c6d565b50565b61274f6127e6565b8060601b61276457637448fbae5f526004601cfd5b61276d81612c6d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6006602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461281b576382b429005f526004601cfd5b565b5f6202a300905090565b5f828260405160200161283b92919061513c565b60405160208183030381529060405280519060200120905092915050565b5f6001600281111561286e5761286d614089565b5b835f015f9054906101000a900460ff1660028111156128905761288f614089565b5b14806128ce57505f60028111156128aa576128a9614089565b5b835f015f9054906101000a900460ff1660028111156128cc576128cb614089565b5b145b1561297557825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161292f919061418a565b602060405180830381865afa15801561294a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296e91906149fd565b9050612a5a565b60028081111561298857612987614089565b5b835f015f9054906101000a900460ff1660028111156129aa576129a9614089565b5b03612a5657825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8385600301546040518363ffffffff1660e01b8152600401612a10929190615167565b602060405180830381865afa158015612a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a4f91906149fd565b9050612a5a565b5f90505b92915050565b60016002811115612a7457612a73614089565b5b825f015f9054906101000a900460ff166002811115612a9657612a95614089565b5b1480612ad457505f6002811115612ab057612aaf614089565b5b825f015f9054906101000a900460ff166002811115612ad257612ad1614089565b5b145b15612b7957612b4860035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b612b74825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661300b565b612c69565b600280811115612b8c57612b8b614089565b5b825f015f9054906101000a900460ff166002811115612bae57612bad614089565b5b03612c6857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b8152600401612c3a9493929190614a4b565b5f604051808303815f87803b158015612c51575f80fd5b505af1158015612c63573d5f803e3d5ffd5b505050505b5b5050565b612c756130fe565b15612cda577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612d30565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612d73576390b8ec185f526004601cfd5b5f603452505050565b6060815115612e105760405190506020810160048301805184518501811983525b80861015612df6576001860195508551601f1a80612de6576001870196508651601f1a5f198652607f8111612dd457600181013887395b6001607f821601860195505050612df1565b808553600185019450505b612d9d565b81835260208501840385525f845260208401604052505050505b919050565b612e3f7fe49cedd70000000000000000000000000000000000000000000000000000000082613102565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401612e78919061418a565b602060405180830381865afa158015612e93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb791906147a0565b612eed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612eff848460200151613102565b612f0983836131f9565b90509392505050565b60605f60015f80549050612f2691906146ae565b9050855167ffffffffffffffff811115612f4357612f4261481b565b5b604051908082528060200260200182016040528015612f715781602001602082028036833780820191505090505b5091505f5b865181101561300157612fa7878281518110612f9557612f946145b6565b5b602002602001015187878786866132b5565b838281518110612fba57612fb96145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050612f76565b5050949350505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613045919061418a565b602060405180830381865afa158015613060573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061308491906149fd565b905060055f9054906101000a900467ffffffffffffffff1667ffffffffffffffff168110156130fa576130f960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b5b5050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806131b157508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b81526004016131709190615099565b602060405180830381865afa15801561318b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af91906147a0565b155b156131f55781816040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016131ec9291906150b2565b60405180910390fd5b5050565b5f825f015161320c578260200151613230565b61322f836020015173ffffffffffffffffffffffffffffffffffffffff1661365f565b5b9050825f0151801561323f5750815b156132af578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016132819190614b93565b5f604051808303815f87803b158015613298575f80fd5b505af11580156132aa573d5f803e3d5ffd5b505050505b92915050565b5f80876040015190506132ec7fa9216705000000000000000000000000000000000000000000000000000000008960200151613102565b875f0151613357577fa92167050000000000000000000000000000000000000000000000000000000088602001516040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161334e9291906150b2565b60405180910390fd5b6133827fa921670500000000000000000000000000000000000000000000000000000000895f612ef0565b91505f8273ffffffffffffffffffffffffffffffffffffffff16634e7165a2836040518263ffffffff1660e01b81526004016133be9190614b93565b5f60405180830381865afa1580156133d8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190613400919061518e565b90505f8151146135ed575f80613416838a613671565b915091508973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b81526004016134539190614b93565b6020604051808303815f875af115801561346f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349391906147a0565b6134c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b81526004016135029190614b93565b6020604051808303815f875af115801561351e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354291906147a0565b613578576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061358d9190615289565b90506135e988885f73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036135d15783602001516135d3565b8b5b858e67ffffffffffffffff16865f01518b613949565b5050505b8273ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b81526004016136269190614b93565b5f604051808303815f87803b15801561363d575f80fd5b505af115801561364f573d5f803e3d5ffd5b5050505050509695505050505050565b5f61366a5f83613a9b565b9050919050565b60605f80848060200190518101906136899190615289565b90505f849050600160028111156136a3576136a2614089565b5b825f015160028111156136b9576136b8614089565b5b14806136eb57505f60028111156136d3576136d2614089565b5b825f015160028111156136e9576136e8614089565b5b145b156137df575f82606001518060200190518101906137099190615309565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f01516137329190614610565b61373c919061467e565b90505f604051806020016040528083815250905080604051602001613761919061534e565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016137c191906153c7565b60405160208183030381529060405282965096505050505050613942565b6002808111156137f2576137f1614089565b5b825f0151600281111561380857613807614089565b5b03613910575f82606001518060200190518101906138269190615464565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516138509190614610565b61385a919061467e565b90505f6040518060600160405280845f01518152602001838152602001846040015181525090508060405160200161389291906154f8565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016138f291906153c7565b60405160208183030381529060405282965096505050505050613942565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561395d5761395c614089565b5b8360028111156139705761396f614089565b5b0361398f57818060200190518101906139899190615518565b50809150505b5f6040518060a001604052808560028111156139ae576139ad614089565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018381525090508060065f6139ef8c8c612827565b81526020019081526020015f205f820151815f015f6101000a81548160ff02191690836002811115613a2457613a23614089565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613ae25763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f6002811115613bc057613bbf614089565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613c6a579160200282015b82811115613c69578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c12565b5b509050613c779190613c7b565b5090565b5b80821115613c92575f815f905550600101613c7c565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b613cb981613ca7565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee613c9f565b5b5f613cfc84828501613cc6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f613d47613d42613d3d84613d05565b613d24565b613d05565b9050919050565b5f613d5882613d2d565b9050919050565b5f613d6982613d4e565b9050919050565b613d7981613d5f565b82525050565b5f613d8982613d4e565b9050919050565b613d9981613d7f565b82525050565b5f613da982613d4e565b9050919050565b613db981613d9f565b82525050565b5f613dc982613d2d565b9050919050565b5f613dda82613dbf565b9050919050565b613dea81613dd0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613e2382613d4e565b9050919050565b613e3381613e19565b82525050565b5f613e448383613e2a565b60208301905092915050565b5f602082019050919050565b5f613e6682613df0565b613e708185613dfa565b9350613e7b83613e0a565b805f5b83811015613eab578151613e928882613e39565b9750613e9d83613e50565b925050600181019050613e7e565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613ed481613eb8565b82525050565b613ee381613ca7565b82525050565b5f613ef382613d05565b9050919050565b613f0381613ee9565b82525050565b5f61010083015f830151613f1f5f860182613d70565b506020830151613f326020860182613d90565b506040830151613f456040860182613db0565b506060830151613f586060860182613de1565b5060808301518482036080860152613f708282613e5c565b91505060a0830151613f8560a0860182613ecb565b5060c0830151613f9860c0860182613eda565b5060e0830151613fab60e0860182613efa565b508091505092915050565b5f6020820190508181035f830152613fce8184613f09565b905092915050565b613fdf81613ee9565b8114613fe9575f80fd5b50565b5f81359050613ffa81613fd6565b92915050565b5f6020828403121561401557614014613c9f565b5b5f61402284828501613fec565b91505092915050565b5f819050919050565b61403d8161402b565b8114614047575f80fd5b50565b5f8135905061405881614034565b92915050565b5f6020828403121561407357614072613c9f565b5b5f6140808482850161404a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600381106140c7576140c6614089565b5b50565b5f8190506140d7826140b6565b919050565b5f6140e6826140ca565b9050919050565b6140f6816140dc565b82525050565b60a082015f8201516141105f8501826140ed565b5060208201516141236020850182613efa565b5060408201516141366040850182613eda565b5060608201516141496060850182613eda565b50608082015161415c6080850182613eda565b50505050565b5f60a0820190506141755f8301846140fc565b92915050565b61418481613ee9565b82525050565b5f60208201905061419d5f83018461417b565b92915050565b6141ac81613eb8565b81146141b6575f80fd5b50565b5f813590506141c7816141a3565b92915050565b5f602082840312156141e2576141e1613c9f565b5b5f6141ef848285016141b9565b91505092915050565b61420181613ca7565b82525050565b5f60208201905061421a5f8301846141f8565b92915050565b5f806040838503121561423657614235613c9f565b5b5f61424385828601613cc6565b925050602061425485828601613cc6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261427f5761427e61425e565b5b8235905067ffffffffffffffff81111561429c5761429b614262565b5b6020830191508360018202830111156142b8576142b7614266565b5b9250929050565b5f805f805f8060a087890312156142d9576142d8613c9f565b5b5f6142e689828a01613cc6565b96505060206142f789828a01613cc6565b955050604061430889828a01613fec565b945050606087013567ffffffffffffffff81111561432957614328613ca3565b5b61433589828a0161426a565b9350935050608061434889828a01613fec565b9150509295509295509295565b5f61435f82613d4e565b9050919050565b61436f81614355565b82525050565b5f6020820190506143885f830184614366565b92915050565b5f805f805f608086880312156143a7576143a6613c9f565b5b5f6143b488828901613cc6565b95505060206143c588828901613cc6565b94505060406143d688828901613fec565b935050606086013567ffffffffffffffff8111156143f7576143f6613ca3565b5b6144038882890161426a565b92509250509295509295909350565b5f61441c82613d4e565b9050919050565b61442c81614412565b82525050565b5f6020820190506144455f830184614423565b92915050565b61445481613eb8565b82525050565b5f60208201905061446d5f83018461444b565b92915050565b5f805f806060858703121561448b5761448a613c9f565b5b5f85013567ffffffffffffffff8111156144a8576144a7613ca3565b5b6144b48782880161426a565b945094505060206144c787828801613cc6565b92505060406144d887828801613cc6565b91505092959194509250565b5f6040820190506144f75f8301856141f8565b614504602083018461417b565b9392505050565b5f806020838503121561452157614520613c9f565b5b5f83013567ffffffffffffffff81111561453e5761453d613ca3565b5b61454a8582860161426a565b92509250509250929050565b61455f816140dc565b82525050565b5f60a0820190506145785f830188614556565b614585602083018761417b565b61459260408301866141f8565b61459f60608301856141f8565b6145ac60808301846141f8565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61461a82613ca7565b915061462583613ca7565b925082820261463381613ca7565b9150828204841483151761464a576146496145e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468882613ca7565b915061469383613ca7565b9250826146a3576146a2614651565b5b828204905092915050565b5f6146b882613ca7565b91506146c383613ca7565b92508282039050818111156146db576146da6145e3565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61471a83856146e1565b93506147278385846146f1565b614730836146ff565b840190509392505050565b5f60408201905061474e5f83018661417b565b818103602083015261476181848661470f565b9050949350505050565b5f8115159050919050565b61477f8161476b565b8114614789575f80fd5b50565b5f8151905061479a81614776565b92915050565b5f602082840312156147b5576147b4613c9f565b5b5f6147c28482850161478c565b91505092915050565b5f6080820190506147de5f8301886141f8565b6147eb60208301876141f8565b6147f8604083018661417b565b818103606083015261480b81848661470f565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614851826146ff565b810181811067ffffffffffffffff821117156148705761486f61481b565b5b80604052505050565b5f614882613c96565b905061488e8282614848565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156148b5576148b461481b565b5b6148be826146ff565b9050602081019050919050565b5f6148dd6148d88461489b565b614879565b9050828152602081018484840111156148f9576148f8614897565b5b6149048482856146f1565b509392505050565b5f82601f8301126149205761491f61425e565b5b81356149308482602086016148cb565b91505092915050565b5f6040828403121561494e5761494d614817565b5b6149586040614879565b90505f61496784828501613fec565b5f83015250602082013567ffffffffffffffff81111561498a57614989614893565b5b6149968482850161490c565b60208301525092915050565b5f602082840312156149b7576149b6613c9f565b5b5f82013567ffffffffffffffff8111156149d4576149d3613ca3565b5b6149e084828501614939565b91505092915050565b5f815190506149f781613cb0565b92915050565b5f60208284031215614a1257614a11613c9f565b5b5f614a1f848285016149e9565b91505092915050565b50565b5f614a365f836146e1565b9150614a4182614a28565b5f82019050919050565b5f60a082019050614a5e5f83018761417b565b614a6b602083018661417b565b614a7860408301856141f8565b614a8560608301846141f8565b8181036080830152614a9681614a2b565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f614ad382614aa1565b614add8185614aab565b9350614aed818560208601614abb565b614af6816146ff565b840191505092915050565b5f604083015f830151614b165f860182613efa565b5060208301518482036020860152614b2e8282614ac9565b9150508091505092915050565b5f6020820190508181035f830152614b538184614b01565b905092915050565b5f614b6582614aa1565b614b6f81856146e1565b9350614b7f818560208601614abb565b614b88816146ff565b840191505092915050565b5f6020820190508181035f830152614bab8184614b5b565b905092915050565b5f81519050614bc181613fd6565b92915050565b5f8060408385031215614bdd57614bdc613c9f565b5b5f614bea858286016149e9565b9250506020614bfb85828601614bb3565b9150509250929050565b5f614c0f82613d05565b9050919050565b5f614c2082614c05565b9050919050565b614c3081614c16565b8114614c3a575f80fd5b50565b5f81519050614c4b81614c27565b92915050565b5f614c63614c5e8461489b565b614879565b905082815260208101848484011115614c7f57614c7e614897565b5b614c8a848285614abb565b509392505050565b5f82601f830112614ca657614ca561425e565b5b8151614cb6848260208601614c51565b91505092915050565b5f60608284031215614cd457614cd3614817565b5b614cde6060614879565b90505f614ced8482850161478c565b5f830152506020614d0084828501614bb3565b602083015250604082015167ffffffffffffffff811115614d2457614d23614893565b5b614d3084828501614c92565b60408301525092915050565b5f67ffffffffffffffff821115614d5657614d5561481b565b5b602082029050602081019050919050565b5f614d79614d7484614d3c565b614879565b90508083825260208201905060208402830185811115614d9c57614d9b614266565b5b835b81811015614de357805167ffffffffffffffff811115614dc157614dc061425e565b5b808601614dce8982614cbf565b85526020850194505050602081019050614d9e565b5050509392505050565b5f82601f830112614e0157614e0061425e565b5b8151614e11848260208601614d67565b91505092915050565b5f81519050614e28816141a3565b92915050565b5f6101008284031215614e4457614e43614817565b5b614e4f610100614879565b90505f614e5e84828501614c3d565b5f83015250602082015167ffffffffffffffff811115614e8157614e80614893565b5b614e8d84828501614cbf565b602083015250604082015167ffffffffffffffff811115614eb157614eb0614893565b5b614ebd84828501614cbf565b604083015250606082015167ffffffffffffffff811115614ee157614ee0614893565b5b614eed84828501614cbf565b606083015250608082015167ffffffffffffffff811115614f1157614f10614893565b5b614f1d84828501614ded565b60808301525060a0614f3184828501614e1a565b60a08301525060c0614f45848285016149e9565b60c08301525060e0614f5984828501614bb3565b60e08301525092915050565b5f60208284031215614f7a57614f79613c9f565b5b5f82015167ffffffffffffffff811115614f9757614f96613ca3565b5b614fa384828501614e2e565b91505092915050565b5f614fb682613eb8565b9150614fc183613eb8565b9250828201905067ffffffffffffffff811115614fe157614fe06145e3565b5b92915050565b5f6020820190508181035f83015261500081848661470f565b90509392505050565b5f6020828403121561501e5761501d613c9f565b5b5f61502b84828501614e1a565b91505092915050565b5f6020828403121561504957615048613c9f565b5b5f61505684828501614bb3565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6150938161505f565b82525050565b5f6020820190506150ac5f83018461508a565b92915050565b5f6040820190506150c55f83018561508a565b6150d2602083018461417b565b9392505050565b5f6080820190506150ec5f8301876141f8565b6150f9602083018661417b565b615106604083018561417b565b615113606083018461417b565b95945050505050565b5f819050919050565b61513661513182613ca7565b61511c565b82525050565b5f6151478285615125565b6020820191506151578284615125565b6020820191508190509392505050565b5f60408201905061517a5f83018561417b565b61518760208301846141f8565b9392505050565b5f602082840312156151a3576151a2613c9f565b5b5f82015167ffffffffffffffff8111156151c0576151bf613ca3565b5b6151cc84828501614c92565b91505092915050565b600381106151e1575f80fd5b50565b5f815190506151f2816151d5565b92915050565b5f6080828403121561520d5761520c614817565b5b6152176080614879565b90505f615226848285016151e4565b5f83015250602061523984828501614bb3565b602083015250604061524d84828501614bb3565b604083015250606082015167ffffffffffffffff81111561527157615270614893565b5b61527d84828501614c92565b60608301525092915050565b5f6020828403121561529e5761529d613c9f565b5b5f82015167ffffffffffffffff8111156152bb576152ba613ca3565b5b6152c7848285016151f8565b91505092915050565b5f602082840312156152e5576152e4614817565b5b6152ef6020614879565b90505f6152fe848285016149e9565b5f8301525092915050565b5f6020828403121561531e5761531d613c9f565b5b5f61532b848285016152d0565b91505092915050565b602082015f8201516153485f850182613eda565b50505050565b5f6020820190506153615f830184615334565b92915050565b5f608083015f83015161537c5f8601826140ed565b50602083015161538f6020860182613efa565b5060408301516153a26040860182613efa565b50606083015184820360608601526153ba8282614ac9565b9150508091505092915050565b5f6020820190508181035f8301526153df8184615367565b905092915050565b5f606082840312156153fc576153fb614817565b5b6154066060614879565b90505f615415848285016149e9565b5f830152506020615428848285016149e9565b602083015250604082015167ffffffffffffffff81111561544c5761544b614893565b5b61545884828501614c92565b60408301525092915050565b5f6020828403121561547957615478613c9f565b5b5f82015167ffffffffffffffff81111561549657615495613ca3565b5b6154a2848285016153e7565b91505092915050565b5f606083015f8301516154c05f860182613eda565b5060208301516154d36020860182613eda565b50604083015184820360408601526154eb8282614ac9565b9150508091505092915050565b5f6020820190508181035f83015261551081846154ab565b905092915050565b5f806040838503121561552e5761552d613c9f565b5b5f61553b858286016149e9565b925050602083015167ffffffffffffffff81111561555c5761555b613ca3565b5b61556885828601614c92565b915050925092905056fea2646970667358221220be55f1e697f2023485c9127bd515ad65d975731fa37c63396acdde5e0b7d137764736f6c634300081a0033";function O(t){const e=t.state.current,f=t.state.connections.get(e),b=f==null?void 0:f.accounts,a=b==null?void 0:b[0],c=t.chains.find(n=>n.id===(f==null?void 0:f.chainId)),d=t.state.status;switch(d){case"connected":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:d};case"reconnecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!a,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:d};case"connecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:d};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:d}}}function cf(t){return t.state.chainId}function N(t,e,f){const b=t[e.name];if(typeof b=="function")return b;const a=t[f];return typeof a=="function"?a:c=>e(t,c)}const df="2.13.8",nf=()=>`@wagmi/core@${df}`;var M=function(t,e,f,b){if(f==="a"&&!b)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!b:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?b:f==="a"?b.call(t):b?b.value:e.get(t)},_,T;class A extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return nf()}constructor(e,f={}){var c;super(),_.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const b=f.cause instanceof A?f.cause.details:(c=f.cause)!=null&&c.message?f.cause.message:f.details,a=f.cause instanceof A&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...a?[`Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...b?[`Details: ${b}`]:[],`Version: ${this.version}`].join(`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./generated-CRD9XfOT.cjs"),y=require("@wagmi/core"),i=require("viem"),x=require("./deployments-BGpr4ppG.cjs"),G=require("./Actions/Action.cjs"),W=require("./Actions/EventAction.cjs"),q=require("./AllowLists/AllowList.cjs"),U=require("./AllowLists/SimpleAllowList.cjs"),k=require("./SimpleDenyList-DIb4xX3j.cjs"),Q=require("./Auth/PassthroughAuth.cjs"),B=require("./Boost.cjs"),D=require("./Budget-N0YEfSt2.cjs"),Y=require("./Budgets/ManagedBudget.cjs"),J=require("./Deployable/Deployable.cjs"),S=require("./Deployable/DeployableTargetWithRBAC.cjs"),K=require("./Incentives/AllowListIncentive.cjs"),X=require("./Incentives/CGDAIncentive.cjs"),Z=require("./Incentives/ERC20Incentive.cjs"),E=require("./Incentive-BpZePiOD.cjs"),p=require("./Incentives/ERC20VariableCriteriaIncentive.cjs"),ff=require("./Incentives/PointsIncentive.cjs"),ef=require("./Validators/LimitedSignerValidator.cjs"),bf=require("./Validators/SignerValidator.cjs"),m=require("./Validators/Validator.cjs"),v=require("./errors.cjs"),g=require("./utils.cjs"),af=require("./Incentives/ERC20VariableIncentive.cjs"),L=require("viem/actions"),z=require("viem/utils"),tf="0x60806040526103e8600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550348015610064575f80fd5b5060405161589b38038061589b83398181016040528101906100869190610296565b6100958161011d60201b60201c565b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102e6565b61012b6101f960201b60201c565b156101a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101f6565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61022a82610201565b9050919050565b5f61023b82610220565b9050919050565b61024b81610231565b8114610255575f80fd5b50565b5f8151905061026681610242565b92915050565b61027581610220565b811461027f575f80fd5b50565b5f815190506102908161026c565b92915050565b5f805f606084860312156102ad576102ac6101fd565b5b5f6102ba86828701610258565b93505060206102cb86828701610282565b92505060406102dc86828701610282565b9150509250925092565b6155a8806102f35f395ff3fe6080604052600436106101b6575f3560e01c80638da5cb5b116100eb578063dd98558c11610089578063f04e283e11610063578063f04e283e1461056b578063f2fde38b14610587578063fee81cf4146105a3578063fefceca9146105df576101b6565b8063dd98558c146104ca578063e21ff73114610507578063eccc19a614610543576101b6565b8063b0e21e8a116100c5578063b0e21e8a14610424578063caa1647b1461044e578063d73792a914610476578063dd7dc9a9146104a0576101b6565b80638da5cb5b146103b45780638fe4f523146103de578063a92647dc146103fa576101b6565b80635045b866116101585780635f32c23e116101325780635f32c23e1461033c578063715018a614610364578063730f9c571461036e5780637b1039991461038a576101b6565b80635045b866146102de57806354d1f13d146103085780635edb9eb014610312576101b6565b8063346339d511610194578063346339d51461022857806339a51be51461026457806343bc42d31461028e57806346877b1a146102b6576101b6565b806313c8e2de146101ba578063219f71f0146101f6578063256929621461021e575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190613cda565b61061f565b6040516101ed9190613fb6565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190614000565b6108c7565b005b610226610912565b005b348015610233575f80fd5b5061024e6004803603810190610249919061405e565b610963565b60405161025b9190614162565b60405180910390f35b34801561026f575f80fd5b50610278610a3a565b604051610285919061418a565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af91906141cd565b610a5f565b005b3480156102c1575f80fd5b506102dc60048036038101906102d79190614000565b610a93565b005b3480156102e9575f80fd5b506102f2610ade565b6040516102ff919061418a565b60405180910390f35b610310610b03565b005b34801561031d575f80fd5b50610326610b3c565b6040516103339190614207565b60405180910390f35b348015610347575f80fd5b50610362600480360381019061035d9190614220565b610b47565b005b61036c610d34565b005b610388600480360381019061038391906142bf565b610d47565b005b348015610395575f80fd5b5061039e611291565b6040516103ab9190614375565b60405180910390f35b3480156103bf575f80fd5b506103c86112b6565b6040516103d5919061418a565b60405180910390f35b6103f860048036038101906103f3919061438e565b6112de565b005b348015610405575f80fd5b5061040e6112f3565b60405161041b9190614432565b60405180910390f35b34801561042f575f80fd5b50610438611318565b604051610445919061445a565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f91906141cd565b611332565b005b348015610481575f80fd5b5061048a6113b4565b604051610497919061445a565b60405180910390f35b3480156104ab575f80fd5b506104b46113ba565b6040516104c1919061445a565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190614473565b6113d3565b6040516104fe9291906144e4565b60405180910390f35b348015610512575f80fd5b5061052d6004803603810190610528919061450b565b611ab9565b60405161053a9190613fb6565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190614000565b6126be565b005b61058560048036038101906105809190614000565b612709565b005b6105a1600480360381019061059c9190614000565b612747565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190614000565b612770565b6040516105d69190614207565b60405180910390f35b3480156105ea575f80fd5b506106056004803603810190610600919061405e565b612789565b604051610616959493929190614565565b60405180910390f35b610627613aec565b5f828154811061063a576106396145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561082757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107de575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6108cf6127e6565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61091b61281d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61096b613ba2565b60065f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff1660028111156109aa576109a9614089565b5b60028111156109bc576109bb614089565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a676127e6565b80600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610a9b6127e6565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd212685403610b655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610b7c8383612827565b90505f60065f8381526020019081526020015f2090505f808581548110610ba657610ba56145b6565b5b905f5260205f2090600802016004018481548110610bc757610bc66145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f826002015461271067ffffffffffffffff168460010154610c139190614610565b610c1d919061467e565b90505f610c2a8484612859565b905081811115610d1f575f8282610c4191906146ae565b90505f61271067ffffffffffffffff16866002015483610c619190614610565b610c6b919061467e565b9050610c778682612a60565b80866001015410610ca15780866001015f828254610c9591906146ae565b92505081905550610cab565b5f86600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16888a7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610d149190614207565b60405180910390a450505b50505050503868929eee149b4bd21268555050565b610d3c6127e6565b610d455f612c6d565b565b3068929eee149b4bd212685403610d655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610d8557610d846145b6565b5b905f5260205f20906008020190505f610d9e8888612827565b90505f60065f8381526020019081526020015f2090505f836004018981548110610dcb57610dca6145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050836002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8689896040518463ffffffff1660e01b8152600401610e559392919061473b565b602060405180830381865afa158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9491906147a0565b610eca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b6900348c8c898c8c6040518763ffffffff1660e01b8152600401610f2f9594939291906147cb565b60206040518083038185885af1158015610f4b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7091906147a0565b610fa6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611003575f61100e565b61100d8383612859565b5b90508173ffffffffffffffffffffffffffffffffffffffff1663bb1757cf878a8a6040518463ffffffff1660e01b815260040161104d9392919061473b565b6020604051808303815f875af1158015611069573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d91906147a0565b6110d2578588886040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016110c99392919061473b565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361112f575f61113a565b6111398484612859565b5b90505f81831161114a575f611157565b818361115691906146ae565b5b90505f61271067ffffffffffffffff168660020154836111779190614610565b611181919061467e565b90505f811115611221576111958682612a60565b80866001015f8282546111a891906146ae565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516112189190614207565b60405180910390a45b8873ffffffffffffffffffffffffffffffffffffffff168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f60405161126d9392919061473b565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6112ec858585858533610d47565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900467ffffffffffffffff1681565b61133a6127e6565b61271067ffffffffffffffff168167ffffffffffffffff1610611389576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61271081565b60055f9054906101000a900467ffffffffffffffff1681565b5f803068929eee149b4bd2126854036113f35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808581548110611413576114126145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561160057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115b7575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61170f8686612827565b90505f60065f8381526020019081526020015f2090505f898981019061173591906149a2565b90505f816020015180602001905181019061175091906149fd565b90505f61271067ffffffffffffffff168460020154836117709190614610565b61177a919061467e565b90505f811115611979576001600281111561179857611797614089565b5b845f015f9054906101000a900460ff1660028111156117ba576117b9614089565b5b14806117f857505f60028111156117d4576117d3614089565b5b845f015f9054906101000a900460ff1660028111156117f6576117f5614089565b5b145b156118535761184e835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b611925565b60028081111561186657611865614089565b5b845f015f9054906101000a900460ff16600281111561188857611887614089565b5b0361192457835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016118f69493929190614a4b565b5f604051808303815f87803b15801561190d575f80fd5b505af115801561191f573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516119709190614207565b60405180910390a45b5f8087608001518b81518110611992576119916145b6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016119c69190614b3b565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016119f19190614b93565b60408051808303815f875af1158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a309190614bc7565b915091505f8203611a7c57338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611a739392919061473b565b60405180910390fd5b82866001015f828254611a8f91906146ae565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b611ac1613aec565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611bb5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401611b74919061418a565b602060405180830381865afa158015611b8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb391906147a0565b155b15611bec576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611c0a5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611c6385858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612d7c565b806020019051810190611c769190614f65565b9050611c84815f0151612e15565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611dae578160a00151600460149054906101000a900467ffffffffffffffff16611da99190614fac565b611e59565b8160a0015160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1539a6b88886040518363ffffffff1660e01b8152600401611e0f929190614fe7565b602060405180830381865afa158015611e2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4e9190615009565b611e589190614fac565b5b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611ebf7fe67157950000000000000000000000000000000000000000000000000000000083602001516001612ef0565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f2f7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612ef0565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611fcb575f612067565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7f1ecff88886040518363ffffffff1660e01b8152600401612027929190614fe7565b602060405180830381865afa158015612042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120669190615034565b5b90506120938360800151845f0151846005015f9054906101000a900467ffffffffffffffff1684612f12565b8260040190805190602001906120aa929190613bf4565b505f73ffffffffffffffffffffffffffffffffffffffff1683604001516020015173ffffffffffffffffffffffffffffffffffffffff161461211b576121167f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001612ef0565b612204565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016121969190615099565b602060405180830381865afa1580156121b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d591906147a0565b6121df575f612203565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b826001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122fa577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016122f19291906150b2565b60405180910390fd5b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f8054905061237e91906146ae565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8560040180549050866001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161242394939291906150d9565b60405180910390a481604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561260d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125c4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505094505050503868929eee149b4bd21268555092915050565b6126c66127e6565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127116127e6565b63389a75e1600c52805f526020600c20805442111561273757636f5e88185f526004601cfd5b5f81555061274481612c6d565b50565b61274f6127e6565b8060601b61276457637448fbae5f526004601cfd5b61276d81612c6d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6006602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461281b576382b429005f526004601cfd5b565b5f6202a300905090565b5f828260405160200161283b92919061513c565b60405160208183030381529060405280519060200120905092915050565b5f6001600281111561286e5761286d614089565b5b835f015f9054906101000a900460ff1660028111156128905761288f614089565b5b14806128ce57505f60028111156128aa576128a9614089565b5b835f015f9054906101000a900460ff1660028111156128cc576128cb614089565b5b145b1561297557825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161292f919061418a565b602060405180830381865afa15801561294a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296e91906149fd565b9050612a5a565b60028081111561298857612987614089565b5b835f015f9054906101000a900460ff1660028111156129aa576129a9614089565b5b03612a5657825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8385600301546040518363ffffffff1660e01b8152600401612a10929190615167565b602060405180830381865afa158015612a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a4f91906149fd565b9050612a5a565b5f90505b92915050565b60016002811115612a7457612a73614089565b5b825f015f9054906101000a900460ff166002811115612a9657612a95614089565b5b1480612ad457505f6002811115612ab057612aaf614089565b5b825f015f9054906101000a900460ff166002811115612ad257612ad1614089565b5b145b15612b7957612b4860035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b612b74825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661300b565b612c69565b600280811115612b8c57612b8b614089565b5b825f015f9054906101000a900460ff166002811115612bae57612bad614089565b5b03612c6857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b8152600401612c3a9493929190614a4b565b5f604051808303815f87803b158015612c51575f80fd5b505af1158015612c63573d5f803e3d5ffd5b505050505b5b5050565b612c756130fe565b15612cda577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612d30565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612d73576390b8ec185f526004601cfd5b5f603452505050565b6060815115612e105760405190506020810160048301805184518501811983525b80861015612df6576001860195508551601f1a80612de6576001870196508651601f1a5f198652607f8111612dd457600181013887395b6001607f821601860195505050612df1565b808553600185019450505b612d9d565b81835260208501840385525f845260208401604052505050505b919050565b612e3f7fe49cedd70000000000000000000000000000000000000000000000000000000082613102565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401612e78919061418a565b602060405180830381865afa158015612e93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb791906147a0565b612eed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612eff848460200151613102565b612f0983836131f9565b90509392505050565b60605f60015f80549050612f2691906146ae565b9050855167ffffffffffffffff811115612f4357612f4261481b565b5b604051908082528060200260200182016040528015612f715781602001602082028036833780820191505090505b5091505f5b865181101561300157612fa7878281518110612f9557612f946145b6565b5b602002602001015187878786866132b5565b838281518110612fba57612fb96145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050612f76565b5050949350505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613045919061418a565b602060405180830381865afa158015613060573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061308491906149fd565b905060055f9054906101000a900467ffffffffffffffff1667ffffffffffffffff168110156130fa576130f960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b5b5050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806131b157508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b81526004016131709190615099565b602060405180830381865afa15801561318b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af91906147a0565b155b156131f55781816040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016131ec9291906150b2565b60405180910390fd5b5050565b5f825f015161320c578260200151613230565b61322f836020015173ffffffffffffffffffffffffffffffffffffffff1661365f565b5b9050825f0151801561323f5750815b156132af578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016132819190614b93565b5f604051808303815f87803b158015613298575f80fd5b505af11580156132aa573d5f803e3d5ffd5b505050505b92915050565b5f80876040015190506132ec7fa9216705000000000000000000000000000000000000000000000000000000008960200151613102565b875f0151613357577fa92167050000000000000000000000000000000000000000000000000000000088602001516040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161334e9291906150b2565b60405180910390fd5b6133827fa921670500000000000000000000000000000000000000000000000000000000895f612ef0565b91505f8273ffffffffffffffffffffffffffffffffffffffff16634e7165a2836040518263ffffffff1660e01b81526004016133be9190614b93565b5f60405180830381865afa1580156133d8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190613400919061518e565b90505f8151146135ed575f80613416838a613671565b915091508973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b81526004016134539190614b93565b6020604051808303815f875af115801561346f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349391906147a0565b6134c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b81526004016135029190614b93565b6020604051808303815f875af115801561351e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354291906147a0565b613578576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061358d9190615289565b90506135e988885f73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036135d15783602001516135d3565b8b5b858e67ffffffffffffffff16865f01518b613949565b5050505b8273ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b81526004016136269190614b93565b5f604051808303815f87803b15801561363d575f80fd5b505af115801561364f573d5f803e3d5ffd5b5050505050509695505050505050565b5f61366a5f83613a9b565b9050919050565b60605f80848060200190518101906136899190615289565b90505f849050600160028111156136a3576136a2614089565b5b825f015160028111156136b9576136b8614089565b5b14806136eb57505f60028111156136d3576136d2614089565b5b825f015160028111156136e9576136e8614089565b5b145b156137df575f82606001518060200190518101906137099190615309565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f01516137329190614610565b61373c919061467e565b90505f604051806020016040528083815250905080604051602001613761919061534e565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016137c191906153c7565b60405160208183030381529060405282965096505050505050613942565b6002808111156137f2576137f1614089565b5b825f0151600281111561380857613807614089565b5b03613910575f82606001518060200190518101906138269190615464565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516138509190614610565b61385a919061467e565b90505f6040518060600160405280845f01518152602001838152602001846040015181525090508060405160200161389291906154f8565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016138f291906153c7565b60405160208183030381529060405282965096505050505050613942565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561395d5761395c614089565b5b8360028111156139705761396f614089565b5b0361398f57818060200190518101906139899190615518565b50809150505b5f6040518060a001604052808560028111156139ae576139ad614089565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018381525090508060065f6139ef8c8c612827565b81526020019081526020015f205f820151815f015f6101000a81548160ff02191690836002811115613a2457613a23614089565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613ae25763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f6002811115613bc057613bbf614089565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613c6a579160200282015b82811115613c69578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c12565b5b509050613c779190613c7b565b5090565b5b80821115613c92575f815f905550600101613c7c565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b613cb981613ca7565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee613c9f565b5b5f613cfc84828501613cc6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f613d47613d42613d3d84613d05565b613d24565b613d05565b9050919050565b5f613d5882613d2d565b9050919050565b5f613d6982613d4e565b9050919050565b613d7981613d5f565b82525050565b5f613d8982613d4e565b9050919050565b613d9981613d7f565b82525050565b5f613da982613d4e565b9050919050565b613db981613d9f565b82525050565b5f613dc982613d2d565b9050919050565b5f613dda82613dbf565b9050919050565b613dea81613dd0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613e2382613d4e565b9050919050565b613e3381613e19565b82525050565b5f613e448383613e2a565b60208301905092915050565b5f602082019050919050565b5f613e6682613df0565b613e708185613dfa565b9350613e7b83613e0a565b805f5b83811015613eab578151613e928882613e39565b9750613e9d83613e50565b925050600181019050613e7e565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613ed481613eb8565b82525050565b613ee381613ca7565b82525050565b5f613ef382613d05565b9050919050565b613f0381613ee9565b82525050565b5f61010083015f830151613f1f5f860182613d70565b506020830151613f326020860182613d90565b506040830151613f456040860182613db0565b506060830151613f586060860182613de1565b5060808301518482036080860152613f708282613e5c565b91505060a0830151613f8560a0860182613ecb565b5060c0830151613f9860c0860182613eda565b5060e0830151613fab60e0860182613efa565b508091505092915050565b5f6020820190508181035f830152613fce8184613f09565b905092915050565b613fdf81613ee9565b8114613fe9575f80fd5b50565b5f81359050613ffa81613fd6565b92915050565b5f6020828403121561401557614014613c9f565b5b5f61402284828501613fec565b91505092915050565b5f819050919050565b61403d8161402b565b8114614047575f80fd5b50565b5f8135905061405881614034565b92915050565b5f6020828403121561407357614072613c9f565b5b5f6140808482850161404a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600381106140c7576140c6614089565b5b50565b5f8190506140d7826140b6565b919050565b5f6140e6826140ca565b9050919050565b6140f6816140dc565b82525050565b60a082015f8201516141105f8501826140ed565b5060208201516141236020850182613efa565b5060408201516141366040850182613eda565b5060608201516141496060850182613eda565b50608082015161415c6080850182613eda565b50505050565b5f60a0820190506141755f8301846140fc565b92915050565b61418481613ee9565b82525050565b5f60208201905061419d5f83018461417b565b92915050565b6141ac81613eb8565b81146141b6575f80fd5b50565b5f813590506141c7816141a3565b92915050565b5f602082840312156141e2576141e1613c9f565b5b5f6141ef848285016141b9565b91505092915050565b61420181613ca7565b82525050565b5f60208201905061421a5f8301846141f8565b92915050565b5f806040838503121561423657614235613c9f565b5b5f61424385828601613cc6565b925050602061425485828601613cc6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261427f5761427e61425e565b5b8235905067ffffffffffffffff81111561429c5761429b614262565b5b6020830191508360018202830111156142b8576142b7614266565b5b9250929050565b5f805f805f8060a087890312156142d9576142d8613c9f565b5b5f6142e689828a01613cc6565b96505060206142f789828a01613cc6565b955050604061430889828a01613fec565b945050606087013567ffffffffffffffff81111561432957614328613ca3565b5b61433589828a0161426a565b9350935050608061434889828a01613fec565b9150509295509295509295565b5f61435f82613d4e565b9050919050565b61436f81614355565b82525050565b5f6020820190506143885f830184614366565b92915050565b5f805f805f608086880312156143a7576143a6613c9f565b5b5f6143b488828901613cc6565b95505060206143c588828901613cc6565b94505060406143d688828901613fec565b935050606086013567ffffffffffffffff8111156143f7576143f6613ca3565b5b6144038882890161426a565b92509250509295509295909350565b5f61441c82613d4e565b9050919050565b61442c81614412565b82525050565b5f6020820190506144455f830184614423565b92915050565b61445481613eb8565b82525050565b5f60208201905061446d5f83018461444b565b92915050565b5f805f806060858703121561448b5761448a613c9f565b5b5f85013567ffffffffffffffff8111156144a8576144a7613ca3565b5b6144b48782880161426a565b945094505060206144c787828801613cc6565b92505060406144d887828801613cc6565b91505092959194509250565b5f6040820190506144f75f8301856141f8565b614504602083018461417b565b9392505050565b5f806020838503121561452157614520613c9f565b5b5f83013567ffffffffffffffff81111561453e5761453d613ca3565b5b61454a8582860161426a565b92509250509250929050565b61455f816140dc565b82525050565b5f60a0820190506145785f830188614556565b614585602083018761417b565b61459260408301866141f8565b61459f60608301856141f8565b6145ac60808301846141f8565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61461a82613ca7565b915061462583613ca7565b925082820261463381613ca7565b9150828204841483151761464a576146496145e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468882613ca7565b915061469383613ca7565b9250826146a3576146a2614651565b5b828204905092915050565b5f6146b882613ca7565b91506146c383613ca7565b92508282039050818111156146db576146da6145e3565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61471a83856146e1565b93506147278385846146f1565b614730836146ff565b840190509392505050565b5f60408201905061474e5f83018661417b565b818103602083015261476181848661470f565b9050949350505050565b5f8115159050919050565b61477f8161476b565b8114614789575f80fd5b50565b5f8151905061479a81614776565b92915050565b5f602082840312156147b5576147b4613c9f565b5b5f6147c28482850161478c565b91505092915050565b5f6080820190506147de5f8301886141f8565b6147eb60208301876141f8565b6147f8604083018661417b565b818103606083015261480b81848661470f565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614851826146ff565b810181811067ffffffffffffffff821117156148705761486f61481b565b5b80604052505050565b5f614882613c96565b905061488e8282614848565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156148b5576148b461481b565b5b6148be826146ff565b9050602081019050919050565b5f6148dd6148d88461489b565b614879565b9050828152602081018484840111156148f9576148f8614897565b5b6149048482856146f1565b509392505050565b5f82601f8301126149205761491f61425e565b5b81356149308482602086016148cb565b91505092915050565b5f6040828403121561494e5761494d614817565b5b6149586040614879565b90505f61496784828501613fec565b5f83015250602082013567ffffffffffffffff81111561498a57614989614893565b5b6149968482850161490c565b60208301525092915050565b5f602082840312156149b7576149b6613c9f565b5b5f82013567ffffffffffffffff8111156149d4576149d3613ca3565b5b6149e084828501614939565b91505092915050565b5f815190506149f781613cb0565b92915050565b5f60208284031215614a1257614a11613c9f565b5b5f614a1f848285016149e9565b91505092915050565b50565b5f614a365f836146e1565b9150614a4182614a28565b5f82019050919050565b5f60a082019050614a5e5f83018761417b565b614a6b602083018661417b565b614a7860408301856141f8565b614a8560608301846141f8565b8181036080830152614a9681614a2b565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f614ad382614aa1565b614add8185614aab565b9350614aed818560208601614abb565b614af6816146ff565b840191505092915050565b5f604083015f830151614b165f860182613efa565b5060208301518482036020860152614b2e8282614ac9565b9150508091505092915050565b5f6020820190508181035f830152614b538184614b01565b905092915050565b5f614b6582614aa1565b614b6f81856146e1565b9350614b7f818560208601614abb565b614b88816146ff565b840191505092915050565b5f6020820190508181035f830152614bab8184614b5b565b905092915050565b5f81519050614bc181613fd6565b92915050565b5f8060408385031215614bdd57614bdc613c9f565b5b5f614bea858286016149e9565b9250506020614bfb85828601614bb3565b9150509250929050565b5f614c0f82613d05565b9050919050565b5f614c2082614c05565b9050919050565b614c3081614c16565b8114614c3a575f80fd5b50565b5f81519050614c4b81614c27565b92915050565b5f614c63614c5e8461489b565b614879565b905082815260208101848484011115614c7f57614c7e614897565b5b614c8a848285614abb565b509392505050565b5f82601f830112614ca657614ca561425e565b5b8151614cb6848260208601614c51565b91505092915050565b5f60608284031215614cd457614cd3614817565b5b614cde6060614879565b90505f614ced8482850161478c565b5f830152506020614d0084828501614bb3565b602083015250604082015167ffffffffffffffff811115614d2457614d23614893565b5b614d3084828501614c92565b60408301525092915050565b5f67ffffffffffffffff821115614d5657614d5561481b565b5b602082029050602081019050919050565b5f614d79614d7484614d3c565b614879565b90508083825260208201905060208402830185811115614d9c57614d9b614266565b5b835b81811015614de357805167ffffffffffffffff811115614dc157614dc061425e565b5b808601614dce8982614cbf565b85526020850194505050602081019050614d9e565b5050509392505050565b5f82601f830112614e0157614e0061425e565b5b8151614e11848260208601614d67565b91505092915050565b5f81519050614e28816141a3565b92915050565b5f6101008284031215614e4457614e43614817565b5b614e4f610100614879565b90505f614e5e84828501614c3d565b5f83015250602082015167ffffffffffffffff811115614e8157614e80614893565b5b614e8d84828501614cbf565b602083015250604082015167ffffffffffffffff811115614eb157614eb0614893565b5b614ebd84828501614cbf565b604083015250606082015167ffffffffffffffff811115614ee157614ee0614893565b5b614eed84828501614cbf565b606083015250608082015167ffffffffffffffff811115614f1157614f10614893565b5b614f1d84828501614ded565b60808301525060a0614f3184828501614e1a565b60a08301525060c0614f45848285016149e9565b60c08301525060e0614f5984828501614bb3565b60e08301525092915050565b5f60208284031215614f7a57614f79613c9f565b5b5f82015167ffffffffffffffff811115614f9757614f96613ca3565b5b614fa384828501614e2e565b91505092915050565b5f614fb682613eb8565b9150614fc183613eb8565b9250828201905067ffffffffffffffff811115614fe157614fe06145e3565b5b92915050565b5f6020820190508181035f83015261500081848661470f565b90509392505050565b5f6020828403121561501e5761501d613c9f565b5b5f61502b84828501614e1a565b91505092915050565b5f6020828403121561504957615048613c9f565b5b5f61505684828501614bb3565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6150938161505f565b82525050565b5f6020820190506150ac5f83018461508a565b92915050565b5f6040820190506150c55f83018561508a565b6150d2602083018461417b565b9392505050565b5f6080820190506150ec5f8301876141f8565b6150f9602083018661417b565b615106604083018561417b565b615113606083018461417b565b95945050505050565b5f819050919050565b61513661513182613ca7565b61511c565b82525050565b5f6151478285615125565b6020820191506151578284615125565b6020820191508190509392505050565b5f60408201905061517a5f83018561417b565b61518760208301846141f8565b9392505050565b5f602082840312156151a3576151a2613c9f565b5b5f82015167ffffffffffffffff8111156151c0576151bf613ca3565b5b6151cc84828501614c92565b91505092915050565b600381106151e1575f80fd5b50565b5f815190506151f2816151d5565b92915050565b5f6080828403121561520d5761520c614817565b5b6152176080614879565b90505f615226848285016151e4565b5f83015250602061523984828501614bb3565b602083015250604061524d84828501614bb3565b604083015250606082015167ffffffffffffffff81111561527157615270614893565b5b61527d84828501614c92565b60608301525092915050565b5f6020828403121561529e5761529d613c9f565b5b5f82015167ffffffffffffffff8111156152bb576152ba613ca3565b5b6152c7848285016151f8565b91505092915050565b5f602082840312156152e5576152e4614817565b5b6152ef6020614879565b90505f6152fe848285016149e9565b5f8301525092915050565b5f6020828403121561531e5761531d613c9f565b5b5f61532b848285016152d0565b91505092915050565b602082015f8201516153485f850182613eda565b50505050565b5f6020820190506153615f830184615334565b92915050565b5f608083015f83015161537c5f8601826140ed565b50602083015161538f6020860182613efa565b5060408301516153a26040860182613efa565b50606083015184820360608601526153ba8282614ac9565b9150508091505092915050565b5f6020820190508181035f8301526153df8184615367565b905092915050565b5f606082840312156153fc576153fb614817565b5b6154066060614879565b90505f615415848285016149e9565b5f830152506020615428848285016149e9565b602083015250604082015167ffffffffffffffff81111561544c5761544b614893565b5b61545884828501614c92565b60408301525092915050565b5f6020828403121561547957615478613c9f565b5b5f82015167ffffffffffffffff81111561549657615495613ca3565b5b6154a2848285016153e7565b91505092915050565b5f606083015f8301516154c05f860182613eda565b5060208301516154d36020860182613eda565b50604083015184820360408601526154eb8282614ac9565b9150508091505092915050565b5f6020820190508181035f83015261551081846154ab565b905092915050565b5f806040838503121561552e5761552d613c9f565b5b5f61553b858286016149e9565b925050602083015167ffffffffffffffff81111561555c5761555b613ca3565b5b61556885828601614c92565b915050925092905056fea2646970667358221220be55f1e697f2023485c9127bd515ad65d975731fa37c63396acdde5e0b7d137764736f6c634300081a0033";function O(t){const e=t.state.current,f=t.state.connections.get(e),b=f==null?void 0:f.accounts,a=b==null?void 0:b[0],c=t.chains.find(n=>n.id===(f==null?void 0:f.chainId)),d=t.state.status;switch(d){case"connected":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:d};case"reconnecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!a,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:d};case"connecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:d};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:d}}}function cf(t){return t.state.chainId}function N(t,e,f){const b=t[e.name];if(typeof b=="function")return b;const a=t[f];return typeof a=="function"?a:c=>e(t,c)}const df="2.13.8",nf=()=>`@wagmi/core@${df}`;var M=function(t,e,f,b){if(f==="a"&&!b)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!b:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?b:f==="a"?b.call(t):b?b.value:e.get(t)},_,T;class A extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return nf()}constructor(e,f={}){var c;super(),_.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const b=f.cause instanceof A?f.cause.details:(c=f.cause)!=null&&c.message?f.cause.message:f.details,a=f.cause instanceof A&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...a?[`Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...b?[`Details: ${b}`]:[],`Version: ${this.version}`].join(`
|
|
2
2
|
`),f.cause&&(this.cause=f.cause),this.details=b,this.docsPath=a,this.metaMessages=f.metaMessages,this.shortMessage=e}walk(e){return M(this,_,"m",T).call(this,this,e)}}_=new WeakSet,T=function t(e,f){return f!=null&&f(e)?e:e.cause?M(this,_,"m",t).call(this,e.cause,f):e};class sf extends A{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class rf extends A{constructor({address:e,connector:f}){super(`Account "${e}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class of extends A{constructor({connectionChainId:e,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}class uf extends A{constructor({connector:e}){super(`Connector "${e.name}" unavailable while reconnecting.`,{details:["During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.","All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.","This error commonly occurs for connectors that asynchronously inject after reconnection has already started."].join(" ")}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorUnavailableReconnectingError"})}}async function j(t,e={}){let f;if(e.connector){const{connector:s}=e;if(t.state.status==="reconnecting"&&!s.getAccounts&&!s.getChainId)throw new uf({connector:s});const[C,w]=await Promise.all([s.getAccounts(),s.getChainId()]);f={accounts:C,chainId:w,connector:s}}else f=t.state.connections.get(t.state.current);if(!f)throw new sf;const b=e.chainId??f.chainId,a=await f.connector.getChainId();if(a!==f.chainId)throw new of({connectionChainId:f.chainId,connectorChainId:a});const c=f.connector;if(c.getClient)return c.getClient({chainId:b});const d=z.parseAccount(e.account??f.accounts[0]);if(d.address=z.getAddress(d.address),e.account&&!f.accounts.some(s=>s.toLowerCase()===d.address.toLowerCase()))throw new rf({address:d.address,connector:c});const n=t.chains.find(s=>s.id===b),r=await f.connector.getProvider({chainId:b});return i.createClient({account:d,chain:n,name:"Connector Client",transport:s=>i.custom(r)({...s,retryCount:0})})}async function lf(t,e){const{abi:f,chainId:b,connector:a,...c}=e;let d;e.account?d=e.account:d=(await j(t,{chainId:b,connector:a})).account;const n=t.getClient({chainId:b}),r=N(n,L.simulateContract,"simulateContract"),{result:s,request:C}=await r({...c,abi:f,account:d});return{chainId:n.chain.id,result:s,request:{__mode:"prepared",...C,chainId:b}}}async function F(t,e){const{account:f,chainId:b,connector:a,__mode:c,...d}=e;let n;typeof f=="object"&&f.type==="local"?n=t.getClient({chainId:b}):n=await j(t,{account:f,chainId:b,connector:a});const{connector:r}=O(t);let s;if(c==="prepared"||r!=null&&r.supportsSimulation)s=d;else{const{request:o}=await lf(t,{...d,account:f,chainId:b});s=o}return await N(n,L.writeContract,"writeContract")({...s,...f?{account:f}:{},chain:b?{id:b}:null})}function hf(t){return t.address!==void 0&&typeof t.address=="object"?(e,f)=>{var d;const b=cf(e),a=O(e);let c;return f.chainId?c=f.chainId:f.account&&f.account===a.address||f.account===void 0?c=a.chainId:c=b,F(e,{...f,...t.functionName?{functionName:t.functionName}:{},address:c?(d=t.address)==null?void 0:d[c]:void 0,abi:t.abi})}:(e,f)=>F(e,{...f,...t.address?{address:t.address}:{},...t.functionName?{functionName:t.functionName}:{},abi:t.abi})}const H=10000n,P={31337:void 0,...x.BoostCore},gf=P[11155111]||i.zeroAddress;function wf(t){return t.address}function Cf(t){return t.registryAddress&&t.protocolFeeReceiver&&t.owner}const V=class V extends J.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(wf(b)&&b.address)super({account:f,config:e},b.address);else if(Cf(b))super({account:f,config:e},[b.registryAddress,b.protocolFeeReceiver,b.owner]);else{const{address:a}=g.assertValidAddressByChainId(e,P);super({account:f,config:e},a)}this.abi=u.I}async createBoost(e,f){const[b,a]=this.validateDeploymentConfig(e),c=f==null?void 0:f.chainId,{chainId:d,address:n}=g.assertValidAddressByChainId(a.config,this.addresses,c),r=hf({abi:u.I,functionName:"createBoost",address:n}),s=await this.prepareCreateBoostPayload(n,d,b,a),C=await r(a.config,{...this.optionallyAttachAccount(a.account),...f,chainId:d,args:[B.prepareBoostPayload(s)]}),w=await y.waitForTransactionReceipt(a.config,{hash:C}),o=i.parseEventLogs({abi:u.I,eventName:"BoostCreated",logs:w.logs}).at(0);let l=0n;if(!o)throw new v.BoostCoreNoIdentifierEmitted;l=o==null?void 0:o.args.boostId;const h=await this.readBoost(l);return new B.Boost({id:l,budget:b.budget.at(h.budget),action:b.action.at(h.action),validator:b.validator.at(h.validator),allowList:b.allowList.at(h.allowList),incentives:b.incentives.map((I,$)=>I.at(h.incentives.at($))),protocolFee:h.protocolFee,maxParticipants:h.maxParticipants,owner:h.owner})}async simulateCreateBoost(e,f){const[b,a]=this.validateDeploymentConfig(e),c=f==null?void 0:f.chainId,{chainId:d,address:n}=g.assertValidAddressByChainId(a.config,this.addresses,c),r=await this.prepareCreateBoostPayload(n,d,b,a);return await u.Tw(this._config,{...this.optionallyAttachAccount(),...f,address:n,chainId:d,args:[B.prepareBoostPayload(r)]})}async prepareCreateBoostPayload(e,f,b,a){var w;if(!b.owner&&(b.owner=((w=this._account)==null?void 0:w.address)||y.getAccount(a.config).address||i.zeroAddress,b.owner===i.zeroAddress))throw new v.DeployableUnknownOwnerProvidedError;if(!b.validator){const l=y.getChains(a.config).filter(I=>!!this.addresses[I.id]&&I.id===f).at(0);if(!l)throw new v.InvalidProtocolChainIdError(f,Object.keys(this.addresses).map(Number));const h=l.testnet||l.id===31337;b.validator=this.SignerValidator({signers:[h?m.BoostValidatorEOA.TESTNET:m.BoostValidatorEOA.MAINNET],validatorCaller:e})}let c=i.zeroAddress;if(b.budget.address){if(c=b.budget.address,!await b.budget.isAuthorized(e))throw new v.BudgetMustAuthorizeBoostCore(e)}else throw new v.MustInitializeBudgetError;let d={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.action.address){const o=b.action.isBase;d={isBase:o,instance:b.action.address,parameters:o&&b.action.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else d.parameters=b.action.buildParameters(void 0,a).args.at(0)||i.zeroHash,d.instance=g.assertValidAddressByChainId(a.config,b.action.bases,f).address;let n={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.validator.address){const o=b.validator.isBase;n={isBase:o,instance:b.validator.address,parameters:o&&b.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else n.parameters=b.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash,n.instance=g.assertValidAddressByChainId(a.config,b.validator.bases,f).address;let r={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.allowList||(b.allowList=this.OpenAllowList()),b.allowList.address){const o=b.allowList.isBase;r={isBase:o,instance:b.allowList.address,parameters:i.zeroHash}}else r.parameters=b.allowList.buildParameters(void 0,a).args.at(0)||i.zeroHash,r.instance=g.assertValidAddressByChainId(a.config,b.allowList.bases,f).address;const s=b.incentives.map(()=>({instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash}));for(let o=0;o<b.incentives.length;o++){const l=b.incentives.at(o);if(l.address){const h=l.isBase;if(!h)throw new v.IncentiveNotCloneableError(l);s[o]={isBase:h,instance:l.address,parameters:h&&l.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else s[o].parameters=l.buildParameters(void 0,a).args.at(0)||i.zeroHash,s[o].instance=g.assertValidAddressByChainId(a.config,l.bases,f).address}return{budget:c,action:d,validator:n,allowList:r,incentives:s,protocolFee:b.protocolFee||0n,maxParticipants:b.maxParticipants||0n,owner:b.owner}}async claimIncentive(e,f,b,a,c){return await this.awaitResult(this.claimIncentiveRaw(e,f,b,a,c))}async claimIncentiveRaw(e,f,b,a,c){const{request:d,result:n}=await u.bw(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,c==null?void 0:c.chainId),args:[e,f,b,a],...this.optionallyAttachAccount(),...c});return{hash:await u.Yv(this._config,d),result:n}}async claimIncentiveFor(e,f,b,a,c,d){return await this.awaitResult(this.claimIncentiveForRaw(e,f,b,a,c,d))}async claimIncentiveForRaw(e,f,b,a,c,d){const{request:n,result:r}=await u.fw(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,d==null?void 0:d.chainId),args:[e,f,b,a,c],...this.optionallyAttachAccount(),...d});return{hash:await u.ew(this._config,n),result:r}}async readBoost(e,f){var b;try{let a;return typeof e=="string"?a=BigInt(e):a=e,await u.Dv(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[a],...this.optionallyAttachAccount(),...f})}catch(a){throw(b=a==null?void 0:a.message)!=null&&b.includes("bounds")?new v.BoostNotFoundError(String(e)):a}}async getBoost(e,f){let b;typeof e=="string"?b=BigInt(e):b=e;const{protocolFee:a,maxParticipants:c,owner:d,...n}=await this.readBoost(b,f),r={config:this._config,account:this._account},[s,C,w,o,l]=await Promise.all([G.actionFromAddress(r,n.action,f),D.budgetFromAddress(r,n.budget,f),m.validatorFromAddress(r,n.validator,f),q.allowListFromAddress(r,n.allowList,f),Promise.all(n.incentives.map(h=>E.incentiveFromAddress(r,h,f)))]);return new B.Boost({id:b,action:s,budget:C,validator:w,allowList:o,incentives:l,protocolFee:a,maxParticipants:c,owner:d})}async getBoostCount(e){return await u.qv(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async isAuthorized(e,f){const b=await this.createBoostAuth(f);return u.H6(this._config,{address:b,args:[e],...this.optionallyAttachAccount(),...f})}async createBoostAuth(e){return await u._v(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setCreateBoostAuth(e,f){return await this.awaitResult(this.setCreateBoostAuthRaw(e.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(e,f){const{request:b,result:a}=await u.Iw(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await u.rw(this._config,b),result:a}}async protocolFee(e){return await u.jv(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async protocolFeeReceiver(e){return await u.Qv(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setProcolFeeReceiver(e,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(e,{...f}))}async setProcolFeeReceiverRaw(e,f){const{request:b,result:a}=await u.Rw(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await u.lw(this._config,b),result:a}}async getClaimFromTransaction(e){var a;const f=await y.getTransactionReceipt(this._config,e);return(a=i.parseEventLogs({abi:u.I,eventName:"BoostClaimed",logs:f.logs}).at(0))==null?void 0:a.args}async calculateProtocolFee(e,f){const b=await this.protocolFee(f);return e*b/H}PassthroughAuth(e){return new Q.PassthroughAuth({config:this._config,account:this._account},e)}EventAction(e,f){return new W.EventAction({config:this._config,account:this._account},e,f)}OpenAllowList(e){return new q.OpenAllowList({config:this._config,account:this._account},void 0,e)}SimpleAllowList(e,f){return new U.SimpleAllowList({config:this._config,account:this._account},e,f)}SimpleDenyList(e,f){return new k.SimpleDenyList({config:this._config,account:this._account},e,f)}ManagedBudget(e){return typeof e!="string"&&!e.authorized.includes(this.assertValidAddress())&&(e.authorized=[this.assertValidAddress(),...e.authorized],e.roles=[S.Roles.MANAGER,...e.roles]),new Y.ManagedBudget({config:this._config,account:this._account},e)}ManagedBudgetWithFees(e){return typeof e!="string"&&!e.authorized.includes(this.assertValidAddress())&&(e.authorized=[this.assertValidAddress(),...e.authorized],e.roles=[S.Roles.MANAGER,...e.roles]),new D.ManagedBudgetWithFees({config:this._config,account:this._account},e)}AllowListIncentive(e){return new K.AllowListIncentive({config:this._config,account:this._account},e)}CGDAIncentive(e){return new X.CGDAIncentive({config:this._config,account:this._account},e)}ERC20Incentive(e){return new Z.ERC20Incentive({config:this._config,account:this._account},e)}ERC20PeggedIncentive(e){return new E.ERC20PeggedIncentive({config:this._config,account:this._account},e)}PointsIncentive(e){return new ff.PointsIncentive({config:this._config,account:this._account},e)}SignerValidator(e,f){return new bf.SignerValidator({config:this._config,account:this._account},e,f)}LimitedSignerValidator(e,f){return new ef.LimitedSignerValidator({config:this._config,account:this._account},e,f)}ERC20VariableCriteriaIncentive(e,f){return new p.ERC20VariableCriteriaIncentive({config:this._config,account:this._account},e,f)}ERC20PeggedVariableCriteriaIncentive(e,f){return new E.ERC20PeggedVariableCriteriaIncentive({config:this._config,account:this._account},e,f)}ERC20VariableIncentive(e,f){return new af.ERC20VariableIncentive({config:this._config,account:this._account},e,f)}buildParameters(e,f){const[b,a]=this.validateDeploymentConfig(e,f);return{abi:u.I,bytecode:tf,args:b,...this.optionallyAttachAccount(a.account)}}};V.addresses=P;let R=V;exports.boostCoreAbi=u.I;exports.BOOST_CORE_ADDRESS=gf;exports.BOOST_CORE_ADDRESSES=P;exports.BoostCore=R;exports.FEE_DENOMINATOR=H;
|
|
3
3
|
//# sourceMappingURL=BoostCore.cjs.map
|
package/dist/BoostCore.js
CHANGED
|
@@ -16,7 +16,7 @@ import { Roles as R } from "./Deployable/DeployableTargetWithRBAC.js";
|
|
|
16
16
|
import { AllowListIncentive as mf } from "./Incentives/AllowListIncentive.js";
|
|
17
17
|
import { CGDAIncentive as vf } from "./Incentives/CGDAIncentive.js";
|
|
18
18
|
import { ERC20Incentive as Cf } from "./Incentives/ERC20Incentive.js";
|
|
19
|
-
import { i as Af, E as If, a as yf } from "./Incentive-
|
|
19
|
+
import { i as Af, E as If, a as yf } from "./Incentive-DBZHQ9Np.js";
|
|
20
20
|
import { ERC20VariableCriteriaIncentive as _f } from "./Incentives/ERC20VariableCriteriaIncentive.js";
|
|
21
21
|
import { PointsIncentive as Pf } from "./Incentives/PointsIncentive.js";
|
|
22
22
|
import { LimitedSignerValidator as Bf } from "./Validators/LimitedSignerValidator.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./generated-CRD9XfOT.cjs"),i=require("./componentInterfaces-D7r9xJmt.cjs"),A=require("@wagmi/core"),s=require("./errors.cjs"),T=require("./Incentives/AllowListIncentive.cjs"),D=require("./Incentives/CGDAIncentive.cjs"),N=require("./Incentives/ERC20Incentive.cjs"),t=require("viem"),R=require("./deployments-BGpr4ppG.cjs"),E=require("./Deployable/DeployableTarget.cjs"),h=require("./claiming.cjs"),C=require("./utils.cjs"),V=require("./Actions/EventAction.cjs"),q=require("./Incentives/ERC20VariableCriteriaIncentive.cjs"),x=require("./Incentives/ERC20VariableIncentive.cjs"),B=require("./Incentives/PointsIncentive.cjs"),F="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6127bf806100bd5f395ff3fe60806040526004361061020e575f3560e01c806354d1f13d11610117578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c14610739578063f04e283e14610763578063f2fde38b1461077f578063fe9fbb801461079b578063fee81cf4146107d75761020e565b8063d54ad2a114610681578063db09da12146106ab578063dcc21361146106e7578063dcc59b6f1461070f5761020e565b80639214fa4d116100e65780639214fa4d1461058d578063a4d66daf146105b7578063bb1757cf146105e1578063be4994f81461061d578063c884ef83146106455761020e565b806354d1f13d14610525578063715018a61461052f57806375b238fc146105395780638da5cb5b146105635761020e565b80632de948071161019a578063474f5a4411610169578063474f5a441461042a5780634a4ee7b1146104675780634e7165a214610483578063514e62fc146104bf578063547d1864146104fb5761020e565b80632de948071461037457806338d52e0f146103b05780634359d28a146103da578063439fab91146104025761020e565b80631cd64df4116101e15780631cd64df4146102b05780631f1cb62b146102ec578063228cb73314610316578063256929621461034057806328d6183b1461034a5761020e565b806301ffc9a71461021257806307621eca1461024e578063183a4f6e146102785780631c10893f14610294575b5f80fd5b34801561021d575f80fd5b5061023860048036038101906102339190611a8c565b610813565b6040516102459190611ad1565b60405180910390f35b348015610259575f80fd5b5061026261088c565b60405161026f9190611b02565b60405180910390f35b610292600480360381019061028d9190611b45565b610894565b005b6102ae60048036038101906102a99190611bca565b6108a1565b005b3480156102bb575f80fd5b506102d660048036038101906102d19190611bca565b6108b7565b6040516102e39190611ad1565b60405180910390f35b3480156102f7575f80fd5b506103006108cd565b60405161030d9190611c17565b60405180910390f35b348015610321575f80fd5b5061032a6108f2565b6040516103379190611b02565b60405180910390f35b6103486108f7565b005b348015610355575f80fd5b5061035e610948565b60405161036b9190611c3f565b60405180910390f35b34801561037f575f80fd5b5061039a60048036038101906103959190611c58565b61096f565b6040516103a79190611b02565b60405180910390f35b3480156103bb575f80fd5b506103c4610988565b6040516103d19190611c17565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb9190611d39565b6109ad565b005b34801561040d575f80fd5b5061042860048036038101906104239190611e0c565b610abb565b005b348015610435575f80fd5b50610450600480360381019061044b9190611e0c565b610d45565b60405161045e929190611e57565b60405180910390f35b610481600480360381019061047c9190611bca565b610eaf565b005b34801561048e575f80fd5b506104a960048036038101906104a49190611e0c565b610ec5565b6040516104b69190611eee565b60405180910390f35b3480156104ca575f80fd5b506104e560048036038101906104e09190611bca565b610f9a565b6040516104f29190611ad1565b60405180910390f35b348015610506575f80fd5b5061050f610fb1565b60405161051c9190611b02565b60405180910390f35b61052d610fb7565b005b610537610ff0565b005b348015610544575f80fd5b5061054d611003565b60405161055a9190611b02565b60405180910390f35b34801561056e575f80fd5b50610577611008565b6040516105849190611c17565b60405180910390f35b348015610598575f80fd5b506105a1611030565b6040516105ae9190611c17565b60405180910390f35b3480156105c2575f80fd5b506105cb611058565b6040516105d89190611b02565b60405180910390f35b3480156105ec575f80fd5b5061060760048036038101906106029190611f0e565b61105e565b6040516106149190611ad1565b60405180910390f35b348015610628575f80fd5b50610643600480360381019061063e9190611fc0565b611239565b005b348015610650575f80fd5b5061066b60048036038101906106669190611c58565b6112ef565b6040516106789190611ad1565b60405180910390f35b34801561068c575f80fd5b5061069561130c565b6040516106a29190611b02565b60405180910390f35b3480156106b6575f80fd5b506106d160048036038101906106cc9190611f0e565b611312565b6040516106de9190611ad1565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190611fc0565b611355565b005b34801561071a575f80fd5b5061072361140b565b6040516107309190611b02565b60405180910390f35b348015610744575f80fd5b5061074d611411565b60405161075a9190611b02565b60405180910390f35b61077d60048036038101906107789190611c58565b611416565b005b61079960048036038101906107949190611c58565b611454565b005b3480156107a6575f80fd5b506107c160048036038101906107bc9190611c58565b61147d565b6040516107ce9190611ad1565b60405180910390f35b3480156107e2575f80fd5b506107fd60048036038101906107f89190611c58565b6114d0565b60405161080a9190611b02565b60405180910390f35b5f7f56586338000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108855750610884826114e9565b5b9050919050565b5f8054905090565b61089e3382611562565b50565b6108a9611571565b6108b382826115a8565b5050565b5f81826108c38561096f565b1614905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b5f6109006115b8565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5658633800000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026109b8816115c2565b8282905085859050146109f7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610ab3575f848483818110610a1857610a1761203e565b5b9050602002016020810190610a2d9190612095565b90506001151581151503610a7257610a6d878784818110610a5157610a5061203e565b5b9050602002016020810190610a669190611c58565b60016115a8565b610aa5565b610aa4878784818110610a8857610a8761203e565b5b9050602002016020810190610a9d9190611c58565b6001611562565b5b5080806001019150506109f9565b505050505050565b5f610ac46115f7565b90508054600382558015610af65760018160011c14303b10610aed5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610b0791906121c9565b90505f81604001511480610b1e57505f8160600151145b15610b55576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015190505f610b8a30845f015173ffffffffffffffffffffffffffffffffffffffff1661162090919063ffffffff16565b905081811015610bd857825f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610bcf939291906121f4565b60405180910390fd5b825f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826020015160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082604001515f819055508260600151600581905550610c7d33611653565b610c8c83608001516001611729565b826020015173ffffffffffffffffffffffffffffffffffffffff16835f015173ffffffffffffffffffffffffffffffffffffffff167fd20715546497e6d32bc9b61b35416a25a8cc41d2fb7f389a1bb26dc040213a3b856040015186606001518760800151604051610d0093929190612229565b60405180910390a35050508015610d40576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610d52816115c2565b5f8585810190610d629190612377565b90505f8160200151806020019051810190610d7d91906123d2565b90508060055f828254610d90919061242a565b92505081905550610de6825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176a9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610e5a939291906124c2565b604051602081830303815290604052604051610e769190611eee565b60405180910390a28060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610eb7611571565b610ec18282611562565b5050565b60605f8383810190610ed791906121c9565b90505f81606001519050604051806080016040528060016002811115610f0057610eff6124fe565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610f5f9190612554565b604051602081830303815290604052815250604051602001610f81919061266a565b6040516020818303038152906040529250505092915050565b5f8082610fa68561096f565b161415905092915050565b60025481565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610ff8611571565b6110015f6117b3565b565b600281565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b5f611067611571565b5f8383810190611077919061270f565b90505f816020015180602001905181019061109291906123d2565b905061109e8682611879565b6110d4576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554816006546110e59190612756565b111561111d576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060065f82825461112e9190612756565b92505081905550600160045f8282546111479190612756565b9250508190555061119a868260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176a9092919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168884604051602001611208939291906124c2565b6040516020818303038152906040526040516112249190611eee565b60405180910390a26001925050509392505050565b6002611244816115c2565b828290508585905014611283576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156112e7576112da8686838181106112a6576112a561203e565b5b90506020020160208101906112bb9190611c58565b8585848181106112ce576112cd61203e565b5b905060200201356115a8565b8080600101915050611285565b505050505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b60065481565b5f808383810190611323919061270f565b90505f816020015180602001905181019061133e91906123d2565b905061134a8682611879565b925050509392505050565b6002611360816115c2565b82829050858590501461139f576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611403576113f68686838181106113c2576113c161203e565b5b90506020020160208101906113d79190611c58565b8585848181106113ea576113e961203e565b5b90506020020135611562565b80806001019150506113a1565b505050505050565b60045481565b600181565b61141e611571565b63389a75e1600c52805f526020600c20805442111561144457636f5e88185f526004601cfd5b5f815550611451816117b3565b50565b61145c611571565b8060601b61147157637448fbae5f526004601cfd5b61147a816117b3565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff1661149d611008565b73ffffffffffffffffffffffffffffffffffffffff1614806114c957506114c8826002600117610f9a565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061155b575061155a826118e8565b5b9050919050565b61156d82825f611961565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146115a6576382b429005f526004601cfd5b565b6115b482826001611961565b5050565b5f6202a300905090565b638b78c6d8195433146115f457638b78c6d8600c52335f52806020600c2054166115f3576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61165b6119b9565b156116d3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561169557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611726565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166117aa576390b8ec185f526004601cfd5b5f603452505050565b6117bb6119b9565b15611820577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611876565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118e05750600554826006546118dd9190612756565b11155b905092915050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061195a5750611959826119bd565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361198357848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a6b81611a37565b8114611a75575f80fd5b50565b5f81359050611a8681611a62565b92915050565b5f60208284031215611aa157611aa0611a2f565b5b5f611aae84828501611a78565b91505092915050565b5f8115159050919050565b611acb81611ab7565b82525050565b5f602082019050611ae45f830184611ac2565b92915050565b5f819050919050565b611afc81611aea565b82525050565b5f602082019050611b155f830184611af3565b92915050565b611b2481611aea565b8114611b2e575f80fd5b50565b5f81359050611b3f81611b1b565b92915050565b5f60208284031215611b5a57611b59611a2f565b5b5f611b6784828501611b31565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9982611b70565b9050919050565b611ba981611b8f565b8114611bb3575f80fd5b50565b5f81359050611bc481611ba0565b92915050565b5f8060408385031215611be057611bdf611a2f565b5b5f611bed85828601611bb6565b9250506020611bfe85828601611b31565b9150509250929050565b611c1181611b8f565b82525050565b5f602082019050611c2a5f830184611c08565b92915050565b611c3981611a37565b82525050565b5f602082019050611c525f830184611c30565b92915050565b5f60208284031215611c6d57611c6c611a2f565b5b5f611c7a84828501611bb6565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611ca457611ca3611c83565b5b8235905067ffffffffffffffff811115611cc157611cc0611c87565b5b602083019150836020820283011115611cdd57611cdc611c8b565b5b9250929050565b5f8083601f840112611cf957611cf8611c83565b5b8235905067ffffffffffffffff811115611d1657611d15611c87565b5b602083019150836020820283011115611d3257611d31611c8b565b5b9250929050565b5f805f8060408587031215611d5157611d50611a2f565b5b5f85013567ffffffffffffffff811115611d6e57611d6d611a33565b5b611d7a87828801611c8f565b9450945050602085013567ffffffffffffffff811115611d9d57611d9c611a33565b5b611da987828801611ce4565b925092505092959194509250565b5f8083601f840112611dcc57611dcb611c83565b5b8235905067ffffffffffffffff811115611de957611de8611c87565b5b602083019150836001820283011115611e0557611e04611c8b565b5b9250929050565b5f8060208385031215611e2257611e21611a2f565b5b5f83013567ffffffffffffffff811115611e3f57611e3e611a33565b5b611e4b85828601611db7565b92509250509250929050565b5f604082019050611e6a5f830185611af3565b611e776020830184611c08565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ec082611e7e565b611eca8185611e88565b9350611eda818560208601611e98565b611ee381611ea6565b840191505092915050565b5f6020820190508181035f830152611f068184611eb6565b905092915050565b5f805f60408486031215611f2557611f24611a2f565b5b5f611f3286828701611bb6565b935050602084013567ffffffffffffffff811115611f5357611f52611a33565b5b611f5f86828701611db7565b92509250509250925092565b5f8083601f840112611f8057611f7f611c83565b5b8235905067ffffffffffffffff811115611f9d57611f9c611c87565b5b602083019150836020820283011115611fb957611fb8611c8b565b5b9250929050565b5f805f8060408587031215611fd857611fd7611a2f565b5b5f85013567ffffffffffffffff811115611ff557611ff4611a33565b5b61200187828801611c8f565b9450945050602085013567ffffffffffffffff81111561202457612023611a33565b5b61203087828801611f6b565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61207481611ab7565b811461207e575f80fd5b50565b5f8135905061208f8161206b565b92915050565b5f602082840312156120aa576120a9611a2f565b5b5f6120b784828501612081565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6120fa82611ea6565b810181811067ffffffffffffffff82111715612119576121186120c4565b5b80604052505050565b5f61212b611a26565b905061213782826120f1565b919050565b5f80fd5b5f60a08284031215612155576121546120c0565b5b61215f60a0612122565b90505f61216e84828501611bb6565b5f83015250602061218184828501611bb6565b602083015250604061219584828501611b31565b60408301525060606121a984828501611b31565b60608301525060806121bd84828501611bb6565b60808301525092915050565b5f60a082840312156121de576121dd611a2f565b5b5f6121eb84828501612140565b91505092915050565b5f6060820190506122075f830186611c08565b6122146020830185611af3565b6122216040830184611af3565b949350505050565b5f60608201905061223c5f830186611af3565b6122496020830185611af3565b6122566040830184611c08565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561227c5761227b6120c4565b5b61228582611ea6565b9050602081019050919050565b828183375f83830152505050565b5f6122b26122ad84612262565b612122565b9050828152602081018484840111156122ce576122cd61225e565b5b6122d9848285612292565b509392505050565b5f82601f8301126122f5576122f4611c83565b5b81356123058482602086016122a0565b91505092915050565b5f60408284031215612323576123226120c0565b5b61232d6040612122565b90505f61233c84828501611bb6565b5f83015250602082013567ffffffffffffffff81111561235f5761235e61213c565b5b61236b848285016122e1565b60208301525092915050565b5f6020828403121561238c5761238b611a2f565b5b5f82013567ffffffffffffffff8111156123a9576123a8611a33565b5b6123b58482850161230e565b91505092915050565b5f815190506123cc81611b1b565b92915050565b5f602082840312156123e7576123e6611a2f565b5b5f6123f4848285016123be565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61243482611aea565b915061243f83611aea565b9250828203905081811115612457576124566123fd565b5b92915050565b5f8160601b9050919050565b5f6124738261245d565b9050919050565b5f61248482612469565b9050919050565b61249c61249782611b8f565b61247a565b82525050565b5f819050919050565b6124bc6124b782611aea565b6124a2565b82525050565b5f6124cd828661248b565b6014820191506124dd828561248b565b6014820191506124ed82846124ab565b602082019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61253481611aea565b82525050565b602082015f82015161254e5f85018261252b565b50505050565b5f6020820190506125675f83018461253a565b92915050565b6003811061257e5761257d6124fe565b5b50565b5f81905061258e8261256d565b919050565b5f61259d82612581565b9050919050565b6125ad81612593565b82525050565b6125bc81611b8f565b82525050565b5f82825260208201905092915050565b5f6125dc82611e7e565b6125e681856125c2565b93506125f6818560208601611e98565b6125ff81611ea6565b840191505092915050565b5f608083015f83015161261f5f8601826125a4565b50602083015161263260208601826125b3565b50604083015161264560408601826125b3565b506060830151848203606086015261265d82826125d2565b9150508091505092915050565b5f6020820190508181035f830152612682818461260a565b905092915050565b5f6040828403121561269f5761269e6120c0565b5b6126a96040612122565b90505f82013567ffffffffffffffff8111156126c8576126c761213c565b5b6126d4848285016122e1565b5f83015250602082013567ffffffffffffffff8111156126f7576126f661213c565b5b612703848285016122e1565b60208301525092915050565b5f6020828403121561272457612723611a2f565b5b5f82013567ffffffffffffffff81111561274157612740611a33565b5b61274d8482850161268a565b91505092915050565b5f61276082611aea565b915061276b83611aea565b9250828201905080821115612783576127826123fd565b5b9291505056fea2646970667358221220dac302ea2cd5b1bd043f32307b4b55326db7520539ec80e9572f86826d8305f064736f6c634300081a0033",w=class w extends E.DeployableTarget{constructor(){super(...arguments),this.abi=e.v}async owner(f){return await e.qI(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await e.VI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await e.xI(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await e.JI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await e.BI(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await e.HI(this._config,{address:this.assertValidAddress(),...f})}async peg(f){return await e.UI(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await e.ZI(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await e.DI(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:a,result:d}=await e.mh(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.YI(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await e.bh(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.eh(this._config,a),result:d}}async isClaimable(f,b){return await e._I(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async getPeg(f){return await e.FI(this._config,{address:this.assertValidAddress(),args:[],...f})}async getTotalBudget(f){return await this.limit(f)}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,a]=await Promise.all([this.claims(f),this.limit(f)]);return a-b}buildParameters(f,b){const[a,d]=this.validateDeploymentConfig(f,b);return{abi:e.v,bytecode:F,args:[P(a)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return t.encodeAbiParameters([{type:"uint256"}],[f])}buildClaimData(f){return t.encodeAbiParameters([{type:"uint256",name:"rewardAmount"}],[f])}};w.bases={31337:void 0,...R.ERC20PeggedIncentive},w.registryType=C.RegistryType.INCENTIVE;let y=w;function P({asset:l,peg:f,reward:b,limit:a,manager:d=t.zeroAddress}){return t.encodeAbiParameters([{type:"address",name:"asset"},{type:"address",name:"peg"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"}],[l,f,b,a,d])}const $="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612e66806100bd5f395ff3fe60806040526004361061022f575f3560e01c8063715018a61161012d578063c884ef83116100aa578063ec87621c1161006e578063ec87621c146107db578063f04e283e14610805578063f2fde38b14610821578063fe9fbb801461083d578063fee81cf4146108795761022f565b8063c884ef83146106e7578063d54ad2a114610723578063db09da121461074d578063dcc2136114610789578063dcc59b6f146107b15761022f565b8063a4d66daf116100f1578063a4d66daf14610605578063a871ced21461062f578063bb1757cf14610659578063be4994f814610695578063c213f3f9146106bd5761022f565b8063715018a61461055057806375b238fc1461055a57806377548687146105845780638da5cb5b146105b15780639214fa4d146105db5761022f565b80632de94807116101bb5780634a4ee7b11161017f5780634a4ee7b1146104885780634e7165a2146104a4578063514e62fc146104e0578063547d18641461051c57806354d1f13d146105465761022f565b80632de948071461039557806338d52e0f146103d15780634359d28a146103fb578063439fab9114610423578063474f5a441461044b5761022f565b80631cd64df4116102025780631cd64df4146102d15780631f1cb62b1461030d578063228cb73314610337578063256929621461036157806328d6183b1461036b5761022f565b806301ffc9a71461023357806307621eca1461026f578063183a4f6e146102995780631c10893f146102b5575b5f80fd5b34801561023e575f80fd5b5061025960048036038101906102549190611e0d565b6108b5565b6040516102669190611e52565b60405180910390f35b34801561027a575f80fd5b5061028361092e565b6040516102909190611e83565b60405180910390f35b6102b360048036038101906102ae9190611ec6565b610936565b005b6102cf60048036038101906102ca9190611f4b565b610943565b005b3480156102dc575f80fd5b506102f760048036038101906102f29190611f4b565b610959565b6040516103049190611e52565b60405180910390f35b348015610318575f80fd5b5061032161096f565b60405161032e9190611f98565b60405180910390f35b348015610342575f80fd5b5061034b610994565b6040516103589190611e83565b60405180910390f35b610369610999565b005b348015610376575f80fd5b5061037f6109ea565b60405161038c9190611fc0565b60405180910390f35b3480156103a0575f80fd5b506103bb60048036038101906103b69190611fd9565b610a11565b6040516103c89190611e83565b60405180910390f35b3480156103dc575f80fd5b506103e5610a2a565b6040516103f29190611f98565b60405180910390f35b348015610406575f80fd5b50610421600480360381019061041c91906120ba565b610a4f565b005b34801561042e575f80fd5b506104496004803603810190610444919061218d565b610b5d565b005b348015610456575f80fd5b50610471600480360381019061046c919061218d565b610e9c565b60405161047f9291906121d8565b60405180910390f35b6104a2600480360381019061049d9190611f4b565b611006565b005b3480156104af575f80fd5b506104ca60048036038101906104c5919061218d565b61101c565b6040516104d7919061226f565b60405180910390f35b3480156104eb575f80fd5b5061050660048036038101906105019190611f4b565b6110f1565b6040516105139190611e52565b60405180910390f35b348015610527575f80fd5b50610530611108565b60405161053d9190611e83565b60405180910390f35b61054e61110e565b005b610558611147565b005b348015610565575f80fd5b5061056e61115a565b60405161057b9190611e83565b60405180910390f35b34801561058f575f80fd5b5061059861115f565b6040516105a89493929190612335565b60405180910390f35b3480156105bc575f80fd5b506105c56111b4565b6040516105d29190611f98565b60405180910390f35b3480156105e6575f80fd5b506105ef6111dc565b6040516105fc9190611f98565b60405180910390f35b348015610610575f80fd5b50610619611204565b6040516106269190611e83565b60405180910390f35b34801561063a575f80fd5b5061064361120a565b6040516106509190612407565b60405180910390f35b348015610664575f80fd5b5061067f600480360381019061067a9190612420565b6112d9565b60405161068c9190611e52565b60405180910390f35b3480156106a0575f80fd5b506106bb60048036038101906106b691906124d2565b611506565b005b3480156106c8575f80fd5b506106d16115bc565b6040516106de9190611e83565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190611fd9565b6115c5565b60405161071a9190611e52565b60405180910390f35b34801561072e575f80fd5b506107376115e2565b6040516107449190611e83565b60405180910390f35b348015610758575f80fd5b50610773600480360381019061076e9190612420565b6115e8565b6040516107809190611e52565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa91906124d2565b61165f565b005b3480156107bc575f80fd5b506107c5611715565b6040516107d29190611e83565b60405180910390f35b3480156107e6575f80fd5b506107ef61171b565b6040516107fc9190611e83565b60405180910390f35b61081f600480360381019061081a9190611fd9565b611720565b005b61083b60048036038101906108369190611fd9565b61175e565b005b348015610848575f80fd5b50610863600480360381019061085e9190611fd9565b611787565b6040516108709190611e52565b60405180910390f35b348015610884575f80fd5b5061089f600480360381019061089a9190611fd9565b6117da565b6040516108ac9190611e83565b60405180910390f35b5f7ff60c99c9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109275750610926826117f3565b5b9050919050565b5f8054905090565b610940338261186c565b50565b61094b61187b565b61095582826118b2565b5050565b5f818261096585610a11565b1614905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b5f6109a26118c2565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7ff60c99c900000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002610a5a816118cc565b828290508585905014610a99576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610b55575f848483818110610aba57610ab9612550565b5b9050602002016020810190610acf91906125a7565b90506001151581151503610b1457610b0f878784818110610af357610af2612550565b5b9050602002016020810190610b089190611fd9565b60016118b2565b610b47565b610b46878784818110610b2a57610b29612550565b5b9050602002016020810190610b3f9190611fd9565b600161186c565b5b508080600101915050610a9b565b505050505050565b5f610b66611901565b90508054600382558015610b985760018160011c14303b10610b8f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610ba991906127f0565b90505f816060015103610be8576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015190505f610c1d30845f015173ffffffffffffffffffffffffffffffffffffffff1661192a90919063ffffffff16565b905081811015610c6b57825f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610c629392919061281c565b60405180910390fd5b5f8360c001519050835f015160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360200151600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083604001515f8190555083606001516008819055508360a00151600b819055508060035f820151815f015f6101000a81548160ff02191690836001811115610d4557610d4461228f565b5b0217905550602082015181600101556040820151816002015f6101000a81548160ff021916908360ff16021790555060608201518160020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610dc73361195d565b610dd684608001516001611a33565b836020015173ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff167fdc505a50c6f2c816d981a377c8177e2604d8302821a502bc9f742e0748f338428660400151876060015188608001518960a001518a60c00151604051610e56959493929190612851565b60405180910390a3505050508015610e97576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610ea9816118cc565b5f8585810190610eb991906129bc565b90505f8160200151806020019051810190610ed49190612a17565b90508060085f828254610ee79190612a6f565b92505081905550610f3d825f01518260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a749092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610fb193929190612b07565b604051602081830303815290604052604051610fcd919061226f565b60405180910390a28060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b61100e61187b565b611018828261186c565b5050565b60605f838381019061102e91906127f0565b90505f816060015190506040518060800160405280600160028111156110575761105661228f565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060200160405280848152506040516020016110b69190612b6c565b6040516020818303038152906040528152506040516020016110d89190612c73565b6040516020818303038152906040529250505092915050565b5f80826110fd85610a11565b161415905092915050565b60025481565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61114f61187b565b6111585f611abd565b565b600281565b6003805f015f9054906101000a900460ff1690806001015490806002015f9054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b611212611d55565b60036040518060800160405290815f82015f9054906101000a900460ff1660018111156112425761124161228f565b5b60018111156112545761125361228f565b5b815260200160018201548152602001600282015f9054906101000a900460ff1660ff1660ff1681526020016002820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905090565b5f6112e261187b565b5f83838101906112f29190612d18565b90505f816020015180602001905181019061130d9190612a17565b90505f805f540361132057819050611343565b670de0b6b3a7640000825f546113369190612d5f565b6113409190612dcd565b90505b5f600b54141580156113565750600b5481115b1561136157600b5490505b61136a81611b83565b6113a0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854816009546113b19190612dfd565b11156113e9576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060095f8282546113fa9190612dfd565b92505081905550600160075f8282546114139190612dfd565b92505081905550611466878260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a749092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689846040516020016114d493929190612b07565b6040516020818303038152906040526040516114f0919061226f565b60405180910390a2600193505050509392505050565b6002611511816118cc565b828290508585905014611550576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156115b4576115a786868381811061157357611572612550565b5b90506020020160208101906115889190611fd9565b85858481811061159b5761159a612550565b5b905060200201356118b2565b8080600101915050611552565b505050505050565b5f600b54905090565b6001602052805f5260405f205f915054906101000a900460ff1681565b60095481565b5f805f84848101906115fa9190612d18565b90505f81602001518060200190518101906116159190612a17565b90505f8054036116275780925061164a565b670de0b6b3a7640000815f5461163d9190612d5f565b6116479190612dcd565b92505b61165383611b83565b93505050509392505050565b600261166a816118cc565b8282905085859050146116a9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561170d576117008686838181106116cc576116cb612550565b5b90506020020160208101906116e19190611fd9565b8585848181106116f4576116f3612550565b5b9050602002013561186c565b80806001019150506116ab565b505050505050565b60075481565b600181565b61172861187b565b63389a75e1600c52805f526020600c20805442111561174e57636f5e88185f526004601cfd5b5f81555061175b81611abd565b50565b61176661187b565b8060601b61177b57637448fbae5f526004601cfd5b61178481611abd565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166117a76111b4565b73ffffffffffffffffffffffffffffffffffffffff1614806117d357506117d28260026001176110f1565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f56586338000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611865575061186482611b9e565b5b9050919050565b61187782825f611c17565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146118b0576382b429005f526004601cfd5b565b6118be82826001611c17565b5050565b5f6202a300905090565b638b78c6d8195433146118fe57638b78c6d8600c52335f52806020600c2054166118fd576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611965611c6f565b156119dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561199f57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611a30565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611ab4576390b8ec185f526004601cfd5b5f603452505050565b611ac5611c6f565b15611b2a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611b80565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60085482600954611b959190612dfd565b11159050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c105750611c0f82611c73565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783611c3957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ce55750611ce482611cec565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60405180608001604052805f6001811115611d7357611d7261228f565b5b81526020015f80191681526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611dec81611db8565b8114611df6575f80fd5b50565b5f81359050611e0781611de3565b92915050565b5f60208284031215611e2257611e21611db0565b5b5f611e2f84828501611df9565b91505092915050565b5f8115159050919050565b611e4c81611e38565b82525050565b5f602082019050611e655f830184611e43565b92915050565b5f819050919050565b611e7d81611e6b565b82525050565b5f602082019050611e965f830184611e74565b92915050565b611ea581611e6b565b8114611eaf575f80fd5b50565b5f81359050611ec081611e9c565b92915050565b5f60208284031215611edb57611eda611db0565b5b5f611ee884828501611eb2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f1a82611ef1565b9050919050565b611f2a81611f10565b8114611f34575f80fd5b50565b5f81359050611f4581611f21565b92915050565b5f8060408385031215611f6157611f60611db0565b5b5f611f6e85828601611f37565b9250506020611f7f85828601611eb2565b9150509250929050565b611f9281611f10565b82525050565b5f602082019050611fab5f830184611f89565b92915050565b611fba81611db8565b82525050565b5f602082019050611fd35f830184611fb1565b92915050565b5f60208284031215611fee57611fed611db0565b5b5f611ffb84828501611f37565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261202557612024612004565b5b8235905067ffffffffffffffff81111561204257612041612008565b5b60208301915083602082028301111561205e5761205d61200c565b5b9250929050565b5f8083601f84011261207a57612079612004565b5b8235905067ffffffffffffffff81111561209757612096612008565b5b6020830191508360208202830111156120b3576120b261200c565b5b9250929050565b5f805f80604085870312156120d2576120d1611db0565b5b5f85013567ffffffffffffffff8111156120ef576120ee611db4565b5b6120fb87828801612010565b9450945050602085013567ffffffffffffffff81111561211e5761211d611db4565b5b61212a87828801612065565b925092505092959194509250565b5f8083601f84011261214d5761214c612004565b5b8235905067ffffffffffffffff81111561216a57612169612008565b5b6020830191508360018202830111156121865761218561200c565b5b9250929050565b5f80602083850312156121a3576121a2611db0565b5b5f83013567ffffffffffffffff8111156121c0576121bf611db4565b5b6121cc85828601612138565b92509250509250929050565b5f6040820190506121eb5f830185611e74565b6121f86020830184611f89565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612241826121ff565b61224b8185612209565b935061225b818560208601612219565b61226481612227565b840191505092915050565b5f6020820190508181035f8301526122878184612237565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106122cd576122cc61228f565b5b50565b5f8190506122dd826122bc565b919050565b5f6122ec826122d0565b9050919050565b6122fc816122e2565b82525050565b5f819050919050565b61231481612302565b82525050565b5f60ff82169050919050565b61232f8161231a565b82525050565b5f6080820190506123485f8301876122f3565b612355602083018661230b565b6123626040830185612326565b61236f6060830184611f89565b95945050505050565b612381816122e2565b82525050565b61239081612302565b82525050565b61239f8161231a565b82525050565b6123ae81611f10565b82525050565b608082015f8201516123c85f850182612378565b5060208201516123db6020850182612387565b5060408201516123ee6040850182612396565b50606082015161240160608501826123a5565b50505050565b5f60808201905061241a5f8301846123b4565b92915050565b5f805f6040848603121561243757612436611db0565b5b5f61244486828701611f37565b935050602084013567ffffffffffffffff81111561246557612464611db4565b5b61247186828701612138565b92509250509250925092565b5f8083601f84011261249257612491612004565b5b8235905067ffffffffffffffff8111156124af576124ae612008565b5b6020830191508360208202830111156124cb576124ca61200c565b5b9250929050565b5f805f80604085870312156124ea576124e9611db0565b5b5f85013567ffffffffffffffff81111561250757612506611db4565b5b61251387828801612010565b9450945050602085013567ffffffffffffffff81111561253657612535611db4565b5b6125428782880161247d565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61258681611e38565b8114612590575f80fd5b50565b5f813590506125a18161257d565b92915050565b5f602082840312156125bc576125bb611db0565b5b5f6125c984828501612593565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61260c82612227565b810181811067ffffffffffffffff8211171561262b5761262a6125d6565b5b80604052505050565b5f61263d611da7565b90506126498282612603565b919050565b5f80fd5b6002811061265e575f80fd5b50565b5f8135905061266f81612652565b92915050565b61267e81612302565b8114612688575f80fd5b50565b5f8135905061269981612675565b92915050565b6126a88161231a565b81146126b2575f80fd5b50565b5f813590506126c38161269f565b92915050565b5f608082840312156126de576126dd6125d2565b5b6126e86080612634565b90505f6126f784828501612661565b5f83015250602061270a8482850161268b565b602083015250604061271e848285016126b5565b604083015250606061273284828501611f37565b60608301525092915050565b5f6101408284031215612754576127536125d2565b5b61275e60e0612634565b90505f61276d84828501611f37565b5f83015250602061278084828501611f37565b602083015250604061279484828501611eb2565b60408301525060606127a884828501611eb2565b60608301525060806127bc84828501611f37565b60808301525060a06127d084828501611eb2565b60a08301525060c06127e4848285016126c9565b60c08301525092915050565b5f610140828403121561280657612805611db0565b5b5f6128138482850161273e565b91505092915050565b5f60608201905061282f5f830186611f89565b61283c6020830185611e74565b6128496040830184611e74565b949350505050565b5f610100820190506128655f830188611e74565b6128726020830187611e74565b61287f6040830186611f89565b61288c6060830185611e74565b61289960808301846123b4565b9695505050505050565b5f80fd5b5f67ffffffffffffffff8211156128c1576128c06125d6565b5b6128ca82612227565b9050602081019050919050565b828183375f83830152505050565b5f6128f76128f2846128a7565b612634565b905082815260208101848484011115612913576129126128a3565b5b61291e8482856128d7565b509392505050565b5f82601f83011261293a57612939612004565b5b813561294a8482602086016128e5565b91505092915050565b5f60408284031215612968576129676125d2565b5b6129726040612634565b90505f61298184828501611f37565b5f83015250602082013567ffffffffffffffff8111156129a4576129a361264e565b5b6129b084828501612926565b60208301525092915050565b5f602082840312156129d1576129d0611db0565b5b5f82013567ffffffffffffffff8111156129ee576129ed611db4565b5b6129fa84828501612953565b91505092915050565b5f81519050612a1181611e9c565b92915050565b5f60208284031215612a2c57612a2b611db0565b5b5f612a3984828501612a03565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7982611e6b565b9150612a8483611e6b565b9250828203905081811115612a9c57612a9b612a42565b5b92915050565b5f8160601b9050919050565b5f612ab882612aa2565b9050919050565b5f612ac982612aae565b9050919050565b612ae1612adc82611f10565b612abf565b82525050565b5f819050919050565b612b01612afc82611e6b565b612ae7565b82525050565b5f612b128286612ad0565b601482019150612b228285612ad0565b601482019150612b328284612af0565b602082019150819050949350505050565b612b4c81611e6b565b82525050565b602082015f820151612b665f850182612b43565b50505050565b5f602082019050612b7f5f830184612b52565b92915050565b60038110612b9657612b9561228f565b5b50565b5f819050612ba682612b85565b919050565b5f612bb582612b99565b9050919050565b612bc581612bab565b82525050565b5f82825260208201905092915050565b5f612be5826121ff565b612bef8185612bcb565b9350612bff818560208601612219565b612c0881612227565b840191505092915050565b5f608083015f830151612c285f860182612bbc565b506020830151612c3b60208601826123a5565b506040830151612c4e60408601826123a5565b5060608301518482036060860152612c668282612bdb565b9150508091505092915050565b5f6020820190508181035f830152612c8b8184612c13565b905092915050565b5f60408284031215612ca857612ca76125d2565b5b612cb26040612634565b90505f82013567ffffffffffffffff811115612cd157612cd061264e565b5b612cdd84828501612926565b5f83015250602082013567ffffffffffffffff811115612d0057612cff61264e565b5b612d0c84828501612926565b60208301525092915050565b5f60208284031215612d2d57612d2c611db0565b5b5f82013567ffffffffffffffff811115612d4a57612d49611db4565b5b612d5684828501612c93565b91505092915050565b5f612d6982611e6b565b9150612d7483611e6b565b9250828202612d8281611e6b565b91508282048414831517612d9957612d98612a42565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612dd782611e6b565b9150612de283611e6b565b925082612df257612df1612da0565b5b828204905092915050565b5f612e0782611e6b565b9150612e1283611e6b565b9250828201905080821115612e2a57612e29612a42565b5b9291505056fea264697066735822122050bb6a176feb20b04fcded40293358e8fdba927c1e1bf68a160c7fa7cac6b41664736f6c634300081a0033",p=class p extends E.DeployableTarget{constructor(){super(...arguments),this.abi=e.l}async owner(f){return await e.Xh(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await e.Dh(this._config,{address:this.assertValidAddress(),args:[],...f})}async getMaxReward(f){return await e.Uh(this._config,{...f,address:this.assertValidAddress()})}async getIncentiveScalar({chainId:f,hash:b,knownSignatures:a},d){var r;const c=await this.getIncentiveCriteria(d);if(c.criteriaType===V.SignatureType.EVENT){const n=await A.getTransactionReceipt(this._config,{chainId:f,hash:b});if(c.fieldIndex===C.CheatCodes.GAS_REBATE_INCENTIVE)return n.gasUsed*n.effectiveGasPrice+(n.blobGasUsed??0n)*(n.blobGasPrice??0n);const u=n.logs;if(u.length===0)throw new s.NoMatchingLogsError(`No logs found for event signature ${c.signature}`);try{const g=a[c.signature],o=t.parseEventLogs({abi:[g],logs:u});if(o==null||o.length===0)throw new s.NoMatchingLogsError(`No logs found for event signature ${c.signature}`);const v=((r=o[0])==null?void 0:r.args)[c.fieldIndex];if(v===void 0)throw new s.DecodedArgsError(`Decoded argument at index ${c.fieldIndex} is undefined`);return BigInt(v)}catch(g){throw new s.DecodedArgsError(`Failed to decode event log for signature ${c.signature}: ${g.message}`)}}else if(c.criteriaType===V.SignatureType.FUNC){const n=await A.getTransaction(this._config,{chainId:f,hash:b});try{const u=a[c.signature],o=t.decodeFunctionData({abi:[u],data:n.input}).args[c.fieldIndex];if(o==null)throw new s.DecodedArgsError(`Decoded argument at index ${c.fieldIndex} is undefined`);return BigInt(o)}catch(u){throw new s.DecodedArgsError(`Failed to decode function data for signature ${c.signature}: ${u.message}`)}}else throw new s.InvalidCriteriaTypeError(`Invalid criteria type ${c.criteriaType}`)}async claims(f){return await e._h(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await e.rN(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await e.Lh(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await e.Ph(this._config,{address:this.assertValidAddress(),...f})}async peg(f){return await e.eN(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await e.nN(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await e.Kh(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:a,result:d}=await e.NN(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.uN(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await e.MN(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.lN(this._config,a),result:d}}async isClaimable(f,b){return await e.Jh(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async getPeg(f){return await e.Wh(this._config,{address:this.assertValidAddress(),args:[],...f})}async getTotalBudget(f){return await this.limit(f)}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,a]=await Promise.all([this.totalClaimed(f),this.limit(f)]);return a-b}async getIncentiveCriteria(f){try{return await e.Gh(this._config,{...f,address:this.assertValidAddress()})}catch(b){throw new s.IncentiveCriteriaNotFoundError(b)}}buildParameters(f,b){const[a,d]=this.validateDeploymentConfig(f,b);return{abi:e.l,bytecode:$,args:[_(a)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return t.encodeAbiParameters([{type:"uint256"}],[f])}buildClaimData(f){return t.encodeAbiParameters([{type:"uint256",name:"rewardAmount"}],[f])}decodeClaimData(f){return BigInt(t.decodeAbiParameters([{type:"uint256"}],f)[0])}};p.bases={31337:void 0,...R.ERC20PeggedVariableCriteriaIncentive},p.registryType=C.RegistryType.INCENTIVE;let m=p;function _({asset:l,peg:f,reward:b,limit:a,maxReward:d=0n,manager:c=t.zeroAddress,criteria:r}){return t.encodeAbiParameters([{type:"tuple",name:"initPayloadExtended",components:[{type:"address",name:"asset"},{type:"address",name:"peg"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"},{type:"uint256",name:"maxReward"},{type:"tuple",name:"criteria",components:[{type:"uint8",name:"criteriaType"},{type:"bytes32",name:"signature"},{type:"uint8",name:"fieldIndex"},{type:"address",name:"targetContract"}]}]}],[{asset:l,peg:f,reward:b,limit:a,manager:c,maxReward:d,criteria:{criteriaType:r.criteriaType,signature:r.signature,fieldIndex:r.fieldIndex,targetContract:r.targetContract}}])}const I={[i.APointsIncentive]:B.PointsIncentive,[i.AERC20Incentive]:N.ERC20Incentive,[i.AERC20PeggedVariableCriteriaIncentive]:m,[i.AERC20PeggedIncentive]:y,[i.AAllowListIncentive]:T.AllowListIncentive,[i.ACGDAIncentive]:D.CGDAIncentive,[i.AERC20VariableIncentive]:x.ERC20VariableIncentive,[i.AERC20VariableCriteriaIncentive]:q.ERC20VariableCriteriaIncentive};async function k(l,f,b){const a=await A.readContract(l.config,{abi:e.Y,functionName:"getComponentInterface",address:f,...b}),d=I[a];if(!d)throw new s.InvalidComponentInterfaceError(Object.keys(I),a);return new d(l,f)}exports.ERC20PeggedIncentive=y;exports.ERC20PeggedVariableCriteriaIncentive=m;exports.IncentiveByComponentInterface=I;exports.incentiveFromAddress=k;exports.prepareERC20PeggedIncentivePayload=P;exports.prepareERC20PeggedVariableCriteriaIncentivePayload=_;
|
|
2
|
-
//# sourceMappingURL=Incentive-
|
|
1
|
+
"use strict";const e=require("./generated-CRD9XfOT.cjs"),r=require("./componentInterfaces-D7r9xJmt.cjs"),A=require("@wagmi/core"),i=require("./errors.cjs"),_=require("./Incentives/AllowListIncentive.cjs"),T=require("./Incentives/CGDAIncentive.cjs"),N=require("./Incentives/ERC20Incentive.cjs"),s=require("viem"),R=require("./deployments-BGpr4ppG.cjs"),P=require("./Deployable/DeployableTarget.cjs"),h=require("./claiming.cjs"),C=require("./utils.cjs"),V=require("./Actions/EventAction.cjs"),q=require("./Incentives/ERC20VariableCriteriaIncentive.cjs"),x=require("./Incentives/ERC20VariableIncentive.cjs"),B=require("./Incentives/PointsIncentive.cjs"),F="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6127bf806100bd5f395ff3fe60806040526004361061020e575f3560e01c806354d1f13d11610117578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c14610739578063f04e283e14610763578063f2fde38b1461077f578063fe9fbb801461079b578063fee81cf4146107d75761020e565b8063d54ad2a114610681578063db09da12146106ab578063dcc21361146106e7578063dcc59b6f1461070f5761020e565b80639214fa4d116100e65780639214fa4d1461058d578063a4d66daf146105b7578063bb1757cf146105e1578063be4994f81461061d578063c884ef83146106455761020e565b806354d1f13d14610525578063715018a61461052f57806375b238fc146105395780638da5cb5b146105635761020e565b80632de948071161019a578063474f5a4411610169578063474f5a441461042a5780634a4ee7b1146104675780634e7165a214610483578063514e62fc146104bf578063547d1864146104fb5761020e565b80632de948071461037457806338d52e0f146103b05780634359d28a146103da578063439fab91146104025761020e565b80631cd64df4116101e15780631cd64df4146102b05780631f1cb62b146102ec578063228cb73314610316578063256929621461034057806328d6183b1461034a5761020e565b806301ffc9a71461021257806307621eca1461024e578063183a4f6e146102785780631c10893f14610294575b5f80fd5b34801561021d575f80fd5b5061023860048036038101906102339190611a8c565b610813565b6040516102459190611ad1565b60405180910390f35b348015610259575f80fd5b5061026261088c565b60405161026f9190611b02565b60405180910390f35b610292600480360381019061028d9190611b45565b610894565b005b6102ae60048036038101906102a99190611bca565b6108a1565b005b3480156102bb575f80fd5b506102d660048036038101906102d19190611bca565b6108b7565b6040516102e39190611ad1565b60405180910390f35b3480156102f7575f80fd5b506103006108cd565b60405161030d9190611c17565b60405180910390f35b348015610321575f80fd5b5061032a6108f2565b6040516103379190611b02565b60405180910390f35b6103486108f7565b005b348015610355575f80fd5b5061035e610948565b60405161036b9190611c3f565b60405180910390f35b34801561037f575f80fd5b5061039a60048036038101906103959190611c58565b61096f565b6040516103a79190611b02565b60405180910390f35b3480156103bb575f80fd5b506103c4610988565b6040516103d19190611c17565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb9190611d39565b6109ad565b005b34801561040d575f80fd5b5061042860048036038101906104239190611e0c565b610abb565b005b348015610435575f80fd5b50610450600480360381019061044b9190611e0c565b610d45565b60405161045e929190611e57565b60405180910390f35b610481600480360381019061047c9190611bca565b610eaf565b005b34801561048e575f80fd5b506104a960048036038101906104a49190611e0c565b610ec5565b6040516104b69190611eee565b60405180910390f35b3480156104ca575f80fd5b506104e560048036038101906104e09190611bca565b610f9a565b6040516104f29190611ad1565b60405180910390f35b348015610506575f80fd5b5061050f610fb1565b60405161051c9190611b02565b60405180910390f35b61052d610fb7565b005b610537610ff0565b005b348015610544575f80fd5b5061054d611003565b60405161055a9190611b02565b60405180910390f35b34801561056e575f80fd5b50610577611008565b6040516105849190611c17565b60405180910390f35b348015610598575f80fd5b506105a1611030565b6040516105ae9190611c17565b60405180910390f35b3480156105c2575f80fd5b506105cb611058565b6040516105d89190611b02565b60405180910390f35b3480156105ec575f80fd5b5061060760048036038101906106029190611f0e565b61105e565b6040516106149190611ad1565b60405180910390f35b348015610628575f80fd5b50610643600480360381019061063e9190611fc0565b611239565b005b348015610650575f80fd5b5061066b60048036038101906106669190611c58565b6112ef565b6040516106789190611ad1565b60405180910390f35b34801561068c575f80fd5b5061069561130c565b6040516106a29190611b02565b60405180910390f35b3480156106b6575f80fd5b506106d160048036038101906106cc9190611f0e565b611312565b6040516106de9190611ad1565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190611fc0565b611355565b005b34801561071a575f80fd5b5061072361140b565b6040516107309190611b02565b60405180910390f35b348015610744575f80fd5b5061074d611411565b60405161075a9190611b02565b60405180910390f35b61077d60048036038101906107789190611c58565b611416565b005b61079960048036038101906107949190611c58565b611454565b005b3480156107a6575f80fd5b506107c160048036038101906107bc9190611c58565b61147d565b6040516107ce9190611ad1565b60405180910390f35b3480156107e2575f80fd5b506107fd60048036038101906107f89190611c58565b6114d0565b60405161080a9190611b02565b60405180910390f35b5f7f56586338000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108855750610884826114e9565b5b9050919050565b5f8054905090565b61089e3382611562565b50565b6108a9611571565b6108b382826115a8565b5050565b5f81826108c38561096f565b1614905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b5f6109006115b8565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5658633800000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026109b8816115c2565b8282905085859050146109f7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610ab3575f848483818110610a1857610a1761203e565b5b9050602002016020810190610a2d9190612095565b90506001151581151503610a7257610a6d878784818110610a5157610a5061203e565b5b9050602002016020810190610a669190611c58565b60016115a8565b610aa5565b610aa4878784818110610a8857610a8761203e565b5b9050602002016020810190610a9d9190611c58565b6001611562565b5b5080806001019150506109f9565b505050505050565b5f610ac46115f7565b90508054600382558015610af65760018160011c14303b10610aed5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610b0791906121c9565b90505f81604001511480610b1e57505f8160600151145b15610b55576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015190505f610b8a30845f015173ffffffffffffffffffffffffffffffffffffffff1661162090919063ffffffff16565b905081811015610bd857825f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610bcf939291906121f4565b60405180910390fd5b825f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826020015160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082604001515f819055508260600151600581905550610c7d33611653565b610c8c83608001516001611729565b826020015173ffffffffffffffffffffffffffffffffffffffff16835f015173ffffffffffffffffffffffffffffffffffffffff167fd20715546497e6d32bc9b61b35416a25a8cc41d2fb7f389a1bb26dc040213a3b856040015186606001518760800151604051610d0093929190612229565b60405180910390a35050508015610d40576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610d52816115c2565b5f8585810190610d629190612377565b90505f8160200151806020019051810190610d7d91906123d2565b90508060055f828254610d90919061242a565b92505081905550610de6825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176a9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610e5a939291906124c2565b604051602081830303815290604052604051610e769190611eee565b60405180910390a28060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610eb7611571565b610ec18282611562565b5050565b60605f8383810190610ed791906121c9565b90505f81606001519050604051806080016040528060016002811115610f0057610eff6124fe565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610f5f9190612554565b604051602081830303815290604052815250604051602001610f81919061266a565b6040516020818303038152906040529250505092915050565b5f8082610fa68561096f565b161415905092915050565b60025481565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610ff8611571565b6110015f6117b3565b565b600281565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b5f611067611571565b5f8383810190611077919061270f565b90505f816020015180602001905181019061109291906123d2565b905061109e8682611879565b6110d4576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554816006546110e59190612756565b111561111d576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060065f82825461112e9190612756565b92505081905550600160045f8282546111479190612756565b9250508190555061119a868260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176a9092919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168884604051602001611208939291906124c2565b6040516020818303038152906040526040516112249190611eee565b60405180910390a26001925050509392505050565b6002611244816115c2565b828290508585905014611283576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156112e7576112da8686838181106112a6576112a561203e565b5b90506020020160208101906112bb9190611c58565b8585848181106112ce576112cd61203e565b5b905060200201356115a8565b8080600101915050611285565b505050505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b60065481565b5f808383810190611323919061270f565b90505f816020015180602001905181019061133e91906123d2565b905061134a8682611879565b925050509392505050565b6002611360816115c2565b82829050858590501461139f576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611403576113f68686838181106113c2576113c161203e565b5b90506020020160208101906113d79190611c58565b8585848181106113ea576113e961203e565b5b90506020020135611562565b80806001019150506113a1565b505050505050565b60045481565b600181565b61141e611571565b63389a75e1600c52805f526020600c20805442111561144457636f5e88185f526004601cfd5b5f815550611451816117b3565b50565b61145c611571565b8060601b61147157637448fbae5f526004601cfd5b61147a816117b3565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff1661149d611008565b73ffffffffffffffffffffffffffffffffffffffff1614806114c957506114c8826002600117610f9a565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061155b575061155a826118e8565b5b9050919050565b61156d82825f611961565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146115a6576382b429005f526004601cfd5b565b6115b482826001611961565b5050565b5f6202a300905090565b638b78c6d8195433146115f457638b78c6d8600c52335f52806020600c2054166115f3576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61165b6119b9565b156116d3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561169557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611726565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166117aa576390b8ec185f526004601cfd5b5f603452505050565b6117bb6119b9565b15611820577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611876565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118e05750600554826006546118dd9190612756565b11155b905092915050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061195a5750611959826119bd565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361198357848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a6b81611a37565b8114611a75575f80fd5b50565b5f81359050611a8681611a62565b92915050565b5f60208284031215611aa157611aa0611a2f565b5b5f611aae84828501611a78565b91505092915050565b5f8115159050919050565b611acb81611ab7565b82525050565b5f602082019050611ae45f830184611ac2565b92915050565b5f819050919050565b611afc81611aea565b82525050565b5f602082019050611b155f830184611af3565b92915050565b611b2481611aea565b8114611b2e575f80fd5b50565b5f81359050611b3f81611b1b565b92915050565b5f60208284031215611b5a57611b59611a2f565b5b5f611b6784828501611b31565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9982611b70565b9050919050565b611ba981611b8f565b8114611bb3575f80fd5b50565b5f81359050611bc481611ba0565b92915050565b5f8060408385031215611be057611bdf611a2f565b5b5f611bed85828601611bb6565b9250506020611bfe85828601611b31565b9150509250929050565b611c1181611b8f565b82525050565b5f602082019050611c2a5f830184611c08565b92915050565b611c3981611a37565b82525050565b5f602082019050611c525f830184611c30565b92915050565b5f60208284031215611c6d57611c6c611a2f565b5b5f611c7a84828501611bb6565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611ca457611ca3611c83565b5b8235905067ffffffffffffffff811115611cc157611cc0611c87565b5b602083019150836020820283011115611cdd57611cdc611c8b565b5b9250929050565b5f8083601f840112611cf957611cf8611c83565b5b8235905067ffffffffffffffff811115611d1657611d15611c87565b5b602083019150836020820283011115611d3257611d31611c8b565b5b9250929050565b5f805f8060408587031215611d5157611d50611a2f565b5b5f85013567ffffffffffffffff811115611d6e57611d6d611a33565b5b611d7a87828801611c8f565b9450945050602085013567ffffffffffffffff811115611d9d57611d9c611a33565b5b611da987828801611ce4565b925092505092959194509250565b5f8083601f840112611dcc57611dcb611c83565b5b8235905067ffffffffffffffff811115611de957611de8611c87565b5b602083019150836001820283011115611e0557611e04611c8b565b5b9250929050565b5f8060208385031215611e2257611e21611a2f565b5b5f83013567ffffffffffffffff811115611e3f57611e3e611a33565b5b611e4b85828601611db7565b92509250509250929050565b5f604082019050611e6a5f830185611af3565b611e776020830184611c08565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ec082611e7e565b611eca8185611e88565b9350611eda818560208601611e98565b611ee381611ea6565b840191505092915050565b5f6020820190508181035f830152611f068184611eb6565b905092915050565b5f805f60408486031215611f2557611f24611a2f565b5b5f611f3286828701611bb6565b935050602084013567ffffffffffffffff811115611f5357611f52611a33565b5b611f5f86828701611db7565b92509250509250925092565b5f8083601f840112611f8057611f7f611c83565b5b8235905067ffffffffffffffff811115611f9d57611f9c611c87565b5b602083019150836020820283011115611fb957611fb8611c8b565b5b9250929050565b5f805f8060408587031215611fd857611fd7611a2f565b5b5f85013567ffffffffffffffff811115611ff557611ff4611a33565b5b61200187828801611c8f565b9450945050602085013567ffffffffffffffff81111561202457612023611a33565b5b61203087828801611f6b565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61207481611ab7565b811461207e575f80fd5b50565b5f8135905061208f8161206b565b92915050565b5f602082840312156120aa576120a9611a2f565b5b5f6120b784828501612081565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6120fa82611ea6565b810181811067ffffffffffffffff82111715612119576121186120c4565b5b80604052505050565b5f61212b611a26565b905061213782826120f1565b919050565b5f80fd5b5f60a08284031215612155576121546120c0565b5b61215f60a0612122565b90505f61216e84828501611bb6565b5f83015250602061218184828501611bb6565b602083015250604061219584828501611b31565b60408301525060606121a984828501611b31565b60608301525060806121bd84828501611bb6565b60808301525092915050565b5f60a082840312156121de576121dd611a2f565b5b5f6121eb84828501612140565b91505092915050565b5f6060820190506122075f830186611c08565b6122146020830185611af3565b6122216040830184611af3565b949350505050565b5f60608201905061223c5f830186611af3565b6122496020830185611af3565b6122566040830184611c08565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561227c5761227b6120c4565b5b61228582611ea6565b9050602081019050919050565b828183375f83830152505050565b5f6122b26122ad84612262565b612122565b9050828152602081018484840111156122ce576122cd61225e565b5b6122d9848285612292565b509392505050565b5f82601f8301126122f5576122f4611c83565b5b81356123058482602086016122a0565b91505092915050565b5f60408284031215612323576123226120c0565b5b61232d6040612122565b90505f61233c84828501611bb6565b5f83015250602082013567ffffffffffffffff81111561235f5761235e61213c565b5b61236b848285016122e1565b60208301525092915050565b5f6020828403121561238c5761238b611a2f565b5b5f82013567ffffffffffffffff8111156123a9576123a8611a33565b5b6123b58482850161230e565b91505092915050565b5f815190506123cc81611b1b565b92915050565b5f602082840312156123e7576123e6611a2f565b5b5f6123f4848285016123be565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61243482611aea565b915061243f83611aea565b9250828203905081811115612457576124566123fd565b5b92915050565b5f8160601b9050919050565b5f6124738261245d565b9050919050565b5f61248482612469565b9050919050565b61249c61249782611b8f565b61247a565b82525050565b5f819050919050565b6124bc6124b782611aea565b6124a2565b82525050565b5f6124cd828661248b565b6014820191506124dd828561248b565b6014820191506124ed82846124ab565b602082019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61253481611aea565b82525050565b602082015f82015161254e5f85018261252b565b50505050565b5f6020820190506125675f83018461253a565b92915050565b6003811061257e5761257d6124fe565b5b50565b5f81905061258e8261256d565b919050565b5f61259d82612581565b9050919050565b6125ad81612593565b82525050565b6125bc81611b8f565b82525050565b5f82825260208201905092915050565b5f6125dc82611e7e565b6125e681856125c2565b93506125f6818560208601611e98565b6125ff81611ea6565b840191505092915050565b5f608083015f83015161261f5f8601826125a4565b50602083015161263260208601826125b3565b50604083015161264560408601826125b3565b506060830151848203606086015261265d82826125d2565b9150508091505092915050565b5f6020820190508181035f830152612682818461260a565b905092915050565b5f6040828403121561269f5761269e6120c0565b5b6126a96040612122565b90505f82013567ffffffffffffffff8111156126c8576126c761213c565b5b6126d4848285016122e1565b5f83015250602082013567ffffffffffffffff8111156126f7576126f661213c565b5b612703848285016122e1565b60208301525092915050565b5f6020828403121561272457612723611a2f565b5b5f82013567ffffffffffffffff81111561274157612740611a33565b5b61274d8482850161268a565b91505092915050565b5f61276082611aea565b915061276b83611aea565b9250828201905080821115612783576127826123fd565b5b9291505056fea2646970667358221220dac302ea2cd5b1bd043f32307b4b55326db7520539ec80e9572f86826d8305f064736f6c634300081a0033",w=class w extends P.DeployableTarget{constructor(){super(...arguments),this.abi=e.v}async owner(f){return await e.qI(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await e.VI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await e.xI(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await e.JI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await e.BI(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await e.HI(this._config,{address:this.assertValidAddress(),...f})}async peg(f){return await e.UI(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await e.ZI(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await e.DI(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:a,result:d}=await e.mh(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.YI(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await e.bh(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.eh(this._config,a),result:d}}async isClaimable(f,b){return await e._I(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async getPeg(f){return await e.FI(this._config,{address:this.assertValidAddress(),args:[],...f})}async getTotalBudget(f){return await this.limit(f)}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,a]=await Promise.all([this.claims(f),this.limit(f)]);return a-b}buildParameters(f,b){const[a,d]=this.validateDeploymentConfig(f,b);return{abi:e.v,bytecode:F,args:[E(a)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return s.encodeAbiParameters([{type:"uint256"}],[f])}buildClaimData(f){return s.encodeAbiParameters([{type:"uint256",name:"rewardAmount"}],[f])}};w.bases={31337:void 0,...R.ERC20PeggedIncentive},w.registryType=C.RegistryType.INCENTIVE;let m=w;function E({asset:l,peg:f,reward:b,limit:a,manager:d=s.zeroAddress}){return s.encodeAbiParameters([{type:"address",name:"asset"},{type:"address",name:"peg"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"}],[l,f,b,a,d])}const $="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612e66806100bd5f395ff3fe60806040526004361061022f575f3560e01c8063715018a61161012d578063c884ef83116100aa578063ec87621c1161006e578063ec87621c146107db578063f04e283e14610805578063f2fde38b14610821578063fe9fbb801461083d578063fee81cf4146108795761022f565b8063c884ef83146106e7578063d54ad2a114610723578063db09da121461074d578063dcc2136114610789578063dcc59b6f146107b15761022f565b8063a4d66daf116100f1578063a4d66daf14610605578063a871ced21461062f578063bb1757cf14610659578063be4994f814610695578063c213f3f9146106bd5761022f565b8063715018a61461055057806375b238fc1461055a57806377548687146105845780638da5cb5b146105b15780639214fa4d146105db5761022f565b80632de94807116101bb5780634a4ee7b11161017f5780634a4ee7b1146104885780634e7165a2146104a4578063514e62fc146104e0578063547d18641461051c57806354d1f13d146105465761022f565b80632de948071461039557806338d52e0f146103d15780634359d28a146103fb578063439fab9114610423578063474f5a441461044b5761022f565b80631cd64df4116102025780631cd64df4146102d15780631f1cb62b1461030d578063228cb73314610337578063256929621461036157806328d6183b1461036b5761022f565b806301ffc9a71461023357806307621eca1461026f578063183a4f6e146102995780631c10893f146102b5575b5f80fd5b34801561023e575f80fd5b5061025960048036038101906102549190611e0d565b6108b5565b6040516102669190611e52565b60405180910390f35b34801561027a575f80fd5b5061028361092e565b6040516102909190611e83565b60405180910390f35b6102b360048036038101906102ae9190611ec6565b610936565b005b6102cf60048036038101906102ca9190611f4b565b610943565b005b3480156102dc575f80fd5b506102f760048036038101906102f29190611f4b565b610959565b6040516103049190611e52565b60405180910390f35b348015610318575f80fd5b5061032161096f565b60405161032e9190611f98565b60405180910390f35b348015610342575f80fd5b5061034b610994565b6040516103589190611e83565b60405180910390f35b610369610999565b005b348015610376575f80fd5b5061037f6109ea565b60405161038c9190611fc0565b60405180910390f35b3480156103a0575f80fd5b506103bb60048036038101906103b69190611fd9565b610a11565b6040516103c89190611e83565b60405180910390f35b3480156103dc575f80fd5b506103e5610a2a565b6040516103f29190611f98565b60405180910390f35b348015610406575f80fd5b50610421600480360381019061041c91906120ba565b610a4f565b005b34801561042e575f80fd5b506104496004803603810190610444919061218d565b610b5d565b005b348015610456575f80fd5b50610471600480360381019061046c919061218d565b610e9c565b60405161047f9291906121d8565b60405180910390f35b6104a2600480360381019061049d9190611f4b565b611006565b005b3480156104af575f80fd5b506104ca60048036038101906104c5919061218d565b61101c565b6040516104d7919061226f565b60405180910390f35b3480156104eb575f80fd5b5061050660048036038101906105019190611f4b565b6110f1565b6040516105139190611e52565b60405180910390f35b348015610527575f80fd5b50610530611108565b60405161053d9190611e83565b60405180910390f35b61054e61110e565b005b610558611147565b005b348015610565575f80fd5b5061056e61115a565b60405161057b9190611e83565b60405180910390f35b34801561058f575f80fd5b5061059861115f565b6040516105a89493929190612335565b60405180910390f35b3480156105bc575f80fd5b506105c56111b4565b6040516105d29190611f98565b60405180910390f35b3480156105e6575f80fd5b506105ef6111dc565b6040516105fc9190611f98565b60405180910390f35b348015610610575f80fd5b50610619611204565b6040516106269190611e83565b60405180910390f35b34801561063a575f80fd5b5061064361120a565b6040516106509190612407565b60405180910390f35b348015610664575f80fd5b5061067f600480360381019061067a9190612420565b6112d9565b60405161068c9190611e52565b60405180910390f35b3480156106a0575f80fd5b506106bb60048036038101906106b691906124d2565b611506565b005b3480156106c8575f80fd5b506106d16115bc565b6040516106de9190611e83565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190611fd9565b6115c5565b60405161071a9190611e52565b60405180910390f35b34801561072e575f80fd5b506107376115e2565b6040516107449190611e83565b60405180910390f35b348015610758575f80fd5b50610773600480360381019061076e9190612420565b6115e8565b6040516107809190611e52565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa91906124d2565b61165f565b005b3480156107bc575f80fd5b506107c5611715565b6040516107d29190611e83565b60405180910390f35b3480156107e6575f80fd5b506107ef61171b565b6040516107fc9190611e83565b60405180910390f35b61081f600480360381019061081a9190611fd9565b611720565b005b61083b60048036038101906108369190611fd9565b61175e565b005b348015610848575f80fd5b50610863600480360381019061085e9190611fd9565b611787565b6040516108709190611e52565b60405180910390f35b348015610884575f80fd5b5061089f600480360381019061089a9190611fd9565b6117da565b6040516108ac9190611e83565b60405180910390f35b5f7ff60c99c9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109275750610926826117f3565b5b9050919050565b5f8054905090565b610940338261186c565b50565b61094b61187b565b61095582826118b2565b5050565b5f818261096585610a11565b1614905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b5f6109a26118c2565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7ff60c99c900000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002610a5a816118cc565b828290508585905014610a99576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610b55575f848483818110610aba57610ab9612550565b5b9050602002016020810190610acf91906125a7565b90506001151581151503610b1457610b0f878784818110610af357610af2612550565b5b9050602002016020810190610b089190611fd9565b60016118b2565b610b47565b610b46878784818110610b2a57610b29612550565b5b9050602002016020810190610b3f9190611fd9565b600161186c565b5b508080600101915050610a9b565b505050505050565b5f610b66611901565b90508054600382558015610b985760018160011c14303b10610b8f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610ba991906127f0565b90505f816060015103610be8576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015190505f610c1d30845f015173ffffffffffffffffffffffffffffffffffffffff1661192a90919063ffffffff16565b905081811015610c6b57825f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610c629392919061281c565b60405180910390fd5b5f8360c001519050835f015160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360200151600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083604001515f8190555083606001516008819055508360a00151600b819055508060035f820151815f015f6101000a81548160ff02191690836001811115610d4557610d4461228f565b5b0217905550602082015181600101556040820151816002015f6101000a81548160ff021916908360ff16021790555060608201518160020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610dc73361195d565b610dd684608001516001611a33565b836020015173ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff167fdc505a50c6f2c816d981a377c8177e2604d8302821a502bc9f742e0748f338428660400151876060015188608001518960a001518a60c00151604051610e56959493929190612851565b60405180910390a3505050508015610e97576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610ea9816118cc565b5f8585810190610eb991906129bc565b90505f8160200151806020019051810190610ed49190612a17565b90508060085f828254610ee79190612a6f565b92505081905550610f3d825f01518260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a749092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610fb193929190612b07565b604051602081830303815290604052604051610fcd919061226f565b60405180910390a28060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b61100e61187b565b611018828261186c565b5050565b60605f838381019061102e91906127f0565b90505f816060015190506040518060800160405280600160028111156110575761105661228f565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060200160405280848152506040516020016110b69190612b6c565b6040516020818303038152906040528152506040516020016110d89190612c73565b6040516020818303038152906040529250505092915050565b5f80826110fd85610a11565b161415905092915050565b60025481565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61114f61187b565b6111585f611abd565b565b600281565b6003805f015f9054906101000a900460ff1690806001015490806002015f9054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b611212611d55565b60036040518060800160405290815f82015f9054906101000a900460ff1660018111156112425761124161228f565b5b60018111156112545761125361228f565b5b815260200160018201548152602001600282015f9054906101000a900460ff1660ff1660ff1681526020016002820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905090565b5f6112e261187b565b5f83838101906112f29190612d18565b90505f816020015180602001905181019061130d9190612a17565b90505f805f540361132057819050611343565b670de0b6b3a7640000825f546113369190612d5f565b6113409190612dcd565b90505b5f600b54141580156113565750600b5481115b1561136157600b5490505b61136a81611b83565b6113a0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854816009546113b19190612dfd565b11156113e9576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060095f8282546113fa9190612dfd565b92505081905550600160075f8282546114139190612dfd565b92505081905550611466878260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a749092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689846040516020016114d493929190612b07565b6040516020818303038152906040526040516114f0919061226f565b60405180910390a2600193505050509392505050565b6002611511816118cc565b828290508585905014611550576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156115b4576115a786868381811061157357611572612550565b5b90506020020160208101906115889190611fd9565b85858481811061159b5761159a612550565b5b905060200201356118b2565b8080600101915050611552565b505050505050565b5f600b54905090565b6001602052805f5260405f205f915054906101000a900460ff1681565b60095481565b5f805f84848101906115fa9190612d18565b90505f81602001518060200190518101906116159190612a17565b90505f8054036116275780925061164a565b670de0b6b3a7640000815f5461163d9190612d5f565b6116479190612dcd565b92505b61165383611b83565b93505050509392505050565b600261166a816118cc565b8282905085859050146116a9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561170d576117008686838181106116cc576116cb612550565b5b90506020020160208101906116e19190611fd9565b8585848181106116f4576116f3612550565b5b9050602002013561186c565b80806001019150506116ab565b505050505050565b60075481565b600181565b61172861187b565b63389a75e1600c52805f526020600c20805442111561174e57636f5e88185f526004601cfd5b5f81555061175b81611abd565b50565b61176661187b565b8060601b61177b57637448fbae5f526004601cfd5b61178481611abd565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166117a76111b4565b73ffffffffffffffffffffffffffffffffffffffff1614806117d357506117d28260026001176110f1565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f56586338000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611865575061186482611b9e565b5b9050919050565b61187782825f611c17565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146118b0576382b429005f526004601cfd5b565b6118be82826001611c17565b5050565b5f6202a300905090565b638b78c6d8195433146118fe57638b78c6d8600c52335f52806020600c2054166118fd576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611965611c6f565b156119dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561199f57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611a30565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611ab4576390b8ec185f526004601cfd5b5f603452505050565b611ac5611c6f565b15611b2a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611b80565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60085482600954611b959190612dfd565b11159050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c105750611c0f82611c73565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783611c3957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ce55750611ce482611cec565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60405180608001604052805f6001811115611d7357611d7261228f565b5b81526020015f80191681526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611dec81611db8565b8114611df6575f80fd5b50565b5f81359050611e0781611de3565b92915050565b5f60208284031215611e2257611e21611db0565b5b5f611e2f84828501611df9565b91505092915050565b5f8115159050919050565b611e4c81611e38565b82525050565b5f602082019050611e655f830184611e43565b92915050565b5f819050919050565b611e7d81611e6b565b82525050565b5f602082019050611e965f830184611e74565b92915050565b611ea581611e6b565b8114611eaf575f80fd5b50565b5f81359050611ec081611e9c565b92915050565b5f60208284031215611edb57611eda611db0565b5b5f611ee884828501611eb2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f1a82611ef1565b9050919050565b611f2a81611f10565b8114611f34575f80fd5b50565b5f81359050611f4581611f21565b92915050565b5f8060408385031215611f6157611f60611db0565b5b5f611f6e85828601611f37565b9250506020611f7f85828601611eb2565b9150509250929050565b611f9281611f10565b82525050565b5f602082019050611fab5f830184611f89565b92915050565b611fba81611db8565b82525050565b5f602082019050611fd35f830184611fb1565b92915050565b5f60208284031215611fee57611fed611db0565b5b5f611ffb84828501611f37565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261202557612024612004565b5b8235905067ffffffffffffffff81111561204257612041612008565b5b60208301915083602082028301111561205e5761205d61200c565b5b9250929050565b5f8083601f84011261207a57612079612004565b5b8235905067ffffffffffffffff81111561209757612096612008565b5b6020830191508360208202830111156120b3576120b261200c565b5b9250929050565b5f805f80604085870312156120d2576120d1611db0565b5b5f85013567ffffffffffffffff8111156120ef576120ee611db4565b5b6120fb87828801612010565b9450945050602085013567ffffffffffffffff81111561211e5761211d611db4565b5b61212a87828801612065565b925092505092959194509250565b5f8083601f84011261214d5761214c612004565b5b8235905067ffffffffffffffff81111561216a57612169612008565b5b6020830191508360018202830111156121865761218561200c565b5b9250929050565b5f80602083850312156121a3576121a2611db0565b5b5f83013567ffffffffffffffff8111156121c0576121bf611db4565b5b6121cc85828601612138565b92509250509250929050565b5f6040820190506121eb5f830185611e74565b6121f86020830184611f89565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612241826121ff565b61224b8185612209565b935061225b818560208601612219565b61226481612227565b840191505092915050565b5f6020820190508181035f8301526122878184612237565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106122cd576122cc61228f565b5b50565b5f8190506122dd826122bc565b919050565b5f6122ec826122d0565b9050919050565b6122fc816122e2565b82525050565b5f819050919050565b61231481612302565b82525050565b5f60ff82169050919050565b61232f8161231a565b82525050565b5f6080820190506123485f8301876122f3565b612355602083018661230b565b6123626040830185612326565b61236f6060830184611f89565b95945050505050565b612381816122e2565b82525050565b61239081612302565b82525050565b61239f8161231a565b82525050565b6123ae81611f10565b82525050565b608082015f8201516123c85f850182612378565b5060208201516123db6020850182612387565b5060408201516123ee6040850182612396565b50606082015161240160608501826123a5565b50505050565b5f60808201905061241a5f8301846123b4565b92915050565b5f805f6040848603121561243757612436611db0565b5b5f61244486828701611f37565b935050602084013567ffffffffffffffff81111561246557612464611db4565b5b61247186828701612138565b92509250509250925092565b5f8083601f84011261249257612491612004565b5b8235905067ffffffffffffffff8111156124af576124ae612008565b5b6020830191508360208202830111156124cb576124ca61200c565b5b9250929050565b5f805f80604085870312156124ea576124e9611db0565b5b5f85013567ffffffffffffffff81111561250757612506611db4565b5b61251387828801612010565b9450945050602085013567ffffffffffffffff81111561253657612535611db4565b5b6125428782880161247d565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61258681611e38565b8114612590575f80fd5b50565b5f813590506125a18161257d565b92915050565b5f602082840312156125bc576125bb611db0565b5b5f6125c984828501612593565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61260c82612227565b810181811067ffffffffffffffff8211171561262b5761262a6125d6565b5b80604052505050565b5f61263d611da7565b90506126498282612603565b919050565b5f80fd5b6002811061265e575f80fd5b50565b5f8135905061266f81612652565b92915050565b61267e81612302565b8114612688575f80fd5b50565b5f8135905061269981612675565b92915050565b6126a88161231a565b81146126b2575f80fd5b50565b5f813590506126c38161269f565b92915050565b5f608082840312156126de576126dd6125d2565b5b6126e86080612634565b90505f6126f784828501612661565b5f83015250602061270a8482850161268b565b602083015250604061271e848285016126b5565b604083015250606061273284828501611f37565b60608301525092915050565b5f6101408284031215612754576127536125d2565b5b61275e60e0612634565b90505f61276d84828501611f37565b5f83015250602061278084828501611f37565b602083015250604061279484828501611eb2565b60408301525060606127a884828501611eb2565b60608301525060806127bc84828501611f37565b60808301525060a06127d084828501611eb2565b60a08301525060c06127e4848285016126c9565b60c08301525092915050565b5f610140828403121561280657612805611db0565b5b5f6128138482850161273e565b91505092915050565b5f60608201905061282f5f830186611f89565b61283c6020830185611e74565b6128496040830184611e74565b949350505050565b5f610100820190506128655f830188611e74565b6128726020830187611e74565b61287f6040830186611f89565b61288c6060830185611e74565b61289960808301846123b4565b9695505050505050565b5f80fd5b5f67ffffffffffffffff8211156128c1576128c06125d6565b5b6128ca82612227565b9050602081019050919050565b828183375f83830152505050565b5f6128f76128f2846128a7565b612634565b905082815260208101848484011115612913576129126128a3565b5b61291e8482856128d7565b509392505050565b5f82601f83011261293a57612939612004565b5b813561294a8482602086016128e5565b91505092915050565b5f60408284031215612968576129676125d2565b5b6129726040612634565b90505f61298184828501611f37565b5f83015250602082013567ffffffffffffffff8111156129a4576129a361264e565b5b6129b084828501612926565b60208301525092915050565b5f602082840312156129d1576129d0611db0565b5b5f82013567ffffffffffffffff8111156129ee576129ed611db4565b5b6129fa84828501612953565b91505092915050565b5f81519050612a1181611e9c565b92915050565b5f60208284031215612a2c57612a2b611db0565b5b5f612a3984828501612a03565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7982611e6b565b9150612a8483611e6b565b9250828203905081811115612a9c57612a9b612a42565b5b92915050565b5f8160601b9050919050565b5f612ab882612aa2565b9050919050565b5f612ac982612aae565b9050919050565b612ae1612adc82611f10565b612abf565b82525050565b5f819050919050565b612b01612afc82611e6b565b612ae7565b82525050565b5f612b128286612ad0565b601482019150612b228285612ad0565b601482019150612b328284612af0565b602082019150819050949350505050565b612b4c81611e6b565b82525050565b602082015f820151612b665f850182612b43565b50505050565b5f602082019050612b7f5f830184612b52565b92915050565b60038110612b9657612b9561228f565b5b50565b5f819050612ba682612b85565b919050565b5f612bb582612b99565b9050919050565b612bc581612bab565b82525050565b5f82825260208201905092915050565b5f612be5826121ff565b612bef8185612bcb565b9350612bff818560208601612219565b612c0881612227565b840191505092915050565b5f608083015f830151612c285f860182612bbc565b506020830151612c3b60208601826123a5565b506040830151612c4e60408601826123a5565b5060608301518482036060860152612c668282612bdb565b9150508091505092915050565b5f6020820190508181035f830152612c8b8184612c13565b905092915050565b5f60408284031215612ca857612ca76125d2565b5b612cb26040612634565b90505f82013567ffffffffffffffff811115612cd157612cd061264e565b5b612cdd84828501612926565b5f83015250602082013567ffffffffffffffff811115612d0057612cff61264e565b5b612d0c84828501612926565b60208301525092915050565b5f60208284031215612d2d57612d2c611db0565b5b5f82013567ffffffffffffffff811115612d4a57612d49611db4565b5b612d5684828501612c93565b91505092915050565b5f612d6982611e6b565b9150612d7483611e6b565b9250828202612d8281611e6b565b91508282048414831517612d9957612d98612a42565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612dd782611e6b565b9150612de283611e6b565b925082612df257612df1612da0565b5b828204905092915050565b5f612e0782611e6b565b9150612e1283611e6b565b9250828201905080821115612e2a57612e29612a42565b5b9291505056fea264697066735822122050bb6a176feb20b04fcded40293358e8fdba927c1e1bf68a160c7fa7cac6b41664736f6c634300081a0033",p=class p extends P.DeployableTarget{constructor(){super(...arguments),this.abi=e.l}async owner(f){return await e.Xh(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await e.Dh(this._config,{address:this.assertValidAddress(),args:[],...f})}async getMaxReward(f){return await e.Uh(this._config,{...f,address:this.assertValidAddress()})}async getIncentiveScalar({chainId:f,hash:b,knownSignatures:a},d){var t;const c=await this.getIncentiveCriteria(d);if(c.criteriaType===V.SignatureType.EVENT){const n=await A.getTransactionReceipt(this._config,{chainId:f,hash:b});if(c.fieldIndex===C.CheatCodes.GAS_REBATE_INCENTIVE)return n.gasUsed*n.effectiveGasPrice+(n.blobGasUsed??0n)*(n.blobGasPrice??0n);const u=n.logs;if(u.length===0)throw new i.NoMatchingLogsError(`No logs found for event signature ${c.signature}`);try{const g=a[c.signature],o=s.parseEventLogs({abi:[g],logs:u});if(o==null||o.length===0)throw new i.NoMatchingLogsError(`No logs found for event signature ${c.signature}`);const v=((t=o[0])==null?void 0:t.args)[c.fieldIndex];if(v===void 0)throw new i.DecodedArgsError(`Decoded argument at index ${c.fieldIndex} is undefined`);return BigInt(v)}catch(g){throw new i.DecodedArgsError(`Failed to decode event log for signature ${c.signature}: ${g.message}`)}}else if(c.criteriaType===V.SignatureType.FUNC){const n=await A.getTransaction(this._config,{chainId:f,hash:b});try{const u=a[c.signature],o=s.decodeFunctionData({abi:[u],data:n.input}).args[c.fieldIndex];if(o==null)throw new i.DecodedArgsError(`Decoded argument at index ${c.fieldIndex} is undefined`);return BigInt(o)}catch(u){throw new i.DecodedArgsError(`Failed to decode function data for signature ${c.signature}: ${u.message}`)}}else throw new i.InvalidCriteriaTypeError(`Invalid criteria type ${c.criteriaType}`)}async claims(f){return await e._h(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await e.rN(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await e.Lh(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await e.Ph(this._config,{address:this.assertValidAddress(),...f})}async peg(f){return await e.eN(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await e.nN(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await e.Kh(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:a,result:d}=await e.NN(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.uN(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await e.MN(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.lN(this._config,a),result:d}}async isClaimable(f,b){return await e.Jh(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async getPeg(f){return await e.Wh(this._config,{address:this.assertValidAddress(),args:[],...f})}async getTotalBudget(f){return await this.limit(f)}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,a]=await Promise.all([this.totalClaimed(f),this.limit(f)]);return a-b}async getIncentiveCriteria(f){try{return await e.Gh(this._config,{...f,address:this.assertValidAddress()})}catch(b){throw new i.IncentiveCriteriaNotFoundError(b)}}buildParameters(f,b){const[a,d]=this.validateDeploymentConfig(f,b);return{abi:e.l,bytecode:$,args:[D(a)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return s.encodeAbiParameters([{type:"uint256"}],[f])}buildClaimData(f){return s.encodeAbiParameters([{type:"uint256",name:"signedAmount"}],[f])}async decodeClaimData(f){const b=s.decodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],f),a=s.decodeAbiParameters([{type:"uint256"}],b[0].incentiveData)[0];let d=a;const[c,t]=await Promise.all([this.reward(),this.getMaxReward()]);return c===0n||(d=c*a/s.parseEther("1"),t!==0n&&d>t&&(d=t)),d}decodeClaimDataWithRewardDetails(f,b,a){const d=s.decodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],f),c=s.decodeAbiParameters([{type:"uint256"}],d[0].incentiveData)[0];let t=c;return b===0n||(t=b*c/s.parseEther("1"),a!==0n&&t>a&&(t=a)),t}};p.bases={31337:void 0,...R.ERC20PeggedVariableCriteriaIncentive},p.registryType=C.RegistryType.INCENTIVE;let y=p;function D({asset:l,peg:f,reward:b,limit:a,maxReward:d=0n,manager:c=s.zeroAddress,criteria:t}){return s.encodeAbiParameters([{type:"tuple",name:"initPayloadExtended",components:[{type:"address",name:"asset"},{type:"address",name:"peg"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"},{type:"uint256",name:"maxReward"},{type:"tuple",name:"criteria",components:[{type:"uint8",name:"criteriaType"},{type:"bytes32",name:"signature"},{type:"uint8",name:"fieldIndex"},{type:"address",name:"targetContract"}]}]}],[{asset:l,peg:f,reward:b,limit:a,manager:c,maxReward:d,criteria:{criteriaType:t.criteriaType,signature:t.signature,fieldIndex:t.fieldIndex,targetContract:t.targetContract}}])}const I={[r.APointsIncentive]:B.PointsIncentive,[r.AERC20Incentive]:N.ERC20Incentive,[r.AERC20PeggedVariableCriteriaIncentive]:y,[r.AERC20PeggedIncentive]:m,[r.AAllowListIncentive]:_.AllowListIncentive,[r.ACGDAIncentive]:T.CGDAIncentive,[r.AERC20VariableIncentive]:x.ERC20VariableIncentive,[r.AERC20VariableCriteriaIncentive]:q.ERC20VariableCriteriaIncentive};async function k(l,f,b){const a=await A.readContract(l.config,{abi:e.Y,functionName:"getComponentInterface",address:f,...b}),d=I[a];if(!d)throw new i.InvalidComponentInterfaceError(Object.keys(I),a);return new d(l,f)}exports.ERC20PeggedIncentive=m;exports.ERC20PeggedVariableCriteriaIncentive=y;exports.IncentiveByComponentInterface=I;exports.incentiveFromAddress=k;exports.prepareERC20PeggedIncentivePayload=E;exports.prepareERC20PeggedVariableCriteriaIncentivePayload=D;
|
|
2
|
+
//# sourceMappingURL=Incentive-BpZePiOD.cjs.map
|