{"abi":[{"type":"constructor","inputs":[{"name":"_localEidV2","type":"uint32","internalType":"uint32"},{"name":"_nativeDecimalsRate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"dstBlockTimeConfigs","inputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"avgBlockTime","type":"uint32","internalType":"uint32"},{"name":"blockNum","type":"uint64","internalType":"uint64"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"maxPastRetention","type":"uint32","internalType":"uint32"},{"name":"maxFutureRetention","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getCmdFees","inputs":[],"outputs":[{"name":"","type":"uint120","internalType":"uint120"},{"name":"","type":"uint120","internalType":"uint120"},{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParamsForRead","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_cmd","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParamsForRead","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_cmd","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getSupportedCmdTypes","inputs":[{"name":"_targetEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint256","internalType":"BitMap256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCmdFees","inputs":[{"name":"_evmCallRequestV1FeeUSD","type":"uint120","internalType":"uint120"},{"name":"_evmCallComputeV1ReduceFeeUSD","type":"uint120","internalType":"uint120"},{"name":"_evmCallComputeV1MapBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDstBlockTimeConfigs","inputs":[{"name":"dstEids","type":"uint32[]","internalType":"uint32[]"},{"name":"_blockConfigs","type":"tuple[]","internalType":"struct DVNFeeLibMock.BlockTimeConfig[]","components":[{"name":"avgBlockTime","type":"uint32","internalType":"uint32"},{"name":"blockNum","type":"uint64","internalType":"uint64"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"maxPastRetention","type":"uint32","internalType":"uint32"},{"name":"maxFutureRetention","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportedCmdTypes","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct DVNFeeLibMock.SetSupportedCmdTypesParam[]","components":[{"name":"targetEid","type":"uint32","internalType":"uint32"},{"name":"types","type":"uint256","internalType":"BitMap256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"withdrawToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"DVN_EidNotSupported","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"DVN_INVALID_INPUT_LENGTH","inputs":[]},{"type":"error","name":"DVN_InvalidDVNOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DVN_TimestampOutOfRange","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"DVN_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidCmd","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"InvalidVersion","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":[]},{"type":"error","name":"UnsupportedTargetEid","inputs":[]}],"bytecode":{"object":"0x60c060405234801562000010575f80fd5b5060405162001f4338038062001f438339810160408190526200003391620000c8565b33806200005957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000648162000079565b5063ffffffff90911660a052608052620000fe565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8060408385031215620000da575f80fd5b825163ffffffff81168114620000ee575f80fd5b6020939093015192949293505050565b60805160a051611e156200012e5f395f818161066d01526106da01525f81816107a40152610a800152611e155ff3fe6080604052600436106100e7575f3560e01c80638da5cb5b11610087578063de0a93c311610057578063de0a93c3146102e4578063df2b057e14610329578063f2fde38b1461033c578063f5ff608f1461035b575f80fd5b80638da5cb5b1461026d5780639ac23d2814610293578063bbc5a33b146102b2578063d358b300146102c5575f80fd5b806339f26dfc116100c257806339f26dfc146101fb57806354fd4d501461021a578063715018a61461023a5780637bfa20a91461024e575f80fd5b806301e33667146100f257806310b65f76146101135780632565c24514610157575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5061011161010c36600461165e565b61037a565b005b34801561011e575f80fd5b5061014461012d3660046116a8565b63ffffffff165f9081526001602052604090205490565b6040519081526020015b60405180910390f35b348015610162575f80fd5b506101bc6101713660046116a8565b60036020525f908152604090205463ffffffff808216916001600160401b036401000000008204811692600160601b830490911691600160a01b8104821691600160c01b9091041685565b6040805163ffffffff96871681526001600160401b0395861660208201529390941693830193909352831660608201529116608082015260a00161014e565b348015610206575f80fd5b506101116102153660046116ea565b610392565b348015610225575f80fd5b5060408051600180825260208201520161014e565b348015610245575f80fd5b506101116103e4565b348015610259575f80fd5b50610144610268366004611784565b6103f7565b348015610278575f80fd5b505f546040516001600160a01b03909116815260200161014e565b34801561029e575f80fd5b506101116102ad3660046117ea565b61057e565b6101446102c03660046118a6565b610622565b3480156102d0575f80fd5b506101446102df3660046118a6565b61063c565b3480156102ef575f80fd5b50600254604080516001600160781b038084168252600160781b8404166020820152600160f01b90920461ffff169082015260600161014e565b610144610337366004611784565b61082e565b348015610347575f80fd5b5061011161035636600461193a565b610844565b348015610366575f80fd5b50610111610375366004611953565b610881565b6103826108fa565b61038d838383610926565b505050565b61039a6108fa565b6002805461ffff909216600160f01b026001600160f01b036001600160781b03948516600160781b026001600160f01b031990941694909516939093179190911792909216179055565b6103ec6108fa565b6103f55f610949565b565b5f61040560208501856119d5565b6001600160401b03165f0361044b5761042460408601602087016116a8565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6104558383610998565b505f61047861046a60a08801608089016119d5565b6001600160401b0316610a07565b90505f80610489602089018961193a565b6001600160a01b03166388a4124c6104a760408b0160208c016116a8565b856104b560208c018c6119d5565b6040516001600160e01b031960e086901b16815263ffffffff93909316600484015260248301919091526001600160401b03166044820152606401608060405180830381865afa15801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f9190611a04565b9350505091506105728288602001602081019061054c9190611a56565b61055c60c08c0160a08d01611a56565b61056c60608c0160408d01611a6f565b85610a14565b98975050505050505050565b6105866108fa565b8281146105a6576040516316a9d98760e31b815260040160405180910390fd5b5f5b8381101561061b578282828181106105c2576105c2611a8a565b905060a0020160035f8787858181106105dd576105dd611a8a565b90506020020160208101906105f291906116a8565b63ffffffff16815260208101919091526040015f206106118282611aaa565b50506001016105a8565b5050505050565b5f61063187878787878761063c565b979650505050505050565b5f61064a60208701876119d5565b6001600160401b03165f0361069a5760405163680489c560e11b815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152602401610442565b6106a48383610998565b505f6106b961046a60608a0160408b016119d5565b90505f806106ca60208b018b61193a565b6001600160a01b03166388a4124c7f00000000000000000000000000000000000000000000000000000000000000008561070760208e018e6119d5565b6040516001600160e01b031960e086901b16815263ffffffff93909316600484015260248301919091526001600160401b03166044820152606401608060405180830381865afa15801561075d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107819190611a04565b9350505091505f6107928989610ae5565b90505f6001600160801b0383166107c97f000000000000000000000000000000000000000000000000000000000000000084611bb9565b6107d39190611be4565b905061081e6107e28286611bf7565b6107f260408e0160208f01611a56565b8e60600160208101906108059190611a56565b8e60400160208101906108189190611a6f565b87610a14565b9c9b505050505050505050505050565b5f61083b858585856103f7565b95945050505050565b61084c6108fa565b6001600160a01b03811661087557604051631e4fbdf760e01b81525f6004820152602401610442565b61087e81610949565b50565b6108896108fa565b5f5b8181101561038d578282828181106108a5576108a5611a8a565b9050604002016020013560015f015f8585858181106108c6576108c6611a8a565b6108dc92602060409092020190810191506116a8565b63ffffffff16815260208101919091526040015f205560010161088b565b5f546001600160a01b031633146103f55760405163118cdaa760e01b8152336004820152602401610442565b6001600160a01b03831661093e5761038d8282610b8e565b61038d838383610c37565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8082156109d9575f806109ad868685610c72565b604051637085244b60e01b815260ff851660048201529096509294508593505060249091019050610442565b8083146109fc5760405163013adb8360e21b815260048101829052602401610442565b5f9150505b92915050565b5f610a0182610120610ccb565b5f8061ffff861615610a265785610a28565b845b90505f612710610a3c61ffff84168a611bb9565b610a469190611be4565b90506001600160801b0384161580610a6557506001600160801b038516155b15610a7357915061083b9050565b5f846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b0316610ab39190611bb9565b610abd9190611be4565b610ac7908a611bf7565b9050818111610ad65781610ad8565b805b9998505050505050505050565b5f80610af48484610d2f610ef0565b6002548151919250610b15916001600160781b039091169061ffff16611c0a565b6001600160781b03169150806020015115610b5d5760025461271090610b4690600160f01b900461ffff1684611bb9565b610b509190611be4565b610b5a9083611bf7565b91505b806040015115610b8757600254610b8490600160781b90046001600160781b031683611bf7565b91505b5092915050565b6001600160a01b038216610bb5576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610bfe576040519150601f19603f3d011682016040523d82523d5f602084013e610c03565b606091505b505090508061038d57604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610442565b6001600160a01b038216610c5e576040516306b7a93160e41b815260040160405180910390fd5b61038d6001600160a01b03841683836113de565b5f36816001840181610c85888884611430565b6002830192909150610c9d9089908990600301611458565b94506002820161ffff82168301610cb681838b8d611c35565b979b909a50969850505061ffff160193505050565b5f80610cd8604185611bb9565b9050610ce5602082611c5c565b15610d0d57610cf5602082611c5c565b610cff9082611c6f565b610d0a906020611bf7565b90505b80610d1a84610104611bf7565b610d249190611bf7565b610b84906020611bf7565b610d3b6001858361147c565b610d4860018560026114a4565b15610eea5763ffffffff8085165f90815260036020908152604091829020825160a081018452905480851682526001600160401b036401000000008204811693830193909352600160601b810490921692810192909252600160a01b810483166060830152600160c01b90049091166080820152828415610e6a5781602001516001600160401b0316846001600160401b03161115610e2757815160208301516103e89163ffffffff1690610dfd9087611c82565b610e079190611ca2565b610e119190611cc5565b8260400151610e209190611cea565b9050610e6a565b6103e8825f015163ffffffff16858460200151610e449190611c82565b610e4e9190611ca2565b610e589190611cc5565b8260400151610e679190611c82565b90505b42826060015163ffffffff1682610e819190611cea565b6001600160401b03161080610eb257506080820151610ea69063ffffffff1642611bf7565b816001600160401b0316115b15610ee757604051630c5a8d2360e01b815263ffffffff871660048201526001600160401b0382166024820152604401610442565b50505b50505050565b604080516060810182525f808252602082018190529181018290529080858186610f1b826002611bf7565b92610f2893929190611c35565b610f3191611d0a565b60f01c9050610f41600283611bf7565b915061ffff8116600114610f685760405163a9146eeb60e01b815260040160405180910390fd5b610f73600283611bf7565b91505f868387610f84826002611bf7565b92610f9193929190611c35565b610f9a91611d0a565b60f01c9050610faa600284611bf7565b92508061ffff165f03610fd0576040516387a7f37960e01b815260040160405180910390fd5b61ffff168352505f5b825f015161ffff168161ffff1610156111cf575f868684818110610fff57610fff611a8a565b919091013560f81c91506110169050600184611bf7565b925060ff811660011461103c5760405163a9146eeb60e01b815260040160405180910390fd5b611047600284611bf7565b92505f878488611058826002611bf7565b9261106593929190611c35565b61106e91611d0a565b60f01c905061107e600285611bf7565b93505f1961ffff8216016111ac575f88858961109b826002611bf7565b926110a893929190611c35565b6110b191611d0a565b60f01c90506110c1600286611bf7565b9450845f8a828b6110d3826004611bf7565b926110e093929190611c35565b6110e991611d38565b60e01c90506110f9600483611bf7565b91505f8b8b8481811061110e5761110e611a8a565b600192013560f81c8214925061112691905084611bf7565b92505f8c848d611137826008611bf7565b9261114493929190611c35565b61114d91611d66565b60c01c90506111628383835f8f63ffffffff16565b508a925061117791505061ffff831687611bf7565b1115611196576040516387a7f37960e01b815260040160405180910390fd5b6111a461ffff821686611bf7565b9450506111c5565b60405163b968846160e01b815260040160405180910390fd5b5050600101610fd9565b50838110156113b6575f8585838181106111eb576111eb611a8a565b919091013560f81c91506112029050600183611bf7565b915060ff81166001146112285760405163a9146eeb60e01b815260040160405180910390fd5b5f868387611237826002611bf7565b9261124493929190611c35565b61124d91611d0a565b60f01c905061125d600284611bf7565b925061ffff81166001146112845760405163b968846160e01b815260040160405180910390fd5b5f87878581811061129757611297611a8a565b919091013560f81c91506112ae9050600185611bf7565b935060ff81166112c457600160208601526112f6565b5f1960ff8216016112db57600160408601526112f6565b60011960ff8216016111ac5760016020860181905260408601525b5f888589611305826004611bf7565b9261131293929190611c35565b61131b91611d38565b60e01c905061132b600486611bf7565b94505f89898781811061134057611340611a8a565b600192013560f81c8214925061135891905087611bf7565b95505f8a878b611369826008611bf7565b9261137693929190611c35565b61137f91611d66565b60c01c905061138f600888611bf7565b96506113a283838360018d63ffffffff16565b6113ad601688611bf7565b96505050505050505b8084146113d6576040516387a7f37960e01b815260040160405180910390fd5b509392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261038d9084906114d1565b5f6002820161144181848688611c35565b61144a91611d0a565b60f01c9150505b9392505050565b5f83838381811061146b5761146b611a8a565b919091013560f81c95945050505050565b6114878383836114a4565b61038d576040516350fae9eb60e01b815260040160405180910390fd5b63ffffffff8083165f9081526020859052604081205490916114c99190849061153216565b949350505050565b5f6114e56001600160a01b03841683611541565b905080515f141580156115095750808060200190518101906115079190611d94565b155b1561038d57604051635274afe760e01b81526001600160a01b0384166004820152602401610442565b600160ff919091161b16151590565b606061145183835f845f80856001600160a01b031684866040516115659190611db3565b5f6040518083038185875af1925050503d805f811461159f576040519150601f19603f3d011682016040523d82523d5f602084013e6115a4565b606091505b50915091506115b48683836115be565b9695505050505050565b6060826115d3576115ce8261161a565b611451565b81511580156115ea57506001600160a01b0384163b155b1561161357604051639996b31560e01b81526001600160a01b0385166004820152602401610442565b5080611451565b80511561162a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114611659575f80fd5b919050565b5f805f60608486031215611670575f80fd5b61167984611643565b925061168760208501611643565b9150604084013590509250925092565b63ffffffff8116811461087e575f80fd5b5f602082840312156116b8575f80fd5b813561145181611697565b80356001600160781b0381168114611659575f80fd5b803561ffff81168114611659575f80fd5b5f805f606084860312156116fc575f80fd5b611705846116c3565b9250611713602085016116c3565b9150611721604085016116d9565b90509250925092565b5f6060828403121561173a575f80fd5b50919050565b5f8083601f840112611750575f80fd5b5081356001600160401b03811115611766575f80fd5b60208301915083602082850101111561177d575f80fd5b9250929050565b5f805f80848603610140811215611799575f80fd5b60c08112156117a6575f80fd5b508493506117b78660c0870161172a565b92506101208501356001600160401b038111156117d2575f80fd5b6117de87828801611740565b95989497509550505050565b5f805f80604085870312156117fd575f80fd5b84356001600160401b0380821115611813575f80fd5b818701915087601f830112611826575f80fd5b813581811115611834575f80fd5b8860208260051b8501011115611848575f80fd5b602092830196509450908601359080821115611862575f80fd5b818701915087601f830112611875575f80fd5b813581811115611883575f80fd5b88602060a083028501011115611897575f80fd5b95989497505060200194505050565b5f805f805f808688036101208112156118bd575f80fd5b60808112156118ca575f80fd5b508695506118db886080890161172a565b945060e08701356001600160401b03808211156118f6575f80fd5b6119028a838b01611740565b909650945061010089013591508082111561191b575f80fd5b5061192889828a01611740565b979a9699509497509295939492505050565b5f6020828403121561194a575f80fd5b61145182611643565b5f8060208385031215611964575f80fd5b82356001600160401b038082111561197a575f80fd5b818501915085601f83011261198d575f80fd5b81358181111561199b575f80fd5b8660208260061b85010111156119af575f80fd5b60209290920196919550909350505050565b6001600160401b038116811461087e575f80fd5b5f602082840312156119e5575f80fd5b8135611451816119c1565b6001600160801b038116811461087e575f80fd5b5f805f8060808587031215611a17575f80fd5b845193506020850151611a29816119f0565b6040860151909350611a3a816119f0565b6060860151909250611a4b816119f0565b939692955090935050565b5f60208284031215611a66575f80fd5b611451826116d9565b5f60208284031215611a7f575f80fd5b8135611451816119f0565b634e487b7160e01b5f52603260045260245ffd5b5f8135610a0181611697565b8135611ab581611697565b63ffffffff8116905081548163ffffffff1982161783556020840135611ada816119c1565b6bffffffffffffffff000000008160201b16905080836bffffffffffffffffffffffff198416171784556040850135611b12816119c1565b67ffffffffffffffff60601b606091821b166001600160a01b03199390931693909317808217831785559285013591611b4a83611697565b63ffffffff60a01b1993909316179190911760a09190911b63ffffffff60a01b16178155611ba1611b7d60808401611a9e565b82805463ffffffff60c01b191660c09290921b63ffffffff60c01b16919091179055565b5050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a0157610a01611ba5565b634e487b7160e01b5f52601260045260245ffd5b5f82611bf257611bf2611bd0565b500490565b80820180821115610a0157610a01611ba5565b6001600160781b03818116838216028082169190828114611c2d57611c2d611ba5565b505092915050565b5f8085851115611c43575f80fd5b83861115611c4f575f80fd5b5050820193919092039150565b5f82611c6a57611c6a611bd0565b500690565b81810381811115610a0157610a01611ba5565b6001600160401b03828116828216039080821115610b8757610b87611ba5565b6001600160401b03818116838216028082169190828114611c2d57611c2d611ba5565b5f6001600160401b0380841680611cde57611cde611bd0565b92169190910492915050565b6001600160401b03818116838216019080821115610b8757610b87611ba5565b6001600160f01b03198135818116916002851015611c2d5760029490940360031b84901b1690921692915050565b6001600160e01b03198135818116916004851015611c2d5760049490940360031b84901b1690921692915050565b6001600160c01b03198135818116916008851015611c2d5760089490940360031b84901b1690921692915050565b5f60208284031215611da4575f80fd5b81518015158114611451575f80fd5b5f82515f5b81811015611dd25760208186018101518583015201611db8565b505f92019182525091905056fea2646970667358221220e8e1f6c77af0f0c527d136a1f390d742a53b279102ebfa68e9ac36410f9ca50064736f6c63430008160033","sourceMap":"902:10996:73:-:0;;;3122:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3191:10;;1269:95:108;;1322:31;;-1:-1:-1;;;1322:31:108;;1350:1;1322:31;;;506:51:133;479:18;;1322:31:108;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;3213:24:73::1;::::0;;::::1;;::::0;3247:40:::1;::::0;902:10996;;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;14:341:133:-;92:6;100;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;201:9;195:16;251:10;244:5;240:22;233:5;230:33;220:61;;277:1;274;267:12;220:61;345:2;330:18;;;;324:25;300:5;;324:25;;-1:-1:-1;;;14:341:133:o;360:203::-;902:10996:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100e7575f3560e01c80638da5cb5b11610087578063de0a93c311610057578063de0a93c3146102e4578063df2b057e14610329578063f2fde38b1461033c578063f5ff608f1461035b575f80fd5b80638da5cb5b1461026d5780639ac23d2814610293578063bbc5a33b146102b2578063d358b300146102c5575f80fd5b806339f26dfc116100c257806339f26dfc146101fb57806354fd4d501461021a578063715018a61461023a5780637bfa20a91461024e575f80fd5b806301e33667146100f257806310b65f76146101135780632565c24514610157575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5061011161010c36600461165e565b61037a565b005b34801561011e575f80fd5b5061014461012d3660046116a8565b63ffffffff165f9081526001602052604090205490565b6040519081526020015b60405180910390f35b348015610162575f80fd5b506101bc6101713660046116a8565b60036020525f908152604090205463ffffffff808216916001600160401b036401000000008204811692600160601b830490911691600160a01b8104821691600160c01b9091041685565b6040805163ffffffff96871681526001600160401b0395861660208201529390941693830193909352831660608201529116608082015260a00161014e565b348015610206575f80fd5b506101116102153660046116ea565b610392565b348015610225575f80fd5b5060408051600180825260208201520161014e565b348015610245575f80fd5b506101116103e4565b348015610259575f80fd5b50610144610268366004611784565b6103f7565b348015610278575f80fd5b505f546040516001600160a01b03909116815260200161014e565b34801561029e575f80fd5b506101116102ad3660046117ea565b61057e565b6101446102c03660046118a6565b610622565b3480156102d0575f80fd5b506101446102df3660046118a6565b61063c565b3480156102ef575f80fd5b50600254604080516001600160781b038084168252600160781b8404166020820152600160f01b90920461ffff169082015260600161014e565b610144610337366004611784565b61082e565b348015610347575f80fd5b5061011161035636600461193a565b610844565b348015610366575f80fd5b50610111610375366004611953565b610881565b6103826108fa565b61038d838383610926565b505050565b61039a6108fa565b6002805461ffff909216600160f01b026001600160f01b036001600160781b03948516600160781b026001600160f01b031990941694909516939093179190911792909216179055565b6103ec6108fa565b6103f55f610949565b565b5f61040560208501856119d5565b6001600160401b03165f0361044b5761042460408601602087016116a8565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6104558383610998565b505f61047861046a60a08801608089016119d5565b6001600160401b0316610a07565b90505f80610489602089018961193a565b6001600160a01b03166388a4124c6104a760408b0160208c016116a8565b856104b560208c018c6119d5565b6040516001600160e01b031960e086901b16815263ffffffff93909316600484015260248301919091526001600160401b03166044820152606401608060405180830381865afa15801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f9190611a04565b9350505091506105728288602001602081019061054c9190611a56565b61055c60c08c0160a08d01611a56565b61056c60608c0160408d01611a6f565b85610a14565b98975050505050505050565b6105866108fa565b8281146105a6576040516316a9d98760e31b815260040160405180910390fd5b5f5b8381101561061b578282828181106105c2576105c2611a8a565b905060a0020160035f8787858181106105dd576105dd611a8a565b90506020020160208101906105f291906116a8565b63ffffffff16815260208101919091526040015f206106118282611aaa565b50506001016105a8565b5050505050565b5f61063187878787878761063c565b979650505050505050565b5f61064a60208701876119d5565b6001600160401b03165f0361069a5760405163680489c560e11b815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152602401610442565b6106a48383610998565b505f6106b961046a60608a0160408b016119d5565b90505f806106ca60208b018b61193a565b6001600160a01b03166388a4124c7f00000000000000000000000000000000000000000000000000000000000000008561070760208e018e6119d5565b6040516001600160e01b031960e086901b16815263ffffffff93909316600484015260248301919091526001600160401b03166044820152606401608060405180830381865afa15801561075d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107819190611a04565b9350505091505f6107928989610ae5565b90505f6001600160801b0383166107c97f000000000000000000000000000000000000000000000000000000000000000084611bb9565b6107d39190611be4565b905061081e6107e28286611bf7565b6107f260408e0160208f01611a56565b8e60600160208101906108059190611a56565b8e60400160208101906108189190611a6f565b87610a14565b9c9b505050505050505050505050565b5f61083b858585856103f7565b95945050505050565b61084c6108fa565b6001600160a01b03811661087557604051631e4fbdf760e01b81525f6004820152602401610442565b61087e81610949565b50565b6108896108fa565b5f5b8181101561038d578282828181106108a5576108a5611a8a565b9050604002016020013560015f015f8585858181106108c6576108c6611a8a565b6108dc92602060409092020190810191506116a8565b63ffffffff16815260208101919091526040015f205560010161088b565b5f546001600160a01b031633146103f55760405163118cdaa760e01b8152336004820152602401610442565b6001600160a01b03831661093e5761038d8282610b8e565b61038d838383610c37565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8082156109d9575f806109ad868685610c72565b604051637085244b60e01b815260ff851660048201529096509294508593505060249091019050610442565b8083146109fc5760405163013adb8360e21b815260048101829052602401610442565b5f9150505b92915050565b5f610a0182610120610ccb565b5f8061ffff861615610a265785610a28565b845b90505f612710610a3c61ffff84168a611bb9565b610a469190611be4565b90506001600160801b0384161580610a6557506001600160801b038516155b15610a7357915061083b9050565b5f846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b0316610ab39190611bb9565b610abd9190611be4565b610ac7908a611bf7565b9050818111610ad65781610ad8565b805b9998505050505050505050565b5f80610af48484610d2f610ef0565b6002548151919250610b15916001600160781b039091169061ffff16611c0a565b6001600160781b03169150806020015115610b5d5760025461271090610b4690600160f01b900461ffff1684611bb9565b610b509190611be4565b610b5a9083611bf7565b91505b806040015115610b8757600254610b8490600160781b90046001600160781b031683611bf7565b91505b5092915050565b6001600160a01b038216610bb5576040516306b7a93160e41b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610bfe576040519150601f19603f3d011682016040523d82523d5f602084013e610c03565b606091505b505090508061038d57604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610442565b6001600160a01b038216610c5e576040516306b7a93160e41b815260040160405180910390fd5b61038d6001600160a01b03841683836113de565b5f36816001840181610c85888884611430565b6002830192909150610c9d9089908990600301611458565b94506002820161ffff82168301610cb681838b8d611c35565b979b909a50969850505061ffff160193505050565b5f80610cd8604185611bb9565b9050610ce5602082611c5c565b15610d0d57610cf5602082611c5c565b610cff9082611c6f565b610d0a906020611bf7565b90505b80610d1a84610104611bf7565b610d249190611bf7565b610b84906020611bf7565b610d3b6001858361147c565b610d4860018560026114a4565b15610eea5763ffffffff8085165f90815260036020908152604091829020825160a081018452905480851682526001600160401b036401000000008204811693830193909352600160601b810490921692810192909252600160a01b810483166060830152600160c01b90049091166080820152828415610e6a5781602001516001600160401b0316846001600160401b03161115610e2757815160208301516103e89163ffffffff1690610dfd9087611c82565b610e079190611ca2565b610e119190611cc5565b8260400151610e209190611cea565b9050610e6a565b6103e8825f015163ffffffff16858460200151610e449190611c82565b610e4e9190611ca2565b610e589190611cc5565b8260400151610e679190611c82565b90505b42826060015163ffffffff1682610e819190611cea565b6001600160401b03161080610eb257506080820151610ea69063ffffffff1642611bf7565b816001600160401b0316115b15610ee757604051630c5a8d2360e01b815263ffffffff871660048201526001600160401b0382166024820152604401610442565b50505b50505050565b604080516060810182525f808252602082018190529181018290529080858186610f1b826002611bf7565b92610f2893929190611c35565b610f3191611d0a565b60f01c9050610f41600283611bf7565b915061ffff8116600114610f685760405163a9146eeb60e01b815260040160405180910390fd5b610f73600283611bf7565b91505f868387610f84826002611bf7565b92610f9193929190611c35565b610f9a91611d0a565b60f01c9050610faa600284611bf7565b92508061ffff165f03610fd0576040516387a7f37960e01b815260040160405180910390fd5b61ffff168352505f5b825f015161ffff168161ffff1610156111cf575f868684818110610fff57610fff611a8a565b919091013560f81c91506110169050600184611bf7565b925060ff811660011461103c5760405163a9146eeb60e01b815260040160405180910390fd5b611047600284611bf7565b92505f878488611058826002611bf7565b9261106593929190611c35565b61106e91611d0a565b60f01c905061107e600285611bf7565b93505f1961ffff8216016111ac575f88858961109b826002611bf7565b926110a893929190611c35565b6110b191611d0a565b60f01c90506110c1600286611bf7565b9450845f8a828b6110d3826004611bf7565b926110e093929190611c35565b6110e991611d38565b60e01c90506110f9600483611bf7565b91505f8b8b8481811061110e5761110e611a8a565b600192013560f81c8214925061112691905084611bf7565b92505f8c848d611137826008611bf7565b9261114493929190611c35565b61114d91611d66565b60c01c90506111628383835f8f63ffffffff16565b508a925061117791505061ffff831687611bf7565b1115611196576040516387a7f37960e01b815260040160405180910390fd5b6111a461ffff821686611bf7565b9450506111c5565b60405163b968846160e01b815260040160405180910390fd5b5050600101610fd9565b50838110156113b6575f8585838181106111eb576111eb611a8a565b919091013560f81c91506112029050600183611bf7565b915060ff81166001146112285760405163a9146eeb60e01b815260040160405180910390fd5b5f868387611237826002611bf7565b9261124493929190611c35565b61124d91611d0a565b60f01c905061125d600284611bf7565b925061ffff81166001146112845760405163b968846160e01b815260040160405180910390fd5b5f87878581811061129757611297611a8a565b919091013560f81c91506112ae9050600185611bf7565b935060ff81166112c457600160208601526112f6565b5f1960ff8216016112db57600160408601526112f6565b60011960ff8216016111ac5760016020860181905260408601525b5f888589611305826004611bf7565b9261131293929190611c35565b61131b91611d38565b60e01c905061132b600486611bf7565b94505f89898781811061134057611340611a8a565b600192013560f81c8214925061135891905087611bf7565b95505f8a878b611369826008611bf7565b9261137693929190611c35565b61137f91611d66565b60c01c905061138f600888611bf7565b96506113a283838360018d63ffffffff16565b6113ad601688611bf7565b96505050505050505b8084146113d6576040516387a7f37960e01b815260040160405180910390fd5b509392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261038d9084906114d1565b5f6002820161144181848688611c35565b61144a91611d0a565b60f01c9150505b9392505050565b5f83838381811061146b5761146b611a8a565b919091013560f81c95945050505050565b6114878383836114a4565b61038d576040516350fae9eb60e01b815260040160405180910390fd5b63ffffffff8083165f9081526020859052604081205490916114c99190849061153216565b949350505050565b5f6114e56001600160a01b03841683611541565b905080515f141580156115095750808060200190518101906115079190611d94565b155b1561038d57604051635274afe760e01b81526001600160a01b0384166004820152602401610442565b600160ff919091161b16151590565b606061145183835f845f80856001600160a01b031684866040516115659190611db3565b5f6040518083038185875af1925050503d805f811461159f576040519150601f19603f3d011682016040523d82523d5f602084013e6115a4565b606091505b50915091506115b48683836115be565b9695505050505050565b6060826115d3576115ce8261161a565b611451565b81511580156115ea57506001600160a01b0384163b155b1561161357604051639996b31560e01b81526001600160a01b0385166004820152602401610442565b5080611451565b80511561162a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114611659575f80fd5b919050565b5f805f60608486031215611670575f80fd5b61167984611643565b925061168760208501611643565b9150604084013590509250925092565b63ffffffff8116811461087e575f80fd5b5f602082840312156116b8575f80fd5b813561145181611697565b80356001600160781b0381168114611659575f80fd5b803561ffff81168114611659575f80fd5b5f805f606084860312156116fc575f80fd5b611705846116c3565b9250611713602085016116c3565b9150611721604085016116d9565b90509250925092565b5f6060828403121561173a575f80fd5b50919050565b5f8083601f840112611750575f80fd5b5081356001600160401b03811115611766575f80fd5b60208301915083602082850101111561177d575f80fd5b9250929050565b5f805f80848603610140811215611799575f80fd5b60c08112156117a6575f80fd5b508493506117b78660c0870161172a565b92506101208501356001600160401b038111156117d2575f80fd5b6117de87828801611740565b95989497509550505050565b5f805f80604085870312156117fd575f80fd5b84356001600160401b0380821115611813575f80fd5b818701915087601f830112611826575f80fd5b813581811115611834575f80fd5b8860208260051b8501011115611848575f80fd5b602092830196509450908601359080821115611862575f80fd5b818701915087601f830112611875575f80fd5b813581811115611883575f80fd5b88602060a083028501011115611897575f80fd5b95989497505060200194505050565b5f805f805f808688036101208112156118bd575f80fd5b60808112156118ca575f80fd5b508695506118db886080890161172a565b945060e08701356001600160401b03808211156118f6575f80fd5b6119028a838b01611740565b909650945061010089013591508082111561191b575f80fd5b5061192889828a01611740565b979a9699509497509295939492505050565b5f6020828403121561194a575f80fd5b61145182611643565b5f8060208385031215611964575f80fd5b82356001600160401b038082111561197a575f80fd5b818501915085601f83011261198d575f80fd5b81358181111561199b575f80fd5b8660208260061b85010111156119af575f80fd5b60209290920196919550909350505050565b6001600160401b038116811461087e575f80fd5b5f602082840312156119e5575f80fd5b8135611451816119c1565b6001600160801b038116811461087e575f80fd5b5f805f8060808587031215611a17575f80fd5b845193506020850151611a29816119f0565b6040860151909350611a3a816119f0565b6060860151909250611a4b816119f0565b939692955090935050565b5f60208284031215611a66575f80fd5b611451826116d9565b5f60208284031215611a7f575f80fd5b8135611451816119f0565b634e487b7160e01b5f52603260045260245ffd5b5f8135610a0181611697565b8135611ab581611697565b63ffffffff8116905081548163ffffffff1982161783556020840135611ada816119c1565b6bffffffffffffffff000000008160201b16905080836bffffffffffffffffffffffff198416171784556040850135611b12816119c1565b67ffffffffffffffff60601b606091821b166001600160a01b03199390931693909317808217831785559285013591611b4a83611697565b63ffffffff60a01b1993909316179190911760a09190911b63ffffffff60a01b16178155611ba1611b7d60808401611a9e565b82805463ffffffff60c01b191660c09290921b63ffffffff60c01b16919091179055565b5050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a0157610a01611ba5565b634e487b7160e01b5f52601260045260245ffd5b5f82611bf257611bf2611bd0565b500490565b80820180821115610a0157610a01611ba5565b6001600160781b03818116838216028082169190828114611c2d57611c2d611ba5565b505092915050565b5f8085851115611c43575f80fd5b83861115611c4f575f80fd5b5050820193919092039150565b5f82611c6a57611c6a611bd0565b500690565b81810381811115610a0157610a01611ba5565b6001600160401b03828116828216039080821115610b8757610b87611ba5565b6001600160401b03818116838216028082169190828114611c2d57611c2d611ba5565b5f6001600160401b0380841680611cde57611cde611bd0565b92169190910492915050565b6001600160401b03818116838216019080821115610b8757610b87611ba5565b6001600160f01b03198135818116916002851015611c2d5760029490940360031b84901b1690921692915050565b6001600160e01b03198135818116916004851015611c2d5760049490940360031b84901b1690921692915050565b6001600160c01b03198135818116916008851015611c2d5760089490940360031b84901b1690921692915050565b5f60208284031215611da4575f80fd5b81518015158114611451575f80fd5b5f82515f5b81811015611dd25760208186018101518583015201611db8565b505f92019182525091905056fea2646970667358221220e8e1f6c77af0f0c527d136a1f390d742a53b279102ebfa68e9ac36410f9ca50064736f6c63430008160033","sourceMap":"902:10996:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4159:203;;;;;;;;;;-1:-1:-1;4159:203:73;;;;;:::i;:::-;;:::i;:::-;;3637:145;;;;;;;;;;-1:-1:-1;3637:145:73;;;;;:::i;:::-;3737:38;;3709:9;3737:38;;;:17;:38;;;;;;;3637:145;;;;1078:25:133;;;1066:2;1051:18;3637:145:73;;;;;;;;3047:68;;;;;;;;;;-1:-1:-1;3047:68:73;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3047:68:73;;;;;;-1:-1:-1;;;3047:68:73;;;;;;-1:-1:-1;;;3047:68:73;;;;;-1:-1:-1;;;3047:68:73;;;;;;;;;;1373:10:133;1410:15;;;1392:34;;-1:-1:-1;;;;;1499:15:133;;;1494:2;1479:18;;1472:43;1551:15;;;;1531:18;;;1524:43;;;;1603:15;;1598:2;1583:18;;1576:43;1656:15;;1650:3;1635:19;;1628:44;1350:3;1335:19;3047:68:73;1114:564:133;4368:366:73;;;;;;;;;;-1:-1:-1;4368:366:73;;;;;:::i;:::-;;:::i;11708:99::-;;;;;;;;;;-1:-1:-1;11708:99:73;;;11795:1;2543:50:133;;;2624:2;2609:18;;2602:45;2516:18;11708:99:73;2375:278:133;2293:101:108;;;;;;;;;;;;;:::i;5902:814:73:-;;;;;;;;;;-1:-1:-1;5902:814:73;;;;;:::i;:::-;;:::i;1638:85:108:-;;;;;;;;;;-1:-1:-1;1684:7:108;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:108;;;4192:51:133;;4180:2;4165:18;1638:85:108;4046:203:133;3788:365:73;;;;;;;;;;-1:-1:-1;3788:365:73;;;;;:::i;:::-;;:::i;5410:282::-;;;;;;:::i;:::-;;:::i;6722:1028::-;;;;;;;;;;-1:-1:-1;6722:1028:73;;;;;:::i;:::-;;:::i;4740:173::-;;;;;;;;;;-1:-1:-1;4829:22:73;;4740:173;;;-1:-1:-1;;;;;4829:22:73;;;6661:34:133;;-1:-1:-1;;;4853:28:73;;;6726:2:133;6711:18;;6704:43;-1:-1:-1;;;4883:22:73;;;;;6763:18:133;;;6756:47;6598:2;6583:18;4740:173:73;6410:399:133;5167:237:73;;;;;;:::i;:::-;;:::i;2543:215:108:-;;;;;;;;;;-1:-1:-1;2543:215:108;;;;;:::i;:::-;;:::i;3383:248:73:-;;;;;;;;;;-1:-1:-1;3383:248:73;;;;;:::i;:::-;;:::i;4159:203::-;1531:13:108;:11;:13::i;:::-;4311:44:73::1;4334:6;4342:3;4347:7;4311:22;:44::i;:::-;4159:203:::0;;;:::o;4368:366::-;1531:13:108;:11;:13::i;:::-;4551:22:73::1;:48:::0;;4679::::1;::::0;;::::1;-1:-1:-1::0;;;4679:48:73::1;-1:-1:-1::0;;;;;;;;;;4609:60:73;;::::1;-1:-1:-1::0;;;4609:60:73::1;-1:-1:-1::0;;;;;;4609:60:73;;;4551:48;;;::::1;4609:60:::0;;;;;;;::::1;4679:48:::0;;;::::1;;::::0;;4368:366::o;2293:101:108:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;5902:814:73:-;6058:7;6081:14;;;;:10;:14;:::i;:::-;-1:-1:-1;;;;;6081:19:73;6099:1;6081:19;6077:67;;6129:14;;;;;;;;:::i;:::-;6109:35;;-1:-1:-1;;;6109:35:73;;8229:10:133;8217:23;;;6109:35:73;;;8199:42:133;8172:18;;6109:35:73;;;;;;;;6077:67;6155:27;6173:8;;6155:17;:27::i;:::-;-1:-1:-1;6213:20:73;6236:32;6253:14;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6236:32:73;:16;:32::i;:::-;6213:55;-1:-1:-1;6279:11:73;;6342:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;6322:55:73;;6391:14;;;;;;;;:::i;:::-;6419:12;6445:14;;;;:10;:14;:::i;:::-;6322:147;;-1:-1:-1;;;;;;6322:147:73;;;;;;;;8469:23:133;;;;6322:147:73;;;8451:42:133;8509:18;;;8502:34;;;;-1:-1:-1;;;;;8572:31:133;8552:18;;;8545:59;8424:18;;6322:147:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6278:191;;;;;;6498:211;6529:3;6550:10;:24;;;;;;;;;;:::i;:::-;6592:28;;;;;;;;:::i;:::-;6638:25;;;;;;;;:::i;:::-;6681:14;6498:13;:211::i;:::-;6479:230;5902:814;-1:-1:-1;;;;;;;;5902:814:73:o;3788:365::-;1531:13:108;:11;:13::i;:::-;3944:38:73;;::::1;3940:77;;3991:26;;-1:-1:-1::0;;;3991:26:73::1;;;;;;;;;;;3940:77;4032:9;4027:120;4047:18:::0;;::::1;4027:120;;;4120:13;;4134:1;4120:16;;;;;;;:::i;:::-;;;;;;4086:19;:31;4106:7;;4114:1;4106:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4086:31;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;4086:31:73;:50:::1;::::0;:31;:50:::1;:::i;:::-;-1:-1:-1::0;;4067:3:73::1;;4027:120;;;;3788:365:::0;;;;:::o;5410:282::-;5613:11;5642:43;5649:7;5658:10;5670:4;;5676:8;;5642:6;:43::i;:::-;5636:49;5410:282;-1:-1:-1;;;;;;;5410:282:73:o;6722:1028::-;6914:7;6937:14;;;;:10;:14;:::i;:::-;-1:-1:-1;;;;;6937:19:73;6955:1;6937:19;6933:63;;6965:31;;-1:-1:-1;;;6965:31:73;;8229:10:133;6985::73;8217:23:133;6965:31:73;;;8199:42:133;8172:18;;6965:31:73;8055:192:133;6933:63:73;7007:27;7025:8;;7007:17;:27::i;:::-;-1:-1:-1;7065:20:73;7088:36;7109:14;;;;;;;;:::i;7088:36::-;7065:59;-1:-1:-1;7135:11:73;;7198:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;7178:55:73;;7247:10;7271:12;7297:14;;;;:10;:14;:::i;:::-;7178:143;;-1:-1:-1;;;;;;7178:143:73;;;;;;;;8469:23:133;;;;7178:143:73;;;8451:42:133;8509:18;;;8502:34;;;;-1:-1:-1;;;;;8572:31:133;8552:18;;;8545:59;8424:18;;7178:143:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7134:187;;;;;;7376:17;7396:21;7412:4;;7396:15;:21::i;:::-;7376:41;-1:-1:-1;7427:14:73;-1:-1:-1;;;;;7444:49:73;;7445:30;7457:18;7376:41;7445:30;:::i;:::-;7444:49;;;;:::i;:::-;7427:66;-1:-1:-1;7523:220:73;7554:12;7427:66;7554:3;:12;:::i;:::-;7584:24;;;;;;;;:::i;:::-;7626:7;:28;;;;;;;;;;:::i;:::-;7672:10;:25;;;;;;;;;;:::i;:::-;7715:14;7523:13;:220::i;:::-;7504:239;6722:1028;-1:-1:-1;;;;;;;;;;;;6722:1028:73:o;5167:237::-;5334:7;5360:37;5367:7;5376:10;5388:8;;5360:6;:37::i;:::-;5353:44;5167:237;-1:-1:-1;;;;;5167:237:73:o;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;4192:51:133::0;4165:18;;2672:31:108::1;4046:203:133::0;2623:91:108::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;3383:248:73:-;1531:13:108;:11;:13::i;:::-;3493:9:73::1;3488:137;3508:18:::0;;::::1;3488:137;;;3598:7;;3606:1;3598:10;;;;;;;:::i;:::-;;;;;;:16;;;3547:17;:26;;:48;3574:7;;3582:1;3574:10;;;;;;;:::i;:::-;:20;::::0;::::1;:10;::::0;;::::1;;:20:::0;;::::1;::::0;-1:-1:-1;3574:20:73::1;:::i;:::-;3547:48;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;3547:48:73;:67;3528:3:::1;;3488:137;;1796:162:108::0;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;;;4192:51:133;4165:18;;1901:40:108;4046:203:133;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;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;9385:479:73:-;9460:7;;9510:24;;9503:220;;9551:16;;9592:30;:8;;9615:6;9592:22;:30::i;:::-;9675:37;;-1:-1:-1;;;9675:37:73;;12392:4:133;12380:17;;9675:37:73;;;12362:36:133;9550:72:73;;-1:-1:-1;9550:72:73;;-1:-1:-1;9550:72:73;;-1:-1:-1;;12335:18:133;;;;;-1:-1:-1;9675:37:73;12220:184:133;9503:220:73;9736:25;;;9732:78;;9770:40;;-1:-1:-1;;;9770:40:73;;;;;1078:25:133;;;1051:18;;9770:40:73;901:208:133;9732:78:73;9828:1;9821:8;;;9385:479;;;;;:::o;7824:164::-;7890:7;7916:65;7955:7;2364:3;7916:38;:65::i;8749:630::-;8933:7;;8975:9;;;;:30;;9001:4;8975:30;;;8987:11;8975:30;8952:53;-1:-1:-1;9016:25:73;9069:5;9045:20;;;;:4;:20;:::i;:::-;9044:30;;;;:::i;:::-;9016:58;-1:-1:-1;;;;;;9088:20:73;;;;:39;;-1:-1:-1;;;;;;9112:15:73;;;9088:39;9084:94;;;9150:17;-1:-1:-1;9143:24:73;;-1:-1:-1;9143:24:73;9084:94;9188:26;9260:15;-1:-1:-1;;;;;9224:51:73;9238:18;9225:10;-1:-1:-1;;;;;9225:31:73;;;;;:::i;:::-;9224:51;;;;:::i;:::-;9217:58;;:4;:58;:::i;:::-;9188:87;;9314:17;9293:18;:38;:79;;9355:17;9293:79;;;9334:18;9293:79;9286:86;8749:630;-1:-1:-1;;;;;;;;;8749:630:73:o;9870:459::-;9939:11;9962:29;9994:52;10016:4;;10022:23;9994:21;:52::i;:::-;10088:22;;10062:23;;9962:84;;-1:-1:-1;10062:48:73;;-1:-1:-1;;;;;10088:22:73;;;;10062:48;;;:::i;:::-;-1:-1:-1;;;;;10056:54:73;;;10124:3;:23;;;10120:102;;;10177:22;;1614:5;;10171:28;;-1:-1:-1;;;10177:22:73;;10170:41;10177:22;10171:3;:28;:::i;:::-;10170:41;;;;:::i;:::-;10163:48;;;;:::i;:::-;;;10120:102;10235:3;:26;;;10231:92;;;10284:28;;10277:35;;-1:-1:-1;;;10284:28:73;;-1:-1:-1;;;;;10284:28:73;10277:35;;:::i;:::-;;;10231:92;9952:377;9870:459;;;;:::o;438:252:65:-;-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;;;;;13088:32:133;;649:34:65;;;13070:51:133;13137:18;;;13130:34;;;13043:18;;649:34:65;12896:274:133;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;6549:769:42:-;6659:16;6677:21;6659:16;6799:1;6789:11;;6659:16;6861:22;:8;;6789:11;6861:14;:22::i;:::-;6907:1;6897:11;;;6847:36;;-1:-1:-1;6968:25:42;;:8;;;;6982:10;;6968:13;:25::i;:::-;6955:38;-1:-1:-1;7139:1:42;7130:10;;7206:13;;;;;7242:31;7206:13;7130:10;7242:8;;:31;:::i;:::-;6549:769;;7233:40;;-1:-1:-1;7233:40:42;;-1:-1:-1;;;7287:14:42;;;;-1:-1:-1;;;6549:769:42:o;8172:571:73:-;8303:7;;8352:29;1975:2;8352:7;:29;:::i;:::-;8322:59;-1:-1:-1;8395:24:73;8417:2;8322:59;8395:24;:::i;:::-;:29;8391:135;;8485:24;8507:2;8485:19;:24;:::i;:::-;8462:48;;:19;:48;:::i;:::-;:53;;8513:2;8462:53;:::i;:::-;8440:75;;8391:135;8712:19;8667:42;8698:11;1919:3;8667:42;:::i;:::-;:64;;;;:::i;:::-;:69;;8734:2;8667:69;:::i;10335:1367::-;10512:55;:17;10546:10;10558:8;10512:33;:55::i;:::-;10581:90;:17;10611:10;579:1:44;10581:29:73;:90::i;:::-;10577:1119;;;10721:31;;;;10687;10721;;;:19;:31;;;;;;;;;10687:65;;;;;;;;;;;;;;-1:-1:-1;;;;;10687:65:73;;;;;;;;;;;;-1:-1:-1;;;10687:65:73;;;;;;;;;;;;-1:-1:-1;;;10687:65:73;;;;;;;;-1:-1:-1;;;10687:65:73;;;;;;;;;10785:20;10819:600;;;;10938:8;:17;;;-1:-1:-1;;;;;10915:40:73;:20;-1:-1:-1;;;;;10915:40:73;;10911:494;;;11106:21;;11085:17;;;;11155:4;;11061:66;;;11062:40;;:20;:40;:::i;:::-;11061:66;;;;:::i;:::-;11060:99;;;;:::i;:::-;11015:8;:18;;;:144;;;;:::i;:::-;10979:180;;10911:494;;;11382:4;11333:8;:21;;;11288:66;;11309:20;11289:8;:17;;;:40;;;;:::i;:::-;11288:66;;;;:::i;:::-;11287:99;;;;:::i;:::-;11242:8;:18;;;:144;;;;:::i;:::-;11206:180;;10911:494;11493:15;11465:8;:25;;;11453:37;;:9;:37;;;;:::i;:::-;-1:-1:-1;;;;;11453:55:73;;:132;;;-1:-1:-1;11558:27:73;;;;11540:45;;;;:15;:45;:::i;:::-;11528:9;-1:-1:-1;;;;;11528:57:73;;11453:132;11432:254;;;11625:46;;-1:-1:-1;;;11625:46:73;;14800:10:133;14788:23;;11625:46:73;;;14770:42:133;-1:-1:-1;;;;;14848:31:133;;14828:18;;;14821:59;14743:18;;11625:46:73;14600:286:133;11432:254:73;10673:1023;;10577:1119;10335:1367;;;;:::o;852:4045:43:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;1166:4:43;-1:-1:-1;1166:4:43;1178:10;-1:-1:-1;1187:1:43;1178:10;:::i;:::-;1166:23;;;;;;;:::i;:::-;1159:31;;;:::i;:::-;1152:39;;;-1:-1:-1;1205:11:43;1215:1;1205:11;;:::i;:::-;;-1:-1:-1;1234:25:43;;;216:1;1234:25;1230:54;;1268:16;;-1:-1:-1;;;1268:16:43;;;;;;;;;;;1230:54;1299:11;1309:1;1299:11;;:::i;:::-;;-1:-1:-1;1345:19:43;1381:4;1299:11;1381:4;1393:10;1299:11;1402:1;1393:10;:::i;:::-;1381:23;;;;;;;:::i;:::-;1374:31;;;:::i;:::-;1367:39;;;-1:-1:-1;1420:11:43;1430:1;1420:11;;:::i;:::-;;;1578:12;:17;;1594:1;1578:17;1574:42;;1604:12;;-1:-1:-1;;;1604:12:43;;;;;;;;;;;1574:42;1630:38;;;;-1:-1:-1;1630:23:43;1720:1522;1743:3;:23;;;1739:27;;:1;:27;;;1720:1522;;;1787:20;1816:4;;1821:6;1816:12;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1843:11:43;;-1:-1:-1;1853:1:43;1843:11;;:::i;:::-;;-1:-1:-1;1872:33:43;;;265:1;1872:33;1868:62;;1914:16;;-1:-1:-1;;;1914:16:43;;;;;;;;;;;1868:62;1981:11;1991:1;1981:11;;:::i;:::-;;-1:-1:-1;2007:19:43;2043:4;1981:11;2043:4;2055:10;1981:11;2064:1;2055:10;:::i;:::-;2043:23;;;;;;;:::i;:::-;2036:31;;;:::i;:::-;2029:39;;;-1:-1:-1;2082:11:43;2092:1;2082:11;;:::i;:::-;;-1:-1:-1;;;2112:50:43;;;;2108:1124;;2182:18;2217:4;2222:6;2217:4;2229:10;2222:6;2238:1;2229:10;:::i;:::-;2217:23;;;;;;;:::i;:::-;2210:31;;;:::i;:::-;2203:39;;;-1:-1:-1;2260:11:43;2270:1;2260:11;;:::i;:::-;;-1:-1:-1;2260:11:43;2383:21;2468:4;2260:11;2468:4;2487:17;2260:11;2503:1;2487:17;:::i;:::-;2468:37;;;;;;;:::i;:::-;2461:45;;;:::i;:::-;2454:53;;;-1:-1:-1;2529:18:43;2546:1;2529:18;;:::i;:::-;;;2570:15;2594:4;;2599:13;2594:19;;;;;;;:::i;:::-;2618:1;2594:19;;;;;2588:31;;;-1:-1:-1;2641:18:43;;2618:1;-1:-1:-1;2641:18:43;;:::i;:::-;;-1:-1:-1;2682:26:43;2725:4;2641:18;2725:4;2744:17;2641:18;2760:1;2744:17;:::i;:::-;2725:37;;;;;;;:::i;:::-;2718:45;;;:::i;:::-;2711:53;;2682:82;;2787:236;2836:9;2871:10;2907:19;457:1:44;2787:23:43;:236;;:::i;:::-;-1:-1:-1;3087:4:43;;-1:-1:-1;3064:20:43;;-1:-1:-1;;3064:20:43;;;:6;:20;:::i;:::-;:34;3060:59;;;3107:12;;-1:-1:-1;;;3107:12:43;;;;;;;;;;;3060:59;3137:21;;;;;;:::i;:::-;;;2164:1009;2108:1124;;;3204:13;;-1:-1:-1;;;3204:13:43;;;;;;;;;;;2108:1124;-1:-1:-1;;1768:3:43;;1720:1522;;;-1:-1:-1;3299:20:43;;;3295:1540;;;3335:20;3364:4;;3369:6;3364:12;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;3391:11:43;;-1:-1:-1;3401:1:43;3391:11;;:::i;:::-;;-1:-1:-1;3420:33:43;;;383:1;3420:33;3416:62;;3462:16;;-1:-1:-1;;;3462:16:43;;;;;;;;;;;3416:62;3493:18;3528:4;3533:6;3528:4;3540:10;3533:6;3549:1;3540:10;:::i;:::-;3528:23;;;;;;;:::i;:::-;3521:31;;;:::i;:::-;3514:39;;;-1:-1:-1;3567:11:43;3577:1;3567:11;;:::i;:::-;;-1:-1:-1;3596:48:43;;;451:1;3596:48;3592:74;;3653:13;;-1:-1:-1;;;3653:13:43;;;;;;;;;;;3592:74;3681:20;3710:4;;3715:6;3710:12;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;3737:11:43;;-1:-1:-1;3747:1:43;3737:11;;:::i;:::-;;-1:-1:-1;3767:42:43;;;3763:467;;3855:4;3829:23;;;:30;3763:467;;;-1:-1:-1;;3884:45:43;;;;3880:350;;3978:4;3949:26;;;:33;3880:350;;;-1:-1:-1;;4007:48:43;;;;4003:227;;4101:4;4075:23;;;:30;;;4123:26;;;:33;4003:227;4244:16;4277:4;4282:6;4277:4;4289:10;4282:6;4298:1;4289:10;:::i;:::-;4277:23;;;;;;;:::i;:::-;4270:31;;;:::i;:::-;4263:39;;;-1:-1:-1;4316:11:43;4326:1;4316:11;;:::i;:::-;;;4342:15;4366:4;;4371:6;4366:12;;;;;;;:::i;:::-;4383:1;4366:12;;;;;4360:24;;;-1:-1:-1;4398:11:43;;4383:1;-1:-1:-1;4398:11:43;;:::i;:::-;;-1:-1:-1;4424:26:43;4467:4;4398:11;4467:4;4479:10;4398:11;4488:1;4479:10;:::i;:::-;4467:23;;;;;;;:::i;:::-;4460:31;;;:::i;:::-;4453:39;;;-1:-1:-1;4506:11:43;4516:1;4506:11;;:::i;:::-;;;4532:196;4573:9;4600:10;4628:19;519:1:44;4532:23:43;:196;;:::i;:::-;4812:12;4822:2;4812:12;;:::i;:::-;;;3321:1514;;;;;;3295:1540;4848:21;;;4844:46;;4878:12;;-1:-1:-1;;;4878:12:43;;;;;;;;;;;4844:46;1018:3879;852:4045;;;;;:::o;1303:160:114:-;1412:43;;;-1:-1:-1;;;;;13088:32:133;;1412:43:114;;;13070:51:133;13137:18;;;;13130:34;;;1412:43:114;;;;;;;;;;13043:18:133;;;;1412:43:114;;;;;;;;-1:-1:-1;;;;;1412:43:114;-1:-1:-1;;;1412:43:114;;;1385:71;;1405:5;;1385:19;:71::i;229:215:62:-;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;386:41;;;229:215;;;;;;:::o;95:128::-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:62:o;737:194:44:-;856:37;868:5;875:10;887:5;856:11;:37::i;:::-;851:73;;902:22;;-1:-1:-1;;;902:22:44;;;;;;;;;;;937:176;1069:26;;;;1046:4;1069:26;;;;;;;;;;;1046:4;;1069:37;;:26;1100:5;;1069:30;:37;:::i;:::-;1062:44;937:176;-1:-1:-1;;;;937:176:44:o;4059:629:114:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:114;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:114;;-1:-1:-1;;;;;4210:32:133;;4631:40:114;;;4192:51:133;4165:18;;4631:40:114;4046:203:133;337:168:67;435:1;:10;;;;;;462:31;:36;;;337:168::o;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;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:115:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:115;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:115;;-1:-1:-1;;;;;4210:32:133;;5121:24:115;;;4192:51:133;4165:18;;5121:24:115;4046: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;;;;;;;;;;;14:173:133;82:20;;-1:-1:-1;;;;;131:31:133;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:328::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;415:48;;510:2;499:9;495:18;482:32;472:42;;192:328;;;;;:::o;525:121::-;610:10;603:5;599:22;592:5;589:33;579:61;;636:1;633;626:12;651:245;709:6;762:2;750:9;741:7;737:23;733:32;730:52;;;778:1;775;768:12;730:52;817:9;804:23;836:30;860:5;836:30;:::i;1683:186::-;1751:20;;-1:-1:-1;;;;;1800:44:133;;1790:55;;1780:83;;1859:1;1856;1849:12;1874:159;1941:20;;2001:6;1990:18;;1980:29;;1970:57;;2023:1;2020;2013:12;2038:332;2114:6;2122;2130;2183:2;2171:9;2162:7;2158:23;2154:32;2151:52;;;2199:1;2196;2189:12;2151:52;2222:29;2241:9;2222:29;:::i;:::-;2212:39;;2270:38;2304:2;2293:9;2289:18;2270:38;:::i;:::-;2260:48;;2327:37;2360:2;2349:9;2345:18;2327:37;:::i;:::-;2317:47;;2038:332;;;;;:::o;2658:157::-;2720:5;2765:2;2756:6;2751:3;2747:16;2743:25;2740:45;;;2781:1;2778;2771:12;2740:45;-1:-1:-1;2803:6:133;2658:157;-1:-1:-1;2658:157:133:o;2820:347::-;2871:8;2881:6;2935:3;2928:4;2920:6;2916:17;2912:27;2902:55;;2953:1;2950;2943:12;2902:55;-1:-1:-1;2976:20:133;;-1:-1:-1;;;;;3008:30:133;;3005:50;;;3051:1;3048;3041:12;3005:50;3088:4;3080:6;3076:17;3064:29;;3140:3;3133:4;3124:6;3116;3112:19;3108:30;3105:39;3102:59;;;3157:1;3154;3147:12;3102:59;2820:347;;;;;:::o;3172:687::-;3318:6;3326;3334;3342;3386:9;3377:7;3373:23;3416:3;3412:2;3408:12;3405:32;;;3433:1;3430;3423:12;3405:32;3457:3;3453:2;3449:12;3446:32;;;3474:1;3471;3464:12;3446:32;;3497:9;3487:19;;3525:66;3583:7;3577:3;3566:9;3562:19;3525:66;:::i;:::-;3515:76;;3642:3;3631:9;3627:19;3614:33;-1:-1:-1;;;;;3662:6:133;3659:30;3656:50;;;3702:1;3699;3692:12;3656:50;3741:58;3791:7;3782:6;3771:9;3767:22;3741:58;:::i;:::-;3172:687;;;;-1:-1:-1;3818:8:133;-1:-1:-1;;;;3172:687:133:o;4254:1143::-;4411:6;4419;4427;4435;4488:2;4476:9;4467:7;4463:23;4459:32;4456:52;;;4504:1;4501;4494:12;4456:52;4544:9;4531:23;-1:-1:-1;;;;;4614:2:133;4606:6;4603:14;4600:34;;;4630:1;4627;4620:12;4600:34;4668:6;4657:9;4653:22;4643:32;;4713:7;4706:4;4702:2;4698:13;4694:27;4684:55;;4735:1;4732;4725:12;4684:55;4775:2;4762:16;4801:2;4793:6;4790:14;4787:34;;;4817:1;4814;4807:12;4787:34;4872:7;4865:4;4855:6;4852:1;4848:14;4844:2;4840:23;4836:34;4833:47;4830:67;;;4893:1;4890;4883:12;4830:67;4924:4;4916:13;;;;-1:-1:-1;4948:6:133;-1:-1:-1;4992:20:133;;;4979:34;;5025:16;;;5022:36;;;5054:1;5051;5044:12;5022:36;5092:8;5081:9;5077:24;5067:34;;5139:7;5132:4;5128:2;5124:13;5120:27;5110:55;;5161:1;5158;5151:12;5110:55;5203:2;5190:16;5231:2;5221:8;5218:16;5215:36;;;5247:1;5244;5237:12;5215:36;5307:7;5300:4;5292;5282:8;5278:19;5274:2;5270:28;5266:39;5263:52;5260:72;;;5328:1;5325;5318:12;5260:72;4254:1143;;;;-1:-1:-1;;5359:4:133;5351:13;;-1:-1:-1;;;4254:1143:133:o;5402:1003::-;5575:6;5583;5591;5599;5607;5615;5659:9;5650:7;5646:23;5689:3;5685:2;5681:12;5678:32;;;5706:1;5703;5696:12;5678:32;5730:3;5726:2;5722:12;5719:32;;;5747:1;5744;5737:12;5719:32;;5770:9;5760:19;;5798:66;5856:7;5850:3;5839:9;5835:19;5798:66;:::i;:::-;5788:76;;5915:3;5904:9;5900:19;5887:33;-1:-1:-1;;;;;5980:2:133;5972:6;5969:14;5966:34;;;5996:1;5993;5986:12;5966:34;6035:58;6085:7;6076:6;6065:9;6061:22;6035:58;:::i;:::-;6112:8;;-1:-1:-1;6009:84:133;-1:-1:-1;6200:3:133;6185:19;;6172:33;;-1:-1:-1;6217:16:133;;;6214:36;;;6246:1;6243;6236:12;6214:36;;6285:60;6337:7;6326:8;6315:9;6311:24;6285:60;:::i;:::-;5402:1003;;;;-1:-1:-1;5402:1003:133;;-1:-1:-1;5402:1003:133;;6364:8;;5402:1003;-1:-1:-1;;;5402:1003:133:o;6814:186::-;6873:6;6926:2;6914:9;6905:7;6901:23;6897:32;6894:52;;;6942:1;6939;6932:12;6894:52;6965:29;6984:9;6965:29;:::i;7005:661::-;7137:6;7145;7198:2;7186:9;7177:7;7173:23;7169:32;7166:52;;;7214:1;7211;7204:12;7166:52;7254:9;7241:23;-1:-1:-1;;;;;7324:2:133;7316:6;7313:14;7310:34;;;7340:1;7337;7330:12;7310:34;7378:6;7367:9;7363:22;7353:32;;7423:7;7416:4;7412:2;7408:13;7404:27;7394:55;;7445:1;7442;7435:12;7394:55;7485:2;7472:16;7511:2;7503:6;7500:14;7497:34;;;7527:1;7524;7517:12;7497:34;7580:7;7575:2;7565:6;7562:1;7558:14;7554:2;7550:23;7546:32;7543:45;7540:65;;;7601:1;7598;7591:12;7540:65;7632:2;7624:11;;;;;7654:6;;-1:-1:-1;7005:661:133;;-1:-1:-1;;;;7005:661:133:o;7671:129::-;-1:-1:-1;;;;;7749:5:133;7745:30;7738:5;7735:41;7725:69;;7790:1;7787;7780:12;7805:245;7863:6;7916:2;7904:9;7895:7;7891:23;7887:32;7884:52;;;7932:1;7929;7922:12;7884:52;7971:9;7958:23;7990:30;8014:5;7990:30;:::i;8615:146::-;-1:-1:-1;;;;;8694:5:133;8690:46;8683:5;8680:57;8670:85;;8751:1;8748;8741:12;8766:581;8863:6;8871;8879;8887;8940:3;8928:9;8919:7;8915:23;8911:33;8908:53;;;8957:1;8954;8947:12;8908:53;8986:9;8980:16;8970:26;;9039:2;9028:9;9024:18;9018:25;9052:31;9077:5;9052:31;:::i;:::-;9152:2;9137:18;;9131:25;9102:5;;-1:-1:-1;9165:33:133;9131:25;9165:33;:::i;:::-;9269:2;9254:18;;9248:25;9217:7;;-1:-1:-1;9282:33:133;9248:25;9282:33;:::i;:::-;8766:581;;;;-1:-1:-1;8766:581:133;;-1:-1:-1;;8766:581:133:o;9352:184::-;9410:6;9463:2;9451:9;9442:7;9438:23;9434:32;9431:52;;;9479:1;9476;9469:12;9431:52;9502:28;9520:9;9502:28;:::i;9541:247::-;9600:6;9653:2;9641:9;9632:7;9628:23;9624:32;9621:52;;;9669:1;9666;9659:12;9621:52;9708:9;9695:23;9727:31;9752:5;9727:31;:::i;9793:127::-;9854:10;9849:3;9845:20;9842:1;9835:31;9885:4;9882:1;9875:15;9909:4;9906:1;9899:15;9925:174;9969:11;10021:3;10008:17;10034:30;10058:5;10034:30;:::i;10323:1200::-;10506:5;10493:19;10521:32;10545:7;10521:32;:::i;:::-;10585:10;10576:7;10572:24;10562:34;;10621:4;10615:11;10677:2;10663:10;10659:15;10655:2;10651:24;10648:32;10642:4;10635:46;10729:2;10722:5;10718:14;10705:28;10742:32;10766:7;10742:32;:::i;:::-;10815:26;10805:7;10801:2;10797:16;10793:49;10783:59;;10917:2;10912;10882:26;10878:31;10874:2;10870:40;10867:48;10864:56;10858:4;10851:70;10969:2;10962:5;10958:14;10945:28;10982:32;11006:7;10982:32;:::i;:::-;-1:-1:-1;;;11059:2:133;11037:16;;;11033:50;-1:-1:-1;;;;;;11105:45:133;;;;11102:53;;;;11180:10;;;11177:18;;11164:32;;11102:53;11233:14;;11220:28;;11257:32;11220:28;11257:32;:::i;:::-;-1:-1:-1;;;;11328:34:133;;;;11321:42;11314:50;;;;11393:3;11370:17;;;;-1:-1:-1;;;11366:44:133;11311:100;11298:114;;11421:96;11473:43;11511:3;11500:15;;11473:43;:::i;:::-;11467:4;10196:11;;-1:-1:-1;;;;10232:34:133;10293:3;10272:15;;;;-1:-1:-1;;;10268:42:133;10229:82;;;;10216:96;;10104:214;11421:96;10323:1200;;:::o;11528:127::-;11589:10;11584:3;11580:20;11577:1;11570:31;11620:4;11617:1;11610:15;11644:4;11641:1;11634:15;11660:168;11733:9;;;11764;;11781:15;;;11775:22;;11761:37;11751:71;;11802:18;;:::i;11833:127::-;11894:10;11889:3;11885:20;11882:1;11875:31;11925:4;11922:1;11915:15;11949:4;11946:1;11939:15;11965:120;12005:1;12031;12021:35;;12036:18;;:::i;:::-;-1:-1:-1;12070:9:133;;11965:120::o;12090:125::-;12155:9;;;12176:10;;;12173:36;;;12189:18;;:::i;12409:272::-;-1:-1:-1;;;;;12545:10:133;;;12557;;;12541:27;12588:20;;;;12481:32;12627:24;;;12617:58;;12655:18;;:::i;:::-;12617:58;;12409:272;;;;:::o;13175:331::-;13280:9;13291;13333:8;13321:10;13318:24;13315:44;;;13355:1;13352;13345:12;13315:44;13384:6;13374:8;13371:20;13368:40;;;13404:1;13401;13394:12;13368:40;-1:-1:-1;;13430:23:133;;;13475:25;;;;;-1:-1:-1;13175:331:133:o;13511:112::-;13543:1;13569;13559:35;;13574:18;;:::i;:::-;-1:-1:-1;13608:9:133;;13511:112::o;13628:128::-;13695:9;;;13716:11;;;13713:37;;;13730:18;;:::i;13761:183::-;-1:-1:-1;;;;;13880:10:133;;;13868;;;13864:27;;13903:12;;;13900:38;;;13918:18;;:::i;13949:257::-;-1:-1:-1;;;;;14070:10:133;;;14082;;;14066:27;14113:20;;;;14020:18;14152:24;;;14142:58;;14180:18;;:::i;14211:199::-;14250:1;-1:-1:-1;;;;;14321:2:133;14318:1;14314:10;14343:3;14333:37;;14350:18;;:::i;:::-;14388:10;;14384:20;;;;;14211:199;-1:-1:-1;;14211:199:133:o;14415:180::-;-1:-1:-1;;;;;14520:10:133;;;14532;;;14516:27;;14555:11;;;14552:37;;;14569:18;;:::i;14891:318::-;-1:-1:-1;;;;;;15011:19:133;;15082:11;;;;15113:1;15105:10;;15102:101;;;15174:1;15170:11;;;;15167:1;15163:19;15159:28;;;15151:37;15147:46;;;;14891:318;-1:-1:-1;;14891:318:133:o;15214:323::-;-1:-1:-1;;;;;;15334:19:133;;15410:11;;;;15441:1;15433:10;;15430:101;;;15502:1;15498:11;;;;15495:1;15491:19;15487:28;;;15479:37;15475:46;;;;15214:323;-1:-1:-1;;15214:323:133:o;15542:331::-;-1:-1:-1;;;;;;15662:19:133;;15746:11;;;;15777:1;15769:10;;15766:101;;;15838:1;15834:11;;;;15831:1;15827:19;15823:28;;;15815:37;15811:46;;;;15542:331;-1:-1:-1;;15542:331:133:o;15878:277::-;15945:6;15998:2;15986:9;15977:7;15973:23;15969:32;15966:52;;;16014:1;16011;16004:12;15966:52;16046:9;16040:16;16099:5;16092:13;16085:21;16078:5;16075:32;16065:60;;16121:1;16118;16111:12;16160:412;16289:3;16327:6;16321:13;16352:1;16362:129;16376:6;16373:1;16370:13;16362:129;;;16474:4;16458:14;;;16454:25;;16448:32;16435:11;;;16428:53;16391:12;16362:129;;;-1:-1:-1;16546:1:133;16510:16;;16535:13;;;-1:-1:-1;16510:16:133;16160:412;-1:-1:-1;16160:412:133:o","linkReferences":{},"immutableReferences":{"17342":[{"start":1956,"length":32},{"start":2688,"length":32}],"17344":[{"start":1645,"length":32},{"start":1754,"length":32}]}},"methodIdentifiers":{"dstBlockTimeConfigs(uint32)":"2565c245","getCmdFees()":"de0a93c3","getFee((address,address,uint64,uint16),(uint64,uint16,uint128),bytes,bytes)":"d358b300","getFee((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":"7bfa20a9","getFeeOnSend((address,address,uint64,uint16),(uint64,uint16,uint128),bytes,bytes)":"bbc5a33b","getFeeOnSend((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":"df2b057e","getSupportedCmdTypes(uint32)":"10b65f76","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setCmdFees(uint120,uint120,uint16)":"39f26dfc","setDstBlockTimeConfigs(uint32[],(uint32,uint64,uint64,uint32,uint32)[])":"9ac23d28","setSupportedCmdTypes((uint32,uint256)[])":"f5ff608f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdrawToken(address,address,uint256)":"01e33667"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_localEidV2\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_nativeDecimalsRate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"DVN_EidNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DVN_INVALID_INPUT_LENGTH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"DVN_InvalidDVNOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"DVN_TimestampOutOfRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"}],\"name\":\"DVN_UnsupportedOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCmd\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVersion\",\"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\"},{\"inputs\":[],\"name\":\"UnsupportedTargetEid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"}],\"name\":\"dstBlockTimeConfigs\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"avgBlockTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"blockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"maxPastRetention\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxFutureRetention\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCmdFees\",\"outputs\":[{\"internalType\":\"uint120\",\"name\":\"\",\"type\":\"uint120\"},{\"internalType\":\"uint120\",\"name\":\"\",\"type\":\"uint120\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParamsForRead\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_cmd\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParamsForRead\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_cmd\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_targetEid\",\"type\":\"uint32\"}],\"name\":\"getSupportedCmdTypes\",\"outputs\":[{\"internalType\":\"BitMap256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint120\",\"name\":\"_evmCallRequestV1FeeUSD\",\"type\":\"uint120\"},{\"internalType\":\"uint120\",\"name\":\"_evmCallComputeV1ReduceFeeUSD\",\"type\":\"uint120\"},{\"internalType\":\"uint16\",\"name\":\"_evmCallComputeV1MapBps\",\"type\":\"uint16\"}],\"name\":\"setCmdFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"dstEids\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"avgBlockTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"blockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"maxPastRetention\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxFutureRetention\",\"type\":\"uint32\"}],\"internalType\":\"struct DVNFeeLibMock.BlockTimeConfig[]\",\"name\":\"_blockConfigs\",\"type\":\"tuple[]\"}],\"name\":\"setDstBlockTimeConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"targetEid\",\"type\":\"uint32\"},{\"internalType\":\"BitMap256\",\"name\":\"types\",\"type\":\"uint256\"}],\"internalType\":\"struct DVNFeeLibMock.SetSupportedCmdTypesParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setSupportedCmdTypes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"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\":{\"getFee((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)\":{\"details\":\"get fee view function\",\"params\":{\"\":\"//_options options\",\"_dstConfig\":\"dst config\",\"_params\":\"fee params\"}},\"getFeeOnSend((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)\":{\"details\":\"get fee function that can change state. e.g. paying priceFeed\",\"params\":{\"\":\"//_options options\",\"_dstConfig\":\"dst config\",\"_params\":\"fee params\"}},\"owner()\":{\"details\":\"Returns the address of the current 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.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":\"DVNFeeLibMock\"},\"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-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0x6becdfab6c1fcaf98f402bee48495895e54825f9d6eef6e292dde0caed628284\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2273341033856737cd46704a1a769768feae696d0e7a912f5be9de8ffdd2180c\",\"dweb:/ipfs/QmY1xBAmMX9jND1HAb7tDyZNPgFReXMqs1vtmHbShKZFQY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0xed4a8e77148328132d8f4f2726c4aeec6b490cf03a1d5940bde0ab8d72954de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b07802ca32bf10f68e51da872fb358807446dc2242314374d226493a6e9e7dc\",\"dweb:/ipfs/QmfSwWPLgitDy2a9S3mCNBDk6kAcK9n186Dtvj7qg84i12\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroReadDVN.sol\":{\"keccak256\":\"0x759a3ee7614c2de54b152b0278845f91ac9760d8c22045b2fee89e3e744402b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a2dbf6bcf5bfab408f18c104b34c390e8bfabb0eeb1a10e3a9c0fb14c8c61d5\",\"dweb:/ipfs/QmWxmRbDBkbhGmNsRyXqQXB1QaWRS4qvh6a8achh8DQPKR\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/ReadCmdCodecV1.sol\":{\"keccak256\":\"0x52fbab4a114ce9defb2ffd57c0a978eee438b2c232862f7e20475e0dcadd4eda\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a4d5d4e186e3f2a916ea02c2d1d0761069ab1a5c0d6f74719bbf3501a7ccb899\",\"dweb:/ipfs/QmS2e12U9Fap2EK1CmSBTccL4PCKkHNdKJn2bXCqqKdbRn\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/SupportedCmdTypes.sol\":{\"keccak256\":\"0x6b2534522c163714e499041ecd06aaeb93857373cef82cf2752f162bb7c69f9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf6c3545c3b9505692dbfaa29b40cab5ed9dc9b65e5804b6f47b5a76596120e9\",\"dweb:/ipfs/QmNs98oRaMvpYhLCQ5yU256eYNEopFTrLRjjwm3gL4foQ3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"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/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4c2e212f73a1c2a2989af947eef715ebacb11a80d55e5fd18a89a905790971b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://30eb29a81414780828903f5320367e89020af5a4055b768e2be08d43605b1688\",\"dweb:/ipfs/QmeC5bVtmaY6tn6Z2XpVFXAkxVWQCQUzKbP2V9nPdv3vCr\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]},\"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\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_localEidV2","type":"uint32"},{"internalType":"uint256","name":"_nativeDecimalsRate","type":"uint256"}],"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":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"DVN_EidNotSupported"},{"inputs":[],"type":"error","name":"DVN_INVALID_INPUT_LENGTH"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"DVN_InvalidDVNOptions"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint64","name":"timestamp","type":"uint64"}],"type":"error","name":"DVN_TimestampOutOfRange"},{"inputs":[{"internalType":"uint8","name":"optionType","type":"uint8"}],"type":"error","name":"DVN_UnsupportedOptionType"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidCmd"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[],"type":"error","name":"InvalidVersion"},{"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":[],"type":"error","name":"UnsupportedTargetEid"},{"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":"dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"dstBlockTimeConfigs","outputs":[{"internalType":"uint32","name":"avgBlockTime","type":"uint32"},{"internalType":"uint64","name":"blockNum","type":"uint64"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint32","name":"maxPastRetention","type":"uint32"},{"internalType":"uint32","name":"maxFutureRetention","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCmdFees","outputs":[{"internalType":"uint120","name":"","type":"uint120"},{"internalType":"uint120","name":"","type":"uint120"},{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParamsForRead","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_cmd","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParamsForRead","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_cmd","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"getFeeOnSend","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"getFeeOnSend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_targetEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSupportedCmdTypes","outputs":[{"internalType":"BitMap256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint120","name":"_evmCallRequestV1FeeUSD","type":"uint120"},{"internalType":"uint120","name":"_evmCallComputeV1ReduceFeeUSD","type":"uint120"},{"internalType":"uint16","name":"_evmCallComputeV1MapBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setCmdFees"},{"inputs":[{"internalType":"uint32[]","name":"dstEids","type":"uint32[]"},{"internalType":"struct DVNFeeLibMock.BlockTimeConfig[]","name":"_blockConfigs","type":"tuple[]","components":[{"internalType":"uint32","name":"avgBlockTime","type":"uint32"},{"internalType":"uint64","name":"blockNum","type":"uint64"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint32","name":"maxPastRetention","type":"uint32"},{"internalType":"uint32","name":"maxFutureRetention","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"setDstBlockTimeConfigs"},{"inputs":[{"internalType":"struct DVNFeeLibMock.SetSupportedCmdTypesParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"targetEid","type":"uint32"},{"internalType":"BitMap256","name":"types","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"setSupportedCmdTypes"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawToken"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getFee((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":{"details":"get fee view function","params":{"":"//_options options","_dstConfig":"dst config","_params":"fee params"}},"getFeeOnSend((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":{"details":"get fee function that can change state. e.g. paying priceFeed","params":{"":"//_options options","_dstConfig":"dst config","_params":"fee params"}},"owner()":{"details":"Returns the address of the current 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."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"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/DVNFeeLibMock.sol":"DVNFeeLibMock"},"evmVersion":"shanghai","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0x6becdfab6c1fcaf98f402bee48495895e54825f9d6eef6e292dde0caed628284","urls":["bzz-raw://2273341033856737cd46704a1a769768feae696d0e7a912f5be9de8ffdd2180c","dweb:/ipfs/QmY1xBAmMX9jND1HAb7tDyZNPgFReXMqs1vtmHbShKZFQY"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0xed4a8e77148328132d8f4f2726c4aeec6b490cf03a1d5940bde0ab8d72954de9","urls":["bzz-raw://7b07802ca32bf10f68e51da872fb358807446dc2242314374d226493a6e9e7dc","dweb:/ipfs/QmfSwWPLgitDy2a9S3mCNBDk6kAcK9n186Dtvj7qg84i12"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroReadDVN.sol":{"keccak256":"0x759a3ee7614c2de54b152b0278845f91ac9760d8c22045b2fee89e3e744402b8","urls":["bzz-raw://7a2dbf6bcf5bfab408f18c104b34c390e8bfabb0eeb1a10e3a9c0fb14c8c61d5","dweb:/ipfs/QmWxmRbDBkbhGmNsRyXqQXB1QaWRS4qvh6a8achh8DQPKR"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/ReadCmdCodecV1.sol":{"keccak256":"0x52fbab4a114ce9defb2ffd57c0a978eee438b2c232862f7e20475e0dcadd4eda","urls":["bzz-raw://a4d5d4e186e3f2a916ea02c2d1d0761069ab1a5c0d6f74719bbf3501a7ccb899","dweb:/ipfs/QmS2e12U9Fap2EK1CmSBTccL4PCKkHNdKJn2bXCqqKdbRn"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/SupportedCmdTypes.sol":{"keccak256":"0x6b2534522c163714e499041ecd06aaeb93857373cef82cf2752f162bb7c69f9a","urls":["bzz-raw://bf6c3545c3b9505692dbfaa29b40cab5ed9dc9b65e5804b6f47b5a76596120e9","dweb:/ipfs/QmNs98oRaMvpYhLCQ5yU256eYNEopFTrLRjjwm3gL4foQ3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"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/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4c2e212f73a1c2a2989af947eef715ebacb11a80d55e5fd18a89a905790971b1","urls":["bzz-raw://30eb29a81414780828903f5320367e89020af5a4055b768e2be08d43605b1688","dweb:/ipfs/QmeC5bVtmaY6tn6Z2XpVFXAkxVWQCQUzKbP2V9nPdv3vCr"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"},"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"}},"version":1},"id":73}