{"abi":[{"type":"constructor","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"EMPTY_PAYLOAD_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NIL_PAYLOAD_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blockedLibrary","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clear","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"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"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"composeQueue","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"messageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibrary","inputs":[{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibraryTimeout","inputs":[{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultSendLibrary","inputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"delegates","inputs":[{"name":"oapp","type":"address","internalType":"address"}],"outputs":[{"name":"delegate","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"isDefault","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRegisteredLibraries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSendContext","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"inboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"inboundPayloadHash","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"inboundNonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"payloadHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initializable","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":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDefaultSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredLibrary","inputs":[{"name":"lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSendingMessage","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_actualReceiveLib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lazyInboundNonce","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzComposeAlert","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_gas","type":"uint256","internalType":"uint256"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"},{"name":"_reason","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"_receiver","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAlert","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":"_receiver","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_gas","type":"uint256","internalType":"uint256"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"},{"name":"_reason","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lzToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextGuid","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nilify","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outboundNonce","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"receiveLibraryTimeout","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"recoverToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","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":"sendCompose","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLzToken","inputs":[{"name":"_lzToken","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibraryTimeout","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSendLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"skip","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifiable","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":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verify","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":"_receiver","type":"address","internalType":"address"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComposeDelivered","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComposeSent","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibraryTimeoutSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DefaultSendLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateSet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"delegate","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"InboundNonceSkipped","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"LibraryRegistered","inputs":[{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LzComposeAlert","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzReceiveAlert","inputs":[{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"tuple","indexed":false,"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","indexed":false,"internalType":"bytes32"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzTokenSet","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketBurnt","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketDelivered","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketNilified","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketSent","inputs":[{"name":"encodedPayload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"options","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sendLibrary","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketVerified","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ReceiveLibrarySet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibraryTimeoutSet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"timeout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SendLibrarySet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"LZ_AlreadyRegistered","inputs":[]},{"type":"error","name":"LZ_ComposeExists","inputs":[]},{"type":"error","name":"LZ_ComposeNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"LZ_DefaultReceiveLibUnavailable","inputs":[]},{"type":"error","name":"LZ_DefaultSendLibUnavailable","inputs":[]},{"type":"error","name":"LZ_InsufficientFee","inputs":[{"name":"requiredNative","type":"uint256","internalType":"uint256"},{"name":"suppliedNative","type":"uint256","internalType":"uint256"},{"name":"requiredLzToken","type":"uint256","internalType":"uint256"},{"name":"suppliedLzToken","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_InvalidExpiry","inputs":[]},{"type":"error","name":"LZ_InvalidNonce","inputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"LZ_InvalidPayloadHash","inputs":[]},{"type":"error","name":"LZ_InvalidReceiveLibrary","inputs":[]},{"type":"error","name":"LZ_LzTokenUnavailable","inputs":[]},{"type":"error","name":"LZ_OnlyNonDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlyReceiveLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlySendLib","inputs":[]},{"type":"error","name":"LZ_PathNotInitializable","inputs":[]},{"type":"error","name":"LZ_PathNotVerifiable","inputs":[]},{"type":"error","name":"LZ_PayloadHashNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"LZ_SameValue","inputs":[]},{"type":"error","name":"LZ_SendReentrancy","inputs":[]},{"type":"error","name":"LZ_Unauthorized","inputs":[]},{"type":"error","name":"LZ_UnsupportedEid","inputs":[]},{"type":"error","name":"LZ_UnsupportedInterface","inputs":[]},{"type":"error","name":"LZ_ZeroLzTokenFee","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":"0x60c06040526001600d5534801562000015575f80fd5b50604051620052f6380380620052f68339810160408190526200003891620002c2565b81816001600160a01b0381166200006957604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6200007481620000c8565b5063ffffffff166080526040516200008c90620002b4565b604051809103905ff080158015620000a6573d5f803e3d5ffd5b506001600160a01b031660a0819052620000c09062000117565b505062000338565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200012162000284565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156200016b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000191919062000310565b620001af5760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff1615620001e95760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381165f818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b5f546001600160a01b03163314620002b25760405163118cdaa760e01b815233600482015260240162000060565b565b6101d5806200512183390190565b5f8060408385031215620002d4575f80fd5b825163ffffffff81168114620002e8575f80fd5b60208401519092506001600160a01b038116811462000305575f80fd5b809150509250929050565b5f6020828403121562000321575f80fd5b8151801515811462000331575f80fd5b9392505050565b60805160a051614da46200037d5f395f61075601525f8181610515015281816126d901528181612eb101528181612f170152818161347701526134dd0152614da45ff3fe608060405260043610610341575f3560e01c80639132e5c3116101bd578063c9fc7bcd116100f2578063ddc28c5811610092578063e8964e811161006d578063e8964e8114610b42578063ef667aa114610b61578063f2fde38b14610baa578063f64be4c714610bc9575f80fd5b8063ddc28c5814610ae5578063e1758bd814610b11578063e4fe1d9414610b23575f80fd5b8063d4b4ec8f116100cd578063d4b4ec8f14610a2f578063d70b890214610a4e578063dc706a6214610a6d578063dc93c8a214610a9b575f80fd5b8063c9fc7bcd146109b8578063ca5eb5e1146109fd578063cb5026b914610a1c575f80fd5b8063a7229fd91161015d578063aafea31211610138578063aafea3121461093c578063b96a277f1461095b578063c28e0eed1461097a578063c9a54a9914610999575f80fd5b8063a7229fd9146108df578063a825d747146108fe578063aafe5e071461091d575f80fd5b80639c6d7340116101985780639c6d73401461083d5780639d7f977514610882578063a0dd43fc146108a1578063a718531b146108c0575f80fd5b80639132e5c3146107ea57806391d20fa11461080b5780639535ff301461081e575f80fd5b80635b17bb70116102935780636f50a8031161023357806379624ca91161020e57806379624ca9146107785780637cb5901214610790578063861e1ca5146107af5780638da5cb5b146107ce575f80fd5b80636f50a803146106fd578063715018a6146107315780637331809114610745575f80fd5b80636a14d7151161026e5780636a14d715146106435780636bf73fa3146106625780636dbd9f90146106815780636e83f5bb146106a0575f80fd5b80635b17bb70146105985780636750cd4c146105f5578063697fe6b614610624575f80fd5b80632baf0be7116102fe578063402f8468116102d9578063402f8468146104a757806340f80683146104e5578063416ecebf14610504578063587cde1e1461054c575f80fd5b80632baf0be7146104215780632e80fbf31461044357806335d330b014610462575f80fd5b80630c0c389e1461034557806314f651a91461035a578063183c834f146103975780632637a450146103b65780632a56c1b0146103d65780632b3197b9146103f5575b5f80fd5b610358610353366004613d07565b610bfd565b005b348015610365575f80fd5b5061036e610cf7565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103a2575f80fd5b506103586103b1366004613dae565b610d27565b6103c96103c4366004613df6565b610fc4565b60405161038e9190613e44565b3480156103e1575f80fd5b506103586103f0366004613e85565b6110e7565b348015610400575f80fd5b5061041461040f366004613eef565b611186565b60405161038e9190613f8d565b34801561042c575f80fd5b506104355f1981565b60405190815260200161038e565b34801561044e575f80fd5b5061035861045d366004613fb5565b61124c565b34801561046d575f80fd5b5061043561047c366004614017565b600c60209081525f948552604080862082529385528385208152918452828420909152825290205481565b3480156104b2575f80fd5b506104c66104c1366004614056565b6113b7565b604080516001600160a01b03909316835290151560208301520161038e565b3480156104f0575f80fd5b506103586104ff366004613fb5565b611433565b34801561050f575f80fd5b506105377f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161038e565b348015610557575f80fd5b5061058061056636600461407e565b600f6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161038e565b3480156105a3575f80fd5b506105dd6105b2366004614097565b600160209081525f93845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161038e565b348015610600575f80fd5b5061061461060f3660046140d0565b611596565b604051901515815260200161038e565b34801561062f575f80fd5b5061035861063e3660046140e9565b6115e4565b34801561064e575f80fd5b5061035861065d366004613dae565b611659565b34801561066d575f80fd5b5061035861067c3660046141da565b611a2c565b34801561068c575f80fd5b5061035861069b3660046142b3565b611a96565b3480156106ab575f80fd5b506106de6106ba3660046140d0565b600b6020525f9081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161038e565b348015610708575f80fd5b506105806107173660046140d0565b600a6020525f90815260409020546001600160a01b031681565b34801561073c575f80fd5b50610358611b32565b348015610750575f80fd5b506105807f000000000000000000000000000000000000000000000000000000000000000081565b348015610783575f80fd5b50600d5460011415610614565b34801561079b575f80fd5b506103586107aa36600461433c565b611b45565b3480156107ba575f80fd5b506106146107c9366004614388565b611c2f565b3480156107d9575f80fd5b505f546001600160a01b0316610580565b3480156107f5575f80fd5b506107fe611c99565b60405161038e91906143b1565b6103586108193660046143fd565b611cf9565b348015610829575f80fd5b506103586108383660046144a0565b611e83565b348015610848575f80fd5b506105dd610857366004614097565b600360209081525f93845260408085208252928452828420905282529020546001600160401b031681565b34801561088d575f80fd5b5061061461089c3660046144a0565b6120e0565b3480156108ac575f80fd5b506105dd6108bb366004614097565b6121b4565b3480156108cb575f80fd5b506103586108da3660046144e0565b612213565b3480156108ea575f80fd5b506103586108f9366004614509565b612529565b348015610909575f80fd5b50610358610918366004614524565b612541565b348015610928575f80fd5b50610435610937366004614097565b61268a565b348015610947575f80fd5b5061035861095636600461455e565b612709565b348015610966575f80fd5b50610580610975366004614056565b61292b565b348015610985575f80fd5b5061035861099436600461407e565b612998565b3480156109a4575f80fd5b506106146109b3366004614388565b6129f5565b3480156109c3575f80fd5b506104356109d2366004614578565b600260209081525f948552604080862082529385528385208152918452828420909152825290205481565b348015610a08575f80fd5b50610358610a1736600461407e565b612a58565b348015610a27575f80fd5b506104355f81565b348015610a3a575f80fd5b50610358610a493660046144e0565b612ab7565b348015610a59575f80fd5b50610358610a68366004614578565b612cec565b348015610a78575f80fd5b50610614610a8736600461407e565b60056020525f908152604090205460ff1681565b348015610aa6575f80fd5b50610614610ab5366004614056565b6001600160a01b039182165f90815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610af0575f80fd5b50610b04610aff366004613df6565b612dda565b60405161038e91906145b7565b348015610b1c575f80fd5b505f610580565b348015610b2e575f80fd5b50600e54610580906001600160a01b031681565b348015610b4d575f80fd5b50610358610b5c36600461407e565b61303d565b348015610b6c575f80fd5b506106de610b7b366004614056565b600860209081525f9283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610bb5575f80fd5b50610358610bc436600461407e565b61319d565b348015610bd4575f80fd5b50610580610be33660046140d0565b60096020525f90815260409020546001600160a01b031681565b610c4c86610c0e60208a018a6140d0565b60208a0135610c2360608c0160408d016145ce565b898989604051602001610c38939291906145e7565b6040516020818303038152906040526131da565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610c87908b908a908a908a9033908b908b90600401614661565b5f604051808303818588803b158015610c9e575f80fd5b505af1158015610cb0573d5f803e3d5ffd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610ce69291906146b7565b60405180910390a150505050505050565b5f80610d06600d546001141590565b610d11575f80610d1f565b610d1f600d5460a081901c91565b915091509091565b6001600160a01b0382165f90815260056020526040902054829060ff16610d6157604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e01575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd291906146f1565b6002811115610de357610de36146dd565b03610e01576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610e9b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610e5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7e919061471c565b610e9b57604051630e476aa960e21b815260040160405180910390fd5b610ea488613391565b5f610eaf89896113b7565b9150508015610ed157604051633c075f7560e01b815260040160405180910390fd5b855f03610f17576001600160a01b0389165f90815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610f7c565b438611610f37576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b038981165f90815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051610fb19493929190614737565b60405180910390a1505050505050505050565b610fcc613c5b565b610fd960208401846140d0565b336001600d5414610ffd5760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561102b90860160808701614767565b80156110405750600e546001600160a01b0316155b1561105e57604051632d7b695560e11b815260040160405180910390fd5b5f8061106a33886133e1565b915091505f6110763490565b90505f61109161108c60a08b0160808c01614767565b613681565b90506110a284604001518383613719565b600e546040850151602001516110c4916001600160a01b03169083868c613767565b6040840151516110d69083858b613794565b50506001600d555095945050505050565b6110f085613391565b5f838383604051602001611106939291906145e7565b60408051601f1981840301815291905290506111448661112960208801886140d0565b602088013561113e60608a0160408b016145ce565b856131da565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111769291906146b7565b60405180910390a1505050505050565b6001600160a01b0383165f90815260056020526040902054606090849060ff166111c357604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf7906064015f60405180830381865afa15801561121b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112429190810190614810565b9695505050505050565b61125585613391565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146112c657604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b0390811690841611801590611311575080155b1561133a57604051630c09b63560e41b81526001600160401b03841660048201526024016112bd565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190205f199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb552929061117690879087908a9088908890614841565b6001600160a01b038083165f90815260076020908152604080832063ffffffff86168452909152812054909116908161142c5763ffffffff83165f908152600a60205260409020546001600160a01b031691508161142857604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b61143c85613391565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146114a857604051637182306f60e01b815260048101829052602481018390526044016112bd565b8015806114f157506001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561151a57604051630c09b63560e41b81526001600160401b03841660048201526024016112bd565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e9061117690879087908a9088908890614841565b63ffffffff81165f908152600960205260408120546001600160a01b0316158015906115de575063ffffffff82165f908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116439a9998979695949392919061487e565b60405180910390a4505050505050505050505050565b6001600160a01b0382165f90815260056020526040902054829060ff1615801561168b57506001600160a01b03811615155b156116a95760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b03811615611749575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061171a91906146f1565b600281111561172b5761172b6146dd565b03611749576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b038216156117e3576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156117a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c6919061471c565b6117e357604051630e476aa960e21b815260040160405180910390fd5b6117ec88613391565b6001600160a01b038089165f90815260076020908152604080832063ffffffff8c1684529091529020548116908716810361183a5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038981165f81815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a185156119b1576001600160a01b03811615806118dc57506001600160a01b038716155b156118fa57604051633c075f7560e01b815260040160405180910390fd5b5f6040518060400160405280836001600160a01b03168152602001884361192191906148fa565b90526001600160a01b038b81165f90815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928916119a3918d918d918791614737565b60405180910390a150611a21565b6001600160a01b0389165f90815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891610fb1918c918c91869190614737565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611a819a9998979695949392919061490d565b60405180910390a35050505050505050505050565b6001600160a01b0383165f90815260056020526040902054839060ff16611ad057604051631bc58ef360e11b815260040160405180910390fd5b611ad985613391565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b099088908790879060040161496b565b5f604051808303815f87803b158015611b20575f80fd5b505af1158015611a21573d5f803e3d5ffd5b611b3a6137be565b611b435f6137ea565b565b335f908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611b9a57604051630542086560e21b815260040160405180910390fd5b8181604051611baa929190614a59565b60408051918290038220335f818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611c20919088908890889088908890614a68565b60405180910390a15050505050565b6001600160a01b0381165f9081526001602090815260408220611c9291859185918590611c5e908501856140d0565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b0316613839565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611cef57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611cd1575b5050505050905090565b6001600160a01b038089165f908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611d439087908790614a59565b60405180910390209050808214611d77576040516335ca595f60e01b815260048101839052602481018290526044016112bd565b6001600160a01b03808b165f908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611de5908e908d908c908c9033908d908d90600401614ab1565b5f604051808303818588803b158015611dfc575f80fd5b505af1158015611e0e573d5f803e3d5ffd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611e6f94939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b0381165f90815260056020526040902054819060ff16158015611eb557506001600160a01b03811615155b15611ed35760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b03811615611f74576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4591906146f1565b6002811115611f5657611f566146dd565b03611f7457604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561200e576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015611fcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ff1919061471c565b61200e57604051630e476aa960e21b815260040160405180910390fd5b61201787613391565b6001600160a01b038781165f90815260066020908152604080832063ffffffff8b1684529091529020548187169116036120645760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038781165f81815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610ce6565b5f805f6120ed86866113b7565b91509150816001600160a01b0316846001600160a01b03160361211557600192505050611c92565b5f81612148576001600160a01b0387165f90815260086020908152604080832063ffffffff8a168452909152902061215d565b63ffffffff86165f908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156121975750438160200151115b156121a85760019350505050611c92565b505f9695505050505050565b6001600160a01b0383165f90815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6121fe858585846001016138ba565b1561220b576001016121ef565b949350505050565b61221b6137be565b6001600160a01b0382165f90815260056020526040902054829060ff1661225557604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b038116156122f5575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122c691906146f1565b60028111156122d7576122d76146dd565b036122f5576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b0382161561238f576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561234e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612372919061471c565b61238f57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87165f908152600a60205260409020546001600160a01b0390811690871681036123d15760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88165f818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156124bd5763ffffffff88165f908152600b6020526040902080546001600160a01b0319166001600160a01b03831617815561247687436148fa565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916124af918c918691614b03565b60405180910390a15061251f565b63ffffffff88165f908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f891612516918b918591614b03565b60405180910390a15b5050505050505050565b6125316137be565b61253c838383613906565b505050565b6125588261255260208601866140d0565b336120e0565b612575576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382165f908152600160209081526040822090829061259d908701876140d0565b63ffffffff16815260208082019290925260409081015f9081208784013582529092529020546001600160401b031690506125d9848483613839565b6125f65760405163751cb20f60e01b815260040160405180910390fd5b612601848483613929565b61261d5760405162bbf0e560e11b815260040160405180910390fd5b6126498361262e60208701876140d0565b60208701356126436060890160408a016145ce565b866139df565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161267c93929190614b2a565b60405180910390a150505050565b6001600160a01b0383165f90815260036020908152604080832063ffffffff86168452825280832084845290915281205481906126d1906001600160401b03166001614b52565b9050612700817f0000000000000000000000000000000000000000000000000000000000000000878787613a44565b95945050505050565b6127116137be565b6001600160a01b0381165f90815260056020526040902054819060ff1661274b57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b038116156127ec576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127bd91906146f1565b60028111156127ce576127ce6146dd565b036127ec57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b03821615612886576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612845573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612869919061471c565b61288657604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86165f908152600960205260409020546001600160a01b038087169116036128c65760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff86165f8181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f59101611176565b6001600160a01b038083165f90815260066020908152604080832063ffffffff8616845290915290205416806115de575063ffffffff81165f908152600960205260409020546001600160a01b0316806115de57604051636c1ccdb560e01b815260040160405180910390fd5b6129a06137be565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b0381165f9081526001602090815260408220611c9291859185918590612a24908501856140d0565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b0316613929565b335f818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d798398191016129ea565b6001600160a01b0382165f90815260056020526040902054829060ff16612af157604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612b91575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6291906146f1565b6002811115612b7357612b736146dd565b03612b91576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612c2b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c0e919061471c565b612c2b57604051630e476aa960e21b815260040160405180910390fd5b612c336137be565b845f03612c655763ffffffff87165f908152600b6020526040812080546001600160a01b031916815560010155612cb9565b438511612c85576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87165f908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610ce693929190614b03565b612cf584613391565b612d008484846121b4565b612d0b906001614b52565b6001600160401b0316816001600160401b031614612d4757604051630c09b63560e41b81526001600160401b03821660048201526024016112bd565b6001600160a01b0384165f81815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161267c565b604080518082019091525f8082526020820152612dfd60a0840160808501614767565b8015612e125750600e546001600160a01b0316155b15612e3057604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b0382165f9081526003602090815260408220908290612e58908701876140d0565b63ffffffff16815260208082019290925260409081015f908120878401358252909252902054612e92906001600160401b03166001614b52565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001865f016020810190612efc91906140d0565b63ffffffff16815260200186602001358152602001612f53847f0000000000000000000000000000000000000000000000000000000000000000888a5f016020810190612f4991906140d0565b8b60200135613a44565b8152602001612f656040880188614b72565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093909452509293509150612fb190508561097560208901896140d0565b90506001600160a01b03811663d80e9bd983612fd060608a018a614b72565b612fe060a08c0160808d01614767565b6040518563ffffffff1660e01b8152600401612fff9493929190614bb4565b6040805180830381865afa158015613019573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112429190614ca5565b6130456137be565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561308e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130b2919061471c565b6130cf5760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff16156131085760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381165f818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af591016129ea565b6131a56137be565b6001600160a01b0381166131ce57604051631e4fbdf760e01b81525f60048201526024016112bd565b6131d7816137ea565b50565b6001600160a01b0385165f90815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b039081169084168110156132c657600181015b846001600160401b0316816001600160401b03161161327a5761324a888888846138ba565b61327257604051630c09b63560e41b81526001600160401b03821660048201526024016112bd565b600101613225565b506001600160a01b0387165f90815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b0389165f90815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461333f57604051637182306f60e01b815260048101829052602481018490526044016112bd565b50506001600160a01b039095165f90815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b038216148015906133c357506001600160a01b038181165f908152600f6020526040902054163314155b156131d75760405163c4c5259360e01b815260040160405180910390fd5b6133e9613c5b565b5f80613458856133fc60208701876140d0565b6001600160a01b03919091165f90815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b03168152602001865f0160208101906134c291906140d0565b63ffffffff1681526020018660200135815260200161350f847f00000000000000000000000000000000000000000000000000000000000000008a8a5f016020810190612f4991906140d0565b81526020016135216040880188614b72565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250929350915061356d90508761097560208901896140d0565b90505f806001600160a01b038316634389e58f8561358e60608c018c614b72565b61359e60a08e0160808f01614767565b6040518563ffffffff1660e01b81526004016135bd9493929190614bb4565b5f604051808303815f875af11580156135d8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526135ff9190810190614cbf565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161363360608b018b614b72565b866040516136449493929190614d0a565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b5f811561371457600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156136ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136f29190614d49565b9050805f0361371457604051631775123760e01b815260040160405180910390fd5b919050565b825182108061372b5750808360200151115b1561253c5782516020840151604051634f3ec0d360e01b81526004810192909252602482018490526044820152606481018290526084016112bd565b831561377857613778858386613abc565b8284101561378d5761378d8582868603613abc565b5050505050565b83156137a4576137a48285613af7565b828410156137b8576137b881858503613af7565b50505050565b5f546001600160a01b03163314611b435760405163118cdaa760e01b81523360048201526024016112bd565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80826001600160401b0316118061220b5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d9061387b908790600401614d60565b602060405180830381865afa158015613896573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220b919061471c565b6001600160a01b0384165f90815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b03831661391e5761253c8282613af7565b61253c838383613abc565b5f6001600160401b03821661394460608601604087016145ce565b6001600160401b0316118061220b57506001600160a01b0383165f908152600260209081526040822090829061397c908801886140d0565b63ffffffff1663ffffffff1681526020019081526020015f205f866020013581526020019081526020015f205f8660400160208101906139bc91906145ce565b6001600160401b0316815260208101919091526040015f20541415949350505050565b806139fd576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b039094165f90815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b5f85856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613ae3576040516306b7a93160e41b815260040160405180910390fd5b61253c6001600160a01b0384168383613ba0565b6001600160a01b038216613b1e576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613b67576040519150601f19603f3d011682016040523d82523d5f602084013e613b6c565b606091505b505090508061253c57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016112bd565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b178152825161253c93879390925f9283929183919082885af180613c0e576040513d5f823e3d81fd5b50505f513d91508115613c25578060011415613c32565b6001600160a01b0384163b155b156137b857604051635274afe760e01b81526001600160a01b03851660048201526024016112bd565b60405180606001604052805f80191681526020015f6001600160401b03168152602001613c9960405180604001604052805f81526020015f81525090565b905290565b5f60608284031215613cae575f80fd5b50919050565b80356001600160a01b0381168114613714575f80fd5b5f8083601f840112613cda575f80fd5b5081356001600160401b03811115613cf0575f80fd5b60208301915083602082850101111561142c575f80fd5b5f805f805f805f60e0888a031215613d1d575f80fd5b613d278989613c9e565b9650613d3560608901613cb4565b95506080880135945060a08801356001600160401b0380821115613d57575f80fd5b613d638b838c01613cca565b909650945060c08a0135915080821115613d7b575f80fd5b50613d888a828b01613cca565b989b979a50959850939692959293505050565b803563ffffffff81168114613714575f80fd5b5f805f8060808587031215613dc1575f80fd5b613dca85613cb4565b9350613dd860208601613d9b565b9250613de660408601613cb4565b9396929550929360600135925050565b5f8060408385031215613e07575f80fd5b82356001600160401b03811115613e1c575f80fd5b830160a08186031215613e2d575f80fd5b9150613e3b60208401613cb4565b90509250929050565b5f608082019050825182526001600160401b0360208401511660208301526040830151613e7e604084018280518252602090810151910152565b5092915050565b5f805f805f60c08688031215613e99575f80fd5b613ea286613cb4565b9450613eb18760208801613c9e565b93506080860135925060a08601356001600160401b03811115613ed2575f80fd5b613ede88828901613cca565b969995985093965092949392505050565b5f805f8060808587031215613f02575f80fd5b613f0b85613cb4565b9350613f1960208601613cb4565b9250613f2760408601613d9b565b9150613f3560608601613d9b565b905092959194509250565b5f5b83811015613f5a578181015183820152602001613f42565b50505f910152565b5f8151808452613f79816020860160208601613f40565b601f01601f19169290920160200192915050565b602081525f611c926020830184613f62565b80356001600160401b0381168114613714575f80fd5b5f805f805f60a08688031215613fc9575f80fd5b613fd286613cb4565b9450613fe060208701613d9b565b935060408601359250613ff560608701613f9f565b949793965091946080013592915050565b803561ffff81168114613714575f80fd5b5f805f806080858703121561402a575f80fd5b61403385613cb4565b935061404160208601613cb4565b925060408501359150613f3560608601614006565b5f8060408385031215614067575f80fd5b61407083613cb4565b9150613e3b60208401613d9b565b5f6020828403121561408e575f80fd5b611c9282613cb4565b5f805f606084860312156140a9575f80fd5b6140b284613cb4565b92506140c060208501613d9b565b9150604084013590509250925092565b5f602082840312156140e0575f80fd5b611c9282613d9b565b5f805f805f805f805f805f806101208d8f031215614105575f80fd5b61410e8d613cb4565b9b5061411c60208e01613cb4565b9a5060408d0135995061413160608e01614006565b985060808d0135975060a08d013596506001600160401b0360c08e01351115614158575f80fd5b6141688e60c08f01358f01613cca565b90965094506001600160401b0360e08e01351115614184575f80fd5b6141948e60e08f01358f01613cca565b90945092506001600160401b036101008e013511156141b1575f80fd5b6141c28e6101008f01358f01613cca565b81935080925050509295989b509295989b509295989b565b5f805f805f805f805f805f6101408c8e0312156141f5575f80fd5b6141ff8d8d613c9e565b9a5061420d60608d01613cb4565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561423c575f80fd5b61424c8e60e08f01358f01613cca565b90975095506101008d0135811015614262575f80fd5b6142738e6101008f01358f01613cca565b90955093506101208d0135811015614289575f80fd5b5061429b8d6101208e01358e01613cca565b81935080925050509295989b509295989b9093969950565b5f805f80606085870312156142c6575f80fd5b6142cf85613cb4565b93506142dd60208601613cb4565b925060408501356001600160401b03808211156142f8575f80fd5b818701915087601f83011261430b575f80fd5b813581811115614319575f80fd5b8860208260051b850101111561432d575f80fd5b95989497505060200194505050565b5f805f805f60808688031215614350575f80fd5b61435986613cb4565b94506020860135935061436e60408701614006565b925060608601356001600160401b03811115613ed2575f80fd5b5f8060808385031215614399575f80fd5b6143a38484613c9e565b9150613e3b60608401613cb4565b602080825282518282018190525f9190848201906040850190845b818110156143f15783516001600160a01b0316835292840192918401916001016143cc565b50909695505050505050565b5f805f805f805f8060c0898b031215614414575f80fd5b61441d89613cb4565b975061442b60208a01613cb4565b96506040890135955061444060608a01614006565b945060808901356001600160401b038082111561445b575f80fd5b6144678c838d01613cca565b909650945060a08b013591508082111561447f575f80fd5b5061448c8b828c01613cca565b999c989b5096995094979396929594505050565b5f805f606084860312156144b2575f80fd5b6144bb84613cb4565b92506144c960208501613d9b565b91506144d760408501613cb4565b90509250925092565b5f805f606084860312156144f2575f80fd5b6144fb84613d9b565b92506140c060208501613cb4565b5f805f6060848603121561451b575f80fd5b6144fb84613cb4565b5f805f60a08486031215614536575f80fd5b6145408585613c9e565b925061454e60608501613cb4565b9150608084013590509250925092565b5f806040838503121561456f575f80fd5b613e2d83613d9b565b5f805f806080858703121561458b575f80fd5b61459485613cb4565b93506145a260208601613d9b565b925060408501359150613f3560608601613f9f565b8151815260208083015190820152604081016115de565b5f602082840312156145de575f80fd5b611c9282613f9f565b838152818360208301375f910160200190815292915050565b63ffffffff61460e82613d9b565b168252602081013560208301526001600160401b0361462f60408301613f9f565b1660408301525050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b61466b8189614600565b86606082015260e060808201525f61468760e083018789614639565b6001600160a01b03861660a084015282810360c08401526146a9818587614639565b9a9950505050505050505050565b608081016146c58285614600565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215614701575f80fd5b815160038110611c92575f80fd5b80151581146131d7575f80fd5b5f6020828403121561472c575f80fd5b8151611c928161470f565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b5f60208284031215614777575f80fd5b8135611c928161470f565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126147a5575f80fd5b81516001600160401b03808211156147bf576147bf614782565b604051601f8301601f19908116603f011681019082821181831017156147e7576147e7614782565b816040528381528660208588010111156147ff575f80fd5b611242846020830160208901613f40565b5f60208284031215614820575f80fd5b81516001600160401b03811115614835575f80fd5b61220b84828501614796565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201525f6148ad60e08301888a614639565b82810360a08401526148c0818789614639565b905082810360c08401526148d5818587614639565b9d9c50505050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156115de576115de6148e6565b5f61012061491b838e614600565b8b60608401528a60808401528960a08401528060c0840152614940818401898b614639565b905082810360e0840152614955818789614639565b90508281036101008401526148d5818587614639565b6001600160a01b0384168152604060208083018290528282018490525f9190606090818501600587901b8601830188865b89811015614a4957888303605f190184528135368c9003605e190181126149c1575f80fd5b8b0163ffffffff806149d283613d9b565b168552806149e1888401613d9b565b16878601525087810135601e198236030181126149fc575f80fd5b0185810190356001600160401b03811115614a15575f80fd5b803603821315614a23575f80fd5b8789860152614a358886018284614639565b95870195945050509084019060010161499c565b50909a9950505050505050505050565b818382375f9101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a0608082018190525f90614aa59083018486614639565b98975050505050505050565b5f60018060a01b03808a16835288602084015260a06040840152614ad960a08401888a614639565b81871660608501528381036080850152614af4818688614639565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614b388286614600565b6001600160a01b0393909316606082015260800152919050565b6001600160401b03818116838216019080821115613e7e57613e7e6148e6565b5f808335601e19843603018112614b87575f80fd5b8301803591506001600160401b03821115614ba0575f80fd5b60200191503681900382131561142c575f80fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a08301528501515f90614c0260c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614c33610140840182613f62565b90508281036020840152614c48818688614639565b915050612700604083018415159052565b5f60408284031215614c69575f80fd5b604051604081018181106001600160401b0382111715614c8b57614c8b614782565b604052825181526020928301519281019290925250919050565b5f60408284031215614cb5575f80fd5b611c928383614c59565b5f8060608385031215614cd0575f80fd5b614cda8484614c59565b915060408301516001600160401b03811115614cf4575f80fd5b614d0085828601614796565b9150509250929050565b606081525f614d1c6060830187613f62565b8281036020840152614d2f818688614639565b91505060018060a01b038316604083015295945050505050565b5f60208284031215614d59575f80fd5b5051919050565b606081016115de828461460056fea2646970667358221220cb6f856c0194746f9f15e0dc6a44c4e61e761fe512e0655132cf785bae0ea0b964736f6c63430008160033608060405234801561000f575f80fd5b506101b88061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a7146100635780631881d94d1461008b57806354fd4d501461009a5780636750cd4c146100c1575b604051632657b6c360e01b815260040160405180910390fd5b61007661007136600461010b565b6100d5565b60405190151581526020015b60405180910390f35b60026040516100829190610139565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610082565b6100766100cf36600461015f565b50600190565b5f6001600160e01b031982166325fc096160e21b148061010557506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6020828403121561011b575f80fd5b81356001600160e01b031981168114610132575f80fd5b9392505050565b602081016003831061015957634e487b7160e01b5f52602160045260245ffd5b91905290565b5f6020828403121561016f575f80fd5b813563ffffffff81168114610132575f80fdfea2646970667358221220b34082d20f52f1b7448aeb40e722c6e892de0765235e888c77e5666c30330e5764736f6c63430008160033","sourceMap":"2770:15372:64:-:0;;;527:1:32;534:42;;3175:82:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3249:4;3224:6;-1:-1:-1;;;;;1273:26:100;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:100;;1350:1;1322:31;;;620:51:122;593:18;;1322:31:100;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1064:10:30;;;;1634:23:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1609:49:29;;;;;1668:31;;:15;:31::i;:::-;3175:82:64;;2770:15372;;2912:187:100;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:100;;;-1:-1:-1;;;;;;3020:17:100;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;6264:511:29:-;1531:13:100;:11;:13::i;:::-;6376:62:29::1;::::0;-1:-1:-1;;;6376:62:29;;-1:-1:-1;;;6376:62:29::1;::::0;::::1;826:52:122::0;-1:-1:-1;;;;;6376:31:29;::::1;::::0;::::1;::::0;799:18:122;;6376:62:29::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;-1:-1:-1::0;;;6447:32:29::1;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:29;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;-1:-1:-1::0;;;6568:29:29::1;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:29;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;-1:-1:-1;;6657:32:29::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6699:30:29::1;::::0;::::1;::::0;;6745:23;;620:51:122;;;6745:23:29::1;::::0;593:18:122;6745:23:29::1;;;;;;;6264:511:::0;:::o;1796:162:100:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:100;735:10:110;1855:23:100;1851:101;;1901:40;;-1:-1:-1;;;1901:40:100;;735:10:110;1901:40:100;;;620:51:122;593:18;;1901:40:100;474:203:122;1851:101:100;1796:162::o;2770:15372:64:-;;;;;;;;:::o;14:455:122:-;92:6;100;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;201:9;195:16;251:10;244:5;240:22;233:5;230:33;220:61;;277:1;274;267:12;220:61;350:2;335:18;;329:25;300:5;;-1:-1:-1;;;;;;385:33:122;;373:46;;363:74;;433:1;430;423:12;363:74;456:7;446:17;;;14:455;;;;;:::o;889:277::-;956:6;1009:2;997:9;988:7;984:23;980:32;977:52;;;1025:1;1022;1015:12;977:52;1057:9;1051:16;1110:5;1103:13;1096:21;1089:5;1086:32;1076:60;;1132:1;1129;1122:12;1076:60;1155:5;889:277;-1:-1:-1;;;889:277:122:o;:::-;2770:15372:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610341575f3560e01c80639132e5c3116101bd578063c9fc7bcd116100f2578063ddc28c5811610092578063e8964e811161006d578063e8964e8114610b42578063ef667aa114610b61578063f2fde38b14610baa578063f64be4c714610bc9575f80fd5b8063ddc28c5814610ae5578063e1758bd814610b11578063e4fe1d9414610b23575f80fd5b8063d4b4ec8f116100cd578063d4b4ec8f14610a2f578063d70b890214610a4e578063dc706a6214610a6d578063dc93c8a214610a9b575f80fd5b8063c9fc7bcd146109b8578063ca5eb5e1146109fd578063cb5026b914610a1c575f80fd5b8063a7229fd91161015d578063aafea31211610138578063aafea3121461093c578063b96a277f1461095b578063c28e0eed1461097a578063c9a54a9914610999575f80fd5b8063a7229fd9146108df578063a825d747146108fe578063aafe5e071461091d575f80fd5b80639c6d7340116101985780639c6d73401461083d5780639d7f977514610882578063a0dd43fc146108a1578063a718531b146108c0575f80fd5b80639132e5c3146107ea57806391d20fa11461080b5780639535ff301461081e575f80fd5b80635b17bb70116102935780636f50a8031161023357806379624ca91161020e57806379624ca9146107785780637cb5901214610790578063861e1ca5146107af5780638da5cb5b146107ce575f80fd5b80636f50a803146106fd578063715018a6146107315780637331809114610745575f80fd5b80636a14d7151161026e5780636a14d715146106435780636bf73fa3146106625780636dbd9f90146106815780636e83f5bb146106a0575f80fd5b80635b17bb70146105985780636750cd4c146105f5578063697fe6b614610624575f80fd5b80632baf0be7116102fe578063402f8468116102d9578063402f8468146104a757806340f80683146104e5578063416ecebf14610504578063587cde1e1461054c575f80fd5b80632baf0be7146104215780632e80fbf31461044357806335d330b014610462575f80fd5b80630c0c389e1461034557806314f651a91461035a578063183c834f146103975780632637a450146103b65780632a56c1b0146103d65780632b3197b9146103f5575b5f80fd5b610358610353366004613d07565b610bfd565b005b348015610365575f80fd5b5061036e610cf7565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103a2575f80fd5b506103586103b1366004613dae565b610d27565b6103c96103c4366004613df6565b610fc4565b60405161038e9190613e44565b3480156103e1575f80fd5b506103586103f0366004613e85565b6110e7565b348015610400575f80fd5b5061041461040f366004613eef565b611186565b60405161038e9190613f8d565b34801561042c575f80fd5b506104355f1981565b60405190815260200161038e565b34801561044e575f80fd5b5061035861045d366004613fb5565b61124c565b34801561046d575f80fd5b5061043561047c366004614017565b600c60209081525f948552604080862082529385528385208152918452828420909152825290205481565b3480156104b2575f80fd5b506104c66104c1366004614056565b6113b7565b604080516001600160a01b03909316835290151560208301520161038e565b3480156104f0575f80fd5b506103586104ff366004613fb5565b611433565b34801561050f575f80fd5b506105377f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161038e565b348015610557575f80fd5b5061058061056636600461407e565b600f6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161038e565b3480156105a3575f80fd5b506105dd6105b2366004614097565b600160209081525f93845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161038e565b348015610600575f80fd5b5061061461060f3660046140d0565b611596565b604051901515815260200161038e565b34801561062f575f80fd5b5061035861063e3660046140e9565b6115e4565b34801561064e575f80fd5b5061035861065d366004613dae565b611659565b34801561066d575f80fd5b5061035861067c3660046141da565b611a2c565b34801561068c575f80fd5b5061035861069b3660046142b3565b611a96565b3480156106ab575f80fd5b506106de6106ba3660046140d0565b600b6020525f9081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161038e565b348015610708575f80fd5b506105806107173660046140d0565b600a6020525f90815260409020546001600160a01b031681565b34801561073c575f80fd5b50610358611b32565b348015610750575f80fd5b506105807f000000000000000000000000000000000000000000000000000000000000000081565b348015610783575f80fd5b50600d5460011415610614565b34801561079b575f80fd5b506103586107aa36600461433c565b611b45565b3480156107ba575f80fd5b506106146107c9366004614388565b611c2f565b3480156107d9575f80fd5b505f546001600160a01b0316610580565b3480156107f5575f80fd5b506107fe611c99565b60405161038e91906143b1565b6103586108193660046143fd565b611cf9565b348015610829575f80fd5b506103586108383660046144a0565b611e83565b348015610848575f80fd5b506105dd610857366004614097565b600360209081525f93845260408085208252928452828420905282529020546001600160401b031681565b34801561088d575f80fd5b5061061461089c3660046144a0565b6120e0565b3480156108ac575f80fd5b506105dd6108bb366004614097565b6121b4565b3480156108cb575f80fd5b506103586108da3660046144e0565b612213565b3480156108ea575f80fd5b506103586108f9366004614509565b612529565b348015610909575f80fd5b50610358610918366004614524565b612541565b348015610928575f80fd5b50610435610937366004614097565b61268a565b348015610947575f80fd5b5061035861095636600461455e565b612709565b348015610966575f80fd5b50610580610975366004614056565b61292b565b348015610985575f80fd5b5061035861099436600461407e565b612998565b3480156109a4575f80fd5b506106146109b3366004614388565b6129f5565b3480156109c3575f80fd5b506104356109d2366004614578565b600260209081525f948552604080862082529385528385208152918452828420909152825290205481565b348015610a08575f80fd5b50610358610a1736600461407e565b612a58565b348015610a27575f80fd5b506104355f81565b348015610a3a575f80fd5b50610358610a493660046144e0565b612ab7565b348015610a59575f80fd5b50610358610a68366004614578565b612cec565b348015610a78575f80fd5b50610614610a8736600461407e565b60056020525f908152604090205460ff1681565b348015610aa6575f80fd5b50610614610ab5366004614056565b6001600160a01b039182165f90815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610af0575f80fd5b50610b04610aff366004613df6565b612dda565b60405161038e91906145b7565b348015610b1c575f80fd5b505f610580565b348015610b2e575f80fd5b50600e54610580906001600160a01b031681565b348015610b4d575f80fd5b50610358610b5c36600461407e565b61303d565b348015610b6c575f80fd5b506106de610b7b366004614056565b600860209081525f9283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610bb5575f80fd5b50610358610bc436600461407e565b61319d565b348015610bd4575f80fd5b50610580610be33660046140d0565b60096020525f90815260409020546001600160a01b031681565b610c4c86610c0e60208a018a6140d0565b60208a0135610c2360608c0160408d016145ce565b898989604051602001610c38939291906145e7565b6040516020818303038152906040526131da565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610c87908b908a908a908a9033908b908b90600401614661565b5f604051808303818588803b158015610c9e575f80fd5b505af1158015610cb0573d5f803e3d5ffd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610ce69291906146b7565b60405180910390a150505050505050565b5f80610d06600d546001141590565b610d11575f80610d1f565b610d1f600d5460a081901c91565b915091509091565b6001600160a01b0382165f90815260056020526040902054829060ff16610d6157604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e01575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd291906146f1565b6002811115610de357610de36146dd565b03610e01576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610e9b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610e5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7e919061471c565b610e9b57604051630e476aa960e21b815260040160405180910390fd5b610ea488613391565b5f610eaf89896113b7565b9150508015610ed157604051633c075f7560e01b815260040160405180910390fd5b855f03610f17576001600160a01b0389165f90815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610f7c565b438611610f37576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b038981165f90815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051610fb19493929190614737565b60405180910390a1505050505050505050565b610fcc613c5b565b610fd960208401846140d0565b336001600d5414610ffd5760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561102b90860160808701614767565b80156110405750600e546001600160a01b0316155b1561105e57604051632d7b695560e11b815260040160405180910390fd5b5f8061106a33886133e1565b915091505f6110763490565b90505f61109161108c60a08b0160808c01614767565b613681565b90506110a284604001518383613719565b600e546040850151602001516110c4916001600160a01b03169083868c613767565b6040840151516110d69083858b613794565b50506001600d555095945050505050565b6110f085613391565b5f838383604051602001611106939291906145e7565b60408051601f1981840301815291905290506111448661112960208801886140d0565b602088013561113e60608a0160408b016145ce565b856131da565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111769291906146b7565b60405180910390a1505050505050565b6001600160a01b0383165f90815260056020526040902054606090849060ff166111c357604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf7906064015f60405180830381865afa15801561121b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112429190810190614810565b9695505050505050565b61125585613391565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146112c657604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b0390811690841611801590611311575080155b1561133a57604051630c09b63560e41b81526001600160401b03841660048201526024016112bd565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190205f199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb552929061117690879087908a9088908890614841565b6001600160a01b038083165f90815260076020908152604080832063ffffffff86168452909152812054909116908161142c5763ffffffff83165f908152600a60205260409020546001600160a01b031691508161142857604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b61143c85613391565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146114a857604051637182306f60e01b815260048101829052602481018390526044016112bd565b8015806114f157506001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561151a57604051630c09b63560e41b81526001600160401b03841660048201526024016112bd565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e9061117690879087908a9088908890614841565b63ffffffff81165f908152600960205260408120546001600160a01b0316158015906115de575063ffffffff82165f908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116439a9998979695949392919061487e565b60405180910390a4505050505050505050505050565b6001600160a01b0382165f90815260056020526040902054829060ff1615801561168b57506001600160a01b03811615155b156116a95760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b03811615611749575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061171a91906146f1565b600281111561172b5761172b6146dd565b03611749576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b038216156117e3576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156117a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c6919061471c565b6117e357604051630e476aa960e21b815260040160405180910390fd5b6117ec88613391565b6001600160a01b038089165f90815260076020908152604080832063ffffffff8c1684529091529020548116908716810361183a5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038981165f81815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a185156119b1576001600160a01b03811615806118dc57506001600160a01b038716155b156118fa57604051633c075f7560e01b815260040160405180910390fd5b5f6040518060400160405280836001600160a01b03168152602001884361192191906148fa565b90526001600160a01b038b81165f90815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928916119a3918d918d918791614737565b60405180910390a150611a21565b6001600160a01b0389165f90815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891610fb1918c918c91869190614737565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611a819a9998979695949392919061490d565b60405180910390a35050505050505050505050565b6001600160a01b0383165f90815260056020526040902054839060ff16611ad057604051631bc58ef360e11b815260040160405180910390fd5b611ad985613391565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b099088908790879060040161496b565b5f604051808303815f87803b158015611b20575f80fd5b505af1158015611a21573d5f803e3d5ffd5b611b3a6137be565b611b435f6137ea565b565b335f908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611b9a57604051630542086560e21b815260040160405180910390fd5b8181604051611baa929190614a59565b60408051918290038220335f818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611c20919088908890889088908890614a68565b60405180910390a15050505050565b6001600160a01b0381165f9081526001602090815260408220611c9291859185918590611c5e908501856140d0565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b0316613839565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611cef57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611cd1575b5050505050905090565b6001600160a01b038089165f908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611d439087908790614a59565b60405180910390209050808214611d77576040516335ca595f60e01b815260048101839052602481018290526044016112bd565b6001600160a01b03808b165f908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611de5908e908d908c908c9033908d908d90600401614ab1565b5f604051808303818588803b158015611dfc575f80fd5b505af1158015611e0e573d5f803e3d5ffd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611e6f94939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b0381165f90815260056020526040902054819060ff16158015611eb557506001600160a01b03811615155b15611ed35760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b03811615611f74576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4591906146f1565b6002811115611f5657611f566146dd565b03611f7457604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561200e576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015611fcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ff1919061471c565b61200e57604051630e476aa960e21b815260040160405180910390fd5b61201787613391565b6001600160a01b038781165f90815260066020908152604080832063ffffffff8b1684529091529020548187169116036120645760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038781165f81815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610ce6565b5f805f6120ed86866113b7565b91509150816001600160a01b0316846001600160a01b03160361211557600192505050611c92565b5f81612148576001600160a01b0387165f90815260086020908152604080832063ffffffff8a168452909152902061215d565b63ffffffff86165f908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156121975750438160200151115b156121a85760019350505050611c92565b505f9695505050505050565b6001600160a01b0383165f90815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6121fe858585846001016138ba565b1561220b576001016121ef565b949350505050565b61221b6137be565b6001600160a01b0382165f90815260056020526040902054829060ff1661225557604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b038116156122f5575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122c691906146f1565b60028111156122d7576122d76146dd565b036122f5576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b0382161561238f576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561234e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612372919061471c565b61238f57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87165f908152600a60205260409020546001600160a01b0390811690871681036123d15760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88165f818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156124bd5763ffffffff88165f908152600b6020526040902080546001600160a01b0319166001600160a01b03831617815561247687436148fa565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916124af918c918691614b03565b60405180910390a15061251f565b63ffffffff88165f908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f891612516918b918591614b03565b60405180910390a15b5050505050505050565b6125316137be565b61253c838383613906565b505050565b6125588261255260208601866140d0565b336120e0565b612575576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382165f908152600160209081526040822090829061259d908701876140d0565b63ffffffff16815260208082019290925260409081015f9081208784013582529092529020546001600160401b031690506125d9848483613839565b6125f65760405163751cb20f60e01b815260040160405180910390fd5b612601848483613929565b61261d5760405162bbf0e560e11b815260040160405180910390fd5b6126498361262e60208701876140d0565b60208701356126436060890160408a016145ce565b866139df565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161267c93929190614b2a565b60405180910390a150505050565b6001600160a01b0383165f90815260036020908152604080832063ffffffff86168452825280832084845290915281205481906126d1906001600160401b03166001614b52565b9050612700817f0000000000000000000000000000000000000000000000000000000000000000878787613a44565b95945050505050565b6127116137be565b6001600160a01b0381165f90815260056020526040902054819060ff1661274b57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b038116156127ec576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127bd91906146f1565b60028111156127ce576127ce6146dd565b036127ec57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b03821615612886576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612845573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612869919061471c565b61288657604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86165f908152600960205260409020546001600160a01b038087169116036128c65760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff86165f8181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f59101611176565b6001600160a01b038083165f90815260066020908152604080832063ffffffff8616845290915290205416806115de575063ffffffff81165f908152600960205260409020546001600160a01b0316806115de57604051636c1ccdb560e01b815260040160405180910390fd5b6129a06137be565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b0381165f9081526001602090815260408220611c9291859185918590612a24908501856140d0565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b0316613929565b335f818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d798398191016129ea565b6001600160a01b0382165f90815260056020526040902054829060ff16612af157604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612b91575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6291906146f1565b6002811115612b7357612b736146dd565b03612b91576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612c2b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c0e919061471c565b612c2b57604051630e476aa960e21b815260040160405180910390fd5b612c336137be565b845f03612c655763ffffffff87165f908152600b6020526040812080546001600160a01b031916815560010155612cb9565b438511612c85576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87165f908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610ce693929190614b03565b612cf584613391565b612d008484846121b4565b612d0b906001614b52565b6001600160401b0316816001600160401b031614612d4757604051630c09b63560e41b81526001600160401b03821660048201526024016112bd565b6001600160a01b0384165f81815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161267c565b604080518082019091525f8082526020820152612dfd60a0840160808501614767565b8015612e125750600e546001600160a01b0316155b15612e3057604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b0382165f9081526003602090815260408220908290612e58908701876140d0565b63ffffffff16815260208082019290925260409081015f908120878401358252909252902054612e92906001600160401b03166001614b52565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001865f016020810190612efc91906140d0565b63ffffffff16815260200186602001358152602001612f53847f0000000000000000000000000000000000000000000000000000000000000000888a5f016020810190612f4991906140d0565b8b60200135613a44565b8152602001612f656040880188614b72565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093909452509293509150612fb190508561097560208901896140d0565b90506001600160a01b03811663d80e9bd983612fd060608a018a614b72565b612fe060a08c0160808d01614767565b6040518563ffffffff1660e01b8152600401612fff9493929190614bb4565b6040805180830381865afa158015613019573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112429190614ca5565b6130456137be565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561308e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130b2919061471c565b6130cf5760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff16156131085760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381165f818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af591016129ea565b6131a56137be565b6001600160a01b0381166131ce57604051631e4fbdf760e01b81525f60048201526024016112bd565b6131d7816137ea565b50565b6001600160a01b0385165f90815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b039081169084168110156132c657600181015b846001600160401b0316816001600160401b03161161327a5761324a888888846138ba565b61327257604051630c09b63560e41b81526001600160401b03821660048201526024016112bd565b600101613225565b506001600160a01b0387165f90815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b0389165f90815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461333f57604051637182306f60e01b815260048101829052602481018490526044016112bd565b50506001600160a01b039095165f90815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b038216148015906133c357506001600160a01b038181165f908152600f6020526040902054163314155b156131d75760405163c4c5259360e01b815260040160405180910390fd5b6133e9613c5b565b5f80613458856133fc60208701876140d0565b6001600160a01b03919091165f90815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b03168152602001865f0160208101906134c291906140d0565b63ffffffff1681526020018660200135815260200161350f847f00000000000000000000000000000000000000000000000000000000000000008a8a5f016020810190612f4991906140d0565b81526020016135216040880188614b72565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250929350915061356d90508761097560208901896140d0565b90505f806001600160a01b038316634389e58f8561358e60608c018c614b72565b61359e60a08e0160808f01614767565b6040518563ffffffff1660e01b81526004016135bd9493929190614bb4565b5f604051808303815f875af11580156135d8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526135ff9190810190614cbf565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161363360608b018b614b72565b866040516136449493929190614d0a565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b5f811561371457600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156136ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136f29190614d49565b9050805f0361371457604051631775123760e01b815260040160405180910390fd5b919050565b825182108061372b5750808360200151115b1561253c5782516020840151604051634f3ec0d360e01b81526004810192909252602482018490526044820152606481018290526084016112bd565b831561377857613778858386613abc565b8284101561378d5761378d8582868603613abc565b5050505050565b83156137a4576137a48285613af7565b828410156137b8576137b881858503613af7565b50505050565b5f546001600160a01b03163314611b435760405163118cdaa760e01b81523360048201526024016112bd565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80826001600160401b0316118061220b5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d9061387b908790600401614d60565b602060405180830381865afa158015613896573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220b919061471c565b6001600160a01b0384165f90815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b03831661391e5761253c8282613af7565b61253c838383613abc565b5f6001600160401b03821661394460608601604087016145ce565b6001600160401b0316118061220b57506001600160a01b0383165f908152600260209081526040822090829061397c908801886140d0565b63ffffffff1663ffffffff1681526020019081526020015f205f866020013581526020019081526020015f205f8660400160208101906139bc91906145ce565b6001600160401b0316815260208101919091526040015f20541415949350505050565b806139fd576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b039094165f90815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b5f85856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613ae3576040516306b7a93160e41b815260040160405180910390fd5b61253c6001600160a01b0384168383613ba0565b6001600160a01b038216613b1e576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613b67576040519150601f19603f3d011682016040523d82523d5f602084013e613b6c565b606091505b505090508061253c57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016112bd565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b178152825161253c93879390925f9283929183919082885af180613c0e576040513d5f823e3d81fd5b50505f513d91508115613c25578060011415613c32565b6001600160a01b0384163b155b156137b857604051635274afe760e01b81526001600160a01b03851660048201526024016112bd565b60405180606001604052805f80191681526020015f6001600160401b03168152602001613c9960405180604001604052805f81526020015f81525090565b905290565b5f60608284031215613cae575f80fd5b50919050565b80356001600160a01b0381168114613714575f80fd5b5f8083601f840112613cda575f80fd5b5081356001600160401b03811115613cf0575f80fd5b60208301915083602082850101111561142c575f80fd5b5f805f805f805f60e0888a031215613d1d575f80fd5b613d278989613c9e565b9650613d3560608901613cb4565b95506080880135945060a08801356001600160401b0380821115613d57575f80fd5b613d638b838c01613cca565b909650945060c08a0135915080821115613d7b575f80fd5b50613d888a828b01613cca565b989b979a50959850939692959293505050565b803563ffffffff81168114613714575f80fd5b5f805f8060808587031215613dc1575f80fd5b613dca85613cb4565b9350613dd860208601613d9b565b9250613de660408601613cb4565b9396929550929360600135925050565b5f8060408385031215613e07575f80fd5b82356001600160401b03811115613e1c575f80fd5b830160a08186031215613e2d575f80fd5b9150613e3b60208401613cb4565b90509250929050565b5f608082019050825182526001600160401b0360208401511660208301526040830151613e7e604084018280518252602090810151910152565b5092915050565b5f805f805f60c08688031215613e99575f80fd5b613ea286613cb4565b9450613eb18760208801613c9e565b93506080860135925060a08601356001600160401b03811115613ed2575f80fd5b613ede88828901613cca565b969995985093965092949392505050565b5f805f8060808587031215613f02575f80fd5b613f0b85613cb4565b9350613f1960208601613cb4565b9250613f2760408601613d9b565b9150613f3560608601613d9b565b905092959194509250565b5f5b83811015613f5a578181015183820152602001613f42565b50505f910152565b5f8151808452613f79816020860160208601613f40565b601f01601f19169290920160200192915050565b602081525f611c926020830184613f62565b80356001600160401b0381168114613714575f80fd5b5f805f805f60a08688031215613fc9575f80fd5b613fd286613cb4565b9450613fe060208701613d9b565b935060408601359250613ff560608701613f9f565b949793965091946080013592915050565b803561ffff81168114613714575f80fd5b5f805f806080858703121561402a575f80fd5b61403385613cb4565b935061404160208601613cb4565b925060408501359150613f3560608601614006565b5f8060408385031215614067575f80fd5b61407083613cb4565b9150613e3b60208401613d9b565b5f6020828403121561408e575f80fd5b611c9282613cb4565b5f805f606084860312156140a9575f80fd5b6140b284613cb4565b92506140c060208501613d9b565b9150604084013590509250925092565b5f602082840312156140e0575f80fd5b611c9282613d9b565b5f805f805f805f805f805f806101208d8f031215614105575f80fd5b61410e8d613cb4565b9b5061411c60208e01613cb4565b9a5060408d0135995061413160608e01614006565b985060808d0135975060a08d013596506001600160401b0360c08e01351115614158575f80fd5b6141688e60c08f01358f01613cca565b90965094506001600160401b0360e08e01351115614184575f80fd5b6141948e60e08f01358f01613cca565b90945092506001600160401b036101008e013511156141b1575f80fd5b6141c28e6101008f01358f01613cca565b81935080925050509295989b509295989b509295989b565b5f805f805f805f805f805f6101408c8e0312156141f5575f80fd5b6141ff8d8d613c9e565b9a5061420d60608d01613cb4565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561423c575f80fd5b61424c8e60e08f01358f01613cca565b90975095506101008d0135811015614262575f80fd5b6142738e6101008f01358f01613cca565b90955093506101208d0135811015614289575f80fd5b5061429b8d6101208e01358e01613cca565b81935080925050509295989b509295989b9093969950565b5f805f80606085870312156142c6575f80fd5b6142cf85613cb4565b93506142dd60208601613cb4565b925060408501356001600160401b03808211156142f8575f80fd5b818701915087601f83011261430b575f80fd5b813581811115614319575f80fd5b8860208260051b850101111561432d575f80fd5b95989497505060200194505050565b5f805f805f60808688031215614350575f80fd5b61435986613cb4565b94506020860135935061436e60408701614006565b925060608601356001600160401b03811115613ed2575f80fd5b5f8060808385031215614399575f80fd5b6143a38484613c9e565b9150613e3b60608401613cb4565b602080825282518282018190525f9190848201906040850190845b818110156143f15783516001600160a01b0316835292840192918401916001016143cc565b50909695505050505050565b5f805f805f805f8060c0898b031215614414575f80fd5b61441d89613cb4565b975061442b60208a01613cb4565b96506040890135955061444060608a01614006565b945060808901356001600160401b038082111561445b575f80fd5b6144678c838d01613cca565b909650945060a08b013591508082111561447f575f80fd5b5061448c8b828c01613cca565b999c989b5096995094979396929594505050565b5f805f606084860312156144b2575f80fd5b6144bb84613cb4565b92506144c960208501613d9b565b91506144d760408501613cb4565b90509250925092565b5f805f606084860312156144f2575f80fd5b6144fb84613d9b565b92506140c060208501613cb4565b5f805f6060848603121561451b575f80fd5b6144fb84613cb4565b5f805f60a08486031215614536575f80fd5b6145408585613c9e565b925061454e60608501613cb4565b9150608084013590509250925092565b5f806040838503121561456f575f80fd5b613e2d83613d9b565b5f805f806080858703121561458b575f80fd5b61459485613cb4565b93506145a260208601613d9b565b925060408501359150613f3560608601613f9f565b8151815260208083015190820152604081016115de565b5f602082840312156145de575f80fd5b611c9282613f9f565b838152818360208301375f910160200190815292915050565b63ffffffff61460e82613d9b565b168252602081013560208301526001600160401b0361462f60408301613f9f565b1660408301525050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b61466b8189614600565b86606082015260e060808201525f61468760e083018789614639565b6001600160a01b03861660a084015282810360c08401526146a9818587614639565b9a9950505050505050505050565b608081016146c58285614600565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215614701575f80fd5b815160038110611c92575f80fd5b80151581146131d7575f80fd5b5f6020828403121561472c575f80fd5b8151611c928161470f565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b5f60208284031215614777575f80fd5b8135611c928161470f565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126147a5575f80fd5b81516001600160401b03808211156147bf576147bf614782565b604051601f8301601f19908116603f011681019082821181831017156147e7576147e7614782565b816040528381528660208588010111156147ff575f80fd5b611242846020830160208901613f40565b5f60208284031215614820575f80fd5b81516001600160401b03811115614835575f80fd5b61220b84828501614796565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201525f6148ad60e08301888a614639565b82810360a08401526148c0818789614639565b905082810360c08401526148d5818587614639565b9d9c50505050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156115de576115de6148e6565b5f61012061491b838e614600565b8b60608401528a60808401528960a08401528060c0840152614940818401898b614639565b905082810360e0840152614955818789614639565b90508281036101008401526148d5818587614639565b6001600160a01b0384168152604060208083018290528282018490525f9190606090818501600587901b8601830188865b89811015614a4957888303605f190184528135368c9003605e190181126149c1575f80fd5b8b0163ffffffff806149d283613d9b565b168552806149e1888401613d9b565b16878601525087810135601e198236030181126149fc575f80fd5b0185810190356001600160401b03811115614a15575f80fd5b803603821315614a23575f80fd5b8789860152614a358886018284614639565b95870195945050509084019060010161499c565b50909a9950505050505050505050565b818382375f9101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a0608082018190525f90614aa59083018486614639565b98975050505050505050565b5f60018060a01b03808a16835288602084015260a06040840152614ad960a08401888a614639565b81871660608501528381036080850152614af4818688614639565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614b388286614600565b6001600160a01b0393909316606082015260800152919050565b6001600160401b03818116838216019080821115613e7e57613e7e6148e6565b5f808335601e19843603018112614b87575f80fd5b8301803591506001600160401b03821115614ba0575f80fd5b60200191503681900382131561142c575f80fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a08301528501515f90614c0260c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614c33610140840182613f62565b90508281036020840152614c48818688614639565b915050612700604083018415159052565b5f60408284031215614c69575f80fd5b604051604081018181106001600160401b0382111715614c8b57614c8b614782565b604052825181526020928301519281019290925250919050565b5f60408284031215614cb5575f80fd5b611c928383614c59565b5f8060608385031215614cd0575f80fd5b614cda8484614c59565b915060408301516001600160401b03811115614cf4575f80fd5b614d0085828601614796565b9150509250929050565b606081525f614d1c6060830187613f62565b8281036020840152614d2f818688614639565b91505060018060a01b038316604083015295945050505050565b5f60208284031215614d59575f80fd5b5051919050565b606081016115de828461460056fea2646970667358221220cb6f856c0194746f9f15e0dc6a44c4e61e761fe512e0655132cf785bae0ea0b964736f6c63430008160033","sourceMap":"2770:15372:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9753:572;;;;;;:::i;:::-;;:::i;:::-;;1153:158:32;;;;;;;;;;;;;:::i;:::-;;;;1996:10:122;1984:23;;;1966:42;;-1:-1:-1;;;;;2044:32:122;;;2039:2;2024:18;;2017:60;1939:18;1153:158:32;;;;;;;;13111:942:29;;;;;;;;;;-1:-1:-1;13111:942:29;;;;;:::i;:::-;;:::i;5245:1210:64:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11390:344::-;;;;;;;;;;-1:-1:-1;11390:344:64;;;;;:::i;:::-;;:::i;14475:261:29:-;;;;;;;;;;-1:-1:-1;14475:261:29;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;344:69:30:-;;;;;;;;;;-1:-1:-1;344:69:30;-1:-1:-1;;344:69:30;;;;;5759:25:122;;;5747:2;5732:18;344:69:30;5613:177:122;4815:687:30;;;;;;;;;;-1:-1:-1;4815:687:30;;;;;:::i;:::-;;:::i;455:145:31:-;;;;;;;;;;-1:-1:-1;455:145:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4135:379:29;;;;;;;;;;-1:-1:-1;4135:379:29;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;7559:32:122;;;7541:51;;7635:14;;7628:22;7623:2;7608:18;;7601:50;7514:18;4135:379:29;7373:284:122;5920:644:30;;;;;;;;;;-1:-1:-1;5920:644:30;;;;;:::i;:::-;;:::i;486:27::-;;;;;;;;;;;;;;;;;;7836:10:122;7824:23;;;7806:42;;7794:2;7779:18;486:27:30;7662:192:122;2947:58:64;;;;;;;;;;-1:-1:-1;2947:58:64;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2947:58:64;;;;;;-1:-1:-1;;;;;8214:32:122;;;8196:51;;8184:2;8169:18;2947:58:64;8050:203:122;520:126:30;;;;;;;;;;-1:-1:-1;520:126:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;520:126:30;;;;;;-1:-1:-1;;;;;8751:31:122;;;8733:50;;8721:2;8706:18;520:126:30;8589:200:122;9954:173:29;;;;;;;;;;-1:-1:-1;9954:173:29;;;;;:::i;:::-;;:::i;:::-;;;9148:14:122;;9141:22;9123:41;;9111:2;9096:18;9954:173:29;8983:187:122;3537:395:31;;;;;;;;;;-1:-1:-1;3537:395:31;;;;;:::i;:::-;;:::i;11204:1559:29:-;;;;;;;;;;-1:-1:-1;11204:1559:29;;;;;:::i;:::-;;:::i;10627:388:64:-;;;;;;;;;;-1:-1:-1;10627:388:64;;;;;:::i;:::-;;:::i;14185:208:29:-;;;;;;;;;;-1:-1:-1;14185:208:29;;;;;:::i;:::-;;:::i;1509:69::-;;;;;;;;;;-1:-1:-1;1509:69:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1509:69:29;;;;;;;;;;-1:-1:-1;;;;;13013:32:122;;;12995:51;;13077:2;13062:18;;13055:34;;;;12968:18;1509:69:29;12821:274:122;1437:66:29;;;;;;;;;;-1:-1:-1;1437:66:29;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1437:66:29;;;2293:101:100;;;;;;;;;;;;;:::i;744:39:29:-;;;;;;;;;;;;;;;969:106:32;;;;;;;;;;-1:-1:-1;1041:12:32;;527:1;1041:27;;969:106;;1065:402:31;;;;;;;;;;-1:-1:-1;1065:402:31;;;;;:::i;:::-;;:::i;17710:215:64:-;;;;;;;;;;-1:-1:-1;17710:215:64;;;;;:::i;:::-;;:::i;1638:85:100:-;;;;;;;;;;-1:-1:-1;1684:7:100;1710:6;-1:-1:-1;;;;;1710:6:100;1638:85;;2858:118:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2144:1048:31:-;;;;;;:::i;:::-;;:::i;10340:450:29:-;;;;;;;;;;-1:-1:-1;10340:450:29;;;;;:::i;:::-;;:::i;825:115:30:-;;;;;;;;;;-1:-1:-1;825:115:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;825:115:30;;;4887:1218:29;;;;;;;;;;-1:-1:-1;4887:1218:29;;;;;:::i;:::-;;:::i;2523:425:30:-;;;;;;;;;;-1:-1:-1;2523:425:30;;;;;:::i;:::-;;:::i;7763:1045:29:-;;;;;;;;;;-1:-1:-1;7763:1045:29;;;;;:::i;:::-;;:::i;12477:148:64:-;;;;;;;;;;-1:-1:-1;12477:148:64;;;;;:::i;:::-;;:::i;8373:709::-;;;;;;;;;;-1:-1:-1;8373:709:64;;;;;:::i;:::-;;:::i;8256:259:30:-;;;;;;;;;;-1:-1:-1;8256:259:30;;;;;:::i;:::-;;:::i;7038:400:29:-;;;;;;;;;;-1:-1:-1;7038:400:29;;;;;:::i;:::-;;:::i;3524:317::-;;;;;;;;;;-1:-1:-1;3524:317:29;;;;;:::i;:::-;;:::i;12081:133:64:-;;;;;;;;;;-1:-1:-1;12081:133:64;;;;;:::i;:::-;;:::i;17931:209::-;;;;;;;;;;-1:-1:-1;17931:209:64;;;;;:::i;:::-;;:::i;652:167:30:-;;;;;;;;;;-1:-1:-1;652:167:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16136:148:64;;;;;;;;;;-1:-1:-1;16136:148:64;;;;;:::i;:::-;;:::i;283:55:30:-;;;;;;;;;;-1:-1:-1;283:55:30;336:1;283:55;;9156:710:29;;;;;;;;;;-1:-1:-1;9156:710:29;;;;;:::i;:::-;;:::i;4016:359:30:-;;;;;;;;;;-1:-1:-1;4016:359:30;;;;;:::i;:::-;;:::i;948:55:29:-;;;;;;;;;;-1:-1:-1;948:55:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;3847:158;;;;;;;;;;-1:-1:-1;3847:158:29;;;;;:::i;:::-;-1:-1:-1;;;;;3954:20:29;;;3931:4;3954:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;:44;;3847:158;3962:1043:64;;;;;;;;;;-1:-1:-1;3962:1043:64;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15945:99::-;;;;;;;;;;-1:-1:-1;15999:7:64;15945:99;;2918:22;;;;;;;;;;-1:-1:-1;2918:22:64;;;;-1:-1:-1;;;;;2918:22:64;;;6264:511:29;;;;;;;;;;-1:-1:-1;6264:511:29;;;;;:::i;:::-;;:::i;1270:91::-;;;;;;;;;;-1:-1:-1;1270:91:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1270:91:29;;;;;;2543:215:100;;;;;;;;;;-1:-1:-1;2543:215:100;;;;;:::i;:::-;;:::i;1368:63:29:-;;;;;;;;;;-1:-1:-1;1368:63:29;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1368:63:29;;;9753:572:64;10043:106;10057:9;10068:14;;;;:7;:14;:::i;:::-;10084;;;;10100:13;;;;;;;;:::i;:::-;10132:5;10139:8;;10115:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10043:13;:106::i;:::-;-1:-1:-1;10159:109:64;;-1:-1:-1;;;10159:109:64;;-1:-1:-1;;;;;10159:39:64;;;;;10207:9;;10159:109;;10219:7;;10228:5;;10235:8;;;;10245:10;;10257;;;;10159:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10283:35;10299:7;10308:9;10283:35;;;;;;;:::i;:::-;;;;;;;;9753:572;;;;;;;:::o;1153:158:32:-;1202:6;1210:7;1236:18;1041:12;;527:1;1041:27;;;969:106;1236:18;:68;;1290:1;1301;1236:68;;;1257:29;1273:12;;1437:3;1425:15;;;;1317:160;1257:29;1229:75;;;;1153:158;;:::o;13111:942:29:-;-1:-1:-1;;;;;1765:25:29;;;;;;:19;:25;;;;;;13266:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:29;;;;;;;;;;;1760:68;13285:4;-1:-1:-1;;;;;2114:19:29;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:29::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:29::1;;;;;;;;;;;2149:96;13308:4:::0;13314;-1:-1:-1;;;;;2711:19:29;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:29;;7836:10:122;7824:23;;2751:38:29::2;::::0;::::2;7806:42:122::0;-1:-1:-1;;;;;2751:32:29;::::2;::::0;::::2;::::0;7779:18:122;;2751:38:29::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:29::2;;;;;;;;;;;2746:78;13330:24:::3;13348:5;13330:17;:24::i;:::-;13368:14;13386:30;13404:5;13411:4;13386:17;:30::i;:::-;13365:51;;;13498:9;13494:51;;;13516:29;;-1:-1:-1::0;;;13516:29:29::3;;;;;;;;;;;13494:51;13560:7;13571:1;13560:12:::0;13556:424:::3;;-1:-1:-1::0;;;;;13649:28:29;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13642:41;;-1:-1:-1;;;;;;13642:41:29::3;::::0;;;::::3;::::0;13556:424:::3;;;13779:12;13768:7;:23;13764:61;;13800:25;;-1:-1:-1::0;;;13800:25:29::3;;;;;;;;;;;13764:61;-1:-1:-1::0;;;;;13865:28:29;;::::3;13839:23;13865:28:::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13913:18;;-1:-1:-1;;;;;;13913:18:29::3;::::0;;::::3;::::0;;;::::3;::::0;;-1:-1:-1;13945:14:29::3;:24:::0;;;13556:424:::3;13994:52;14019:5;14026:4;14032;14038:7;13994:52;;;;;;;;;:::i;:::-;;;;;;;;13320:733;2265:1:::2;;1838::::1;13111:942:::0;;;;;:::o;5245:1210:64:-;5405:23;;:::i;:::-;5368:14;;;;:7;:14;:::i;:::-;5384:10;527:1:32;733:12;;:27;729:66;;769:26;;-1:-1:-1;;;769:26:32;;;;;;;;;;;729:66;-1:-1:-1;;;841:3:32;821:23;;;;;;;-1:-1:-1;;;;;820:44:32;;;805:12;:59;5444:20:64::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;:47;;;;-1:-1:-1::0;5468:7:64::1;::::0;-1:-1:-1;;;;;5468:7:64::1;:23:::0;5444:47:::1;5440:90;;;5500:30;;-1:-1:-1::0;;;5500:30:64::1;;;;;;;;;;;5440:90;5566:31;5599:20:::0;5623:26:::1;5629:10;5641:7;5623:5;:26::i;:::-;5565:84;;;;5980:22;6005:17;15195:9:::0;;15111:100;6005:17:::1;5980:42:::0;-1:-1:-1;6032:23:64::1;6058:38;6075:20;::::0;;;::::1;::::0;::::1;;:::i;:::-;6058:16;:38::i;:::-;6032:64;;6106:65;6126:7;:11;;;6139:14;6155:15;6106:19;:65::i;:::-;6224:7;::::0;6233:11:::1;::::0;::::1;::::0;:22:::1;;::::0;6214:89:::1;::::0;-1:-1:-1;;;;;6224:7:64::1;::::0;6257:15;6274:12;6288:14;6214:9:::1;:89::i;:::-;6355:11;::::0;::::1;::::0;:21;6344:79:::1;::::0;6378:14;6394:12;6408:14;6344:10:::1;:79::i;:::-;-1:-1:-1::0;;527:1:32;885:12;:26;-1:-1:-1;6441:7:64;5245:1210;-1:-1:-1;;;;;5245:1210:64:o;11390:344::-;11504:24;11522:5;11504:17;:24::i;:::-;11539:20;11579:5;11586:8;;11562:33;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;11562:33:64;;;;;;;;;;-1:-1:-1;11605:76:64;11619:5;11626:14;11562:33;11626:14;;:7;:14;:::i;:::-;11642;;;;11658:13;;;;;;;;:::i;:::-;11673:7;11605:13;:76::i;:::-;;11696:31;11712:7;11721:5;11696:31;;;;;;;:::i;:::-;;;;;;;;11494:240;11390:344;;;;;:::o;14475:261:29:-;-1:-1:-1;;;;;1765:25:29;;;;;;:19;:25;;;;;;14638:19;;14623:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:29;;;;;;;;;;;1760:68;14676:53:::1;::::0;-1:-1:-1;;;14676:53:29;;21964:10:122;22001:15;;;14676:53:29::1;::::0;::::1;21983:34:122::0;-1:-1:-1;;;;;22053:32:122;;;22033:18;;;22026:60;22122:15;;;22102:18;;;22095:43;14676:27:29;::::1;::::0;::::1;::::0;21927:18:122;;14676:53:29::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;14676:53:29::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;14669:60:::0;14475:261;-1:-1:-1;;;;;;14475:261:29:o;4815:687:30:-;4935:24;4953:5;4935:17;:24::i;:::-;-1:-1:-1;;;;;4995:25:30;;4970:22;4995:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;4995:51:30;;;;;;;;;;5060:30;;;5056:102;;5099:59;;-1:-1:-1;;;5099:59:30;;;;;23498:25:122;;;23539:18;;;23532:34;;;23471:18;;5099:59:30;;;;;;;;5056:102;-1:-1:-1;;;;;5182:23:30;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;-1:-1:-1;;;;;5182:41:30;;;5172:51;;;;;;;:91;;-1:-1:-1;5227:36:30;;5172:91;5168:146;;;5284:30;;-1:-1:-1;;;5284:30:30;;-1:-1:-1;;;;;8751:31:122;;5284:30:30;;;8733:50:122;8706:18;;5284:30:30;8589:200:122;5168:146:30;-1:-1:-1;;;;;5349:25:30;;387:26;5349:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;5349:51:30;;;;;;;;;;;-1:-1:-1;;5349:70:30;;5434:61;;;;;5375:7;;5384;;5368:5;;5393:6;;5482:12;;5434:61;:::i;4135:379:29:-;-1:-1:-1;;;;;4263:25:29;;;4218:11;4263:25;;;:14;:25;;;;;;;;:34;;;;;;;;;;;;;;;;4307:201;;4351:30;;;;;;;:21;:30;;;;;;-1:-1:-1;;;;;4351:30:29;;-1:-1:-1;4351:30:29;4395:72;;4427:40;;-1:-1:-1;;;4427:40:29;;;;;;;;;;;4395:72;-1:-1:-1;4493:4:29;4307:201;4135:379;;;;;:::o;5920:644:30:-;6038:24;6056:5;6038:17;:24::i;:::-;-1:-1:-1;;;;;6098:25:30;;6073:22;6098:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;6098:51:30;;;;;;;;;;6163:30;;;6159:102;;6202:59;;-1:-1:-1;;;6202:59:30;;;;;23498:25:122;;;23539:18;;;23532:34;;;23471:18;;6202:59:30;23324:248:122;6159:102:30;6275:36;;;:90;;-1:-1:-1;;;;;;6324:23:30;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;-1:-1:-1;;;;;6324:41:30;;;6315:50;;;;6275:90;6271:145;;;6386:30;;-1:-1:-1;;;6386:30:30;;-1:-1:-1;;;;;8751:31:122;;6386:30:30;;;8733:50:122;8706:18;;6386:30:30;8589:200:122;6271:145:30;-1:-1:-1;;;;;6433:25:30;;;;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;6433:51:30;;;;;;;;;;6426:58;;;;6499;;;;;6459:7;;6468;;6452:5;;6477:6;;6544:12;;6499:58;:::i;9954:173:29:-;10037:24;;;10014:4;10037:24;;;:18;:24;;;;;;-1:-1:-1;;;;;10037:24:29;:38;;;;:83;;-1:-1:-1;10079:27:29;;;10118:1;10079:27;;;:21;:27;;;;;;-1:-1:-1;;;;;10079:27:29;:41;;10037:83;10030:90;9954:173;-1:-1:-1;;9954:173:29:o;3537:395:31:-;3854:10;-1:-1:-1;;;;;3827:98:31;3849:3;-1:-1:-1;;;;;3827:98:31;3842:5;-1:-1:-1;;;;;3827:98:31;;3866:5;3873:6;3881:4;3887:6;3895:8;;3905:10;;3917:7;;3827:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3537:395;;;;;;;;;;;;:::o;11204:1559:29:-;-1:-1:-1;;;;;2341:25:29;;;;;;:19;:25;;;;;;11369:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:29;;;;2340:49;2336:100;;;2398:38;;-1:-1:-1;;;2398:38:29;;;;;;;;;;;2336:100;11391:7;-1:-1:-1;;;;;2114:19:29;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:29::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:29::1;;;;;;;;;;;2149:96;11417:7:::0;11426:4;-1:-1:-1;;;;;2711:19:29;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:29;;7836:10:122;7824:23;;2751:38:29::2;::::0;::::2;7806:42:122::0;-1:-1:-1;;;;;2751:32:29;::::2;::::0;::::2;::::0;7779:18:122;;2751:38:29::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:29::2;;;;;;;;;;;2746:78;11442:24:::3;11460:5;11442:17;:24::i;:::-;-1:-1:-1::0;;;;;11494:21:29;;::::3;11477:14;11494:21:::0;;;:14:::3;:21;::::0;;;;;;;:27:::3;::::0;::::3;::::0;;;;;;;;;::::3;::::0;11570:17;::::3;::::0;;11566:51:::3;;11596:21;;-1:-1:-1::0;;;11596:21:29::3;;;;;;;;;;;11566:51;-1:-1:-1::0;;;;;11627:21:29;;::::3;;::::0;;;:14:::3;:21;::::0;;;;;;;:27:::3;::::0;::::3;::::0;;;;;;;;;;:37;;-1:-1:-1;;;;;;11627:37:29::3;::::0;;::::3;::::0;;::::3;::::0;;11679:39;;25270:34:122;;;25320:18;;;25313:51;;;;25380:18;;25373:43;;;;11679:39:29::3;::::0;25220:2:122;25205:18;11679:39:29::3;;;;;;;11733:16:::0;;11729:1028:::3;;-1:-1:-1::0;;;;;12251:21:29;::::3;::::0;;:47:::3;;-1:-1:-1::0;;;;;;12276:22:29;::::3;::::0;12251:47:::3;12247:89;;;12307:29;;-1:-1:-1::0;;;12307:29:29::3;;;;;;;;;;;12247:89;12383:22;12408:61;;;;;;;;12423:6;-1:-1:-1::0;;;;;12408:61:29::3;;;;;12454:12;12439;:27;;;;:::i;:::-;12408:61:::0;;-1:-1:-1;;;;;12483:28:29;;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;:44;;;;-1:-1:-1;;;;;;12483:44:29::3;::::0;::::3;::::0;;;::::3;::::0;;;::::3;::::0;-1:-1:-1;12483:44:29;;::::3;::::0;;;12546:61;12483:44;;-1:-1:-1;12546:61:29::3;::::0;::::3;::::0;12483:28;;:34;;12584:6;;12546:61:::3;:::i;:::-;;;;;;;;11751:867;11729:1028;;;-1:-1:-1::0;;;;;12645:28:29;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;12638:41;;-1:-1:-1;;;;;;12638:41:29::3;::::0;;;::::3;::::0;;;12698:48;::::3;::::0;::::3;::::0;12667:5;;12674:4;;12736:6;;12645:28;12698:48:::3;:::i;11729:1028::-;11432:1331;2265:1:::2;;2446::::1;11204:1559:::0;;;;;:::o;10627:388:64:-;10936:10;-1:-1:-1;;;;;10910:98:64;10925:9;-1:-1:-1;;;;;10910:98:64;;10948:7;10957:5;10964:4;10970:6;10978:8;;10988:10;;11000:7;;10910:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10627:388;;;;;;;;;;;:::o;14185:208:29:-;-1:-1:-1;;;;;1765:25:29;;;;;;:19;:25;;;;;;14292:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:29;;;;;;;;;;;1760:68;14308:24:::1;14326:5;14308:17;:24::i;:::-;14343:43;::::0;-1:-1:-1;;;14343:43:29;;-1:-1:-1;;;;;14343:27:29;::::1;::::0;::::1;::::0;:43:::1;::::0;14371:5;;14378:7;;;;14343:43:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;2293:101:100::0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1065:402:31:-;1232:10;372:1;1219:24;;;:12;:24;;;;;;;;-1:-1:-1;;;;;1219:29:31;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:63;1215:101;;1291:25;;-1:-1:-1;;;1291:25:31;;;;;;;;;;;1215:101;1383:8;;1373:19;;;;;;;:::i;:::-;;;;;;;;;;1339:10;1326:24;;;;:12;:24;;;;;;;-1:-1:-1;;;;;1326:29:31;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:66;1407:53;;;;1339:10;1351:3;;1356:5;;1363:6;;1451:8;;;;1407:53;:::i;:::-;;;;;;;;1065:402;;;;;:::o;17710:215:64:-;-1:-1:-1;;;;;17858:27:64;;17800:4;17858:27;;;:16;:27;;;;;;;17823:95;;17838:7;;17847:9;;17800:4;;17886:14;;;;17838:7;17886:14;:::i;:::-;17858:43;;;;;;;;;;;;;;;;-1:-1:-1;17858:43:64;;;17902:14;;;;17858:59;;;;;;;;-1:-1:-1;;;;;17858:59:64;17823:14;:95::i;:::-;17816:102;17710:215;-1:-1:-1;;;17710:215:64:o;2858:118:29:-;2915:16;2950:19;2943:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2943:26:29;;;;;;;;;;;;;;;;;;;;;;;2858:118;:::o;2144:1048:31:-;-1:-1:-1;;;;;2408:19:31;;;2385:20;2408:19;;;:12;:19;;;;;;;;:24;;;;;;;;;;;:31;;;;;;;;:39;;;;;;;;;;;2478:19;;;;2488:8;;;;2478:19;:::i;:::-;;;;;;;;2457:40;;2527:10;2511:12;:26;2507:90;;2546:51;;-1:-1:-1;;;2546:51:31;;;;;23498:25:122;;;23539:18;;;23532:34;;;23471:18;;2546:51:31;23324:248:122;2507:90:31;-1:-1:-1;;;;;2953:19:31;;;429;2953;;;:12;:19;;;;;;;;:24;;;;;;;;;;;;:31;;;;;;;;:39;;;;;;;;;;;;445:1;2953:63;;3026:101;-1:-1:-1;;;3026:101:31;;:33;;3068:9;;3026:101;;2966:5;;2978;;3094:8;;;;3104:10;;3116;;;;3026:101;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:43;3159:5;3166:3;3171:5;3178:6;3142:43;;;;;;;;-1:-1:-1;;;;;30928:15:122;;;30910:34;;30980:15;;;;30975:2;30960:18;;30953:43;31027:2;31012:18;;31005:34;31087:6;31075:19;;;;31070:2;31055:18;;31048:47;30859:3;30844:19;;30643:458;3142:43:31;;;;;;;;2344:848;;2144:1048;;;;;;;;:::o;10340:450:29:-;-1:-1:-1;;;;;2341:25:29;;;;;;:19;:25;;;;;;10472:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:29;;;;2340:49;2336:100;;;2398:38;;-1:-1:-1;;;2398:38:29;;;;;;;;;;;2336:100;10491:7;-1:-1:-1;;;;;1899:19:29;::::1;::::0;1895:146:::1;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:29::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::1;;2007:23;;-1:-1:-1::0;;;2007:23:29::1;;;;;;;;;;;1934:96;10517:7:::0;10526:4;-1:-1:-1;;;;;2711:19:29;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:29;;7836:10:122;7824:23;;2751:38:29::2;::::0;::::2;7806:42:122::0;-1:-1:-1;;;;;2751:32:29;::::2;::::0;::::2;::::0;7779:18:122;;2751:38:29::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:29::2;;;;;;;;;;;2746:78;10542:24:::3;10560:5;10542:17;:24::i;:::-;-1:-1:-1::0;;;;;10623:18:29;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;:35;;::::3;:24:::0;::::3;:35:::0;10619:69:::3;;10667:21;;-1:-1:-1::0;;;10667:21:29::3;;;;;;;;;;;10619:69;-1:-1:-1::0;;;;;10698:18:29;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;;;:34;;-1:-1:-1;;;;;;10698:34:29::3;::::0;;::::3;::::0;;::::3;::::0;;10747:36;;25270:34:122;;;25320:18;;;25313:51;;;;25380:18;;25373:43;;;;10747:36:29::3;::::0;25220:2:122;25205:18;10747:36:29::3;25032:390:122::0;4887:1218:29;5031:4;5134:26;5162:14;5180:37;5198:9;5209:7;5180:17;:37::i;:::-;5133:84;;;;5252:18;-1:-1:-1;;;;;5231:39:29;:17;-1:-1:-1;;;;;5231:39:29;;5227:81;;5293:4;5286:11;;;;;;5227:81;5514:22;5539:9;:117;;-1:-1:-1;;;;;5615:32:29;;;;;;:21;:32;;;;;;;;:41;;;;;;;;;;5539:117;;;5563:37;;;;;;;:28;:37;;;;;5539:117;5514:142;;;;;;;;;;;-1:-1:-1;;;;;5514:142:29;;;;;;;;;;;;;;;;;-1:-1:-1;5886:32:29;;;:65;;;;;5939:12;5922:7;:14;;;:29;5886:65;5882:158;;;6025:4;6018:11;;;;;;;5882:158;-1:-1:-1;6093:5:29;;4887:1218;-1:-1:-1;;;;;;4887:1218:29:o;2523:425:30:-;-1:-1:-1;;;;;2657:27:30;;2618:6;2657:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;-1:-1:-1;;;;;2657:45:30;2788:116;2795:61;2811:9;2822:7;2831;2840:11;2854:1;2840:15;2795;:61::i;:::-;2788:116;;;2876:13;;2788:116;;;2930:11;2523:425;-1:-1:-1;;;;2523:425:30:o;7763:1045:29:-;1531:13:100;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:29;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7913:7;;1765:25:::1;;1760:68;;1799:29;;-1:-1:-1::0;;;1799:29:29::1;;;;;;;;;;;1760:68;7935:7:::0;-1:-1:-1;;;;;2114:19:29;::::2;::::0;2110:146:::2;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:29::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::2;;2219:26;;-1:-1:-1::0;;;2219:26:29::2;;;;;;;;;;;2149:96;7961:7:::0;7970:4;-1:-1:-1;;;;;2711:19:29;::::3;::::0;2707:128:::3;;2751:38;::::0;-1:-1:-1;;;2751:38:29;;7836:10:122;7824:23;;2751:38:29::3;::::0;::::3;7806:42:122::0;-1:-1:-1;;;;;2751:32:29;::::3;::::0;::::3;::::0;7779:18:122;;2751:38:29::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:29::3;;;;;;;;;;;2746:78;8003:27:::4;::::0;::::4;7986:14;8003:27:::0;;;:21:::4;:27;::::0;;;;;-1:-1:-1;;;;;8003:27:29;;::::4;::::0;8086:17;::::4;::::0;;8082:51:::4;;8112:21;;-1:-1:-1::0;;;8112:21:29::4;;;;;;;;;;;8082:51;8144:27;::::0;::::4;;::::0;;;:21:::4;:27;::::0;;;;;;;;:37;;-1:-1:-1;;;;;;8144:37:29::4;-1:-1:-1::0;;;;;8144:37:29;::::4;::::0;;::::4;::::0;;;8196:39;;1966:42:122;;;2024:18;;;2017:60;8196:39:29::4;::::0;1939:18:122;8196:39:29::4;;;;;;;8250:16:::0;;8246:556:::4;;8390:34;::::0;::::4;8364:23;8390:34:::0;;;:28:::4;:34;::::0;;;;8438:20;;-1:-1:-1;;;;;;8438:20:29::4;-1:-1:-1::0;;;;;8438:20:29;::::4;;::::0;;8489:27:::4;8504:12:::0;8489::::4;:27;:::i;:::-;8472:14;::::0;::::4;:44:::0;;;8535:61:::4;::::0;::::4;::::0;::::4;::::0;8567:4;;8573:6;;8535:61:::4;:::i;:::-;;;;;;;;8268:339;8246:556;;;8690:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;;8683:41;;-1:-1:-1;;;;;;8683:41:29::4;::::0;;;::::4;::::0;;;8743:48;::::4;::::0;::::4;::::0;8719:4;;8781:6;;8743:48:::4;:::i;:::-;;;;;;;;8246:556;7976:832;2265:1:::3;;1838::::2;1554::100::1;7763:1045:29::0;;;:::o;12477:148:64:-;1531:13:100;:11;:13::i;:::-;12574:44:64::1;12597:6;12605:3;12610:7;12574:22;:44::i;:::-;12477:148:::0;;;:::o;8373:709::-;8479:60;8501:9;8512:14;;;;:7;:14;:::i;:::-;8528:10;8479:21;:60::i;:::-;8474:107;;8548:33;;-1:-1:-1;;;8548:33:64;;;;;;;;;;;8474:107;-1:-1:-1;;;;;8611:27:64;;8592:16;8611:27;;;:16;:27;;;;;;;;8592:16;;8639:14;;;;:7;:14;:::i;:::-;8611:43;;;;;;;;;;;;;;;;-1:-1:-1;8611:43:64;;;8655:14;;;;8611:59;;;;;;;;-1:-1:-1;;;;;8611:59:64;;-1:-1:-1;8685:45:64;8655:7;8709:9;8611:59;8685:14;:45::i;:::-;8680:91;;8739:32;;-1:-1:-1;;;8739:32:64;;;;;;;;;;;8680:91;8786:42;8798:7;8807:9;8818;8786:11;:42::i;:::-;8781:85;;8837:29;;-1:-1:-1;;;8837:29:64;;;;;;;;;;;8781:85;8932:80;8941:9;8952:14;;;;:7;:14;:::i;:::-;8968;;;;8984:13;;;;;;;;:::i;:::-;8999:12;8932:8;:80::i;:::-;9027:48;9042:7;9051:9;9062:12;9027:48;;;;;;;;:::i;:::-;;;;;;;;8464:618;8373:709;;;:::o;8256:259:30:-;-1:-1:-1;;;;;8387:22:30;;8349:7;8387:22;;;:13;:22;;;;;;;;:31;;;;;;;;;;:42;;;;;;;;;8349:7;;8387:46;;-1:-1:-1;;;;;8387:42:30;;:46;:::i;:::-;8368:65;;8450:58;8464:9;8475:3;8480:7;8489;8498:9;8450:13;:58::i;:::-;8443:65;8256:259;-1:-1:-1;;;;;8256:259:30:o;7038:400:29:-;1531:13:100;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:29;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7155:7;;1765:25:::1;;1760:68;;1799:29;;-1:-1:-1::0;;;1799:29:29::1;;;;;;;;;;;1760:68;7174:7:::0;-1:-1:-1;;;;;1899:19:29;::::2;::::0;1895:146:::2;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:29::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::2;;2007:23;;-1:-1:-1::0;;;2007:23:29::2;;;;;;;;;;;1934:96;7200:7:::0;7209:4;-1:-1:-1;;;;;2711:19:29;::::3;::::0;2707:128:::3;;2751:38;::::0;-1:-1:-1;;;2751:38:29;;7836:10:122;7824:23;;2751:38:29::3;::::0;::::3;7806:42:122::0;-1:-1:-1;;;;;2751:32:29;::::3;::::0;::::3;::::0;7779:18:122;;2751:38:29::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:29::3;;;;;;;;;;;2746:78;7271:24:::4;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;-1:-1:-1;;;;;7271:35:29;;::::4;:24:::0;::::4;:35:::0;7267:69:::4;;7315:21;;-1:-1:-1::0;;;7315:21:29::4;;;;;;;;;;;7267:69;7346:24;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;;;;:34;;-1:-1:-1;;;;;;7346:34:29::4;-1:-1:-1::0;;;;;7346:34:29;::::4;::::0;;::::4;::::0;;;7395:36;;1966:42:122;;;2024:18;;;2017:60;7395:36:29::4;::::0;1939:18:122;7395:36:29::4;1794:289:122::0;3524:317:29;-1:-1:-1;;;;;3631:20:29;;;3602:11;3631:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;3670:165;;-1:-1:-1;3714:27:29;;;;;;;:18;:27;;;;;;-1:-1:-1;;;;;3714:27:29;;3755:69;;3787:37;;-1:-1:-1;;;3787:37:29;;;;;;;;;;;12081:133:64;1531:13:100;:11;:13::i;:::-;12154:7:64::1;:18:::0;;-1:-1:-1;;;;;;12154:18:64::1;-1:-1:-1::0;;;;;12154:18:64;::::1;::::0;;::::1;::::0;;;12187:20:::1;::::0;8196:51:122;;;12187:20:64::1;::::0;8184:2:122;8169:18;12187:20:64::1;;;;;;;;12081:133:::0;:::o;17931:209::-;-1:-1:-1;;;;;18073:27:64;;18018:4;18073:27;;;:16;:27;;;;;;;18041:92;;18053:7;;18062:9;;18018:4;;18101:14;;;;18053:7;18101:14;:::i;:::-;18073:43;;;;;;;;;;;;;;;;-1:-1:-1;18073:43:64;;;18117:14;;;;18073:59;;;;;;;;-1:-1:-1;;;;;18073:59:64;18041:11;:92::i;16136:148::-;16205:10;16195:21;;;;:9;:21;;;;;;;;;:33;;-1:-1:-1;;;;;;16195:33:64;-1:-1:-1;;;;;16195:33:64;;;;;;;;16243:34;;32670::122;;;32720:18;;;32713:43;16243:34:64;;32605:18:122;16243:34:64;32458:304:122;9156:710:29;-1:-1:-1;;;;;1765:25:29;;;;;;:19;:25;;;;;;9295:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:29;;;;;;;;;;;1760:68;9314:4;-1:-1:-1;;;;;2114:19:29;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:29::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:29::1;;;;;;;;;;;2149:96;9337:4:::0;9343;-1:-1:-1;;;;;2711:19:29;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:29;;7836:10:122;7824:23;;2751:38:29::2;::::0;::::2;7806:42:122::0;-1:-1:-1;;;;;2751:32:29;::::2;::::0;::::2;::::0;7779:18:122;;2751:38:29::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:29::2;;;;;;;;;;;2746:78;1531:13:100::3;:11;:13::i;:::-;9373:7:29::4;9384:1;9373:12:::0;9369:424:::4;;9462:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;9455:41;;-1:-1:-1;;;;;;9455:41:29::4;::::0;;;::::4;::::0;9369:424:::4;;;9592:12;9581:7;:23;9577:61;;9613:25;;-1:-1:-1::0;;;9613:25:29::4;;;;;;;;;;;9577:61;9678:34;::::0;::::4;9652:23;9678:34:::0;;;:28:::4;:34;::::0;;;;9726:18;;-1:-1:-1;;;;;;9726:18:29::4;-1:-1:-1::0;;;;;9726:18:29;::::4;;::::0;;-1:-1:-1;9758:14:29::4;:24:::0;;;9369:424:::4;9807:52;9839:4;9845;9851:7;9807:52;;;;;;;;:::i;4016:359:30:-:0;4112:24;4130:5;4112:17;:24::i;:::-;4161:37;4174:5;4181:7;4190;4161:12;:37::i;:::-;:41;;4201:1;4161:41;:::i;:::-;-1:-1:-1;;;;;4151:51:30;:6;-1:-1:-1;;;;;4151:51:30;;4147:94;;4211:30;;-1:-1:-1;;;4211:30:30;;-1:-1:-1;;;;;8751:31:122;;4211:30:30;;;8733:50:122;8706:18;;4211:30:30;8589:200:122;4147:94:30;-1:-1:-1;;;;;4251:23:30;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;;;:41;;;;;;;;;:50;;-1:-1:-1;;4251:50:30;-1:-1:-1;;;;;4251:50:30;;;;;;;;4316:52;;32994:42:122;;;33052:18;;;33045:34;;;33095:18;;33088:60;;;;33179:2;33164:18;;33157:59;;;;4316:52:30;;32981:3:122;32966:19;4316:52:30;32767:455:122;3962:1043:64;-1:-1:-1;;;;;;;;;;;;;;;;;4141:20:64;;;;;;;;:::i;:::-;:47;;;;-1:-1:-1;4165:7:64;;-1:-1:-1;;;;;4165:7:64;:23;4141:47;4137:90;;;4197:30;;-1:-1:-1;;;4197:30:64;;;;;;;;;;;4137:90;-1:-1:-1;;;;;4295:22:64;;4280:12;4295:22;;;:13;:22;;;;;;;;4280:12;;4318:14;;;;:7;:14;:::i;:::-;4295:38;;;;;;;;;;;;;;;;-1:-1:-1;4295:38:64;;;4334:16;;;;4295:56;;;;;;;;:60;;-1:-1:-1;;;;;4295:56:64;;:60;:::i;:::-;4280:75;;4410:20;4433:300;;;;;;;;4461:5;-1:-1:-1;;;;;4433:300:64;;;;;4488:3;4433:300;;;;;;4513:7;-1:-1:-1;;;;;4433:300:64;;;;;4542:7;:14;;;;;;;;;;:::i;:::-;4433:300;;;;;;4580:7;:16;;;4433:300;;;;4616:68;4630:5;4637:3;4642:7;4651;:14;;;;;;;;;;:::i;:::-;4667:7;:16;;;4616:13;:68::i;:::-;4433:300;;;;4707:15;;;;:7;:15;:::i;:::-;4433:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4433:300:64;;;;-1:-1:-1;4410:323:64;;-1:-1:-1;4433:300:64;-1:-1:-1;4866:39:64;;-1:-1:-1;4881:7:64;4890:14;;;;:7;:14;:::i;4866:39::-;4843:62;-1:-1:-1;;;;;;4923:28:64;;;4952:6;4960:15;;;;:7;:15;:::i;:::-;4977:20;;;;;;;;:::i;:::-;4923:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6264:511:29:-;1531:13:100;:11;:13::i;:::-;6376:62:29::1;::::0;-1:-1:-1;;;6376:62:29;;-1:-1:-1;;;6376:62:29::1;::::0;::::1;35734:52:122::0;-1:-1:-1;;;;;6376:31:29;::::1;::::0;::::1;::::0;35707:18:122;;6376:62:29::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;-1:-1:-1::0;;;6447:32:29::1;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:29;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;-1:-1:-1::0;;;6568:29:29::1;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:29;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;-1:-1:-1;;6657:32:29::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6699:30:29::1;::::0;::::1;::::0;;6745:23;;8196:51:122;;;6745:23:29::1;::::0;8169:18:122;6745:23:29::1;8050:203:122::0;2543:215:100;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:100;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:100;;2700:1:::1;2672:31;::::0;::::1;8196:51:122::0;8169:18;;2672:31:100::1;8050:203:122::0;2623:91:100::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;6931:1169:30:-;-1:-1:-1;;;;;7160:27:30;;7108:18;7160:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;-1:-1:-1;;;;;7160:45:30;;;;7219:21;;;-1:-1:-1;7215:417:30;;;7388:1;7373:16;;7357:179;7396:6;-1:-1:-1;;;;;7391:11:30;:1;-1:-1:-1;;;;;7391:11:30;;7357:179;;7436:47;7452:9;7463:7;7472;7481:1;7436:15;:47::i;:::-;7431:86;;7492:25;;-1:-1:-1;;;7492:25:30;;-1:-1:-1;;;;;8751:31:122;;7492:25:30;;;8733:50:122;8706:18;;7492:25:30;8589:200:122;7431:86:30;7404:3;;7357:179;;;-1:-1:-1;;;;;;7553:27:30;;;;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;:54;;-1:-1:-1;;7553:54:30;-1:-1:-1;;;;;7553:54:30;;;;;7215:417;7771:19;;;;;;;;;;-1:-1:-1;;;;;7823:29:30;;7800:20;7823:29;;;:18;:29;;;;;;:38;;;;;;;;;;:47;;;;;;;;-1:-1:-1;;;;;7823:55:30;;;;;;;;;;;;7771:19;;-1:-1:-1;7892:26:30;;;7888:94;;7927:55;;-1:-1:-1;;;7927:55:30;;;;;23498:25:122;;;23539:18;;;23532:34;;;23471:18;;7927:55:30;23324:248:122;7888:94:30;-1:-1:-1;;;;;;;8038:29:30;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;-1:-1:-1;;;;;8038:55:30;;;;;;;;;;;;8031:62;;;;-1:-1:-1;6931:1169:30;:::o;17257:209:64:-;17373:10;-1:-1:-1;;;;;17373:19:64;;;;;;:53;;-1:-1:-1;;;;;;17410:16:64;;;;;;;:9;:16;;;;;;;17396:10;:30;;17373:53;17369:90;;;17435:24;;-1:-1:-1;;;17435:24:64;;;;;;;;;;;6698:1355;6804:23;;:::i;:::-;6829:7;;6911:52;6921:7;6930:14;;;;:7;:14;:::i;:::-;-1:-1:-1;;;;;1291:22:30;;;;1233:12;1291:22;;;:13;6946:16:64;1291:22:30;;;;;;;:31;;;;;;;;;;;;;6946:16:64;;;;1291:42:30;;;;;1289:44;;-1:-1:-1;;1289:44:30;;;-1:-1:-1;;;;;1289:44:30;;;;;;;;;;;;1144:206;6911:52:64;6890:73;;7018:20;7041:312;;;;;;;;7069:11;-1:-1:-1;;;;;7041:312:64;;;;;7102:3;7041:312;;;;;;7127:7;-1:-1:-1;;;;;7041:312:64;;;;;7156:7;:14;;;;;;;;;;:::i;:::-;7041:312;;;;;;7194:7;:16;;;7041:312;;;;7230:74;7244:11;7257:3;7262:7;7271;:14;;;;;;;;;;:::i;7230:74::-;7041:312;;;;7327:15;;;;:7;:15;:::i;:::-;7041:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7041:312:64;;;;-1:-1:-1;7018:335:64;;-1:-1:-1;7041:312:64;-1:-1:-1;7441:39:64;;-1:-1:-1;7456:7:64;7465:14;;;;:7;:14;:::i;7441:39::-;7418:62;-1:-1:-1;7553:23:64;;-1:-1:-1;;;;;7608:27:64;;;7649:6;7669:15;;;;:7;:15;:::i;:::-;7698:20;;;;;;;;:::i;:::-;7608:120;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7608:120:64;;;;;;;;;;;;:::i;:::-;7552:176;;-1:-1:-1;7552:176:64;-1:-1:-1;7909:56:64;7552:176;7935:15;;;;:7;:15;:::i;:::-;7952:12;7909:56;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;7984:47:64;;;;;;;;8001:11;;;;;7984:47;;-1:-1:-1;;;;;7984:47:64;;;;;;;;;;;;;;;-1:-1:-1;8033:12:64;-1:-1:-1;6698:1355:64;;;;;:::o;14358:669::-;14427:16;14459:13;14455:566;;;14506:7;;14499:40;;-1:-1:-1;;;14499:40:64;;14533:4;14499:40;;;8196:51:122;-1:-1:-1;;;;;14506:7:64;;;;14499:25;;8169:18:122;;14499:40:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14488:51;;14962:8;14974:1;14962:13;14958:52;;14984:26;;-1:-1:-1;;;14984:26:64;;;;;;;;;;;14958:52;14358:669;;;:::o;15288:488::-;15463:19;;:40;-1:-1:-1;15463:40:64;:86;;;15530:19;15507:9;:20;;;:42;15463:86;15459:311;;;15615:19;;15688:20;;;;15572:187;;-1:-1:-1;;;15572:187:64;;;;;37199:25:122;;;;37240:18;;;37233:34;;;37283:18;;;37276:34;37326:18;;;37319:34;;;37171:19;;15572:187:64;36968:391:122;12948:476:64;13133:13;;13129:88;;13162:44;13177:6;13185:9;13196;13162:14;:44::i;:::-;13242:9;13230;:21;13226:192;;;13332:61;13347:6;13355:14;13383:9;13371;:21;13332:14;:61::i;:::-;12948:476;;;;;:::o;13809:447::-;13979:13;;13975:81;;14008:37;14024:9;14035;14008:15;:37::i;:::-;14081:9;14069;:21;14065:185;;;14171:54;14187:14;14215:9;14203;:21;14171:15;:54::i;:::-;13809:447;;;;:::o;1796:162:100:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:100;735:10:110;1855:23:100;1851:101;;1901:40;;-1:-1:-1;;;1901:40:100;;735:10:110;1901:40:100;;;8196:51:122;8169:18;;1901:40:100;8050:203:122;2912:187:100;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:100;;;-1:-1:-1;;;;;;3020:17:100;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;16358:323:64:-;16505:4;16560:1;16540:17;-1:-1:-1;;;;;16540:21:64;;:134;;;-1:-1:-1;16616:58:64;;-1:-1:-1;;;;;;16616:58:64;;-1:-1:-1;;;;;16616:49:64;;;;;:58;;16666:7;;16616:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3076:260:30:-;-1:-1:-1;;;;;3252:29:30;;3229:4;3252:29;;;:18;:29;;;;;;;;:38;;;;;;;;;;:47;;;;;;;;-1:-1:-1;;;;;3252:55:30;;;;;;;;;;:77;;3076:260;;;;;;:::o;896:222:46:-;-1:-1:-1;;;;;987:22:46;;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;16744:438:64:-;16888:4;-1:-1:-1;;;;;16923:33:64;;:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16923:33:64;;:199;;;-1:-1:-1;;;;;;17024:29:64;;336:1:30;17024:29:64;;;:18;:29;;;;;;;;336:1:30;;17054:14:64;;;;:7;:14;:::i;:::-;17024:45;;;;;;;;;;;;;;;:61;17070:7;:14;;;17024:61;;;;;;;;;;;:76;17086:7;:13;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17024:76:64;;;;;;;;;;;;-1:-1:-1;17024:76:64;;:98;;;16744:438;-1:-1:-1;;;;16744:438:64:o;1608:336:30:-;1784:12;1780:77;;1827:30;;-1:-1:-1;;;1827:30:30;;;;;;;;;;;1780:77;-1:-1:-1;;;;;1867:29:30;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;-1:-1:-1;;;;;1867:55:30;;;;;;;;:70;1608:336::o;169:288:45:-;339:7;392:6;400:7;-1:-1:-1;;;;;409:17:45;;375:74;;37896:3:122;37874:16;;;;-1:-1:-1;;;;;;37870:51:122;375:74:45;;;37858:64:122;37945:3;37994:16;;;-1:-1:-1;;;;;;37990:25:122;;;37977:11;;;37970:46;38032:12;;;38025:28;;;;38087:16;;;;38083:25;38069:12;;;38062:47;38125:12;;;38118:28;;;38162:12;;375:74:45;;;;;;;;;;;;365:85;;;;;;358:92;;169:288;;;;;;;:::o;696:194:46:-;-1:-1:-1;;;;;779:19:46;;775:58;;807:26;;-1:-1:-1;;;807:26:46;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:46;;871:3;876:6;843:27;:40::i;438:252::-;-1:-1:-1;;;;;506:19:46;;502:58;;534:26;;-1:-1:-1;;;534:26:46;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:46;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:46;;-1:-1:-1;;;;;13013:32:122;;649:34:46;;;12995:51:122;13062:18;;;13055:34;;;12968:18;;649:34:46;12821:274:122;1271:160:108;1380:43;;;-1:-1:-1;;;;;13013:32:122;;1380:43:108;;;12995:51:122;13062:18;;;;13055:34;;;1380:43:108;;;;;;;;;;12968:18:122;;;;1380:43:108;;;;;;;;;-1:-1:-1;;;;;1380:43:108;-1:-1:-1;;;1380:43:108;;;7968:11;;1353:71;;1373:5;;1380:43;;-1:-1:-1;;;;1380:43:108;-1:-1:-1;;7968:11:108;-1:-1:-1;1373:5:108;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:108;8278:8;8234:16;;-1:-1:-1;8310:15:108;;:68;;8362:11;8377:1;8362:16;;8310:68;;;-1:-1:-1;;;;;8328:26:108;;;:31;8310:68;8306:146;;;8401:40;;-1:-1:-1;;;8401:40:108;;-1:-1:-1;;;;;8214:32:122;;8401:40:108;;;8196:51:122;8169:18;;8401:40:108;8050:203:122;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:122:-;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:122;14:154;-1:-1:-1;14:154:122:o;173:173::-;241:20;;-1:-1:-1;;;;;290:31:122;;280:42;;270:70;;336:1;333;326:12;351:347;402:8;412:6;466:3;459:4;451:6;447:17;443:27;433:55;;484:1;481;474:12;433:55;-1:-1:-1;507:20:122;;-1:-1:-1;;;;;539:30:122;;536:50;;;582:1;579;572:12;536:50;619:4;611:6;607:17;595:29;;671:3;664:4;655:6;647;643:19;639:30;636:39;633:59;;;688:1;685;678:12;703:987;846:6;854;862;870;878;886;894;947:3;935:9;926:7;922:23;918:33;915:53;;;964:1;961;954:12;915:53;987;1032:7;1021:9;987:53;:::i;:::-;977:63;;1059:38;1093:2;1082:9;1078:18;1059:38;:::i;:::-;1049:48;;1144:3;1133:9;1129:19;1116:33;1106:43;;1200:3;1189:9;1185:19;1172:33;-1:-1:-1;;;;;1265:2:122;1257:6;1254:14;1251:34;;;1281:1;1278;1271:12;1251:34;1320:58;1370:7;1361:6;1350:9;1346:22;1320:58;:::i;:::-;1397:8;;-1:-1:-1;1294:84:122;-1:-1:-1;1485:3:122;1470:19;;1457:33;;-1:-1:-1;1502:16:122;;;1499:36;;;1531:1;1528;1521:12;1499:36;;1570:60;1622:7;1611:8;1600:9;1596:24;1570:60;:::i;:::-;703:987;;;;-1:-1:-1;703:987:122;;-1:-1:-1;703:987:122;;;;1544:86;;-1:-1:-1;;;703:987:122:o;2088:163::-;2155:20;;2215:10;2204:22;;2194:33;;2184:61;;2241:1;2238;2231:12;2256:401;2341:6;2349;2357;2365;2418:3;2406:9;2397:7;2393:23;2389:33;2386:53;;;2435:1;2432;2425:12;2386:53;2458:29;2477:9;2458:29;:::i;:::-;2448:39;;2506:37;2539:2;2528:9;2524:18;2506:37;:::i;:::-;2496:47;;2562:38;2596:2;2585:9;2581:18;2562:38;:::i;:::-;2256:401;;;;-1:-1:-1;2552:48:122;;2647:2;2632:18;2619:32;;-1:-1:-1;;2256:401:122:o;2662:469::-;2765:6;2773;2826:2;2814:9;2805:7;2801:23;2797:32;2794:52;;;2842:1;2839;2832:12;2794:52;2882:9;2869:23;-1:-1:-1;;;;;2907:6:122;2904:30;2901:50;;;2947:1;2944;2937:12;2901:50;2970:22;;3026:3;3008:16;;;3004:26;3001:46;;;3043:1;3040;3033:12;3001:46;3066:2;-1:-1:-1;3087:38:122;3121:2;3106:18;;3087:38;:::i;:::-;3077:48;;2662:469;;;;;:::o;3294:::-;3454:4;3496:3;3485:9;3481:19;3473:27;;3533:6;3527:13;3516:9;3509:32;-1:-1:-1;;;;;3601:4:122;3593:6;3589:17;3583:24;3579:49;3572:4;3561:9;3557:20;3550:79;3676:4;3668:6;3664:17;3658:24;3691:66;3751:4;3740:9;3736:20;3722:12;3214;;3202:25;;3276:4;3265:16;;;3259:23;3243:14;;3236:47;3136:153;3691:66;;3294:469;;;;:::o;3768:678::-;3891:6;3899;3907;3915;3923;3976:3;3964:9;3955:7;3951:23;3947:33;3944:53;;;3993:1;3990;3983:12;3944:53;4016:29;4035:9;4016:29;:::i;:::-;4006:39;;4064:62;4118:7;4113:2;4102:9;4098:18;4064:62;:::i;:::-;4054:72;;4173:3;4162:9;4158:19;4145:33;4135:43;;4229:3;4218:9;4214:19;4201:33;-1:-1:-1;;;;;4249:6:122;4246:30;4243:50;;;4289:1;4286;4279:12;4243:50;4328:58;4378:7;4369:6;4358:9;4354:22;4328:58;:::i;:::-;3768:678;;;;-1:-1:-1;3768:678:122;;-1:-1:-1;4405:8:122;;4302:84;3768:678;-1:-1:-1;;;3768:678:122:o;4451:405::-;4535:6;4543;4551;4559;4612:3;4600:9;4591:7;4587:23;4583:33;4580:53;;;4629:1;4626;4619:12;4580:53;4652:29;4671:9;4652:29;:::i;:::-;4642:39;;4700:38;4734:2;4723:9;4719:18;4700:38;:::i;:::-;4690:48;;4757:37;4790:2;4779:9;4775:18;4757:37;:::i;:::-;4747:47;;4813:37;4846:2;4835:9;4831:18;4813:37;:::i;:::-;4803:47;;4451:405;;;;;;;:::o;4861:250::-;4946:1;4956:113;4970:6;4967:1;4964:13;4956:113;;;5046:11;;;5040:18;5027:11;;;5020:39;4992:2;4985:10;4956:113;;;-1:-1:-1;;5103:1:122;5085:16;;5078:27;4861:250::o;5116:270::-;5157:3;5195:5;5189:12;5222:6;5217:3;5210:19;5238:76;5307:6;5300:4;5295:3;5291:14;5284:4;5277:5;5273:16;5238:76;:::i;:::-;5368:2;5347:15;-1:-1:-1;;5343:29:122;5334:39;;;;5375:4;5330:50;;5116:270;-1:-1:-1;;5116:270:122:o;5391:217::-;5538:2;5527:9;5520:21;5501:4;5558:44;5598:2;5587:9;5583:18;5575:6;5558:44;:::i;5795:171::-;5862:20;;-1:-1:-1;;;;;5911:30:122;;5901:41;;5891:69;;5956:1;5953;5946:12;5971:468;6064:6;6072;6080;6088;6096;6149:3;6137:9;6128:7;6124:23;6120:33;6117:53;;;6166:1;6163;6156:12;6117:53;6189:29;6208:9;6189:29;:::i;:::-;6179:39;;6237:37;6270:2;6259:9;6255:18;6237:37;:::i;:::-;6227:47;;6321:2;6310:9;6306:18;6293:32;6283:42;;6344:37;6377:2;6366:9;6362:18;6344:37;:::i;:::-;5971:468;;;;-1:-1:-1;5971:468:122;;6428:3;6413:19;6400:33;;5971:468;-1:-1:-1;;5971:468:122:o;6444:159::-;6511:20;;6571:6;6560:18;;6550:29;;6540:57;;6593:1;6590;6583:12;6608:401;6693:6;6701;6709;6717;6770:3;6758:9;6749:7;6745:23;6741:33;6738:53;;;6787:1;6784;6777:12;6738:53;6810:29;6829:9;6810:29;:::i;:::-;6800:39;;6858:38;6892:2;6881:9;6877:18;6858:38;:::i;:::-;6848:48;;6943:2;6932:9;6928:18;6915:32;6905:42;;6966:37;6999:2;6988:9;6984:18;6966:37;:::i;7014:258::-;7081:6;7089;7142:2;7130:9;7121:7;7117:23;7113:32;7110:52;;;7158:1;7155;7148:12;7110:52;7181:29;7200:9;7181:29;:::i;:::-;7171:39;;7229:37;7262:2;7251:9;7247:18;7229:37;:::i;7859:186::-;7918:6;7971:2;7959:9;7950:7;7946:23;7942:32;7939:52;;;7987:1;7984;7977:12;7939:52;8010:29;8029:9;8010:29;:::i;8258:326::-;8334:6;8342;8350;8403:2;8391:9;8382:7;8378:23;8374:32;8371:52;;;8419:1;8416;8409:12;8371:52;8442:29;8461:9;8442:29;:::i;:::-;8432:39;;8490:37;8523:2;8512:9;8508:18;8490:37;:::i;:::-;8480:47;;8574:2;8563:9;8559:18;8546:32;8536:42;;8258:326;;;;;:::o;8794:184::-;8852:6;8905:2;8893:9;8884:7;8880:23;8876:32;8873:52;;;8921:1;8918;8911:12;8873:52;8944:28;8962:9;8944:28;:::i;9175:1435::-;9338:6;9346;9354;9362;9370;9378;9386;9394;9402;9410;9418:7;9427;9481:3;9469:9;9460:7;9456:23;9452:33;9449:53;;;9498:1;9495;9488:12;9449:53;9521:29;9540:9;9521:29;:::i;:::-;9511:39;;9569:38;9603:2;9592:9;9588:18;9569:38;:::i;:::-;9559:48;;9654:2;9643:9;9639:18;9626:32;9616:42;;9677:37;9710:2;9699:9;9695:18;9677:37;:::i;:::-;9667:47;;9761:3;9750:9;9746:19;9733:33;9723:43;;9813:3;9802:9;9798:19;9785:33;9775:43;;-1:-1:-1;;;;;9861:3:122;9850:9;9846:19;9833:33;9830:57;9827:77;;;9900:1;9897;9890:12;9827:77;9939:85;10016:7;10008:3;9997:9;9993:19;9980:33;9969:9;9965:49;9939:85;:::i;:::-;10043:8;;-1:-1:-1;10070:8:122;-1:-1:-1;;;;;;10121:3:122;10106:19;;10093:33;10090:57;10087:77;;;10160:1;10157;10150:12;10087:77;10199:85;10276:7;10268:3;10257:9;10253:19;10240:33;10229:9;10225:49;10199:85;:::i;:::-;10303:8;;-1:-1:-1;10330:8:122;-1:-1:-1;;;;;;10381:3:122;10366:19;;10353:33;10350:57;10347:77;;;10420:1;10417;10410:12;10347:77;10461:85;10538:7;10530:3;10519:9;10515:19;10502:33;10491:9;10487:49;10461:85;:::i;:::-;10566:9;10555:20;;10595:9;10584:20;;;;9175:1435;;;;;;;;;;;;;;:::o;10615:1399::-;10796:6;10804;10812;10820;10828;10836;10844;10852;10860;10868;10876:7;10930:3;10918:9;10909:7;10905:23;10901:33;10898:53;;;10947:1;10944;10937:12;10898:53;10970;11015:7;11004:9;10970:53;:::i;:::-;10960:63;;11042:38;11076:2;11065:9;11061:18;11042:38;:::i;:::-;11032:48;;11127:3;11116:9;11112:19;11099:33;11089:43;;11179:3;11168:9;11164:19;11151:33;11141:43;;11231:3;11220:9;11216:19;11203:33;11193:43;;-1:-1:-1;;;;;11323:2:122;11316:3;11305:9;11301:19;11288:33;11285:41;11282:61;;;11339:1;11336;11329:12;11282:61;11378:85;11455:7;11447:3;11436:9;11432:19;11419:33;11408:9;11404:49;11378:85;:::i;:::-;11482:8;;-1:-1:-1;11509:8:122;-1:-1:-1;11560:3:122;11545:19;;11532:33;11529:41;-1:-1:-1;11526:61:122;;;11583:1;11580;11573:12;11526:61;11622:85;11699:7;11691:3;11680:9;11676:19;11663:33;11652:9;11648:49;11622:85;:::i;:::-;11726:8;;-1:-1:-1;11753:8:122;-1:-1:-1;11804:3:122;11789:19;;11776:33;11773:41;-1:-1:-1;11770:61:122;;;11827:1;11824;11817:12;11770:61;;11867:85;11944:7;11936:3;11925:9;11921:19;11908:33;11897:9;11893:49;11867:85;:::i;:::-;11971:8;11961:18;;11999:9;11988:20;;;;10615:1399;;;;;;;;;;;;;;:::o;12019:797::-;12157:6;12165;12173;12181;12234:2;12222:9;12213:7;12209:23;12205:32;12202:52;;;12250:1;12247;12240:12;12202:52;12273:29;12292:9;12273:29;:::i;:::-;12263:39;;12321:38;12355:2;12344:9;12340:18;12321:38;:::i;:::-;12311:48;;12410:2;12399:9;12395:18;12382:32;-1:-1:-1;;;;;12474:2:122;12466:6;12463:14;12460:34;;;12490:1;12487;12480:12;12460:34;12528:6;12517:9;12513:22;12503:32;;12573:7;12566:4;12562:2;12558:13;12554:27;12544:55;;12595:1;12592;12585:12;12544:55;12635:2;12622:16;12661:2;12653:6;12650:14;12647:34;;;12677:1;12674;12667:12;12647:34;12730:7;12725:2;12715:6;12712:1;12708:14;12704:2;12700:23;12696:32;12693:45;12690:65;;;12751:1;12748;12741:12;12690:65;12019:797;;;;-1:-1:-1;;12782:2:122;12774:11;;-1:-1:-1;;;12019:797:122:o;13100:624::-;13196:6;13204;13212;13220;13228;13281:3;13269:9;13260:7;13256:23;13252:33;13249:53;;;13298:1;13295;13288:12;13249:53;13321:29;13340:9;13321:29;:::i;:::-;13311:39;;13397:2;13386:9;13382:18;13369:32;13359:42;;13420:37;13453:2;13442:9;13438:18;13420:37;:::i;:::-;13410:47;;13508:2;13497:9;13493:18;13480:32;-1:-1:-1;;;;;13527:6:122;13524:30;13521:50;;;13567:1;13564;13557:12;13729:311;13823:6;13831;13884:3;13872:9;13863:7;13859:23;13855:33;13852:53;;;13901:1;13898;13891:12;13852:53;13924;13969:7;13958:9;13924:53;:::i;:::-;13914:63;;13996:38;14030:2;14019:9;14015:18;13996:38;:::i;14045:658::-;14216:2;14268:21;;;14338:13;;14241:18;;;14360:22;;;14187:4;;14216:2;14439:15;;;;14413:2;14398:18;;;14187:4;14482:195;14496:6;14493:1;14490:13;14482:195;;;14561:13;;-1:-1:-1;;;;;14557:39:122;14545:52;;14652:15;;;;14617:12;;;;14593:1;14511:9;14482:195;;;-1:-1:-1;14694:3:122;;14045:658;-1:-1:-1;;;;;;14045:658:122:o;14708:1008::-;14833:6;14841;14849;14857;14865;14873;14881;14889;14942:3;14930:9;14921:7;14917:23;14913:33;14910:53;;;14959:1;14956;14949:12;14910:53;14982:29;15001:9;14982:29;:::i;:::-;14972:39;;15030:38;15064:2;15053:9;15049:18;15030:38;:::i;:::-;15020:48;;15115:2;15104:9;15100:18;15087:32;15077:42;;15138:37;15171:2;15160:9;15156:18;15138:37;:::i;:::-;15128:47;;15226:3;15215:9;15211:19;15198:33;-1:-1:-1;;;;;15291:2:122;15283:6;15280:14;15277:34;;;15307:1;15304;15297:12;15277:34;15346:58;15396:7;15387:6;15376:9;15372:22;15346:58;:::i;:::-;15423:8;;-1:-1:-1;15320:84:122;-1:-1:-1;15511:3:122;15496:19;;15483:33;;-1:-1:-1;15528:16:122;;;15525:36;;;15557:1;15554;15547:12;15525:36;;15596:60;15648:7;15637:8;15626:9;15622:24;15596:60;:::i;:::-;14708:1008;;;;-1:-1:-1;14708:1008:122;;-1:-1:-1;14708:1008:122;;;;;;15675:8;-1:-1:-1;;;14708:1008:122:o;15721:332::-;15797:6;15805;15813;15866:2;15854:9;15845:7;15841:23;15837:32;15834:52;;;15882:1;15879;15872:12;15834:52;15905:29;15924:9;15905:29;:::i;:::-;15895:39;;15953:37;15986:2;15975:9;15971:18;15953:37;:::i;:::-;15943:47;;16009:38;16043:2;16032:9;16028:18;16009:38;:::i;:::-;15999:48;;15721:332;;;;;:::o;16058:326::-;16134:6;16142;16150;16203:2;16191:9;16182:7;16178:23;16174:32;16171:52;;;16219:1;16216;16209:12;16171:52;16242:28;16260:9;16242:28;:::i;:::-;16232:38;;16289;16323:2;16312:9;16308:18;16289:38;:::i;16389:328::-;16466:6;16474;16482;16535:2;16523:9;16514:7;16510:23;16506:32;16503:52;;;16551:1;16548;16541:12;16503:52;16574:29;16593:9;16574:29;:::i;16722:380::-;16825:6;16833;16841;16894:3;16882:9;16873:7;16869:23;16865:33;16862:53;;;16911:1;16908;16901:12;16862:53;16934;16979:7;16968:9;16934:53;:::i;:::-;16924:63;;17006:38;17040:2;17029:9;17025:18;17006:38;:::i;:::-;16996:48;;17091:3;17080:9;17076:19;17063:33;17053:43;;16722:380;;;;;:::o;17107:258::-;17174:6;17182;17235:2;17223:9;17214:7;17210:23;17206:32;17203:52;;;17251:1;17248;17241:12;17203:52;17274:28;17292:9;17274:28;:::i;17370:399::-;17454:6;17462;17470;17478;17531:3;17519:9;17510:7;17506:23;17502:33;17499:53;;;17548:1;17545;17538:12;17499:53;17571:29;17590:9;17571:29;:::i;:::-;17561:39;;17619:37;17652:2;17641:9;17637:18;17619:37;:::i;:::-;17609:47;;17703:2;17692:9;17688:18;17675:32;17665:42;;17726:37;17759:2;17748:9;17744:18;17726:37;:::i;17774:261::-;3214:12;;3202:25;;3276:4;3265:16;;;3259:23;3243:14;;;3236:47;17968:2;17953:18;;17980:49;3136:153;18040:184;18098:6;18151:2;18139:9;18130:7;18126:23;18122:32;18119:52;;;18167:1;18164;18157:12;18119:52;18190:28;18208:9;18190:28;:::i;18229:345::-;18426:6;18421:3;18414:19;18477:6;18469;18464:2;18459:3;18455:12;18442:42;18396:3;18507:16;;18525:2;18503:25;18537:13;;;18503:25;18229:345;-1:-1:-1;;18229:345:122:o;18579:285::-;18690:10;18664:24;18682:5;18664:24;:::i;:::-;18660:41;18655:3;18648:54;18758:4;18751:5;18747:16;18734:30;18727:4;18722:3;18718:14;18711:54;-1:-1:-1;;;;;18801:35:122;18830:4;18823:5;18819:16;18801:35;:::i;:::-;18797:60;18790:4;18785:3;18781:14;18774:84;;;18579:285::o;18869:266::-;18957:6;18952:3;18945:19;19009:6;19002:5;18995:4;18990:3;18986:14;18973:43;-1:-1:-1;19061:1:122;19036:16;;;19054:4;19032:27;;;19025:38;;;;19117:2;19096:15;;;-1:-1:-1;;19092:29:122;19083:39;;;19079:50;;18869:266::o;19140:752::-;19469:52;19511:9;19503:6;19469:52;:::i;:::-;19557:6;19552:2;19541:9;19537:18;19530:34;19601:3;19595;19584:9;19580:19;19573:32;19450:4;19628:62;19685:3;19674:9;19670:19;19662:6;19654;19628:62;:::i;:::-;-1:-1:-1;;;;;19727:32:122;;19747:3;19706:19;;19699:61;19797:22;;;19791:3;19776:19;;19769:51;19837:49;19801:6;19871;19863;19837:49;:::i;:::-;19829:57;19140:752;-1:-1:-1;;;;;;;;;;19140:752:122:o;19897:352::-;20109:3;20094:19;;20122:52;20098:9;20156:6;20122:52;:::i;:::-;-1:-1:-1;;;;;20210:32:122;;;;20205:2;20190:18;;;;20183:60;19897:352;;-1:-1:-1;19897:352:122:o;20254:127::-;20315:10;20310:3;20306:20;20303:1;20296:31;20346:4;20343:1;20336:15;20370:4;20367:1;20360:15;20386:279;20475:6;20528:2;20516:9;20507:7;20503:23;20499:32;20496:52;;;20544:1;20541;20534:12;20496:52;20576:9;20570:16;20615:1;20608:5;20605:12;20595:40;;20631:1;20628;20621:12;20670:118;20756:5;20749:13;20742:21;20735:5;20732:32;20722:60;;20778:1;20775;20768:12;20793:245;20860:6;20913:2;20901:9;20892:7;20888:23;20884:32;20881:52;;;20929:1;20926;20919:12;20881:52;20961:9;20955:16;20980:28;21002:5;20980:28;:::i;21043:462::-;-1:-1:-1;;;;;21328:15:122;;;21310:34;;21392:10;21380:23;;;;21375:2;21360:18;;21353:51;21440:15;;21435:2;21420:18;;21413:43;21487:2;21472:18;;21465:34;;;;21259:3;21244:19;;21043:462::o;21510:241::-;21566:6;21619:2;21607:9;21598:7;21594:23;21590:32;21587:52;;;21635:1;21632;21625:12;21587:52;21674:9;21661:23;21693:28;21715:5;21693:28;:::i;22149:127::-;22210:10;22205:3;22201:20;22198:1;22191:31;22241:4;22238:1;22231:15;22265:4;22262:1;22255:15;22281:698;22334:5;22387:3;22380:4;22372:6;22368:17;22364:27;22354:55;;22405:1;22402;22395:12;22354:55;22434:6;22428:13;-1:-1:-1;;;;;22497:2:122;22493;22490:10;22487:36;;;22503:18;;:::i;:::-;22578:2;22572:9;22546:2;22632:13;;-1:-1:-1;;22628:22:122;;;22652:2;22624:31;22620:40;22608:53;;;22676:18;;;22696:22;;;22673:46;22670:72;;;22722:18;;:::i;:::-;22762:10;22758:2;22751:22;22797:2;22789:6;22782:18;22843:3;22836:4;22831:2;22823:6;22819:15;22815:26;22812:35;22809:55;;;22860:1;22857;22850:12;22809:55;22873:76;22946:2;22939:4;22931:6;22927:17;22920:4;22912:6;22908:17;22873:76;:::i;22984:335::-;23063:6;23116:2;23104:9;23095:7;23091:23;23087:32;23084:52;;;23132:1;23129;23122:12;23084:52;23165:9;23159:16;-1:-1:-1;;;;;23190:6:122;23187:30;23184:50;;;23230:1;23227;23220:12;23184:50;23253:60;23305:7;23296:6;23285:9;23281:22;23253:60;:::i;23577:527::-;23862:10;23850:23;;;;23832:42;;23905:2;23890:18;;23883:34;;;;-1:-1:-1;;;;;23953:32:122;;;;23948:2;23933:18;;23926:60;-1:-1:-1;;;;;24022:31:122;24017:2;24002:18;;23995:59;24085:3;24070:19;;24063:35;23819:3;23804:19;;23577:527::o;24109:918::-;24488:6;24477:9;24470:25;24543:6;24535;24531:19;24526:2;24515:9;24511:18;24504:47;24587:6;24582:2;24571:9;24567:18;24560:34;24630:6;24625:2;24614:9;24610:18;24603:34;24674:3;24668;24657:9;24653:19;24646:32;24451:4;24701:62;24758:3;24747:9;24743:19;24735:6;24727;24701:62;:::i;:::-;24812:9;24804:6;24800:22;24794:3;24783:9;24779:19;24772:51;24846:49;24888:6;24880;24872;24846:49;:::i;:::-;24832:63;;24944:9;24936:6;24932:22;24926:3;24915:9;24911:19;24904:51;24972:49;25014:6;25006;24998;24972:49;:::i;:::-;24964:57;24109:918;-1:-1:-1;;;;;;;;;;;;;24109:918:122:o;25427:127::-;25488:10;25483:3;25479:20;25476:1;25469:31;25519:4;25516:1;25509:15;25543:4;25540:1;25533:15;25559:125;25624:9;;;25645:10;;;25642:36;;;25658:18;;:::i;26164:1006::-;26558:4;26587:3;26599:52;26641:9;26633:6;26599:52;:::i;:::-;26687:6;26682:2;26671:9;26667:18;26660:34;26731:6;26725:3;26714:9;26710:19;26703:35;26775:6;26769:3;26758:9;26754:19;26747:35;26819:2;26813:3;26802:9;26798:19;26791:31;26845:61;26902:2;26891:9;26887:18;26879:6;26871;26845:61;:::i;:::-;26831:75;;26955:9;26947:6;26943:22;26937:3;26926:9;26922:19;26915:51;26989:49;27031:6;27023;27015;26989:49;:::i;:::-;26975:63;;27087:9;27079:6;27075:22;27069:3;27058:9;27054:19;27047:51;27115:49;27157:6;27149;27141;27115:49;:::i;27175:1876::-;-1:-1:-1;;;;;27520:32:122;;27502:51;;27450:2;27572;27590:18;;;27583:30;;;27475:18;;;27648:22;;;27421:4;;27450:2;27689;;27707:18;;;27771:1;27767:14;;;27752:30;;27748:39;;27810:6;27421:4;27844:1178;27858:6;27855:1;27852:13;27844:1178;;;27923:22;;;-1:-1:-1;;27919:36:122;27907:49;;27995:20;;28070:14;28066:27;;;-1:-1:-1;;28062:41:122;28038:66;;28028:94;;28118:1;28115;28108:12;28028:94;28148:31;;28202:10;;28244:24;28148:31;28244:24;:::i;:::-;28240:33;28232:6;28225:49;28350:2;28315:33;28344:2;28337:5;28333:14;28315:33;:::i;:::-;28311:42;28306:2;28298:6;28294:15;28287:67;;28419:2;28412:5;28408:14;28395:28;28508:2;28504:7;28496:5;28480:14;28476:26;28472:40;28450:20;28446:67;28436:95;;28527:1;28524;28517:12;28436:95;28559:32;28667:16;;;;28618:21;-1:-1:-1;;;;;28699:30:122;;28696:50;;;28742:1;28739;28732:12;28696:50;28795:6;28779:14;28775:27;28766:7;28762:41;28759:61;;;28816:1;28813;28806:12;28759:61;28857:2;28852;28844:6;28840:15;28833:27;28883:59;28938:2;28930:6;28926:15;28918:6;28909:7;28883:59;:::i;:::-;29000:12;;;;28873:69;-1:-1:-1;;;28965:15:122;;;;27880:1;27873:9;27844:1178;;;-1:-1:-1;29039:6:122;;27175:1876;-1:-1:-1;;;;;;;;;;27175:1876:122:o;29056:271::-;29239:6;29231;29226:3;29213:33;29195:3;29265:16;;29290:13;;;29265:16;29056:271;-1:-1:-1;29056:271:122:o;29332:598::-;-1:-1:-1;;;;;29637:15:122;;;29619:34;;29689:15;;29684:2;29669:18;;29662:43;29736:2;29721:18;;29714:34;;;29796:6;29784:19;;29779:2;29764:18;;29757:47;29599:3;29835;29820:19;;29813:32;;;29562:4;;29862:62;;29904:19;;29896:6;29888;29862:62;:::i;:::-;29854:70;29332:598;-1:-1:-1;;;;;;;;29332:598:122:o;29935:703::-;30195:4;30241:1;30237;30232:3;30228:11;30224:19;30282:2;30274:6;30270:15;30259:9;30252:34;30322:6;30317:2;30306:9;30302:18;30295:34;30365:3;30360:2;30349:9;30345:18;30338:31;30392:62;30449:3;30438:9;30434:19;30426:6;30418;30392:62;:::i;:::-;30502:2;30494:6;30490:15;30485:2;30474:9;30470:18;30463:43;30555:9;30547:6;30543:22;30537:3;30526:9;30522:19;30515:51;30583:49;30625:6;30617;30609;30583:49;:::i;:::-;30575:57;29935:703;-1:-1:-1;;;;;;;;;;;29935:703:122:o;31106:360::-;31336:10;31324:23;;;;31306:42;;-1:-1:-1;;;;;31384:32:122;;;;31379:2;31364:18;;31357:60;31448:2;31433:18;;31426:34;31294:2;31279:18;;31106:360::o;31844:424::-;32084:3;32069:19;;32097:52;32073:9;32131:6;32097:52;:::i;:::-;-1:-1:-1;;;;;32185:32:122;;;;32180:2;32165:18;;32158:60;32249:3;32234:19;32227:35;31844:424;;-1:-1:-1;31844:424:122:o;32273:180::-;-1:-1:-1;;;;;32378:10:122;;;32390;;;32374:27;;32413:11;;;32410:37;;;32427:18;;:::i;33227:521::-;33304:4;33310:6;33370:11;33357:25;33464:2;33460:7;33449:8;33433:14;33429:29;33425:43;33405:18;33401:68;33391:96;;33483:1;33480;33473:12;33391:96;33510:33;;33562:20;;;-1:-1:-1;;;;;;33594:30:122;;33591:50;;;33637:1;33634;33627:12;33591:50;33670:4;33658:17;;-1:-1:-1;33701:14:122;33697:27;;;33687:38;;33684:58;;;33738:1;33735;33728:12;33753:1085;34008:2;33990:21;;;34051:13;;-1:-1:-1;;;;;34047:38:122;34027:18;;;34020:66;34145:4;34133:17;;34127:24;34153:10;34123:41;34117:3;34102:19;;34095:70;34224:4;34212:17;;34206:24;-1:-1:-1;;;;;34202:50:122;34240:3;34181:19;;34174:79;34288:15;;34282:22;-1:-1:-1;;34313:52:122;34360:3;34345:19;;34282:22;1771:10;1760:22;1748:35;;1695:94;34313:52;;34421:3;34413:6;34409:16;34403:23;34396:4;34385:9;34381:20;34374:53;34482:3;34474:6;34470:16;34464:23;34458:3;34447:9;34443:19;34436:52;34537:3;34529:6;34525:16;34519:23;34579:4;34573:3;34562:9;34558:19;34551:33;34604:53;34652:3;34641:9;34637:19;34621:14;34604:53;:::i;:::-;34593:64;;34704:9;34699:3;34695:19;34688:4;34677:9;34673:20;34666:49;34732:46;34774:3;34766:6;34758;34732:46;:::i;:::-;34724:54;;;34787:45;34826:4;34815:9;34811:20;34803:6;7347:13;7340:21;7328:34;;7277:91;34843:478;34913:5;34961:4;34949:9;34944:3;34940:19;34936:30;34933:50;;;34979:1;34976;34969:12;34933:50;35012:4;35006:11;35056:4;35048:6;35044:17;35127:6;35115:10;35112:22;-1:-1:-1;;;;;35079:10:122;35076:34;35073:62;35070:88;;;35138:18;;:::i;:::-;35174:4;35167:24;35239:16;;35224:32;;35310:2;35295:18;;;35289:25;35272:15;;;35265:50;;;;-1:-1:-1;35209:6:122;34843:478;-1:-1:-1;34843:478:122:o;35326:259::-;35426:6;35479:2;35467:9;35458:7;35454:23;35450:32;35447:52;;;35495:1;35492;35485:12;35447:52;35518:61;35571:7;35560:9;35518:61;:::i;35797:471::-;35915:6;35923;35976:2;35964:9;35955:7;35951:23;35947:32;35944:52;;;35992:1;35989;35982:12;35944:52;36015:61;36068:7;36057:9;36015:61;:::i;:::-;36005:71;;36120:2;36109:9;36105:18;36099:25;-1:-1:-1;;;;;36139:6:122;36136:30;36133:50;;;36179:1;36176;36169:12;36133:50;36202:60;36254:7;36245:6;36234:9;36230:22;36202:60;:::i;:::-;36192:70;;;35797:471;;;;;:::o;36273:501::-;36504:2;36493:9;36486:21;36467:4;36530:44;36570:2;36559:9;36555:18;36547:6;36530:44;:::i;:::-;36622:9;36614:6;36610:22;36605:2;36594:9;36590:18;36583:50;36650:49;36692:6;36684;36676;36650:49;:::i;:::-;36642:57;;;36764:1;36760;36755:3;36751:11;36747:19;36739:6;36735:32;36730:2;36719:9;36715:18;36708:60;36273:501;;;;;;;:::o;36779:184::-;36849:6;36902:2;36890:9;36881:7;36877:23;36873:32;36870:52;;;36918:1;36915;36908:12;36870:52;-1:-1:-1;36941:16:122;;36779:184;-1:-1:-1;36779:184:122:o;37364:254::-;37548:2;37533:18;;37560:52;37537:9;37594:6;37560:52;:::i","linkReferences":{},"immutableReferences":{"6210":[{"start":1878,"length":32}],"7191":[{"start":1301,"length":32},{"start":9945,"length":32},{"start":11953,"length":32},{"start":12055,"length":32},{"start":13431,"length":32},{"start":13533,"length":32}]}},"methodIdentifiers":{"EMPTY_PAYLOAD_HASH()":"cb5026b9","NIL_PAYLOAD_HASH()":"2baf0be7","blockedLibrary()":"73318091","burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","clear(address,(uint32,bytes32,uint64),bytes32,bytes)":"2a56c1b0","composeQueue(address,address,bytes32,uint16)":"35d330b0","defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","delegates(address)":"587cde1e","eid()":"416ecebf","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendContext()":"14f651a9","getSendLibrary(address,uint32)":"b96a277f","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","initializable((uint32,bytes32,uint64),address)":"861e1ca5","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSendingMessage()":"79624ca9","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)":"697fe6b6","lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":"0c0c389e","lzReceiveAlert((uint32,bytes32,uint64),address,bytes32,uint256,uint256,bytes,bytes,bytes)":"6bf73fa3","lzToken()":"e4fe1d94","nativeToken()":"e1758bd8","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","owner()":"8da5cb5b","quote((uint32,bytes32,bytes,bytes,bool),address)":"ddc28c58","receiveLibraryTimeout(address,uint32)":"ef667aa1","recoverToken(address,address,uint256)":"a7229fd9","registerLibrary(address)":"e8964e81","renounceOwnership()":"715018a6","send((uint32,bytes32,bytes,bytes,bool),address)":"2637a450","sendCompose(address,bytes32,uint16,bytes)":"7cb59012","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setDelegate(address)":"ca5eb5e1","setLzToken(address)":"c28e0eed","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30","skip(address,uint32,bytes32,uint64)":"d70b8902","transferOwnership(address)":"f2fde38b","verifiable((uint32,bytes32,uint64),address)":"c9a54a99","verify((uint32,bytes32,uint64),address,bytes32)":"a825d747"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LZ_AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ComposeExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_ComposeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultReceiveLibUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultSendLibUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredNative\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"suppliedNative\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredLzToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"suppliedLzToken\",\"type\":\"uint256\"}],\"name\":\"LZ_InsufficientFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"LZ_InvalidNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidPayloadHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidReceiveLibrary\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyNonDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyReceiveLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredOrDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlySendLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PathNotInitializable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PathNotVerifiable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_PayloadHashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_SameValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_SendReentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedInterface\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ZeroLzTokenFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"DelegateSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzReceiveAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"LzTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"PacketDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedPayload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sendLibrary\",\"type\":\"address\"}],\"name\":\"PacketSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"EMPTY_PAYLOAD_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NIL_PAYLOAD_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockedLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"inboundNonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"initializable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_actualReceiveLib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"lzComposeAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"lzReceiveAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"recoverToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"}],\"name\":\"setLzToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"burn(address,uint32,bytes32,uint64,bytes32)\":{\"details\":\"Marks a nonce as unexecutable and un-verifiable. The nonce can never be re-verified or executed.Reverts if the provided _payloadHash does not match the currently verified payload hash.Only packets with nonces less than or equal to the lazy inbound nonce can be burned.Reverts if the nonce has already been executed.Authenticated by the caller\"},\"clear(address,(uint32,bytes32,uint64),bytes32,bytes)\":{\"details\":\"Oapp uses this interface to clear a message.this is a PULL mode versus the PUSH mode of lzReceivethe cleared message can be ignored by the app (effectively burnt)authenticated by oapp\",\"params\":{\"_guid\":\"the guid of the message\",\"_message\":\"the message\",\"_origin\":\"the origin of the message\"}},\"constructor\":{\"params\":{\"_eid\":\"the unique Endpoint Id for this deploy that all other Endpoints can use to send to it\"}},\"getConfig(address,address,uint32,uint32)\":{\"details\":\"a view function to query the current configuration of the OApp\"},\"getReceiveLibrary(address,uint32)\":{\"details\":\"the receiveLibrary can be lazily resolved that if not set it will point to the default configured by LayerZero\"},\"getSendContext()\":{\"details\":\"returns (eid, sender) if sending message, (0, 0) otherwise\"},\"getSendLibrary(address,uint32)\":{\"details\":\"If the Oapp does not have a selected Send Library, this function will resolve to the default library configured by LayerZero\",\"params\":{\"_dstEid\":\"The destination endpoint id\",\"_sender\":\"The address of the Oapp that is sending the message\"},\"returns\":{\"lib\":\"address of the Send Library\"}},\"inboundNonce(address,uint32,bytes32)\":{\"details\":\"returns the max index of the longest gapless sequence of verified msg nonces.the uninitialized value is 0. the first nonce is always 1it starts from the lazyInboundNonce (last checkpoint) and iteratively check if the next nonce has been verifiedthis function can OOG if too many backlogs, but it can be trivially fixed by just clearing some prior messagesNOTE: Oapp explicitly skipped nonces count as \\\"verified\\\" for these purposeseg. [1,2,3,4,6,7] => 4, [1,2,6,8,10] => 2, [1,3,4,5,6] => 1\"},\"isSendingMessage()\":{\"details\":\"returns true if sending message\"},\"isSupportedEid(uint32)\":{\"details\":\"returns true only if both the default send/receive libraries are set\"},\"isValidReceiveLibrary(address,uint32,address)\":{\"details\":\"called when the endpoint checks if the msgLib attempting to verify the msg is the configured msgLib of the Oappthis check provides the ability for Oapp to lock in a trusted msgLibit will fist check if the msgLib is the currently configured one. then check if the msgLib is the one in grace period of msgLib versioning upgrade\"},\"lzCompose(address,address,bytes32,uint16,bytes,bytes)\":{\"details\":\"execute a composed messages from the sender to the composer (receiver)the execution provides the execution context (caller, extraData) to the receiver.      the receiver can optionally assert the caller and validate the untrusted extraDatacan not re-entrant\",\"params\":{\"_extraData\":\"the extra data provided by the executor. this data is untrusted and should be validated.\",\"_from\":\"the address which sends the composed message. in most cases, it is the Oapp's address.\",\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_to\":\"the address which receives the composed message\"}},\"lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)\":{\"params\":{\"_extraData\":\"the extra data provided by the executor\",\"_from\":\"the address which sends the composed message\",\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_reason\":\"the reason why the message is not received\",\"_to\":\"the address which receives the composed message\"}},\"lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)\":{\"details\":\"MESSAGING STEP 3 - the last stepexecute a verified message to the designated receiverthe execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacant reentrant because the payload is cleared before execution\",\"params\":{\"_extraData\":\"the extra data provided by the executor. this data is untrusted and should be validated.\",\"_guid\":\"the guid of the message\",\"_message\":\"the message\",\"_origin\":\"the origin of the message\",\"_receiver\":\"the receiver of the message\"}},\"lzReceiveAlert((uint32,bytes32,uint64),address,bytes32,uint256,uint256,bytes,bytes,bytes)\":{\"params\":{\"_extraData\":\"the extra data provided by the executor.\",\"_guid\":\"the guid of the message\",\"_message\":\"the message\",\"_origin\":\"the origin of the message\",\"_reason\":\"the reason for failure\",\"_receiver\":\"the receiver of the message\"}},\"nativeToken()\":{\"details\":\"override this if the endpoint is charging ERC20 tokens as native\",\"returns\":{\"_0\":\"0x0 if using native. otherwise the address of the native ERC20 token\"}},\"nextGuid(address,uint32,bytes32)\":{\"details\":\"returns the GUID for the next message given the paththe Oapp might want to include the GUID into the message in some cases\"},\"nilify(address,uint32,bytes32,uint64,bytes32)\":{\"details\":\"Marks a packet as verified, but disallows execution until it is re-verified.Reverts if the provided _payloadHash does not match the currently verified payload hash.A non-verified nonce can be nilified by passing EMPTY_PAYLOAD_HASH for _payloadHash.Assumes the computational intractability of finding a payload that hashes to bytes32.max.Authenticated by the caller\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quote((uint32,bytes32,bytes,bytes,bool),address)\":{\"details\":\"MESSAGING STEP 0\",\"params\":{\"_params\":\"the messaging parameters\",\"_sender\":\"the sender of the message\"}},\"recoverToken(address,address,uint256)\":{\"details\":\"recover the token sent to this contract by mistakeonly owner\",\"params\":{\"_amount\":\"the amount to send\",\"_to\":\"the address to send the token to\",\"_token\":\"the token to recover. if 0x0 then it is native token\"}},\"registerLibrary(address)\":{\"details\":\"all libraries have to implement the erc165 interface to prevent wrong configurationsonly owner\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,bytes,bytes,bool),address)\":{\"details\":\"MESSAGING STEP 1 - OApp need to transfer the fees to the endpoint before sending the message\",\"params\":{\"_params\":\"the messaging parameters\",\"_refundAddress\":\"the address to refund both the native and lzToken\"}},\"sendCompose(address,bytes32,uint16,bytes)\":{\"details\":\"the Oapp sends the lzCompose message to the endpointthe composer MUST assert the sender because anyone can send compose msg with this functionwith the same GUID, the Oapp can send compose to multiple _composer at the same timeauthenticated by the msg.sender\",\"params\":{\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_to\":\"the address which will receive the composed message\"}},\"setConfig(address,address,(uint32,uint32,bytes)[])\":{\"details\":\"authenticated by the _oapp\"},\"setDefaultReceiveLibrary(uint32,address,uint256)\":{\"details\":\"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.only owner\"},\"setDefaultReceiveLibraryTimeout(uint32,address,uint256)\":{\"details\":\"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration\",\"params\":{\"_expiry\":\"the block number when lib expires\"}},\"setDefaultSendLibrary(uint32,address)\":{\"details\":\"owner setting the defaultSendLibrarycan set to the blockedLibrary, which is a registered librarythe msgLib must enable the support before they can be registered to the endpoint as the defaultonly owner\"},\"setLzToken(address)\":{\"details\":\"allows reconfiguration to recover from wrong configurationsusers should never approve the EndpointV2 contract to spend their non-layerzero tokensoverride this function if the endpoint is charging ERC20 tokens as nativeonly owner\",\"params\":{\"_lzToken\":\"the new layer zero token address\"}},\"setReceiveLibrary(address,uint32,address,uint256)\":{\"details\":\"Oapp setting the receiveLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.authenticated by the Oapp\",\"params\":{\"_gracePeriod\":\"the number of blocks from now until oldLib expires\"}},\"setReceiveLibraryTimeout(address,uint32,address,uint256)\":{\"details\":\"Oapp setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2)  force remove the current configuration (3) change to a new configuration\",\"params\":{\"_expiry\":\"the block number when lib expires\"}},\"setSendLibrary(address,uint32,address)\":{\"details\":\"Oapp setting the sendLibrarymust be a registered library (including blockLibrary) with the eid support enabledauthenticated by the Oapp\"},\"skip(address,uint32,bytes32,uint64)\":{\"details\":\"the caller must provide _nonce to prevent skipping the unintended nonceit could happen in some race conditions, e.g. to skip nonce 3, but nonce 3 was consumed firstusage: skipping the next nonce to prevent message verification, e.g. skip a message when Precrime throws alertsif the Oapp wants to skip a verified message, it should call the clear() function insteadafter skipping, the lazyInboundNonce is set to the provided nonce, which makes the inboundNonce also the provided nonceie. allows the Oapp to increment the lazyInboundNonce without having had that corresponding msg be verified\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"verify((uint32,bytes32,uint64),address,bytes32)\":{\"details\":\"MESSAGING STEP 2 - on the destination chainconfigured receive library verifies a message\",\"params\":{\"_origin\":\"a struct holding the srcEid, nonce, and sender of the message\",\"_payloadHash\":\"the payload hash of the message\",\"_receiver\":\"the receiver of the message\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSendLibrary(address,uint32)\":{\"notice\":\"The Send Library is the Oapp specified library that will be used to send the message to the destination endpoint. If the Oapp does not specify a Send Library, the default Send Library will be used.\"},\"quote((uint32,bytes32,bytes,bytes,bool),address)\":{\"notice\":\"This view function gives the application built on top of LayerZero the ability to requests a quote with the same parameters as they would to send their message. Since the quotes are given on chain there is a race condition in which the prices could change between the time the user gets their quote and the time they submit their message. If the price moves up and the user doesn't send enough funds the transaction will revert, if the price goes down the _refundAddress provided by the app will be refunded the difference.\"},\"setDelegate(address)\":{\"notice\":\"delegate is authorized by the oapp to configure anything in layerzero\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":\"EndpointV2Mock\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0xfaca7205d4211ee9208a7e59171e2301731f3d2a20c49b4a839821871f5fdd49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f254bc60ac26687b5320a43a556e30777b0745abf7cd64d5f4720d9b1d1f7fdf\",\"dweb:/ipfs/QmRSJEZVgxaC3L2DdE6s8P5qkYfM3V5JMeseeFJJqGR4xz\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"LZ_AlreadyRegistered"},{"inputs":[],"type":"error","name":"LZ_ComposeExists"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_ComposeNotFound"},{"inputs":[],"type":"error","name":"LZ_DefaultReceiveLibUnavailable"},{"inputs":[],"type":"error","name":"LZ_DefaultSendLibUnavailable"},{"inputs":[{"internalType":"uint256","name":"requiredNative","type":"uint256"},{"internalType":"uint256","name":"suppliedNative","type":"uint256"},{"internalType":"uint256","name":"requiredLzToken","type":"uint256"},{"internalType":"uint256","name":"suppliedLzToken","type":"uint256"}],"type":"error","name":"LZ_InsufficientFee"},{"inputs":[],"type":"error","name":"LZ_InvalidExpiry"},{"inputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"type":"error","name":"LZ_InvalidNonce"},{"inputs":[],"type":"error","name":"LZ_InvalidPayloadHash"},{"inputs":[],"type":"error","name":"LZ_InvalidReceiveLibrary"},{"inputs":[],"type":"error","name":"LZ_LzTokenUnavailable"},{"inputs":[],"type":"error","name":"LZ_OnlyNonDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlyReceiveLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlySendLib"},{"inputs":[],"type":"error","name":"LZ_PathNotInitializable"},{"inputs":[],"type":"error","name":"LZ_PathNotVerifiable"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_PayloadHashNotFound"},{"inputs":[],"type":"error","name":"LZ_SameValue"},{"inputs":[],"type":"error","name":"LZ_SendReentrancy"},{"inputs":[],"type":"error","name":"LZ_Unauthorized"},{"inputs":[],"type":"error","name":"LZ_UnsupportedEid"},{"inputs":[],"type":"error","name":"LZ_UnsupportedInterface"},{"inputs":[],"type":"error","name":"LZ_ZeroLzTokenFee"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false}],"type":"event","name":"ComposeDelivered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false}],"type":"event","name":"ComposeSent","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"DefaultReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultSendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"delegate","type":"address","indexed":false}],"type":"event","name":"DelegateSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false}],"type":"event","name":"InboundNonceSkipped","anonymous":false},{"inputs":[{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"LibraryRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzComposeAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzReceiveAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false}],"type":"event","name":"LzTokenSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketBurnt","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false}],"type":"event","name":"PacketDelivered","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketNilified","anonymous":false},{"inputs":[{"internalType":"bytes","name":"encodedPayload","type":"bytes","indexed":false},{"internalType":"bytes","name":"options","type":"bytes","indexed":false},{"internalType":"address","name":"sendLibrary","type":"address","indexed":false}],"type":"event","name":"PacketSent","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"ReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"timeout","type":"uint256","indexed":false}],"type":"event","name":"ReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"SendLibrarySet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"EMPTY_PAYLOAD_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NIL_PAYLOAD_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blockedLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"clear"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint16","name":"index","type":"uint16"}],"stateMutability":"view","type":"function","name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"oapp","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"delegate","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSendContext","outputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"inboundNonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"initializable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"lib","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"address","name":"_actualReceiveLib","type":"address"}],"stateMutability":"view","type":"function","name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"uint256","name":"_gas","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"},{"internalType":"bytes","name":"_reason","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"lzComposeAlert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint256","name":"_gas","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"},{"internalType":"bytes","name":"_reason","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"lzReceiveAlert"},{"inputs":[],"stateMutability":"view","type":"function","name":"lzToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"nilify"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"outboundNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"recoverToken"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLibrary"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sendCompose"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibrary"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibraryTimeout"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSendLibrary"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setLzToken"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibraryTimeout"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSendLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verify"}],"devdoc":{"kind":"dev","methods":{"burn(address,uint32,bytes32,uint64,bytes32)":{"details":"Marks a nonce as unexecutable and un-verifiable. The nonce can never be re-verified or executed.Reverts if the provided _payloadHash does not match the currently verified payload hash.Only packets with nonces less than or equal to the lazy inbound nonce can be burned.Reverts if the nonce has already been executed.Authenticated by the caller"},"clear(address,(uint32,bytes32,uint64),bytes32,bytes)":{"details":"Oapp uses this interface to clear a message.this is a PULL mode versus the PUSH mode of lzReceivethe cleared message can be ignored by the app (effectively burnt)authenticated by oapp","params":{"_guid":"the guid of the message","_message":"the message","_origin":"the origin of the message"}},"constructor":{"params":{"_eid":"the unique Endpoint Id for this deploy that all other Endpoints can use to send to it"}},"getConfig(address,address,uint32,uint32)":{"details":"a view function to query the current configuration of the OApp"},"getReceiveLibrary(address,uint32)":{"details":"the receiveLibrary can be lazily resolved that if not set it will point to the default configured by LayerZero"},"getSendContext()":{"details":"returns (eid, sender) if sending message, (0, 0) otherwise"},"getSendLibrary(address,uint32)":{"details":"If the Oapp does not have a selected Send Library, this function will resolve to the default library configured by LayerZero","params":{"_dstEid":"The destination endpoint id","_sender":"The address of the Oapp that is sending the message"},"returns":{"lib":"address of the Send Library"}},"inboundNonce(address,uint32,bytes32)":{"details":"returns the max index of the longest gapless sequence of verified msg nonces.the uninitialized value is 0. the first nonce is always 1it starts from the lazyInboundNonce (last checkpoint) and iteratively check if the next nonce has been verifiedthis function can OOG if too many backlogs, but it can be trivially fixed by just clearing some prior messagesNOTE: Oapp explicitly skipped nonces count as \"verified\" for these purposeseg. [1,2,3,4,6,7] => 4, [1,2,6,8,10] => 2, [1,3,4,5,6] => 1"},"isSendingMessage()":{"details":"returns true if sending message"},"isSupportedEid(uint32)":{"details":"returns true only if both the default send/receive libraries are set"},"isValidReceiveLibrary(address,uint32,address)":{"details":"called when the endpoint checks if the msgLib attempting to verify the msg is the configured msgLib of the Oappthis check provides the ability for Oapp to lock in a trusted msgLibit will fist check if the msgLib is the currently configured one. then check if the msgLib is the one in grace period of msgLib versioning upgrade"},"lzCompose(address,address,bytes32,uint16,bytes,bytes)":{"details":"execute a composed messages from the sender to the composer (receiver)the execution provides the execution context (caller, extraData) to the receiver.      the receiver can optionally assert the caller and validate the untrusted extraDatacan not re-entrant","params":{"_extraData":"the extra data provided by the executor. this data is untrusted and should be validated.","_from":"the address which sends the composed message. in most cases, it is the Oapp's address.","_guid":"the message guid","_message":"the message","_to":"the address which receives the composed message"}},"lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)":{"params":{"_extraData":"the extra data provided by the executor","_from":"the address which sends the composed message","_guid":"the message guid","_message":"the message","_reason":"the reason why the message is not received","_to":"the address which receives the composed message"}},"lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":{"details":"MESSAGING STEP 3 - the last stepexecute a verified message to the designated receiverthe execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacant reentrant because the payload is cleared before execution","params":{"_extraData":"the extra data provided by the executor. this data is untrusted and should be validated.","_guid":"the guid of the message","_message":"the message","_origin":"the origin of the message","_receiver":"the receiver of the message"}},"lzReceiveAlert((uint32,bytes32,uint64),address,bytes32,uint256,uint256,bytes,bytes,bytes)":{"params":{"_extraData":"the extra data provided by the executor.","_guid":"the guid of the message","_message":"the message","_origin":"the origin of the message","_reason":"the reason for failure","_receiver":"the receiver of the message"}},"nativeToken()":{"details":"override this if the endpoint is charging ERC20 tokens as native","returns":{"_0":"0x0 if using native. otherwise the address of the native ERC20 token"}},"nextGuid(address,uint32,bytes32)":{"details":"returns the GUID for the next message given the paththe Oapp might want to include the GUID into the message in some cases"},"nilify(address,uint32,bytes32,uint64,bytes32)":{"details":"Marks a packet as verified, but disallows execution until it is re-verified.Reverts if the provided _payloadHash does not match the currently verified payload hash.A non-verified nonce can be nilified by passing EMPTY_PAYLOAD_HASH for _payloadHash.Assumes the computational intractability of finding a payload that hashes to bytes32.max.Authenticated by the caller"},"owner()":{"details":"Returns the address of the current owner."},"quote((uint32,bytes32,bytes,bytes,bool),address)":{"details":"MESSAGING STEP 0","params":{"_params":"the messaging parameters","_sender":"the sender of the message"}},"recoverToken(address,address,uint256)":{"details":"recover the token sent to this contract by mistakeonly owner","params":{"_amount":"the amount to send","_to":"the address to send the token to","_token":"the token to recover. if 0x0 then it is native token"}},"registerLibrary(address)":{"details":"all libraries have to implement the erc165 interface to prevent wrong configurationsonly owner"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,bytes,bytes,bool),address)":{"details":"MESSAGING STEP 1 - OApp need to transfer the fees to the endpoint before sending the message","params":{"_params":"the messaging parameters","_refundAddress":"the address to refund both the native and lzToken"}},"sendCompose(address,bytes32,uint16,bytes)":{"details":"the Oapp sends the lzCompose message to the endpointthe composer MUST assert the sender because anyone can send compose msg with this functionwith the same GUID, the Oapp can send compose to multiple _composer at the same timeauthenticated by the msg.sender","params":{"_guid":"the message guid","_message":"the message","_to":"the address which will receive the composed message"}},"setConfig(address,address,(uint32,uint32,bytes)[])":{"details":"authenticated by the _oapp"},"setDefaultReceiveLibrary(uint32,address,uint256)":{"details":"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.only owner"},"setDefaultReceiveLibraryTimeout(uint32,address,uint256)":{"details":"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration","params":{"_expiry":"the block number when lib expires"}},"setDefaultSendLibrary(uint32,address)":{"details":"owner setting the defaultSendLibrarycan set to the blockedLibrary, which is a registered librarythe msgLib must enable the support before they can be registered to the endpoint as the defaultonly owner"},"setLzToken(address)":{"details":"allows reconfiguration to recover from wrong configurationsusers should never approve the EndpointV2 contract to spend their non-layerzero tokensoverride this function if the endpoint is charging ERC20 tokens as nativeonly owner","params":{"_lzToken":"the new layer zero token address"}},"setReceiveLibrary(address,uint32,address,uint256)":{"details":"Oapp setting the receiveLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.authenticated by the Oapp","params":{"_gracePeriod":"the number of blocks from now until oldLib expires"}},"setReceiveLibraryTimeout(address,uint32,address,uint256)":{"details":"Oapp setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2)  force remove the current configuration (3) change to a new configuration","params":{"_expiry":"the block number when lib expires"}},"setSendLibrary(address,uint32,address)":{"details":"Oapp setting the sendLibrarymust be a registered library (including blockLibrary) with the eid support enabledauthenticated by the Oapp"},"skip(address,uint32,bytes32,uint64)":{"details":"the caller must provide _nonce to prevent skipping the unintended nonceit could happen in some race conditions, e.g. to skip nonce 3, but nonce 3 was consumed firstusage: skipping the next nonce to prevent message verification, e.g. skip a message when Precrime throws alertsif the Oapp wants to skip a verified message, it should call the clear() function insteadafter skipping, the lazyInboundNonce is set to the provided nonce, which makes the inboundNonce also the provided nonceie. allows the Oapp to increment the lazyInboundNonce without having had that corresponding msg be verified"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"verify((uint32,bytes32,uint64),address,bytes32)":{"details":"MESSAGING STEP 2 - on the destination chainconfigured receive library verifies a message","params":{"_origin":"a struct holding the srcEid, nonce, and sender of the message","_payloadHash":"the payload hash of the message","_receiver":"the receiver of the message"}}},"version":1},"userdoc":{"kind":"user","methods":{"getSendLibrary(address,uint32)":{"notice":"The Send Library is the Oapp specified library that will be used to send the message to the destination endpoint. If the Oapp does not specify a Send Library, the default Send Library will be used."},"quote((uint32,bytes32,bytes,bytes,bool),address)":{"notice":"This view function gives the application built on top of LayerZero the ability to requests a quote with the same parameters as they would to send their message. Since the quotes are given on chain there is a race condition in which the prices could change between the time the user gets their quote and the time they submit their message. If the price moves up and the user doesn't send enough funds the transaction will revert, if the price goes down the _refundAddress provided by the app will be refunded the difference."},"setDelegate(address)":{"notice":"delegate is authorized by the oapp to configure anything in layerzero"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":"EndpointV2Mock"},"evmVersion":"shanghai","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0xfaca7205d4211ee9208a7e59171e2301731f3d2a20c49b4a839821871f5fdd49","urls":["bzz-raw://f254bc60ac26687b5320a43a556e30777b0745abf7cd64d5f4720d9b1d1f7fdf","dweb:/ipfs/QmRSJEZVgxaC3L2DdE6s8P5qkYfM3V5JMeseeFJJqGR4xz"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":64}