{"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":"0x60c06040526001600d5534801562000015575f80fd5b5060405162005fc238038062005fc28339810160408190526200003891620002c2565b81816001600160a01b0381166200006957604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6200007481620000c8565b5063ffffffff166080526040516200008c90620002b4565b604051809103905ff080158015620000a6573d5f803e3d5ffd5b506001600160a01b031660a0819052620000c09062000117565b505062000338565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200012162000284565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156200016b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000191919062000310565b620001af5760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff1615620001e95760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381165f818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b5f546001600160a01b03163314620002b25760405163118cdaa760e01b815233600482015260240162000060565b565b6102818062005d4183390190565b5f8060408385031215620002d4575f80fd5b825163ffffffff81168114620002e8575f80fd5b60208401519092506001600160a01b038116811462000305575f80fd5b809150509250929050565b5f6020828403121562000321575f80fd5b8151801515811462000331575f80fd5b9392505050565b60805160a0516159c46200037d5f395f61078601525f818161054301528181612d7701528181613782015281816137e801528181613f570152613fbd01526159c45ff3fe608060405260043610610350575f3560e01c80639132e5c3116101bd578063c9fc7bcd116100f2578063ddc28c5811610092578063e8964e811161006d578063e8964e8114610b73578063ef667aa114610b92578063f2fde38b14610bdb578063f64be4c714610bfa575f80fd5b8063ddc28c5814610b16578063e1758bd814610b42578063e4fe1d9414610b54575f80fd5b8063d4b4ec8f116100cd578063d4b4ec8f14610a60578063d70b890214610a7f578063dc706a6214610a9e578063dc93c8a214610acc575f80fd5b8063c9fc7bcd146109e9578063ca5eb5e114610a2e578063cb5026b914610a4d575f80fd5b8063a7229fd91161015d578063aafea31211610138578063aafea3121461096d578063b96a277f1461098c578063c28e0eed146109ab578063c9a54a99146109ca575f80fd5b8063a7229fd914610910578063a825d7471461092f578063aafe5e071461094e575f80fd5b80639c6d7340116101985780639c6d73401461086d5780639d7f9775146108b3578063a0dd43fc146108d2578063a718531b146108f1575f80fd5b80639132e5c31461081a57806391d20fa11461083b5780639535ff301461084e575f80fd5b80635b17bb70116102935780636f50a8031161023357806379624ca91161020e57806379624ca9146107a85780637cb59012146107c0578063861e1ca5146107df5780638da5cb5b146107fe575f80fd5b80636f50a8031461072d578063715018a6146107615780637331809114610775575f80fd5b80636a14d7151161026e5780636a14d715146106735780636bf73fa3146106925780636dbd9f90146106b15780636e83f5bb146106d0575f80fd5b80635b17bb70146105c65780636750cd4c14610625578063697fe6b614610654575f80fd5b80632baf0be7116102fe578063402f8468116102d9578063402f8468146104d557806340f8068314610513578063416ecebf14610532578063587cde1e1461057a575f80fd5b80632baf0be7146104305780632e80fbf31461047157806335d330b014610490575f80fd5b80632637a4501161032e5780632637a450146103c55780632a56c1b0146103e55780632b3197b914610404575f80fd5b80630c0c389e1461035457806314f651a914610369578063183c834f146103a6575b5f80fd5b610367610362366004614886565b610c2e565b005b348015610374575f80fd5b5061037d610d41565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b1575f80fd5b506103676103c036600461492e565b610d71565b6103d86103d3366004614976565b6110f2565b60405161039d91906149c5565b3480156103f0575f80fd5b506103676103ff366004614a07565b611258565b34801561040f575f80fd5b5061042361041e366004614a72565b611315565b60405161039d9190614b2e565b34801561043b575f80fd5b506104637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b60405190815260200161039d565b34801561047c575f80fd5b5061036761048b366004614b57565b61142b565b34801561049b575f80fd5b506104636104aa366004614bb9565b600c60209081525f948552604080862082529385528385208152918452828420909152825290205481565b3480156104e0575f80fd5b506104f46104ef366004614bf8565b6115ff565b604080516001600160a01b03909316835290151560208301520161039d565b34801561051e575f80fd5b5061036761052d366004614b57565b611694565b34801561053d575f80fd5b506105657f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039d565b348015610585575f80fd5b506105ae610594366004614c20565b600f6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b3480156105d1575f80fd5b5061060c6105e0366004614c39565b600160209081525f938452604080852082529284528284209052825290205467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161039d565b348015610630575f80fd5b5061064461063f366004614c72565b611841565b604051901515815260200161039d565b34801561065f575f80fd5b5061036761066e366004614c8b565b61188f565b34801561067e575f80fd5b5061036761068d36600461492e565b611904565b34801561069d575f80fd5b506103676106ac366004614d7f565b611df9565b3480156106bc575f80fd5b506103676106cb366004614e59565b611e63565b3480156106db575f80fd5b5061070e6106ea366004614c72565b600b6020525f9081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039d565b348015610738575f80fd5b506105ae610747366004614c72565b600a6020525f90815260409020546001600160a01b031681565b34801561076c575f80fd5b50610367611f31565b348015610780575f80fd5b506105ae7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107b3575f80fd5b50600d5460011415610644565b3480156107cb575f80fd5b506103676107da366004614ee3565b611f44565b3480156107ea575f80fd5b506106446107f9366004614f30565b612047565b348015610809575f80fd5b505f546001600160a01b03166105ae565b348015610825575f80fd5b5061082e6120b2565b60405161039d9190614f59565b610367610849366004614fa5565b612112565b348015610859575f80fd5b50610367610868366004615049565b6122ce565b348015610878575f80fd5b5061060c610887366004614c39565b600360209081525f938452604080852082529284528284209052825290205467ffffffffffffffff1681565b3480156108be575f80fd5b506106446108cd366004615049565b6125c0565b3480156108dd575f80fd5b5061060c6108ec366004614c39565b612694565b3480156108fc575f80fd5b5061036761090b366004615089565b61272b565b34801561091b575f80fd5b5061036761092a3660046150b2565b612b2a565b34801561093a575f80fd5b506103676109493660046150cd565b612b42565b348015610959575f80fd5b50610463610968366004614c39565b612cd8565b348015610978575f80fd5b50610367610987366004615107565b612de6565b348015610997575f80fd5b506105ae6109a6366004614bf8565b61309d565b3480156109b6575f80fd5b506103676109c5366004614c20565b613123565b3480156109d5575f80fd5b506106446109e4366004614f30565b613198565b3480156109f4575f80fd5b50610463610a03366004615121565b600260209081525f948552604080862082529385528385208152918452828420909152825290205481565b348015610a39575f80fd5b50610367610a48366004614c20565b6131fc565b348015610a58575f80fd5b506104635f81565b348015610a6b575f80fd5b50610367610a7a366004615089565b613273565b348015610a8a575f80fd5b50610367610a99366004615121565b61356e565b348015610aa9575f80fd5b50610644610ab8366004614c20565b60056020525f908152604090205460ff1681565b348015610ad7575f80fd5b50610644610ae6366004614bf8565b6001600160a01b039182165f90815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b21575f80fd5b50610b35610b30366004614976565b613690565b60405161039d9190615160565b348015610b4d575f80fd5b505f6105ae565b348015610b5f575f80fd5b50600e546105ae906001600160a01b031681565b348015610b7e575f80fd5b50610367610b8d366004614c20565b6139b1565b348015610b9d575f80fd5b5061070e610bac366004614bf8565b600860209081525f9283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610be6575f80fd5b50610367610bf5366004614c20565b613bab565b348015610c05575f80fd5b506105ae610c14366004614c72565b60096020525f90815260409020546001600160a01b031681565b610c7d86610c3f60208a018a614c72565b60208a0135610c5460608c0160408d01615177565b898989604051602001610c6993929190615190565b604051602081830303815290604052613c01565b506040517f13137d650000000000000000000000000000000000000000000000000000000081526001600160a01b038716906313137d65903490610cd1908b908a908a908a9033908b908b9060040161522a565b5f604051808303818588803b158015610ce8575f80fd5b505af1158015610cfa573d5f803e3d5ffd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d30929190615280565b60405180910390a150505050505050565b5f80610d50600d546001141590565b610d5b575f80610d69565b610d69600d5460a081901c91565b915091509091565b6001600160a01b0382165f90815260056020526040902054829060ff16610dc4576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b03811615610e7d575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3591906152d1565b6002811115610e4657610e466152a4565b03610e7d576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b03821615610f49576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1391906152fc565b610f49576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f5288613e3f565b5f610f5d89896115ff565b9150508015610f98576040517f3c075f7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b855f03610ff6576001600160a01b0389165f90815260086020908152604080832063ffffffff8c168452909152812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001015561108c565b43861161102f576040517f05df9f2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038981165f90815260086020908152604080832063ffffffff8d168452909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169189169190911781556001018690555b604080516001600160a01b03808c16825263ffffffff8b166020830152891691810191909152606081018790527f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928906080015b60405180910390a1505050505050505050565b6110fa6147d8565b6111076020840184614c72565b336001600d5414611144576040517fee120b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b77ffffffff000000000000000000000000000000000000000060a083811b919091166001600160a01b03831617600d5561118390860160808701615317565b80156111985750600e546001600160a01b0316155b156111cf576040517f5af6d2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f806111db3388613ea8565b915091505f6111e73490565b90505f6112026111fd60a08b0160808c01615317565b614180565b90506112138460400151838361424a565b600e54604085015160200151611235916001600160a01b03169083868c6142b1565b6040840151516112479083858b6142de565b50506001600d555095945050505050565b61126185613e3f565b5f83838360405160200161127793929190615190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290506112d3866112b86020880188614c72565b60208801356112cd60608a0160408b01615177565b85613c01565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048587604051611305929190615280565b60405180910390a1505050505050565b6001600160a01b0383165f90815260056020526040902054606090849060ff1661136b576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9c33abf700000000000000000000000000000000000000000000000000000000815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf7906064015f60405180830381865afa1580156113dc573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261142191908101906153f8565b9695505050505050565b61143485613e3f565b6001600160a01b0385165f90815260026020908152604080832063ffffffff881684528252808320868452825280832067ffffffffffffffff861684529091529020548181146114bf576040517f7182306f00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b0386165f90815260016020908152604080832063ffffffff89168452825280832087845290915290205467ffffffffffffffff9081169084161180159061150b575080155b1561154e576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016114b6565b6001600160a01b0386165f81815260026020908152604080832063ffffffff8a16808552908352818420898552835281842067ffffffffffffffff8916808652908452938290207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905581519081529182018890528101929092526060820152608081018390527faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb552929060a001611305565b6001600160a01b038083165f90815260076020908152604080832063ffffffff86168452909152812054909116908161168d5763ffffffff83165f908152600a60205260409020546001600160a01b0316915081611689576040517f78e84d0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060015b9250929050565b61169d85613e3f565b6001600160a01b0385165f90815260026020908152604080832063ffffffff881684528252808320868452825280832067ffffffffffffffff86168452909152902054818114611723576040517f7182306f00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044016114b6565b80158061176d57506001600160a01b0386165f90815260016020908152604080832063ffffffff89168452825280832087845290915290205467ffffffffffffffff908116908416115b156117b0576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016114b6565b6001600160a01b0386165f81815260026020908152604080832063ffffffff8a16808552908352818420898552835281842067ffffffffffffffff89168086529084528285209490945581519081529182018890528101929092526060820152608081018390527f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e9060a001611305565b63ffffffff81165f908152600960205260408120546001600160a01b031615801590611889575063ffffffff82165f908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516118ee9a9998979695949392919061542a565b60405180910390a4505050505050505050505050565b6001600160a01b0382165f90815260056020526040902054829060ff1615801561193657506001600160a01b03811615155b1561196d576040517fa4ff2ec300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b03811615611a26575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119de91906152d1565b60028111156119ef576119ef6152a4565b03611a26576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b03821615611af2576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015611a98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611abc91906152fc565b611af2576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611afb88613e3f565b6001600160a01b038089165f90815260076020908152604080832063ffffffff8c16845290915290205481169087168103611b62576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038981165f81815260076020908152604080832063ffffffff8e168085529083529281902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611d4f576001600160a01b0381161580611c1c57506001600160a01b038716155b15611c53576040517f3c075f7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6040518060400160405280836001600160a01b031681526020018843611c7a91906154bf565b90526001600160a01b03808c165f90815260086020908152604080832063ffffffff8f1684528252918290208451815494167fffffffffffffffffffffffff00000000000000000000000000000000000000009094169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611d41918d918d9187916001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b60405180910390a150611dee565b6001600160a01b038981165f81815260086020908152604080832063ffffffff8e1680855290835281842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001018490558151948552918401919091529284169282019290925260608101919091527f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928906080016110df565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611e4e9a999897969594939291906154d2565b60405180910390a35050505050505050505050565b6001600160a01b0383165f90815260056020526040902054839060ff16611eb6576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ebf85613e3f565b6040517f20efd7220000000000000000000000000000000000000000000000000000000081526001600160a01b038516906320efd72290611f0890889087908790600401615530565b5f604051808303815f87803b158015611f1f575f80fd5b505af1158015611dee573d5f803e3d5ffd5b611f39614308565b611f425f61434d565b565b335f908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611fb2576040517f1508219400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181604051611fc292919061567b565b60408051918290038220335f818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc19161203891908890889088908890889061568a565b60405180910390a15050505050565b6001600160a01b0381165f90815260016020908152604082206120ab9185918591859061207690850185614c72565b63ffffffff16815260208082019290925260409081015f90812089840135825290925290205467ffffffffffffffff166143b4565b9392505050565b6060600480548060200260200160405190810160405280929190818152602001828054801561210857602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116120ea575b5050505050905090565b6001600160a01b038089165f908152600c60209081526040808320938b168352928152828220898352815282822061ffff89168352905281812054915161215c908790879061567b565b604051809103902090508082146121a9576040517f35ca595f00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016114b6565b6001600160a01b03808b165f908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c1684529091529081902060019055517fd0a1026000000000000000000000000000000000000000000000000000000000815263d0a10260903490612230908e908d908c908c9033908d908d906004016156d2565b5f604051808303818588803b158015612247575f80fd5b505af1158015612259573d5f803e3d5ffd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a6040516122ba94939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b0381165f90815260056020526040902054819060ff1615801561230057506001600160a01b03811615155b15612337576040517fa4ff2ec300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600160a01b038116156123f1576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612385573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a991906152d1565b60028111156123ba576123ba6152a4565b036123f1576040517f7a01ede200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82846001600160a01b038216156124bd576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612463573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061248791906152fc565b6124bd576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124c687613e3f565b6001600160a01b038781165f90815260066020908152604080832063ffffffff8b16845290915290205481871691160361252c576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038781165f81815260066020908152604080832063ffffffff8c168085529083529281902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d30565b5f805f6125cd86866115ff565b91509150816001600160a01b0316846001600160a01b0316036125f5576001925050506120ab565b5f81612628576001600160a01b0387165f90815260086020908152604080832063ffffffff8a168452909152902061263d565b63ffffffff86165f908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156126775750438160200151115b1561268857600193505050506120ab565b505f9695505050505050565b6001600160a01b0383165f90815260016020908152604080832063ffffffff86168452825280832084845290915281205467ffffffffffffffff165b6001600160a01b0385165f90815260026020908152604080832063ffffffff881684528252808320868452825280832067ffffffffffffffff6001860116845290915290205415612723576001016126d0565b949350505050565b612733614308565b6001600160a01b0382165f90815260056020526040902054829060ff16612786576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b0381161561283f575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127f791906152d1565b6002811115612808576128086152a4565b0361283f576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b0382161561290b576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d591906152fc565b61290b576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff87165f908152600a60205260409020546001600160a01b039081169087168103612966576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff88165f818152600a602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a18515612a965763ffffffff88165f908152600b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316178155612a3b87436154bf565b600182018190556040805163ffffffff8c1681526001600160a01b038516602082015280820192909252517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89181900360600190a150612b20565b63ffffffff88165f818152600b6020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560010183905580519384526001600160a01b038516918401919091528201527f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89060600160405180910390a15b5050505050505050565b612b32614308565b612b3d83838361444c565b505050565b612b5982612b536020860186614c72565b336125c0565b612b8f576040517f4fa6ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f9081526001602090815260408220908290612bb790870187614c72565b63ffffffff16815260208082019290925260409081015f90812087840135825290925290205467ffffffffffffffff169050612bf48484836143b4565b612c2a576040517f751cb20f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c3584848361446f565b612c6b576040517f0177e1ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c9783612c7c6020870187614c72565b6020870135612c916060890160408a01615177565b86614528565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b4848484604051612cca93929190615725565b60405180910390a150505050565b6001600160a01b0383165f90815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612d209067ffffffffffffffff16600161574d565b604080517fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b166020808301919091527fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e090811b821660288501526001600160a01b038b16602c85015289901b16604c830152605080830188905283518084039091018152607090920190925280519101209091505b95945050505050565b612dee614308565b6001600160a01b0381165f90815260056020526040902054819060ff16612e41576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600160a01b03811615612efb576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb391906152d1565b6002811115612ec457612ec46152a4565b03612efb576040517f7a01ede200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82846001600160a01b03821615612fc7576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612f6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f9191906152fc565b612fc7576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff86165f908152600960205260409020546001600160a01b03808716911603613020576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff86165f8181526009602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f59101611305565b6001600160a01b038083165f90815260066020908152604080832063ffffffff861684529091529020541680611889575063ffffffff81165f908152600960205260409020546001600160a01b031680611889576040517f6c1ccdb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61312b614308565b600e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b0381165f90815260016020908152604082206120ab918591859185906131c790850185614c72565b63ffffffff16815260208082019290925260409081015f90812089840135825290925290205467ffffffffffffffff1661446f565b335f818152600f602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981910161318d565b6001600160a01b0382165f90815260056020526040902054829060ff166132c6576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b0381161561337f575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613313573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061333791906152d1565b6002811115613348576133486152a4565b0361337f576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b0382161561344b576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156133f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061341591906152fc565b61344b576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613453614308565b845f0361349d5763ffffffff87165f908152600b6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560010155613522565b4385116134d6576040517f05df9f2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff87165f908152600b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0388161781556001018590555b6040805163ffffffff891681526001600160a01b03881660208201529081018690527f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f890606001610d30565b61357784613e3f565b613582848484612694565b61358d90600161574d565b67ffffffffffffffff168167ffffffffffffffff16146135e5576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016114b6565b6001600160a01b0384165f81815260016020908152604080832063ffffffff881680855290835281842087855283529281902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde4890608001612cca565b604080518082019091525f80825260208201526136b360a0840160808501615317565b80156136c85750600e546001600160a01b0316155b156136ff576040517f5af6d2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f908152600360209081526040822090829061372790870187614c72565b63ffffffff16815260208082019290925260409081015f9081208784013582529092529020546137629067ffffffffffffffff16600161574d565b90505f6040518060e001604052808367ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001865f0160208101906137cd9190614c72565b63ffffffff168152602001866020013581526020016138c7847f0000000000000000000000000000000000000000000000000000000000000000888a5f01602081019061381a9190614c72565b8b602001355f85856001600160a01b03861660405160c09390931b7fffffffffffffffff00000000000000000000000000000000000000000000000016602084015260e091821b7fffffffff000000000000000000000000000000000000000000000000000000009081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b81526020016138d9604088018861576e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250939094525092935091506139259050856109a66020890189614c72565b90506001600160a01b03811663d80e9bd98361394460608a018a61576e565b61395460a08c0160808d01615317565b6040518563ffffffff1660e01b815260040161397394939291906157cf565b6040805180830381865afa15801561398d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142191906158c3565b6139b9614308565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f97f025840000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015613a34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a5891906152fc565b613a8e576040517feb64f35d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff1615613ae0576040517f8aea2fe600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381165f81815260056020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910161318d565b613bb3614308565b6001600160a01b038116613bf5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016114b6565b613bfe8161434d565b50565b6001600160a01b0385165f90815260016020908152604080832063ffffffff88168452825280832086845290915281205467ffffffffffffffff908116908416811015613d5957600181015b8467ffffffffffffffff168167ffffffffffffffff1611613cf5576001600160a01b0388165f90815260026020908152604080832063ffffffff8b1684528252808320898452825280832067ffffffffffffffff85168452909152902054613ced576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016114b6565b600101613c4d565b506001600160a01b0387165f90815260016020908152604080832063ffffffff8a1684528252808320888452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff86161790555b82516020808501919091206001600160a01b0389165f90815260028352604080822063ffffffff8b1683528452808220898352845280822067ffffffffffffffff891683529093529190912054909250808314613dec576040517f7182306f00000000000000000000000000000000000000000000000000000000815260048101829052602481018490526044016114b6565b50506001600160a01b039095165f90815260026020908152604080832063ffffffff909716835295815285822094825293845284812067ffffffffffffffff909316815291909252918220919091555090565b336001600160a01b03821614801590613e7157506001600160a01b038181165f908152600f6020526040902054163314155b15613bfe576040517fc4c5259300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613eb06147d8565b5f80613f3785613ec36020870187614c72565b6001600160a01b03919091165f90815260036020908152604080832063ffffffff94909416835292815282822081890135835290522080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff928316019182161790915590565b90505f6040518060e001604052808367ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b03168152602001865f016020810190613fa29190614c72565b63ffffffff16815260200186602001358152602001613fef847f00000000000000000000000000000000000000000000000000000000000000008a8a5f01602081019061381a9190614c72565b8152602001614001604088018861576e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250929350915061404d9050876109a66020890189614c72565b90505f806001600160a01b038316634389e58f8561406e60608c018c61576e565b61407e60a08e0160808f01615317565b6040518563ffffffff1660e01b815260040161409d94939291906157cf565b5f604051808303815f875af11580156140b8573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526140fd91908101906158dd565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161413160608b018b61576e565b866040516141429493929190615929565b60405180910390a1506040805160608101825260a090940151845267ffffffffffffffff909416602084015292820192909252925090509250929050565b5f811561424557600e546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156141e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061420a9190615969565b9050805f03614245576040517f1775123700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b825182108061425c5750808360200151115b15612b3d57825160208401516040517f4f3ec0d30000000000000000000000000000000000000000000000000000000081526004810192909252602482018490526044820152606481018290526084016114b6565b83156142c2576142c28583866145a7565b828410156142d7576142d785828686036145a7565b5050505050565b83156142ee576142ee82856145fb565b8284101561430257614302818585036145fb565b50505050565b5f546001600160a01b03163314611f42576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016114b6565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f808267ffffffffffffffff16118061272357506040517fff7bd03d0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063ff7bd03d9061440d908790600401615980565b602060405180830381865afa158015614428573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272391906152fc565b6001600160a01b03831661446457612b3d82826145fb565b612b3d8383836145a7565b5f67ffffffffffffffff821661448b6060860160408701615177565b67ffffffffffffffff16118061272357506001600160a01b0383165f90815260026020908152604082209082906144c490880188614c72565b63ffffffff1663ffffffff1681526020019081526020015f205f866020013581526020019081526020015f205f8660400160208101906145049190615177565b67ffffffffffffffff16815260208101919091526040015f20541415949350505050565b8061455f576040517f09beffb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b039094165f90815260026020908152604080832063ffffffff909616835294815284822093825292835283812067ffffffffffffffff909216815291522055565b6001600160a01b0382166145e7576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b3d6001600160a01b03841683836146d6565b6001600160a01b03821661463b576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114614684576040519150601f19603f3d011682016040523d82523d5f602084013e614689565b606091505b5050905080612b3d576040517f465bc8340000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602481018390526044016114b6565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251612b3d93879390925f9283929183919082885af180614772576040513d5f823e3d81fd5b50505f513d91508115614789578060011415614796565b6001600160a01b0384163b155b15614302576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016114b6565b60405180606001604052805f80191681526020015f67ffffffffffffffff16815260200161481760405180604001604052805f81526020015f81525090565b905290565b5f6060828403121561482c575f80fd5b50919050565b80356001600160a01b0381168114614245575f80fd5b5f8083601f840112614858575f80fd5b50813567ffffffffffffffff81111561486f575f80fd5b60208301915083602082850101111561168d575f80fd5b5f805f805f805f60e0888a03121561489c575f80fd5b6148a6898961481c565b96506148b460608901614832565b95506080880135945060a088013567ffffffffffffffff808211156148d7575f80fd5b6148e38b838c01614848565b909650945060c08a01359150808211156148fb575f80fd5b506149088a828b01614848565b989b979a50959850939692959293505050565b803563ffffffff81168114614245575f80fd5b5f805f8060808587031215614941575f80fd5b61494a85614832565b93506149586020860161491b565b925061496660408601614832565b9396929550929360600135925050565b5f8060408385031215614987575f80fd5b823567ffffffffffffffff81111561499d575f80fd5b830160a081860312156149ae575f80fd5b91506149bc60208401614832565b90509250929050565b5f6080820190508251825267ffffffffffffffff60208401511660208301526040830151614a00604084018280518252602090810151910152565b5092915050565b5f805f805f60c08688031215614a1b575f80fd5b614a2486614832565b9450614a33876020880161481c565b93506080860135925060a086013567ffffffffffffffff811115614a55575f80fd5b614a6188828901614848565b969995985093965092949392505050565b5f805f8060808587031215614a85575f80fd5b614a8e85614832565b9350614a9c60208601614832565b9250614aaa6040860161491b565b9150614ab86060860161491b565b905092959194509250565b5f5b83811015614add578181015183820152602001614ac5565b50505f910152565b5f8151808452614afc816020860160208601614ac3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f6120ab6020830184614ae5565b803567ffffffffffffffff81168114614245575f80fd5b5f805f805f60a08688031215614b6b575f80fd5b614b7486614832565b9450614b826020870161491b565b935060408601359250614b9760608701614b40565b949793965091946080013592915050565b803561ffff81168114614245575f80fd5b5f805f8060808587031215614bcc575f80fd5b614bd585614832565b9350614be360208601614832565b925060408501359150614ab860608601614ba8565b5f8060408385031215614c09575f80fd5b614c1283614832565b91506149bc6020840161491b565b5f60208284031215614c30575f80fd5b6120ab82614832565b5f805f60608486031215614c4b575f80fd5b614c5484614832565b9250614c626020850161491b565b9150604084013590509250925092565b5f60208284031215614c82575f80fd5b6120ab8261491b565b5f805f805f805f805f805f806101208d8f031215614ca7575f80fd5b614cb08d614832565b9b50614cbe60208e01614832565b9a5060408d01359950614cd360608e01614ba8565b985060808d0135975060a08d0135965067ffffffffffffffff60c08e01351115614cfb575f80fd5b614d0b8e60c08f01358f01614848565b909650945067ffffffffffffffff60e08e01351115614d28575f80fd5b614d388e60e08f01358f01614848565b909450925067ffffffffffffffff6101008e01351115614d56575f80fd5b614d678e6101008f01358f01614848565b81935080925050509295989b509295989b509295989b565b5f805f805f805f805f805f6101408c8e031215614d9a575f80fd5b614da48d8d61481c565b9a50614db260608d01614832565b995060808c0135985060a08c0135975060c08c0135965067ffffffffffffffff8060e08e01351115614de2575f80fd5b614df28e60e08f01358f01614848565b90975095506101008d0135811015614e08575f80fd5b614e198e6101008f01358f01614848565b90955093506101208d0135811015614e2f575f80fd5b50614e418d6101208e01358e01614848565b81935080925050509295989b509295989b9093969950565b5f805f8060608587031215614e6c575f80fd5b614e7585614832565b9350614e8360208601614832565b9250604085013567ffffffffffffffff80821115614e9f575f80fd5b818701915087601f830112614eb2575f80fd5b813581811115614ec0575f80fd5b8860208260051b8501011115614ed4575f80fd5b95989497505060200194505050565b5f805f805f60808688031215614ef7575f80fd5b614f0086614832565b945060208601359350614f1560408701614ba8565b9250606086013567ffffffffffffffff811115614a55575f80fd5b5f8060808385031215614f41575f80fd5b614f4b848461481c565b91506149bc60608401614832565b602080825282518282018190525f9190848201906040850190845b81811015614f995783516001600160a01b031683529284019291840191600101614f74565b50909695505050505050565b5f805f805f805f8060c0898b031215614fbc575f80fd5b614fc589614832565b9750614fd360208a01614832565b965060408901359550614fe860608a01614ba8565b9450608089013567ffffffffffffffff80821115615004575f80fd5b6150108c838d01614848565b909650945060a08b0135915080821115615028575f80fd5b506150358b828c01614848565b999c989b5096995094979396929594505050565b5f805f6060848603121561505b575f80fd5b61506484614832565b92506150726020850161491b565b915061508060408501614832565b90509250925092565b5f805f6060848603121561509b575f80fd5b6150a48461491b565b9250614c6260208501614832565b5f805f606084860312156150c4575f80fd5b6150a484614832565b5f805f60a084860312156150df575f80fd5b6150e9858561481c565b92506150f760608501614832565b9150608084013590509250925092565b5f8060408385031215615118575f80fd5b6149ae8361491b565b5f805f8060808587031215615134575f80fd5b61513d85614832565b935061514b6020860161491b565b925060408501359150614ab860608601614b40565b815181526020808301519082015260408101611889565b5f60208284031215615187575f80fd5b6120ab82614b40565b838152818360208301375f910160200190815292915050565b63ffffffff6151b78261491b565b1682526020810135602083015267ffffffffffffffff6151d960408301614b40565b1660408301525050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b61523481896151a9565b86606082015260e060808201525f61525060e0830187896151e3565b6001600160a01b03861660a084015282810360c08401526152728185876151e3565b9a9950505050505050505050565b6080810161528e82856151a9565b6001600160a01b03831660608301529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156152e1575f80fd5b8151600381106120ab575f80fd5b8015158114613bfe575f80fd5b5f6020828403121561530c575f80fd5b81516120ab816152ef565b5f60208284031215615327575f80fd5b81356120ab816152ef565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261536e575f80fd5b815167ffffffffffffffff8082111561538957615389615332565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156153cf576153cf615332565b816040528381528660208588010111156153e7575f80fd5b611421846020830160208901614ac3565b5f60208284031215615408575f80fd5b815167ffffffffffffffff81111561541e575f80fd5b6127238482850161535f565b8a815261ffff8a16602082015288604082015287606082015260e060808201525f61545960e08301888a6151e3565b82810360a084015261546c8187896151e3565b905082810360c08401526154818185876151e3565b9d9c50505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561188957611889615492565b5f6101206154e0838e6151a9565b8b60608401528a60808401528960a08401528060c0840152615505818401898b6151e3565b905082810360e084015261551a8187896151e3565b90508281036101008401526154818185876151e3565b5f60408083016001600160a01b03871684526020604081860152818683526060925060608601905060608760051b870101885f5b8981101561566b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa089840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18c36030181126155c4575f80fd5b8b0163ffffffff806155d58361491b565b168552806155e488840161491b565b168786015250878101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811261561d575f80fd5b01858101903567ffffffffffffffff811115615637575f80fd5b803603821315615645575f80fd5b878986015261565788860182846151e3565b958701959450505090840190600101615564565b50909a9950505050505050505050565b818382375f9101908152919050565b5f6001600160a01b03808916835280881660208401525085604083015261ffff8516606083015260a060808301526156c660a0830184866151e3565b98975050505050505050565b5f6001600160a01b03808a16835288602084015260a060408401526156fb60a08401888a6151e3565b818716606085015283810360808501526157168186886151e3565b9b9a5050505050505050505050565b60a0810161573382866151a9565b6001600160a01b0393909316606082015260800152919050565b67ffffffffffffffff818116838216019080821115614a0057614a00615492565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126157a1575f80fd5b83018035915067ffffffffffffffff8211156157bb575f80fd5b60200191503681900382131561168d575f80fd5b6060815267ffffffffffffffff855116606082015263ffffffff60208601511660808201526001600160a01b0360408601511660a08201525f606086015161581f60c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152615850610140840182614ae5565b905082810360208401526158658186886151e3565b915050612ddd604083018415159052565b5f60408284031215615886575f80fd5b6040516040810181811067ffffffffffffffff821117156158a9576158a9615332565b604052825181526020928301519281019290925250919050565b5f604082840312156158d3575f80fd5b6120ab8383615876565b5f80606083850312156158ee575f80fd5b6158f88484615876565b9150604083015167ffffffffffffffff811115615913575f80fd5b61591f8582860161535f565b9150509250929050565b606081525f61593b6060830187614ae5565b828103602084015261594e8186886151e3565b9150506001600160a01b038316604083015295945050505050565b5f60208284031215615979575f80fd5b5051919050565b6060810161188982846151a956fea2646970667358221220938f9466c98d432f294c8fa92afa649818bd8c0b591d10b7b71b464300e2a18764736f6c63430008160033608060405234801561000f575f80fd5b506102648061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461007c5780631881d94d146100a457806354fd4d50146100b35780636750cd4c146100da575b6040517f2657b6c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61008f61008a366004610186565b6100ee565b60405190151581526020015b60405180910390f35b600260405161009b91906101cc565b6040805167ffffffffffffffff815260ff602082015260029181019190915260600161009b565b61008f6100e836600461020b565b50600190565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f97f0258400000000000000000000000000000000000000000000000000000000148061018057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f60208284031215610196575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146101c5575f80fd5b9392505050565b6020810160038310610205577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b91905290565b5f6020828403121561021b575f80fd5b813563ffffffff811681146101c5575f80fdfea2646970667358221220c9b0aa35644fe701225b1e57fadf97d8225d8d6d1516d425b30241f80ec5085f64736f6c63430008160033","sourceMap":"2770:15372:80:-:0;;;527:1:33;534:42;;3175:82:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3249:4;3224:6;-1:-1:-1;;;;;1273:26:116;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:116;;1350:1;1322:31;;;620:51:141;593:18;;1322:31:116;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1064:10:31;;;;1634:23:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1609:49:30;;;;;1668:31;;:15;:31::i;:::-;3175:82:80;;2770:15372;;2912:187:116;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:116;;;-1:-1:-1;;;;;;3020:17:116;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;6264:511:30:-;1531:13:116;:11;:13::i;:::-;6376:62:30::1;::::0;-1:-1:-1;;;6376:62:30;;-1:-1:-1;;;6376:62:30::1;::::0;::::1;826:52:141::0;-1:-1:-1;;;;;6376:31:30;::::1;::::0;::::1;::::0;799:18:141;;6376:62:30::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;-1:-1:-1::0;;;6447:32:30::1;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:30;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;-1:-1:-1::0;;;6568:29:30::1;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:30;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;-1:-1:-1;;6657:32:30::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6699:30:30::1;::::0;::::1;::::0;;6745:23;;620:51:141;;;6745:23:30::1;::::0;593:18:141;6745:23:30::1;;;;;;;6264:511:::0;:::o;1796:162:116:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:116;735:10:126;1855:23:116;1851:101;;1901:40;;-1:-1:-1;;;1901:40:116;;735:10:126;1901:40:116;;;620:51:141;593:18;;1901:40:116;474:203:141;1851:101:116;1796:162::o;2770:15372:80:-;;;;;;;;:::o;14:455:141:-;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:141;;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:141:o;:::-;2770:15372:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610350575f3560e01c80639132e5c3116101bd578063c9fc7bcd116100f2578063ddc28c5811610092578063e8964e811161006d578063e8964e8114610b73578063ef667aa114610b92578063f2fde38b14610bdb578063f64be4c714610bfa575f80fd5b8063ddc28c5814610b16578063e1758bd814610b42578063e4fe1d9414610b54575f80fd5b8063d4b4ec8f116100cd578063d4b4ec8f14610a60578063d70b890214610a7f578063dc706a6214610a9e578063dc93c8a214610acc575f80fd5b8063c9fc7bcd146109e9578063ca5eb5e114610a2e578063cb5026b914610a4d575f80fd5b8063a7229fd91161015d578063aafea31211610138578063aafea3121461096d578063b96a277f1461098c578063c28e0eed146109ab578063c9a54a99146109ca575f80fd5b8063a7229fd914610910578063a825d7471461092f578063aafe5e071461094e575f80fd5b80639c6d7340116101985780639c6d73401461086d5780639d7f9775146108b3578063a0dd43fc146108d2578063a718531b146108f1575f80fd5b80639132e5c31461081a57806391d20fa11461083b5780639535ff301461084e575f80fd5b80635b17bb70116102935780636f50a8031161023357806379624ca91161020e57806379624ca9146107a85780637cb59012146107c0578063861e1ca5146107df5780638da5cb5b146107fe575f80fd5b80636f50a8031461072d578063715018a6146107615780637331809114610775575f80fd5b80636a14d7151161026e5780636a14d715146106735780636bf73fa3146106925780636dbd9f90146106b15780636e83f5bb146106d0575f80fd5b80635b17bb70146105c65780636750cd4c14610625578063697fe6b614610654575f80fd5b80632baf0be7116102fe578063402f8468116102d9578063402f8468146104d557806340f8068314610513578063416ecebf14610532578063587cde1e1461057a575f80fd5b80632baf0be7146104305780632e80fbf31461047157806335d330b014610490575f80fd5b80632637a4501161032e5780632637a450146103c55780632a56c1b0146103e55780632b3197b914610404575f80fd5b80630c0c389e1461035457806314f651a914610369578063183c834f146103a6575b5f80fd5b610367610362366004614886565b610c2e565b005b348015610374575f80fd5b5061037d610d41565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b1575f80fd5b506103676103c036600461492e565b610d71565b6103d86103d3366004614976565b6110f2565b60405161039d91906149c5565b3480156103f0575f80fd5b506103676103ff366004614a07565b611258565b34801561040f575f80fd5b5061042361041e366004614a72565b611315565b60405161039d9190614b2e565b34801561043b575f80fd5b506104637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b60405190815260200161039d565b34801561047c575f80fd5b5061036761048b366004614b57565b61142b565b34801561049b575f80fd5b506104636104aa366004614bb9565b600c60209081525f948552604080862082529385528385208152918452828420909152825290205481565b3480156104e0575f80fd5b506104f46104ef366004614bf8565b6115ff565b604080516001600160a01b03909316835290151560208301520161039d565b34801561051e575f80fd5b5061036761052d366004614b57565b611694565b34801561053d575f80fd5b506105657f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039d565b348015610585575f80fd5b506105ae610594366004614c20565b600f6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b3480156105d1575f80fd5b5061060c6105e0366004614c39565b600160209081525f938452604080852082529284528284209052825290205467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161039d565b348015610630575f80fd5b5061064461063f366004614c72565b611841565b604051901515815260200161039d565b34801561065f575f80fd5b5061036761066e366004614c8b565b61188f565b34801561067e575f80fd5b5061036761068d36600461492e565b611904565b34801561069d575f80fd5b506103676106ac366004614d7f565b611df9565b3480156106bc575f80fd5b506103676106cb366004614e59565b611e63565b3480156106db575f80fd5b5061070e6106ea366004614c72565b600b6020525f9081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039d565b348015610738575f80fd5b506105ae610747366004614c72565b600a6020525f90815260409020546001600160a01b031681565b34801561076c575f80fd5b50610367611f31565b348015610780575f80fd5b506105ae7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107b3575f80fd5b50600d5460011415610644565b3480156107cb575f80fd5b506103676107da366004614ee3565b611f44565b3480156107ea575f80fd5b506106446107f9366004614f30565b612047565b348015610809575f80fd5b505f546001600160a01b03166105ae565b348015610825575f80fd5b5061082e6120b2565b60405161039d9190614f59565b610367610849366004614fa5565b612112565b348015610859575f80fd5b50610367610868366004615049565b6122ce565b348015610878575f80fd5b5061060c610887366004614c39565b600360209081525f938452604080852082529284528284209052825290205467ffffffffffffffff1681565b3480156108be575f80fd5b506106446108cd366004615049565b6125c0565b3480156108dd575f80fd5b5061060c6108ec366004614c39565b612694565b3480156108fc575f80fd5b5061036761090b366004615089565b61272b565b34801561091b575f80fd5b5061036761092a3660046150b2565b612b2a565b34801561093a575f80fd5b506103676109493660046150cd565b612b42565b348015610959575f80fd5b50610463610968366004614c39565b612cd8565b348015610978575f80fd5b50610367610987366004615107565b612de6565b348015610997575f80fd5b506105ae6109a6366004614bf8565b61309d565b3480156109b6575f80fd5b506103676109c5366004614c20565b613123565b3480156109d5575f80fd5b506106446109e4366004614f30565b613198565b3480156109f4575f80fd5b50610463610a03366004615121565b600260209081525f948552604080862082529385528385208152918452828420909152825290205481565b348015610a39575f80fd5b50610367610a48366004614c20565b6131fc565b348015610a58575f80fd5b506104635f81565b348015610a6b575f80fd5b50610367610a7a366004615089565b613273565b348015610a8a575f80fd5b50610367610a99366004615121565b61356e565b348015610aa9575f80fd5b50610644610ab8366004614c20565b60056020525f908152604090205460ff1681565b348015610ad7575f80fd5b50610644610ae6366004614bf8565b6001600160a01b039182165f90815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b21575f80fd5b50610b35610b30366004614976565b613690565b60405161039d9190615160565b348015610b4d575f80fd5b505f6105ae565b348015610b5f575f80fd5b50600e546105ae906001600160a01b031681565b348015610b7e575f80fd5b50610367610b8d366004614c20565b6139b1565b348015610b9d575f80fd5b5061070e610bac366004614bf8565b600860209081525f9283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610be6575f80fd5b50610367610bf5366004614c20565b613bab565b348015610c05575f80fd5b506105ae610c14366004614c72565b60096020525f90815260409020546001600160a01b031681565b610c7d86610c3f60208a018a614c72565b60208a0135610c5460608c0160408d01615177565b898989604051602001610c6993929190615190565b604051602081830303815290604052613c01565b506040517f13137d650000000000000000000000000000000000000000000000000000000081526001600160a01b038716906313137d65903490610cd1908b908a908a908a9033908b908b9060040161522a565b5f604051808303818588803b158015610ce8575f80fd5b505af1158015610cfa573d5f803e3d5ffd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d30929190615280565b60405180910390a150505050505050565b5f80610d50600d546001141590565b610d5b575f80610d69565b610d69600d5460a081901c91565b915091509091565b6001600160a01b0382165f90815260056020526040902054829060ff16610dc4576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b03811615610e7d575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3591906152d1565b6002811115610e4657610e466152a4565b03610e7d576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b03821615610f49576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1391906152fc565b610f49576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f5288613e3f565b5f610f5d89896115ff565b9150508015610f98576040517f3c075f7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b855f03610ff6576001600160a01b0389165f90815260086020908152604080832063ffffffff8c168452909152812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001015561108c565b43861161102f576040517f05df9f2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038981165f90815260086020908152604080832063ffffffff8d168452909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169189169190911781556001018690555b604080516001600160a01b03808c16825263ffffffff8b166020830152891691810191909152606081018790527f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928906080015b60405180910390a1505050505050505050565b6110fa6147d8565b6111076020840184614c72565b336001600d5414611144576040517fee120b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b77ffffffff000000000000000000000000000000000000000060a083811b919091166001600160a01b03831617600d5561118390860160808701615317565b80156111985750600e546001600160a01b0316155b156111cf576040517f5af6d2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f806111db3388613ea8565b915091505f6111e73490565b90505f6112026111fd60a08b0160808c01615317565b614180565b90506112138460400151838361424a565b600e54604085015160200151611235916001600160a01b03169083868c6142b1565b6040840151516112479083858b6142de565b50506001600d555095945050505050565b61126185613e3f565b5f83838360405160200161127793929190615190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290506112d3866112b86020880188614c72565b60208801356112cd60608a0160408b01615177565b85613c01565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048587604051611305929190615280565b60405180910390a1505050505050565b6001600160a01b0383165f90815260056020526040902054606090849060ff1661136b576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9c33abf700000000000000000000000000000000000000000000000000000000815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf7906064015f60405180830381865afa1580156113dc573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261142191908101906153f8565b9695505050505050565b61143485613e3f565b6001600160a01b0385165f90815260026020908152604080832063ffffffff881684528252808320868452825280832067ffffffffffffffff861684529091529020548181146114bf576040517f7182306f00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b0386165f90815260016020908152604080832063ffffffff89168452825280832087845290915290205467ffffffffffffffff9081169084161180159061150b575080155b1561154e576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016114b6565b6001600160a01b0386165f81815260026020908152604080832063ffffffff8a16808552908352818420898552835281842067ffffffffffffffff8916808652908452938290207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905581519081529182018890528101929092526060820152608081018390527faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb552929060a001611305565b6001600160a01b038083165f90815260076020908152604080832063ffffffff86168452909152812054909116908161168d5763ffffffff83165f908152600a60205260409020546001600160a01b0316915081611689576040517f78e84d0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060015b9250929050565b61169d85613e3f565b6001600160a01b0385165f90815260026020908152604080832063ffffffff881684528252808320868452825280832067ffffffffffffffff86168452909152902054818114611723576040517f7182306f00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044016114b6565b80158061176d57506001600160a01b0386165f90815260016020908152604080832063ffffffff89168452825280832087845290915290205467ffffffffffffffff908116908416115b156117b0576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016114b6565b6001600160a01b0386165f81815260026020908152604080832063ffffffff8a16808552908352818420898552835281842067ffffffffffffffff89168086529084528285209490945581519081529182018890528101929092526060820152608081018390527f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e9060a001611305565b63ffffffff81165f908152600960205260408120546001600160a01b031615801590611889575063ffffffff82165f908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516118ee9a9998979695949392919061542a565b60405180910390a4505050505050505050505050565b6001600160a01b0382165f90815260056020526040902054829060ff1615801561193657506001600160a01b03811615155b1561196d576040517fa4ff2ec300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b03811615611a26575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119de91906152d1565b60028111156119ef576119ef6152a4565b03611a26576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b03821615611af2576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015611a98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611abc91906152fc565b611af2576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611afb88613e3f565b6001600160a01b038089165f90815260076020908152604080832063ffffffff8c16845290915290205481169087168103611b62576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038981165f81815260076020908152604080832063ffffffff8e168085529083529281902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611d4f576001600160a01b0381161580611c1c57506001600160a01b038716155b15611c53576040517f3c075f7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6040518060400160405280836001600160a01b031681526020018843611c7a91906154bf565b90526001600160a01b03808c165f90815260086020908152604080832063ffffffff8f1684528252918290208451815494167fffffffffffffffffffffffff00000000000000000000000000000000000000009094169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611d41918d918d9187916001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b60405180910390a150611dee565b6001600160a01b038981165f81815260086020908152604080832063ffffffff8e1680855290835281842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001018490558151948552918401919091529284169282019290925260608101919091527f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928906080016110df565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611e4e9a999897969594939291906154d2565b60405180910390a35050505050505050505050565b6001600160a01b0383165f90815260056020526040902054839060ff16611eb6576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ebf85613e3f565b6040517f20efd7220000000000000000000000000000000000000000000000000000000081526001600160a01b038516906320efd72290611f0890889087908790600401615530565b5f604051808303815f87803b158015611f1f575f80fd5b505af1158015611dee573d5f803e3d5ffd5b611f39614308565b611f425f61434d565b565b335f908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611fb2576040517f1508219400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181604051611fc292919061567b565b60408051918290038220335f818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc19161203891908890889088908890889061568a565b60405180910390a15050505050565b6001600160a01b0381165f90815260016020908152604082206120ab9185918591859061207690850185614c72565b63ffffffff16815260208082019290925260409081015f90812089840135825290925290205467ffffffffffffffff166143b4565b9392505050565b6060600480548060200260200160405190810160405280929190818152602001828054801561210857602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116120ea575b5050505050905090565b6001600160a01b038089165f908152600c60209081526040808320938b168352928152828220898352815282822061ffff89168352905281812054915161215c908790879061567b565b604051809103902090508082146121a9576040517f35ca595f00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016114b6565b6001600160a01b03808b165f908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c1684529091529081902060019055517fd0a1026000000000000000000000000000000000000000000000000000000000815263d0a10260903490612230908e908d908c908c9033908d908d906004016156d2565b5f604051808303818588803b158015612247575f80fd5b505af1158015612259573d5f803e3d5ffd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a6040516122ba94939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b0381165f90815260056020526040902054819060ff1615801561230057506001600160a01b03811615155b15612337576040517fa4ff2ec300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600160a01b038116156123f1576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612385573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a991906152d1565b60028111156123ba576123ba6152a4565b036123f1576040517f7a01ede200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82846001600160a01b038216156124bd576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612463573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061248791906152fc565b6124bd576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124c687613e3f565b6001600160a01b038781165f90815260066020908152604080832063ffffffff8b16845290915290205481871691160361252c576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038781165f81815260066020908152604080832063ffffffff8c168085529083529281902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d30565b5f805f6125cd86866115ff565b91509150816001600160a01b0316846001600160a01b0316036125f5576001925050506120ab565b5f81612628576001600160a01b0387165f90815260086020908152604080832063ffffffff8a168452909152902061263d565b63ffffffff86165f908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156126775750438160200151115b1561268857600193505050506120ab565b505f9695505050505050565b6001600160a01b0383165f90815260016020908152604080832063ffffffff86168452825280832084845290915281205467ffffffffffffffff165b6001600160a01b0385165f90815260026020908152604080832063ffffffff881684528252808320868452825280832067ffffffffffffffff6001860116845290915290205415612723576001016126d0565b949350505050565b612733614308565b6001600160a01b0382165f90815260056020526040902054829060ff16612786576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b0381161561283f575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127f791906152d1565b6002811115612808576128086152a4565b0361283f576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b0382161561290b576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d591906152fc565b61290b576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff87165f908152600a60205260409020546001600160a01b039081169087168103612966576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff88165f818152600a602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a18515612a965763ffffffff88165f908152600b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316178155612a3b87436154bf565b600182018190556040805163ffffffff8c1681526001600160a01b038516602082015280820192909252517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89181900360600190a150612b20565b63ffffffff88165f818152600b6020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560010183905580519384526001600160a01b038516918401919091528201527f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89060600160405180910390a15b5050505050505050565b612b32614308565b612b3d83838361444c565b505050565b612b5982612b536020860186614c72565b336125c0565b612b8f576040517f4fa6ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f9081526001602090815260408220908290612bb790870187614c72565b63ffffffff16815260208082019290925260409081015f90812087840135825290925290205467ffffffffffffffff169050612bf48484836143b4565b612c2a576040517f751cb20f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c3584848361446f565b612c6b576040517f0177e1ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c9783612c7c6020870187614c72565b6020870135612c916060890160408a01615177565b86614528565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b4848484604051612cca93929190615725565b60405180910390a150505050565b6001600160a01b0383165f90815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612d209067ffffffffffffffff16600161574d565b604080517fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b166020808301919091527fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e090811b821660288501526001600160a01b038b16602c85015289901b16604c830152605080830188905283518084039091018152607090920190925280519101209091505b95945050505050565b612dee614308565b6001600160a01b0381165f90815260056020526040902054819060ff16612e41576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600160a01b03811615612efb576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb391906152d1565b6002811115612ec457612ec46152a4565b03612efb576040517f7a01ede200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82846001600160a01b03821615612fc7576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612f6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f9191906152fc565b612fc7576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff86165f908152600960205260409020546001600160a01b03808716911603613020576040517fd0ecb66b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff86165f8181526009602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f59101611305565b6001600160a01b038083165f90815260066020908152604080832063ffffffff861684529091529020541680611889575063ffffffff81165f908152600960205260409020546001600160a01b031680611889576040517f6c1ccdb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61312b614308565b600e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b0381165f90815260016020908152604082206120ab918591859185906131c790850185614c72565b63ffffffff16815260208082019290925260409081015f90812089840135825290925290205467ffffffffffffffff1661446f565b335f818152600f602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981910161318d565b6001600160a01b0382165f90815260056020526040902054829060ff166132c6576040517f378b1de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b0381161561337f575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613313573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061333791906152d1565b6002811115613348576133486152a4565b0361337f576040517f84ead63600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83856001600160a01b0382161561344b576040517f6750cd4c00000000000000000000000000000000000000000000000000000000815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156133f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061341591906152fc565b61344b576040517f391daaa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613453614308565b845f0361349d5763ffffffff87165f908152600b6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560010155613522565b4385116134d6576040517f05df9f2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff87165f908152600b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0388161781556001018590555b6040805163ffffffff891681526001600160a01b03881660208201529081018690527f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f890606001610d30565b61357784613e3f565b613582848484612694565b61358d90600161574d565b67ffffffffffffffff168167ffffffffffffffff16146135e5576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016114b6565b6001600160a01b0384165f81815260016020908152604080832063ffffffff881680855290835281842087855283529281902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde4890608001612cca565b604080518082019091525f80825260208201526136b360a0840160808501615317565b80156136c85750600e546001600160a01b0316155b156136ff576040517f5af6d2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f908152600360209081526040822090829061372790870187614c72565b63ffffffff16815260208082019290925260409081015f9081208784013582529092529020546137629067ffffffffffffffff16600161574d565b90505f6040518060e001604052808367ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001865f0160208101906137cd9190614c72565b63ffffffff168152602001866020013581526020016138c7847f0000000000000000000000000000000000000000000000000000000000000000888a5f01602081019061381a9190614c72565b8b602001355f85856001600160a01b03861660405160c09390931b7fffffffffffffffff00000000000000000000000000000000000000000000000016602084015260e091821b7fffffffff000000000000000000000000000000000000000000000000000000009081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b81526020016138d9604088018861576e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250939094525092935091506139259050856109a66020890189614c72565b90506001600160a01b03811663d80e9bd98361394460608a018a61576e565b61395460a08c0160808d01615317565b6040518563ffffffff1660e01b815260040161397394939291906157cf565b6040805180830381865afa15801561398d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142191906158c3565b6139b9614308565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f97f025840000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015613a34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a5891906152fc565b613a8e576040517feb64f35d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff1615613ae0576040517f8aea2fe600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381165f81815260056020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910161318d565b613bb3614308565b6001600160a01b038116613bf5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016114b6565b613bfe8161434d565b50565b6001600160a01b0385165f90815260016020908152604080832063ffffffff88168452825280832086845290915281205467ffffffffffffffff908116908416811015613d5957600181015b8467ffffffffffffffff168167ffffffffffffffff1611613cf5576001600160a01b0388165f90815260026020908152604080832063ffffffff8b1684528252808320898452825280832067ffffffffffffffff85168452909152902054613ced576040517fc09b635000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016114b6565b600101613c4d565b506001600160a01b0387165f90815260016020908152604080832063ffffffff8a1684528252808320888452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff86161790555b82516020808501919091206001600160a01b0389165f90815260028352604080822063ffffffff8b1683528452808220898352845280822067ffffffffffffffff891683529093529190912054909250808314613dec576040517f7182306f00000000000000000000000000000000000000000000000000000000815260048101829052602481018490526044016114b6565b50506001600160a01b039095165f90815260026020908152604080832063ffffffff909716835295815285822094825293845284812067ffffffffffffffff909316815291909252918220919091555090565b336001600160a01b03821614801590613e7157506001600160a01b038181165f908152600f6020526040902054163314155b15613bfe576040517fc4c5259300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613eb06147d8565b5f80613f3785613ec36020870187614c72565b6001600160a01b03919091165f90815260036020908152604080832063ffffffff94909416835292815282822081890135835290522080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff928316019182161790915590565b90505f6040518060e001604052808367ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b03168152602001865f016020810190613fa29190614c72565b63ffffffff16815260200186602001358152602001613fef847f00000000000000000000000000000000000000000000000000000000000000008a8a5f01602081019061381a9190614c72565b8152602001614001604088018861576e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250929350915061404d9050876109a66020890189614c72565b90505f806001600160a01b038316634389e58f8561406e60608c018c61576e565b61407e60a08e0160808f01615317565b6040518563ffffffff1660e01b815260040161409d94939291906157cf565b5f604051808303815f875af11580156140b8573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526140fd91908101906158dd565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161413160608b018b61576e565b866040516141429493929190615929565b60405180910390a1506040805160608101825260a090940151845267ffffffffffffffff909416602084015292820192909252925090509250929050565b5f811561424557600e546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156141e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061420a9190615969565b9050805f03614245576040517f1775123700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b825182108061425c5750808360200151115b15612b3d57825160208401516040517f4f3ec0d30000000000000000000000000000000000000000000000000000000081526004810192909252602482018490526044820152606481018290526084016114b6565b83156142c2576142c28583866145a7565b828410156142d7576142d785828686036145a7565b5050505050565b83156142ee576142ee82856145fb565b8284101561430257614302818585036145fb565b50505050565b5f546001600160a01b03163314611f42576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016114b6565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f808267ffffffffffffffff16118061272357506040517fff7bd03d0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063ff7bd03d9061440d908790600401615980565b602060405180830381865afa158015614428573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272391906152fc565b6001600160a01b03831661446457612b3d82826145fb565b612b3d8383836145a7565b5f67ffffffffffffffff821661448b6060860160408701615177565b67ffffffffffffffff16118061272357506001600160a01b0383165f90815260026020908152604082209082906144c490880188614c72565b63ffffffff1663ffffffff1681526020019081526020015f205f866020013581526020019081526020015f205f8660400160208101906145049190615177565b67ffffffffffffffff16815260208101919091526040015f20541415949350505050565b8061455f576040517f09beffb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b039094165f90815260026020908152604080832063ffffffff909616835294815284822093825292835283812067ffffffffffffffff909216815291522055565b6001600160a01b0382166145e7576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b3d6001600160a01b03841683836146d6565b6001600160a01b03821661463b576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114614684576040519150601f19603f3d011682016040523d82523d5f602084013e614689565b606091505b5050905080612b3d576040517f465bc8340000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602481018390526044016114b6565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251612b3d93879390925f9283929183919082885af180614772576040513d5f823e3d81fd5b50505f513d91508115614789578060011415614796565b6001600160a01b0384163b155b15614302576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016114b6565b60405180606001604052805f80191681526020015f67ffffffffffffffff16815260200161481760405180604001604052805f81526020015f81525090565b905290565b5f6060828403121561482c575f80fd5b50919050565b80356001600160a01b0381168114614245575f80fd5b5f8083601f840112614858575f80fd5b50813567ffffffffffffffff81111561486f575f80fd5b60208301915083602082850101111561168d575f80fd5b5f805f805f805f60e0888a03121561489c575f80fd5b6148a6898961481c565b96506148b460608901614832565b95506080880135945060a088013567ffffffffffffffff808211156148d7575f80fd5b6148e38b838c01614848565b909650945060c08a01359150808211156148fb575f80fd5b506149088a828b01614848565b989b979a50959850939692959293505050565b803563ffffffff81168114614245575f80fd5b5f805f8060808587031215614941575f80fd5b61494a85614832565b93506149586020860161491b565b925061496660408601614832565b9396929550929360600135925050565b5f8060408385031215614987575f80fd5b823567ffffffffffffffff81111561499d575f80fd5b830160a081860312156149ae575f80fd5b91506149bc60208401614832565b90509250929050565b5f6080820190508251825267ffffffffffffffff60208401511660208301526040830151614a00604084018280518252602090810151910152565b5092915050565b5f805f805f60c08688031215614a1b575f80fd5b614a2486614832565b9450614a33876020880161481c565b93506080860135925060a086013567ffffffffffffffff811115614a55575f80fd5b614a6188828901614848565b969995985093965092949392505050565b5f805f8060808587031215614a85575f80fd5b614a8e85614832565b9350614a9c60208601614832565b9250614aaa6040860161491b565b9150614ab86060860161491b565b905092959194509250565b5f5b83811015614add578181015183820152602001614ac5565b50505f910152565b5f8151808452614afc816020860160208601614ac3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f6120ab6020830184614ae5565b803567ffffffffffffffff81168114614245575f80fd5b5f805f805f60a08688031215614b6b575f80fd5b614b7486614832565b9450614b826020870161491b565b935060408601359250614b9760608701614b40565b949793965091946080013592915050565b803561ffff81168114614245575f80fd5b5f805f8060808587031215614bcc575f80fd5b614bd585614832565b9350614be360208601614832565b925060408501359150614ab860608601614ba8565b5f8060408385031215614c09575f80fd5b614c1283614832565b91506149bc6020840161491b565b5f60208284031215614c30575f80fd5b6120ab82614832565b5f805f60608486031215614c4b575f80fd5b614c5484614832565b9250614c626020850161491b565b9150604084013590509250925092565b5f60208284031215614c82575f80fd5b6120ab8261491b565b5f805f805f805f805f805f806101208d8f031215614ca7575f80fd5b614cb08d614832565b9b50614cbe60208e01614832565b9a5060408d01359950614cd360608e01614ba8565b985060808d0135975060a08d0135965067ffffffffffffffff60c08e01351115614cfb575f80fd5b614d0b8e60c08f01358f01614848565b909650945067ffffffffffffffff60e08e01351115614d28575f80fd5b614d388e60e08f01358f01614848565b909450925067ffffffffffffffff6101008e01351115614d56575f80fd5b614d678e6101008f01358f01614848565b81935080925050509295989b509295989b509295989b565b5f805f805f805f805f805f6101408c8e031215614d9a575f80fd5b614da48d8d61481c565b9a50614db260608d01614832565b995060808c0135985060a08c0135975060c08c0135965067ffffffffffffffff8060e08e01351115614de2575f80fd5b614df28e60e08f01358f01614848565b90975095506101008d0135811015614e08575f80fd5b614e198e6101008f01358f01614848565b90955093506101208d0135811015614e2f575f80fd5b50614e418d6101208e01358e01614848565b81935080925050509295989b509295989b9093969950565b5f805f8060608587031215614e6c575f80fd5b614e7585614832565b9350614e8360208601614832565b9250604085013567ffffffffffffffff80821115614e9f575f80fd5b818701915087601f830112614eb2575f80fd5b813581811115614ec0575f80fd5b8860208260051b8501011115614ed4575f80fd5b95989497505060200194505050565b5f805f805f60808688031215614ef7575f80fd5b614f0086614832565b945060208601359350614f1560408701614ba8565b9250606086013567ffffffffffffffff811115614a55575f80fd5b5f8060808385031215614f41575f80fd5b614f4b848461481c565b91506149bc60608401614832565b602080825282518282018190525f9190848201906040850190845b81811015614f995783516001600160a01b031683529284019291840191600101614f74565b50909695505050505050565b5f805f805f805f8060c0898b031215614fbc575f80fd5b614fc589614832565b9750614fd360208a01614832565b965060408901359550614fe860608a01614ba8565b9450608089013567ffffffffffffffff80821115615004575f80fd5b6150108c838d01614848565b909650945060a08b0135915080821115615028575f80fd5b506150358b828c01614848565b999c989b5096995094979396929594505050565b5f805f6060848603121561505b575f80fd5b61506484614832565b92506150726020850161491b565b915061508060408501614832565b90509250925092565b5f805f6060848603121561509b575f80fd5b6150a48461491b565b9250614c6260208501614832565b5f805f606084860312156150c4575f80fd5b6150a484614832565b5f805f60a084860312156150df575f80fd5b6150e9858561481c565b92506150f760608501614832565b9150608084013590509250925092565b5f8060408385031215615118575f80fd5b6149ae8361491b565b5f805f8060808587031215615134575f80fd5b61513d85614832565b935061514b6020860161491b565b925060408501359150614ab860608601614b40565b815181526020808301519082015260408101611889565b5f60208284031215615187575f80fd5b6120ab82614b40565b838152818360208301375f910160200190815292915050565b63ffffffff6151b78261491b565b1682526020810135602083015267ffffffffffffffff6151d960408301614b40565b1660408301525050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b61523481896151a9565b86606082015260e060808201525f61525060e0830187896151e3565b6001600160a01b03861660a084015282810360c08401526152728185876151e3565b9a9950505050505050505050565b6080810161528e82856151a9565b6001600160a01b03831660608301529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156152e1575f80fd5b8151600381106120ab575f80fd5b8015158114613bfe575f80fd5b5f6020828403121561530c575f80fd5b81516120ab816152ef565b5f60208284031215615327575f80fd5b81356120ab816152ef565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261536e575f80fd5b815167ffffffffffffffff8082111561538957615389615332565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156153cf576153cf615332565b816040528381528660208588010111156153e7575f80fd5b611421846020830160208901614ac3565b5f60208284031215615408575f80fd5b815167ffffffffffffffff81111561541e575f80fd5b6127238482850161535f565b8a815261ffff8a16602082015288604082015287606082015260e060808201525f61545960e08301888a6151e3565b82810360a084015261546c8187896151e3565b905082810360c08401526154818185876151e3565b9d9c50505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561188957611889615492565b5f6101206154e0838e6151a9565b8b60608401528a60808401528960a08401528060c0840152615505818401898b6151e3565b905082810360e084015261551a8187896151e3565b90508281036101008401526154818185876151e3565b5f60408083016001600160a01b03871684526020604081860152818683526060925060608601905060608760051b870101885f5b8981101561566b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa089840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18c36030181126155c4575f80fd5b8b0163ffffffff806155d58361491b565b168552806155e488840161491b565b168786015250878101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811261561d575f80fd5b01858101903567ffffffffffffffff811115615637575f80fd5b803603821315615645575f80fd5b878986015261565788860182846151e3565b958701959450505090840190600101615564565b50909a9950505050505050505050565b818382375f9101908152919050565b5f6001600160a01b03808916835280881660208401525085604083015261ffff8516606083015260a060808301526156c660a0830184866151e3565b98975050505050505050565b5f6001600160a01b03808a16835288602084015260a060408401526156fb60a08401888a6151e3565b818716606085015283810360808501526157168186886151e3565b9b9a5050505050505050505050565b60a0810161573382866151a9565b6001600160a01b0393909316606082015260800152919050565b67ffffffffffffffff818116838216019080821115614a0057614a00615492565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126157a1575f80fd5b83018035915067ffffffffffffffff8211156157bb575f80fd5b60200191503681900382131561168d575f80fd5b6060815267ffffffffffffffff855116606082015263ffffffff60208601511660808201526001600160a01b0360408601511660a08201525f606086015161581f60c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152615850610140840182614ae5565b905082810360208401526158658186886151e3565b915050612ddd604083018415159052565b5f60408284031215615886575f80fd5b6040516040810181811067ffffffffffffffff821117156158a9576158a9615332565b604052825181526020928301519281019290925250919050565b5f604082840312156158d3575f80fd5b6120ab8383615876565b5f80606083850312156158ee575f80fd5b6158f88484615876565b9150604083015167ffffffffffffffff811115615913575f80fd5b61591f8582860161535f565b9150509250929050565b606081525f61593b6060830187614ae5565b828103602084015261594e8186886151e3565b9150506001600160a01b038316604083015295945050505050565b5f60208284031215615979575f80fd5b5051919050565b6060810161188982846151a956fea2646970667358221220938f9466c98d432f294c8fa92afa649818bd8c0b591d10b7b71b464300e2a18764736f6c63430008160033","sourceMap":"2770:15372:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9753:572;;;;;;:::i;:::-;;:::i;:::-;;1153:158:33;;;;;;;;;;;;;:::i;:::-;;;;2019:10:141;2007:23;;;1989:42;;-1:-1:-1;;;;;2067:55:141;;;2062:2;2047:18;;2040:83;1962:18;1153:158:33;;;;;;;;13111:942:30;;;;;;;;;;-1:-1:-1;13111:942:30;;;;;:::i;:::-;;:::i;5245:1210:80:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11390:344::-;;;;;;;;;;-1:-1:-1;11390:344:80;;;;;:::i;:::-;;:::i;14475:261:30:-;;;;;;;;;;-1:-1:-1;14475:261:30;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;344:69:31:-;;;;;;;;;;-1:-1:-1;344:69:31;395:17;344:69;;;;;5864:25:141;;;5852:2;5837:18;344:69:31;5718:177:141;4815:687:31;;;;;;;;;;-1:-1:-1;4815:687:31;;;;;:::i;:::-;;:::i;455:145:32:-;;;;;;;;;;-1:-1:-1;455:145:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4135:379:30;;;;;;;;;;-1:-1:-1;4135:379:30;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;7664:55:141;;;7646:74;;7763:14;;7756:22;7751:2;7736:18;;7729:50;7619:18;4135:379:30;7478:307:141;5920:644:31;;;;;;;;;;-1:-1:-1;5920:644:31;;;;;:::i;:::-;;:::i;486:27::-;;;;;;;;;;;;;;;;;;7964:10:141;7952:23;;;7934:42;;7922:2;7907:18;486:27:31;7790:192:141;2947:58:80;;;;;;;;;;-1:-1:-1;2947:58:80;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2947:58:80;;;;;;-1:-1:-1;;;;;8342:55:141;;;8324:74;;8312:2;8297:18;2947:58:80;8178:226:141;520:126:31;;;;;;;;;;-1:-1:-1;520:126:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8914:18:141;8902:31;;;8884:50;;8872:2;8857:18;520:126:31;8740:200:141;9954:173:30;;;;;;;;;;-1:-1:-1;9954:173:30;;;;;:::i;:::-;;:::i;:::-;;;9299:14:141;;9292:22;9274:41;;9262:2;9247:18;9954:173:30;9134:187:141;3537:395:32;;;;;;;;;;-1:-1:-1;3537:395:32;;;;;:::i;:::-;;:::i;11204:1559:30:-;;;;;;;;;;-1:-1:-1;11204:1559:30;;;;;:::i;:::-;;:::i;10627:388:80:-;;;;;;;;;;-1:-1:-1;10627:388:80;;;;;:::i;:::-;;:::i;14185:208:30:-;;;;;;;;;;-1:-1:-1;14185:208:30;;;;;:::i;:::-;;:::i;1509:69::-;;;;;;;;;;-1:-1:-1;1509:69:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1509:69:30;;;;;;;;;;-1:-1:-1;;;;;13164:55:141;;;13146:74;;13251:2;13236:18;;13229:34;;;;13119:18;1509:69:30;12972:297:141;1437:66:30;;;;;;;;;;-1:-1:-1;1437:66:30;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1437:66:30;;;2293:101:116;;;;;;;;;;;;;:::i;744:39:30:-;;;;;;;;;;;;;;;969:106:33;;;;;;;;;;-1:-1:-1;1041:12:33;;527:1;1041:27;;969:106;;1065:402:32;;;;;;;;;;-1:-1:-1;1065:402:32;;;;;:::i;:::-;;:::i;17710:215:80:-;;;;;;;;;;-1:-1:-1;17710:215:80;;;;;:::i;:::-;;:::i;1638:85:116:-;;;;;;;;;;-1:-1:-1;1684:7:116;1710:6;-1:-1:-1;;;;;1710:6:116;1638:85;;2858:118:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2144:1048:32:-;;;;;;:::i;:::-;;:::i;10340:450:30:-;;;;;;;;;;-1:-1:-1;10340:450:30;;;;;:::i;:::-;;:::i;825:115:31:-;;;;;;;;;;-1:-1:-1;825:115:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4887:1218:30;;;;;;;;;;-1:-1:-1;4887:1218:30;;;;;:::i;:::-;;:::i;2523:425:31:-;;;;;;;;;;-1:-1:-1;2523:425:31;;;;;:::i;:::-;;:::i;7763:1045:30:-;;;;;;;;;;-1:-1:-1;7763:1045:30;;;;;:::i;:::-;;:::i;12477:148:80:-;;;;;;;;;;-1:-1:-1;12477:148:80;;;;;:::i;:::-;;:::i;8373:709::-;;;;;;;;;;-1:-1:-1;8373:709:80;;;;;:::i;:::-;;:::i;8256:259:31:-;;;;;;;;;;-1:-1:-1;8256:259:31;;;;;:::i;:::-;;:::i;7038:400:30:-;;;;;;;;;;-1:-1:-1;7038:400:30;;;;;:::i;:::-;;:::i;3524:317::-;;;;;;;;;;-1:-1:-1;3524:317:30;;;;;:::i;:::-;;:::i;12081:133:80:-;;;;;;;;;;-1:-1:-1;12081:133:80;;;;;:::i;:::-;;:::i;17931:209::-;;;;;;;;;;-1:-1:-1;17931:209:80;;;;;:::i;:::-;;:::i;652:167:31:-;;;;;;;;;;-1:-1:-1;652:167:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16136:148:80;;;;;;;;;;-1:-1:-1;16136:148:80;;;;;:::i;:::-;;:::i;283:55:31:-;;;;;;;;;;-1:-1:-1;283:55:31;336:1;283:55;;9156:710:30;;;;;;;;;;-1:-1:-1;9156:710:30;;;;;:::i;:::-;;:::i;4016:359:31:-;;;;;;;;;;-1:-1:-1;4016:359:31;;;;;:::i;:::-;;:::i;948:55:30:-;;;;;;;;;;-1:-1:-1;948:55:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;3847:158;;;;;;;;;;-1:-1:-1;3847:158:30;;;;;:::i;:::-;-1:-1:-1;;;;;3954:20:30;;;3931:4;3954:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;:44;;3847:158;3962:1043:80;;;;;;;;;;-1:-1:-1;3962:1043:80;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15945:99::-;;;;;;;;;;-1:-1:-1;15999:7:80;15945:99;;2918:22;;;;;;;;;;-1:-1:-1;2918:22:80;;;;-1:-1:-1;;;;;2918:22:80;;;6264:511:30;;;;;;;;;;-1:-1:-1;6264:511:30;;;;;:::i;:::-;;:::i;1270:91::-;;;;;;;;;;-1:-1:-1;1270:91:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1270:91:30;;;;;;2543:215:116;;;;;;;;;;-1:-1:-1;2543:215:116;;;;;:::i;:::-;;:::i;1368:63:30:-;;;;;;;;;;-1:-1:-1;1368:63:30;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1368:63:30;;;9753:572:80;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:80;;;;;-1:-1:-1;;;;;10159:39:80;;;;;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:33:-;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:30:-;-1:-1:-1;;;;;1765:25:30;;;;;;:19;:25;;;;;;13266:4;;1765:25;;1760:68;;1799:29;;;;;;;;;;;;;;1760:68;13285:4;-1:-1:-1;;;;;2114:19:30;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:30::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;;;;;;;;;;;;;2149:96;13308:4:::0;13314;-1:-1:-1;;;;;2711:19:30;::::2;::::0;2707:128:::2;;2751:38;::::0;;;;7964:10:141;7952:23;;2751:38:30::2;::::0;::::2;7934:42:141::0;-1:-1:-1;;;;;2751:32:30;::::2;::::0;::::2;::::0;7907:18:141;;2751:38:30::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;;;;;;;;;;;;;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;;;;;;;;;;;;;;13494:51;13560:7;13571:1;13560:12:::0;13556:424:::3;;-1:-1:-1::0;;;;;13649:28:30;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13642:41;;;::::3;::::0;;;::::3;::::0;13556:424:::3;;;13779:12;13768:7;:23;13764:61;;13800:25;;;;;;;;;;;;;;13764:61;-1:-1:-1::0;;;;;13865:28:30;;::::3;13839:23;13865:28:::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13913:18;;;::::3;::::0;;::::3;::::0;;;::::3;::::0;;-1:-1:-1;13945:14:30::3;:24:::0;;;13556:424:::3;13994:52;::::0;;-1:-1:-1;;;;;21710:15:141;;;21692:34;;21774:10;21762:23;;21757:2;21742:18;;21735:51;21822:15;;21802:18;;;21795:43;;;;21869:2;21854:18;;21847:34;;;13994:52:30::3;::::0;21618:3:141;21603:19;13994:52:30::3;;;;;;;;13320:733;2265:1:::2;;1838::::1;13111:942:::0;;;;;:::o;5245:1210:80:-;5405:23;;:::i;:::-;5368:14;;;;:7;:14;:::i;:::-;5384:10;527:1:33;733:12;;:27;729:66;;769:26;;;;;;;;;;;;;;729:66;821:23;841:3;821:23;;;;;;;-1:-1:-1;;;;;820:44:33;;;805:12;:59;5444:20:80::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;:47;;;;-1:-1:-1::0;5468:7:80::1;::::0;-1:-1:-1;;;;;5468:7:80::1;:23:::0;5444:47:::1;5440:90;;;5500:30;;;;;;;;;;;;;;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:80::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:80::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:33;885:12;:26;-1:-1:-1;6441:7:80;5245:1210;-1:-1:-1;;;;;5245:1210:80:o;11390:344::-;11504:24;11522:5;11504:17;:24::i;:::-;11539:20;11579:5;11586:8;;11562:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;11605:76:80;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:30:-;-1:-1:-1;;;;;1765:25:30;;;;;;:19;:25;;;;;;14638:19;;14623:4;;1765:25;;1760:68;;1799:29;;;;;;;;;;;;;;1760:68;14676:53:::1;::::0;;;;22346:10:141;22383:15;;;14676:53:30::1;::::0;::::1;22365:34:141::0;-1:-1:-1;;;;;22435:55:141;;;22415:18;;;22408:83;22527:15;;;22507:18;;;22500:43;14676:27:30;::::1;::::0;::::1;::::0;22309:18:141;;14676:53:30::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;14669:60:::0;14475:261;-1:-1:-1;;;;;;14475:261:30:o;4815:687:31:-;4935:24;4953:5;4935:17;:24::i;:::-;-1:-1:-1;;;;;4995:25:31;;4970:22;4995:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;:51;;;;;;;;;;;5060:30;;;5056:102;;5099:59;;;;;;;;24019:25:141;;;24060:18;;;24053:34;;;23992:18;;5099:59:31;;;;;;;;5056:102;-1:-1:-1;;;;;5182:23:31;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;;;;;5172:51;;;;;;;:91;;-1:-1:-1;5227:36:31;;5172:91;5168:146;;;5284:30;;;;;8914:18:141;8902:31;;5284:30:31;;;8884:50:141;8857:18;;5284:30:31;8740:200:141;5168:146:31;-1:-1:-1;;;;;5349:25:31;;387:26;5349:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;;;:43;;;;;;;;:51;;;;;;;;;;;;;395:17;5349:70;;5434:61;;24353:42:141;;;24411:18;;;24404:34;;;24454:18;;24447:83;;;;24561:2;24546:18;;24539:59;24629:3;24614:19;;24607:35;;;5434:61:31;;24340:3:141;24325:19;5434:61:31;24098:550:141;4135:379:30;-1:-1:-1;;;;;4263:25:30;;;4218:11;4263:25;;;:14;:25;;;;;;;;:34;;;;;;;;;;;;;;;;4307:201;;4351:30;;;;;;;:21;:30;;;;;;-1:-1:-1;;;;;4351:30:30;;-1:-1:-1;4351:30:30;4395:72;;4427:40;;;;;;;;;;;;;;4395:72;-1:-1:-1;4493:4:30;4307:201;4135:379;;;;;:::o;5920:644:31:-;6038:24;6056:5;6038:17;:24::i;:::-;-1:-1:-1;;;;;6098:25:31;;6073:22;6098:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;:51;;;;;;;;;;;6163:30;;;6159:102;;6202:59;;;;;;;;24019:25:141;;;24060:18;;;24053:34;;;23992:18;;6202:59:31;23845:248:141;6159:102:31;6275:36;;;:90;;-1:-1:-1;;;;;;6324:23:31;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;;;;;6315:50;;;;6275:90;6271:145;;;6386:30;;;;;8914:18:141;8902:31;;6386:30:31;;;8884:50:141;8857:18;;6386:30:31;8740:200:141;6271:145:31;-1:-1:-1;;;;;6433:25:31;;;;;;:18;:25;;;;;;;;:34;;;;;;;;;;;;:43;;;;;;;;:51;;;;;;;;;;;;6426:58;;;;6499;;24353:42:141;;;24411:18;;;24404:34;;;24454:18;;24447:83;;;;24561:2;24546:18;;24539:59;24629:3;24614:19;;24607:35;;;6499:58:31;;24340:3:141;24325:19;6499:58:31;24098:550:141;9954:173:30;10037:24;;;10014:4;10037:24;;;:18;:24;;;;;;-1:-1:-1;;;;;10037:24:30;:38;;;;:83;;-1:-1:-1;10079:27:30;;;10118:1;10079:27;;;:21;:27;;;;;;-1:-1:-1;;;;;10079:27:30;:41;;10037:83;10030:90;9954:173;-1:-1:-1;;9954:173:30:o;3537:395:32:-;3854:10;-1:-1:-1;;;;;3827:98:32;3849:3;-1:-1:-1;;;;;3827:98:32;3842:5;-1:-1:-1;;;;;3827:98:32;;3866:5;3873:6;3881:4;3887:6;3895:8;;3905:10;;3917:7;;3827:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3537:395;;;;;;;;;;;;:::o;11204:1559:30:-;-1:-1:-1;;;;;2341:25:30;;;;;;:19;:25;;;;;;11369:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:30;;;;2340:49;2336:100;;;2398:38;;;;;;;;;;;;;;2336:100;11391:7;-1:-1:-1;;;;;2114:19:30;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:30::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;;;;;;;;;;;;;2149:96;11417:7:::0;11426:4;-1:-1:-1;;;;;2711:19:30;::::2;::::0;2707:128:::2;;2751:38;::::0;;;;7964:10:141;7952:23;;2751:38:30::2;::::0;::::2;7934:42:141::0;-1:-1:-1;;;;;2751:32:30;::::2;::::0;::::2;::::0;7907:18:141;;2751:38:30::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;;;;;;;;;;;;;2746:78;11442:24:::3;11460:5;11442:17;:24::i;:::-;-1:-1:-1::0;;;;;11494:21:30;;::::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;;;;;;;;;;;;;;11566:51;-1:-1:-1::0;;;;;11627:21:30;;::::3;;::::0;;;:14:::3;:21;::::0;;;;;;;:27:::3;::::0;::::3;::::0;;;;;;;;;;:37;;;::::3;::::0;;::::3;::::0;;::::3;::::0;;11679:39;;25837:34:141;;;25887:18;;;25880:51;;;;25947:18;;25940:43;;;;11679:39:30::3;::::0;25764:2:141;25749:18;11679:39:30::3;;;;;;;11733:16:::0;;11729:1028:::3;;-1:-1:-1::0;;;;;12251:21:30;::::3;::::0;;:47:::3;;-1:-1:-1::0;;;;;;12276:22:30;::::3;::::0;12251:47:::3;12247:89;;;12307:29;;;;;;;;;;;;;;12247:89;12383:22;12408:61;;;;;;;;12423:6;-1:-1:-1::0;;;;;12408:61:30::3;;;;;12454:12;12439;:27;;;;:::i;:::-;12408:61:::0;;-1:-1:-1;;;;;12483:28:30;;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;:44;;;;;::::3;::::0;;;::::3;::::0;;;::::3;::::0;;;::::3;::::0;;;;::::3;::::0;;;12546:61;12383:86;;-1:-1:-1;12546:61:30::3;::::0;::::3;::::0;12505:5;;12512:4;;12584:6;;-1:-1:-1;;;;;21710:15:141;;;21692:34;;21774:10;21762:23;;;;21757:2;21742:18;;21735:51;21822:15;;21817:2;21802:18;;21795:43;21869:2;21854:18;;21847:34;;;;21618:3;21603:19;;21402:485;12546:61:30::3;;;;;;;;11751:867;11729:1028;;;-1:-1:-1::0;;;;;12645:28:30;;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;;12638:41;;;::::3;::::0;;-1:-1:-1;12638:41:30::3;::::0;;;12698:48;;21692:34:141;;;21742:18;;;21735:51;;;;21822:15;;;21802:18;;;21795:43;;;;21869:2;21854:18;;21847:34;;;;12698:48:30::3;::::0;21618:3:141;21603:19;12698:48:30::3;21402:485:141::0;11729:1028:30::3;11432:1331;2265:1:::2;;2446::::1;11204:1559:::0;;;;;:::o;10627:388:80:-;10936:10;-1:-1:-1;;;;;10910:98:80;10925:9;-1:-1:-1;;;;;10910:98:80;;10948:7;10957:5;10964:4;10970:6;10978:8;;10988:10;;11000:7;;10910:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10627:388;;;;;;;;;;;:::o;14185:208:30:-;-1:-1:-1;;;;;1765:25:30;;;;;;:19;:25;;;;;;14292:4;;1765:25;;1760:68;;1799:29;;;;;;;;;;;;;;1760:68;14308:24:::1;14326:5;14308:17;:24::i;:::-;14343:43;::::0;;;;-1:-1:-1;;;;;14343:27:30;::::1;::::0;::::1;::::0;:43:::1;::::0;14371:5;;14378:7;;;;14343:43:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;2293:101:116::0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1065:402:32:-;1232:10;372:1;1219:24;;;:12;:24;;;;;;;;-1:-1:-1;;;;;1219:29:32;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:63;1215:101;;1291:25;;;;;;;;;;;;;;1215:101;1383:8;;1373:19;;;;;;;:::i;:::-;;;;;;;;;;1339:10;1326:24;;;;:12;:24;;;;;;;-1:-1:-1;;;;;1326:29:32;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:66;1407:53;;;;1339:10;1351:3;;1356:5;;1363:6;;1451:8;;;;1407:53;:::i;:::-;;;;;;;;1065:402;;;;;:::o;17710:215:80:-;-1:-1:-1;;;;;17858:27:80;;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:80;;;17902:14;;;;17858:59;;;;;;;;;;17823:14;:95::i;:::-;17816:102;17710:215;-1:-1:-1;;;17710:215:80:o;2858:118:30:-;2915:16;2950:19;2943:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2943:26:30;;;;;;;;;;;;;;;;;;;;;;;2858:118;:::o;2144:1048:32:-;-1:-1:-1;;;;;2408:19:32;;;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;;;;;;;;24019:25:141;;;24060:18;;;24053:34;;;23992:18;;2546:51:32;23845:248:141;2507:90:32;-1:-1:-1;;;;;2953:19:32;;;429;2953;;;:12;:19;;;;;;;;:24;;;;;;;;;;;;:31;;;;;;;;:39;;;;;;;;;;;;445:1;2953:63;;3026:101;;;;: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;;;;;31844:15:141;;;31826:34;;31896:15;;;;31891:2;31876:18;;31869:43;31943:2;31928:18;;31921:34;32003:6;31991:19;;;;31986:2;31971:18;;31964:47;31752:3;31737:19;;31536:481;3142:43:32;;;;;;;;2344:848;;2144:1048;;;;;;;;:::o;10340:450:30:-;-1:-1:-1;;;;;2341:25:30;;;;;;:19;:25;;;;;;10472:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:30;;;;2340:49;2336:100;;;2398:38;;;;;;;;;;;;;;2336:100;10491:7;-1:-1:-1;;;;;1899:19:30;::::1;::::0;1895:146:::1;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:30::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::1;;2007:23;;;;;;;;;;;;;;1934:96;10517:7:::0;10526:4;-1:-1:-1;;;;;2711:19:30;::::2;::::0;2707:128:::2;;2751:38;::::0;;;;7964:10:141;7952:23;;2751:38:30::2;::::0;::::2;7934:42:141::0;-1:-1:-1;;;;;2751:32:30;::::2;::::0;::::2;::::0;7907:18:141;;2751:38:30::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;;;;;;;;;;;;;2746:78;10542:24:::3;10560:5;10542:17;:24::i;:::-;-1:-1:-1::0;;;;;10623:18:30;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;:35;;::::3;:24:::0;::::3;:35:::0;10619:69:::3;;10667:21;;;;;;;;;;;;;;10619:69;-1:-1:-1::0;;;;;10698:18:30;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;;;:34;;;::::3;::::0;;::::3;::::0;;::::3;::::0;;10747:36;;25837:34:141;;;25887:18;;;25880:51;;;;25947:18;;25940:43;;;;10747:36:30::3;::::0;25764:2:141;25749:18;10747:36:30::3;25576:413:141::0;4887:1218:30;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:30;:17;-1:-1:-1;;;;;5231:39:30;;5227:81;;5293:4;5286:11;;;;;;5227:81;5514:22;5539:9;:117;;-1:-1:-1;;;;;5615:32:30;;;;;;:21;:32;;;;;;;;:41;;;;;;;;;;5539:117;;;5563:37;;;;;;;:28;:37;;;;;5539:117;5514:142;;;;;;;;;;;-1:-1:-1;;;;;5514:142:30;;;;;;;;;;;;;;;;;-1:-1:-1;5886:32:30;;;:65;;;;;5939:12;5922:7;:14;;;:29;5886:65;5882:158;;;6025:4;6018:11;;;;;;;5882:158;-1:-1:-1;6093:5:30;;4887:1218;-1:-1:-1;;;;;;4887:1218:30:o;2523:425:31:-;-1:-1:-1;;;;;2657:27:31;;2618:6;2657:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;;;2788:116;-1:-1:-1;;;;;3252:29:31;;3229:4;3252:29;;;:18;:29;;;;;;;;:38;;;;;;;;;;:47;;;;;;;;:55;2854:1;2840:15;;3252:55;;;;;;;;;:77;2788:116;;2876:13;;2788:116;;;2930:11;2523:425;-1:-1:-1;;;;2523:425:31:o;7763:1045:30:-;1531:13:116;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:30;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7913:7;;1765:25:::1;;1760:68;;1799:29;;;;;;;;;;;;;;1760:68;7935:7:::0;-1:-1:-1;;;;;2114:19:30;::::2;::::0;2110:146:::2;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:30::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::2;;2219:26;;;;;;;;;;;;;;2149:96;7961:7:::0;7970:4;-1:-1:-1;;;;;2711:19:30;::::3;::::0;2707:128:::3;;2751:38;::::0;;;;7964:10:141;7952:23;;2751:38:30::3;::::0;::::3;7934:42:141::0;-1:-1:-1;;;;;2751:32:30;::::3;::::0;::::3;::::0;7907:18:141;;2751:38:30::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;;;;;;;;;;;;;2746:78;8003:27:::4;::::0;::::4;7986:14;8003:27:::0;;;:21:::4;:27;::::0;;;;;-1:-1:-1;;;;;8003:27:30;;::::4;::::0;8086:17;::::4;::::0;;8082:51:::4;;8112:21;;;;;;;;;;;;;;8082:51;8144:27;::::0;::::4;;::::0;;;:21:::4;:27;::::0;;;;;;;;:37;;;::::4;-1:-1:-1::0;;;;;8144:37:30;::::4;::::0;;::::4;::::0;;;8196:39;;1989:42:141;;;2047:18;;;2040:83;8196:39:30::4;::::0;1962:18:141;8196:39:30::4;;;;;;;8250:16:::0;;8246:556:::4;;8390:34;::::0;::::4;8364:23;8390:34:::0;;;:28:::4;:34;::::0;;;;8438:20;;;::::4;-1:-1:-1::0;;;;;8438:20:30;::::4;;::::0;;8489:27:::4;8504:12:::0;8489::::4;:27;:::i;:::-;8472:14;::::0;::::4;:44:::0;;;8535:61:::4;::::0;;32252:10:141;32240:23;;32222:42;;-1:-1:-1;;;;;32300:55:141;;32295:2;32280:18;;32273:83;32372:18;;;32365:34;;;;8535:61:30;::::4;::::0;;;;32210:2:141;8535:61:30;;::::4;8268:339;8246:556;;;8690:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;;;;8683:41;;;::::4;::::0;;-1:-1:-1;8683:41:30::4;::::0;;;8743:48;;32222:42:141;;;-1:-1:-1;;;;;32300:55:141;;32280:18;;;32273:83;;;;32372:18;;32365:34;8743:48:30::4;::::0;32210:2:141;32195:18;8743:48:30::4;;;;;;;8246:556;7976:832;2265:1:::3;;1838::::2;1554::116::1;7763:1045:30::0;;;:::o;12477:148:80:-;1531:13:116;:11;:13::i;:::-;12574:44:80::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;;;;;;;;;;;;;;8474:107;-1:-1:-1;;;;;8611:27:80;;8592:16;8611:27;;;:16;:27;;;;;;;;8592:16;;8639:14;;;;:7;:14;:::i;:::-;8611:43;;;;;;;;;;;;;;;;-1:-1:-1;8611:43:80;;;8655:14;;;;8611:59;;;;;;;;;;;-1:-1:-1;8685:45:80;8655:7;8709:9;8611:59;8685:14;:45::i;:::-;8680:91;;8739:32;;;;;;;;;;;;;;8680:91;8786:42;8798:7;8807:9;8818;8786:11;:42::i;:::-;8781:85;;8837:29;;;;;;;;;;;;;;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:31:-;-1:-1:-1;;;;;8387:22:31;;8349:7;8387:22;;;:13;:22;;;;;;;;:31;;;;;;;;;;:42;;;;;;;;;8349:7;;8387:46;;:42;;;:46;:::i;:::-;375:74:46;;;39074:66:141;39060:3;39056:16;;;39052:89;375:74:46;;;;39040:102:141;;;;39161:66;8475:3:31;39264::141;39260:16;;;39256:25;;39243:11;;;39236:46;-1:-1:-1;;;;;409:17:46;;39298:12:141;;;39291:28;39353:16;;;39349:25;39335:12;;;39328:47;39391:12;;;;39384:28;;;375:74:46;;;;;;;;;;39428:12:141;;;;375:74:46;;;365:85;;;;;8368:65:31;;-1:-1:-1;8450:58:31;8443:65;8256:259;-1:-1:-1;;;;;8256:259:31:o;7038:400:30:-;1531:13:116;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:30;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7155:7;;1765:25:::1;;1760:68;;1799:29;;;;;;;;;;;;;;1760:68;7174:7:::0;-1:-1:-1;;;;;1899:19:30;::::2;::::0;1895:146:::2;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:30::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::2;;2007:23;;;;;;;;;;;;;;1934:96;7200:7:::0;7209:4;-1:-1:-1;;;;;2711:19:30;::::3;::::0;2707:128:::3;;2751:38;::::0;;;;7964:10:141;7952:23;;2751:38:30::3;::::0;::::3;7934:42:141::0;-1:-1:-1;;;;;2751:32:30;::::3;::::0;::::3;::::0;7907:18:141;;2751:38:30::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;;;;;;;;;;;;;2746:78;7271:24:::4;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;-1:-1:-1;;;;;7271:35:30;;::::4;:24:::0;::::4;:35:::0;7267:69:::4;;7315:21;;;;;;;;;;;;;;7267:69;7346:24;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;;;;:34;;;::::4;-1:-1:-1::0;;;;;7346:34:30;::::4;::::0;;::::4;::::0;;;7395:36;;1989:42:141;;;2047:18;;;2040:83;7395:36:30::4;::::0;1962:18:141;7395:36:30::4;1817:312:141::0;3524:317:30;-1:-1:-1;;;;;3631:20:30;;;3602:11;3631:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;3670:165;;-1:-1:-1;3714:27:30;;;;;;;:18;:27;;;;;;-1:-1:-1;;;;;3714:27:30;;3755:69;;3787:37;;;;;;;;;;;;;;12081:133:80;1531:13:116;:11;:13::i;:::-;12154:7:80::1;:18:::0;;;::::1;-1:-1:-1::0;;;;;12154:18:80;::::1;::::0;;::::1;::::0;;;12187:20:::1;::::0;8324:74:141;;;12187:20:80::1;::::0;8312:2:141;8297:18;12187:20:80::1;;;;;;;;12081:133:::0;:::o;17931:209::-;-1:-1:-1;;;;;18073:27:80;;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:80;;;18117:14;;;;18073:59;;;;;;;;;;18041:11;:92::i;16136:148::-;16205:10;16195:21;;;;:9;:21;;;;;;;;;:33;;;;-1:-1:-1;;;;;16195:33:80;;;;;;;;16243:34;;33678::141;;;33728:18;;;33721:43;16243:34:80;;33590:18:141;16243:34:80;33443:327:141;9156:710:30;-1:-1:-1;;;;;1765:25:30;;;;;;:19;:25;;;;;;9295:4;;1765:25;;1760:68;;1799:29;;;;;;;;;;;;;;1760:68;9314:4;-1:-1:-1;;;;;2114:19:30;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:30::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;;;;;;;;;;;;;2149:96;9337:4:::0;9343;-1:-1:-1;;;;;2711:19:30;::::2;::::0;2707:128:::2;;2751:38;::::0;;;;7964:10:141;7952:23;;2751:38:30::2;::::0;::::2;7934:42:141::0;-1:-1:-1;;;;;2751:32:30;::::2;::::0;::::2;::::0;7907:18:141;;2751:38:30::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;;;;;;;;;;;;;2746:78;1531:13:116::3;:11;:13::i;:::-;9373:7:30::4;9384:1;9373:12:::0;9369:424:::4;;9462:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;9455:41;;;::::4;::::0;;;::::4;::::0;9369:424:::4;;;9592:12;9581:7;:23;9577:61;;9613:25;;;;;;;;;;;;;;9577:61;9678:34;::::0;::::4;9652:23;9678:34:::0;;;:28:::4;:34;::::0;;;;9726:18;;;::::4;-1:-1:-1::0;;;;;9726:18:30;::::4;;::::0;;-1:-1:-1;9758:14:30::4;:24:::0;;;9369:424:::4;9807:52;::::0;;32252:10:141;32240:23;;32222:42;;-1:-1:-1;;;;;32300:55:141;;32295:2;32280:18;;32273:83;32372:18;;;32365:34;;;9807:52:30::4;::::0;32210:2:141;32195:18;9807:52:30::4;32022:383:141::0;4016:359:31;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;:::-;4151:51;;:6;:51;;;4147:94;;4211:30;;;;;8914:18:141;8902:31;;4211:30:31;;;8884:50:141;8857:18;;4211:30:31;8740:200:141;4147:94:31;-1:-1:-1;;;;;4251:23:31;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;;;:41;;;;;;;;;:50;;;;;;;;;;;;;4316:52;;34002:42:141;;;34060:18;;;34053:34;;;34103:18;;34096:83;;;;34210:2;34195:18;;34188:59;;;;4316:52:31;;33989:3:141;33974:19;4316:52:31;33775:478:141;3962:1043:80;-1:-1:-1;;;;;;;;;;;;;;;;;4141:20:80;;;;;;;;:::i;:::-;:47;;;;-1:-1:-1;4165:7:80;;-1:-1:-1;;;;;4165:7:80;:23;4141:47;4137:90;;;4197:30;;;;;;;;;;;;;;4137:90;-1:-1:-1;;;;;4295:22:80;;4280:12;4295:22;;;:13;:22;;;;;;;;4280:12;;4318:14;;;;:7;:14;:::i;:::-;4295:38;;;;;;;;;;;;;;;;-1:-1:-1;4295:38:80;;;4334:16;;;;4295:56;;;;;;;;:60;;:56;;;:60;:::i;:::-;4280:75;;4410:20;4433:300;;;;;;;;4461:5;4433:300;;;;;;4488:3;4433:300;;;;;;4513:7;-1:-1:-1;;;;;4433:300:80;;;;;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;;;339:7:46;392:6;400:7;-1:-1:-1;;;;;409:17:46;;375:74;;39060:3:141;39056:16;;;;39074:66;39052:89;375:74:46;;;39040:102:141;39264:3;39260:16;;;39161:66;39256:25;;;39243:11;;;39236:46;39298:12;;;39291:28;;;;39353:16;;;;39349:25;39335:12;;;39328:47;39391:12;;;39384:28;;;39428:12;;375:74:46;;;;;;;;;;;;365:85;;;;;;358:92;;169:288;;;;;;;;4616:68:80;4433:300;;;;4707:15;;;;:7;:15;:::i;:::-;4433:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4433:300:80;;;;-1:-1:-1;4410:323:80;;-1:-1:-1;4433:300:80;-1:-1:-1;4866:39:80;;-1:-1:-1;4881:7:80;4890:14;;;;:7;:14;:::i;4866:39::-;4843:62;-1:-1:-1;;;;;;4923:28:80;;;4952:6;4960:15;;;;:7;:15;:::i;:::-;4977:20;;;;;;;;:::i;:::-;4923:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6264:511:30:-;1531:13:116;:11;:13::i;:::-;6376:62:30::1;::::0;;;;6408:29:::1;6376:62;::::0;::::1;36847:98:141::0;-1:-1:-1;;;;;6376:31:30;::::1;::::0;::::1;::::0;36820:18:141;;6376:62:30::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;;;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:30;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;;;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:30;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;;::::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;6745:23;;8324:74:141;;;6745:23:30::1;::::0;8297:18:141;6745:23:30::1;8178:226:141::0;2543:215:116;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:116;::::1;2623:91;;2672:31;::::0;::::1;::::0;;2700:1:::1;2672:31;::::0;::::1;8324:74:141::0;8297:18;;2672:31:116::1;8178:226:141::0;2623:91:116::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;6931:1169:31:-;-1:-1:-1;;;;;7160:27:31;;7108:18;7160:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;;;;;;7219:21;;;-1:-1:-1;7215:417:31;;;7388:1;7373:16;;7357:179;7396:6;7391:11;;:1;:11;;;7357:179;;-1:-1:-1;;;;;3252:29:31;;3229:4;3252:29;;;:18;:29;;;;;;;;:38;;;;;;;;;;:47;;;;;;;;:55;;;;;;;;;;;7431:86;;7492:25;;;;;8914:18:141;8902:31;;7492:25:31;;;8884:50:141;8857:18;;7492:25:31;8740:200:141;7431:86:31;7404:3;;7357:179;;;-1:-1:-1;;;;;;7553:27:31;;;;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;:54;;;;;;;;;;7215:417;7771:19;;;;;;;;;;-1:-1:-1;;;;;7823:29:31;;7800:20;7823:29;;;:18;:29;;;;;;:38;;;;;;;;;;:47;;;;;;;;:55;;;;;;;;;;;;;7771:19;;-1:-1:-1;7892:26:31;;;7888:94;;7927:55;;;;;;;;24019:25:141;;;24060:18;;;24053:34;;;23992:18;;7927:55:31;23845:248:141;7888:94:31;-1:-1:-1;;;;;;;8038:29:31;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;:55;;;;;;;;;;;;;8031:62;;;;-1:-1:-1;6931:1169:31;:::o;17257:209:80:-;17373:10;-1:-1:-1;;;;;17373:19:80;;;;;;:53;;-1:-1:-1;;;;;;17410:16:80;;;;;;;:9;:16;;;;;;;17396:10;:30;;17373:53;17369:90;;;17435:24;;;;;;;;;;;;;;6698:1355;6804:23;;:::i;:::-;6829:7;;6911:52;6921:7;6930:14;;;;:7;:14;:::i;:::-;-1:-1:-1;;;;;1291:22:31;;;;1233:12;1291:22;;;:13;6946:16:80;1291:22:31;;;;;;;:31;;;;;;;;;;;;;6946:16:80;;;;1291:42:31;;;;;1289:44;;;;;;;;;;;;;;;;;;;1144:206;6911:52:80;6890:73;;7018:20;7041:312;;;;;;;;7069:11;7041:312;;;;;;7102:3;7041:312;;;;;;7127:7;-1:-1:-1;;;;;7041:312:80;;;;;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:80;;;;-1:-1:-1;7018:335:80;;-1:-1:-1;7041:312:80;-1:-1:-1;7441:39:80;;-1:-1:-1;7456:7:80;7465:14;;;;:7;:14;:::i;7441:39::-;7418:62;-1:-1:-1;7553:23:80;;-1:-1:-1;;;;;7608:27:80;;;7649:6;7669:15;;;;:7;:15;:::i;:::-;7698:20;;;;;;;;:::i;:::-;7608:120;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7552:176;;-1:-1:-1;7552:176:80;-1:-1:-1;7909:56:80;7552:176;7935:15;;;;:7;:15;:::i;:::-;7952:12;7909:56;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;7984:47:80;;;;;;;;8001:11;;;;;7984:47;;;;;;;;;;;;;;;;;;-1:-1:-1;8033:12:80;-1:-1:-1;6698:1355:80;;;;;:::o;14358:669::-;14427:16;14459:13;14455:566;;;14506:7;;14499:40;;;;;14533:4;14499:40;;;8324:74:141;-1:-1:-1;;;;;14506:7:80;;;;14499:25;;8297:18:141;;14499:40:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14488:51;;14962:8;14974:1;14962:13;14958:52;;14984:26;;;;;;;;;;;;;;14958:52;14358:669;;;:::o;15288:488::-;15463:19;;:40;-1:-1:-1;15463:40:80;:86;;;15530:19;15507:9;:20;;;:42;15463:86;15459:311;;;15615:19;;15688:20;;;;15572:187;;;;;;;;38381:25:141;;;;38422:18;;;38415:34;;;38465:18;;;38458:34;38508:18;;;38501:34;;;38353:19;;15572:187:80;38150:391:141;12948:476:80;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:116:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:116;735:10:126;1855:23:116;1851:101;;1901:40;;;;;735:10:126;1901:40:116;;;8324:74:141;8297:18;;1901:40:116;8178:226:141;2912:187:116;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:116;;;;;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;16358:323:80:-;16505:4;16560:1;16540:17;:21;;;:134;;;-1:-1:-1;16616:58:80;;;;;-1:-1:-1;;;;;16616:49:80;;;;;:58;;16666:7;;16616:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;896:222:47:-;-1:-1:-1;;;;;987:22:47;;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:80:-;16888:4;16923:33;;;:13;;;;;;;;:::i;:::-;:33;;;:199;;;-1:-1:-1;;;;;;17024:29:80;;336:1:31;17024:29:80;;;:18;:29;;;;;;;;336:1:31;;17054:14:80;;;;:7;:14;:::i;:::-;17024:45;;;;;;;;;;;;;;;:61;17070:7;:14;;;17024:61;;;;;;;;;;;:76;17086:7;:13;;;;;;;;;;:::i;:::-;17024:76;;;;;;;;;;;;;-1:-1:-1;17024:76:80;;:98;;;16744:438;-1:-1:-1;;;;16744:438:80:o;1608:336:31:-;1784:12;1780:77;;1827:30;;;;;;;;;;;;;;1780:77;-1:-1:-1;;;;;1867:29:31;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;:55;;;;;;;;;:70;1608:336::o;696:194:47:-;-1:-1:-1;;;;;779:19:47;;775:58;;807:26;;;;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:47;;871:3;876:6;843:27;:40::i;438:252::-;-1:-1:-1;;;;;506:19:47;;502:58;;534:26;;;;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:47;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;;;;-1:-1:-1;;;;;13164:55:141;;649:34:47;;;13146:74:141;13236:18;;;13229:34;;;13119:18;;649:34:47;12972:297:141;1271:160:124;1380:43;;;-1:-1:-1;;;;;13164:55:141;;1380:43:124;;;13146:74:141;13236:18;;;;13229:34;;;1380:43:124;;;;;;;;;;13119:18:141;;;;1380:43:124;;;;;;;;;;;;;;;7968:11;;1353:71;;1373:5;;1380:43;;-1:-1:-1;;;;1380:43:124;-1:-1:-1;;7968:11:124;-1:-1:-1;1373:5:124;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:124;8278:8;8234:16;;-1:-1:-1;8310:15:124;;:68;;8362:11;8377:1;8362:16;;8310:68;;;-1:-1:-1;;;;;8328:26:124;;;:31;8310:68;8306:146;;;8401:40;;;;;-1:-1:-1;;;;;8342:55:141;;8401:40:124;;;8324:74:141;8297:18;;8401:40:124;8178:226:141;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:141:-;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:141;14:154;-1:-1:-1;14:154:141:o;173:196::-;241:20;;-1:-1:-1;;;;;290:54:141;;280:65;;270:93;;359:1;356;349:12;374:347;425:8;435:6;489:3;482:4;474:6;470:17;466:27;456:55;;507:1;504;497:12;456:55;-1:-1:-1;530:20:141;;573:18;562:30;;559:50;;;605:1;602;595:12;559:50;642:4;634:6;630:17;618:29;;694:3;687:4;678:6;670;666:19;662:30;659:39;656:59;;;711:1;708;701:12;726:987;869:6;877;885;893;901;909;917;970:3;958:9;949:7;945:23;941:33;938:53;;;987:1;984;977:12;938:53;1010;1055:7;1044:9;1010:53;:::i;:::-;1000:63;;1082:38;1116:2;1105:9;1101:18;1082:38;:::i;:::-;1072:48;;1167:3;1156:9;1152:19;1139:33;1129:43;;1223:3;1212:9;1208:19;1195:33;1247:18;1288:2;1280:6;1277:14;1274:34;;;1304:1;1301;1294:12;1274:34;1343:58;1393:7;1384:6;1373:9;1369:22;1343:58;:::i;:::-;1420:8;;-1:-1:-1;1317:84:141;-1:-1:-1;1508:3:141;1493:19;;1480:33;;-1:-1:-1;1525:16:141;;;1522:36;;;1554:1;1551;1544:12;1522:36;;1593:60;1645:7;1634:8;1623:9;1619:24;1593:60;:::i;:::-;726:987;;;;-1:-1:-1;726:987:141;;-1:-1:-1;726:987:141;;;;1567:86;;-1:-1:-1;;;726:987:141:o;2134:163::-;2201:20;;2261:10;2250:22;;2240:33;;2230:61;;2287:1;2284;2277:12;2302:401;2387:6;2395;2403;2411;2464:3;2452:9;2443:7;2439:23;2435:33;2432:53;;;2481:1;2478;2471:12;2432:53;2504:29;2523:9;2504:29;:::i;:::-;2494:39;;2552:37;2585:2;2574:9;2570:18;2552:37;:::i;:::-;2542:47;;2608:38;2642:2;2631:9;2627:18;2608:38;:::i;:::-;2302:401;;;;-1:-1:-1;2598:48:141;;2693:2;2678:18;2665:32;;-1:-1:-1;;2302:401:141:o;2708:469::-;2811:6;2819;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;2928:9;2915:23;2961:18;2953:6;2950:30;2947:50;;;2993:1;2990;2983:12;2947:50;3016:22;;3072:3;3054:16;;;3050:26;3047:46;;;3089:1;3086;3079:12;3047:46;3112:2;-1:-1:-1;3133:38:141;3167:2;3152:18;;3133:38;:::i;:::-;3123:48;;2708:469;;;;;:::o;3340:::-;3500:4;3542:3;3531:9;3527:19;3519:27;;3579:6;3573:13;3562:9;3555:32;3655:18;3647:4;3639:6;3635:17;3629:24;3625:49;3618:4;3607:9;3603:20;3596:79;3722:4;3714:6;3710:17;3704:24;3737:66;3797:4;3786:9;3782:20;3768:12;3260;;3248:25;;3322:4;3311:16;;;3305:23;3289:14;;3282:47;3182:153;3737:66;;3340:469;;;;:::o;3814:678::-;3937:6;3945;3953;3961;3969;4022:3;4010:9;4001:7;3997:23;3993:33;3990:53;;;4039:1;4036;4029:12;3990:53;4062:29;4081:9;4062:29;:::i;:::-;4052:39;;4110:62;4164:7;4159:2;4148:9;4144:18;4110:62;:::i;:::-;4100:72;;4219:3;4208:9;4204:19;4191:33;4181:43;;4275:3;4264:9;4260:19;4247:33;4303:18;4295:6;4292:30;4289:50;;;4335:1;4332;4325:12;4289:50;4374:58;4424:7;4415:6;4404:9;4400:22;4374:58;:::i;:::-;3814:678;;;;-1:-1:-1;3814:678:141;;-1:-1:-1;4451:8:141;;4348:84;3814:678;-1:-1:-1;;;3814:678:141:o;4497:405::-;4581:6;4589;4597;4605;4658:3;4646:9;4637:7;4633:23;4629:33;4626:53;;;4675:1;4672;4665:12;4626:53;4698:29;4717:9;4698:29;:::i;:::-;4688:39;;4746:38;4780:2;4769:9;4765:18;4746:38;:::i;:::-;4736:48;;4803:37;4836:2;4825:9;4821:18;4803:37;:::i;:::-;4793:47;;4859:37;4892:2;4881:9;4877:18;4859:37;:::i;:::-;4849:47;;4497:405;;;;;;;:::o;4907:250::-;4992:1;5002:113;5016:6;5013:1;5010:13;5002:113;;;5092:11;;;5086:18;5073:11;;;5066:39;5038:2;5031:10;5002:113;;;-1:-1:-1;;5149:1:141;5131:16;;5124:27;4907:250::o;5162:329::-;5203:3;5241:5;5235:12;5268:6;5263:3;5256:19;5284:76;5353:6;5346:4;5341:3;5337:14;5330:4;5323:5;5319:16;5284:76;:::i;:::-;5405:2;5393:15;5410:66;5389:88;5380:98;;;;5480:4;5376:109;;5162:329;-1:-1:-1;;5162:329:141:o;5496:217::-;5643:2;5632:9;5625:21;5606:4;5663:44;5703:2;5692:9;5688:18;5680:6;5663:44;:::i;5900:171::-;5967:20;;6027:18;6016:30;;6006:41;;5996:69;;6061:1;6058;6051:12;6076:468;6169:6;6177;6185;6193;6201;6254:3;6242:9;6233:7;6229:23;6225:33;6222:53;;;6271:1;6268;6261:12;6222:53;6294:29;6313:9;6294:29;:::i;:::-;6284:39;;6342:37;6375:2;6364:9;6360:18;6342:37;:::i;:::-;6332:47;;6426:2;6415:9;6411:18;6398:32;6388:42;;6449:37;6482:2;6471:9;6467:18;6449:37;:::i;:::-;6076:468;;;;-1:-1:-1;6076:468:141;;6533:3;6518:19;6505:33;;6076:468;-1:-1:-1;;6076:468:141:o;6549:159::-;6616:20;;6676:6;6665:18;;6655:29;;6645:57;;6698:1;6695;6688:12;6713:401;6798:6;6806;6814;6822;6875:3;6863:9;6854:7;6850:23;6846:33;6843:53;;;6892:1;6889;6882:12;6843:53;6915:29;6934:9;6915:29;:::i;:::-;6905:39;;6963:38;6997:2;6986:9;6982:18;6963:38;:::i;:::-;6953:48;;7048:2;7037:9;7033:18;7020:32;7010:42;;7071:37;7104:2;7093:9;7089:18;7071:37;:::i;7119:258::-;7186:6;7194;7247:2;7235:9;7226:7;7222:23;7218:32;7215:52;;;7263:1;7260;7253:12;7215:52;7286:29;7305:9;7286:29;:::i;:::-;7276:39;;7334:37;7367:2;7356:9;7352:18;7334:37;:::i;7987:186::-;8046:6;8099:2;8087:9;8078:7;8074:23;8070:32;8067:52;;;8115:1;8112;8105:12;8067:52;8138:29;8157:9;8138:29;:::i;8409:326::-;8485:6;8493;8501;8554:2;8542:9;8533:7;8529:23;8525:32;8522:52;;;8570:1;8567;8560:12;8522:52;8593:29;8612:9;8593:29;:::i;:::-;8583:39;;8641:37;8674:2;8663:9;8659:18;8641:37;:::i;:::-;8631:47;;8725:2;8714:9;8710:18;8697:32;8687:42;;8409:326;;;;;:::o;8945:184::-;9003:6;9056:2;9044:9;9035:7;9031:23;9027:32;9024:52;;;9072:1;9069;9062:12;9024:52;9095:28;9113:9;9095:28;:::i;9326:1435::-;9489:6;9497;9505;9513;9521;9529;9537;9545;9553;9561;9569:7;9578;9632:3;9620:9;9611:7;9607:23;9603:33;9600:53;;;9649:1;9646;9639:12;9600:53;9672:29;9691:9;9672:29;:::i;:::-;9662:39;;9720:38;9754:2;9743:9;9739:18;9720:38;:::i;:::-;9710:48;;9805:2;9794:9;9790:18;9777:32;9767:42;;9828:37;9861:2;9850:9;9846:18;9828:37;:::i;:::-;9818:47;;9912:3;9901:9;9897:19;9884:33;9874:43;;9964:3;9953:9;9949:19;9936:33;9926:43;;10019:18;10012:3;10001:9;9997:19;9984:33;9981:57;9978:77;;;10051:1;10048;10041:12;9978:77;10090:85;10167:7;10159:3;10148:9;10144:19;10131:33;10120:9;10116:49;10090:85;:::i;:::-;10194:8;;-1:-1:-1;10221:8:141;-1:-1:-1;10279:18:141;10272:3;10257:19;;10244:33;10241:57;10238:77;;;10311:1;10308;10301:12;10238:77;10350:85;10427:7;10419:3;10408:9;10404:19;10391:33;10380:9;10376:49;10350:85;:::i;:::-;10454:8;;-1:-1:-1;10481:8:141;-1:-1:-1;10539:18:141;10532:3;10517:19;;10504:33;10501:57;10498:77;;;10571:1;10568;10561:12;10498:77;10612:85;10689:7;10681:3;10670:9;10666:19;10653:33;10642:9;10638:49;10612:85;:::i;:::-;10717:9;10706:20;;10746:9;10735:20;;;;9326:1435;;;;;;;;;;;;;;:::o;10766:1399::-;10947:6;10955;10963;10971;10979;10987;10995;11003;11011;11019;11027:7;11081:3;11069:9;11060:7;11056:23;11052:33;11049:53;;;11098:1;11095;11088:12;11049:53;11121;11166:7;11155:9;11121:53;:::i;:::-;11111:63;;11193:38;11227:2;11216:9;11212:18;11193:38;:::i;:::-;11183:48;;11278:3;11267:9;11263:19;11250:33;11240:43;;11330:3;11319:9;11315:19;11302:33;11292:43;;11382:3;11371:9;11367:19;11354:33;11344:43;;11406:18;11474:2;11467:3;11456:9;11452:19;11439:33;11436:41;11433:61;;;11490:1;11487;11480:12;11433:61;11529:85;11606:7;11598:3;11587:9;11583:19;11570:33;11559:9;11555:49;11529:85;:::i;:::-;11633:8;;-1:-1:-1;11660:8:141;-1:-1:-1;11711:3:141;11696:19;;11683:33;11680:41;-1:-1:-1;11677:61:141;;;11734:1;11731;11724:12;11677:61;11773:85;11850:7;11842:3;11831:9;11827:19;11814:33;11803:9;11799:49;11773:85;:::i;:::-;11877:8;;-1:-1:-1;11904:8:141;-1:-1:-1;11955:3:141;11940:19;;11927:33;11924:41;-1:-1:-1;11921:61:141;;;11978:1;11975;11968:12;11921:61;;12018:85;12095:7;12087:3;12076:9;12072:19;12059:33;12048:9;12044:49;12018:85;:::i;:::-;12122:8;12112:18;;12150:9;12139:20;;;;10766:1399;;;;;;;;;;;;;;:::o;12170:797::-;12308:6;12316;12324;12332;12385:2;12373:9;12364:7;12360:23;12356:32;12353:52;;;12401:1;12398;12391:12;12353:52;12424:29;12443:9;12424:29;:::i;:::-;12414:39;;12472:38;12506:2;12495:9;12491:18;12472:38;:::i;:::-;12462:48;;12561:2;12550:9;12546:18;12533:32;12584:18;12625:2;12617:6;12614:14;12611:34;;;12641:1;12638;12631:12;12611:34;12679:6;12668:9;12664:22;12654:32;;12724:7;12717:4;12713:2;12709:13;12705:27;12695:55;;12746:1;12743;12736:12;12695:55;12786:2;12773:16;12812:2;12804:6;12801:14;12798:34;;;12828:1;12825;12818:12;12798:34;12881:7;12876:2;12866:6;12863:1;12859:14;12855:2;12851:23;12847:32;12844:45;12841:65;;;12902:1;12899;12892:12;12841:65;12170:797;;;;-1:-1:-1;;12933:2:141;12925:11;;-1:-1:-1;;;12170:797:141:o;13274:624::-;13370:6;13378;13386;13394;13402;13455:3;13443:9;13434:7;13430:23;13426:33;13423:53;;;13472:1;13469;13462:12;13423:53;13495:29;13514:9;13495:29;:::i;:::-;13485:39;;13571:2;13560:9;13556:18;13543:32;13533:42;;13594:37;13627:2;13616:9;13612:18;13594:37;:::i;:::-;13584:47;;13682:2;13671:9;13667:18;13654:32;13709:18;13701:6;13698:30;13695:50;;;13741:1;13738;13731:12;13903:311;13997:6;14005;14058:3;14046:9;14037:7;14033:23;14029:33;14026:53;;;14075:1;14072;14065:12;14026:53;14098;14143:7;14132:9;14098:53;:::i;:::-;14088:63;;14170:38;14204:2;14193:9;14189:18;14170:38;:::i;14219:681::-;14390:2;14442:21;;;14512:13;;14415:18;;;14534:22;;;14361:4;;14390:2;14613:15;;;;14587:2;14572:18;;;14361:4;14656:218;14670:6;14667:1;14664:13;14656:218;;;14735:13;;-1:-1:-1;;;;;14731:62:141;14719:75;;14849:15;;;;14814:12;;;;14692:1;14685:9;14656:218;;;-1:-1:-1;14891:3:141;;14219:681;-1:-1:-1;;;;;;14219:681:141:o;14905:1008::-;15030:6;15038;15046;15054;15062;15070;15078;15086;15139:3;15127:9;15118:7;15114:23;15110:33;15107:53;;;15156:1;15153;15146:12;15107:53;15179:29;15198:9;15179:29;:::i;:::-;15169:39;;15227:38;15261:2;15250:9;15246:18;15227:38;:::i;:::-;15217:48;;15312:2;15301:9;15297:18;15284:32;15274:42;;15335:37;15368:2;15357:9;15353:18;15335:37;:::i;:::-;15325:47;;15423:3;15412:9;15408:19;15395:33;15447:18;15488:2;15480:6;15477:14;15474:34;;;15504:1;15501;15494:12;15474:34;15543:58;15593:7;15584:6;15573:9;15569:22;15543:58;:::i;:::-;15620:8;;-1:-1:-1;15517:84:141;-1:-1:-1;15708:3:141;15693:19;;15680:33;;-1:-1:-1;15725:16:141;;;15722:36;;;15754:1;15751;15744:12;15722:36;;15793:60;15845:7;15834:8;15823:9;15819:24;15793:60;:::i;:::-;14905:1008;;;;-1:-1:-1;14905:1008:141;;-1:-1:-1;14905:1008:141;;;;;;15872:8;-1:-1:-1;;;14905:1008:141:o;15918:332::-;15994:6;16002;16010;16063:2;16051:9;16042:7;16038:23;16034:32;16031:52;;;16079:1;16076;16069:12;16031:52;16102:29;16121:9;16102:29;:::i;:::-;16092:39;;16150:37;16183:2;16172:9;16168:18;16150:37;:::i;:::-;16140:47;;16206:38;16240:2;16229:9;16225:18;16206:38;:::i;:::-;16196:48;;15918:332;;;;;:::o;16255:326::-;16331:6;16339;16347;16400:2;16388:9;16379:7;16375:23;16371:32;16368:52;;;16416:1;16413;16406:12;16368:52;16439:28;16457:9;16439:28;:::i;:::-;16429:38;;16486;16520:2;16509:9;16505:18;16486:38;:::i;16586:328::-;16663:6;16671;16679;16732:2;16720:9;16711:7;16707:23;16703:32;16700:52;;;16748:1;16745;16738:12;16700:52;16771:29;16790:9;16771:29;:::i;16919:380::-;17022:6;17030;17038;17091:3;17079:9;17070:7;17066:23;17062:33;17059:53;;;17108:1;17105;17098:12;17059:53;17131;17176:7;17165:9;17131:53;:::i;:::-;17121:63;;17203:38;17237:2;17226:9;17222:18;17203:38;:::i;:::-;17193:48;;17288:3;17277:9;17273:19;17260:33;17250:43;;16919:380;;;;;:::o;17304:258::-;17371:6;17379;17432:2;17420:9;17411:7;17407:23;17403:32;17400:52;;;17448:1;17445;17438:12;17400:52;17471:28;17489:9;17471:28;:::i;17567:399::-;17651:6;17659;17667;17675;17728:3;17716:9;17707:7;17703:23;17699:33;17696:53;;;17745:1;17742;17735:12;17696:53;17768:29;17787:9;17768:29;:::i;:::-;17758:39;;17816:37;17849:2;17838:9;17834:18;17816:37;:::i;:::-;17806:47;;17900:2;17889:9;17885:18;17872:32;17862:42;;17923:37;17956:2;17945:9;17941:18;17923:37;:::i;17971:261::-;3260:12;;3248:25;;3322:4;3311:16;;;3305:23;3289:14;;;3282:47;18165:2;18150:18;;18177:49;3182:153;18237:184;18295:6;18348:2;18336:9;18327:7;18323:23;18319:32;18316:52;;;18364:1;18361;18354:12;18316:52;18387:28;18405:9;18387:28;:::i;18426:345::-;18623:6;18618:3;18611:19;18674:6;18666;18661:2;18656:3;18652:12;18639:42;18593:3;18704:16;;18722:2;18700:25;18734:13;;;18700:25;18426:345;-1:-1:-1;;18426:345:141:o;18776:285::-;18887:10;18861:24;18879:5;18861:24;:::i;:::-;18857:41;18852:3;18845:54;18955:4;18948:5;18944:16;18931:30;18924:4;18919:3;18915:14;18908:54;19035:18;18998:35;19027:4;19020:5;19016:16;18998:35;:::i;:::-;18994:60;18987:4;18982:3;18978:14;18971:84;;;18776:285::o;19066:325::-;19154:6;19149:3;19142:19;19206:6;19199:5;19192:4;19187:3;19183:14;19170:43;;19258:1;19251:4;19242:6;19237:3;19233:16;19229:27;19222:38;19124:3;19380:4;19310:66;19305:2;19297:6;19293:15;19289:88;19284:3;19280:98;19276:109;19269:116;;19066:325;;;;:::o;19396:775::-;19725:52;19767:9;19759:6;19725:52;:::i;:::-;19813:6;19808:2;19797:9;19793:18;19786:34;19857:3;19851;19840:9;19836:19;19829:32;19706:4;19884:62;19941:3;19930:9;19926:19;19918:6;19910;19884:62;:::i;:::-;-1:-1:-1;;;;;19987:6:141;19983:55;19977:3;19966:9;19962:19;19955:84;20088:9;20080:6;20076:22;20070:3;20059:9;20055:19;20048:51;20116:49;20158:6;20150;20142;20116:49;:::i;:::-;20108:57;19396:775;-1:-1:-1;;;;;;;;;;19396:775:141:o;20176:375::-;20388:3;20373:19;;20401:52;20377:9;20435:6;20401:52;:::i;:::-;-1:-1:-1;;;;;20493:6:141;20489:55;20484:2;20473:9;20469:18;20462:83;20176:375;;;;;:::o;20556:184::-;20608:77;20605:1;20598:88;20705:4;20702:1;20695:15;20729:4;20726:1;20719:15;20745:279;20834:6;20887:2;20875:9;20866:7;20862:23;20858:32;20855:52;;;20903:1;20900;20893:12;20855:52;20935:9;20929:16;20974:1;20967:5;20964:12;20954:40;;20990:1;20987;20980:12;21029:118;21115:5;21108:13;21101:21;21094:5;21091:32;21081:60;;21137:1;21134;21127:12;21152:245;21219:6;21272:2;21260:9;21251:7;21247:23;21243:32;21240:52;;;21288:1;21285;21278:12;21240:52;21320:9;21314:16;21339:28;21361:5;21339:28;:::i;21892:241::-;21948:6;22001:2;21989:9;21980:7;21976:23;21972:32;21969:52;;;22017:1;22014;22007:12;21969:52;22056:9;22043:23;22075:28;22097:5;22075:28;:::i;22554:184::-;22606:77;22603:1;22596:88;22703:4;22700:1;22693:15;22727:4;22724:1;22717:15;22743:757;22796:5;22849:3;22842:4;22834:6;22830:17;22826:27;22816:55;;22867:1;22864;22857:12;22816:55;22896:6;22890:13;22922:18;22959:2;22955;22952:10;22949:36;;;22965:18;;:::i;:::-;23099:2;23093:9;23161:4;23153:13;;23004:66;23149:22;;;23173:2;23145:31;23141:40;23129:53;;;23197:18;;;23217:22;;;23194:46;23191:72;;;23243:18;;:::i;:::-;23283:10;23279:2;23272:22;23318:2;23310:6;23303:18;23364:3;23357:4;23352:2;23344:6;23340:15;23336:26;23333:35;23330:55;;;23381:1;23378;23371:12;23330:55;23394:76;23467:2;23460:4;23452:6;23448:17;23441:4;23433:6;23429:17;23394:76;:::i;23505:335::-;23584:6;23637:2;23625:9;23616:7;23612:23;23608:32;23605:52;;;23653:1;23650;23643:12;23605:52;23686:9;23680:16;23719:18;23711:6;23708:30;23705:50;;;23751:1;23748;23741:12;23705:50;23774:60;23826:7;23817:6;23806:9;23802:22;23774:60;:::i;24653:918::-;25032:6;25021:9;25014:25;25087:6;25079;25075:19;25070:2;25059:9;25055:18;25048:47;25131:6;25126:2;25115:9;25111:18;25104:34;25174:6;25169:2;25158:9;25154:18;25147:34;25218:3;25212;25201:9;25197:19;25190:32;24995:4;25245:62;25302:3;25291:9;25287:19;25279:6;25271;25245:62;:::i;:::-;25356:9;25348:6;25344:22;25338:3;25327:9;25323:19;25316:51;25390:49;25432:6;25424;25416;25390:49;:::i;:::-;25376:63;;25488:9;25480:6;25476:22;25470:3;25459:9;25455:19;25448:51;25516:49;25558:6;25550;25542;25516:49;:::i;:::-;25508:57;24653:918;-1:-1:-1;;;;;;;;;;;;;24653:918:141:o;25994:184::-;26046:77;26043:1;26036:88;26143:4;26140:1;26133:15;26167:4;26164:1;26157:15;26183:125;26248:9;;;26269:10;;;26266:36;;;26282:18;;:::i;26811:1006::-;27205:4;27234:3;27246:52;27288:9;27280:6;27246:52;:::i;:::-;27334:6;27329:2;27318:9;27314:18;27307:34;27378:6;27372:3;27361:9;27357:19;27350:35;27422:6;27416:3;27405:9;27401:19;27394:35;27466:2;27460:3;27449:9;27445:19;27438:31;27492:61;27549:2;27538:9;27534:18;27526:6;27518;27492:61;:::i;:::-;27478:75;;27602:9;27594:6;27590:22;27584:3;27573:9;27569:19;27562:51;27636:49;27678:6;27670;27662;27636:49;:::i;:::-;27622:63;;27734:9;27726:6;27722:22;27716:3;27705:9;27701:19;27694:51;27762:49;27804:6;27796;27788;27762:49;:::i;27822:2076::-;28068:4;28097:2;28137;28126:9;28122:18;-1:-1:-1;;;;;28171:6:141;28167:55;28156:9;28149:74;28242:2;28280;28275;28264:9;28260:18;28253:30;28303:6;28333;28325;28318:22;28359:2;28349:12;;28392:2;28381:9;28377:18;28370:25;;28454:2;28444:6;28441:1;28437:14;28426:9;28422:30;28418:39;28480:6;28504:1;28514:1355;28528:6;28525:1;28522:13;28514:1355;;;28617:66;28605:9;28597:6;28593:22;28589:95;28584:3;28577:108;28737:6;28724:20;28824:66;28815:6;28799:14;28795:27;28791:100;28771:18;28767:125;28757:153;;28906:1;28903;28896:12;28757:153;28936:31;;28990:10;;29032:24;28936:31;29032:24;:::i;:::-;29028:33;29020:6;29013:49;29138:2;29103:33;29132:2;29125:5;29121:14;29103:33;:::i;:::-;29099:42;29094:2;29086:6;29082:15;29075:67;;29207:2;29200:5;29196:14;29183:28;29292:66;29284:5;29268:14;29264:26;29260:99;29238:20;29234:126;29224:154;;29374:1;29371;29364:12;29224:154;29406:32;29514:16;;;;29465:21;29557:18;29546:30;;29543:50;;;29589:1;29586;29579:12;29543:50;29642:6;29626:14;29622:27;29613:7;29609:41;29606:61;;;29663:1;29660;29653:12;29606:61;29704:2;29699;29691:6;29687:15;29680:27;29730:59;29785:2;29777:6;29773:15;29765:6;29756:7;29730:59;:::i;:::-;29847:12;;;;29720:69;-1:-1:-1;;;29812:15:141;;;;28550:1;28543:9;28514:1355;;;-1:-1:-1;29886:6:141;;27822:2076;-1:-1:-1;;;;;;;;;;27822:2076:141:o;29903:271::-;30086:6;30078;30073:3;30060:33;30042:3;30112:16;;30137:13;;;30112:16;29903:271;-1:-1:-1;29903:271:141:o;30179:621::-;30409:4;-1:-1:-1;;;;;30519:2:141;30511:6;30507:15;30496:9;30489:34;30571:2;30563:6;30559:15;30554:2;30543:9;30539:18;30532:43;;30611:6;30606:2;30595:9;30591:18;30584:34;30666:6;30658;30654:19;30649:2;30638:9;30634:18;30627:47;30711:3;30705;30694:9;30690:19;30683:32;30732:62;30789:3;30778:9;30774:19;30766:6;30758;30732:62;:::i;:::-;30724:70;30179:621;-1:-1:-1;;;;;;;;30179:621:141:o;30805:726::-;31065:4;-1:-1:-1;;;;;31175:2:141;31167:6;31163:15;31152:9;31145:34;31215:6;31210:2;31199:9;31195:18;31188:34;31258:3;31253:2;31242:9;31238:18;31231:31;31285:62;31342:3;31331:9;31327:19;31319:6;31311;31285:62;:::i;:::-;31395:2;31387:6;31383:15;31378:2;31367:9;31363:18;31356:43;31448:9;31440:6;31436:22;31430:3;31419:9;31415:19;31408:51;31476:49;31518:6;31510;31502;31476:49;:::i;:::-;31468:57;30805:726;-1:-1:-1;;;;;;;;;;;30805:726:141:o;32806:447::-;33046:3;33031:19;;33059:52;33035:9;33093:6;33059:52;:::i;:::-;-1:-1:-1;;;;;33147:55:141;;;;33142:2;33127:18;;33120:83;33234:3;33219:19;33212:35;32806:447;;-1:-1:-1;32806:447:141:o;33258:180::-;33325:18;33363:10;;;33375;;;33359:27;;33398:11;;;33395:37;;;33412:18;;:::i;34258:580::-;34335:4;34341:6;34401:11;34388:25;34491:66;34480:8;34464:14;34460:29;34456:102;34436:18;34432:127;34422:155;;34573:1;34570;34563:12;34422:155;34600:33;;34652:20;;;-1:-1:-1;34695:18:141;34684:30;;34681:50;;;34727:1;34724;34717:12;34681:50;34760:4;34748:17;;-1:-1:-1;34791:14:141;34787:27;;;34777:38;;34774:58;;;34828:1;34825;34818:12;34843:1108;35098:2;35087:9;35080:21;35156:18;35147:6;35141:13;35137:38;35132:2;35121:9;35117:18;35110:66;35243:10;35235:4;35227:6;35223:17;35217:24;35213:41;35207:3;35196:9;35192:19;35185:70;-1:-1:-1;;;;;35314:4:141;35306:6;35302:17;35296:24;35292:73;35286:3;35275:9;35271:19;35264:102;35061:4;35413:2;35405:6;35401:15;35395:22;35426:52;35473:3;35462:9;35458:19;35444:12;1794:10;1783:22;1771:35;;1718:94;35426:52;;35534:3;35526:6;35522:16;35516:23;35509:4;35498:9;35494:20;35487:53;35595:3;35587:6;35583:16;35577:23;35571:3;35560:9;35556:19;35549:52;35650:3;35642:6;35638:16;35632:23;35692:4;35686:3;35675:9;35671:19;35664:33;35717:53;35765:3;35754:9;35750:19;35734:14;35717:53;:::i;:::-;35706:64;;35817:9;35812:3;35808:19;35801:4;35790:9;35786:20;35779:49;35845:46;35887:3;35879:6;35871;35845:46;:::i;:::-;35837:54;;;35900:45;35939:4;35928:9;35924:20;35916:6;7452:13;7445:21;7433:34;;7382:91;35956:478;36026:5;36074:4;36062:9;36057:3;36053:19;36049:30;36046:50;;;36092:1;36089;36082:12;36046:50;36125:4;36119:11;36169:4;36161:6;36157:17;36240:6;36228:10;36225:22;36204:18;36192:10;36189:34;36186:62;36183:88;;;36251:18;;:::i;:::-;36287:4;36280:24;36352:16;;36337:32;;36423:2;36408:18;;;36402:25;36385:15;;;36378:50;;;;-1:-1:-1;36322:6:141;35956:478;-1:-1:-1;35956:478:141:o;36439:259::-;36539:6;36592:2;36580:9;36571:7;36567:23;36563:32;36560:52;;;36608:1;36605;36598:12;36560:52;36631:61;36684:7;36673:9;36631:61;:::i;36956:471::-;37074:6;37082;37135:2;37123:9;37114:7;37110:23;37106:32;37103:52;;;37151:1;37148;37141:12;37103:52;37174:61;37227:7;37216:9;37174:61;:::i;:::-;37164:71;;37279:2;37268:9;37264:18;37258:25;37306:18;37298:6;37295:30;37292:50;;;37338:1;37335;37328:12;37292:50;37361:60;37413:7;37404:6;37393:9;37389:22;37361:60;:::i;:::-;37351:70;;;36956:471;;;;;:::o;37432:524::-;37663:2;37652:9;37645:21;37626:4;37689:44;37729:2;37718:9;37714:18;37706:6;37689:44;:::i;:::-;37781:9;37773:6;37769:22;37764:2;37753:9;37749:18;37742:50;37809:49;37851:6;37843;37835;37809:49;:::i;:::-;37801:57;;;-1:-1:-1;;;;;37898:6:141;37894:55;37889:2;37878:9;37874:18;37867:83;37432:524;;;;;;;:::o;37961:184::-;38031:6;38084:2;38072:9;38063:7;38059:23;38055:32;38052:52;;;38100:1;38097;38090:12;38052:52;-1:-1:-1;38123:16:141;;37961:184;-1:-1:-1;37961:184:141:o;38546:254::-;38730:2;38715:18;;38742:52;38719:9;38776:6;38742:52;:::i","linkReferences":{},"immutableReferences":{"6939":[{"start":1926,"length":32}],"7920":[{"start":1347,"length":32},{"start":11639,"length":32},{"start":14210,"length":32},{"start":14312,"length":32},{"start":16215,"length":32},{"start":16317,"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\":20000},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":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/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":20000},"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":80}