@layerzerolabs/oapp-evm
Version:
LayerZero Labs reference EVM OmniChain Application (OApp) implementation
1 lines • 88.3 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"_endpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"data","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_nativeFee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"receipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"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":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"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"}]}],"bytecode":{"object":"0x60e0604052601560a09081527f4e6f7468696e67207265636569766564207965742e000000000000000000000060c0526002906200003e908262000230565b503480156200004b575f80fd5b50604051620017d7380380620017d78339810160408190526200006e9162000318565b81818181806001600160a01b038116620000a157604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000ac8162000143565b506001600160a01b038083166080528116620000db57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b15801562000120575f80fd5b505af115801562000133573d5f803e3d5ffd5b505050505050505050506200034e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620001bb57607f821691505b602082108103620001da57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200022b57805f5260205f20601f840160051c81016020851015620002075750805b601f840160051c820191505b8181101562000228575f815560010162000213565b50505b505050565b81516001600160401b038111156200024c576200024c62000192565b62000264816200025d8454620001a6565b84620001e0565b602080601f8311600181146200029a575f8415620002825750858301515b5f19600386901b1c1916600185901b178555620002f4565b5f85815260208120601f198616915b82811015620002ca57888601518255948401946001909101908401620002a9565b5085821015620002e857878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b80516001600160a01b038116811462000313575f80fd5b919050565b5f80604083850312156200032a575f80fd5b6200033583620002fc565b91506200034560208401620002fc565b90509250929050565b608051611446620003915f395f81816101530152818161033701528181610561015281816107d6015281816108b5015281816109a80152610a5d01526114465ff3fe6080604052600436106100e4575f3560e01c806382413eac11610087578063ca5eb5e111610057578063ca5eb5e1146102ac578063f2fde38b146102cb578063f77e5dd3146102ea578063ff7bd03d14610316575f80fd5b806382413eac146101f95780638da5cb5b14610237578063b4ab5dd114610253578063bb0b6a5314610273575f80fd5b80635e280f11116100c25780635e280f1114610142578063715018a61461018d57806373d4a13a146101a15780637d25a05e146101c2575f80fd5b806313137d65146100e857806317442b70146100fd5780633400288b14610123575b5f80fd5b6100fb6100f6366004610d14565b610335565b005b348015610108575f80fd5b50604080516001815260026020820152015b60405180910390f35b34801561012e575f80fd5b506100fb61013d366004610dc4565b6103f5565b34801561014d575f80fd5b506101757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161011a565b348015610198575f80fd5b506100fb61040b565b3480156101ac575f80fd5b506101b561041e565b60405161011a9190610e39565b3480156101cd575f80fd5b506101e16101dc366004610dc4565b6104aa565b6040516001600160401b03909116815260200161011a565b348015610204575f80fd5b50610227610213366004610e4b565b6001600160a01b0381163014949350505050565b604051901515815260200161011a565b348015610242575f80fd5b505f546001600160a01b0316610175565b610266610261366004610f51565b6104b2565b60405161011a9190610fc9565b34801561027e575f80fd5b5061029e61028d36600461100a565b60016020525f908152604090205481565b60405190815260200161011a565b3480156102b7575f80fd5b506100fb6102c6366004611023565b61053a565b3480156102d6575f80fd5b506100fb6102e5366004611023565b6105bb565b3480156102f5575f80fd5b5061030961030436600461104b565b6105f8565b60405161011a91906110d4565b348015610321575f80fd5b506102276103303660046110eb565b610644565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610385576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061039f9061039a908a61100a565b610678565b146103dd576103b1602088018861100a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161037c565b6103ec878787878787876106b3565b50505050505050565b6103fd6106d6565b6104078282610702565b5050565b6104136106d6565b61041c5f610756565b565b6002805461042b90611105565b80601f016020809104026020016040519081016040528092919081815260200182805461045790611105565b80156104a25780601f10610479576101008083540402835291602001916104a2565b820191905f5260205f20905b81548152906001019060200180831161048557829003601f168201915b505050505081565b5f5b92915050565b6104ba610c63565b5f856040516020016104cc9190610e39565b60408051601f198184030181526020601f8801819004810284018101909252868352925061052f91899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506107a59050565b979650505050505050565b6105426106d6565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156105a2575f80fd5b505af11580156105b4573d5f803e3d5ffd5b5050505050565b6105c36106d6565b6001600160a01b0381166105ec57604051631e4fbdf760e01b81525f600482015260240161037c565b6105f581610756565b50565b604080518082019091525f80825260208201525f8460405160200161061d9190610e39565b604051602081830303815290604052905061063a868286866108a0565b9695505050505050565b5f60208201803590600190839061065b908661100a565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f90815260016020526040812054806104ac5760405163f6ff4fb760e01b815263ffffffff8416600482015260240161037c565b6106bf84860186611137565b6002906106cc90826111b4565b5050505050505050565b5f546001600160a01b0316331461041c5760405163118cdaa760e01b815233600482015260240161037c565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ad610c63565b5f6107ba845f015161097e565b6020850151909150156107d4576107d484602001516109a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016108248c610678565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161085f929190611273565b60806040518083038185885af115801561087b573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061052f9190611337565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161090289610678565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401610937929190611273565b6040805180830381865afa158015610951573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097591906113a5565b95945050505050565b5f8134146109a1576040516304fb820960e51b815234600482015260240161037c565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2691906113bf565b90506001600160a01b038116610a4f576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094019094526020830180516001600160e01b03166323b872dd60e01b179052610407938516928690610ad4908590610ada565b50505050565b5f610aee6001600160a01b03841683610b40565b905080515f14158015610b12575080806020019051810190610b1091906113da565b155b15610b3b57604051635274afe760e01b81526001600160a01b038416600482015260240161037c565b505050565b6060610b4d83835f610b54565b9392505050565b606081471015610b795760405163cd78605960e01b815230600482015260240161037c565b5f80856001600160a01b03168486604051610b9491906113f5565b5f6040518083038185875af1925050503d805f8114610bce576040519150601f19603f3d011682016040523d82523d5f602084013e610bd3565b606091505b509150915061063a868383606082610bf357610bee82610c3a565b610b4d565b8151158015610c0a57506001600160a01b0384163b155b15610c3357604051639996b31560e01b81526001600160a01b038516600482015260240161037c565b5080610b4d565b805115610c4a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b03168152602001610ca160405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610cb6575f80fd5b50919050565b5f8083601f840112610ccc575f80fd5b5081356001600160401b03811115610ce2575f80fd5b602083019150836020828501011115610cf9575f80fd5b9250929050565b6001600160a01b03811681146105f5575f80fd5b5f805f805f805f60e0888a031215610d2a575f80fd5b610d348989610ca6565b96506060880135955060808801356001600160401b0380821115610d56575f80fd5b610d628b838c01610cbc565b909750955060a08a01359150610d7782610d00565b90935060c08901359080821115610d8c575f80fd5b50610d998a828b01610cbc565b989b979a50959850939692959293505050565b803563ffffffff81168114610dbf575f80fd5b919050565b5f8060408385031215610dd5575f80fd5b610dde83610dac565b946020939093013593505050565b5f5b83811015610e06578181015183820152602001610dee565b50505f910152565b5f8151808452610e25816020860160208601610dec565b601f01601f19169290920160200192915050565b602081525f610b4d6020830184610e0e565b5f805f8060a08587031215610e5e575f80fd5b610e688686610ca6565b935060608501356001600160401b03811115610e82575f80fd5b610e8e87828801610cbc565b9094509250506080850135610ea281610d00565b939692955090935050565b634e487b7160e01b5f52604160045260245ffd5b5f6001600160401b0380841115610eda57610eda610ead565b604051601f8501601f19908116603f01168101908282118183101715610f0257610f02610ead565b81604052809350858152868686011115610f1a575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112610f42575f80fd5b610b4d83833560208501610ec1565b5f805f805f60808688031215610f65575f80fd5b610f6e86610dac565b945060208601356001600160401b0380821115610f89575f80fd5b610f9589838a01610f33565b95506040880135915080821115610faa575f80fd5b50610fb788828901610cbc565b96999598509660600135949350505050565b5f608082019050825182526001600160401b0360208401511660208301526040830151611003604084018280518252602090810151910152565b5092915050565b5f6020828403121561101a575f80fd5b610b4d82610dac565b5f60208284031215611033575f80fd5b8135610b4d81610d00565b80151581146105f5575f80fd5b5f805f806080858703121561105e575f80fd5b61106785610dac565b935060208501356001600160401b0380821115611082575f80fd5b61108e88838901610f33565b945060408701359150808211156110a3575f80fd5b508501601f810187136110b4575f80fd5b6110c387823560208401610ec1565b9250506060850135610ea28161103e565b8151815260208083015190820152604081016104ac565b5f606082840312156110fb575f80fd5b610b4d8383610ca6565b600181811c9082168061111957607f821691505b602082108103610cb657634e487b7160e01b5f52602260045260245ffd5b5f60208284031215611147575f80fd5b81356001600160401b0381111561115c575f80fd5b61116884828501610f33565b949350505050565b601f821115610b3b57805f5260205f20601f840160051c810160208510156111955750805b601f840160051c820191505b818110156105b4575f81556001016111a1565b81516001600160401b038111156111cd576111cd610ead565b6111e1816111db8454611105565b84611170565b602080601f831160018114611214575f84156111fd5750858301515b5f19600386901b1c1916600185901b17855561126b565b5f85815260208120601f198616915b8281101561124257888601518255948401946001909101908401611223565b508582101561125f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a060808401526112a860e0840182610e0e565b90506060850151603f198483030160a08501526112c58282610e0e565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f604082840312156112fb575f80fd5b604051604081018181106001600160401b038211171561131d5761131d610ead565b604052825181526020928301519281019290925250919050565b5f60808284031215611347575f80fd5b604051606081016001600160401b03828210818311171561136a5761136a610ead565b8160405284518352602085015191508082168214611386575f80fd5b50602082015261139984604085016112eb565b60408201529392505050565b5f604082840312156113b5575f80fd5b610b4d83836112eb565b5f602082840312156113cf575f80fd5b8151610b4d81610d00565b5f602082840312156113ea575f80fd5b8151610b4d8161103e565b5f8251611406818460208701610dec565b919091019291505056fea2646970667358221220ad0ada5334360112601015bda399da1f76d657c6cbbc6f09598a42bec8abc73064736f6c63430008160033","sourceMap":"458:44:134:-:0;322:2769;458:44;;322:2769;458:44;;;;;;;;;;;;:::i;:::-;;354:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;409:9;420;409;420;;-1:-1:-1;;;;;1273:26:112;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:112;;1350:1;1322:31;;;3327:51:137;3300:18;;1322:31:112;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:1;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:1;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:1;;-1:-1:-1;;;;;3345:32:137;;;1163:31:1;;;3327:51:137;1163:20:1;;;;;;3300:18:137;;1163:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:0;;354:98:134;;322:2769;;2912:187:112;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:112;;;-1:-1:-1;;;;;;3020:17:112;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:137:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:137;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1345::-;1471:10;;-1:-1:-1;;;;;1493:30:137;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1707:4;;1764:2;1753:14;;1781:1;1776:663;;;;2483:1;2500:6;2497:89;;;-1:-1:-1;2552:19:137;;;2546:26;2497:89;-1:-1:-1;;1308:1:137;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2599:81;;1746:944;;1776:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1812:20:137;;;1930:236;1944:7;1941:1;1938:14;1930:236;;;2033:19;;;2027:26;2012:42;;2125:27;;;;2093:1;2081:14;;;;1960:19;;1930:236;;;1934:3;2194:6;2185:7;2182:19;2179:201;;;2255:19;;;2249:26;-1:-1:-1;;2338:1:137;2334:14;;;2350:3;2330:24;2326:37;2322:42;2307:58;2292:74;;2179:201;;;2426:1;2417:6;2414:1;2410:14;2406:22;2400:4;2393:36;1746:944;;;;;1351:1345;;:::o;2701:177::-;2780:13;;-1:-1:-1;;;;;2822:31:137;;2812:42;;2802:70;;2868:1;2865;2858:12;2802:70;2701:177;;;:::o;2883:293::-;2962:6;2970;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;3062:40;3092:9;3062:40;:::i;:::-;3052:50;;3121:49;3166:2;3155:9;3151:18;3121:49;:::i;:::-;3111:59;;2883:293;;;;;:::o;3181:203::-;322:2769:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100e4575f3560e01c806382413eac11610087578063ca5eb5e111610057578063ca5eb5e1146102ac578063f2fde38b146102cb578063f77e5dd3146102ea578063ff7bd03d14610316575f80fd5b806382413eac146101f95780638da5cb5b14610237578063b4ab5dd114610253578063bb0b6a5314610273575f80fd5b80635e280f11116100c25780635e280f1114610142578063715018a61461018d57806373d4a13a146101a15780637d25a05e146101c2575f80fd5b806313137d65146100e857806317442b70146100fd5780633400288b14610123575b5f80fd5b6100fb6100f6366004610d14565b610335565b005b348015610108575f80fd5b50604080516001815260026020820152015b60405180910390f35b34801561012e575f80fd5b506100fb61013d366004610dc4565b6103f5565b34801561014d575f80fd5b506101757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161011a565b348015610198575f80fd5b506100fb61040b565b3480156101ac575f80fd5b506101b561041e565b60405161011a9190610e39565b3480156101cd575f80fd5b506101e16101dc366004610dc4565b6104aa565b6040516001600160401b03909116815260200161011a565b348015610204575f80fd5b50610227610213366004610e4b565b6001600160a01b0381163014949350505050565b604051901515815260200161011a565b348015610242575f80fd5b505f546001600160a01b0316610175565b610266610261366004610f51565b6104b2565b60405161011a9190610fc9565b34801561027e575f80fd5b5061029e61028d36600461100a565b60016020525f908152604090205481565b60405190815260200161011a565b3480156102b7575f80fd5b506100fb6102c6366004611023565b61053a565b3480156102d6575f80fd5b506100fb6102e5366004611023565b6105bb565b3480156102f5575f80fd5b5061030961030436600461104b565b6105f8565b60405161011a91906110d4565b348015610321575f80fd5b506102276103303660046110eb565b610644565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610385576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061039f9061039a908a61100a565b610678565b146103dd576103b1602088018861100a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161037c565b6103ec878787878787876106b3565b50505050505050565b6103fd6106d6565b6104078282610702565b5050565b6104136106d6565b61041c5f610756565b565b6002805461042b90611105565b80601f016020809104026020016040519081016040528092919081815260200182805461045790611105565b80156104a25780601f10610479576101008083540402835291602001916104a2565b820191905f5260205f20905b81548152906001019060200180831161048557829003601f168201915b505050505081565b5f5b92915050565b6104ba610c63565b5f856040516020016104cc9190610e39565b60408051601f198184030181526020601f8801819004810284018101909252868352925061052f91899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506107a59050565b979650505050505050565b6105426106d6565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156105a2575f80fd5b505af11580156105b4573d5f803e3d5ffd5b5050505050565b6105c36106d6565b6001600160a01b0381166105ec57604051631e4fbdf760e01b81525f600482015260240161037c565b6105f581610756565b50565b604080518082019091525f80825260208201525f8460405160200161061d9190610e39565b604051602081830303815290604052905061063a868286866108a0565b9695505050505050565b5f60208201803590600190839061065b908661100a565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f90815260016020526040812054806104ac5760405163f6ff4fb760e01b815263ffffffff8416600482015260240161037c565b6106bf84860186611137565b6002906106cc90826111b4565b5050505050505050565b5f546001600160a01b0316331461041c5760405163118cdaa760e01b815233600482015260240161037c565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ad610c63565b5f6107ba845f015161097e565b6020850151909150156107d4576107d484602001516109a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016108248c610678565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161085f929190611273565b60806040518083038185885af115801561087b573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061052f9190611337565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161090289610678565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401610937929190611273565b6040805180830381865afa158015610951573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097591906113a5565b95945050505050565b5f8134146109a1576040516304fb820960e51b815234600482015260240161037c565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2691906113bf565b90506001600160a01b038116610a4f576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094019094526020830180516001600160e01b03166323b872dd60e01b179052610407938516928690610ad4908590610ada565b50505050565b5f610aee6001600160a01b03841683610b40565b905080515f14158015610b12575080806020019051810190610b1091906113da565b155b15610b3b57604051635274afe760e01b81526001600160a01b038416600482015260240161037c565b505050565b6060610b4d83835f610b54565b9392505050565b606081471015610b795760405163cd78605960e01b815230600482015260240161037c565b5f80856001600160a01b03168486604051610b9491906113f5565b5f6040518083038185875af1925050503d805f8114610bce576040519150601f19603f3d011682016040523d82523d5f602084013e610bd3565b606091505b509150915061063a868383606082610bf357610bee82610c3a565b610b4d565b8151158015610c0a57506001600160a01b0384163b155b15610c3357604051639996b31560e01b81526001600160a01b038516600482015260240161037c565b5080610b4d565b805115610c4a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b03168152602001610ca160405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610cb6575f80fd5b50919050565b5f8083601f840112610ccc575f80fd5b5081356001600160401b03811115610ce2575f80fd5b602083019150836020828501011115610cf9575f80fd5b9250929050565b6001600160a01b03811681146105f5575f80fd5b5f805f805f805f60e0888a031215610d2a575f80fd5b610d348989610ca6565b96506060880135955060808801356001600160401b0380821115610d56575f80fd5b610d628b838c01610cbc565b909750955060a08a01359150610d7782610d00565b90935060c08901359080821115610d8c575f80fd5b50610d998a828b01610cbc565b989b979a50959850939692959293505050565b803563ffffffff81168114610dbf575f80fd5b919050565b5f8060408385031215610dd5575f80fd5b610dde83610dac565b946020939093013593505050565b5f5b83811015610e06578181015183820152602001610dee565b50505f910152565b5f8151808452610e25816020860160208601610dec565b601f01601f19169290920160200192915050565b602081525f610b4d6020830184610e0e565b5f805f8060a08587031215610e5e575f80fd5b610e688686610ca6565b935060608501356001600160401b03811115610e82575f80fd5b610e8e87828801610cbc565b9094509250506080850135610ea281610d00565b939692955090935050565b634e487b7160e01b5f52604160045260245ffd5b5f6001600160401b0380841115610eda57610eda610ead565b604051601f8501601f19908116603f01168101908282118183101715610f0257610f02610ead565b81604052809350858152868686011115610f1a575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112610f42575f80fd5b610b4d83833560208501610ec1565b5f805f805f60808688031215610f65575f80fd5b610f6e86610dac565b945060208601356001600160401b0380821115610f89575f80fd5b610f9589838a01610f33565b95506040880135915080821115610faa575f80fd5b50610fb788828901610cbc565b96999598509660600135949350505050565b5f608082019050825182526001600160401b0360208401511660208301526040830151611003604084018280518252602090810151910152565b5092915050565b5f6020828403121561101a575f80fd5b610b4d82610dac565b5f60208284031215611033575f80fd5b8135610b4d81610d00565b80151581146105f5575f80fd5b5f805f806080858703121561105e575f80fd5b61106785610dac565b935060208501356001600160401b0380821115611082575f80fd5b61108e88838901610f33565b945060408701359150808211156110a3575f80fd5b508501601f810187136110b4575f80fd5b6110c387823560208401610ec1565b9250506060850135610ea28161103e565b8151815260208083015190820152604081016104ac565b5f606082840312156110fb575f80fd5b610b4d8383610ca6565b600181811c9082168061111957607f821691505b602082108103610cb657634e487b7160e01b5f52602260045260245ffd5b5f60208284031215611147575f80fd5b81356001600160401b0381111561115c575f80fd5b61116884828501610f33565b949350505050565b601f821115610b3b57805f5260205f20601f840160051c810160208510156111955750805b601f840160051c820191505b818110156105b4575f81556001016111a1565b81516001600160401b038111156111cd576111cd610ead565b6111e1816111db8454611105565b84611170565b602080601f831160018114611214575f84156111fd5750858301515b5f19600386901b1c1916600185901b17855561126b565b5f85815260208120601f198616915b8281101561124257888601518255948401946001909101908401611223565b508582101561125f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a060808401526112a860e0840182610e0e565b90506060850151603f198483030160a08501526112c58282610e0e565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f604082840312156112fb575f80fd5b604051604081018181106001600160401b038211171561131d5761131d610ead565b604052825181526020928301519281019290925250919050565b5f60808284031215611347575f80fd5b604051606081016001600160401b03828210818311171561136a5761136a610ead565b8160405284518352602085015191508082168214611386575f80fd5b50602082015261139984604085016112eb565b60408201529392505050565b5f604082840312156113b5575f80fd5b610b4d83836112eb565b5f602082840312156113cf575f80fd5b8151610b4d81610d00565b5f602082840312156113ea575f80fd5b8151610b4d8161103e565b5f8251611406818460208701610dec565b919091019291505056fea2646970667358221220ad0ada5334360112601015bda399da1f76d657c6cbbc6f09598a42bec8abc73064736f6c63430008160033","sourceMap":"322:2769:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4368:708:3;;;;;;:::i;:::-;;:::i;:::-;;1287:235:0;;;;;;;;;;-1:-1:-1;1287:235:0;;;843:1:4;1922:34:137;;678:1:3;1987:2:137;1972:18;;1965:43;1858:18;1287:235:0;;;;;;;;1724:108:1;;;;;;;;;;-1:-1:-1;1724:108:1;;;;;:::i;:::-;;:::i;446:46::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2638:32:137;;;2620:51;;2608:2;2593:18;446:46:1;2444:233:137;2293:101:112;;;;;;;;;;;;;:::i;458:44:134:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3507:128:3:-;;;;;;;;;;-1:-1:-1;3507:128:3;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3600:31:137;;;3582:50;;3570:2;3555:18;3507:128:3;3438:200:137;2013:216:3;;;;;;;;;;-1:-1:-1;2013:216:3;;;;;:::i;:::-;-1:-1:-1;;;;;2198:24:3;;2217:4;2198:24;2013:216;;;;;;;;;;4484:14:137;;4477:22;4459:41;;4447:2;4432:18;2013:216:3;4319:187:137;1638:85:112;;;;;;;;;;-1:-1:-1;1684:7:112;1710:6;-1:-1:-1;;;;;1710:6:112;1638:85;;969:363:134;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;569:48:1:-;;;;;;;;;;-1:-1:-1;569:48:1;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7460:25:137;;;7448:2;7433:18;569:48:1;7314:177:137;3252:105:1;;;;;;;;;;-1:-1:-1;3252:105:1;;;;;:::i;:::-;;:::i;2543:215:112:-;;;;;;;;;;-1:-1:-1;2543:215:112;;;;;:::i;:::-;;:::i;1823:307:134:-;;;;;;;;;;-1:-1:-1;1823:307:134;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2771:149:3:-;;;;;;;;;;-1:-1:-1;2771:149:3;;;;;:::i;:::-;;:::i;4368:708::-;4681:8;-1:-1:-1;;;;;4673:31:3;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:3;;4726:10;4713:24;;;2620:51:137;2593:18;;4713:24:3;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:3;;9461:10:137;9449:23;;;4896:40:3;;;9431:42:137;4921:14:3;;;;9489:18:137;;;9482:34;9404:18;;4896:40:3;9259:263:137;4833:103:3;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;1724:108:1:-;1531:13:112;:11;:13::i;:::-;1804:21:1::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;2293:101:112:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;458:44:134:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3507:128:3:-;3596:12;3507:128;;;;;:::o;969:363:134:-;1132:31;;:::i;:::-;1175:21;1210:8;1199:20;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1199:20:134;;;;;;;1239:86;;;;;;;;;;;;;;;;;;1199:20;-1:-1:-1;1239:86:134;;1247:7;;1199:20;;;1266:8;;;;;;1239:86;;1266:8;;;;1239:86;;;;;;;;-1:-1:-1;1276:27:134;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1313:10:134;;-1:-1:-1;1239:7:134;;-1:-1:-1;1239:86:134:i;:::-;1229:96;969:363;-1:-1:-1;;;;;;;969:363:134:o;3252:105:1:-;1531:13:112;:11;:13::i;:::-;3319:31:1::1;::::0;-1:-1:-1;;;3319:31:1;;-1:-1:-1;;;;;2638:32:137;;;3319:31:1::1;::::0;::::1;2620:51:137::0;3319:8:1::1;:20;::::0;::::1;::::0;2593:18:137;;3319:31:1::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;2543:215:112:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:112;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:112;;2700:1:::1;2672:31;::::0;::::1;2620:51:137::0;2593:18;;2672:31:112::1;2444:233:137::0;2623:91:112::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1823:307:134:-;-1:-1:-1;;;;;;;;;;;;;;;;;2015:20:134;2049:8;2038:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2015:43;;2074:49;2081:7;2090;2099:8;2109:13;2074:6;:49::i;:::-;2068:55;1823:307;-1:-1:-1;;;;;;1823:307:134:o;2771:149:3:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:3;;:37;;2771:149;-1:-1:-1;;2771:149:3:o;2718:196:1:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:1;;10086:10:137;10074:23;;2874:12:1;;;10056:42:137;10029:18;;2874:12:1;9912:192:137;2826:263:134;3053:29;;;;3064:7;3053:29;:::i;:::-;3046:4;;:36;;:4;:36;:::i;:::-;;2826:263;;;;;;;:::o;1796:162:112:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:112;735:10:120;1855:23:112;1851:101;;1901:40;;-1:-1:-1;;;1901:40:112;;735:10:120;1901:40:112;;;2620:51:137;2593:18;;1901:40:112;2444:233:137;2286:134:1;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;9431:42:137;;;9489:18;;9482:34;;;2393:20:1;;9404:18:137;2393:20:1;;;;;;;2286:134;;:::o;2912:187:112:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:112;;;-1:-1:-1;;;;;;3020:17:112;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3188:766:4:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:4;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:4;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2038:391::-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:4;-1:-1:-1;;;;;2259:14:4;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2240:182;2038:391;-1:-1:-1;;;;;2038:391:4:o;4650:191::-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:4;;4797:9;4781:26;;;7460:25:137;7433:18;;4781:26:4;7314:177:137;4745:62:4;-1:-1:-1;4824:10:4;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:4;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:4;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:4;;;;;;;;;;;5417:54;1829:53:118;;;5578:10:4;1829:53:118;;;15663:34:137;;;5598:8:4;-1:-1:-1;;;;;15733:15:137;;;15713:18;;;15706:43;15765:18;;;;15758:34;;;1829:53:118;;;;;;;;;;15598:18:137;;;;1829:53:118;;;;;;;;-1:-1:-1;;;;;1829:53:118;-1:-1:-1;;;1829:53:118;;;5545:76:4;;:32;;;5609:11;;1802:81:118;;5545:32:4;;1802:19:118;:81::i;:::-;1702:188;;;;:::o;4059:629::-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:118;;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:118;;-1:-1:-1;;;;;2638:32:137;;4631:40:118;;;2620:51:137;2593:18;;4631:40:118;2444:233:137;4547:135:118;4129:559;4059:629;;:::o;2705:151:119:-;2780:12;2811:38;2833:6;2841:4;2847:1;2811:21;:38::i;:::-;2804:45;2705:151;-1:-1:-1;;;2705:151:119:o;3180:392::-;3279:12;3331:5;3307:21;:29;3303:108;;;3359:41;;-1:-1:-1;;;3359:41:119;;3394:4;3359:41;;;2620:51:137;2593:18;;3359:41:119;2444:233:137;3303:108:119;3421:12;3435:23;3462:6;-1:-1:-1;;;;;3462:11:119;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;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:119;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:119;;-1:-1:-1;;;;;2638:32:137;;5121:24:119;;;2620:51:137;2593:18;;5121:24:119;2444:233:137;5041:119:119;-1:-1:-1;5180:10:119;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:119;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:137:-;73:5;118:2;109:6;104:3;100:16;96:25;93:45;;;134:1;131;124:12;93:45;-1:-1:-1;156:6:137;14:154;-1:-1:-1;14:154:137:o;173:347::-;224:8;234:6;288:3;281:4;273:6;269:17;265:27;255:55;;306:1;303;296:12;255:55;-1:-1:-1;329:20:137;;-1:-1:-1;;;;;361:30:137;;358:50;;;404:1;401;394:12;358:50;441:4;433:6;429:17;417:29;;493:3;486:4;477:6;469;465:19;461:30;458:39;455:59;;;510:1;507;500:12;455:59;173:347;;;;;:::o;525:131::-;-1:-1:-1;;;;;600:31:137;;590:42;;580:70;;646:1;643;636:12;661:1049;805:6;813;821;829;837;845;853;906:3;894:9;885:7;881:23;877:33;874:53;;;923:1;920;913:12;874:53;946;991:7;980:9;946:53;:::i;:::-;936:63;;1046:2;1035:9;1031:18;1018:32;1008:42;;1101:3;1090:9;1086:19;1073:33;-1:-1:-1;;;;;1166:2:137;1158:6;1155:14;1152:34;;;1182:1;1179;1172:12;1152:34;1221:58;1271:7;1262:6;1251:9;1247:22;1221:58;:::i;:::-;1298:8;;-1:-1:-1;1195:84:137;-1:-1:-1;1383:3:137;1368:19;;1355:33;;-1:-1:-1;1397:31:137;1355:33;1397:31;:::i;:::-;1447:5;;-1:-1:-1;1505:3:137;1490:19;;1477:33;;1522:16;;;1519:36;;;1551:1;1548;1541:12;1519:36;;1590:60;1642:7;1631:8;1620:9;1616:24;1590:60;:::i;:::-;661:1049;;;;-1:-1:-1;661:1049:137;;-1:-1:-1;661:1049:137;;;;1564:86;;-1:-1:-1;;;661:1049:137:o;2019:163::-;2086:20;;2146:10;2135:22;;2125:33;;2115:61;;2172:1;2169;2162:12;2115:61;2019:163;;;:::o;2187:252::-;2254:6;2262;2315:2;2303:9;2294:7;2290:23;2286:32;2283:52;;;2331:1;2328;2321:12;2283:52;2354:28;2372:9;2354:28;:::i;:::-;2344:38;2429:2;2414:18;;;;2401:32;;-1:-1:-1;;;2187:252:137:o;2682:250::-;2767:1;2777:113;2791:6;2788:1;2785:13;2777:113;;;2867:11;;;2861:18;2848:11;;;2841:39;2813:2;2806:10;2777:113;;;-1:-1:-1;;2924:1:137;2906:16;;2899:27;2682:250::o;2937:271::-;2979:3;3017:5;3011:12;3044:6;3039:3;3032:19;3060:76;3129:6;3122:4;3117:3;3113:14;3106:4;3099:5;3095:16;3060:76;:::i;:::-;3190:2;3169:15;-1:-1:-1;;3165:29:137;3156:39;;;;3197:4;3152:50;;2937:271;-1:-1:-1;;2937:271:137:o;3213:220::-;3362:2;3351:9;3344:21;3325:4;3382:45;3423:2;3412:9;3408:18;3400:6;3382:45;:::i;3643:671::-;3758:6;3766;3774;3782;3835:3;3823:9;3814:7;3810:23;3806:33;3803:53;;;3852:1;3849;3842:12;3803:53;3875;3920:7;3909:9;3875:53;:::i;:::-;3865:63;;3979:2;3968:9;3964:18;3951:32;-1:-1:-1;;;;;3998:6:137;3995:30;3992:50;;;4038:1;4035;4028:12;3992:50;4077:58;4127:7;4118:6;4107:9;4103:22;4077:58;:::i;:::-;4154:8;;-1:-1:-1;4051:84:137;-1:-1:-1;;4239:3:137;4224:19;;4211:33;4253:31;4211:33;4253:31;:::i;:::-;3643:671;;;;-1:-1:-1;3643:671:137;;-1:-1:-1;;3643:671:137:o;4719:127::-;4780:10;4775:3;4771:20;4768:1;4761:31;4811:4;4808:1;4801:15;4835:4;4832:1;4825:15;4851:632;4916:5;-1:-1:-1;;;;;4987:2:137;4979:6;4976:14;4973:40;;;4993:18;;:::i;:::-;5068:2;5062:9;5036:2;5122:15;;-1:-1:-1;;5118:24:137;;;5144:2;5114:33;5110:42;5098:55;;;5168:18;;;5188:22;;;5165:46;5162:72;;;5214:18;;:::i;:::-;5254:10;5250:2;5243:22;5283:6;5274:15;;5313:6;5305;5298:22;5353:3;5344:6;5339:3;5335:16;5332:25;5329:45;;;5370:1;5367;5360:12;5329:45;5420:6;5415:3;5408:4;5400:6;5396:17;5383:44;5475:1;5468:4;5459:6;5451;5447:19;5443:30;5436:41;;;;4851:632;;;;;:::o;5488:222::-;5531:5;5584:3;5577:4;5569:6;5565:17;5561:27;5551:55;;5602:1;5599;5592:12;5551:55;5624:80;5700:3;5691:6;5678:20;5671:4;5663:6;5659:17;5624:80;:::i;5715:771::-;5821:6;5829;5837;5845;5853;5906:3;5894:9;5885:7;5881:23;5877:33;5874:53;;;5923:1;5920;5913:12;5874:53;5946:28;5964:9;5946:28;:::i;:::-;5936:38;;6025:2;6014:9;6010:18;5997:32;-1:-1:-1;;;;;6089:2:137;6081:6;6078:14;6075:34;;;6105:1;6102;6095:12;6075:34;6128:50;6170:7;6161:6;6150:9;6146:22;6128:50;:::i;:::-;6118:60;;6231:2;6220:9;6216:18;6203:32;6187:48;;6260:2;6250:8;6247:16;6244:36;;;6276:1;6273;6266:12;6244:36;;6315:60;6367:7;6356:8;6345:9;6341:24;6315:60;:::i;:::-;5715:771;;;;-1:-1:-1;6394:8:137;6476:2;6461:18;6448:32;;5715:771;-1:-1:-1;;;;5715:771:137:o;6649:471::-;6811:4;6853:3;6842:9;6838:19;6830:27;;6890:6;6884:13;6873:9;6866:32;-1:-1:-1;;;;;6958:4:137;6950:6;6946:17;6940:24;6936:49;6929:4;6918:9;6914:20;6907:79;7033:4;7025:6;7021:17;7015:24;7048:66;7108:4;7097:9;7093:20;7079:12;6569;;6557:25;;6631:4;6620:16;;;6614:23;6598:14;;6591:47;6491:153;7048:66;;6649:471;;;;:::o;7125:184::-;7183:6;7236:2;7224:9;7215:7;7211:23;7207:32;7204:52;;;7252:1;7249;7242:12;7204:52;7275:28;7293:9;7275:28;:::i;7496:247::-;7555:6;7608:2;7596:9;7587:7;7583:23;7579:32;7576:52;;;7624:1;7621;7614:12;7576:52;7663:9;7650:23;7682:31;7707:5;7682:31;:::i;7748:118::-;7834:5;7827:13;7820:21;7813:5;7810:32;7800:60;;7856:1;7853;7846:12;7871:873;7972:6;7980;7988;7996;8049:3;8037:9;8028:7;8024:23;8020:33;8017:53;;;8066:1;8063;8056:12;8017:53;8089:28;8107:9;8089:28;:::i;:::-;8079:38;;8168:2;8157:9;8153:18;8140:32;-1:-1:-1;;;;;8232:2:137;8224:6;8221:14;8218:34;;;8248:1;8245;8238:12;8218:34;8271:50;8313:7;8304:6;8293:9;8289:22;8271:50;:::i;:::-;8261:60;;8374:2;8363:9;8359:18;8346:32;8330:48;;8403:2;8393:8;8390:16;8387:36;;;8419:1;8416;8409:12;8387:36;-1:-1:-1;8442:24:137;;8497:4;8489:13;;8485:27;-1:-1:-1;8475:55:137;;8526:1;8523;8516:12;8475:55;8549:74;8615:7;8610:2;8597:16;8592:2;8588;8584:11;8549:74;:::i;:::-;8539:84;;;8673:2;8662:9;8658:18;8645:32;8686:28;8708:5;8686:28;:::i;8749:263::-;6569:12;;6557:25;;6631:4;6620:16;;;6614:23;6598:14;;;6591:47;8945:2;8930:18;;8957:49;6491:153;9017:237;9103:6;9156:2;9144:9;9135:7;9131:23;9127:32;9124:52;;;9172:1;9169;9162:12;9124:52;9195:53;9240:7;9229:9;9195:53;:::i;9527:380::-;9606:1;9602:12;;;;9649;;;9670:61;;9724:4;9716:6;9712:17;9702:27;;9670:61;9777:2;9769:6;9766:14;9746:18;9743:38;9740:161;;9823:10;9818:3;9814:20;9811:1;9804:31;9858:4;9855:1;9848:15;9886:4;9883:1;9876:15;10109:322;10178:6;10231:2;10219:9;10210:7;10206:23;10202:32;10199:52;;;10247:1;10244;10237:12;10199:52;10287:9;10274:23;-1:-1:-1;;;;;10312:6:137;10309:30;10306:50;;;10352:1;10349;10342:12;10306:50;10375;10417:7;10408:6;10397:9;10393:22;10375:50;:::i;:::-;10365:60;10109:322;-1:-1:-1;;;;10109:322:137:o;10562:518::-;10664:2;10659:3;10656:11;10653:421;;;10700:5;10697:1;10690:16;10744:4;10741:1;10731:18;10814:2;10802:10;10798:19;10795:1;10791:27;10785:4;10781:38;10850:4;10838:10;10835:20;10832:47;;;-1:-1:-1;10873:4:137;10832:47;10928:2;10923:3;10919:12;10916:1;10912:20;10906:4;10902:31;10892:41;;10983:81;11001:2;10994:5;10991:13;10983:81;;;11060:1;11046:16;;11027:1;11016:13;10983:81;;11256:1345;11382:3;11376:10;-1:-1:-1;;;;;11401:6:137;11398:30;11395:56;;;11431:18;;:::i;:::-;11460:97;11550:6;11510:38;11542:4;11536:11;11510:38;:::i;:::-;11504:4;11460:97;:::i;:::-;11612:4;;11669:2;11658:14;;11686:1;11681:663;;;;12388:1;12405:6;12402:89;;;-1:-1:-1;12457:19:137;;;12451:26;12402:89;-1:-1:-1;;11213:1:137;11209:11;;;11205:24;11201:29;11191:40;11237:1;11233:11;;;11188:57;12504:81;;11651:944;;11681:663;10509:1;10502:14;;;10546:4;10533:18;;-1:-1:-1;;11717:20:137;;;11835:236;11849:7;11846:1;11843:14;11835:236;;;11938:19;;;11932:26;11917:42;;12030:27;;;;11998:1;11986:14;;;;11865:19;;11835:236;;;11839:3;12099:6;12090:7;12087:19;12084:201;;;12160:19;;;12154:26;-1:-1:-1;;12243:1:137;12239:14;;;12255:3;12235:24;12231:37;12227:42;12212:58;12197:74;;12084:201;;;12331:1;12322:6;12319:1;12315:14;12311:22;12305:4;12298:36;11651:944;;;;;11256:1345;;:::o;12606:893::-;12831:2;12820:9;12813:21;12889:10;12880:6;12874:13;12870:30;12865:2;12854:9;12850:18;12843:58;12955:4;12947:6;12943:17;12937:24;12932:2;12921:9;12917:18;12910:52;12794:4;13009:2;13001:6;12997:15;12991:22;13050:4;13044:3;13033:9;13029:19;13022:33;13078:52;13125:3;13114:9;13110:19;13096:12;13078:52;:::i;:::-;13064:66;;13179:2;13171:6;13167:15;13161:22;13253:2;13249:7;13237:9;13229:6;13225:22;13221:36;13214:4;13203:9;13199:20;13192:66;13281:41;13315:6;13299:14;13281:41;:::i;:::-;13391:3;13379:16;;;;13373:23;13366:31;13359:39;13353:3;13338:19;;13331:68;-1:-1:-1;;;;;;;;13460:32:137;;;;13453:4;13438:20;;;13431:62;13267:55;12606:893::o;13504:478::-;13574:5;13622:4;13610:9;13605:3;13601:19;13597:30;13594:50;;;13640:1;13637;13630:12;13594:50;13673:4;13667:11;13717:4;13709:6;13705:17;13788:6;13776:10;13773:22;-1:-1:-1;;;;;13740:10:137;13737:34;13734:62;13731:88;;;13799:18;;:::i;:::-;13835:4;13828:24;13900:16;;13885:32;;13971:2;13956:18;;;13950:25;13933:15;;;13926:50;;;;-1:-1:-1;13870:6:137;13504:478;-1:-1:-1;13504:478:137:o;13987:728::-;14092:6;14145:3;14133:9;14124:7;14120:23;14116:33;14113:53;;;14162:1;14159;14152:12;14113:53;14195:2;14189:9;14237:4;14229:6;14225:17;-1:-1:-1;;;;;14329:6:137;14317:10;14314:22;14309:2;14297:10;14294:18;14291:46;14288:72;;;14340:18;;:::i;:::-;14380:10;14376:2;14369:22;14421:9;14415:16;14407:6;14400:32;14475:2;14464:9;14460:18;14454:25;14441:38;;14519:2;14512:5;14508:14;14501:5;14498:25;14488:53;;14537:1;14534;14527:12;14488:53;-1:-1:-1;14569:2:137;14557:15;;14550:30;14613:70;14675:7;14670:2;14655:18;;14613:70;:::i;:::-;14608:2;14596:15;;14589:95;14600:6;13987:728;-1:-1:-1;;;13987:728:137:o;14720:260::-;14821:6;14874:2;14862:9;14853:7;14849:23;14845:32;14842:52;;;14890:1;14887;14880:12;14842:52;14913:61;14966:7;14955:9;14913:61;:::i;15167:251::-;15237:6;15290:2;15278:9;15269:7;15265:23;15261:32;15258:52;;;15306:1;15303;15296:12;15258:52;15338:9;15332:16;15357:31;15382:5;15357:31;:::i;15803:245::-;15870:6;15923:2;15911:9;15902:7;15898:23;15894:32;15891:52;;;15939:1;15936;15929:12;15891:52;15971:9;15965:16;15990:28;16012:5;15990:28;:::i;16053:287::-;16182:3;16220:6;16214:13;16236:66;16295:6;16290:3;16283:4;16275:6;16271:17;16236:66;:::i;:::-;16318:16;;;;;16053:287;-1:-1:-1;;16053:287:137:o","linkReferences":{},"immutableReferences":{"60":[{"start":339,"length":32},{"start":823,"length":32},{"start":1377,"length":32},{"start":2006,"length":32},{"start":2229,"length":32},{"start":2472,"length":32},{"start":2653,"length":32}]}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","data()":"73d4a13a","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","quote(uint32,string,bytes,bool)":"f77e5dd3","renounceOwnership()":"715018a6","send(uint32,string,bytes,uint256)":"b4ab5dd1","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"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\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\"