@layerzerolabs/oapp-evm-upgradeable
Version:
LayerZero Labs reference EVM OmniChain Application (OApp) implementation
1 lines • 82.5 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"_localEidV2","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParamsForRead","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"calldataSize","type":"uint256","internalType":"uint256"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"calldataSize","type":"uint256","internalType":"uint256"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParamsForRead","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"withdrawToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Executor_EidNotSupported","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"Executor_InvalidExecutorOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReadOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"Executor_NativeAmountExceedsCap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"cap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Executor_NoOptions","inputs":[]},{"type":"error","name":"Executor_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"Executor_ZeroCalldataSizeProvided","inputs":[]},{"type":"error","name":"Executor_ZeroLzComposeGasProvided","inputs":[]},{"type":"error","name":"Executor_ZeroLzReceiveGasProvided","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x60c060405234801561000f575f80fd5b506040516116f83803806116f883398101604081905261002e916100c6565b338061005357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005c81610077565b5063ffffffff1660a052670de0b6b3a76400006080526100f0565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b815163ffffffff811681146100e9575f80fd5b9392505050565b60805160a0516115e06101185f395f818161020501526102a001525f61073001526115e05ff3fe608060405260043610610087575f3560e01c8063566ef76211610057578063566ef762146101245780636500378414610143578063715018a6146101625780638da5cb5b14610176578063f2fde38b1461019c575f80fd5b806301e3366714610092578063337c7a9e146100b3578063434ee016146100e557806354fd4d5014610104575f80fd5b3661008e57005b5f80fd5b34801561009d575f80fd5b506100b16100ac366004611190565b6101bb565b005b3480156100be575f80fd5b506100d26100cd366004611224565b6101d3565b6040519081526020015b60405180910390f35b3480156100f0575f80fd5b506100d26100ff36600461128b565b6103ad565b34801561010f575f80fd5b506040805160018082526020820152016100dc565b34801561012f575f80fd5b506100d261013e36600461128b565b610571565b34801561014e575f80fd5b506100d261015d366004611224565b610587565b34801561016d575f80fd5b506100b1610594565b348015610181575f80fd5b505f546040516001600160a01b0390911681526020016100dc565b3480156101a7575f80fd5b506100b16101b63660046112d4565b6105a7565b6101c36105e4565b6101ce838383610610565b505050565b5f6101e160208501856112ed565b67ffffffffffffffff165f036102375760405163c3baa0b760e01b815263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660048201526024015b60405180910390fd5b5f808061027460018261024d60208b018b6112ed565b61025d60a08c0160808d016112ed565b61026d60808d0160608e01611328565b8b8b610633565b919450925090505f80808061028c60208d018d6112d4565b604051632229049360e21b815263ffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015287166024820152604481018890526001600160a01b0391909116906388a4124c90606401608060405180830381865afa158015610305573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103299190611343565b929650909450925090506103738461034760408e0160208f01611395565b8e604001602081019061035a9190611395565b8e604001602081019061036d9190611328565b856106c3565b97506103938784848f604001602081019061038e9190611395565b610795565b61039d90896113ca565b9c9b505050505050505050505050565b5f6103bb60208501856112ed565b67ffffffffffffffff165f036103fd576103db60408601602087016113dd565b60405163c3baa0b760e01b815263ffffffff909116600482015260240161022e565b5f8061044f8161041b61041660408b0160208c016113dd565b505f90565b61042860208a018a6112ed565b61043860a08b0160808c016112ed565b61044860808c0160608d01611328565b8a8a610633565b5090925090505f80808061046660208c018c6112d4565b6001600160a01b03166388a4124c61048460408e0160208f016113dd565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611343565b9296509094509250905061053d8461051760408d0160208e01611395565b8d608001602081019061052a9190611395565b8d604001602081019061036d9190611328565b96506105588684848e608001602081019061038e9190611395565b61056290886113ca565b9b9a5050505050505050505050565b5f61057e858585856103ad565b95945050505050565b5f61057e858585856101d3565b61059c6105e4565b6105a55f6107e9565b565b6105af6105e4565b6001600160a01b0381166105d857604051631e4fbdf760e01b81525f600482015260240161022e565b6105e1816107e9565b50565b5f546001600160a01b031633146105a55760405163118cdaa760e01b815233600482015260240161022e565b6001600160a01b038316610628576101ce8282610838565b6101ce8383836108e1565b5f805f8061064486868d8d8b61091c565b805160608201516080830151919650935090915061066c9067ffffffffffffffff8a16611400565b60208201516106859067ffffffffffffffff8c166113ca565b61068f91906113ca565b92508060400151156106b55760646106a8846066611400565b6106b29190611417565b92505b509750975097945050505050565b5f8061ffff8616156106d557856106d7565b845b90505f6127106106eb61ffff84168a611400565b6106f59190611417565b90506001600160801b038416158061071457506001600160801b038516155b1561072257915061057e9050565b5f88856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107639190611400565b61076d9190611417565b61077791906113ca565b90508181116107865781610788565b805b9998505050505050505050565b5f84156107e1576127108261ffff16846001600160801b0316866001600160801b0316886107c39190611400565b6107cd9190611417565b6107d79190611400565b61057e9190611417565b949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661085f576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146108a8576040519150601f19603f3d011682016040523d82523d5f602084013e6108ad565b606091505b50509050806101ce57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161022e565b6001600160a01b038216610908576040516306b7a93160e41b815260040160405180910390fd5b6101ce6001600160a01b0384168383610d10565b6109516040518060a001604052805f81526020015f81526020015f151581526020015f63ffffffff1681526020015f81525090565b5f8590036109715760405162575ea160e01b815260040160405180910390fd5b5f80805b87831015610c33575f36818061098c8d8d89610d62565b9950919550935091508690505f1960ff851601610a48578a156109c75760405163052e551560e01b815260ff8516600482015260240161022e565b5f806109d38585610db7565b915091508b80156109ec57505f816001600160801b0316115b15610a0f5760405163052e551560e01b815260ff8716600482015260240161022e565b806001600160801b03168a5f01818151610a2991906113ca565b905250610a3f6001600160801b038316896113ca565b97505050610c2a565b60011960ff851601610aaa578a15610a785760405163052e551560e01b815260ff8516600482015260240161022e565b5f610a838484610e19565b509050806001600160801b0316895f01818151610aa091906113ca565b905250610c2a9050565b60021960ff851601610b6c578915610ada5760405163052e551560e01b815260ff8516600482015260240161022e565b5f80610ae68585610e55565b9250925050816001600160801b03165f03610b145760405163a169d0e160e01b815260040160405180910390fd5b806001600160801b03168a5f01818151610b2e91906113ca565b90525060208a0180516001600160801b0384169190610b4e9083906113ca565b90525060808a01805190610b6182611436565b815250505050610c2a565b60031960ff851601610b845760016040890152610c2a565b60041960ff851601610c0c578a610bb35760405163052e551560e01b815260ff8516600482015260240161022e565b5f805f610bc08686610ec6565b925092509250806001600160801b03168b5f01818151610be091906113ca565b905250610bf66001600160801b0384168a6113ca565b9850610c02828961144e565b9750505050610c2a565b60405163052e551560e01b815260ff8516600482015260240161022e565b50505050610975565b828814610c5657604051634c83bb7560e11b81526004810184905260240161022e565b83516001600160801b0386161015610c955783516040516242670160e11b815260048101919091526001600160801b038616602482015260440161022e565b815f03610cb557604051630e5eb8f360e41b815260040160405180910390fd5b868015610cc6575063ffffffff8116155b15610ce4576040516336619f8360e11b815260040160405180910390fd5b8184602001818151610cf691906113ca565b90525063ffffffff16606084015250909695505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526101ce908490610f2e565b5f36816001840181610d75888884610f8f565b600292909201919050610d89888884610fb7565b94506001820161ffff82168301610da281838b8d611472565b979b909a50969850505061ffff160193505050565b5f8060108314801590610dcb575060208314155b15610de957604051634796aee160e01b815260040160405180910390fd5b610df484845f610fdb565b915060208314610e04575f610e10565b610e1084846010610fdb565b90509250929050565b5f8060308314610e3c576040516361d0c2c760e11b815260040160405180910390fd5b610e4784845f610fdb565b9150610e1084846010611001565b5f808060128414801590610e6a575060228414155b15610e8857604051638b4aa70b60e01b815260040160405180910390fd5b610e9385855f610f8f565b9250610ea185856002610fdb565b915060228414610eb1575f610ebd565b610ebd85856012610fdb565b90509250925092565b5f808060148414801590610edb575060248414155b15610ef957604051636f5bff2160e11b815260040160405180910390fd5b610f0485855f610fdb565b9250610f128585601061101b565b915060248414610f22575f610ebd565b610ebd85856014610fdb565b5f610f426001600160a01b03841683611041565b905080515f14158015610f66575080806020019051810190610f649190611499565b155b156101ce57604051635274afe760e01b81526001600160a01b038416600482015260240161022e565b5f60028201610fa081848688611472565b610fa9916114b8565b60f01c9150505b9392505050565b5f838383818110610fca57610fca6114e8565b919091013560f81c95945050505050565b5f60108201610fec81848688611472565b610ff5916114fc565b60801c95945050505050565b5f6020820161101281848688611472565b61057e91611533565b5f6004820161102c81848688611472565b61103591611550565b60e01c95945050505050565b606061104e83835f611057565b90505b92915050565b60608147101561107c5760405163cd78605960e01b815230600482015260240161022e565b5f80856001600160a01b03168486604051611097919061157e565b5f6040518083038185875af1925050503d805f81146110d1576040519150601f19603f3d011682016040523d82523d5f602084013e6110d6565b606091505b50915091506110e68683836110f0565b9695505050505050565b606082611105576111008261114c565b610fb0565b815115801561111c57506001600160a01b0384163b155b1561114557604051639996b31560e01b81526001600160a01b038516600482015260240161022e565b5080610fb0565b80511561115c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461118b575f80fd5b919050565b5f805f606084860312156111a2575f80fd5b6111ab84611175565b92506111b960208501611175565b9150604084013590509250925092565b5f60a082840312156111d9575f80fd5b50919050565b5f8083601f8401126111ef575f80fd5b50813567ffffffffffffffff811115611206575f80fd5b60208301915083602082850101111561121d575f80fd5b9250929050565b5f805f80848603610120811215611239575f80fd5b6060811215611246575f80fd5b5084935061125786606087016111c9565b925061010085013567ffffffffffffffff811115611273575f80fd5b61127f878288016111df565b95989497509550505050565b5f805f80610160858703121561129f575f80fd5b6112a986866111c9565b93506112b88660a087016111c9565b925061014085013567ffffffffffffffff811115611273575f80fd5b5f602082840312156112e4575f80fd5b61104e82611175565b5f602082840312156112fd575f80fd5b813567ffffffffffffffff81168114610fb0575f80fd5b6001600160801b03811681146105e1575f80fd5b5f60208284031215611338575f80fd5b8135610fb081611314565b5f805f8060808587031215611356575f80fd5b84519350602085015161136881611314565b604086015190935061137981611314565b606086015190925061138a81611314565b939692955090935050565b5f602082840312156113a5575f80fd5b813561ffff81168114610fb0575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611051576110516113b6565b5f602082840312156113ed575f80fd5b813563ffffffff81168114610fb0575f80fd5b8082028115828204841417611051576110516113b6565b5f8261143157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60018201611447576114476113b6565b5060010190565b63ffffffff81811683821601908082111561146b5761146b6113b6565b5092915050565b5f8085851115611480575f80fd5b8386111561148c575f80fd5b5050820193919092039150565b5f602082840312156114a9575f80fd5b81518015158114610fb0575f80fd5b6001600160f01b031981358181169160028510156114e05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b5f52603260045260245ffd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156114e05760109490940360031b84901b1690921692915050565b80356020831015611051575f19602084900360031b1b1692915050565b6001600160e01b031981358181169160048510156114e05760049490940360031b84901b1690921692915050565b5f82515f5b8181101561159d5760208186018101518583015201611583565b505f92019182525091905056fea2646970667358221220771dea8fe616862943ad311eab605111c8af92f876515cf769deec1f3deda7a464736f6c63430008160033","sourceMap":"717:9671:72:-:0;;;1001:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1041:10;;1269:95:110;;1322:31;;-1:-1:-1;;;1322:31:110;;1350:1;1322:31;;;445:51:139;418:18;;1322:31:110;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1063:24:72::1;;;::::0;1118:4:::1;1097:25;::::0;717:9671;;2912:187:110;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:110;;;-1:-1:-1;;;;;;3020:17:110;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:280:139:-;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:10;227:5;223:22;216:5;213:33;203:61;;260:1;257;250:12;203:61;283:5;14:280;-1:-1:-1;;;14:280:139:o;299:203::-;717:9671:72;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610087575f3560e01c8063566ef76211610057578063566ef762146101245780636500378414610143578063715018a6146101625780638da5cb5b14610176578063f2fde38b1461019c575f80fd5b806301e3366714610092578063337c7a9e146100b3578063434ee016146100e557806354fd4d5014610104575f80fd5b3661008e57005b5f80fd5b34801561009d575f80fd5b506100b16100ac366004611190565b6101bb565b005b3480156100be575f80fd5b506100d26100cd366004611224565b6101d3565b6040519081526020015b60405180910390f35b3480156100f0575f80fd5b506100d26100ff36600461128b565b6103ad565b34801561010f575f80fd5b506040805160018082526020820152016100dc565b34801561012f575f80fd5b506100d261013e36600461128b565b610571565b34801561014e575f80fd5b506100d261015d366004611224565b610587565b34801561016d575f80fd5b506100b1610594565b348015610181575f80fd5b505f546040516001600160a01b0390911681526020016100dc565b3480156101a7575f80fd5b506100b16101b63660046112d4565b6105a7565b6101c36105e4565b6101ce838383610610565b505050565b5f6101e160208501856112ed565b67ffffffffffffffff165f036102375760405163c3baa0b760e01b815263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660048201526024015b60405180910390fd5b5f808061027460018261024d60208b018b6112ed565b61025d60a08c0160808d016112ed565b61026d60808d0160608e01611328565b8b8b610633565b919450925090505f80808061028c60208d018d6112d4565b604051632229049360e21b815263ffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015287166024820152604481018890526001600160a01b0391909116906388a4124c90606401608060405180830381865afa158015610305573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103299190611343565b929650909450925090506103738461034760408e0160208f01611395565b8e604001602081019061035a9190611395565b8e604001602081019061036d9190611328565b856106c3565b97506103938784848f604001602081019061038e9190611395565b610795565b61039d90896113ca565b9c9b505050505050505050505050565b5f6103bb60208501856112ed565b67ffffffffffffffff165f036103fd576103db60408601602087016113dd565b60405163c3baa0b760e01b815263ffffffff909116600482015260240161022e565b5f8061044f8161041b61041660408b0160208c016113dd565b505f90565b61042860208a018a6112ed565b61043860a08b0160808c016112ed565b61044860808c0160608d01611328565b8a8a610633565b5090925090505f80808061046660208c018c6112d4565b6001600160a01b03166388a4124c61048460408e0160208f016113dd565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611343565b9296509094509250905061053d8461051760408d0160208e01611395565b8d608001602081019061052a9190611395565b8d604001602081019061036d9190611328565b96506105588684848e608001602081019061038e9190611395565b61056290886113ca565b9b9a5050505050505050505050565b5f61057e858585856103ad565b95945050505050565b5f61057e858585856101d3565b61059c6105e4565b6105a55f6107e9565b565b6105af6105e4565b6001600160a01b0381166105d857604051631e4fbdf760e01b81525f600482015260240161022e565b6105e1816107e9565b50565b5f546001600160a01b031633146105a55760405163118cdaa760e01b815233600482015260240161022e565b6001600160a01b038316610628576101ce8282610838565b6101ce8383836108e1565b5f805f8061064486868d8d8b61091c565b805160608201516080830151919650935090915061066c9067ffffffffffffffff8a16611400565b60208201516106859067ffffffffffffffff8c166113ca565b61068f91906113ca565b92508060400151156106b55760646106a8846066611400565b6106b29190611417565b92505b509750975097945050505050565b5f8061ffff8616156106d557856106d7565b845b90505f6127106106eb61ffff84168a611400565b6106f59190611417565b90506001600160801b038416158061071457506001600160801b038516155b1561072257915061057e9050565b5f88856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107639190611400565b61076d9190611417565b61077791906113ca565b90508181116107865781610788565b805b9998505050505050505050565b5f84156107e1576127108261ffff16846001600160801b0316866001600160801b0316886107c39190611400565b6107cd9190611417565b6107d79190611400565b61057e9190611417565b949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661085f576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146108a8576040519150601f19603f3d011682016040523d82523d5f602084013e6108ad565b606091505b50509050806101ce57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161022e565b6001600160a01b038216610908576040516306b7a93160e41b815260040160405180910390fd5b6101ce6001600160a01b0384168383610d10565b6109516040518060a001604052805f81526020015f81526020015f151581526020015f63ffffffff1681526020015f81525090565b5f8590036109715760405162575ea160e01b815260040160405180910390fd5b5f80805b87831015610c33575f36818061098c8d8d89610d62565b9950919550935091508690505f1960ff851601610a48578a156109c75760405163052e551560e01b815260ff8516600482015260240161022e565b5f806109d38585610db7565b915091508b80156109ec57505f816001600160801b0316115b15610a0f5760405163052e551560e01b815260ff8716600482015260240161022e565b806001600160801b03168a5f01818151610a2991906113ca565b905250610a3f6001600160801b038316896113ca565b97505050610c2a565b60011960ff851601610aaa578a15610a785760405163052e551560e01b815260ff8516600482015260240161022e565b5f610a838484610e19565b509050806001600160801b0316895f01818151610aa091906113ca565b905250610c2a9050565b60021960ff851601610b6c578915610ada5760405163052e551560e01b815260ff8516600482015260240161022e565b5f80610ae68585610e55565b9250925050816001600160801b03165f03610b145760405163a169d0e160e01b815260040160405180910390fd5b806001600160801b03168a5f01818151610b2e91906113ca565b90525060208a0180516001600160801b0384169190610b4e9083906113ca565b90525060808a01805190610b6182611436565b815250505050610c2a565b60031960ff851601610b845760016040890152610c2a565b60041960ff851601610c0c578a610bb35760405163052e551560e01b815260ff8516600482015260240161022e565b5f805f610bc08686610ec6565b925092509250806001600160801b03168b5f01818151610be091906113ca565b905250610bf66001600160801b0384168a6113ca565b9850610c02828961144e565b9750505050610c2a565b60405163052e551560e01b815260ff8516600482015260240161022e565b50505050610975565b828814610c5657604051634c83bb7560e11b81526004810184905260240161022e565b83516001600160801b0386161015610c955783516040516242670160e11b815260048101919091526001600160801b038616602482015260440161022e565b815f03610cb557604051630e5eb8f360e41b815260040160405180910390fd5b868015610cc6575063ffffffff8116155b15610ce4576040516336619f8360e11b815260040160405180910390fd5b8184602001818151610cf691906113ca565b90525063ffffffff16606084015250909695505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526101ce908490610f2e565b5f36816001840181610d75888884610f8f565b600292909201919050610d89888884610fb7565b94506001820161ffff82168301610da281838b8d611472565b979b909a50969850505061ffff160193505050565b5f8060108314801590610dcb575060208314155b15610de957604051634796aee160e01b815260040160405180910390fd5b610df484845f610fdb565b915060208314610e04575f610e10565b610e1084846010610fdb565b90509250929050565b5f8060308314610e3c576040516361d0c2c760e11b815260040160405180910390fd5b610e4784845f610fdb565b9150610e1084846010611001565b5f808060128414801590610e6a575060228414155b15610e8857604051638b4aa70b60e01b815260040160405180910390fd5b610e9385855f610f8f565b9250610ea185856002610fdb565b915060228414610eb1575f610ebd565b610ebd85856012610fdb565b90509250925092565b5f808060148414801590610edb575060248414155b15610ef957604051636f5bff2160e11b815260040160405180910390fd5b610f0485855f610fdb565b9250610f128585601061101b565b915060248414610f22575f610ebd565b610ebd85856014610fdb565b5f610f426001600160a01b03841683611041565b905080515f14158015610f66575080806020019051810190610f649190611499565b155b156101ce57604051635274afe760e01b81526001600160a01b038416600482015260240161022e565b5f60028201610fa081848688611472565b610fa9916114b8565b60f01c9150505b9392505050565b5f838383818110610fca57610fca6114e8565b919091013560f81c95945050505050565b5f60108201610fec81848688611472565b610ff5916114fc565b60801c95945050505050565b5f6020820161101281848688611472565b61057e91611533565b5f6004820161102c81848688611472565b61103591611550565b60e01c95945050505050565b606061104e83835f611057565b90505b92915050565b60608147101561107c5760405163cd78605960e01b815230600482015260240161022e565b5f80856001600160a01b03168486604051611097919061157e565b5f6040518083038185875af1925050503d805f81146110d1576040519150601f19603f3d011682016040523d82523d5f602084013e6110d6565b606091505b50915091506110e68683836110f0565b9695505050505050565b606082611105576111008261114c565b610fb0565b815115801561111c57506001600160a01b0384163b155b1561114557604051639996b31560e01b81526001600160a01b038516600482015260240161022e565b5080610fb0565b80511561115c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461118b575f80fd5b919050565b5f805f606084860312156111a2575f80fd5b6111ab84611175565b92506111b960208501611175565b9150604084013590509250925092565b5f60a082840312156111d9575f80fd5b50919050565b5f8083601f8401126111ef575f80fd5b50813567ffffffffffffffff811115611206575f80fd5b60208301915083602082850101111561121d575f80fd5b9250929050565b5f805f80848603610120811215611239575f80fd5b6060811215611246575f80fd5b5084935061125786606087016111c9565b925061010085013567ffffffffffffffff811115611273575f80fd5b61127f878288016111df565b95989497509550505050565b5f805f80610160858703121561129f575f80fd5b6112a986866111c9565b93506112b88660a087016111c9565b925061014085013567ffffffffffffffff811115611273575f80fd5b5f602082840312156112e4575f80fd5b61104e82611175565b5f602082840312156112fd575f80fd5b813567ffffffffffffffff81168114610fb0575f80fd5b6001600160801b03811681146105e1575f80fd5b5f60208284031215611338575f80fd5b8135610fb081611314565b5f805f8060808587031215611356575f80fd5b84519350602085015161136881611314565b604086015190935061137981611314565b606086015190925061138a81611314565b939692955090935050565b5f602082840312156113a5575f80fd5b813561ffff81168114610fb0575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611051576110516113b6565b5f602082840312156113ed575f80fd5b813563ffffffff81168114610fb0575f80fd5b8082028115828204841417611051576110516113b6565b5f8261143157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60018201611447576114476113b6565b5060010190565b63ffffffff81811683821601908082111561146b5761146b6113b6565b5092915050565b5f8085851115611480575f80fd5b8386111561148c575f80fd5b5050820193919092039150565b5f602082840312156114a9575f80fd5b81518015158114610fb0575f80fd5b6001600160f01b031981358181169160028510156114e05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b5f52603260045260245ffd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156114e05760109490940360031b84901b1690921692915050565b80356020831015611051575f19602084900360031b1b1692915050565b6001600160e01b031981358181169160048510156114e05760049490940360031b84901b1690921692915050565b5f82515f5b8181101561159d5760208186018101518583015201611583565b505f92019182525091905056fea2646970667358221220771dea8fe616862943ad311eab605111c8af92f876515cf769deec1f3deda7a464736f6c63430008160033","sourceMap":"717:9671:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:203;;;;;;;;;;-1:-1:-1;1218:203:72;;;;;:::i;:::-;;:::i;:::-;;3323:1237;;;;;;;;;;-1:-1:-1;3323:1237:72;;;;;:::i;:::-;;:::i;:::-;;;1883:25:139;;;1871:2;1856:18;3323:1237:72;;;;;;;;2090:1227;;;;;;;;;;-1:-1:-1;2090:1227:72;;;;;:::i;:::-;;:::i;10198:99::-;;;;;;;;;;-1:-1:-1;10198:99:72;;;10285:1;2764:50:139;;;2845:2;2830:18;;2823:45;2737:18;10198:99:72;2596:278:139;1509:242:72;;;;;;;;;;-1:-1:-1;1509:242:72;;;;;:::i;:::-;;:::i;1757:249::-;;;;;;;;;;-1:-1:-1;1757:249:72;;;;;:::i;:::-;;:::i;2293:101:110:-;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:110;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:110;;;3025:51:139;;3013:2;2998:18;1638:85:110;2879:203:139;2543:215:110;;;;;;;;;;-1:-1:-1;2543:215:110;;;;;:::i;:::-;;:::i;1218:203:72:-;1531:13:110;:11;:13::i;:::-;1370:44:72::1;1393:6;1401:3;1406:7;1370:22;:44::i;:::-;1218:203:::0;;;:::o;3323:1237::-;3491:11;3518:27;;;;:10;:27;:::i;:::-;:32;;3549:1;3518:32;3514:81;;3559:36;;-1:-1:-1;;;3559:36:72;;3741:10:139;3584::72;3729:23:139;3559:36:72;;;3711:42:139;3684:18;;3559:36:72;;;;;;;;3514:81;3607:18;;;3668:227;3704:4;3607:18;3761:27;;;;:10;:27;:::i;:::-;3802;;;;;;;;:::i;:::-;3843:20;;;;;;;;:::i;:::-;3877:8;;3668:22;:227::i;:::-;3606:289;;-1:-1:-1;3606:289:72;-1:-1:-1;3606:289:72;-1:-1:-1;3920:19:72;;;;4083:17;;;;:7;:17;:::i;:::-;4063:91;;-1:-1:-1;;;4063:91:72;;;4119:10;4413:15:139;;4063:91:72;;;4395:34:139;4465:15;;4445:18;;;4438:43;4497:18;;;4490:34;;;-1:-1:-1;;;;;4063:55:72;;;;;;;4339:18:139;;4063:91:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3906:248;;-1:-1:-1;3906:248:72;;-1:-1:-1;3906:248:72;-1:-1:-1;3906:248:72;-1:-1:-1;4171:200:72;3906:248;4228:24;;;;;;;;:::i;:::-;4266:7;:28;;;;;;;;;;:::i;:::-;4308:10;:25;;;;;;;;;;:::i;:::-;4347:14;4171:18;:200::i;:::-;4165:206;;4388:165;4432:10;4456;4480:21;4515:7;:28;;;;;;;;;;:::i;:::-;4388:30;:165::i;:::-;4381:172;;;;:::i;:::-;;3323:1237;-1:-1:-1;;;;;;;;;;;;3323:1237:72:o;2090:1227::-;2251:11;2278:27;;;;:10;:27;:::i;:::-;:32;;2309:1;2278:32;2274:85;;2344:14;;;;;;;;:::i;:::-;2319:40;;-1:-1:-1;;;2319:40:72;;3741:10:139;3729:23;;;2319:40:72;;;3711:42:139;3684:18;;2319:40:72;3567:192:139;2274:85:72;2371:18;;2413:227;2371:18;2468:24;2477:14;;;;;;;;:::i;:::-;-1:-1:-1;10006:4:72;;9940:101;2468:24;2506:27;;;;:10;:27;:::i;:::-;2547;;;;;;;;:::i;:::-;2588:20;;;;;;;;:::i;:::-;2622:8;;2413:22;:227::i;:::-;-1:-1:-1;2370:270:72;;-1:-1:-1;2370:270:72;-1:-1:-1;2665:19:72;;;;2828:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;2808:55:72;;2864:14;;;;;;;;:::i;:::-;2808:103;;-1:-1:-1;;;;;;2808:103:72;;;;;;;;6159:23:139;;;;2808:103:72;;;6141:42:139;2880:20:72;;;;6199:18:139;;;6192:34;6242:18;;;6235:34;;;6114:18;;2808:103:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2651:260;;-1:-1:-1;2651:260:72;;-1:-1:-1;2651:260:72;-1:-1:-1;2651:260:72;-1:-1:-1;2928:200:72;2651:260;2985:24;;;;;;;;:::i;:::-;3023:7;:28;;;;;;;;;;:::i;:::-;3065:10;:25;;;;;;;;;;:::i;2928:200::-;2922:206;;3145:165;3189:10;3213;3237:21;3272:7;:28;;;;;;;;;;:::i;3145:165::-;3138:172;;;;:::i;:::-;;2090:1227;-1:-1:-1;;;;;;;;;;;2090:1227:72:o;1509:242::-;1678:11;1707:37;1714:7;1723:10;1735:8;;1707:6;:37::i;:::-;1701:43;1509:242;-1:-1:-1;;;;;1509:242:72:o;1757:249::-;1933:11;1962:37;1969:7;1978:10;1990:8;;1962:6;:37::i;2293:101:110:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2543:215::-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:110;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:110;;2700:1:::1;2672:31;::::0;::::1;3025:51:139::0;2998:18;;2672:31:110::1;2879:203:139::0;2623:91:110::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:110;735:10:125;1855:23:110;1851:101;;1901:40;;-1:-1:-1;;;1901:40:110;;735:10:125;1901:40:110;;;3025:51:139;2998:18;;1901:40:110;2879:203:139;896:222:52;-1:-1:-1;;;;;987:22:52;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;4712:1001:72:-;4945:18;4965:16;4983:19;5014:36;5053:60;5075:8;;5085:7;5094:6;5102:10;5053:21;:60::i;:::-;5136:21;;5182:23;;;;5592;;;;5136:21;;-1:-1:-1;5182:23:72;-1:-1:-1;5014:99:72;;-1:-1:-1;5572:43:72;;;;;;:::i;:::-;5550:19;;;;5530:39;;;;;;:::i;:::-;:85;;;;:::i;:::-;5519:96;;5629:10;:18;;;5625:82;;;5693:3;5675:14;:8;5686:3;5675:14;:::i;:::-;5674:22;;;;:::i;:::-;5663:33;;5625:82;5004:709;4712:1001;;;;;;;;;;;:::o;8975:619::-;9164:7;;9206:9;;;;:30;;9232:4;9206:30;;;9218:11;9206:30;9183:53;-1:-1:-1;9247:25:72;9300:5;9276:20;;;;:4;:20;:::i;:::-;9275:30;;;;:::i;:::-;9247:58;-1:-1:-1;;;;;;9320:20:72;;;;:39;;-1:-1:-1;;;;;;9344:15:72;;;9320:39;9316:94;;;9382:17;-1:-1:-1;9375:24:72;;-1:-1:-1;9375:24:72;9316:94;9419:21;9497:4;9479:15;-1:-1:-1;;;;;9443:51:72;9457:18;9444:10;-1:-1:-1;;;;;9444:31:72;;;;;:::i;:::-;9443:51;;;;:::i;:::-;:58;;;;:::i;:::-;9419:82;;9534:17;9518:13;:33;:69;;9570:17;9518:69;;;9554:13;9518:69;9511:76;8975:619;-1:-1:-1;;;;;;;;;8975:619:72:o;9637:297::-;9806:11;9833:10;;9829:99;;9912:5;9897:11;9866:42;;9887:6;-1:-1:-1;;;;;9867:26:72;9877:6;-1:-1:-1;;;;;9868:15:72;:6;:15;;;;:::i;:::-;9867:26;;;;:::i;:::-;9866:42;;;;:::i;:::-;9865:52;;;;:::i;9829:99::-;9637:297;;;;;;:::o;2912:187:110:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:110;;;-1:-1:-1;;;;;;3020:17:110;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;438:252:52:-;-1:-1:-1;;;;;506:19:52;;502:58;;534:26;;-1:-1:-1;;;534:26:52;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:52;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:52;;-1:-1:-1;;;;;7077:32:139;;649:34:52;;;7059:51:139;7126:18;;;7119:34;;;7032:18;;649:34:52;6885:274:139;696:194:52;-1:-1:-1;;;;;779:19:52;;775:58;;807:26;;-1:-1:-1;;;807:26:52;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:52;;871:3;876:6;843:27;:40::i;5893:3076:72:-;6057:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6057:33:72;6125:1;6106:20;;;6102:78;;6149:20;;-1:-1:-1;;;6149:20:72;;;;;;;;;;;6102:78;6190:14;6218:20;6248:19;6277:2234;6284:24;;;6277:2234;;;6325:16;6343:21;6325:16;;6387:35;:8;;6415:6;6387:27;:35::i;:::-;6324:98;-1:-1:-1;6324:98:72;;-1:-1:-1;6324:98:72;-1:-1:-1;6324:98:72;-1:-1:-1;6324:98:72;;-1:-1:-1;;;6473:51:72;;;;6469:2032;;6608:7;6604:62;;;6624:42;;-1:-1:-1;;;6624:42:72;;7336:4:139;7324:17;;6624:42:72;;;7306:36:139;7279:18;;6624:42:72;7164:184:139;6604:62:72;6685:11;6698:13;6715:45;6753:6;;6715:37;:45::i;:::-;6684:76;;;;6852:6;:19;;;;;6870:1;6862:5;-1:-1:-1;;;;;6862:9:72;;6852:19;6848:74;;;6880:42;;-1:-1:-1;;;6880:42:72;;7336:4:139;7324:17;;6880:42:72;;;7306:36:139;7279:18;;6880:42:72;7164:184:139;6848:74:72;6963:5;-1:-1:-1;;;;;6941:27:72;:7;:18;;:27;;;;;;;:::i;:::-;;;-1:-1:-1;6986:19:72;-1:-1:-1;;;;;6986:19:72;;;;:::i;:::-;;;6526:494;;6469:2032;;;-1:-1:-1;;7030:53:72;;;;7026:1475;;7168:7;7164:62;;;7184:42;;-1:-1:-1;;;7184:42:72;;7336:4:139;7324:17;;7184:42:72;;;7306:36:139;7279:18;;7184:42:72;7164:184:139;:62:72;7246:24;7276:46;7315:6;;7276:38;:46::i;:::-;7245:77;;;7362:16;-1:-1:-1;;;;;7340:38:72;:7;:18;;:38;;;;;;;:::i;:::-;;;-1:-1:-1;7026:1475:72;;-1:-1:-1;7026:1475:72;;-1:-1:-1;;7403:51:72;;;;7399:1102;;7536:6;7532:61;;;7551:42;;-1:-1:-1;;;7551:42:72;;7336:4:139;7324:17;;7551:42:72;;;7306:36:139;7279:18;;7551:42:72;7164:184:139;7532:61:72;7615:11;7628:13;7645:45;7683:6;;7645:37;:45::i;:::-;7612:78;;;;;7712:3;-1:-1:-1;;;;;7712:8:72;7719:1;7712:8;7708:56;;7729:35;;-1:-1:-1;;;7729:35:72;;;;;;;;;;;7708:56;7805:5;-1:-1:-1;;;;;7783:27:72;:7;:18;;:27;;;;;;;:::i;:::-;;;-1:-1:-1;7828:16:72;;;:23;;-1:-1:-1;;;;;7828:23:72;;;:16;:23;;;;;:::i;:::-;;;-1:-1:-1;7869:20:72;;;:22;;;;;;:::i;:::-;;;;;7456:450;;7399:1102;;;-1:-1:-1;;7916:59:72;;;;7912:589;;8013:4;7995:15;;;:22;7912:589;;;-1:-1:-1;;8042:48:72;;;;8038:463;;8115:7;8110:63;;8131:42;;-1:-1:-1;;;8131:42:72;;7336:4:139;7324:17;;8131:42:72;;;7306:36:139;7279:18;;8131:42:72;7164:184:139;8110:63:72;8193:11;8206;8219:13;8236:42;8271:6;;8236:34;:42::i;:::-;8192:86;;;;;;8318:5;-1:-1:-1;;;;;8296:27:72;:7;:18;;:27;;;;;;;:::i;:::-;;;-1:-1:-1;8341:19:72;-1:-1:-1;;;;;8341:19:72;;;;:::i;:::-;;-1:-1:-1;8378:20:72;8394:4;8378:20;;:::i;:::-;;;8092:321;;;8038:463;;;8444:42;;-1:-1:-1;;;8444:42:72;;7336:4:139;7324:17;;8444:42:72;;;7306:36:139;7279:18;;8444:42:72;7164:184:139;8038:463:72;6310:2201;;;;6277:2234;;;8524:25;;;8520:77;;8558:39;;-1:-1:-1;;;8558:39:72;;;;;1883:25:139;;;1856:18;;8558:39:72;1737:177:139;8520:77:72;8611:18;;-1:-1:-1;;;;;8611:31:72;;-1:-1:-1;8607:107:72;;;8683:18;;8651:63;;-1:-1:-1;;;8651:63:72;;;;;7844:25:139;;;;-1:-1:-1;;;;;7905:47:139;;7885:18;;;7878:75;7817:18;;8651:63:72;7670:289:139;8607:107:72;8728:12;8744:1;8728:17;8724:65;;8754:35;;-1:-1:-1;;;8754:35:72;;;;;;;;;;;8724:65;8803:7;:28;;;;-1:-1:-1;8814:17:72;;;;8803:28;8799:76;;;8840:35;;-1:-1:-1;;;8840:35:72;;;;;;;;;;;8799:76;8905:12;8885:7;:16;;:32;;;;;;;:::i;:::-;;;-1:-1:-1;8927:35:72;;:20;;;:35;-1:-1:-1;8927:7:72;;5893:3076;-1:-1:-1;;;;;;5893:3076:72:o;1303:160:123:-;1412:43;;;-1:-1:-1;;;;;7077:32:139;;1412:43:123;;;7059:51:139;7126:18;;;;7119:34;;;1412:43:123;;;;;;;;;;7032:18:139;;;;1412:43:123;;;;;;;;-1:-1:-1;;;;;1412:43:123;-1:-1:-1;;;1412:43:123;;;1385:71;;1405:5;;1385:19;:71::i;1357:742:19:-;1472:16;1490:21;1472:16;1612:1;1602:11;;1472:16;1674:22;:8;;1602:11;1674:14;:22::i;:::-;1720:1;1710:11;;;;;1660:36;-1:-1:-1;1781:21:19;:8;;1710:11;1781:13;:21::i;:::-;1768:34;-1:-1:-1;1932:1:19;1923:10;;1987:13;;;;;2023:31;1987:13;1923:10;2023:8;;:31;:::i;:::-;1357:742;;2014:40;;-1:-1:-1;2014:40:19;;-1:-1:-1;;;2068:14:19;;;;-1:-1:-1;;;1357:742:19:o;2105:309::-;2183:11;;2243:2;2225:20;;;;;:44;;-1:-1:-1;2267:2:19;2249:20;;;2225:44;2221:90;;;2278:33;;-1:-1:-1;;;2278:33:19;;;;;;;;;;;2221:90;2327:17;:7;;2342:1;2327:14;:17::i;:::-;2321:23;-1:-1:-1;2380:2:19;2362:20;;:45;;2406:1;2362:45;;;2385:18;:7;;2400:2;2385:14;:18::i;:::-;2354:53;;2105:309;;;;;:::o;2420:271::-;2499:14;;2565:2;2547:20;;2543:67;;2576:34;;-1:-1:-1;;;2576:34:19;;;;;;;;;;;2543:67;2629:17;:7;;2644:1;2629:14;:17::i;:::-;2620:26;-1:-1:-1;2667:17:19;:7;;2681:2;2667:13;:17::i;2697:371::-;2789:12;;;2863:2;2845:20;;;;;:44;;-1:-1:-1;2887:2:19;2869:20;;;2845:44;2841:90;;;2898:33;;-1:-1:-1;;;2898:33:19;;;;;;;;;;;2841:90;2949:16;:7;;2963:1;2949:13;:16::i;:::-;2941:24;-1:-1:-1;2981:17:19;:7;;2996:1;2981:14;:17::i;:::-;2975:23;-1:-1:-1;3034:2:19;3016:20;;:45;;3060:1;3016:45;;;3039:18;:7;;3054:2;3039:14;:18::i;:::-;3008:53;;2697:371;;;;;:::o;3074:380::-;3163:11;;;3244:2;3226:20;;;;;:44;;-1:-1:-1;3268:2:19;3250:20;;;3226:44;3222:87;;;3279:30;;-1:-1:-1;;;3279:30:19;;;;;;;;;;;3222:87;3325:17;:7;;3340:1;3325:14;:17::i;:::-;3319:23;-1:-1:-1;3367:17:19;:7;;3381:2;3367:13;:17::i;:::-;3352:32;-1:-1:-1;3420:2:19;3402:20;;:45;;3446:1;3402:45;;;3425:18;:7;;3440:2;3425:14;:18::i;4059:629:123:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:123;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:123;;-1:-1:-1;;;;;3043:32:139;;4631:40:123;;;3025:51:139;2998:18;;4631:40:123;2879:203:139;229:215:49;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;386:41;;;229:215;;;;;;:::o;95:128::-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:49:o;892:220::-;970:7;1036:2;1027:11;;1075:18;1027:11;:6;1075;;:18;:::i;:::-;1067:27;;;:::i;:::-;1059:36;;;892:220;-1:-1:-1;;;;;892:220:49:o;1570:210::-;1647:7;1713:2;1704:11;;1744:18;1704:11;:6;1744;;:18;:::i;:::-;1736:27;;;:::i;450:215::-;527:6;592:1;583:10;;628:18;583:10;:6;628;;:18;:::i;:::-;621:26;;;:::i;:::-;614:34;;;450:215;-1:-1:-1;;;;;450:215:49:o;2705:151:124:-;2780:12;2811:38;2833:6;2841:4;2847:1;2811:21;:38::i;:::-;2804:45;;2705:151;;;;;:::o;3180:392::-;3279:12;3331:5;3307:21;:29;3303:108;;;3359:41;;-1:-1:-1;;;3359:41:124;;3394:4;3359:41;;;3025:51:139;2998:18;;3359:41:124;2879:203:139;3303:108:124;3421:12;3435:23;3462:6;-1:-1:-1;;;;;3462:11:124;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:124:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:124;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:124;;-1:-1:-1;;;;;3043:32:139;;5121:24:124;;;3025:51:139;2998:18;;5121:24:124;2879:203:139;5041:119:124;-1:-1:-1;5180:10:124;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:124;;;;;;;;;;;14:173:139;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:328::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;415:48;;510:2;499:9;495:18;482:32;472:42;;192:328;;;;;:::o;525:158::-;587:5;632:3;623:6;618:3;614:16;610:26;607:46;;;649:1;646;639:12;607:46;-1:-1:-1;671:6:139;525:158;-1:-1:-1;525:158:139:o;688:347::-;739:8;749:6;803:3;796:4;788:6;784:17;780:27;770:55;;821:1;818;811:12;770:55;-1:-1:-1;844:20:139;;887:18;876:30;;873:50;;;919:1;916;909:12;873:50;956:4;948:6;944:17;932:29;;1008:3;1001:4;992:6;984;980:19;976:30;973:39;970:59;;;1025:1;1022;1015:12;970:59;688:347;;;;;:::o;1040:692::-;1193:6;1201;1209;1217;1261:9;1252:7;1248:23;1291:3;1287:2;1283:12;1280:32;;;1308:1;1305;1298:12;1280:32;1332:2;1328;1324:11;1321:31;;;1348:1;1345;1338:12;1321:31;;1371:9;1361:19;;1399:65;1456:7;1451:2;1440:9;1436:18;1399:65;:::i;:::-;1389:75;;1515:3;1504:9;1500:19;1487:33;1543:18;1535:6;1532:30;1529:50;;;1575:1;1572;1565:12;1529:50;1614:58;1664:7;1655:6;1644:9;1640:22;1614:58;:::i;:::-;1040:692;;;;-1:-1:-1;1691:8:139;-1:-1:-1;;;;1040:692:139:o;1919:672::-;2065:6;2073;2081;2089;2142:3;2130:9;2121:7;2117:23;2113:33;2110:53;;;2159:1;2156;2149:12;2110:53;2182:56;2230:7;2219:9;2182:56;:::i;:::-;2172:66;;2257;2315:7;2309:3;2298:9;2294:19;2257:66;:::i;:::-;2247:76;;2374:3;2363:9;2359:19;2346:33;2402:18;2394:6;2391:30;2388:50;;;2434:1;2431;2424:12;3087:186;3146:6;3199:2;3187:9;3178:7;3174:23;3170:32;3167:52;;;3215:1;3212;3205:12;3167:52;3238:29;3257:9;3238:29;:::i;3278:284::-;3336:6;3389:2;3377:9;3368:7;3364:23;3360:32;3357:52;;;3405:1;3402;3395:12;3357:52;3444:9;3431:23;3494:18;3487:5;3483:30;3476:5;3473:41;3463:69;;3528:1;3525;3518:12;3764:146;-1:-1:-1;;;;;3843:5:139;3839:46;3832:5;3829:57;3819:85;;3900:1;3897;3890:12;3915:247;3974:6;4027:2;4015:9;4006:7;4002:23;3998:32;3995:52;;;4043:1;4040;4033:12;3995:52;4082:9;4069:23;4101:31;4126:5;4101:31;:::i;4535:581::-;4632:6;4640;4648;4656;4709:3;4697:9;4688:7;4684:23;4680:33;4677:53;;;4726:1;4723;4716:12;4677:53;4755:9;4749:16;4739:26;;4808:2;4797:9;4793:18;4787:25;4821:31;4846:5;4821:31;:::i;:::-;4921:2;4906:18;;4900:25;4871:5;;-1:-1:-1;4934:33:139;4900:25;4934:33;:::i;:::-;5038:2;5023:18;;5017:25;4986:7;;-1:-1:-1;5051:33:139;5017:25;5051:33;:::i;:::-;4535:581;;;;-1:-1:-1;4535:581:139;;-1:-1:-1;;4535:581:139:o;5121:272::-;5179:6;5232:2;5220:9;5211:7;5207:23;5203:32;5200:52;;;5248:1;5245;5238:12;5200:52;5287:9;5274:23;5337:6;5330:5;5326:18;5319:5;5316:29;5306:57;;5359:1;5356;5349:12;5398:127;5459:10;5454:3;5450:20;5447:1;5440:31;5490:4;5487:1;5480:15;5514:4;5511:1;5504:15;5530:125;5595:9;;;5616:10;;;5613:36;;;5629:18;;:::i;5660:276::-;5718:6;5771:2;5759:9;5750:7;5746:23;5742:32;5739:52;;;5787:1;5784;5777:12;5739:52;5826:9;5813:23;5876:10;5869:5;5865:22;5858:5;5855:33;5845:61;;5902:1;5899;5892:12;6280:168;6353:9;;;6384;;6401:15;;;6395:22;;6381:37;6371:71;;6422:18;;:::i;6453:217::-;6493:1;6519;6509:132;;6563:10;6558:3;6554:20;6551:1;6544:31;6598:4;6595:1;6588:15;6626:4;6623:1;6616:15;6509:132;-1:-1:-1;6655:9:139;;6453:217::o;7353:135::-;7392:3;7413:17;;;7410:43;;7433:18;;:::i;:::-;-1:-1:-1;7480:1:139;7469:13;;7353:135::o;7493:172::-;7560:10;7590;;;7602;;;7586:27;;7625:11;;;7622:37;;;7639:18;;:::i;:::-;7622:37;7493:172;;;;:::o;7964:331::-;8069:9;8080;8122:8;8110:10;8107:24;8104:44;;;8144:1;8141;8134:12;8104:44;8173:6;8163:8;8160:20;8157:40;;;8193:1;8190;8183:12;8157:40;-1:-1:-1;;8219:23:139;;;8264:25;;;;;-1:-1:-1;7964:331:139:o;8300:277::-;8367:6;8420:2;8408:9;8399:7;8395:23;8391:32;8388:52;;;8436:1;8433;8426:12;8388:52;8468:9;8462:16;8521:5;8514:13;8507:21;8500:5;8497:32;8487:60;;8543:1;8540;8533:12;8582:318;-1:-1:-1;;;;;;8702:19:139;;8773:11;;;;8804:1;8796:10;;8793:101;;;8881:2;8875;8868:3;8865:1;8861:11;8858:1;8854:19;8850:28;8846:2;8842:37;8838:46;8829:55;;8793:101;;;8582:318;;;;:::o;8905:127::-;8966:10;8961:3;8957:20;8954:1;8947:31;8997:4;8994:1;8987:15;9021:4;9018:1;9011:15;9037:345;-1:-1:-1;;9158:19:139;;9253:11;;;;9284:2;9276:11;;9273:103;;;9346:2;9342:12;;;;9339:1;9335:20;9331:29;;;9323:38;9319:47;;;;9037:345;-1:-1:-1;;9037:345:139:o;9387:255::-;9507:19;;9546:2;9538:11;;9535:101;;;-1:-1:-1;;9607:2:139;9603:12;;;9600:1;9596:20;9592:33;9581:45;9387:255;;;;:::o;9647:323::-;-1:-1:-1;;;;;;9767:19:139;;9843:11;;;;9874:1;9866:10;;9863:101;;;9935:1;9931:11;;;;9928:1;9924:19;9920:28;;;9912:37;9908:46;;;;9647:323;-1:-1:-1;;9647:323:139:o;9975:412::-;10104:3;10142:6;10136:13;10167:1;10177:129;10191:6;10188:1;10185:13;10177:129;;;10289:4;10273:14;;;10269:25;;10263:32;10250:11;;;10243:53;10206:12;10177:129;;;-1:-1:-1;10361:1:139;10325:16;;10350:13;;;-1:-1:-1;10325:16:139;9975:412;-1:-1:-1;9975:412:139:o","linkReferences":{},"immutableReferences":{"18858":[{"start":1840,"length":32}],"18860":[{"start":517,"length":32},{"start":672,"length":32}]}},"methodIdentifiers":{"getFee((address,address,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"337c7a9e","getFee((address,uint32,address,uint256,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"434ee016","getFeeOnSend((address,address,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"65003784","getFeeOnSend((address,uint32,address,uint256,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"566ef762","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdrawToken(address,address,uint256)":"01e33667"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_localEidV2\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"Executor_EidNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"Executor_InvalidExecutorOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"n