{"abi":[{"type":"constructor","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_owner","type":"address","internalType":"address"},{"name":"_altToken","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":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"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_InvalidArgument","inputs":[]},{"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_OnlyAltToken","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":"0x60e06040526001600d5534801562000015575f80fd5b5060405162005579380380620055798339810160408190526200003891620002ef565b828281816001600160a01b0381166200006b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6200007681620000d9565b5063ffffffff166080526040516200008e90620002c5565b604051809103905ff080158015620000a8573d5f803e3d5ffd5b506001600160a01b031660a0819052620000c29062000128565b50506001600160a01b031660c05250620003679050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200013262000295565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156200017c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a291906200033f565b620001c05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff1615620001fa5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381165f818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b5f546001600160a01b03163314620002c35760405163118cdaa760e01b815233600482015260240162000062565b565b6101d580620053a483390190565b80516001600160a01b0381168114620002ea575f80fd5b919050565b5f805f6060848603121562000302575f80fd5b835163ffffffff8116811462000316575f80fd5b92506200032660208501620002d3565b91506200033660408501620002d3565b90509250925092565b5f6020828403121562000350575f80fd5b8151801515811462000360575f80fd5b9392505050565b60805160a05160c051614fda620003ca5f395f8181610b1f015281816129c3015281816136c6015261387301525f61075601525f8181610515015281816126fa01528181612ee201528181612f48015281816134a5015261350b0152614fda5ff3fe608060405260043610610341575f3560e01c80639132e5c3116101bd578063c9fc7bcd116100f2578063ddc28c5811610092578063e8964e811161006d578063e8964e8114610b62578063ef667aa114610b81578063f2fde38b14610bca578063f64be4c714610be9575f80fd5b8063ddc28c5814610ae5578063e1758bd814610b11578063e4fe1d9414610b43575f80fd5b8063d4b4ec8f116100cd578063d4b4ec8f14610a2f578063d70b890214610a4e578063dc706a6214610a6d578063dc93c8a214610a9b575f80fd5b8063c9fc7bcd146109b8578063ca5eb5e1146109fd578063cb5026b914610a1c575f80fd5b8063a7229fd91161015d578063aafea31211610138578063aafea3121461093c578063b96a277f1461095b578063c28e0eed1461097a578063c9a54a9914610999575f80fd5b8063a7229fd9146108df578063a825d747146108fe578063aafe5e071461091d575f80fd5b80639c6d7340116101985780639c6d73401461083d5780639d7f977514610882578063a0dd43fc146108a1578063a718531b146108c0575f80fd5b80639132e5c3146107ea57806391d20fa11461080b5780639535ff301461081e575f80fd5b80635b17bb70116102935780636f50a8031161023357806379624ca91161020e57806379624ca9146107785780637cb5901214610790578063861e1ca5146107af5780638da5cb5b146107ce575f80fd5b80636f50a803146106fd578063715018a6146107315780637331809114610745575f80fd5b80636a14d7151161026e5780636a14d715146106435780636bf73fa3146106625780636dbd9f90146106815780636e83f5bb146106a0575f80fd5b80635b17bb70146105985780636750cd4c146105f5578063697fe6b614610624575f80fd5b80632baf0be7116102fe578063402f8468116102d9578063402f8468146104a757806340f80683146104e5578063416ecebf14610504578063587cde1e1461054c575f80fd5b80632baf0be7146104215780632e80fbf31461044357806335d330b014610462575f80fd5b80630c0c389e1461034557806314f651a91461035a578063183c834f146103975780632637a450146103b65780632a56c1b0146103d65780632b3197b9146103f5575b5f80fd5b610358610353366004613f22565b610c1d565b005b348015610365575f80fd5b5061036e610d17565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103a2575f80fd5b506103586103b1366004613fc9565b610d47565b6103c96103c4366004614011565b610fe4565b60405161038e919061405f565b3480156103e1575f80fd5b506103586103f03660046140a0565b611108565b348015610400575f80fd5b5061041461040f36600461410a565b6111a7565b60405161038e91906141a8565b34801561042c575f80fd5b506104355f1981565b60405190815260200161038e565b34801561044e575f80fd5b5061035861045d3660046141d0565b61126d565b34801561046d575f80fd5b5061043561047c366004614232565b600c60209081525f948552604080862082529385528385208152918452828420909152825290205481565b3480156104b2575f80fd5b506104c66104c1366004614271565b6113d8565b604080516001600160a01b03909316835290151560208301520161038e565b3480156104f0575f80fd5b506103586104ff3660046141d0565b611454565b34801561050f575f80fd5b506105377f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161038e565b348015610557575f80fd5b50610580610566366004614299565b600f6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161038e565b3480156105a3575f80fd5b506105dd6105b23660046142b2565b600160209081525f93845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161038e565b348015610600575f80fd5b5061061461060f3660046142eb565b6115b7565b604051901515815260200161038e565b34801561062f575f80fd5b5061035861063e366004614304565b611605565b34801561064e575f80fd5b5061035861065d366004613fc9565b61167a565b34801561066d575f80fd5b5061035861067c3660046143f5565b611a4d565b34801561068c575f80fd5b5061035861069b3660046144ce565b611ab7565b3480156106ab575f80fd5b506106de6106ba3660046142eb565b600b6020525f9081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161038e565b348015610708575f80fd5b506105806107173660046142eb565b600a6020525f90815260409020546001600160a01b031681565b34801561073c575f80fd5b50610358611b53565b348015610750575f80fd5b506105807f000000000000000000000000000000000000000000000000000000000000000081565b348015610783575f80fd5b50600d5460011415610614565b34801561079b575f80fd5b506103586107aa366004614557565b611b66565b3480156107ba575f80fd5b506106146107c93660046145a3565b611c50565b3480156107d9575f80fd5b505f546001600160a01b0316610580565b3480156107f5575f80fd5b506107fe611cba565b60405161038e91906145cc565b610358610819366004614618565b611d1a565b348015610829575f80fd5b506103586108383660046146bb565b611ea4565b348015610848575f80fd5b506105dd6108573660046142b2565b600360209081525f93845260408085208252928452828420905282529020546001600160401b031681565b34801561088d575f80fd5b5061061461089c3660046146bb565b612101565b3480156108ac575f80fd5b506105dd6108bb3660046142b2565b6121d5565b3480156108cb575f80fd5b506103586108da3660046146fb565b612234565b3480156108ea575f80fd5b506103586108f9366004614724565b61254a565b348015610909575f80fd5b5061035861091836600461473f565b612562565b348015610928575f80fd5b506104356109373660046142b2565b6126ab565b348015610947575f80fd5b50610358610956366004614779565b61272a565b348015610966575f80fd5b50610580610975366004614271565b61294c565b348015610985575f80fd5b50610358610994366004614299565b6129b9565b3480156109a4575f80fd5b506106146109b33660046145a3565b612a1f565b3480156109c3575f80fd5b506104356109d2366004614793565b600260209081525f948552604080862082529385528385208152918452828420909152825290205481565b348015610a08575f80fd5b50610358610a17366004614299565b612a82565b348015610a27575f80fd5b506104355f81565b348015610a3a575f80fd5b50610358610a493660046146fb565b612ae8565b348015610a59575f80fd5b50610358610a68366004614793565b612d1d565b348015610a78575f80fd5b50610614610a87366004614299565b60056020525f908152604090205460ff1681565b348015610aa6575f80fd5b50610614610ab5366004614271565b6001600160a01b039182165f90815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610af0575f80fd5b50610b04610aff366004614011565b612e0b565b60405161038e91906147d2565b348015610b1c575f80fd5b507f0000000000000000000000000000000000000000000000000000000000000000610580565b348015610b4e575f80fd5b50600e54610580906001600160a01b031681565b348015610b6d575f80fd5b50610358610b7c366004614299565b61306e565b348015610b8c575f80fd5b506106de610b9b366004614271565b600860209081525f9283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610bd5575f80fd5b50610358610be4366004614299565b6131ce565b348015610bf4575f80fd5b50610580610c033660046142eb565b60096020525f90815260409020546001600160a01b031681565b610c6c86610c2e60208a018a6142eb565b60208a0135610c4360608c0160408d016147e9565b898989604051602001610c5893929190614802565b604051602081830303815290604052613208565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610ca7908b908a908a908a9033908b908b9060040161487c565b5f604051808303818588803b158015610cbe575f80fd5b505af1158015610cd0573d5f803e3d5ffd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d069291906148d2565b60405180910390a150505050505050565b5f80610d26600d546001141590565b610d31575f80610d3f565b610d3f600d5460a081901c91565b915091509091565b6001600160a01b0382165f90815260056020526040902054829060ff16610d8157604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e21575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df2919061490c565b6002811115610e0357610e036148f8565b03610e21576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610ebb576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190614937565b610ebb57604051630e476aa960e21b815260040160405180910390fd5b610ec4886133bf565b5f610ecf89896113d8565b9150508015610ef157604051633c075f7560e01b815260040160405180910390fd5b855f03610f37576001600160a01b0389165f90815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610f9c565b438611610f57576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b038981165f90815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051610fd19493929190614952565b60405180910390a1505050505050505050565b610fec613e76565b610ff960208401846142eb565b336001600d541461101d5760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561104b90860160808701614982565b80156110605750600e546001600160a01b0316155b1561107e57604051632d7b695560e11b815260040160405180910390fd5b5f8061108a338861340f565b915091505f6110976136af565b90505f6110b26110ad60a08b0160808c01614982565b61373c565b90506110c3846040015183836137d4565b600e546040850151602001516110e5916001600160a01b03169083868c613822565b6040840151516110f79083858b61384f565b50506001600d555095945050505050565b611111856133bf565b5f83838360405160200161112793929190614802565b60408051601f1981840301815291905290506111658661114a60208801886142eb565b602088013561115f60608a0160408b016147e9565b85613208565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111979291906148d2565b60405180910390a1505050505050565b6001600160a01b0383165f90815260056020526040902054606090849060ff166111e457604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf7906064015f60405180830381865afa15801561123c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112639190810190614a2b565b9695505050505050565b611276856133bf565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146112e757604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b0390811690841611801590611332575080155b1561135b57604051630c09b63560e41b81526001600160401b03841660048201526024016112de565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190205f199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb552929061119790879087908a9088908890614a5c565b6001600160a01b038083165f90815260076020908152604080832063ffffffff86168452909152812054909116908161144d5763ffffffff83165f908152600a60205260409020546001600160a01b031691508161144957604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b61145d856133bf565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146114c957604051637182306f60e01b815260048101829052602481018390526044016112de565b80158061151257506001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561153b57604051630c09b63560e41b81526001600160401b03841660048201526024016112de565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e9061119790879087908a9088908890614a5c565b63ffffffff81165f908152600960205260408120546001600160a01b0316158015906115ff575063ffffffff82165f908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116649a99989796959493929190614a99565b60405180910390a4505050505050505050505050565b6001600160a01b0382165f90815260056020526040902054829060ff161580156116ac57506001600160a01b03811615155b156116ca5760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b0381161561176a575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611717573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173b919061490c565b600281111561174c5761174c6148f8565b0361176a576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611804576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156117c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e79190614937565b61180457604051630e476aa960e21b815260040160405180910390fd5b61180d886133bf565b6001600160a01b038089165f90815260076020908152604080832063ffffffff8c1684529091529020548116908716810361185b5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038981165f81815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a185156119d2576001600160a01b03811615806118fd57506001600160a01b038716155b1561191b57604051633c075f7560e01b815260040160405180910390fd5b5f6040518060400160405280836001600160a01b0316815260200188436119429190614b15565b90526001600160a01b038b81165f90815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928916119c4918d918d918791614952565b60405180910390a150611a42565b6001600160a01b0389165f90815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891610fd1918c918c91869190614952565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611aa29a99989796959493929190614b28565b60405180910390a35050505050505050505050565b6001600160a01b0383165f90815260056020526040902054839060ff16611af157604051631bc58ef360e11b815260040160405180910390fd5b611afa856133bf565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b2a90889087908790600401614b86565b5f604051808303815f87803b158015611b41575f80fd5b505af1158015611a42573d5f803e3d5ffd5b611b5b6138a1565b611b645f6138cd565b565b335f908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611bbb57604051630542086560e21b815260040160405180910390fd5b8181604051611bcb929190614c74565b60408051918290038220335f818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611c41919088908890889088908890614c83565b60405180910390a15050505050565b6001600160a01b0381165f9081526001602090815260408220611cb391859185918590611c7f908501856142eb565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b031661391c565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d1057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611cf2575b5050505050905090565b6001600160a01b038089165f908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611d649087908790614c74565b60405180910390209050808214611d98576040516335ca595f60e01b815260048101839052602481018290526044016112de565b6001600160a01b03808b165f908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e06908e908d908c908c9033908d908d90600401614ccc565b5f604051808303818588803b158015611e1d575f80fd5b505af1158015611e2f573d5f803e3d5ffd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611e9094939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b0381165f90815260056020526040902054819060ff16158015611ed657506001600160a01b03811615155b15611ef45760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b03811615611f95576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f66919061490c565b6002811115611f7757611f776148f8565b03611f9557604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561202f576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015611fee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120129190614937565b61202f57604051630e476aa960e21b815260040160405180910390fd5b612038876133bf565b6001600160a01b038781165f90815260066020908152604080832063ffffffff8b1684529091529020548187169116036120855760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038781165f81815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d06565b5f805f61210e86866113d8565b91509150816001600160a01b0316846001600160a01b03160361213657600192505050611cb3565b5f81612169576001600160a01b0387165f90815260086020908152604080832063ffffffff8a168452909152902061217e565b63ffffffff86165f908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156121b85750438160200151115b156121c95760019350505050611cb3565b505f9695505050505050565b6001600160a01b0383165f90815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b61221f8585858460010161399d565b1561222c57600101612210565b949350505050565b61223c6138a1565b6001600160a01b0382165f90815260056020526040902054829060ff1661227657604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612316575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122e7919061490c565b60028111156122f8576122f86148f8565b03612316576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b038216156123b0576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561236f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123939190614937565b6123b057604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87165f908152600a60205260409020546001600160a01b0390811690871681036123f25760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88165f818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156124de5763ffffffff88165f908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556124978743614b15565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916124d0918c918691614d1e565b60405180910390a150612540565b63ffffffff88165f908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f891612537918b918591614d1e565b60405180910390a15b5050505050505050565b6125526138a1565b61255d8383836139e9565b505050565b6125798261257360208601866142eb565b33612101565b612596576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382165f90815260016020908152604082209082906125be908701876142eb565b63ffffffff16815260208082019290925260409081015f9081208784013582529092529020546001600160401b031690506125fa84848361391c565b6126175760405163751cb20f60e01b815260040160405180910390fd5b612622848483613a0c565b61263e5760405162bbf0e560e11b815260040160405180910390fd5b61266a8361264f60208701876142eb565b60208701356126646060890160408a016147e9565b86613ac2565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161269d93929190614d45565b60405180910390a150505050565b6001600160a01b0383165f90815260036020908152604080832063ffffffff86168452825280832084845290915281205481906126f2906001600160401b03166001614d6d565b9050612721817f0000000000000000000000000000000000000000000000000000000000000000878787613b27565b95945050505050565b6127326138a1565b6001600160a01b0381165f90815260056020526040902054819060ff1661276c57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561280d576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127de919061490c565b60028111156127ef576127ef6148f8565b0361280d57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156128a7576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612866573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061288a9190614937565b6128a757604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86165f908152600960205260409020546001600160a01b038087169116036128e75760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff86165f8181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f59101611197565b6001600160a01b038083165f90815260066020908152604080832063ffffffff8616845290915290205416806115ff575063ffffffff81165f908152600960205260409020546001600160a01b0316806115ff57604051636c1ccdb560e01b815260040160405180910390fd5b6129c16138a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603612a13576040516310647d0b60e01b815260040160405180910390fd5b612a1c81613b9f565b50565b6001600160a01b0381165f9081526001602090815260408220611cb391859185918590612a4e908501856142eb565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b0316613a0c565b335f818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d798398191015b60405180910390a150565b6001600160a01b0382165f90815260056020526040902054829060ff16612b2257604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612bc2575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b93919061490c565b6002811115612ba457612ba46148f8565b03612bc2576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612c5c576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c3f9190614937565b612c5c57604051630e476aa960e21b815260040160405180910390fd5b612c646138a1565b845f03612c965763ffffffff87165f908152600b6020526040812080546001600160a01b031916815560010155612cea565b438511612cb6576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87165f908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d0693929190614d1e565b612d26846133bf565b612d318484846121d5565b612d3c906001614d6d565b6001600160401b0316816001600160401b031614612d7857604051630c09b63560e41b81526001600160401b03821660048201526024016112de565b6001600160a01b0384165f81815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161269d565b604080518082019091525f8082526020820152612e2e60a0840160808501614982565b8015612e435750600e546001600160a01b0316155b15612e6157604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b0382165f9081526003602090815260408220908290612e89908701876142eb565b63ffffffff16815260208082019290925260409081015f908120878401358252909252902054612ec3906001600160401b03166001614d6d565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001865f016020810190612f2d91906142eb565b63ffffffff16815260200186602001358152602001612f84847f0000000000000000000000000000000000000000000000000000000000000000888a5f016020810190612f7a91906142eb565b8b60200135613b27565b8152602001612f966040880188614d8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093909452509293509150612fe290508561097560208901896142eb565b90506001600160a01b03811663d80e9bd98361300160608a018a614d8d565b61301160a08c0160808d01614982565b6040518563ffffffff1660e01b81526004016130309493929190614dcf565b6040805180830381865afa15801561304a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112639190614ec0565b6130766138a1565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156130bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e39190614937565b6131005760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff16156131395760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381165f818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612add565b6131d66138a1565b6001600160a01b0381166131ff57604051631e4fbdf760e01b81525f60048201526024016112de565b612a1c816138cd565b6001600160a01b0385165f90815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b039081169084168110156132f457600181015b846001600160401b0316816001600160401b0316116132a8576132788888888461399d565b6132a057604051630c09b63560e41b81526001600160401b03821660048201526024016112de565b600101613253565b506001600160a01b0387165f90815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b0389165f90815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461336d57604051637182306f60e01b815260048101829052602481018490526044016112de565b50506001600160a01b039095165f90815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b038216148015906133f157506001600160a01b038181165f908152600f6020526040902054163314155b15612a1c5760405163c4c5259360e01b815260040160405180910390fd5b613417613e76565b5f806134868561342a60208701876142eb565b6001600160a01b03919091165f90815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b03168152602001865f0160208101906134f091906142eb565b63ffffffff1681526020018660200135815260200161353d847f00000000000000000000000000000000000000000000000000000000000000008a8a5f016020810190612f7a91906142eb565b815260200161354f6040880188614d8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250929350915061359b90508761097560208901896142eb565b90505f806001600160a01b038316634389e58f856135bc60608c018c614d8d565b6135cc60a08e0160808f01614982565b6040518563ffffffff1660e01b81526004016135eb9493929190614dcf565b5f604051808303815f875af1158015613606573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261362d9190810190614eda565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161366160608b018b614d8d565b866040516136729493929190614f25565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015613713573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137379190614f64565b905090565b5f81156137cf57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137ad9190614f64565b9050805f036137cf57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806137e65750808360200151115b1561255d5782516020840151604051634f3ec0d360e01b81526004810192909252602482018490526044820152606481018290526084016112de565b831561383357613833858386613bf5565b82841015613848576138488582868603613bf5565b5050505050565b341561386e57604051634d18bd2960e11b815260040160405180910390fd5b61389b7f000000000000000000000000000000000000000000000000000000000000000085858585613822565b50505050565b5f546001600160a01b03163314611b645760405163118cdaa760e01b81523360048201526024016112de565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80826001600160401b0316118061222c5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d9061395e908790600401614f7b565b602060405180830381865afa158015613979573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061222c9190614937565b6001600160a01b0384165f90815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a015761255d8282613c30565b61255d838383613bf5565b5f6001600160401b038216613a2760608601604087016147e9565b6001600160401b0316118061222c57506001600160a01b0383165f9081526002602090815260408220908290613a5f908801886142eb565b63ffffffff1663ffffffff1681526020019081526020015f205f866020013581526020019081526020015f205f866040016020810190613a9f91906147e9565b6001600160401b0316815260208101919091526040015f20541415949350505050565b80613ae0576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b039094165f90815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b5f85856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b613ba76138a1565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a6239690602001612add565b6001600160a01b038216613c1c576040516306b7a93160e41b815260040160405180910390fd5b61255d6001600160a01b0384168383613cd9565b6001600160a01b038216613c57576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613ca0576040519150601f19603f3d011682016040523d82523d5f602084013e613ca5565b606091505b505090508061255d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016112de565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261255d918591905f90613d3690841683613d83565b905080515f14158015613d5a575080806020019051810190613d589190614937565b155b1561255d57604051635274afe760e01b81526001600160a01b03841660048201526024016112de565b6060611cb383835f845f80856001600160a01b03168486604051613da79190614f89565b5f6040518083038185875af1925050503d805f8114613de1576040519150601f19603f3d011682016040523d82523d5f602084013e613de6565b606091505b5091509150611263868383606082613e0657613e0182613e4d565b611cb3565b8151158015613e1d57506001600160a01b0384163b155b15613e4657604051639996b31560e01b81526001600160a01b03851660048201526024016112de565b5080611cb3565b805115613e5d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b03168152602001613eb460405180604001604052805f81526020015f81525090565b905290565b5f60608284031215613ec9575f80fd5b50919050565b80356001600160a01b03811681146137cf575f80fd5b5f8083601f840112613ef5575f80fd5b5081356001600160401b03811115613f0b575f80fd5b60208301915083602082850101111561144d575f80fd5b5f805f805f805f60e0888a031215613f38575f80fd5b613f428989613eb9565b9650613f5060608901613ecf565b95506080880135945060a08801356001600160401b0380821115613f72575f80fd5b613f7e8b838c01613ee5565b909650945060c08a0135915080821115613f96575f80fd5b50613fa38a828b01613ee5565b989b979a50959850939692959293505050565b803563ffffffff811681146137cf575f80fd5b5f805f8060808587031215613fdc575f80fd5b613fe585613ecf565b9350613ff360208601613fb6565b925061400160408601613ecf565b9396929550929360600135925050565b5f8060408385031215614022575f80fd5b82356001600160401b03811115614037575f80fd5b830160a08186031215614048575f80fd5b915061405660208401613ecf565b90509250929050565b5f608082019050825182526001600160401b0360208401511660208301526040830151614099604084018280518252602090810151910152565b5092915050565b5f805f805f60c086880312156140b4575f80fd5b6140bd86613ecf565b94506140cc8760208801613eb9565b93506080860135925060a08601356001600160401b038111156140ed575f80fd5b6140f988828901613ee5565b969995985093965092949392505050565b5f805f806080858703121561411d575f80fd5b61412685613ecf565b935061413460208601613ecf565b925061414260408601613fb6565b915061415060608601613fb6565b905092959194509250565b5f5b8381101561417557818101518382015260200161415d565b50505f910152565b5f815180845261419481602086016020860161415b565b601f01601f19169290920160200192915050565b602081525f611cb3602083018461417d565b80356001600160401b03811681146137cf575f80fd5b5f805f805f60a086880312156141e4575f80fd5b6141ed86613ecf565b94506141fb60208701613fb6565b935060408601359250614210606087016141ba565b949793965091946080013592915050565b803561ffff811681146137cf575f80fd5b5f805f8060808587031215614245575f80fd5b61424e85613ecf565b935061425c60208601613ecf565b92506040850135915061415060608601614221565b5f8060408385031215614282575f80fd5b61428b83613ecf565b915061405660208401613fb6565b5f602082840312156142a9575f80fd5b611cb382613ecf565b5f805f606084860312156142c4575f80fd5b6142cd84613ecf565b92506142db60208501613fb6565b9150604084013590509250925092565b5f602082840312156142fb575f80fd5b611cb382613fb6565b5f805f805f805f805f805f806101208d8f031215614320575f80fd5b6143298d613ecf565b9b5061433760208e01613ecf565b9a5060408d0135995061434c60608e01614221565b985060808d0135975060a08d013596506001600160401b0360c08e01351115614373575f80fd5b6143838e60c08f01358f01613ee5565b90965094506001600160401b0360e08e0135111561439f575f80fd5b6143af8e60e08f01358f01613ee5565b90945092506001600160401b036101008e013511156143cc575f80fd5b6143dd8e6101008f01358f01613ee5565b81935080925050509295989b509295989b509295989b565b5f805f805f805f805f805f6101408c8e031215614410575f80fd5b61441a8d8d613eb9565b9a5061442860608d01613ecf565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e01351115614457575f80fd5b6144678e60e08f01358f01613ee5565b90975095506101008d013581101561447d575f80fd5b61448e8e6101008f01358f01613ee5565b90955093506101208d01358110156144a4575f80fd5b506144b68d6101208e01358e01613ee5565b81935080925050509295989b509295989b9093969950565b5f805f80606085870312156144e1575f80fd5b6144ea85613ecf565b93506144f860208601613ecf565b925060408501356001600160401b0380821115614513575f80fd5b818701915087601f830112614526575f80fd5b813581811115614534575f80fd5b8860208260051b8501011115614548575f80fd5b95989497505060200194505050565b5f805f805f6080868803121561456b575f80fd5b61457486613ecf565b94506020860135935061458960408701614221565b925060608601356001600160401b038111156140ed575f80fd5b5f80608083850312156145b4575f80fd5b6145be8484613eb9565b915061405660608401613ecf565b602080825282518282018190525f9190848201906040850190845b8181101561460c5783516001600160a01b0316835292840192918401916001016145e7565b50909695505050505050565b5f805f805f805f8060c0898b03121561462f575f80fd5b61463889613ecf565b975061464660208a01613ecf565b96506040890135955061465b60608a01614221565b945060808901356001600160401b0380821115614676575f80fd5b6146828c838d01613ee5565b909650945060a08b013591508082111561469a575f80fd5b506146a78b828c01613ee5565b999c989b5096995094979396929594505050565b5f805f606084860312156146cd575f80fd5b6146d684613ecf565b92506146e460208501613fb6565b91506146f260408501613ecf565b90509250925092565b5f805f6060848603121561470d575f80fd5b61471684613fb6565b92506142db60208501613ecf565b5f805f60608486031215614736575f80fd5b61471684613ecf565b5f805f60a08486031215614751575f80fd5b61475b8585613eb9565b925061476960608501613ecf565b9150608084013590509250925092565b5f806040838503121561478a575f80fd5b61404883613fb6565b5f805f80608085870312156147a6575f80fd5b6147af85613ecf565b93506147bd60208601613fb6565b925060408501359150614150606086016141ba565b8151815260208083015190820152604081016115ff565b5f602082840312156147f9575f80fd5b611cb3826141ba565b838152818360208301375f910160200190815292915050565b63ffffffff61482982613fb6565b168252602081013560208301526001600160401b0361484a604083016141ba565b1660408301525050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b614886818961481b565b86606082015260e060808201525f6148a260e083018789614854565b6001600160a01b03861660a084015282810360c08401526148c4818587614854565b9a9950505050505050505050565b608081016148e0828561481b565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b5f52602160045260245ffd5b5f6020828403121561491c575f80fd5b815160038110611cb3575f80fd5b8015158114612a1c575f80fd5b5f60208284031215614947575f80fd5b8151611cb38161492a565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b5f60208284031215614992575f80fd5b8135611cb38161492a565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126149c0575f80fd5b81516001600160401b03808211156149da576149da61499d565b604051601f8301601f19908116603f01168101908282118183101715614a0257614a0261499d565b81604052838152866020858801011115614a1a575f80fd5b61126384602083016020890161415b565b5f60208284031215614a3b575f80fd5b81516001600160401b03811115614a50575f80fd5b61222c848285016149b1565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201525f614ac860e08301888a614854565b82810360a0840152614adb818789614854565b905082810360c0840152614af0818587614854565b9d9c50505050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156115ff576115ff614b01565b5f610120614b36838e61481b565b8b60608401528a60808401528960a08401528060c0840152614b5b818401898b614854565b905082810360e0840152614b70818789614854565b9050828103610100840152614af0818587614854565b6001600160a01b0384168152604060208083018290528282018490525f9190606090818501600587901b8601830188865b89811015614c6457888303605f190184528135368c9003605e19018112614bdc575f80fd5b8b0163ffffffff80614bed83613fb6565b16855280614bfc888401613fb6565b16878601525087810135601e19823603018112614c17575f80fd5b0185810190356001600160401b03811115614c30575f80fd5b803603821315614c3e575f80fd5b8789860152614c508886018284614854565b958701959450505090840190600101614bb7565b50909a9950505050505050505050565b818382375f9101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a0608082018190525f90614cc09083018486614854565b98975050505050505050565b5f60018060a01b03808a16835288602084015260a06040840152614cf460a08401888a614854565b81871660608501528381036080850152614d0f818688614854565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614d53828661481b565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561409957614099614b01565b5f808335601e19843603018112614da2575f80fd5b8301803591506001600160401b03821115614dbb575f80fd5b60200191503681900382131561144d575f80fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a08301528501515f90614e1d60c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614e4e61014084018261417d565b90508281036020840152614e63818688614854565b915050612721604083018415159052565b5f60408284031215614e84575f80fd5b604051604081018181106001600160401b0382111715614ea657614ea661499d565b604052825181526020928301519281019290925250919050565b5f60408284031215614ed0575f80fd5b611cb38383614e74565b5f8060608385031215614eeb575f80fd5b614ef58484614e74565b915060408301516001600160401b03811115614f0f575f80fd5b614f1b858286016149b1565b9150509250929050565b606081525f614f37606083018761417d565b8281036020840152614f4a818688614854565b91505060018060a01b038316604083015295945050505050565b5f60208284031215614f74575f80fd5b5051919050565b606081016115ff828461481b565b5f8251614f9a81846020870161415b565b919091019291505056fea26469706673582212205781dc5e0eeff4fb526f857a50ee0d33a411c477c5e9afa26217201d33740c1064736f6c63430008160033608060405234801561000f575f80fd5b506101b88061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a7146100635780631881d94d1461008b57806354fd4d501461009a5780636750cd4c146100c1575b604051632657b6c360e01b815260040160405180910390fd5b61007661007136600461010b565b6100d5565b60405190151581526020015b60405180910390f35b60026040516100829190610139565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610082565b6100766100cf36600461015f565b50600190565b5f6001600160e01b031982166325fc096160e21b148061010557506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6020828403121561011b575f80fd5b81356001600160e01b031981168114610132575f80fd5b9392505050565b602081016003831061015957634e487b7160e01b5f52602160045260245ffd5b91905290565b5f6020828403121561016f575f80fd5b813563ffffffff81168114610132575f80fdfea26469706673582212201546ea32b0e3e637066d3d70198a9648dcfed760f5036a6b74e7f7cf561d855364736f6c63430008160033","sourceMap":"279:1560:75:-:0;;;527:1:51;534:42;;562:129:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;637:4;643:6;637:4;643:6;-1:-1:-1;;;;;1273:26:108;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:108;;1350:1;1322:31;;;797:51:133;770:18;;1322:31:108;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1064:10:49;;;;1634:23:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1609:49:48;;;;;1668:31;;:15;:31::i;:::-;-1:-1:-1;;;;;;;661:23:75::1;;::::0;-1:-1:-1;279:1560:75;;-1:-1:-1;279:1560:75;2912:187:108;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:108;;;-1:-1:-1;;;;;;3020:17:108;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;6264:511:48:-;1531:13:108;:11;:13::i;:::-;6376:62:48::1;::::0;-1:-1:-1;;;6376:62:48;;-1:-1:-1;;;6376:62:48::1;::::0;::::1;1003:52:133::0;-1:-1:-1;;;;;6376:31:48;::::1;::::0;::::1;::::0;976:18:133;;6376:62:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;-1:-1:-1::0;;;6447:32:48::1;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:48;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;-1:-1:-1::0;;;6568:29:48::1;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:48;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;-1:-1:-1;;6657:32:48::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6699:30:48::1;::::0;::::1;::::0;;6745:23;;797:51:133;;;6745:23:48::1;::::0;770:18:133;6745:23:48::1;;;;;;;6264:511:::0;:::o;1796:162:108:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:108;735:10:116;1855:23:108;1851:101;;1901:40;;-1:-1:-1;;;1901:40:108;;735:10:116;1901:40:108;;;797:51:133;770:18;;1901:40:108;651:203:133;1851:101:108;1796:162::o;279:1560:75:-;;;;;;;;:::o;14:177:133:-;93:13;;-1:-1:-1;;;;;135:31:133;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:450::-;283:6;291;299;352:2;340:9;331:7;327:23;323:32;320:52;;;368:1;365;358:12;320:52;400:9;394:16;450:10;443:5;439:22;432:5;429:33;419:61;;476:1;473;466:12;419:61;499:5;-1:-1:-1;523:49:133;568:2;553:18;;523:49;:::i;:::-;513:59;;591:49;636:2;625:9;621:18;591:49;:::i;:::-;581:59;;196:450;;;;;:::o;1066:277::-;1133:6;1186:2;1174:9;1165:7;1161:23;1157:32;1154:52;;;1202:1;1199;1192:12;1154:52;1234:9;1228:16;1287:5;1280:13;1273:21;1266:5;1263:32;1253:60;;1309:1;1306;1299:12;1253:60;1332:5;1066:277;-1:-1:-1;;;1066:277:133:o;:::-;279:1560:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610341575f3560e01c80639132e5c3116101bd578063c9fc7bcd116100f2578063ddc28c5811610092578063e8964e811161006d578063e8964e8114610b62578063ef667aa114610b81578063f2fde38b14610bca578063f64be4c714610be9575f80fd5b8063ddc28c5814610ae5578063e1758bd814610b11578063e4fe1d9414610b43575f80fd5b8063d4b4ec8f116100cd578063d4b4ec8f14610a2f578063d70b890214610a4e578063dc706a6214610a6d578063dc93c8a214610a9b575f80fd5b8063c9fc7bcd146109b8578063ca5eb5e1146109fd578063cb5026b914610a1c575f80fd5b8063a7229fd91161015d578063aafea31211610138578063aafea3121461093c578063b96a277f1461095b578063c28e0eed1461097a578063c9a54a9914610999575f80fd5b8063a7229fd9146108df578063a825d747146108fe578063aafe5e071461091d575f80fd5b80639c6d7340116101985780639c6d73401461083d5780639d7f977514610882578063a0dd43fc146108a1578063a718531b146108c0575f80fd5b80639132e5c3146107ea57806391d20fa11461080b5780639535ff301461081e575f80fd5b80635b17bb70116102935780636f50a8031161023357806379624ca91161020e57806379624ca9146107785780637cb5901214610790578063861e1ca5146107af5780638da5cb5b146107ce575f80fd5b80636f50a803146106fd578063715018a6146107315780637331809114610745575f80fd5b80636a14d7151161026e5780636a14d715146106435780636bf73fa3146106625780636dbd9f90146106815780636e83f5bb146106a0575f80fd5b80635b17bb70146105985780636750cd4c146105f5578063697fe6b614610624575f80fd5b80632baf0be7116102fe578063402f8468116102d9578063402f8468146104a757806340f80683146104e5578063416ecebf14610504578063587cde1e1461054c575f80fd5b80632baf0be7146104215780632e80fbf31461044357806335d330b014610462575f80fd5b80630c0c389e1461034557806314f651a91461035a578063183c834f146103975780632637a450146103b65780632a56c1b0146103d65780632b3197b9146103f5575b5f80fd5b610358610353366004613f22565b610c1d565b005b348015610365575f80fd5b5061036e610d17565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103a2575f80fd5b506103586103b1366004613fc9565b610d47565b6103c96103c4366004614011565b610fe4565b60405161038e919061405f565b3480156103e1575f80fd5b506103586103f03660046140a0565b611108565b348015610400575f80fd5b5061041461040f36600461410a565b6111a7565b60405161038e91906141a8565b34801561042c575f80fd5b506104355f1981565b60405190815260200161038e565b34801561044e575f80fd5b5061035861045d3660046141d0565b61126d565b34801561046d575f80fd5b5061043561047c366004614232565b600c60209081525f948552604080862082529385528385208152918452828420909152825290205481565b3480156104b2575f80fd5b506104c66104c1366004614271565b6113d8565b604080516001600160a01b03909316835290151560208301520161038e565b3480156104f0575f80fd5b506103586104ff3660046141d0565b611454565b34801561050f575f80fd5b506105377f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161038e565b348015610557575f80fd5b50610580610566366004614299565b600f6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161038e565b3480156105a3575f80fd5b506105dd6105b23660046142b2565b600160209081525f93845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161038e565b348015610600575f80fd5b5061061461060f3660046142eb565b6115b7565b604051901515815260200161038e565b34801561062f575f80fd5b5061035861063e366004614304565b611605565b34801561064e575f80fd5b5061035861065d366004613fc9565b61167a565b34801561066d575f80fd5b5061035861067c3660046143f5565b611a4d565b34801561068c575f80fd5b5061035861069b3660046144ce565b611ab7565b3480156106ab575f80fd5b506106de6106ba3660046142eb565b600b6020525f9081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161038e565b348015610708575f80fd5b506105806107173660046142eb565b600a6020525f90815260409020546001600160a01b031681565b34801561073c575f80fd5b50610358611b53565b348015610750575f80fd5b506105807f000000000000000000000000000000000000000000000000000000000000000081565b348015610783575f80fd5b50600d5460011415610614565b34801561079b575f80fd5b506103586107aa366004614557565b611b66565b3480156107ba575f80fd5b506106146107c93660046145a3565b611c50565b3480156107d9575f80fd5b505f546001600160a01b0316610580565b3480156107f5575f80fd5b506107fe611cba565b60405161038e91906145cc565b610358610819366004614618565b611d1a565b348015610829575f80fd5b506103586108383660046146bb565b611ea4565b348015610848575f80fd5b506105dd6108573660046142b2565b600360209081525f93845260408085208252928452828420905282529020546001600160401b031681565b34801561088d575f80fd5b5061061461089c3660046146bb565b612101565b3480156108ac575f80fd5b506105dd6108bb3660046142b2565b6121d5565b3480156108cb575f80fd5b506103586108da3660046146fb565b612234565b3480156108ea575f80fd5b506103586108f9366004614724565b61254a565b348015610909575f80fd5b5061035861091836600461473f565b612562565b348015610928575f80fd5b506104356109373660046142b2565b6126ab565b348015610947575f80fd5b50610358610956366004614779565b61272a565b348015610966575f80fd5b50610580610975366004614271565b61294c565b348015610985575f80fd5b50610358610994366004614299565b6129b9565b3480156109a4575f80fd5b506106146109b33660046145a3565b612a1f565b3480156109c3575f80fd5b506104356109d2366004614793565b600260209081525f948552604080862082529385528385208152918452828420909152825290205481565b348015610a08575f80fd5b50610358610a17366004614299565b612a82565b348015610a27575f80fd5b506104355f81565b348015610a3a575f80fd5b50610358610a493660046146fb565b612ae8565b348015610a59575f80fd5b50610358610a68366004614793565b612d1d565b348015610a78575f80fd5b50610614610a87366004614299565b60056020525f908152604090205460ff1681565b348015610aa6575f80fd5b50610614610ab5366004614271565b6001600160a01b039182165f90815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610af0575f80fd5b50610b04610aff366004614011565b612e0b565b60405161038e91906147d2565b348015610b1c575f80fd5b507f0000000000000000000000000000000000000000000000000000000000000000610580565b348015610b4e575f80fd5b50600e54610580906001600160a01b031681565b348015610b6d575f80fd5b50610358610b7c366004614299565b61306e565b348015610b8c575f80fd5b506106de610b9b366004614271565b600860209081525f9283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610bd5575f80fd5b50610358610be4366004614299565b6131ce565b348015610bf4575f80fd5b50610580610c033660046142eb565b60096020525f90815260409020546001600160a01b031681565b610c6c86610c2e60208a018a6142eb565b60208a0135610c4360608c0160408d016147e9565b898989604051602001610c5893929190614802565b604051602081830303815290604052613208565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610ca7908b908a908a908a9033908b908b9060040161487c565b5f604051808303818588803b158015610cbe575f80fd5b505af1158015610cd0573d5f803e3d5ffd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d069291906148d2565b60405180910390a150505050505050565b5f80610d26600d546001141590565b610d31575f80610d3f565b610d3f600d5460a081901c91565b915091509091565b6001600160a01b0382165f90815260056020526040902054829060ff16610d8157604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e21575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df2919061490c565b6002811115610e0357610e036148f8565b03610e21576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610ebb576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190614937565b610ebb57604051630e476aa960e21b815260040160405180910390fd5b610ec4886133bf565b5f610ecf89896113d8565b9150508015610ef157604051633c075f7560e01b815260040160405180910390fd5b855f03610f37576001600160a01b0389165f90815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610f9c565b438611610f57576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b038981165f90815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051610fd19493929190614952565b60405180910390a1505050505050505050565b610fec613e76565b610ff960208401846142eb565b336001600d541461101d5760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561104b90860160808701614982565b80156110605750600e546001600160a01b0316155b1561107e57604051632d7b695560e11b815260040160405180910390fd5b5f8061108a338861340f565b915091505f6110976136af565b90505f6110b26110ad60a08b0160808c01614982565b61373c565b90506110c3846040015183836137d4565b600e546040850151602001516110e5916001600160a01b03169083868c613822565b6040840151516110f79083858b61384f565b50506001600d555095945050505050565b611111856133bf565b5f83838360405160200161112793929190614802565b60408051601f1981840301815291905290506111658661114a60208801886142eb565b602088013561115f60608a0160408b016147e9565b85613208565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111979291906148d2565b60405180910390a1505050505050565b6001600160a01b0383165f90815260056020526040902054606090849060ff166111e457604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf7906064015f60405180830381865afa15801561123c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112639190810190614a2b565b9695505050505050565b611276856133bf565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146112e757604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b0390811690841611801590611332575080155b1561135b57604051630c09b63560e41b81526001600160401b03841660048201526024016112de565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190205f199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb552929061119790879087908a9088908890614a5c565b6001600160a01b038083165f90815260076020908152604080832063ffffffff86168452909152812054909116908161144d5763ffffffff83165f908152600a60205260409020546001600160a01b031691508161144957604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b61145d856133bf565b6001600160a01b0385165f90815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b03861684529091529020548181146114c957604051637182306f60e01b815260048101829052602481018390526044016112de565b80158061151257506001600160a01b0386165f90815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561153b57604051630c09b63560e41b81526001600160401b03841660048201526024016112de565b6001600160a01b0386165f90815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e9061119790879087908a9088908890614a5c565b63ffffffff81165f908152600960205260408120546001600160a01b0316158015906115ff575063ffffffff82165f908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116649a99989796959493929190614a99565b60405180910390a4505050505050505050505050565b6001600160a01b0382165f90815260056020526040902054829060ff161580156116ac57506001600160a01b03811615155b156116ca5760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b0381161561176a575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611717573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173b919061490c565b600281111561174c5761174c6148f8565b0361176a576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611804576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156117c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e79190614937565b61180457604051630e476aa960e21b815260040160405180910390fd5b61180d886133bf565b6001600160a01b038089165f90815260076020908152604080832063ffffffff8c1684529091529020548116908716810361185b5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038981165f81815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a185156119d2576001600160a01b03811615806118fd57506001600160a01b038716155b1561191b57604051633c075f7560e01b815260040160405180910390fd5b5f6040518060400160405280836001600160a01b0316815260200188436119429190614b15565b90526001600160a01b038b81165f90815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928916119c4918d918d918791614952565b60405180910390a150611a42565b6001600160a01b0389165f90815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891610fd1918c918c91869190614952565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611aa29a99989796959493929190614b28565b60405180910390a35050505050505050505050565b6001600160a01b0383165f90815260056020526040902054839060ff16611af157604051631bc58ef360e11b815260040160405180910390fd5b611afa856133bf565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b2a90889087908790600401614b86565b5f604051808303815f87803b158015611b41575f80fd5b505af1158015611a42573d5f803e3d5ffd5b611b5b6138a1565b611b645f6138cd565b565b335f908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611bbb57604051630542086560e21b815260040160405180910390fd5b8181604051611bcb929190614c74565b60408051918290038220335f818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611c41919088908890889088908890614c83565b60405180910390a15050505050565b6001600160a01b0381165f9081526001602090815260408220611cb391859185918590611c7f908501856142eb565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b031661391c565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d1057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611cf2575b5050505050905090565b6001600160a01b038089165f908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611d649087908790614c74565b60405180910390209050808214611d98576040516335ca595f60e01b815260048101839052602481018290526044016112de565b6001600160a01b03808b165f908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e06908e908d908c908c9033908d908d90600401614ccc565b5f604051808303818588803b158015611e1d575f80fd5b505af1158015611e2f573d5f803e3d5ffd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611e9094939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b0381165f90815260056020526040902054819060ff16158015611ed657506001600160a01b03811615155b15611ef45760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b03811615611f95576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f66919061490c565b6002811115611f7757611f776148f8565b03611f9557604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561202f576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015611fee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120129190614937565b61202f57604051630e476aa960e21b815260040160405180910390fd5b612038876133bf565b6001600160a01b038781165f90815260066020908152604080832063ffffffff8b1684529091529020548187169116036120855760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b038781165f81815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d06565b5f805f61210e86866113d8565b91509150816001600160a01b0316846001600160a01b03160361213657600192505050611cb3565b5f81612169576001600160a01b0387165f90815260086020908152604080832063ffffffff8a168452909152902061217e565b63ffffffff86165f908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156121b85750438160200151115b156121c95760019350505050611cb3565b505f9695505050505050565b6001600160a01b0383165f90815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b61221f8585858460010161399d565b1561222c57600101612210565b949350505050565b61223c6138a1565b6001600160a01b0382165f90815260056020526040902054829060ff1661227657604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612316575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122e7919061490c565b60028111156122f8576122f86148f8565b03612316576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b038216156123b0576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561236f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123939190614937565b6123b057604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87165f908152600a60205260409020546001600160a01b0390811690871681036123f25760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88165f818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156124de5763ffffffff88165f908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556124978743614b15565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916124d0918c918691614d1e565b60405180910390a150612540565b63ffffffff88165f908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f891612537918b918591614d1e565b60405180910390a15b5050505050505050565b6125526138a1565b61255d8383836139e9565b505050565b6125798261257360208601866142eb565b33612101565b612596576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382165f90815260016020908152604082209082906125be908701876142eb565b63ffffffff16815260208082019290925260409081015f9081208784013582529092529020546001600160401b031690506125fa84848361391c565b6126175760405163751cb20f60e01b815260040160405180910390fd5b612622848483613a0c565b61263e5760405162bbf0e560e11b815260040160405180910390fd5b61266a8361264f60208701876142eb565b60208701356126646060890160408a016147e9565b86613ac2565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161269d93929190614d45565b60405180910390a150505050565b6001600160a01b0383165f90815260036020908152604080832063ffffffff86168452825280832084845290915281205481906126f2906001600160401b03166001614d6d565b9050612721817f0000000000000000000000000000000000000000000000000000000000000000878787613b27565b95945050505050565b6127326138a1565b6001600160a01b0381165f90815260056020526040902054819060ff1661276c57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561280d576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127de919061490c565b60028111156127ef576127ef6148f8565b0361280d57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156128a7576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612866573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061288a9190614937565b6128a757604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86165f908152600960205260409020546001600160a01b038087169116036128e75760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff86165f8181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f59101611197565b6001600160a01b038083165f90815260066020908152604080832063ffffffff8616845290915290205416806115ff575063ffffffff81165f908152600960205260409020546001600160a01b0316806115ff57604051636c1ccdb560e01b815260040160405180910390fd5b6129c16138a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603612a13576040516310647d0b60e01b815260040160405180910390fd5b612a1c81613b9f565b50565b6001600160a01b0381165f9081526001602090815260408220611cb391859185918590612a4e908501856142eb565b63ffffffff16815260208082019290925260409081015f9081208984013582529092529020546001600160401b0316613a0c565b335f818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d798398191015b60405180910390a150565b6001600160a01b0382165f90815260056020526040902054829060ff16612b2257604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612bc2575f816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b93919061490c565b6002811115612ba457612ba46148f8565b03612bc2576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612c5c576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c3f9190614937565b612c5c57604051630e476aa960e21b815260040160405180910390fd5b612c646138a1565b845f03612c965763ffffffff87165f908152600b6020526040812080546001600160a01b031916815560010155612cea565b438511612cb6576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87165f908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d0693929190614d1e565b612d26846133bf565b612d318484846121d5565b612d3c906001614d6d565b6001600160401b0316816001600160401b031614612d7857604051630c09b63560e41b81526001600160401b03821660048201526024016112de565b6001600160a01b0384165f81815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161269d565b604080518082019091525f8082526020820152612e2e60a0840160808501614982565b8015612e435750600e546001600160a01b0316155b15612e6157604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b0382165f9081526003602090815260408220908290612e89908701876142eb565b63ffffffff16815260208082019290925260409081015f908120878401358252909252902054612ec3906001600160401b03166001614d6d565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001865f016020810190612f2d91906142eb565b63ffffffff16815260200186602001358152602001612f84847f0000000000000000000000000000000000000000000000000000000000000000888a5f016020810190612f7a91906142eb565b8b60200135613b27565b8152602001612f966040880188614d8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093909452509293509150612fe290508561097560208901896142eb565b90506001600160a01b03811663d80e9bd98361300160608a018a614d8d565b61301160a08c0160808d01614982565b6040518563ffffffff1660e01b81526004016130309493929190614dcf565b6040805180830381865afa15801561304a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112639190614ec0565b6130766138a1565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156130bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e39190614937565b6131005760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff16156131395760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381165f818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612add565b6131d66138a1565b6001600160a01b0381166131ff57604051631e4fbdf760e01b81525f60048201526024016112de565b612a1c816138cd565b6001600160a01b0385165f90815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b039081169084168110156132f457600181015b846001600160401b0316816001600160401b0316116132a8576132788888888461399d565b6132a057604051630c09b63560e41b81526001600160401b03821660048201526024016112de565b600101613253565b506001600160a01b0387165f90815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b0389165f90815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461336d57604051637182306f60e01b815260048101829052602481018490526044016112de565b50506001600160a01b039095165f90815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b038216148015906133f157506001600160a01b038181165f908152600f6020526040902054163314155b15612a1c5760405163c4c5259360e01b815260040160405180910390fd5b613417613e76565b5f806134868561342a60208701876142eb565b6001600160a01b03919091165f90815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b90505f6040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b03168152602001865f0160208101906134f091906142eb565b63ffffffff1681526020018660200135815260200161353d847f00000000000000000000000000000000000000000000000000000000000000008a8a5f016020810190612f7a91906142eb565b815260200161354f6040880188614d8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250929350915061359b90508761097560208901896142eb565b90505f806001600160a01b038316634389e58f856135bc60608c018c614d8d565b6135cc60a08e0160808f01614982565b6040518563ffffffff1660e01b81526004016135eb9493929190614dcf565b5f604051808303815f875af1158015613606573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261362d9190810190614eda565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161366160608b018b614d8d565b866040516136729493929190614f25565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015613713573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137379190614f64565b905090565b5f81156137cf57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137ad9190614f64565b9050805f036137cf57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806137e65750808360200151115b1561255d5782516020840151604051634f3ec0d360e01b81526004810192909252602482018490526044820152606481018290526084016112de565b831561383357613833858386613bf5565b82841015613848576138488582868603613bf5565b5050505050565b341561386e57604051634d18bd2960e11b815260040160405180910390fd5b61389b7f000000000000000000000000000000000000000000000000000000000000000085858585613822565b50505050565b5f546001600160a01b03163314611b645760405163118cdaa760e01b81523360048201526024016112de565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80826001600160401b0316118061222c5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d9061395e908790600401614f7b565b602060405180830381865afa158015613979573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061222c9190614937565b6001600160a01b0384165f90815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a015761255d8282613c30565b61255d838383613bf5565b5f6001600160401b038216613a2760608601604087016147e9565b6001600160401b0316118061222c57506001600160a01b0383165f9081526002602090815260408220908290613a5f908801886142eb565b63ffffffff1663ffffffff1681526020019081526020015f205f866020013581526020019081526020015f205f866040016020810190613a9f91906147e9565b6001600160401b0316815260208101919091526040015f20541415949350505050565b80613ae0576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b039094165f90815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b5f85856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b613ba76138a1565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a6239690602001612add565b6001600160a01b038216613c1c576040516306b7a93160e41b815260040160405180910390fd5b61255d6001600160a01b0384168383613cd9565b6001600160a01b038216613c57576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613ca0576040519150601f19603f3d011682016040523d82523d5f602084013e613ca5565b606091505b505090508061255d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016112de565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261255d918591905f90613d3690841683613d83565b905080515f14158015613d5a575080806020019051810190613d589190614937565b155b1561255d57604051635274afe760e01b81526001600160a01b03841660048201526024016112de565b6060611cb383835f845f80856001600160a01b03168486604051613da79190614f89565b5f6040518083038185875af1925050503d805f8114613de1576040519150601f19603f3d011682016040523d82523d5f602084013e613de6565b606091505b5091509150611263868383606082613e0657613e0182613e4d565b611cb3565b8151158015613e1d57506001600160a01b0384163b155b15613e4657604051639996b31560e01b81526001600160a01b03851660048201526024016112de565b5080611cb3565b805115613e5d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b03168152602001613eb460405180604001604052805f81526020015f81525090565b905290565b5f60608284031215613ec9575f80fd5b50919050565b80356001600160a01b03811681146137cf575f80fd5b5f8083601f840112613ef5575f80fd5b5081356001600160401b03811115613f0b575f80fd5b60208301915083602082850101111561144d575f80fd5b5f805f805f805f60e0888a031215613f38575f80fd5b613f428989613eb9565b9650613f5060608901613ecf565b95506080880135945060a08801356001600160401b0380821115613f72575f80fd5b613f7e8b838c01613ee5565b909650945060c08a0135915080821115613f96575f80fd5b50613fa38a828b01613ee5565b989b979a50959850939692959293505050565b803563ffffffff811681146137cf575f80fd5b5f805f8060808587031215613fdc575f80fd5b613fe585613ecf565b9350613ff360208601613fb6565b925061400160408601613ecf565b9396929550929360600135925050565b5f8060408385031215614022575f80fd5b82356001600160401b03811115614037575f80fd5b830160a08186031215614048575f80fd5b915061405660208401613ecf565b90509250929050565b5f608082019050825182526001600160401b0360208401511660208301526040830151614099604084018280518252602090810151910152565b5092915050565b5f805f805f60c086880312156140b4575f80fd5b6140bd86613ecf565b94506140cc8760208801613eb9565b93506080860135925060a08601356001600160401b038111156140ed575f80fd5b6140f988828901613ee5565b969995985093965092949392505050565b5f805f806080858703121561411d575f80fd5b61412685613ecf565b935061413460208601613ecf565b925061414260408601613fb6565b915061415060608601613fb6565b905092959194509250565b5f5b8381101561417557818101518382015260200161415d565b50505f910152565b5f815180845261419481602086016020860161415b565b601f01601f19169290920160200192915050565b602081525f611cb3602083018461417d565b80356001600160401b03811681146137cf575f80fd5b5f805f805f60a086880312156141e4575f80fd5b6141ed86613ecf565b94506141fb60208701613fb6565b935060408601359250614210606087016141ba565b949793965091946080013592915050565b803561ffff811681146137cf575f80fd5b5f805f8060808587031215614245575f80fd5b61424e85613ecf565b935061425c60208601613ecf565b92506040850135915061415060608601614221565b5f8060408385031215614282575f80fd5b61428b83613ecf565b915061405660208401613fb6565b5f602082840312156142a9575f80fd5b611cb382613ecf565b5f805f606084860312156142c4575f80fd5b6142cd84613ecf565b92506142db60208501613fb6565b9150604084013590509250925092565b5f602082840312156142fb575f80fd5b611cb382613fb6565b5f805f805f805f805f805f806101208d8f031215614320575f80fd5b6143298d613ecf565b9b5061433760208e01613ecf565b9a5060408d0135995061434c60608e01614221565b985060808d0135975060a08d013596506001600160401b0360c08e01351115614373575f80fd5b6143838e60c08f01358f01613ee5565b90965094506001600160401b0360e08e0135111561439f575f80fd5b6143af8e60e08f01358f01613ee5565b90945092506001600160401b036101008e013511156143cc575f80fd5b6143dd8e6101008f01358f01613ee5565b81935080925050509295989b509295989b509295989b565b5f805f805f805f805f805f6101408c8e031215614410575f80fd5b61441a8d8d613eb9565b9a5061442860608d01613ecf565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e01351115614457575f80fd5b6144678e60e08f01358f01613ee5565b90975095506101008d013581101561447d575f80fd5b61448e8e6101008f01358f01613ee5565b90955093506101208d01358110156144a4575f80fd5b506144b68d6101208e01358e01613ee5565b81935080925050509295989b509295989b9093969950565b5f805f80606085870312156144e1575f80fd5b6144ea85613ecf565b93506144f860208601613ecf565b925060408501356001600160401b0380821115614513575f80fd5b818701915087601f830112614526575f80fd5b813581811115614534575f80fd5b8860208260051b8501011115614548575f80fd5b95989497505060200194505050565b5f805f805f6080868803121561456b575f80fd5b61457486613ecf565b94506020860135935061458960408701614221565b925060608601356001600160401b038111156140ed575f80fd5b5f80608083850312156145b4575f80fd5b6145be8484613eb9565b915061405660608401613ecf565b602080825282518282018190525f9190848201906040850190845b8181101561460c5783516001600160a01b0316835292840192918401916001016145e7565b50909695505050505050565b5f805f805f805f8060c0898b03121561462f575f80fd5b61463889613ecf565b975061464660208a01613ecf565b96506040890135955061465b60608a01614221565b945060808901356001600160401b0380821115614676575f80fd5b6146828c838d01613ee5565b909650945060a08b013591508082111561469a575f80fd5b506146a78b828c01613ee5565b999c989b5096995094979396929594505050565b5f805f606084860312156146cd575f80fd5b6146d684613ecf565b92506146e460208501613fb6565b91506146f260408501613ecf565b90509250925092565b5f805f6060848603121561470d575f80fd5b61471684613fb6565b92506142db60208501613ecf565b5f805f60608486031215614736575f80fd5b61471684613ecf565b5f805f60a08486031215614751575f80fd5b61475b8585613eb9565b925061476960608501613ecf565b9150608084013590509250925092565b5f806040838503121561478a575f80fd5b61404883613fb6565b5f805f80608085870312156147a6575f80fd5b6147af85613ecf565b93506147bd60208601613fb6565b925060408501359150614150606086016141ba565b8151815260208083015190820152604081016115ff565b5f602082840312156147f9575f80fd5b611cb3826141ba565b838152818360208301375f910160200190815292915050565b63ffffffff61482982613fb6565b168252602081013560208301526001600160401b0361484a604083016141ba565b1660408301525050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b614886818961481b565b86606082015260e060808201525f6148a260e083018789614854565b6001600160a01b03861660a084015282810360c08401526148c4818587614854565b9a9950505050505050505050565b608081016148e0828561481b565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b5f52602160045260245ffd5b5f6020828403121561491c575f80fd5b815160038110611cb3575f80fd5b8015158114612a1c575f80fd5b5f60208284031215614947575f80fd5b8151611cb38161492a565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b5f60208284031215614992575f80fd5b8135611cb38161492a565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126149c0575f80fd5b81516001600160401b03808211156149da576149da61499d565b604051601f8301601f19908116603f01168101908282118183101715614a0257614a0261499d565b81604052838152866020858801011115614a1a575f80fd5b61126384602083016020890161415b565b5f60208284031215614a3b575f80fd5b81516001600160401b03811115614a50575f80fd5b61222c848285016149b1565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201525f614ac860e08301888a614854565b82810360a0840152614adb818789614854565b905082810360c0840152614af0818587614854565b9d9c50505050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156115ff576115ff614b01565b5f610120614b36838e61481b565b8b60608401528a60808401528960a08401528060c0840152614b5b818401898b614854565b905082810360e0840152614b70818789614854565b9050828103610100840152614af0818587614854565b6001600160a01b0384168152604060208083018290528282018490525f9190606090818501600587901b8601830188865b89811015614c6457888303605f190184528135368c9003605e19018112614bdc575f80fd5b8b0163ffffffff80614bed83613fb6565b16855280614bfc888401613fb6565b16878601525087810135601e19823603018112614c17575f80fd5b0185810190356001600160401b03811115614c30575f80fd5b803603821315614c3e575f80fd5b8789860152614c508886018284614854565b958701959450505090840190600101614bb7565b50909a9950505050505050505050565b818382375f9101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a0608082018190525f90614cc09083018486614854565b98975050505050505050565b5f60018060a01b03808a16835288602084015260a06040840152614cf460a08401888a614854565b81871660608501528381036080850152614d0f818688614854565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614d53828661481b565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561409957614099614b01565b5f808335601e19843603018112614da2575f80fd5b8301803591506001600160401b03821115614dbb575f80fd5b60200191503681900382131561144d575f80fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a08301528501515f90614e1d60c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614e4e61014084018261417d565b90508281036020840152614e63818688614854565b915050612721604083018415159052565b5f60408284031215614e84575f80fd5b604051604081018181106001600160401b0382111715614ea657614ea661499d565b604052825181526020928301519281019290925250919050565b5f60408284031215614ed0575f80fd5b611cb38383614e74565b5f8060608385031215614eeb575f80fd5b614ef58484614e74565b915060408301516001600160401b03811115614f0f575f80fd5b614f1b858286016149b1565b9150509250929050565b606081525f614f37606083018761417d565b8281036020840152614f4a818688614854565b91505060018060a01b038316604083015295945050505050565b5f60208284031215614f74575f80fd5b5051919050565b606081016115ff828461481b565b5f8251614f9a81846020870161415b565b919091019291505056fea26469706673582212205781dc5e0eeff4fb526f857a50ee0d33a411c477c5e9afa26217201d33740c1064736f6c63430008160033","sourceMap":"279:1560:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9753:572:76;;;;;;:::i;:::-;;:::i;:::-;;1153:158:51;;;;;;;;;;;;;:::i;:::-;;;;1997:10:133;1985:23;;;1967:42;;-1:-1:-1;;;;;2045:32:133;;;2040:2;2025:18;;2018:60;1940:18;1153:158:51;;;;;;;;13111:942:48;;;;;;;;;;-1:-1:-1;13111:942:48;;;;;:::i;:::-;;:::i;5245:1210:76:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11390:344::-;;;;;;;;;;-1:-1:-1;11390:344:76;;;;;:::i;:::-;;:::i;14475:261:48:-;;;;;;;;;;-1:-1:-1;14475:261:48;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;344:69:49:-;;;;;;;;;;-1:-1:-1;344:69:49;-1:-1:-1;;344:69:49;;;;;5764:25:133;;;5752:2;5737:18;344:69:49;5618:177:133;4815:687:49;;;;;;;;;;-1:-1:-1;4815:687:49;;;;;:::i;:::-;;:::i;455:145:50:-;;;;;;;;;;-1:-1:-1;455:145:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4135:379:48;;;;;;;;;;-1:-1:-1;4135:379:48;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;7564:32:133;;;7546:51;;7640:14;;7633:22;7628:2;7613:18;;7606:50;7519:18;4135:379:48;7378:284:133;5920:644:49;;;;;;;;;;-1:-1:-1;5920:644:49;;;;;:::i;:::-;;:::i;486:27::-;;;;;;;;;;;;;;;;;;7841:10:133;7829:23;;;7811:42;;7799:2;7784:18;486:27:49;7667:192:133;2947:58:76;;;;;;;;;;-1:-1:-1;2947:58:76;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2947:58:76;;;;;;-1:-1:-1;;;;;8219:32:133;;;8201:51;;8189:2;8174:18;2947:58:76;8055:203:133;520:126:49;;;;;;;;;;-1:-1:-1;520:126:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;520:126:49;;;;;;-1:-1:-1;;;;;8756:31:133;;;8738:50;;8726:2;8711:18;520:126:49;8594:200:133;9954:173:48;;;;;;;;;;-1:-1:-1;9954:173:48;;;;;:::i;:::-;;:::i;:::-;;;9153:14:133;;9146:22;9128:41;;9116:2;9101:18;9954:173:48;8988:187:133;3537:395:50;;;;;;;;;;-1:-1:-1;3537:395:50;;;;;:::i;:::-;;:::i;11204:1559:48:-;;;;;;;;;;-1:-1:-1;11204:1559:48;;;;;:::i;:::-;;:::i;10627:388:76:-;;;;;;;;;;-1:-1:-1;10627:388:76;;;;;:::i;:::-;;:::i;14185:208:48:-;;;;;;;;;;-1:-1:-1;14185:208:48;;;;;:::i;:::-;;:::i;1509:69::-;;;;;;;;;;-1:-1:-1;1509:69:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1509:69:48;;;;;;;;;;-1:-1:-1;;;;;13020:32:133;;;13002:51;;13084:2;13069:18;;13062:34;;;;12975:18;1509:69:48;12828:274:133;1437:66:48;;;;;;;;;;-1:-1:-1;1437:66:48;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1437:66:48;;;2293:101:108;;;;;;;;;;;;;:::i;744:39:48:-;;;;;;;;;;;;;;;969:106:51;;;;;;;;;;-1:-1:-1;1041:12:51;;527:1;1041:27;;969:106;;1065:402:50;;;;;;;;;;-1:-1:-1;1065:402:50;;;;;:::i;:::-;;:::i;17710:215:76:-;;;;;;;;;;-1:-1:-1;17710:215:76;;;;;:::i;:::-;;:::i;1638:85:108:-;;;;;;;;;;-1:-1:-1;1684:7:108;1710:6;-1:-1:-1;;;;;1710:6:108;1638:85;;2858:118:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2144:1048:50:-;;;;;;:::i;:::-;;:::i;10340:450:48:-;;;;;;;;;;-1:-1:-1;10340:450:48;;;;;:::i;:::-;;:::i;825:115:49:-;;;;;;;;;;-1:-1:-1;825:115:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;825:115:49;;;4887:1218:48;;;;;;;;;;-1:-1:-1;4887:1218:48;;;;;:::i;:::-;;:::i;2523:425:49:-;;;;;;;;;;-1:-1:-1;2523:425:49;;;;;:::i;:::-;;:::i;7763:1045:48:-;;;;;;;;;;-1:-1:-1;7763:1045:48;;;;;:::i;:::-;;:::i;12477:148:76:-;;;;;;;;;;-1:-1:-1;12477:148:76;;;;;:::i;:::-;;:::i;8373:709::-;;;;;;;;;;-1:-1:-1;8373:709:76;;;;;:::i;:::-;;:::i;8256:259:49:-;;;;;;;;;;-1:-1:-1;8256:259:49;;;;;:::i;:::-;;:::i;7038:400:48:-;;;;;;;;;;-1:-1:-1;7038:400:48;;;;;:::i;:::-;;:::i;3524:317::-;;;;;;;;;;-1:-1:-1;3524:317:48;;;;;:::i;:::-;;:::i;1552:180:75:-;;;;;;;;;;-1:-1:-1;1552:180:75;;;;;:::i;:::-;;:::i;17931:209:76:-;;;;;;;;;;-1:-1:-1;17931:209:76;;;;;:::i;:::-;;:::i;652:167:49:-;;;;;;;;;;-1:-1:-1;652:167:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16136:148:76;;;;;;;;;;-1:-1:-1;16136:148:76;;;;;:::i;:::-;;:::i;283:55:49:-;;;;;;;;;;-1:-1:-1;283:55:49;336:1;283:55;;9156:710:48;;;;;;;;;;-1:-1:-1;9156:710:48;;;;;:::i;:::-;;:::i;4016:359:49:-;;;;;;;;;;-1:-1:-1;4016:359:49;;;;;:::i;:::-;;:::i;948:55:48:-;;;;;;;;;;-1:-1:-1;948:55:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;3847:158;;;;;;;;;;-1:-1:-1;3847:158:48;;;;;:::i;:::-;-1:-1:-1;;;;;3954:20:48;;;3931:4;3954:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;:44;;3847:158;3962:1043:76;;;;;;;;;;-1:-1:-1;3962:1043:76;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1738:99:75:-;;;;;;;;;;-1:-1:-1;1819:11:75;1738:99;;2918:22:76;;;;;;;;;;-1:-1:-1;2918:22:76;;;;-1:-1:-1;;;;;2918:22:76;;;6264:511:48;;;;;;;;;;-1:-1:-1;6264:511:48;;;;;:::i;:::-;;:::i;1270:91::-;;;;;;;;;;-1:-1:-1;1270:91:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1270:91:48;;;;;;2543:215:108;;;;;;;;;;-1:-1:-1;2543:215:108;;;;;:::i;:::-;;:::i;1368:63:48:-;;;;;;;;;;-1:-1:-1;1368:63:48;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1368:63:48;;;9753:572:76;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:76;;-1:-1:-1;;;10159:109:76;;-1:-1:-1;;;;;10159:39:76;;;;;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:51:-;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:48:-;-1:-1:-1;;;;;1765:25:48;;;;;;:19;:25;;;;;;13266:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:48;;;;;;;;;;;1760:68;13285:4;-1:-1:-1;;;;;2114:19:48;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:48::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:48::1;;;;;;;;;;;2149:96;13308:4:::0;13314;-1:-1:-1;;;;;2711:19:48;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:48;;7841:10:133;7829:23;;2751:38:48::2;::::0;::::2;7811:42:133::0;-1:-1:-1;;;;;2751:32:48;::::2;::::0;::::2;::::0;7784:18:133;;2751:38:48::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:48::2;;;;;;;;;;;2746:78;13330:24:::3;13348:5;13330:17;:24::i;:::-;13368:14;13386:30;13404:5;13411:4;13386:17;:30::i;:::-;13365:51;;;13498:9;13494:51;;;13516:29;;-1:-1:-1::0;;;13516:29:48::3;;;;;;;;;;;13494:51;13560:7;13571:1;13560:12:::0;13556:424:::3;;-1:-1:-1::0;;;;;13649:28:48;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13642:41;;-1:-1:-1;;;;;;13642:41:48::3;::::0;;;::::3;::::0;13556:424:::3;;;13779:12;13768:7;:23;13764:61;;13800:25;;-1:-1:-1::0;;;13800:25:48::3;;;;;;;;;;;13764:61;-1:-1:-1::0;;;;;13865:28:48;;::::3;13839:23;13865:28:::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13913:18;;-1:-1:-1;;;;;;13913:18:48::3;::::0;;::::3;::::0;;;::::3;::::0;;-1:-1:-1;13945:14:48::3;:24:::0;;;13556:424:::3;13994:52;14019:5;14026:4;14032;14038:7;13994:52;;;;;;;;;:::i;:::-;;;;;;;;13320:733;2265:1:::2;;1838::::1;13111:942:::0;;;;;:::o;5245:1210:76:-;5405:23;;:::i;:::-;5368:14;;;;:7;:14;:::i;:::-;5384:10;527:1:51;733:12;;:27;729:66;;769:26;;-1:-1:-1;;;769:26:51;;;;;;;;;;;729:66;-1:-1:-1;;;841:3:51;821:23;;;;;;;-1:-1:-1;;;;;820:44:51;;;805:12;:59;5444:20:76::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;:47;;;;-1:-1:-1::0;5468:7:76::1;::::0;-1:-1:-1;;;;;5468:7:76::1;:23:::0;5444:47:::1;5440:90;;;5500:30;;-1:-1:-1::0;;;5500:30:76::1;;;;;;;;;;;5440:90;5566:31;5599:20:::0;5623:26:::1;5629:10;5641:7;5623:5;:26::i;:::-;5565:84;;;;5980:22;6005:17;:15;:17::i;:::-;5980:42:::0;-1:-1:-1;6032:23:76::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:76::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:51;885:12;:26;-1:-1:-1;6441:7:76;5245:1210;-1:-1:-1;;;;;5245:1210:76:o;11390:344::-;11504:24;11522:5;11504:17;:24::i;:::-;11539:20;11579:5;11586:8;;11562:33;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;11562:33:76;;;;;;;;;;-1:-1:-1;11605:76:76;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:48:-;-1:-1:-1;;;;;1765:25:48;;;;;;:19;:25;;;;;;14638:19;;14623:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:48;;;;;;;;;;;1760:68;14676:53:::1;::::0;-1:-1:-1;;;14676:53:48;;21980:10:133;22017:15;;;14676:53:48::1;::::0;::::1;21999:34:133::0;-1:-1:-1;;;;;22069:32:133;;;22049:18;;;22042:60;22138:15;;;22118:18;;;22111:43;14676:27:48;::::1;::::0;::::1;::::0;21943:18:133;;14676:53:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;14676:53:48::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;14669:60:::0;14475:261;-1:-1:-1;;;;;;14475:261:48:o;4815:687:49:-;4935:24;4953:5;4935:17;:24::i;:::-;-1:-1:-1;;;;;4995:25:49;;4970:22;4995:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;4995:51:49;;;;;;;;;;5060:30;;;5056:102;;5099:59;;-1:-1:-1;;;5099:59:49;;;;;23514:25:133;;;23555:18;;;23548:34;;;23487:18;;5099:59:49;;;;;;;;5056:102;-1:-1:-1;;;;;5182:23:49;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;-1:-1:-1;;;;;5182:41:49;;;5172:51;;;;;;;:91;;-1:-1:-1;5227:36:49;;5172:91;5168:146;;;5284:30;;-1:-1:-1;;;5284:30:49;;-1:-1:-1;;;;;8756:31:133;;5284:30:49;;;8738:50:133;8711:18;;5284:30:49;8594:200:133;5168:146:49;-1:-1:-1;;;;;5349:25:49;;387:26;5349:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;5349:51:49;;;;;;;;;;;-1:-1:-1;;5349:70:49;;5434:61;;;;;5375:7;;5384;;5368:5;;5393:6;;5482:12;;5434:61;:::i;4135:379:48:-;-1:-1:-1;;;;;4263:25:48;;;4218:11;4263:25;;;:14;:25;;;;;;;;:34;;;;;;;;;;;;;;;;4307:201;;4351:30;;;;;;;:21;:30;;;;;;-1:-1:-1;;;;;4351:30:48;;-1:-1:-1;4351:30:48;4395:72;;4427:40;;-1:-1:-1;;;4427:40:48;;;;;;;;;;;4395:72;-1:-1:-1;4493:4:48;4307:201;4135:379;;;;;:::o;5920:644:49:-;6038:24;6056:5;6038:17;:24::i;:::-;-1:-1:-1;;;;;6098:25:49;;6073:22;6098:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;6098:51:49;;;;;;;;;;6163:30;;;6159:102;;6202:59;;-1:-1:-1;;;6202:59:49;;;;;23514:25:133;;;23555:18;;;23548:34;;;23487:18;;6202:59:49;23340:248:133;6159:102:49;6275:36;;;:90;;-1:-1:-1;;;;;;6324:23:49;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;-1:-1:-1;;;;;6324:41:49;;;6315:50;;;;6275:90;6271:145;;;6386:30;;-1:-1:-1;;;6386:30:49;;-1:-1:-1;;;;;8756:31:133;;6386:30:49;;;8738:50:133;8711:18;;6386:30:49;8594:200:133;6271:145:49;-1:-1:-1;;;;;6433:25:49;;;;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;6433:51:49;;;;;;;;;;6426:58;;;;6499;;;;;6459:7;;6468;;6452:5;;6477:6;;6544:12;;6499:58;:::i;9954:173:48:-;10037:24;;;10014:4;10037:24;;;:18;:24;;;;;;-1:-1:-1;;;;;10037:24:48;:38;;;;:83;;-1:-1:-1;10079:27:48;;;10118:1;10079:27;;;:21;:27;;;;;;-1:-1:-1;;;;;10079:27:48;:41;;10037:83;10030:90;9954:173;-1:-1:-1;;9954:173:48:o;3537:395:50:-;3854:10;-1:-1:-1;;;;;3827:98:50;3849:3;-1:-1:-1;;;;;3827:98:50;3842:5;-1:-1:-1;;;;;3827:98:50;;3866:5;3873:6;3881:4;3887:6;3895:8;;3905:10;;3917:7;;3827:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3537:395;;;;;;;;;;;;:::o;11204:1559:48:-;-1:-1:-1;;;;;2341:25:48;;;;;;:19;:25;;;;;;11369:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:48;;;;2340:49;2336:100;;;2398:38;;-1:-1:-1;;;2398:38:48;;;;;;;;;;;2336:100;11391:7;-1:-1:-1;;;;;2114:19:48;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:48::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:48::1;;;;;;;;;;;2149:96;11417:7:::0;11426:4;-1:-1:-1;;;;;2711:19:48;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:48;;7841:10:133;7829:23;;2751:38:48::2;::::0;::::2;7811:42:133::0;-1:-1:-1;;;;;2751:32:48;::::2;::::0;::::2;::::0;7784:18:133;;2751:38:48::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:48::2;;;;;;;;;;;2746:78;11442:24:::3;11460:5;11442:17;:24::i;:::-;-1:-1:-1::0;;;;;11494:21:48;;::::3;11477:14;11494:21:::0;;;:14:::3;:21;::::0;;;;;;;:27:::3;::::0;::::3;::::0;;;;;;;;;::::3;::::0;11570:17;::::3;::::0;;11566:51:::3;;11596:21;;-1:-1:-1::0;;;11596:21:48::3;;;;;;;;;;;11566:51;-1:-1:-1::0;;;;;11627:21:48;;::::3;;::::0;;;:14:::3;:21;::::0;;;;;;;:27:::3;::::0;::::3;::::0;;;;;;;;;;:37;;-1:-1:-1;;;;;;11627:37:48::3;::::0;;::::3;::::0;;::::3;::::0;;11679:39;;25286:34:133;;;25336:18;;;25329:51;;;;25396:18;;25389:43;;;;11679:39:48::3;::::0;25236:2:133;25221:18;11679:39:48::3;;;;;;;11733:16:::0;;11729:1028:::3;;-1:-1:-1::0;;;;;12251:21:48;::::3;::::0;;:47:::3;;-1:-1:-1::0;;;;;;12276:22:48;::::3;::::0;12251:47:::3;12247:89;;;12307:29;;-1:-1:-1::0;;;12307:29:48::3;;;;;;;;;;;12247:89;12383:22;12408:61;;;;;;;;12423:6;-1:-1:-1::0;;;;;12408:61:48::3;;;;;12454:12;12439;:27;;;;:::i;:::-;12408:61:::0;;-1:-1:-1;;;;;12483:28:48;;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;:44;;;;-1:-1:-1;;;;;;12483:44:48::3;::::0;::::3;::::0;;;::::3;::::0;;;::::3;::::0;-1:-1:-1;12483:44:48;;::::3;::::0;;;12546:61;12483:44;;-1:-1:-1;12546:61:48::3;::::0;::::3;::::0;12483:28;;:34;;12584:6;;12546:61:::3;:::i;:::-;;;;;;;;11751:867;11729:1028;;;-1:-1:-1::0;;;;;12645:28:48;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;12638:41;;-1:-1:-1;;;;;;12638:41:48::3;::::0;;;::::3;::::0;;;12698:48;::::3;::::0;::::3;::::0;12667:5;;12674:4;;12736:6;;12645:28;12698:48:::3;:::i;11729:1028::-;11432:1331;2265:1:::2;;2446::::1;11204:1559:::0;;;;;:::o;10627:388:76:-;10936:10;-1:-1:-1;;;;;10910:98:76;10925:9;-1:-1:-1;;;;;10910:98:76;;10948:7;10957:5;10964:4;10970:6;10978:8;;10988:10;;11000:7;;10910:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10627:388;;;;;;;;;;;:::o;14185:208:48:-;-1:-1:-1;;;;;1765:25:48;;;;;;:19;:25;;;;;;14292:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:48;;;;;;;;;;;1760:68;14308:24:::1;14326:5;14308:17;:24::i;:::-;14343:43;::::0;-1:-1:-1;;;14343:43:48;;-1:-1:-1;;;;;14343:27:48;::::1;::::0;::::1;::::0;:43:::1;::::0;14371:5;;14378:7;;;;14343:43:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;2293:101:108::0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1065:402:50:-;1232:10;372:1;1219:24;;;:12;:24;;;;;;;;-1:-1:-1;;;;;1219:29:50;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:63;1215:101;;1291:25;;-1:-1:-1;;;1291:25:50;;;;;;;;;;;1215:101;1383:8;;1373:19;;;;;;;:::i;:::-;;;;;;;;;;1339:10;1326:24;;;;:12;:24;;;;;;;-1:-1:-1;;;;;1326:29:50;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:66;1407:53;;;;1339:10;1351:3;;1356:5;;1363:6;;1451:8;;;;1407:53;:::i;:::-;;;;;;;;1065:402;;;;;:::o;17710:215:76:-;-1:-1:-1;;;;;17858:27:76;;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:76;;;17902:14;;;;17858:59;;;;;;;;-1:-1:-1;;;;;17858:59:76;17823:14;:95::i;:::-;17816:102;17710:215;-1:-1:-1;;;17710:215:76:o;2858:118:48:-;2915:16;2950:19;2943:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2943:26:48;;;;;;;;;;;;;;;;;;;;;;;2858:118;:::o;2144:1048:50:-;-1:-1:-1;;;;;2408:19:50;;;2385:20;2408:19;;;:12;:19;;;;;;;;:24;;;;;;;;;;;:31;;;;;;;;:39;;;;;;;;;;;2478:19;;;;2488:8;;;;2478:19;:::i;:::-;;;;;;;;2457:40;;2527:10;2511:12;:26;2507:90;;2546:51;;-1:-1:-1;;;2546:51:50;;;;;23514:25:133;;;23555:18;;;23548:34;;;23487:18;;2546:51:50;23340:248:133;2507:90:50;-1:-1:-1;;;;;2953:19:50;;;429;2953;;;:12;:19;;;;;;;;:24;;;;;;;;;;;;:31;;;;;;;;:39;;;;;;;;;;;;445:1;2953:63;;3026:101;-1:-1:-1;;;3026:101:50;;: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;;;;;30948:15:133;;;30930:34;;31000:15;;;;30995:2;30980:18;;30973:43;31047:2;31032:18;;31025:34;31107:6;31095:19;;;;31090:2;31075:18;;31068:47;30879:3;30864:19;;30663:458;3142:43:50;;;;;;;;2344:848;;2144:1048;;;;;;;;:::o;10340:450:48:-;-1:-1:-1;;;;;2341:25:48;;;;;;:19;:25;;;;;;10472:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:48;;;;2340:49;2336:100;;;2398:38;;-1:-1:-1;;;2398:38:48;;;;;;;;;;;2336:100;10491:7;-1:-1:-1;;;;;1899:19:48;::::1;::::0;1895:146:::1;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:48::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::1;;2007:23;;-1:-1:-1::0;;;2007:23:48::1;;;;;;;;;;;1934:96;10517:7:::0;10526:4;-1:-1:-1;;;;;2711:19:48;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:48;;7841:10:133;7829:23;;2751:38:48::2;::::0;::::2;7811:42:133::0;-1:-1:-1;;;;;2751:32:48;::::2;::::0;::::2;::::0;7784:18:133;;2751:38:48::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:48::2;;;;;;;;;;;2746:78;10542:24:::3;10560:5;10542:17;:24::i;:::-;-1:-1:-1::0;;;;;10623:18:48;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;:35;;::::3;:24:::0;::::3;:35:::0;10619:69:::3;;10667:21;;-1:-1:-1::0;;;10667:21:48::3;;;;;;;;;;;10619:69;-1:-1:-1::0;;;;;10698:18:48;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;;;:34;;-1:-1:-1;;;;;;10698:34:48::3;::::0;;::::3;::::0;;::::3;::::0;;10747:36;;25286:34:133;;;25336:18;;;25329:51;;;;25396:18;;25389:43;;;;10747:36:48::3;::::0;25236:2:133;25221:18;10747:36:48::3;25048:390:133::0;4887:1218:48;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:48;:17;-1:-1:-1;;;;;5231:39:48;;5227:81;;5293:4;5286:11;;;;;;5227:81;5514:22;5539:9;:117;;-1:-1:-1;;;;;5615:32:48;;;;;;:21;:32;;;;;;;;:41;;;;;;;;;;5539:117;;;5563:37;;;;;;;:28;:37;;;;;5539:117;5514:142;;;;;;;;;;;-1:-1:-1;;;;;5514:142:48;;;;;;;;;;;;;;;;;-1:-1:-1;5886:32:48;;;:65;;;;;5939:12;5922:7;:14;;;:29;5886:65;5882:158;;;6025:4;6018:11;;;;;;;5882:158;-1:-1:-1;6093:5:48;;4887:1218;-1:-1:-1;;;;;;4887:1218:48:o;2523:425:49:-;-1:-1:-1;;;;;2657:27:49;;2618:6;2657:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;-1:-1:-1;;;;;2657:45:49;2788:116;2795:61;2811:9;2822:7;2831;2840:11;2854:1;2840:15;2795;:61::i;:::-;2788:116;;;2876:13;;2788:116;;;2930:11;2523:425;-1:-1:-1;;;;2523:425:49:o;7763:1045:48:-;1531:13:108;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:48;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7913:7;;1765:25:::1;;1760:68;;1799:29;;-1:-1:-1::0;;;1799:29:48::1;;;;;;;;;;;1760:68;7935:7:::0;-1:-1:-1;;;;;2114:19:48;::::2;::::0;2110:146:::2;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:48::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::2;;2219:26;;-1:-1:-1::0;;;2219:26:48::2;;;;;;;;;;;2149:96;7961:7:::0;7970:4;-1:-1:-1;;;;;2711:19:48;::::3;::::0;2707:128:::3;;2751:38;::::0;-1:-1:-1;;;2751:38:48;;7841:10:133;7829:23;;2751:38:48::3;::::0;::::3;7811:42:133::0;-1:-1:-1;;;;;2751:32:48;::::3;::::0;::::3;::::0;7784:18:133;;2751:38:48::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:48::3;;;;;;;;;;;2746:78;8003:27:::4;::::0;::::4;7986:14;8003:27:::0;;;:21:::4;:27;::::0;;;;;-1:-1:-1;;;;;8003:27:48;;::::4;::::0;8086:17;::::4;::::0;;8082:51:::4;;8112:21;;-1:-1:-1::0;;;8112:21:48::4;;;;;;;;;;;8082:51;8144:27;::::0;::::4;;::::0;;;:21:::4;:27;::::0;;;;;;;;:37;;-1:-1:-1;;;;;;8144:37:48::4;-1:-1:-1::0;;;;;8144:37:48;::::4;::::0;;::::4;::::0;;;8196:39;;1967:42:133;;;2025:18;;;2018:60;8196:39:48::4;::::0;1940:18:133;8196:39:48::4;;;;;;;8250:16:::0;;8246:556:::4;;8390:34;::::0;::::4;8364:23;8390:34:::0;;;:28:::4;:34;::::0;;;;8438:20;;-1:-1:-1;;;;;;8438:20:48::4;-1:-1:-1::0;;;;;8438:20:48;::::4;;::::0;;8489:27:::4;8504:12:::0;8489::::4;:27;:::i;:::-;8472:14;::::0;::::4;:44:::0;;;8535:61:::4;::::0;::::4;::::0;::::4;::::0;8567:4;;8573:6;;8535:61:::4;:::i;:::-;;;;;;;;8268:339;8246:556;;;8690:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;;8683:41;;-1:-1:-1;;;;;;8683:41:48::4;::::0;;;::::4;::::0;;;8743:48;::::4;::::0;::::4;::::0;8719:4;;8781:6;;8743:48:::4;:::i;:::-;;;;;;;;8246:556;7976:832;2265:1:::3;;1838::::2;1554::108::1;7763:1045:48::0;;;:::o;12477:148:76:-;1531:13:108;:11;:13::i;:::-;12574:44:76::1;12597:6;12605:3;12610:7;12574:22;:44::i;:::-;12477:148:::0;;;:::o;8373:709::-;8479:60;8501:9;8512:14;;;;:7;:14;:::i;:::-;8528:10;8479:21;:60::i;:::-;8474:107;;8548:33;;-1:-1:-1;;;8548:33:76;;;;;;;;;;;8474:107;-1:-1:-1;;;;;8611:27:76;;8592:16;8611:27;;;:16;:27;;;;;;;;8592:16;;8639:14;;;;:7;:14;:::i;:::-;8611:43;;;;;;;;;;;;;;;;-1:-1:-1;8611:43:76;;;8655:14;;;;8611:59;;;;;;;;-1:-1:-1;;;;;8611:59:76;;-1:-1:-1;8685:45:76;8655:7;8709:9;8611:59;8685:14;:45::i;:::-;8680:91;;8739:32;;-1:-1:-1;;;8739:32:76;;;;;;;;;;;8680:91;8786:42;8798:7;8807:9;8818;8786:11;:42::i;:::-;8781:85;;8837:29;;-1:-1:-1;;;8837:29:76;;;;;;;;;;;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:49:-;-1:-1:-1;;;;;8387:22:49;;8349:7;8387:22;;;:13;:22;;;;;;;;:31;;;;;;;;;;:42;;;;;;;;;8349:7;;8387:46;;-1:-1:-1;;;;;8387:42:49;;:46;:::i;:::-;8368:65;;8450:58;8464:9;8475:3;8480:7;8489;8498:9;8450:13;:58::i;:::-;8443:65;8256:259;-1:-1:-1;;;;;8256:259:49:o;7038:400:48:-;1531:13:108;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:48;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7155:7;;1765:25:::1;;1760:68;;1799:29;;-1:-1:-1::0;;;1799:29:48::1;;;;;;;;;;;1760:68;7174:7:::0;-1:-1:-1;;;;;1899:19:48;::::2;::::0;1895:146:::2;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:48::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::2;;2007:23;;-1:-1:-1::0;;;2007:23:48::2;;;;;;;;;;;1934:96;7200:7:::0;7209:4;-1:-1:-1;;;;;2711:19:48;::::3;::::0;2707:128:::3;;2751:38;::::0;-1:-1:-1;;;2751:38:48;;7841:10:133;7829:23;;2751:38:48::3;::::0;::::3;7811:42:133::0;-1:-1:-1;;;;;2751:32:48;::::3;::::0;::::3;::::0;7784:18:133;;2751:38:48::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:48::3;;;;;;;;;;;2746:78;7271:24:::4;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;-1:-1:-1;;;;;7271:35:48;;::::4;:24:::0;::::4;:35:::0;7267:69:::4;;7315:21;;-1:-1:-1::0;;;7315:21:48::4;;;;;;;;;;;7267:69;7346:24;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;;;;:34;;-1:-1:-1;;;;;;7346:34:48::4;-1:-1:-1::0;;;;;7346:34:48;::::4;::::0;;::::4;::::0;;;7395:36;;1967:42:133;;;2025:18;;;2018:60;7395:36:48::4;::::0;1940:18:133;7395:36:48::4;1795:289:133::0;3524:317:48;-1:-1:-1;;;;;3631:20:48;;;3602:11;3631:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;3670:165;;-1:-1:-1;3714:27:48;;;;;;;:18;:27;;;;;;-1:-1:-1;;;;;3714:27:48;;3755:69;;3787:37;;-1:-1:-1;;;3787:37:48;;;;;;;;;;;1552:180:75;1531:13:108;:11;:13::i;:::-;1642:11:75::1;-1:-1:-1::0;;;;;1630:23:75::1;:8;-1:-1:-1::0;;;;;1630:23:75::1;::::0;1626:63:::1;;1662:27;;-1:-1:-1::0;;;1662:27:75::1;;;;;;;;;;;1626:63;1699:26;1716:8;1699:16;:26::i;:::-;1552:180:::0;:::o;17931:209:76:-;-1:-1:-1;;;;;18073:27:76;;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:76;;;18117:14;;;;18073:59;;;;;;;;-1:-1:-1;;;;;18073:59:76;18041:11;:92::i;16136:148::-;16205:10;16195:21;;;;:9;:21;;;;;;;;;:33;;-1:-1:-1;;;;;;16195:33:76;-1:-1:-1;;;;;16195:33:76;;;;;;;;16243:34;;32692::133;;;32742:18;;;32735:43;16243:34:76;;32627:18:133;16243:34:76;;;;;;;;16136:148;:::o;9156:710:48:-;-1:-1:-1;;;;;1765:25:48;;;;;;:19;:25;;;;;;9295:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:48;;;;;;;;;;;1760:68;9314:4;-1:-1:-1;;;;;2114:19:48;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:48::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:48::1;;;;;;;;;;;2149:96;9337:4:::0;9343;-1:-1:-1;;;;;2711:19:48;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:48;;7841:10:133;7829:23;;2751:38:48::2;::::0;::::2;7811:42:133::0;-1:-1:-1;;;;;2751:32:48;::::2;::::0;::::2;::::0;7784:18:133;;2751:38:48::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:48::2;;;;;;;;;;;2746:78;1531:13:108::3;:11;:13::i;:::-;9373:7:48::4;9384:1;9373:12:::0;9369:424:::4;;9462:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;9455:41;;-1:-1:-1;;;;;;9455:41:48::4;::::0;;;::::4;::::0;9369:424:::4;;;9592:12;9581:7;:23;9577:61;;9613:25;;-1:-1:-1::0;;;9613:25:48::4;;;;;;;;;;;9577:61;9678:34;::::0;::::4;9652:23;9678:34:::0;;;:28:::4;:34;::::0;;;;9726:18;;-1:-1:-1;;;;;;9726:18:48::4;-1:-1:-1::0;;;;;9726:18:48;::::4;;::::0;;-1:-1:-1;9758:14:48::4;:24:::0;;;9369:424:::4;9807:52;9839:4;9845;9851:7;9807:52;;;;;;;;:::i;4016:359:49:-:0;4112:24;4130:5;4112:17;:24::i;:::-;4161:37;4174:5;4181:7;4190;4161:12;:37::i;:::-;:41;;4201:1;4161:41;:::i;:::-;-1:-1:-1;;;;;4151:51:49;:6;-1:-1:-1;;;;;4151:51:49;;4147:94;;4211:30;;-1:-1:-1;;;4211:30:49;;-1:-1:-1;;;;;8756:31:133;;4211:30:49;;;8738:50:133;8711:18;;4211:30:49;8594:200:133;4147:94:49;-1:-1:-1;;;;;4251:23:49;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;;;:41;;;;;;;;;:50;;-1:-1:-1;;4251:50:49;-1:-1:-1;;;;;4251:50:49;;;;;;;;4316:52;;33016:42:133;;;33074:18;;;33067:34;;;33117:18;;33110:60;;;;33201:2;33186:18;;33179:59;;;;4316:52:49;;33003:3:133;32988:19;4316:52:49;32789:455:133;3962:1043:76;-1:-1:-1;;;;;;;;;;;;;;;;;4141:20:76;;;;;;;;:::i;:::-;:47;;;;-1:-1:-1;4165:7:76;;-1:-1:-1;;;;;4165:7:76;:23;4141:47;4137:90;;;4197:30;;-1:-1:-1;;;4197:30:76;;;;;;;;;;;4137:90;-1:-1:-1;;;;;4295:22:76;;4280:12;4295:22;;;:13;:22;;;;;;;;4280:12;;4318:14;;;;:7;:14;:::i;:::-;4295:38;;;;;;;;;;;;;;;;-1:-1:-1;4295:38:76;;;4334:16;;;;4295:56;;;;;;;;:60;;-1:-1:-1;;;;;4295:56:76;;:60;:::i;:::-;4280:75;;4410:20;4433:300;;;;;;;;4461:5;-1:-1:-1;;;;;4433:300:76;;;;;4488:3;4433:300;;;;;;4513:7;-1:-1:-1;;;;;4433:300:76;;;;;4542:7;:14;;;;;;;;;;:::i;:::-;4433:300;;;;;;4580:7;:16;;;4433:300;;;;4616:68;4630:5;4637:3;4642:7;4651;:14;;;;;;;;;;:::i;:::-;4667:7;:16;;;4616:13;:68::i;:::-;4433:300;;;;4707:15;;;;:7;:15;:::i;:::-;4433:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4433:300:76;;;;-1:-1:-1;4410:323:76;;-1:-1:-1;4433:300:76;-1:-1:-1;4866:39:76;;-1:-1:-1;4881:7:76;4890:14;;;;:7;:14;:::i;4866:39::-;4843:62;-1:-1:-1;;;;;;4923:28:76;;;4952:6;4960:15;;;;:7;:15;:::i;:::-;4977:20;;;;;;;;:::i;:::-;4923:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6264:511:48:-;1531:13:108;:11;:13::i;:::-;6376:62:48::1;::::0;-1:-1:-1;;;6376:62:48;;-1:-1:-1;;;6376:62:48::1;::::0;::::1;35759:52:133::0;-1:-1:-1;;;;;6376:31:48;::::1;::::0;::::1;::::0;35732:18:133;;6376:62:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;-1:-1:-1::0;;;6447:32:48::1;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:48;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;-1:-1:-1::0;;;6568:29:48::1;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:48;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;-1:-1:-1;;6657:32:48::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6699:30:48::1;::::0;::::1;::::0;;6745:23;;8201:51:133;;;6745:23:48::1;::::0;8174:18:133;6745:23:48::1;8055:203:133::0;2543:215:108;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:108;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:108;;2700:1:::1;2672:31;::::0;::::1;8201:51:133::0;8174:18;;2672:31:108::1;8055:203:133::0;2623:91:108::1;2723:28;2742:8;2723:18;:28::i;6931:1169:49:-:0;-1:-1:-1;;;;;7160:27:49;;7108:18;7160:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;-1:-1:-1;;;;;7160:45:49;;;;7219:21;;;-1:-1:-1;7215:417:49;;;7388:1;7373:16;;7357:179;7396:6;-1:-1:-1;;;;;7391:11:49;:1;-1:-1:-1;;;;;7391:11:49;;7357:179;;7436:47;7452:9;7463:7;7472;7481:1;7436:15;:47::i;:::-;7431:86;;7492:25;;-1:-1:-1;;;7492:25:49;;-1:-1:-1;;;;;8756:31:133;;7492:25:49;;;8738:50:133;8711:18;;7492:25:49;8594:200:133;7431:86:49;7404:3;;7357:179;;;-1:-1:-1;;;;;;7553:27:49;;;;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;:54;;-1:-1:-1;;7553:54:49;-1:-1:-1;;;;;7553:54:49;;;;;7215:417;7771:19;;;;;;;;;;-1:-1:-1;;;;;7823:29:49;;7800:20;7823:29;;;:18;:29;;;;;;:38;;;;;;;;;;:47;;;;;;;;-1:-1:-1;;;;;7823:55:49;;;;;;;;;;;;7771:19;;-1:-1:-1;7892:26:49;;;7888:94;;7927:55;;-1:-1:-1;;;7927:55:49;;;;;23514:25:133;;;23555:18;;;23548:34;;;23487:18;;7927:55:49;23340:248:133;7888:94:49;-1:-1:-1;;;;;;;8038:29:49;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;-1:-1:-1;;;;;8038:55:49;;;;;;;;;;;;8031:62;;;;-1:-1:-1;6931:1169:49;:::o;17257:209:76:-;17373:10;-1:-1:-1;;;;;17373:19:76;;;;;;:53;;-1:-1:-1;;;;;;17410:16:76;;;;;;;:9;:16;;;;;;;17396:10;:30;;17373:53;17369:90;;;17435:24;;-1:-1:-1;;;17435:24:76;;;;;;;;;;;6698:1355;6804:23;;:::i;:::-;6829:7;;6911:52;6921:7;6930:14;;;;:7;:14;:::i;:::-;-1:-1:-1;;;;;1291:22:49;;;;1233:12;1291:22;;;:13;6946:16:76;1291:22:49;;;;;;;:31;;;;;;;;;;;;;6946:16:76;;;;1291:42:49;;;;;1289:44;;-1:-1:-1;;1289:44:49;;;-1:-1:-1;;;;;1289:44:49;;;;;;;;;;;;1144:206;6911:52:76;6890:73;;7018:20;7041:312;;;;;;;;7069:11;-1:-1:-1;;;;;7041:312:76;;;;;7102:3;7041:312;;;;;;7127:7;-1:-1:-1;;;;;7041:312:76;;;;;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:76;;;;-1:-1:-1;7018:335:76;;-1:-1:-1;7041:312:76;-1:-1:-1;7441:39:76;;-1:-1:-1;7456:7:76;7465:14;;;;:7;:14;:::i;7441:39::-;7418:62;-1:-1:-1;7553:23:76;;-1:-1:-1;;;;;7608:27:76;;;7649:6;7669:15;;;;:7;:15;:::i;:::-;7698:20;;;;;;;;:::i;:::-;7608:120;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7608:120:76;;;;;;;;;;;;:::i;:::-;7552:176;;-1:-1:-1;7552:176:76;-1:-1:-1;7909:56:76;7552:176;7935:15;;;;:7;:15;:::i;:::-;7952:12;7909:56;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;7984:47:76;;;;;;;;8001:11;;;;;7984:47;;-1:-1:-1;;;;;7984:47:76;;;;;;;;;;;;;;;-1:-1:-1;8033:12:76;-1:-1:-1;6698:1355:76;;;;;:::o;1353:136:75:-;1438:44;;-1:-1:-1;;;1438:44:75;;1476:4;1438:44;;;8201:51:133;1412:7:75;;1445:11;-1:-1:-1;;;;;1438:29:75;;;;8174:18:133;;1438:44:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1431:51;;1353:136;:::o;14358:669:76:-;14427:16;14459:13;14455:566;;;14506:7;;14499:40;;-1:-1:-1;;;14499:40:76;;14533:4;14499:40;;;8201:51:133;-1:-1:-1;;;;;14506:7:76;;;;14499:25;;8174:18:133;;14499:40:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14488:51;;14962:8;14974:1;14962:13;14958:52;;14984:26;;-1:-1:-1;;;14984:26:76;;;;;;;;;;;14958:52;14358:669;;;:::o;15288:488::-;15463:19;;:40;-1:-1:-1;15463:40:76;:86;;;15530:19;15507:9;:20;;;:42;15463:86;15459:311;;;15615:19;;15688:20;;;;15572:187;;-1:-1:-1;;;15572:187:76;;;;;37225:25:133;;;;37266:18;;;37259:34;;;37309:18;;;37302:34;37352:18;;;37345:34;;;37197:19;;15572:187:76;36994:391:133;12948:476:76;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;997:298:75:-;1168:9;:13;1164:43;;1190:17;;-1:-1:-1;;;1190:17:75;;;;;;;;;;;1164:43;1217:71;1227:11;1240:9;1251;1262;1273:14;1217:9;:71::i;:::-;997:298;;;;:::o;1796:162:108:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:108;735:10:116;1855:23:108;1851:101;;1901:40;;-1:-1:-1;;;1901:40:108;;735:10:116;1901:40:108;;;8201:51:133;8174:18;;1901:40:108;8055:203:133;2912:187:108;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:108;;;-1:-1:-1;;;;;;3020:17:108;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;16358:323:76:-;16505:4;16560:1;16540:17;-1:-1:-1;;;;;16540:21:76;;:134;;;-1:-1:-1;16616:58:76;;-1:-1:-1;;;;;;16616:58:76;;-1:-1:-1;;;;;16616:49:76;;;;;:58;;16666:7;;16616:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3076:260:49:-;-1:-1:-1;;;;;3252:29:49;;3229:4;3252:29;;;:18;:29;;;;;;;;:38;;;;;;;;;;:47;;;;;;;;-1:-1:-1;;;;;3252:55:49;;;;;;;;;;:77;;3076:260;;;;;;:::o;896:222:65:-;-1:-1:-1;;;;;987:22:65;;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:76:-;16888:4;-1:-1:-1;;;;;16923:33:76;;:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16923:33:76;;:199;;;-1:-1:-1;;;;;;17024:29:76;;336:1:49;17024:29:76;;;:18;:29;;;;;;;;336:1:49;;17054:14:76;;;;:7;:14;:::i;:::-;17024:45;;;;;;;;;;;;;;;:61;17070:7;:14;;;17024:61;;;;;;;;;;;:76;17086:7;:13;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17024:76:76;;;;;;;;;;;;-1:-1:-1;17024:76:76;;:98;;;16744:438;-1:-1:-1;;;;16744:438:76:o;1608:336:49:-;1784:12;1780:77;;1827:30;;-1:-1:-1;;;1827:30:49;;;;;;;;;;;1780:77;-1:-1:-1;;;;;1867:29:49;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;-1:-1:-1;;;;;1867:55:49;;;;;;;;:70;1608:336::o;169:288:64:-;339:7;392:6;400:7;-1:-1:-1;;;;;409:17:64;;375:74;;37924:3:133;37902:16;;;;-1:-1:-1;;;;;;37898:51:133;375:74:64;;;37886:64:133;37973:3;38022:16;;;-1:-1:-1;;;;;;38018:25:133;;;38005:11;;;37998:46;38060:12;;;38053:28;;;;38115:16;;;;38111:25;38097:12;;;38090:47;38153:12;;;38146:28;;;38190:12;;375:74:64;;;;;;;;;;;;365:85;;;;;;358:92;;169:288;;;;;;;:::o;12081:133:76:-;1531:13:108;:11;:13::i;:::-;12154:7:76::1;:18:::0;;-1:-1:-1;;;;;;12154:18:76::1;-1:-1:-1::0;;;;;12154:18:76;::::1;::::0;;::::1;::::0;;;12187:20:::1;::::0;8201:51:133;;;12187:20:76::1;::::0;8189:2:133;8174:18;12187:20:76::1;8055:203:133::0;696:194:65;-1:-1:-1;;;;;779:19:65;;775:58;;807:26;;-1:-1:-1;;;807:26:65;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:65;;871:3;876:6;843:27;:40::i;438:252::-;-1:-1:-1;;;;;506:19:65;;502:58;;534:26;;-1:-1:-1;;;534:26:65;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:65;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:65;;-1:-1:-1;;;;;13020:32:133;;649:34:65;;;13002:51:133;13069:18;;;13062:34;;;12975:18;;649:34:65;12828:274:133;1303:160:114;1412:43;;;-1:-1:-1;;;;;13020:32:133;;;1412:43:114;;;13002:51:133;13069:18;;;;13062:34;;;1412:43:114;;;;;;;;;;12975:18:133;;;;1412:43:114;;;;;;;;-1:-1:-1;;;;;1412:43:114;-1:-1:-1;;;1412:43:114;;;1385:71;;1405:5;;1412:43;-1:-1:-1;;4504:33:114;;1427:14;;1412:43;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:114;;-1:-1:-1;;;;;8219:32:133;;4631:40:114;;;8201:51:133;8174:18;;4631:40:114;8055:203:133;2705:151:115;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:115;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:115;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:115;;-1:-1:-1;;;;;8219:32:133;;5121:24:115;;;8201:51:133;8174:18;;5121:24:115;8055:203:133;5041:119:115;-1:-1:-1;5180:10:115;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:115;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:133:-;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:133;14:154;-1:-1:-1;14:154:133:o;173:173::-;241:20;;-1:-1:-1;;;;;290:31:133;;280:42;;270:70;;336:1;333;326:12;351:347;402:8;412:6;466:3;459:4;451:6;447:17;443:27;433:55;;484:1;481;474:12;433:55;-1:-1:-1;507:20:133;;-1:-1:-1;;;;;539:30:133;;536:50;;;582:1;579;572:12;536:50;619:4;611:6;607:17;595:29;;671:3;664:4;655:6;647;643:19;639:30;636:39;633:59;;;688:1;685;678:12;703:988;847:6;855;863;871;879;887;895;948:3;936:9;927:7;923:23;919:33;916:53;;;965:1;962;955:12;916:53;988;1033:7;1022:9;988:53;:::i;:::-;978:63;;1060:38;1094:2;1083:9;1079:18;1060:38;:::i;:::-;1050:48;;1145:3;1134:9;1130:19;1117:33;1107:43;;1201:3;1190:9;1186:19;1173:33;-1:-1:-1;;;;;1266:2:133;1258:6;1255:14;1252:34;;;1282:1;1279;1272:12;1252:34;1321:58;1371:7;1362:6;1351:9;1347:22;1321:58;:::i;:::-;1398:8;;-1:-1:-1;1295:84:133;-1:-1:-1;1486:3:133;1471:19;;1458:33;;-1:-1:-1;1503:16:133;;;1500:36;;;1532:1;1529;1522:12;1500:36;;1571:60;1623:7;1612:8;1601:9;1597:24;1571:60;:::i;:::-;703:988;;;;-1:-1:-1;703:988:133;;-1:-1:-1;703:988:133;;;;1545:86;;-1:-1:-1;;;703:988:133:o;2089:163::-;2156:20;;2216:10;2205:22;;2195:33;;2185:61;;2242:1;2239;2232:12;2257:401;2342:6;2350;2358;2366;2419:3;2407:9;2398:7;2394:23;2390:33;2387:53;;;2436:1;2433;2426:12;2387:53;2459:29;2478:9;2459:29;:::i;:::-;2449:39;;2507:37;2540:2;2529:9;2525:18;2507:37;:::i;:::-;2497:47;;2563:38;2597:2;2586:9;2582:18;2563:38;:::i;:::-;2257:401;;;;-1:-1:-1;2553:48:133;;2648:2;2633:18;2620:32;;-1:-1:-1;;2257:401:133:o;2663:470::-;2767:6;2775;2828:2;2816:9;2807:7;2803:23;2799:32;2796:52;;;2844:1;2841;2834:12;2796:52;2884:9;2871:23;-1:-1:-1;;;;;2909:6:133;2906:30;2903:50;;;2949:1;2946;2939:12;2903:50;2972:22;;3028:3;3010:16;;;3006:26;3003:46;;;3045:1;3042;3035:12;3003:46;3068:2;-1:-1:-1;3089:38:133;3123:2;3108:18;;3089:38;:::i;:::-;3079:48;;2663:470;;;;;:::o;3296:471::-;3458:4;3500:3;3489:9;3485:19;3477:27;;3537:6;3531:13;3520:9;3513:32;-1:-1:-1;;;;;3605:4:133;3597:6;3593:17;3587:24;3583:49;3576:4;3565:9;3561:20;3554:79;3680:4;3672:6;3668:17;3662:24;3695:66;3755:4;3744:9;3740:20;3726:12;3216;;3204:25;;3278:4;3267:16;;;3261:23;3245:14;;3238:47;3138:153;3695:66;;3296:471;;;;:::o;3772:679::-;3896:6;3904;3912;3920;3928;3981:3;3969:9;3960:7;3956:23;3952:33;3949:53;;;3998:1;3995;3988:12;3949:53;4021:29;4040:9;4021:29;:::i;:::-;4011:39;;4069:62;4123:7;4118:2;4107:9;4103:18;4069:62;:::i;:::-;4059:72;;4178:3;4167:9;4163:19;4150:33;4140:43;;4234:3;4223:9;4219:19;4206:33;-1:-1:-1;;;;;4254:6:133;4251:30;4248:50;;;4294:1;4291;4284:12;4248:50;4333:58;4383:7;4374:6;4363:9;4359:22;4333:58;:::i;:::-;3772:679;;;;-1:-1:-1;3772:679:133;;-1:-1:-1;4410:8:133;;4307:84;3772:679;-1:-1:-1;;;3772:679:133:o;4456:405::-;4540:6;4548;4556;4564;4617:3;4605:9;4596:7;4592:23;4588:33;4585:53;;;4634:1;4631;4624:12;4585:53;4657:29;4676:9;4657:29;:::i;:::-;4647:39;;4705:38;4739:2;4728:9;4724:18;4705:38;:::i;:::-;4695:48;;4762:37;4795:2;4784:9;4780:18;4762:37;:::i;:::-;4752:47;;4818:37;4851:2;4840:9;4836:18;4818:37;:::i;:::-;4808:47;;4456:405;;;;;;;:::o;4866:250::-;4951:1;4961:113;4975:6;4972:1;4969:13;4961:113;;;5051:11;;;5045:18;5032:11;;;5025:39;4997:2;4990:10;4961:113;;;-1:-1:-1;;5108:1:133;5090:16;;5083:27;4866:250::o;5121:270::-;5162:3;5200:5;5194:12;5227:6;5222:3;5215:19;5243:76;5312:6;5305:4;5300:3;5296:14;5289:4;5282:5;5278:16;5243:76;:::i;:::-;5373:2;5352:15;-1:-1:-1;;5348:29:133;5339:39;;;;5380:4;5335:50;;5121:270;-1:-1:-1;;5121:270:133:o;5396:217::-;5543:2;5532:9;5525:21;5506:4;5563:44;5603:2;5592:9;5588:18;5580:6;5563:44;:::i;5800:171::-;5867:20;;-1:-1:-1;;;;;5916:30:133;;5906:41;;5896:69;;5961:1;5958;5951:12;5976:468;6069:6;6077;6085;6093;6101;6154:3;6142:9;6133:7;6129:23;6125:33;6122:53;;;6171:1;6168;6161:12;6122:53;6194:29;6213:9;6194:29;:::i;:::-;6184:39;;6242:37;6275:2;6264:9;6260:18;6242:37;:::i;:::-;6232:47;;6326:2;6315:9;6311:18;6298:32;6288:42;;6349:37;6382:2;6371:9;6367:18;6349:37;:::i;:::-;5976:468;;;;-1:-1:-1;5976:468:133;;6433:3;6418:19;6405:33;;5976:468;-1:-1:-1;;5976:468:133:o;6449:159::-;6516:20;;6576:6;6565:18;;6555:29;;6545:57;;6598:1;6595;6588:12;6613:401;6698:6;6706;6714;6722;6775:3;6763:9;6754:7;6750:23;6746:33;6743:53;;;6792:1;6789;6782:12;6743:53;6815:29;6834:9;6815:29;:::i;:::-;6805:39;;6863:38;6897:2;6886:9;6882:18;6863:38;:::i;:::-;6853:48;;6948:2;6937:9;6933:18;6920:32;6910:42;;6971:37;7004:2;6993:9;6989:18;6971:37;:::i;7019:258::-;7086:6;7094;7147:2;7135:9;7126:7;7122:23;7118:32;7115:52;;;7163:1;7160;7153:12;7115:52;7186:29;7205:9;7186:29;:::i;:::-;7176:39;;7234:37;7267:2;7256:9;7252:18;7234:37;:::i;7864:186::-;7923:6;7976:2;7964:9;7955:7;7951:23;7947:32;7944:52;;;7992:1;7989;7982:12;7944:52;8015:29;8034:9;8015:29;:::i;8263:326::-;8339:6;8347;8355;8408:2;8396:9;8387:7;8383:23;8379:32;8376:52;;;8424:1;8421;8414:12;8376:52;8447:29;8466:9;8447:29;:::i;:::-;8437:39;;8495:37;8528:2;8517:9;8513:18;8495:37;:::i;:::-;8485:47;;8579:2;8568:9;8564:18;8551:32;8541:42;;8263:326;;;;;:::o;8799:184::-;8857:6;8910:2;8898:9;8889:7;8885:23;8881:32;8878:52;;;8926:1;8923;8916:12;8878:52;8949:28;8967:9;8949:28;:::i;9180:1435::-;9343:6;9351;9359;9367;9375;9383;9391;9399;9407;9415;9423:7;9432;9486:3;9474:9;9465:7;9461:23;9457:33;9454:53;;;9503:1;9500;9493:12;9454:53;9526:29;9545:9;9526:29;:::i;:::-;9516:39;;9574:38;9608:2;9597:9;9593:18;9574:38;:::i;:::-;9564:48;;9659:2;9648:9;9644:18;9631:32;9621:42;;9682:37;9715:2;9704:9;9700:18;9682:37;:::i;:::-;9672:47;;9766:3;9755:9;9751:19;9738:33;9728:43;;9818:3;9807:9;9803:19;9790:33;9780:43;;-1:-1:-1;;;;;9866:3:133;9855:9;9851:19;9838:33;9835:57;9832:77;;;9905:1;9902;9895:12;9832:77;9944:85;10021:7;10013:3;10002:9;9998:19;9985:33;9974:9;9970:49;9944:85;:::i;:::-;10048:8;;-1:-1:-1;10075:8:133;-1:-1:-1;;;;;;10126:3:133;10111:19;;10098:33;10095:57;10092:77;;;10165:1;10162;10155:12;10092:77;10204:85;10281:7;10273:3;10262:9;10258:19;10245:33;10234:9;10230:49;10204:85;:::i;:::-;10308:8;;-1:-1:-1;10335:8:133;-1:-1:-1;;;;;;10386:3:133;10371:19;;10358:33;10355:57;10352:77;;;10425:1;10422;10415:12;10352:77;10466:85;10543:7;10535:3;10524:9;10520:19;10507:33;10496:9;10492:49;10466:85;:::i;:::-;10571:9;10560:20;;10600:9;10589:20;;;;9180:1435;;;;;;;;;;;;;;:::o;10620:1400::-;10802:6;10810;10818;10826;10834;10842;10850;10858;10866;10874;10882:7;10936:3;10924:9;10915:7;10911:23;10907:33;10904:53;;;10953:1;10950;10943:12;10904:53;10976;11021:7;11010:9;10976:53;:::i;:::-;10966:63;;11048:38;11082:2;11071:9;11067:18;11048:38;:::i;:::-;11038:48;;11133:3;11122:9;11118:19;11105:33;11095:43;;11185:3;11174:9;11170:19;11157:33;11147:43;;11237:3;11226:9;11222:19;11209:33;11199:43;;-1:-1:-1;;;;;11329:2:133;11322:3;11311:9;11307:19;11294:33;11291:41;11288:61;;;11345:1;11342;11335:12;11288:61;11384:85;11461:7;11453:3;11442:9;11438:19;11425:33;11414:9;11410:49;11384:85;:::i;:::-;11488:8;;-1:-1:-1;11515:8:133;-1:-1:-1;11566:3:133;11551:19;;11538:33;11535:41;-1:-1:-1;11532:61:133;;;11589:1;11586;11579:12;11532:61;11628:85;11705:7;11697:3;11686:9;11682:19;11669:33;11658:9;11654:49;11628:85;:::i;:::-;11732:8;;-1:-1:-1;11759:8:133;-1:-1:-1;11810:3:133;11795:19;;11782:33;11779:41;-1:-1:-1;11776:61:133;;;11833:1;11830;11823:12;11776:61;;11873:85;11950:7;11942:3;11931:9;11927:19;11914:33;11903:9;11899:49;11873:85;:::i;:::-;11977:8;11967:18;;12005:9;11994:20;;;;10620:1400;;;;;;;;;;;;;;:::o;12025:798::-;12164:6;12172;12180;12188;12241:2;12229:9;12220:7;12216:23;12212:32;12209:52;;;12257:1;12254;12247:12;12209:52;12280:29;12299:9;12280:29;:::i;:::-;12270:39;;12328:38;12362:2;12351:9;12347:18;12328:38;:::i;:::-;12318:48;;12417:2;12406:9;12402:18;12389:32;-1:-1:-1;;;;;12481:2:133;12473:6;12470:14;12467:34;;;12497:1;12494;12487:12;12467:34;12535:6;12524:9;12520:22;12510:32;;12580:7;12573:4;12569:2;12565:13;12561:27;12551:55;;12602:1;12599;12592:12;12551:55;12642:2;12629:16;12668:2;12660:6;12657:14;12654:34;;;12684:1;12681;12674:12;12654:34;12737:7;12732:2;12722:6;12719:1;12715:14;12711:2;12707:23;12703:32;12700:45;12697:65;;;12758:1;12755;12748:12;12697:65;12025:798;;;;-1:-1:-1;;12789:2:133;12781:11;;-1:-1:-1;;;12025:798:133:o;13107:624::-;13203:6;13211;13219;13227;13235;13288:3;13276:9;13267:7;13263:23;13259:33;13256:53;;;13305:1;13302;13295:12;13256:53;13328:29;13347:9;13328:29;:::i;:::-;13318:39;;13404:2;13393:9;13389:18;13376:32;13366:42;;13427:37;13460:2;13449:9;13445:18;13427:37;:::i;:::-;13417:47;;13515:2;13504:9;13500:18;13487:32;-1:-1:-1;;;;;13534:6:133;13531:30;13528:50;;;13574:1;13571;13564:12;13736:312;13831:6;13839;13892:3;13880:9;13871:7;13867:23;13863:33;13860:53;;;13909:1;13906;13899:12;13860:53;13932;13977:7;13966:9;13932:53;:::i;:::-;13922:63;;14004:38;14038:2;14027:9;14023:18;14004:38;:::i;14053:658::-;14224:2;14276:21;;;14346:13;;14249:18;;;14368:22;;;14195:4;;14224:2;14447:15;;;;14421:2;14406:18;;;14195:4;14490:195;14504:6;14501:1;14498:13;14490:195;;;14569:13;;-1:-1:-1;;;;;14565:39:133;14553:52;;14660:15;;;;14625:12;;;;14601:1;14519:9;14490:195;;;-1:-1:-1;14702:3:133;;14053:658;-1:-1:-1;;;;;;14053:658:133:o;14716:1008::-;14841:6;14849;14857;14865;14873;14881;14889;14897;14950:3;14938:9;14929:7;14925:23;14921:33;14918:53;;;14967:1;14964;14957:12;14918:53;14990:29;15009:9;14990:29;:::i;:::-;14980:39;;15038:38;15072:2;15061:9;15057:18;15038:38;:::i;:::-;15028:48;;15123:2;15112:9;15108:18;15095:32;15085:42;;15146:37;15179:2;15168:9;15164:18;15146:37;:::i;:::-;15136:47;;15234:3;15223:9;15219:19;15206:33;-1:-1:-1;;;;;15299:2:133;15291:6;15288:14;15285:34;;;15315:1;15312;15305:12;15285:34;15354:58;15404:7;15395:6;15384:9;15380:22;15354:58;:::i;:::-;15431:8;;-1:-1:-1;15328:84:133;-1:-1:-1;15519:3:133;15504:19;;15491:33;;-1:-1:-1;15536:16:133;;;15533:36;;;15565:1;15562;15555:12;15533:36;;15604:60;15656:7;15645:8;15634:9;15630:24;15604:60;:::i;:::-;14716:1008;;;;-1:-1:-1;14716:1008:133;;-1:-1:-1;14716:1008:133;;;;;;15683:8;-1:-1:-1;;;14716:1008:133:o;15729:332::-;15805:6;15813;15821;15874:2;15862:9;15853:7;15849:23;15845:32;15842:52;;;15890:1;15887;15880:12;15842:52;15913:29;15932:9;15913:29;:::i;:::-;15903:39;;15961:37;15994:2;15983:9;15979:18;15961:37;:::i;:::-;15951:47;;16017:38;16051:2;16040:9;16036:18;16017:38;:::i;:::-;16007:48;;15729:332;;;;;:::o;16066:326::-;16142:6;16150;16158;16211:2;16199:9;16190:7;16186:23;16182:32;16179:52;;;16227:1;16224;16217:12;16179:52;16250:28;16268:9;16250:28;:::i;:::-;16240:38;;16297;16331:2;16320:9;16316:18;16297:38;:::i;16397:328::-;16474:6;16482;16490;16543:2;16531:9;16522:7;16518:23;16514:32;16511:52;;;16559:1;16556;16549:12;16511:52;16582:29;16601:9;16582:29;:::i;16730:381::-;16834:6;16842;16850;16903:3;16891:9;16882:7;16878:23;16874:33;16871:53;;;16920:1;16917;16910:12;16871:53;16943;16988:7;16977:9;16943:53;:::i;:::-;16933:63;;17015:38;17049:2;17038:9;17034:18;17015:38;:::i;:::-;17005:48;;17100:3;17089:9;17085:19;17072:33;17062:43;;16730:381;;;;;:::o;17116:258::-;17183:6;17191;17244:2;17232:9;17223:7;17219:23;17215:32;17212:52;;;17260:1;17257;17250:12;17212:52;17283:28;17301:9;17283:28;:::i;17379:399::-;17463:6;17471;17479;17487;17540:3;17528:9;17519:7;17515:23;17511:33;17508:53;;;17557:1;17554;17547:12;17508:53;17580:29;17599:9;17580:29;:::i;:::-;17570:39;;17628:37;17661:2;17650:9;17646:18;17628:37;:::i;:::-;17618:47;;17712:2;17701:9;17697:18;17684:32;17674:42;;17735:37;17768:2;17757:9;17753:18;17735:37;:::i;17783:263::-;3216:12;;3204:25;;3278:4;3267:16;;;3261:23;3245:14;;;3238:47;17979:2;17964:18;;17991:49;3138:153;18051:184;18109:6;18162:2;18150:9;18141:7;18137:23;18133:32;18130:52;;;18178:1;18175;18168:12;18130:52;18201:28;18219:9;18201:28;:::i;18240:345::-;18437:6;18432:3;18425:19;18488:6;18480;18475:2;18470:3;18466:12;18453:42;18407:3;18518:16;;18536:2;18514:25;18548:13;;;18514:25;18240:345;-1:-1:-1;;18240:345:133:o;18590:285::-;18701:10;18675:24;18693:5;18675:24;:::i;:::-;18671:41;18666:3;18659:54;18769:4;18762:5;18758:16;18745:30;18738:4;18733:3;18729:14;18722:54;-1:-1:-1;;;;;18812:35:133;18841:4;18834:5;18830:16;18812:35;:::i;:::-;18808:60;18801:4;18796:3;18792:14;18785:84;;;18590:285::o;18880:266::-;18968:6;18963:3;18956:19;19020:6;19013:5;19006:4;19001:3;18997:14;18984:43;-1:-1:-1;19072:1:133;19047:16;;;19065:4;19043:27;;;19036:38;;;;19128:2;19107:15;;;-1:-1:-1;;19103:29:133;19094:39;;;19090:50;;18880:266::o;19151:754::-;19482:52;19524:9;19516:6;19482:52;:::i;:::-;19570:6;19565:2;19554:9;19550:18;19543:34;19614:3;19608;19597:9;19593:19;19586:32;19463:4;19641:62;19698:3;19687:9;19683:19;19675:6;19667;19641:62;:::i;:::-;-1:-1:-1;;;;;19740:32:133;;19760:3;19719:19;;19712:61;19810:22;;;19804:3;19789:19;;19782:51;19850:49;19814:6;19884;19876;19850:49;:::i;:::-;19842:57;19151:754;-1:-1:-1;;;;;;;;;;19151:754:133:o;19910:354::-;20124:3;20109:19;;20137:52;20113:9;20171:6;20137:52;:::i;:::-;-1:-1:-1;;;;;20225:32:133;;;;20220:2;20205:18;;;;20198:60;19910:354;;-1:-1:-1;19910:354:133:o;20269:127::-;20330:10;20325:3;20321:20;20318:1;20311:31;20361:4;20358:1;20351:15;20385:4;20382:1;20375:15;20401:280;20491:6;20544:2;20532:9;20523:7;20519:23;20515:32;20512:52;;;20560:1;20557;20550:12;20512:52;20592:9;20586:16;20631:1;20624:5;20621:12;20611:40;;20647:1;20644;20637:12;20686:118;20772:5;20765:13;20758:21;20751:5;20748:32;20738:60;;20794:1;20791;20784:12;20809:245;20876:6;20929:2;20917:9;20908:7;20904:23;20900:32;20897:52;;;20945:1;20942;20935:12;20897:52;20977:9;20971:16;20996:28;21018:5;20996:28;:::i;21059:462::-;-1:-1:-1;;;;;21344:15:133;;;21326:34;;21408:10;21396:23;;;;21391:2;21376:18;;21369:51;21456:15;;21451:2;21436:18;;21429:43;21503:2;21488:18;;21481:34;;;;21275:3;21260:19;;21059:462::o;21526:241::-;21582:6;21635:2;21623:9;21614:7;21610:23;21606:32;21603:52;;;21651:1;21648;21641:12;21603:52;21690:9;21677:23;21709:28;21731:5;21709:28;:::i;22165:127::-;22226:10;22221:3;22217:20;22214:1;22207:31;22257:4;22254:1;22247:15;22281:4;22278:1;22271:15;22297:698;22350:5;22403:3;22396:4;22388:6;22384:17;22380:27;22370:55;;22421:1;22418;22411:12;22370:55;22450:6;22444:13;-1:-1:-1;;;;;22513:2:133;22509;22506:10;22503:36;;;22519:18;;:::i;:::-;22594:2;22588:9;22562:2;22648:13;;-1:-1:-1;;22644:22:133;;;22668:2;22640:31;22636:40;22624:53;;;22692:18;;;22712:22;;;22689:46;22686:72;;;22738:18;;:::i;:::-;22778:10;22774:2;22767:22;22813:2;22805:6;22798:18;22859:3;22852:4;22847:2;22839:6;22835:15;22831:26;22828:35;22825:55;;;22876:1;22873;22866:12;22825:55;22889:76;22962:2;22955:4;22947:6;22943:17;22936:4;22928:6;22924:17;22889:76;:::i;23000:335::-;23079:6;23132:2;23120:9;23111:7;23107:23;23103:32;23100:52;;;23148:1;23145;23138:12;23100:52;23181:9;23175:16;-1:-1:-1;;;;;23206:6:133;23203:30;23200:50;;;23246:1;23243;23236:12;23200:50;23269:60;23321:7;23312:6;23301:9;23297:22;23269:60;:::i;23593:527::-;23878:10;23866:23;;;;23848:42;;23921:2;23906:18;;23899:34;;;;-1:-1:-1;;;;;23969:32:133;;;;23964:2;23949:18;;23942:60;-1:-1:-1;;;;;24038:31:133;24033:2;24018:18;;24011:59;24101:3;24086:19;;24079:35;23835:3;23820:19;;23593:527::o;24125:918::-;24504:6;24493:9;24486:25;24559:6;24551;24547:19;24542:2;24531:9;24527:18;24520:47;24603:6;24598:2;24587:9;24583:18;24576:34;24646:6;24641:2;24630:9;24626:18;24619:34;24690:3;24684;24673:9;24669:19;24662:32;24467:4;24717:62;24774:3;24763:9;24759:19;24751:6;24743;24717:62;:::i;:::-;24828:9;24820:6;24816:22;24810:3;24799:9;24795:19;24788:51;24862:49;24904:6;24896;24888;24862:49;:::i;:::-;24848:63;;24960:9;24952:6;24948:22;24942:3;24931:9;24927:19;24920:51;24988:49;25030:6;25022;25014;24988:49;:::i;:::-;24980:57;24125:918;-1:-1:-1;;;;;;;;;;;;;24125:918:133:o;25443:127::-;25504:10;25499:3;25495:20;25492:1;25485:31;25535:4;25532:1;25525:15;25559:4;25556:1;25549:15;25575:125;25640:9;;;25661:10;;;25658:36;;;25674:18;;:::i;26180:1008::-;26576:4;26605:3;26617:52;26659:9;26651:6;26617:52;:::i;:::-;26705:6;26700:2;26689:9;26685:18;26678:34;26749:6;26743:3;26732:9;26728:19;26721:35;26793:6;26787:3;26776:9;26772:19;26765:35;26837:2;26831:3;26820:9;26816:19;26809:31;26863:61;26920:2;26909:9;26905:18;26897:6;26889;26863:61;:::i;:::-;26849:75;;26973:9;26965:6;26961:22;26955:3;26944:9;26940:19;26933:51;27007:49;27049:6;27041;27033;27007:49;:::i;:::-;26993:63;;27105:9;27097:6;27093:22;27087:3;27076:9;27072:19;27065:51;27133:49;27175:6;27167;27159;27133:49;:::i;27193:1878::-;-1:-1:-1;;;;;27540:32:133;;27522:51;;27470:2;27592;27610:18;;;27603:30;;;27495:18;;;27668:22;;;27441:4;;27470:2;27709;;27727:18;;;27791:1;27787:14;;;27772:30;;27768:39;;27830:6;27441:4;27864:1178;27878:6;27875:1;27872:13;27864:1178;;;27943:22;;;-1:-1:-1;;27939:36:133;27927:49;;28015:20;;28090:14;28086:27;;;-1:-1:-1;;28082:41:133;28058:66;;28048:94;;28138:1;28135;28128:12;28048:94;28168:31;;28222:10;;28264:24;28168:31;28264:24;:::i;:::-;28260:33;28252:6;28245:49;28370:2;28335:33;28364:2;28357:5;28353:14;28335:33;:::i;:::-;28331:42;28326:2;28318:6;28314:15;28307:67;;28439:2;28432:5;28428:14;28415:28;28528:2;28524:7;28516:5;28500:14;28496:26;28492:40;28470:20;28466:67;28456:95;;28547:1;28544;28537:12;28456:95;28579:32;28687:16;;;;28638:21;-1:-1:-1;;;;;28719:30:133;;28716:50;;;28762:1;28759;28752:12;28716:50;28815:6;28799:14;28795:27;28786:7;28782:41;28779:61;;;28836:1;28833;28826:12;28779:61;28877:2;28872;28864:6;28860:15;28853:27;28903:59;28958:2;28950:6;28946:15;28938:6;28929:7;28903:59;:::i;:::-;29020:12;;;;28893:69;-1:-1:-1;;;28985:15:133;;;;27900:1;27893:9;27864:1178;;;-1:-1:-1;29059:6:133;;27193:1878;-1:-1:-1;;;;;;;;;;27193:1878:133:o;29076:271::-;29259:6;29251;29246:3;29233:33;29215:3;29285:16;;29310:13;;;29285:16;29076:271;-1:-1:-1;29076:271:133:o;29352:598::-;-1:-1:-1;;;;;29657:15:133;;;29639:34;;29709:15;;29704:2;29689:18;;29682:43;29756:2;29741:18;;29734:34;;;29816:6;29804:19;;29799:2;29784:18;;29777:47;29619:3;29855;29840:19;;29833:32;;;29582:4;;29882:62;;29924:19;;29916:6;29908;29882:62;:::i;:::-;29874:70;29352:598;-1:-1:-1;;;;;;;;29352:598:133:o;29955:703::-;30215:4;30261:1;30257;30252:3;30248:11;30244:19;30302:2;30294:6;30290:15;30279:9;30272:34;30342:6;30337:2;30326:9;30322:18;30315:34;30385:3;30380:2;30369:9;30365:18;30358:31;30412:62;30469:3;30458:9;30454:19;30446:6;30438;30412:62;:::i;:::-;30522:2;30514:6;30510:15;30505:2;30494:9;30490:18;30483:43;30575:9;30567:6;30563:22;30557:3;30546:9;30542:19;30535:51;30603:49;30645:6;30637;30629;30603:49;:::i;:::-;30595:57;29955:703;-1:-1:-1;;;;;;;;;;;29955:703:133:o;31126:360::-;31356:10;31344:23;;;;31326:42;;-1:-1:-1;;;;;31404:32:133;;;;31399:2;31384:18;;31377:60;31468:2;31453:18;;31446:34;31314:2;31299:18;;31126:360::o;31864:426::-;32106:3;32091:19;;32119:52;32095:9;32153:6;32119:52;:::i;:::-;-1:-1:-1;;;;;32207:32:133;;;;32202:2;32187:18;;32180:60;32271:3;32256:19;32249:35;31864:426;;-1:-1:-1;31864:426:133:o;32295:180::-;-1:-1:-1;;;;;32400:10:133;;;32412;;;32396:27;;32435:11;;;32432:37;;;32449:18;;:::i;33249:521::-;33326:4;33332:6;33392:11;33379:25;33486:2;33482:7;33471:8;33455:14;33451:29;33447:43;33427:18;33423:68;33413:96;;33505:1;33502;33495:12;33413:96;33532:33;;33584:20;;;-1:-1:-1;;;;;;33616:30:133;;33613:50;;;33659:1;33656;33649:12;33613:50;33692:4;33680:17;;-1:-1:-1;33723:14:133;33719:27;;;33709:38;;33706:58;;;33760:1;33757;33750:12;33775:1087;34032:2;34014:21;;;34075:13;;-1:-1:-1;;;;;34071:38:133;34051:18;;;34044:66;34169:4;34157:17;;34151:24;34177:10;34147:41;34141:3;34126:19;;34119:70;34248:4;34236:17;;34230:24;-1:-1:-1;;;;;34226:50:133;34264:3;34205:19;;34198:79;34312:15;;34306:22;-1:-1:-1;;34337:52:133;34384:3;34369:19;;34306:22;1772:10;1761:22;1749:35;;1696:94;34337:52;;34445:3;34437:6;34433:16;34427:23;34420:4;34409:9;34405:20;34398:53;34506:3;34498:6;34494:16;34488:23;34482:3;34471:9;34467:19;34460:52;34561:3;34553:6;34549:16;34543:23;34603:4;34597:3;34586:9;34582:19;34575:33;34628:53;34676:3;34665:9;34661:19;34645:14;34628:53;:::i;:::-;34617:64;;34728:9;34723:3;34719:19;34712:4;34701:9;34697:20;34690:49;34756:46;34798:3;34790:6;34782;34756:46;:::i;:::-;34748:54;;;34811:45;34850:4;34839:9;34835:20;34827:6;7352:13;7345:21;7333:34;;7282:91;34867:478;34937:5;34985:4;34973:9;34968:3;34964:19;34960:30;34957:50;;;35003:1;35000;34993:12;34957:50;35036:4;35030:11;35080:4;35072:6;35068:17;35151:6;35139:10;35136:22;-1:-1:-1;;;;;35103:10:133;35100:34;35097:62;35094:88;;;35162:18;;:::i;:::-;35198:4;35191:24;35263:16;;35248:32;;35334:2;35319:18;;;35313:25;35296:15;;;35289:50;;;;-1:-1:-1;35233:6:133;34867:478;-1:-1:-1;34867:478:133:o;35350:260::-;35451:6;35504:2;35492:9;35483:7;35479:23;35475:32;35472:52;;;35520:1;35517;35510:12;35472:52;35543:61;35596:7;35585:9;35543:61;:::i;35822:472::-;35941:6;35949;36002:2;35990:9;35981:7;35977:23;35973:32;35970:52;;;36018:1;36015;36008:12;35970:52;36041:61;36094:7;36083:9;36041:61;:::i;:::-;36031:71;;36146:2;36135:9;36131:18;36125:25;-1:-1:-1;;;;;36165:6:133;36162:30;36159:50;;;36205:1;36202;36195:12;36159:50;36228:60;36280:7;36271:6;36260:9;36256:22;36228:60;:::i;:::-;36218:70;;;35822:472;;;;;:::o;36299:501::-;36530:2;36519:9;36512:21;36493:4;36556:44;36596:2;36585:9;36581:18;36573:6;36556:44;:::i;:::-;36648:9;36640:6;36636:22;36631:2;36620:9;36616:18;36609:50;36676:49;36718:6;36710;36702;36676:49;:::i;:::-;36668:57;;;36790:1;36786;36781:3;36777:11;36773:19;36765:6;36761:32;36756:2;36745:9;36741:18;36734:60;36299:501;;;;;;;:::o;36805:184::-;36875:6;36928:2;36916:9;36907:7;36903:23;36899:32;36896:52;;;36944:1;36941;36934:12;36896:52;-1:-1:-1;36967:16:133;;36805:184;-1:-1:-1;36805:184:133:o;37390:256::-;37576:2;37561:18;;37588:52;37565:9;37622:6;37588:52;:::i;38423:287::-;38552:3;38590:6;38584:13;38606:66;38665:6;38660:3;38653:4;38645:6;38641:17;38606:66;:::i;:::-;38688:16;;;;;38423:287;-1:-1:-1;;38423:287:133:o","linkReferences":{},"immutableReferences":{"10812":[{"start":1301,"length":32},{"start":9978,"length":32},{"start":12002,"length":32},{"start":12104,"length":32},{"start":13477,"length":32},{"start":13579,"length":32}],"19010":[{"start":2847,"length":32},{"start":10691,"length":32},{"start":14022,"length":32},{"start":14451,"length":32}],"9831":[{"start":1878,"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\"},{\"internalType\":\"address\",\"name\":\"_altToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"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_InvalidArgument\",\"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_OnlyAltToken\",\"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\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"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 ERC20 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\"}},\"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\":\"check if lzToken is set to the same 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\"}}},\"stateVariables\":{\"nativeErc20\":{\"details\":\"the altFeeToken is used for fees when the native token has no valueit is immutable for gas saving. only 1 endpoint for such chains\"}},\"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/EndpointV2AltMock.sol\":\"EndpointV2AltMock\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0xfaca7205d4211ee9208a7e59171e2301731f3d2a20c49b4a839821871f5fdd49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f254bc60ac26687b5320a43a556e30777b0745abf7cd64d5f4720d9b1d1f7fdf\",\"dweb:/ipfs/QmRSJEZVgxaC3L2DdE6s8P5qkYfM3V5JMeseeFJJqGR4xz\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2AltMock.sol\":{\"keccak256\":\"0x026b2f530b336ee237f37dde6f617acefbbf74d933d2a80da4216882f78be1a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://097a9fdd5a321e6e8455a1db00f2abda6e810c31ce47d1bced9e574be262a28b\",\"dweb:/ipfs/Qme17zGk93k5BghCWFXqeqppVahH4dHuw7U76K4EcJxsY1\"]},\"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/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"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"},{"internalType":"address","name":"_altToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"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_InvalidArgument"},{"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_OnlyAltToken"},{"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"}},"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":"check if lzToken is set to the same address"},"setReceiveLibrary(address,uint32,address,uint256)":{"details":"Oapp setting the receiveLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.authenticated by the Oapp","params":{"_gracePeriod":"the number of blocks from now until oldLib expires"}},"setReceiveLibraryTimeout(address,uint32,address,uint256)":{"details":"Oapp setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2)  force remove the current configuration (3) change to a new configuration","params":{"_expiry":"the block number when lib expires"}},"setSendLibrary(address,uint32,address)":{"details":"Oapp setting the sendLibrarymust be a registered library (including blockLibrary) with the eid support enabledauthenticated by the Oapp"},"skip(address,uint32,bytes32,uint64)":{"details":"the caller must provide _nonce to prevent skipping the unintended nonceit could happen in some race conditions, e.g. to skip nonce 3, but nonce 3 was consumed firstusage: skipping the next nonce to prevent message verification, e.g. skip a message when Precrime throws alertsif the Oapp wants to skip a verified message, it should call the clear() function insteadafter skipping, the lazyInboundNonce is set to the provided nonce, which makes the inboundNonce also the provided nonceie. allows the Oapp to increment the lazyInboundNonce without having had that corresponding msg be verified"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"verify((uint32,bytes32,uint64),address,bytes32)":{"details":"MESSAGING STEP 2 - on the destination chainconfigured receive library verifies a message","params":{"_origin":"a struct holding the srcEid, nonce, and sender of the message","_payloadHash":"the payload hash of the message","_receiver":"the receiver of the message"}}},"version":1},"userdoc":{"kind":"user","methods":{"getSendLibrary(address,uint32)":{"notice":"The Send Library is the Oapp specified library that will be used to send the message to the destination endpoint. If the Oapp does not specify a Send Library, the default Send Library will be used."},"quote((uint32,bytes32,bytes,bytes,bool),address)":{"notice":"This view function gives the application built on top of LayerZero the ability to requests a quote with the same parameters as they would to send their message. Since the quotes are given on chain there is a race condition in which the prices could change between the time the user gets their quote and the time they submit their message. If the price moves up and the user doesn't send enough funds the transaction will revert, if the price goes down the _refundAddress provided by the app will be refunded the difference."},"setDelegate(address)":{"notice":"delegate is authorized by the oapp to configure anything in layerzero"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2AltMock.sol":"EndpointV2AltMock"},"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/EndpointV2AltMock.sol":{"keccak256":"0x026b2f530b336ee237f37dde6f617acefbbf74d933d2a80da4216882f78be1a9","urls":["bzz-raw://097a9fdd5a321e6e8455a1db00f2abda6e810c31ce47d1bced9e574be262a28b","dweb:/ipfs/Qme17zGk93k5BghCWFXqeqppVahH4dHuw7U76K4EcJxsY1"],"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/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"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/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":75}