[ { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "assetAddress", "type": "address" }, { "internalType": "uint256", "name": "minAmount", "type": "uint256" }, { "internalType": "address", "name": "addressProvider", "type": "address" }, { "internalType": "address", "name": "commander", "type": "address" }, { "internalType": "address", "name": "watcher", "type": "address" }, { "internalType": "uint32", "name": "chainEid", "type": "uint32" } ], "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": "address", "name": "addr", "type": "address" } ], "name": "AddressIsNotAddressProvider", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "AddressIsNotStrategy", "type": "error" }, { "inputs": [], "name": "AmountIsTooLow", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "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": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "TokenIsNotSupported", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "UnauthorizedUser", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint32", "name": "originEid", "type": "uint32" }, { "indexed": false, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "BridgeFinished", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "indexed": false, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "Bridged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "prevCommander", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newCommander", "type": "address" } ], "name": "CommanderChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "strategyId", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "DepositedInStrategy", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "prevFeeIn", "type": "uint64" }, { "indexed": false, "internalType": "uint64", "name": "newFeeIn", "type": "uint64" }, { "indexed": false, "internalType": "uint64", "name": "prevFeeOut", "type": "uint64" }, { "indexed": false, "internalType": "uint64", "name": "newFeeOut", "type": "uint64" } ], "name": "FeeChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "RebalanceRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "strategyId", "type": "bytes32" } ], "name": "StrategyAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "strategyId", "type": "bytes32" } ], "name": "StrategyRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "strategyId", "type": "bytes32" }, { "indexed": false, "internalType": "bool", "name": "isActive", "type": "bool" } ], "name": "StrategyToggled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "prevWatcher", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newWatcher", "type": "address" } ], "name": "WatcherChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "prevDelay", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newDelay", "type": "uint256" } ], "name": "WithdrawCancellationDelayChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "WithdrawRequestCancelled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "WithdrawRequestFulfilled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "estimatedAmountOut", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" }, { "indexed": false, "internalType": "uint32", "name": "dstEid", "type": "uint32" } ], "name": "WithdrawalRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "strategyId", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "WithdrewFromStrategy", "type": "event" }, { "inputs": [], "name": "AddressProviderInterfaceId", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32[]", "name": "_dstEid", "type": "uint32[]" }, { "internalType": "address[]", "name": "_vault", "type": "address[]" } ], "name": "addRelatedVaults", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "strategy", "type": "address" } ], "name": "addStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "addressProvider", "outputs": [ { "internalType": "contract IMaatAddressProvider", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "cancelWithdrawal", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "chainEid", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "commander", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "convertToAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "convertToShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assets", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "strategyId", "type": "bytes32" } ], "name": "disableStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "strategyId", "type": "bytes32" } ], "name": "enableStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum IExecutor.ActionType[]", "name": "actionType", "type": "uint8[]" }, { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "strategyId", "type": "bytes32" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "internalType": "struct IExecutor.ActionInput[]", "name": "inputs", "type": "tuple[]" } ], "name": "execute", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeIn", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeOut", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feePrecision", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeTo", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountBridged", "type": "uint256" }, { "internalType": "uint32", "name": "originEid", "type": "uint32" }, { "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "finishBridge", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_dstEid", "type": "uint32" } ], "name": "getRelatedVault", "outputs": [ { "internalType": "address", "name": "_vault", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "strategy", "type": "address" } ], "name": "getStrategyByAddress", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" }, { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "strategyId", "type": "bytes32" } ], "name": "getStrategyById", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "name": "getWithdrawRequest", "outputs": [ { "components": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "uint32", "name": "creationTime", "type": "uint32" }, { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "internalType": "struct IWithdrawRequestLogic.WithdrawRequestInfo", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "idle", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "maxRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "maxWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oracle", "outputs": [ { "internalType": "contract IMaatOracleGlobalPPS", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_dstEid", "type": "uint32" } ], "name": "removeRelatedVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "strategyId", "type": "bytes32" } ], "name": "removeStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "requestRebalance", "outputs": [ { "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "requestWithdraw", "outputs": [ { "internalType": "bytes32", "name": "intentionId", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_commander", "type": "address" } ], "name": "setCommander", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "feeTo_", "type": "address" } ], "name": "setFeeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "feeIn_", "type": "uint64" }, { "internalType": "uint64", "name": "feeOut_", "type": "uint64" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMinAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_watcher", "type": "address" } ], "name": "setWatcher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timer", "type": "uint256" } ], "name": "setWithdrawCancellationDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stargateAdapter", "outputs": [ { "internalType": "contract IStargateAdapter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract ERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "watcher", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assets", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawCancellationDelay", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60e06040526000805560038054613d0960a51b600160a01b600160e01b0319909116179055600480546001600160401b0319166207a120179055610e1060095534801561004b57600080fd5b5060405161519438038061519483398101604081905261006a91610563565b8282828989888a61007a83610230565b610083846102be565b868f87868c8c836001600160a01b0381166100b957604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100c281610336565b50600280546001600160a01b039384166001600160a01b031991821617909155600380549290931691161790556100f881610388565b6001600160a01b03908116608052811661015f5760405162461bcd60e51b815260206004820152602260248201527f4d6161745661756c7456313a20466565546f206973207a65726f206164647265604482015261737360f01b60648201526084016100b0565b60048054600160401b600160e01b031916680100000000000000006001600160a01b03938416021790551660a05263ffffffff1660c052600e6101a2838261068e565b50600f6101af828261068e565b506101c491506301ffc9a760e01b90506103e7565b600160115560128190556101de63043eff2d60e51b6103e7565b505050505050506102147fa3bb55509344bd393ead6d5f2c9c1900c8694985c535527cf8a98c4ab4189de26103e760201b60201c565b6102246301ffc9a760e01b6103e7565b5050505050505061088f565b6060816001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610270573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102989190810190610770565b6040516020016102a89190610822565b6040516020818303038152906040529050919050565b6060816001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156102fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103269190810190610770565b6040516020016102a89190610865565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6103bb6001600160a01b0382167f3274074eff271bc15d0708e27d15d377311d17037921a699ab19e344473283f7610466565b156103c35750565b604051638963896760e01b81526001600160a01b03821660048201526024016100b0565b6001600160e01b031980821690036104415760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064016100b0565b6001600160e01b0319166000908152601060205260409020805460ff19166001179055565b600061047183610489565b8015610482575061048283836104bd565b9392505050565b600061049c826301ffc9a760e01b6104bd565b80156104b757506104b5826001600160e01b03196104bd565b155b92915050565b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015610530575060208210155b801561053c5750600081115b979650505050505050565b80516001600160a01b038116811461055e57600080fd5b919050565b600080600080600080600060e0888a03121561057e57600080fd5b61058788610547565b965061059560208901610547565b9550604088015194506105aa60608901610547565b93506105b860808901610547565b92506105c660a08901610547565b915060c088015163ffffffff811681146105df57600080fd5b8091505092959891949750929550565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061061957607f821691505b60208210810361063957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561068957806000526020600020601f840160051c810160208510156106665750805b601f840160051c820191505b818110156106865760008155600101610672565b50505b505050565b81516001600160401b038111156106a7576106a76105ef565b6106bb816106b58454610605565b8461063f565b6020601f8211600181146106ef57600083156106d75750848201515b600019600385901b1c1916600184901b178455610686565b600084815260208120601f198516915b8281101561071f57878501518255602094850194600190920191016106ff565b508482101561073d5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60005b8381101561076757818101518382015260200161074f565b50506000910152565b60006020828403121561078257600080fd5b81516001600160401b0381111561079857600080fd5b8201601f810184136107a957600080fd5b80516001600160401b038111156107c2576107c26105ef565b604051601f8201601f19908116603f011681016001600160401b03811182821017156107f0576107f06105ef565b60405281815282820160200186101561080857600080fd5b61081982602083016020860161074c565b95945050505050565b64026a0a0aa160dd1b81526000825161084281600585016020870161074c565b6b204d6161745661756c74563160a01b6005939091019283015250601101919050565b611b5d60f21b81526000825161088281600285016020870161074c565b9190910160020192915050565b60805160a05160c05161483561095f60003960008181610654015281816118640152613b120152600081816105ca01528181610a2f01528181610e77015281816110f4015281816118c201528181611a29015281816126890152818161305c015281816135e2015281816136ae015281816137a9015281816138b60152818161394c01528181613a0601528181613a9001528181613b5a01528181613baf01528181613d9d0152613e3001526000818161053901528181610d33015281816114f001526116cf01526148356000f3fe608060405234801561001057600080fd5b50600436106103e65760003560e01c80637213c5a01161020a578063ba08765211610125578063dd62ed3e116100b8578063ef8b30f711610087578063ef8b30f7146109de578063f2fde38b146109f1578063f46901ed14610a04578063f6e9016c14610a17578063fc0c546a14610a2a57600080fd5b8063dd62ed3e1461090a578063e33fe3a514610943578063e869554d14610956578063ec9d5be6146109cb57600080fd5b8063c93c02bc116100f4578063c93c02bc146108c9578063ce96cb77146108d1578063d6b74865146108e4578063d905777e146108f757600080fd5b8063ba08765214610890578063bfeaf836146108a3578063c63d75b614610601578063c6e6f592146108b657600080fd5b8063977c0c5f1161019d578063a2426a661161016c578063a2426a6614610825578063a9059cbb14610857578063b3d7f6b91461086a578063b460af941461087d57600080fd5b8063977c0c5f146107e35780639b2cb5d8146107f65780639cb32b4a146107ff578063a19730421461081257600080fd5b80638da5cb5b116101d95780638da5cb5b146107a45780638e9827bf146107b557806394bf804d146107c857806395d89b41146107db57600080fd5b80637213c5a01461073f578063769a48d9146107715780637dc0d1d014610789578063897b06371461079157600080fd5b80633192164f116103055780634cdad50611610298578063628cda6d11610267578063628cda6d146106cb578063643f0682146106d35780636e553f65146106fb57806370a082311461070e578063715018a61461073757600080fd5b80634cdad5061461062957806350173a401461063c5780635167a5a81461064f5780635878aaef1461068b57600080fd5b806338d52e0f116102d457806338d52e0f146105c85780633d768cb4146105ee578063402d267d1461060157806345e4eb431461061657600080fd5b80633192164f1461057757806334c9443a1461057f57806335ff1e281461059257806337270936146105b557600080fd5b80630a28a4771161037d57806323b872dd1161034c57806323b872dd1461051157806324f48bc5146105245780632954018c14610537578063313ce5671461055d57600080fd5b80630a28a477146104d957806318160ddd146104ec57806320662c12146104f4578063223e5479146104fc57600080fd5b80630696819f116103b95780630696819f1461047957806306fdde031461049e57806307a2d13a146104b3578063095ea7b3146104c657600080fd5b8063017e7e58146103eb57806301e1d1141461041c57806301f59d161461043257806301ffc9a71461043c575b600080fd5b600454600160401b90046001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b610424610a51565b604051908152602001610413565b610424624c4b4081565b61046961044a366004613fb0565b6001600160e01b03191660009081526010602052604090205460ff1690565b6040519015158152602001610413565b6004546001600160401b03165b6040516001600160701b039091168152602001610413565b6104a6610b4a565b6040516104139190613ffe565b6104246104c1366004614031565b610bdc565b6104696104d436600461405f565b610cd7565b6104246104e7366004614031565b610cef565b600d54610424565b600954610424565b61050f61050a36600461408b565b610d29565b005b61046961051f3660046140a8565b61105b565b61050f61053236600461408b565b61107f565b7f00000000000000000000000000000000000000000000000000000000000000006103ff565b6105656110f0565b60405160ff9091168152602001610413565b600554610424565b61050f61058d366004614134565b611174565b61059d6305f5e10081565b6040516001600160401b039091168152602001610413565b6002546103ff906001600160a01b031681565b7f00000000000000000000000000000000000000000000000000000000000000006103ff565b6103ff6105fc3660046141b7565b6112de565b61042461060f36600461408b565b5060001990565b61050f610624366004614031565b61134f565b610424610637366004614031565b611398565b61050f61064a3660046141e9565b6113c2565b6106767f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610413565b6106b27f3274074eff271bc15d0708e27d15d377311d17037921a699ab19e344473283f781565b6040516001600160e01b03199091168152602001610413565b6103ff6114ec565b6106e66106e136600461408b565b611570565b60408051928352901515602083015201610413565b61042461070936600461421c565b6115b5565b61042461071c36600461408b565b6001600160a01b03166000908152600b602052604090205490565b61050f611615565b61075261074d366004614031565b611629565b604080516001600160a01b039093168352602083019190915201610413565b600354600160a01b90046001600160401b0316610486565b6103ff6116cb565b61050f61079f366004614031565b61172b565b6001546001600160a01b03166103ff565b61050f6107c3366004614031565b611738565b6104246107d636600461421c565b611757565b6104a66117b8565b61050f6107f136600461408b565b6117c7565b61042460125481565b61042461080d36600461424c565b611838565b61050f6108203660046141b7565b611a64565b610838610833366004614031565b611a90565b604080516001600160a01b039093168352901515602083015201610413565b61046961086536600461405f565b611ac6565b610424610878366004614031565b611ad4565b61042461088b36600461429d565b611b01565b61042461089e36600461429d565b611b35565b61050f6108b13660046142df565b611b77565b6104246108c4366004614031565b611c4f565b610424611d3a565b6104246108df36600461408b565b611e06565b6003546103ff906001600160a01b031681565b61042461090536600461408b565b611e28565b610424610918366004614304565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b610469610951366004614332565b611e46565b610969610964366004614031565b611fb5565b6040805182516001600160a01b03908116825260208085015182169083015283830151169181019190915260608083015163ffffffff908116918301919091526080808401519091169082015260a0918201519181019190915260c001610413565b61050f6109d9366004614031565b612066565b6104246109ec366004614031565b612082565b61050f6109ff36600461408b565b6120b8565b61050f610a1236600461408b565b6120f3565b61050f610a25366004614031565b61218d565b6103ff7f000000000000000000000000000000000000000000000000000000000000000081565b6000610b45610a5e6116cb565b604051625538a360e61b81523060048201526001600160a01b03919091169063154e28c090602401602060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906143d3565b610acf6116cb565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906143d3565b610b3b90600a6144e9565b600d5491906122b7565b905090565b6060600e8054610b59906144f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610b85906144f5565b8015610bd25780601f10610ba757610100808354040283529160200191610bd2565b820191906000526020600020905b815481529060010190602001808311610bb557829003601f168201915b5050505050905090565b6000610cd1610be96116cb565b604051625538a360e61b81523060048201526001600160a01b03919091169063154e28c0906024015b602060405180830381865afa158015610c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5391906143d3565b610c5b6116cb565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbc91906143d3565b610cc790600a6144e9565b849190600061237b565b92915050565b600033610ce58185856123cc565b5060019392505050565b600080610cfb836123de565b9050610d1881610d136004546001600160401b031690565b61248d565b610d22908261452f565b9392505050565b610d316124b1565b7f00000000000000000000000000000000000000000000000000000000000000006040516317475d5760e11b81526001600160a01b0383811660048301529190911690632e8ebaae90602401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190614542565b610e0f5760405162461bcd60e51b815260206004820152601d60248201527f4d6161745661756c7456313a20496e76616c696420737472617465677900000060448201526064015b60405180910390fd5b6000816001600160a01b03166342fda9c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7391906143d3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f019190614564565b6001600160a01b031614610f755760405162461bcd60e51b815260206004820152603560248201527f4d6161745661756c7456313a2043616e6e6f7420616464207374726174656779604482015274081dda5d1a08191a5999995c995b9d08185cdcd95d605a1b6064820152608401610e06565b6000818152600760205260409020546001600160a01b031615610fe65760405162461bcd60e51b8152602060048201526024808201527f4d6161745661756c7456313a20537472617465677920616c72656164792065786044820152636973747360e01b6064820152608401610e06565b600081815260076020908152604080832080546001600160a81b0319166001600160a01b038716908117600160a01b179091558352600882529182902083905590518281527f235b19d3823713b155f53f62555ffd7d9e05aaca12be475fd4431810e4b6fe3d91015b60405180910390a15050565b6000336110698582856124de565b61107485858561255c565b506001949350505050565b6110876124b1565b600354604080516001600160a01b03928316815291831660208301527f946224670affd7082c3a9ec92634912948778116e7394ceba2934265d0933f2f910160405180910390a1600380546001600160a01b0319166001600160a01b0392909216919091179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611150573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190614581565b61117c6124b1565b82811461119b5760405162461bcd60e51b8152600401610e06906145a4565b60005b838110156112d75760006006818787858181106111bd576111bd6145e5565b90506020020160208101906111d291906141b7565b63ffffffff1681526020810191909152604001600020546001600160a01b0316146112495760405162461bcd60e51b815260206004820152602160248201527f4d6161745661756c7456313a205661756c7420616c72656164792065786973746044820152607360f81b6064820152608401610e06565b82828281811061125b5761125b6145e5565b9050602002016020810190611270919061408b565b60066000878785818110611286576112866145e5565b905060200201602081019061129b91906141b7565b63ffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905560010161119e565b5050505050565b63ffffffff81166000908152600660205260409020546001600160a01b03168061134a5760405162461bcd60e51b815260206004820152601c60248201527f4d6161745661756c7456313a205661756c74206e6f7420666f756e64000000006044820152606401610e06565b919050565b6113576124b1565b60095460408051918252602082018390527f294f9ad07795d764c18f6bcd373150ce68cfd08b97a3b3c26c5b34902e0a9115910160405180910390a1600955565b6000610cd16113b383610d136004546001600160401b031690565b6113bd90846145fb565b6125bb565b6113ca6124b1565b624c4b40826001600160401b03161080156113f05750624c4b40816001600160401b0316105b61144c5760405162461bcd60e51b815260206004820152602760248201527f4d6161745661756c7456313a20466565206973206d6f7265207468616e206d61604482015266782076616c756560c81b6064820152608401610e06565b60035460045460408051600160a01b9093046001600160401b039081168452858116602085015291821690830152821660608201527fae549d3c99752f0c9bbece7126f0b9b4f8edbe7dd5c3bd0a83d2282a81c01fe19060800160405180910390a16003805467ffffffffffffffff60a01b1916600160a01b6001600160401b03948516021790556004805467ffffffffffffffff191691909216179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663628cda6d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190614564565b60008061157c836125f6565b50506001600160a01b03166000908152600860209081526040808320548084526007909252909120549091600160a01b90910460ff1690565b60006115bf61262c565b6115c883612656565b6001600160a01b0382166115ee5760405162461bcd60e51b8152600401610e069061460e565b60006115f984611c4f565b905061160784823386612679565b9250610cd191506127ea9050565b61161d6124b1565b61162760006127f1565b565b60008061163461262c565b60008061164085612843565b60405163a9059cbb60e01b81526001600160a01b0383166004820152602481018290529193509150309063a9059cbb906044016020604051808303816000875af1158015611692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b69190614542565b5090925090506116c66001601155565b915091565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154c573d6000803e3d6000fd5b6117336124b1565b601255565b6117406124b1565b61174981612a5c565b611754816000612a91565b50565b600061176161262c565b6001600160a01b0382166117875760405162461bcd60e51b8152600401610e069061460e565b600061179284610bdc565b905061179d81612656565b6117a981853386612679565b509150610cd190506001601155565b6060600f8054610b59906144f5565b6117cf6124b1565b600254604080516001600160a01b03928316815291831660208301527f8b62c0d2144ea374df3cb9bef4a071c76987110627d71538d0f807ce4130c804910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b600061184261262c565b600061184d866125bb565b905061185881612656565b6118628433612aef565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168563ffffffff161480611937575061189f6114ec565b60405163568189f760e11b815263ffffffff871660048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063ad0313ee90604401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614542565b61199e5760405162461bcd60e51b815260206004820152603260248201527f4d6161745661756c7456313a20436861696e206973206e6f7420737570706f726044820152711d195908199bdc881dda5d1a191c985dd85b60721b6064820152608401610e06565b6119a6612b2c565b6040516323b872dd60e01b815290925030906323b872dd906119d090879084908b9060040161464f565b6020604051808303816000875af11580156119ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a139190614542565b506000611a1f87611398565b9050611a508386867f00000000000000000000000000000000000000000000000000000000000000008a8c87612b91565b5050611a5c6001601155565b949350505050565b611a6c6124b1565b63ffffffff16600090815260066020526040902080546001600160a01b0319169055565b600080611a9c83612a5c565b50506000908152600760205260409020546001600160a01b03811691600160a01b90910460ff1690565b600033610ce581858561255c565b6000610cd1611af783610d136003546001600160401b03600160a01b9091041690565b6104c1908461452f565b6000611b0b61262c565b611b1484612656565b611b1e8233612aef565b611b29848484612e45565b9050610d226001601155565b6000611b3f61262c565b6000611b4a856125bb565b9050611b5581612656565b611b5f8333612aef565b611b6a858585612f4a565b915050610d226001601155565b611b7f6114ec565b6001600160a01b0316336001600160a01b031614611bf35760405162461bcd60e51b815260206004820152602b60248201527f4d6161745661756c7456313a2043616c6c6572206973206e6f7420737461726760448201526a30ba329030b230b83a32b960a91b6064820152608401610e06565b611c0483611bff6114ec565b61304f565b6040805184815263ffffffff841660208201529081018290527f2bc1ede269ce819b18637817fcafba2aae7fe81bf0f54ddd41f186b1f8d1def09060600160405180910390a1505050565b6000610cd1611c5c6116cb565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd91906143d3565b611cc890600a6144e9565b611cd06116cb565b604051625538a360e61b81523060048201526001600160a01b03919091169063154e28c0906024015b602060405180830381865afa158015611d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc791906143d3565b6003546000906001600160a01b0316331480611d6057506001546001600160a01b031633145b611dc05760405162461bcd60e51b815260206004820152602b60248201527f4d6161745661756c7456313a2043616c6c6572206973206e6f7420776174636860448201526a32b91037b91030b236b4b760a91b6064820152608401610e06565b611dc8612b2c565b90507fc476a80ecea4f64319c17d06bd42cbcce5df91810c9fc5a9c412b193ec17fa7081604051611dfb91815260200190565b60405180910390a190565b6001600160a01b0381166000908152600b6020526040812054610cd190610bdc565b6001600160a01b0381166000908152600b6020526040812054610cd1565b6002546000906001600160a01b0316331480611e6c57506001546001600160a01b031633145b611ece5760405162461bcd60e51b815260206004820152602d60248201527f4d6161745661756c7456313a2043616c6c6572206973206e6f7420636f6d6d6160448201526c373232b91037b91030b236b4b760991b6064820152608401610e06565b83828114611eee5760405162461bcd60e51b8152600401610e06906145a4565b60008111611f3e5760405162461bcd60e51b815260206004820152601860248201527f4d6161745661756c7456313a20456d70747920696e70757400000000000000006044820152606401610e06565b60005b81811015611fa857611fa0878783818110611f5e57611f5e6145e5565b9050602002016020810190611f739190614673565b868684818110611f8557611f856145e5565b905060800201803603810190611f9b9190614694565b61308d565b600101611f41565b5060019695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152611ff08261313f565b506000908152600a6020908152604091829020825160c08101845281546001600160a01b039081168252600183015481169382019390935260028201549283169381019390935263ffffffff600160a01b830481166060850152600160c01b90920490911660808301526003015460a082015290565b61206e6124b1565b61207781612a5c565b611754816001612a91565b60008061208e83611c4f565b90506120ae81610d136003546001600160401b03600160a01b9091041690565b610d2290826145fb565b6120c06124b1565b6001600160a01b0381166120ea57604051631e4fbdf760e01b815260006004820152602401610e06565b611754816127f1565b6120fb6124b1565b6001600160a01b03811661215c5760405162461bcd60e51b815260206004820152602260248201527f4d6161745661756c7456313a20466565546f206973207a65726f206164647265604482015261737360f01b6064820152608401610e06565b600480546001600160a01b03909216600160401b0268010000000000000000600160e01b0319909216919091179055565b6121956124b1565b61219e81612a5c565b600081815260076020526040908190205490516370a0823160e01b81523060048201526001600160a01b039091169081906370a0823190602401602060405180830381865afa1580156121f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221991906143d3565b1561227d5760405162461bcd60e51b815260206004820152602e60248201527f4d6161745661756c7456313a2043616e6e6f742064656c65746520737472617460448201526d65677920776974682066756e647360901b6064820152608401610e06565b600091825260076020908152604080842080546001600160a81b03191690556001600160a01b0392909216835260089052812055565b5050565b60008383028160001985870982811083820303915050806000036122ee578382816122e4576122e4614710565b0492505050610d22565b80841161230e5760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6000806123898686866122b7565b9050612394836131fe565b80156123b05750600084806123ab576123ab614710565b868809115b156123c3576123c060018261452f565b90505b95945050505050565b6123d9838383600161322b565b505050565b6000610cd16123eb6116cb565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244c91906143d3565b61245790600a6144e9565b61245f6116cb565b60405163192a493760e21b81523060048201526001600160a01b0391909116906364a924dc90602401611cf9565b60006305f5e1006124a76001600160701b03841685614726565b610d22919061473d565b6001546001600160a01b031633146116275760405163118cdaa760e01b8152336004820152602401610e06565b6001600160a01b038381166000908152600c60209081526040808320938616835292905220546000198114612556578181101561254757604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610e06565b6125568484848403600061322b565b50505050565b6001600160a01b03831661258657604051634b637e8f60e11b815260006004820152602401610e06565b6001600160a01b0382166125b05760405163ec442f0560e01b815260006004820152602401610e06565b6123d9838383613300565b6000610cd16125c86116cb565b60405163192a493760e21b81523060048201526001600160a01b0391909116906364a924dc90602401610c12565b6001600160a01b038116600090815260086020526040902054806122b35760405162461bcd60e51b8152600401610e0690614751565b60026011540361264f57604051633ee5aeb560e01b815260040160405180910390fd5b6002601155565b6012548110156117545760405163b3a8a27760e01b815260040160405180910390fd5b6000806126b16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685308961342a565b6126cf85610d136003546001600160401b03600160a01b9091041690565b6126d990866145fb565b90506126e481610bdc565b91506126f03086613484565b60405163a9059cbb60e01b81526001600160a01b038416600482015260248101829052309063a9059cbb906044016020604051808303816000875af115801561273d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127619190614542565b5061277461276f82876145fb565b6134ba565b61277d86613570565b6000612787612b2c565b905080846001600160a01b0316866001600160a01b03167f6e610d335252f97251efcf0ddbb78a6c6d2ae0e5c0e4b123bc0e6de074628a648a866040516127d8929190918252602082015260400190565b60405180910390a45094509492505050565b6001601155565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000818152600a60209081526040808320815160c08101835281546001600160a01b039081168252600183015481169482019490945260028201549384169281019290925263ffffffff600160a01b840481166060840152600160c01b9093049092166080820181905260039092015460a08201528291820361291d5760405162461bcd60e51b815260206004820152602c60248201527f5769746864726177526571756573744c6f6769633a205265717565737420646f60448201526b195cc81b9bdd08195e1a5cdd60a21b6064820152608401610e06565b42600954826080015163ffffffff16612936919061452f565b11156129ac576040805162461bcd60e51b81526020600482015260248101919091527f5769746864726177526571756573744c6f6769633a204e6f7420656e6f75676860448201527f2074696d6520686173207061737365642079657420746f2077697468647261776064820152608401610e06565b8051336001600160a01b03821614612a185760405162461bcd60e51b815260206004820152602960248201527f5769746864726177526571756573744c6f6769633a20556e617574686f72697a60448201526832b21031b0b63632b960b91b6064820152608401610e06565b612a218561358a565b60405185907f6f868d40e825c93388b018873ec15044296481ecb32053f282033d80f2db667290600090a260a0909101519094909350915050565b6000818152600760205260409020546001600160a01b0316806122b35760405162461bcd60e51b8152600401610e0690614751565b600082815260076020908152604091829020805460ff60a01b1916600160a01b851515908102919091179091558251858152918201527facb36b91af963483f3c6c1328f88689fd7a552fdb0b394aebfafc4f7e9ac2355910161104f565b806001600160a01b0316826001600160a01b0316146122b35760405163ea93ab6d60e01b81526001600160a01b0382166004820152602401610e06565b600080546040516bffffffffffffffffffffffff193060601b166020820152603481019190915246605482018190529060740160408051601f1981840301815291905280516020909101206000805491935080612b8883614792565b91905055505090565b6001600160a01b038516612bfe5760405162461bcd60e51b815260206004820152602e60248201527f5769746864726177526571756573744c6f6769633a205265636569766572206960448201526d73207a65726f206164647265737360901b6064820152608401610e06565b6000878152600a6020526040902060020154600160c01b900463ffffffff1615612c7f5760405162461bcd60e51b815260206004820152602c60248201527f5769746864726177526571756573744c6f6769633a205265717565737420616c60448201526b72656164792065786973747360a01b6064820152608401610e06565b6040518060c00160405280876001600160a01b03168152602001866001600160a01b03168152602001856001600160a01b031681526020018463ffffffff1681526020014263ffffffff16815260200183815250600a600089815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160146101000a81548163ffffffff021916908363ffffffff16021790555060808201518160020160186101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160030155905050867fa8dd7f242f639e4dcbb8c139f4fd2f425df52a55251ffeba76b56a93a10e9c648584848a88604051612e349594939291906001600160a01b03958616815260208101949094526040840192909252909216606082015263ffffffff91909116608082015260a00190565b60405180910390a250505050505050565b600080612e51856123de565b9050612e6981610d136004546001600160401b031690565b612e73908261452f565b6040516323b872dd60e01b815290925030906323b872dd90612e9d9086908490879060040161464f565b6020604051808303816000875af1158015612ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee09190614542565b50612ef6848683612ef181876145fb565b6135cb565b60408051868152602081018490526001600160a01b03808616929087169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db91015b60405180910390a4509392505050565b60006001600160a01b0382163014612fc8576040516323b872dd60e01b815230906323b872dd90612f839085908490899060040161464f565b6020604051808303816000875af1158015612fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc69190614542565b505b6000612fe085610d136004546001600160401b031690565b612fea90866145fb565b9050612ff5816125bb565b9150613007848383612ef1818a6145fb565b60408051838152602081018390526001600160a01b03808616929087169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db9101612f3a565b6130846001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682308561342a565b6122b382613570565b805160208201516040830151606084015160008660038111156130b2576130b26147ab565b036130c8576130c283838361361b565b50613137565b60018660038111156130dc576130dc6147ab565b036130ec576130c2838383613810565b6002866003811115613100576131006147ab565b0361311557613110828583613919565b613137565b6003866003811115613129576131296147ab565b036131375761313781613af0565b505050505050565b6000818152600a6020908152604091829020825160c08101845281546001600160a01b03908116808352600184015482169483019490945260028301549081169482019490945263ffffffff600160a01b850481166060830152600160c01b90940490931660808401526003015460a08301526122b35760405162461bcd60e51b815260206004820152601e60248201527f4d6161745661756c7456313a2052657175657374206e6f7420666f756e6400006044820152606401610e06565b60006002826003811115613214576132146147ab565b61321e91906147c1565b60ff166001149050919050565b6001600160a01b0384166132555760405163e602df0560e01b815260006004820152602401610e06565b6001600160a01b03831661327f57604051634a1406b160e11b815260006004820152602401610e06565b6001600160a01b038085166000908152600c60209081526040808320938716835292905220829055801561255657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516132f291815260200190565b60405180910390a350505050565b6001600160a01b03831661332b5780600d6000828254613320919061452f565b9091555061339d9050565b6001600160a01b0383166000908152600b60205260409020548181101561337e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610e06565b6001600160a01b0384166000908152600b602052604090209082900390555b6001600160a01b0382166133b957600d805482900390556133d8565b6001600160a01b0382166000908152600b602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161341d91815260200190565b60405180910390a3505050565b61255684856001600160a01b03166323b872dd8686866040516024016134529392919061464f565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613c1d565b6001600160a01b0382166134ae5760405163ec442f0560e01b815260006004820152602401610e06565b6122b360008383613300565b600454600160401b90046001600160a01b031615806134d7575080155b156134df5750565b3063a9059cbb6134ff6004546001600160a01b03600160401b9091041690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561354c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b39190614542565b8060056000828254613582919061452f565b909155505050565b6000908152600a6020526040812080546001600160a01b0319908116825560018201805490911690556002810180546001600160e01b031916905560030155565b6135d53083613c80565b6136096001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585613cb6565b61361283613ce7565b612556816134ba565b600080600061362986611a90565b91509150806136865760405162461bcd60e51b815260206004820152602360248201527f4d6161745661756c7456313a205374726174656779206973206e6f742061637460448201526269766560e81b6064820152608401610e06565b60405163095ea7b360e01b81526001600160a01b0380841660048301526024820187905283917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af11580156136f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371d9190614542565b5061372786613ce7565b604051636e553f6560e01b8152600481018790523060248201526001600160a01b03821690636e553f65906044016020604051808303816000875af1158015613774573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379891906143d3565b604080518981526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602082015290810188905290945085907f3ff47876a287565af672bad9698560174194746f56f52222bb01f12cae0c2de29060600160405180910390a25050509392505050565b60008061381c85611a90565b50604051632d182be560e21b8152600481018690523060248201819052604482015290915081906001600160a01b0382169063b460af94906064016020604051808303816000875af1158015613876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061389a91906143d3565b92506138a585613570565b604080518781526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602082015290810186905284907f6ddc9b340a8bb3062e32d189b5077cdd3e1f5e4cd9a1b8057b85e92863a7b29a9060600160405180910390a250509392505050565b60006139236114ec565b60405163095ea7b360e01b81526001600160a01b038083166004830152602482018790529192507f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015613997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139bb9190614542565b50806001600160a01b031663868bcddf6139d4856112de565b60405160e083901b6001600160e01b03191681526001600160a01b03918216600482015263ffffffff871660248201527f00000000000000000000000000000000000000000000000000000000000000009091166044820152606481018790526084810185905260a401600060405180830381600087803b158015613a5857600080fd5b505af1158015613a6c573d6000803e3d6000fd5b50505050613a7984613ce7565b6040805163ffffffff851681526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602082015290810185905282907f046d1f78bc908efe0381db9c824cf682873c60a9611a7182fc709d08239b85f99060600160405180910390a250505050565b6000613afb82611fb5565b90506000613b0e8260a001513030612f4a565b90507f000000000000000000000000000000000000000000000000000000000000000063ffffffff16826060015163ffffffff1603613b86576020820151613b81906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083613cb6565b613b99565b613b998183602001518460600151613d6a565b8151602080840151604080516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116825293810186905293831684820152911660608301525184917f3cb962534a29368588bcf8c822d5e9ce1e885bdbfccb6c7341d7ca53c1db4c89919081900360800190a26123d98361358a565b6000613c326001600160a01b03841683613ea9565b90508051600014158015613c57575080806020019051810190613c559190614542565b155b156123d957604051635274afe760e01b81526001600160a01b0384166004820152602401610e06565b6001600160a01b038216613caa57604051634b637e8f60e11b815260006004820152602401610e06565b6122b382600083613300565b6040516001600160a01b038381166024830152604482018390526123d991859182169063a9059cbb90606401613452565b600554811115613d585760405162461bcd60e51b815260206004820152603660248201527f4d6161745661756c7456313a2041726974686d65746963206572726f7220647560448201527572696e672069646c652063616c63756c6174696f6e7360501b6064820152608401610e06565b806005600082825461358291906145fb565b6000613d746114ec565b60405163095ea7b360e01b81526001600160a01b038083166004830152602482018790529192507f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015613de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0c9190614542565b5060405163082a52c960e21b815263ffffffff831660048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660248301526044820186905284811660648301528216906320a94b2490608401600060405180830381600087803b158015613e8b57600080fd5b505af1158015613e9f573d6000803e3d6000fd5b5050505050505050565b6060610d228383600084600080856001600160a01b03168486604051613ecf91906147e3565b60006040518083038185875af1925050503d8060008114613f0c576040519150601f19603f3d011682016040523d82523d6000602084013e613f11565b606091505b5091509150613f21868383613f2b565b9695505050505050565b606082613f4057613f3b82613f87565b610d22565b8151158015613f5757506001600160a01b0384163b155b15613f8057604051639996b31560e01b81526001600160a01b0385166004820152602401610e06565b5080610d22565b805115613f975780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215613fc257600080fd5b81356001600160e01b031981168114610d2257600080fd5b60005b83811015613ff5578181015183820152602001613fdd565b50506000910152565b602081526000825180602084015261401d816040850160208701613fda565b601f01601f19169190910160400192915050565b60006020828403121561404357600080fd5b5035919050565b6001600160a01b038116811461175457600080fd5b6000806040838503121561407257600080fd5b823561407d8161404a565b946020939093013593505050565b60006020828403121561409d57600080fd5b8135610d228161404a565b6000806000606084860312156140bd57600080fd5b83356140c88161404a565b925060208401356140d88161404a565b929592945050506040919091013590565b60008083601f8401126140fb57600080fd5b5081356001600160401b0381111561411257600080fd5b6020830191508360208260051b850101111561412d57600080fd5b9250929050565b6000806000806040858703121561414a57600080fd5b84356001600160401b0381111561416057600080fd5b61416c878288016140e9565b90955093505060208501356001600160401b0381111561418b57600080fd5b614197878288016140e9565b95989497509550505050565b803563ffffffff8116811461134a57600080fd5b6000602082840312156141c957600080fd5b610d22826141a3565b80356001600160401b038116811461134a57600080fd5b600080604083850312156141fc57600080fd5b614205836141d2565b9150614213602084016141d2565b90509250929050565b6000806040838503121561422f57600080fd5b8235915060208301356142418161404a565b809150509250929050565b6000806000806080858703121561426257600080fd5b84359350614272602086016141a3565b925060408501356142828161404a565b915060608501356142928161404a565b939692955090935050565b6000806000606084860312156142b257600080fd5b8335925060208401356142c48161404a565b915060408401356142d48161404a565b809150509250925092565b6000806000606084860312156142f457600080fd5b833592506140d8602085016141a3565b6000806040838503121561431757600080fd5b82356143228161404a565b915060208301356142418161404a565b6000806000806040858703121561434857600080fd5b84356001600160401b0381111561435e57600080fd5b61436a878288016140e9565b90955093505060208501356001600160401b0381111561438957600080fd5b8501601f8101871361439a57600080fd5b80356001600160401b038111156143b057600080fd5b8760208260071b84010111156143c557600080fd5b949793965060200194505050565b6000602082840312156143e557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6001815b600184111561443d57808504811115614421576144216143ec565b600184161561442f57908102905b60019390931c928002614406565b935093915050565b60008261445457506001610cd1565b8161446157506000610cd1565b816001811461447757600281146144815761449d565b6001915050610cd1565b60ff841115614492576144926143ec565b50506001821b610cd1565b5060208310610133831016604e8410600b84101617156144c0575081810a610cd1565b6144cd6000198484614402565b80600019048211156144e1576144e16143ec565b029392505050565b6000610d228383614445565b600181811c9082168061450957607f821691505b60208210810361452957634e487b7160e01b600052602260045260246000fd5b50919050565b80820180821115610cd157610cd16143ec565b60006020828403121561455457600080fd5b81518015158114610d2257600080fd5b60006020828403121561457657600080fd5b8151610d228161404a565b60006020828403121561459357600080fd5b815160ff81168114610d2257600080fd5b60208082526021908201527f4d6161745661756c7456313a20496e76616c696420696e707574206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610cd157610cd16143ec565b60208082526021908201527f4d6161745661756c7456313a204d696e7420546f205a65726f204164647265736040820152607360f81b606082015260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121561468557600080fd5b813560048110610d2257600080fd5b600060808284031280156146a757600080fd5b60009050604051608081018181106001600160401b03821117156146d957634e487b7160e01b83526041600452602483fd5b6040526146e5846141a3565b8152602084810135908201526040808501359082015260609384013593810193909352509092915050565b634e487b7160e01b600052601260045260246000fd5b8082028115828204841417610cd157610cd16143ec565b60008261474c5761474c614710565b500490565b60208082526021908201527f4d6161745661756c7456313a204e6f6e6578697374656e7420737472617465676040820152607960f81b606082015260800190565b6000600182016147a4576147a46143ec565b5060010190565b634e487b7160e01b600052602160045260246000fd5b600060ff8316806147d4576147d4614710565b8060ff84160691505092915050565b600082516147f5818460208701613fda565b919091019291505056fea264697066735822122048dd2fd6cf87c791d3a4026f19e8c40038e79d4aed97f75a01addd288e99ba6d64736f6c634300081a00330000000000000000000000001831532205703b0c9ade6d794d431da1cf50e72d000000000000000000000000201eba5cc46d216ce6dc03f6a759e8e766e956ae00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000006ca228aadd078fcf54254f90fa15c85bcff761dd000000000000000000000000e6cfb9501332c178acd0eda8193671dc1bf9adff000000000000000000000000a694c5fdf9f188590efe77337a588dc0fd19729c00000000000000000000000000000000000000000000000000000000000075e5