[ { "inputs": [], "name": "AccountNotBlocked", "type": "error" }, { "inputs": [], "name": "ArgumentLengthMismatch", "type": "error" }, { "inputs": [], "name": "AuthorizationExpired", "type": "error" }, { "inputs": [], "name": "AuthorizationInvalid", "type": "error" }, { "inputs": [], "name": "BlockedAccountAuthorizer", "type": "error" }, { "inputs": [], "name": "BlockedAccountOwner", "type": "error" }, { "inputs": [], "name": "BlockedAccountReceiver", "type": "error" }, { "inputs": [], "name": "BlockedAccountSender", "type": "error" }, { "inputs": [], "name": "BlockedAccountSpender", "type": "error" }, { "inputs": [], "name": "CallerMustBePayee", "type": "error" }, { "inputs": [], "name": "InvalidOperation", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "InvalidValueS", "type": "error" }, { "inputs": [], "name": "PermitExpired", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "AccountBlocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "AccountUnblocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "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": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationAlreadyUsed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationUsed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "BlockedAccountWiped", "type": "event" }, { "anonymous": false, "inputs": [], "name": "DefaultAdminDelayChangeCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint48", "name": "newDelay", "type": "uint48" }, { "indexed": false, "internalType": "uint48", "name": "effectSchedule", "type": "uint48" } ], "name": "DefaultAdminDelayChangeScheduled", "type": "event" }, { "anonymous": false, "inputs": [], "name": "DefaultAdminTransferCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" }, { "indexed": false, "internalType": "uint48", "name": "acceptSchedule", "type": "uint48" } ], "name": "DefaultAdminTransferScheduled", "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": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "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" }, { "inputs": [], "name": "ASSET_PROTECTION_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CANCEL_AUTHORIZATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSE_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RECEIVE_WITH_AUTHORIZATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TRANSFER_WITH_AUTHORIZATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptDefaultAdminTransfer", "outputs": [], "stateMutability": "nonpayable", "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": "amount", "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": "authorizer", "type": "address" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "authorizationState", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "address", "name": "newAdmin", "type": "address" } ], "name": "beginDefaultAdminTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" } ], "name": "blockAccounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "authorizer", "type": "address" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "cancelAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cancelDefaultAdminTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "newDelay", "type": "uint48" } ], "name": "changeDefaultAdminDelay", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "defaultAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "defaultAdminDelay", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "defaultAdminDelayIncreaseWait", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "contract IERC20Upgradeable", "name": "ybs", "type": "address" }, { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "address", "name": "pauser", "type": "address" }, { "internalType": "address", "name": "assetProtector", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isAddrBlocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxWithdraw", "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": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingDefaultAdmin", "outputs": [ { "internalType": "address", "name": "newAdmin", "type": "address" }, { "internalType": "uint48", "name": "schedule", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingDefaultAdminDelay", "outputs": [ { "internalType": "uint48", "name": "newDelay", "type": "uint48" }, { "internalType": "uint48", "name": "schedule", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "receiveWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "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": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rollbackDefaultAdminDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "blockedAddr", "type": "address" }, { "internalType": "address", "name": "receiverAddr", "type": "address" } ], "name": "seizeAssets", "outputs": [], "stateMutability": "nonpayable", "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": "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": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "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": "amount", "type": "uint256[]" } ], "name": "transferFromBatch", "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" }, { "internalType": "uint256", "name": "validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "transferWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "from", "type": "address[]" }, { "internalType": "address[]", "name": "to", "type": "address[]" }, { "internalType": "uint256[]", "name": "value", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "validAfter", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "validBefore", "type": "uint256[]" }, { "internalType": "bytes32[]", "name": "nonce", "type": "bytes32[]" }, { "internalType": "uint8[]", "name": "v", "type": "uint8[]" }, { "internalType": "bytes32[]", "name": "r", "type": "bytes32[]" }, { "internalType": "bytes32[]", "name": "s", "type": "bytes32[]" } ], "name": "transferWithAuthorizationBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" } ], "name": "unblockAccounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "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": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ]
60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161533c6200011f600039600081816111360152818161117601528181611248015281816112880152611317015261533c6000f3fe6080604052600436106104105760003560e01c806384ef8ffc1161021e578063cc8463c811610123578063d9169487116100ab578063e94a01021161007a578063e94a010214610c95578063ef55bec614610cdc578063ef8b30f714610ac5578063f5968e2d14610cfc578063faed47fd14610d1c57600080fd5b8063d916948714610c01578063dd62ed3e14610c35578063e3ee160e14610c55578063e56f2fe414610c7557600080fd5b8063d505accf116100f2578063d505accf14610b6a578063d547741f14610b8a578063d602b9fd14610baa578063d761b9b114610bbf578063d905777e14610be157600080fd5b8063cc8463c814610ae5578063ce96cb7714610afa578063cefc142914610b1a578063cf6eefb714610b2f57600080fd5b8063a217fddf116101a6578063b460af9411610175578063b460af9414610a65578063ba08765214610a85578063ba1b7e7614610aa5578063c63d75b6146106ed578063c6e6f59214610ac557600080fd5b8063a217fddf146109f0578063a457c2d714610a05578063a9059cbb14610a25578063b3d7f6b914610a4557600080fd5b806395d89b41116101ed57806395d89b41146109195780639e1bdd5b1461092e578063a0ab605c14610968578063a0cc6a6814610988578063a1eda53c146109bc57600080fd5b806384ef8ffc146108a65780638da5cb5b146108c457806391d14854146108d957806394bf804d146108f957600080fd5b8063389ed267116103245780635c975abb116102ac5780636e553f651161027b5780636e553f65146107d057806370a08231146107f05780637ecebe00146108265780637f2eecc31461085d5780638456cb591461089157600080fd5b80635c975abb14610757578063634e93da14610770578063649a5ec7146107905780636abf7081146107b057600080fd5b8063402d267d116102f3578063402d267d146106ed5780634cdad506146104b85780634f1ef2861461070f57806352d1902d146107225780635a049a701461073757600080fd5b8063389ed2671461066457806338d52e0f1461068657806339509351146106b85780633f4ba83a146106d857600080fd5b806318160ddd116103a757806330adf81f1161037657806330adf81f146105b4578063313ce567146105e85780633644e5151461060f57806336568abe146106245780633659cfe61461064457600080fd5b806318160ddd1461052f57806323b872dd14610544578063248a9ca3146105645780632f2ff15d1461059457600080fd5b806307a2d13a116103e357806307a2d13a146104b8578063095ea7b3146104d85780630a28a477146104f85780630aa6220b1461051857600080fd5b806301e1d1141461041557806301ffc9a71461043d578063022d63fb1461046d57806306fdde0314610496575b600080fd5b34801561042157600080fd5b5061042a610d3c565b6040519081526020015b60405180910390f35b34801561044957600080fd5b5061045d61045836600461447a565b610dae565b6040519015158152602001610434565b34801561047957600080fd5b50620697805b60405165ffffffffffff9091168152602001610434565b3480156104a257600080fd5b506104ab610dd9565b60405161043491906144c8565b3480156104c457600080fd5b5061042a6104d33660046144fb565b610e6b565b3480156104e457600080fd5b5061045d6104f3366004614529565b610e78565b34801561050457600080fd5b5061042a6105133660046144fb565b610e95565b34801561052457600080fd5b5061052d610ea2565b005b34801561053b57600080fd5b5060355461042a565b34801561055057600080fd5b5061045d61055f366004614555565b610eb8565b34801561057057600080fd5b5061042a61057f3660046144fb565b600090815260c9602052604090206001015490565b3480156105a057600080fd5b5061052d6105af366004614596565b610efd565b3480156105c057600080fd5b5061042a7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b3480156105f457600080fd5b506105fd610f7c565b60405160ff9091168152602001610434565b34801561061b57600080fd5b5061042a610f96565b34801561063057600080fd5b5061052d61063f366004614596565b611042565b34801561065057600080fd5b5061052d61065f3660046145c6565b61112c565b34801561067057600080fd5b5061042a6000805160206152e783398151915281565b34801561069257600080fd5b506065546001600160a01b03165b6040516001600160a01b039091168152602001610434565b3480156106c457600080fd5b5061045d6106d3366004614529565b611208565b3480156106e457600080fd5b5061052d61121e565b3480156106f957600080fd5b5061042a6107083660046145c6565b5060001990565b61052d61071d366004614682565b61123e565b34801561072e57600080fd5b5061042a61130a565b34801561074357600080fd5b5061052d6107523660046146fc565b6113bd565b34801561076357600080fd5b506101915460ff1661045d565b34801561077c57600080fd5b5061052d61078b3660046145c6565b611558565b34801561079c57600080fd5b5061052d6107ab36600461474c565b61156c565b3480156107bc57600080fd5b5061052d6107cb3660046147c0565b611580565b3480156107dc57600080fd5b5061042a6107eb366004614596565b6115e0565b3480156107fc57600080fd5b5061042a61080b3660046145c6565b6001600160a01b031660009081526033602052604090205490565b34801561083257600080fd5b5061042a6108413660046145c6565b6001600160a01b031660009081526101c3602052604090205490565b34801561086957600080fd5b5061042a7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b34801561089d57600080fd5b5061052d6115fa565b3480156108b257600080fd5b5060fc546001600160a01b03166106a0565b3480156108d057600080fd5b506106a061161a565b3480156108e557600080fd5b5061045d6108f4366004614596565b61162e565b34801561090557600080fd5b5061042a610914366004614596565b611659565b34801561092557600080fd5b506104ab611673565b34801561093a57600080fd5b5061045d6109493660046145c6565b6001600160a01b031660009081526101d9602052604090205460ff1690565b34801561097457600080fd5b5061052d610983366004614802565b611682565b34801561099457600080fd5b5061042a7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b3480156109c857600080fd5b506109d16117e0565b6040805165ffffffffffff938416815292909116602083015201610434565b3480156109fc57600080fd5b5061042a600081565b348015610a1157600080fd5b5061045d610a20366004614529565b611834565b348015610a3157600080fd5b5061045d610a40366004614529565b61187a565b348015610a5157600080fd5b5061042a610a603660046144fb565b611892565b348015610a7157600080fd5b5061042a610a80366004614830565b61189f565b348015610a9157600080fd5b5061042a610aa0366004614830565b611913565b348015610ab157600080fd5b5061045d610ac0366004614872565b611987565b348015610ad157600080fd5b5061042a610ae03660046144fb565b611a45565b348015610af157600080fd5b5061047f611a52565b348015610b0657600080fd5b5061042a610b153660046145c6565b611ab1565b348015610b2657600080fd5b5061052d611ad5565b348015610b3b57600080fd5b50610b44611b53565b604080516001600160a01b03909316835265ffffffffffff909116602083015201610434565b348015610b7657600080fd5b5061052d610b8536600461490c565b611b74565b348015610b9657600080fd5b5061052d610ba5366004614596565b611cff565b348015610bb657600080fd5b5061052d611d7c565b348015610bcb57600080fd5b5061042a60008051602061528083398151915281565b348015610bed57600080fd5b5061042a610bfc3660046145c6565b611d8f565b348015610c0d57600080fd5b5061042a7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b348015610c4157600080fd5b5061042a610c50366004614802565b611dad565b348015610c6157600080fd5b5061052d610c7036600461497a565b611dd8565b348015610c8157600080fd5b5061052d610c90366004614a1c565b611e1d565b348015610ca157600080fd5b5061045d610cb0366004614529565b6001600160a01b039190911660009081526101ce60209081526040808320938352929052205460ff1690565b348015610ce857600080fd5b5061052d610cf736600461497a565b611fd8565b348015610d0857600080fd5b5061052d610d17366004614c20565b61203b565b348015610d2857600080fd5b5061052d610d373660046147c0565b6121f6565b6065546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da99190614d85565b905090565b60006001600160e01b031982166318a4c3c360e11b1480610dd35750610dd382612250565b92915050565b606060368054610de890614d9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1490614d9e565b8015610e615780601f10610e3657610100808354040283529160200191610e61565b820191906000526020600020905b815481529060010190602001808311610e4457829003601f168201915b5050505050905090565b6000610dd3826000612285565b6000610e8433846122bf565b610e8e838361233d565b9392505050565b6000610dd382600161234b565b6000610ead8161237b565b610eb5612385565b50565b3360009081526101d9602052604081205460ff1615610eea576040516303926e9960e11b815260040160405180910390fd5b610ef5848484612392565b949350505050565b81610f6e5760405162461bcd60e51b815260206004820152603660248201527f416363657373436f6e74726f6c3a2063616e2774206469726563746c79206772604482015275616e742064656661756c742061646d696e20726f6c6560501b60648201526084015b60405180910390fd5b610f7882826123b6565b5050565b600080606554610da99190600160a01b900460ff16614dee565b6000610da9610fa3610dd9565b60408051808201825260018152603160f81b60209182015282519281019290922081517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808301919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528251808303909101815260c0909101909152805191012090565b8115801561105d575060fc546001600160a01b038281169116145b156111225760008061106d611b53565b90925090506001600160a01b038216158015611090575065ffffffffffff811615155b80156110a357504265ffffffffffff8216105b61110d5760405162461bcd60e51b815260206004820152603560248201527f416363657373436f6e74726f6c3a206f6e6c792063616e2072656e6f756e636560448201527420696e2074776f2064656c6179656420737465707360581b6064820152608401610f65565b505060fb805465ffffffffffff60a01b191690555b610f7882826123e0565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111745760405162461bcd60e51b8152600401610f6590614e07565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111bd6000805160206152a0833981519152546001600160a01b031690565b6001600160a01b0316146111e35760405162461bcd60e51b8152600401610f6590614e53565b6111ec8161245a565b60408051600080825260208201909252610eb591839190612465565b600061121433846122bf565b610e8e83836125d0565b6000805160206152e78339815191526112368161237b565b610eb56125f2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112865760405162461bcd60e51b8152600401610f6590614e07565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112cf6000805160206152a0833981519152546001600160a01b031690565b6001600160a01b0316146112f55760405162461bcd60e51b8152600401610f6590614e53565b6112fe8261245a565b610f7882826001612465565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113aa5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f65565b506000805160206152a083398151915290565b6113c5612645565b6001600160a01b03851660009081526101d9602052604090205460ff161561140057604051632417fbe360e11b815260040160405180910390fd5b6001600160a01b03851660009081526101ce6020908152604080832087845290915290205460ff16156114685760405184906001600160a01b038716907fd309466d0e5c5e3b306abfb2c1e7f3b4318b670dbd1236cc92288848a27384cb90600090a3611551565b604080517f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960208201526001600160a01b0387168183018190526060808301889052835180840390910181526080909201909252906114d16114c8610f96565b8686868661268c565b6001600160a01b0316146114f857604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b03861660008181526101ce60209081526040808320898452909152808220805460ff19166001179055518792917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505b5050505050565b60006115638161237b565b610f78826126ee565b60006115778161237b565b610f7882612761565b6000805160206152808339815191526115988161237b565b60005b828110156115da576115d28484838181106115b8576115b8614e9f565b90506020020160208101906115cd91906145c6565b6127d1565b60010161159b565b50505050565b6000806115ec84611a45565b9050610e8e3384868461281e565b6000805160206152e78339815191526116128161237b565b610eb5612865565b6000610da960fc546001600160a01b031690565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061166584611892565b9050610e8e3384838761281e565b606060378054610de890614d9e565b60008051602061528083398151915261169a8161237b565b6001600160a01b03831660009081526101d9602052604090205460ff166116d4576040516373c8217360e11b815260040160405180910390fd5b6001600160a01b03821660009081526101d9602052604090205460ff161561170f5760405163104f843760e31b815260040160405180910390fd5b6001600160a01b0383166000908152603360205260408120549061173282610e6b565b905061173e85836128a3565b61175a6117536065546001600160a01b031690565b85836129e3565b60408051828152602081018490526001600160a01b03808816929087169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a46040516001600160a01b038616907fac8acd36af3fbb7cdc39d92600a7703b817b76e4381aec78a67b500f8906c31490600090a25050505050565b60fc54600090600160d01b900465ffffffffffff16801515801561180c57504265ffffffffffff821610155b6118185760008061182c565b60fc54600160a01b900465ffffffffffff16815b915091509091565b600061183e612645565b3360009081526101d9602052604090205460ff161561187057604051634a8689b160e11b815260040160405180910390fd5b610e8e8383612a46565b600033611888818585612ac1565b5060019392505050565b6000610dd3826001612285565b60006118aa82611ab1565b8411156118f95760405162461bcd60e51b815260206004820152601f60248201527f455243343632363a207769746864726177206d6f7265207468616e206d6178006044820152606401610f65565b600061190485610e95565b9050610ef53385858885612acc565b600061191e82611d8f565b84111561196d5760405162461bcd60e51b815260206004820152601d60248201527f455243343632363a2072656465656d206d6f7265207468616e206d61780000006044820152606401610f65565b600061197885610e6b565b9050610ef53385858489612acc565b6000838614801561199757508186145b6119b457604051634b87fa4960e11b815260040160405180910390fd5b60005b86811015611a3757611a2e8888838181106119d4576119d4614e9f565b90506020020160208101906119e991906145c6565b8787848181106119fb576119fb614e9f565b9050602002016020810190611a1091906145c6565b868685818110611a2257611a22614e9f565b90506020020135610eb8565b506001016119b7565b506001979650505050505050565b6000610dd382600061234b565b60fc54600090600160d01b900465ffffffffffff168015158015611a7d57504265ffffffffffff8216105b611a985760fb54600160d01b900465ffffffffffff16611aab565b60fc54600160a01b900465ffffffffffff165b91505090565b6001600160a01b038116600090815260336020526040812054610dd3906000612285565b6000611adf611b53565b509050336001600160a01b03821614611b4b5760405162461bcd60e51b815260206004820152602860248201527f416363657373436f6e74726f6c3a2070656e64696e672061646d696e206d75736044820152671d081858d8d95c1d60c21b6064820152608401610f65565b610eb5612baa565b60fb546001600160a01b03811691600160a01b90910465ffffffffffff1690565b611b7c612645565b42841015611b9d5760405163068568f360e21b815260040160405180910390fd5b6001600160a01b03871660009081526101d9602052604090205460ff1615611bd85760405163674a6a8160e11b815260040160405180910390fd5b6001600160a01b03861660009081526101d9602052604090205460ff1615611c13576040516303926e9960e11b815260040160405180910390fd5b6001600160a01b03871660009081526101c36020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a919086611c6183614eb5565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040529050876001600160a01b0316611cc36114c8610f96565b6001600160a01b031614611cea57604051638baa579f60e01b815260040160405180910390fd5b611cf5888888612c75565b5050505050505050565b81611d725760405162461bcd60e51b815260206004820152603760248201527f416363657373436f6e74726f6c3a2063616e2774206469726563746c7920726560448201527f766f6b652064656661756c742061646d696e20726f6c650000000000000000006064820152608401610f65565b610f788282612c80565b6000611d878161237b565b610eb5612ca5565b6001600160a01b038116600090815260336020526040812054610dd3565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b611de0612645565b611e127f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a22678a8a8a8a8a8a8a8a8a612cb0565b505050505050505050565b600054610100900460ff1615808015611e3d5750600054600160ff909116105b80611e575750303b158015611e57575060005460ff166001145b611eba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610f65565b6000805460ff191660011790558015611edd576000805461ff0019166101001790555b6001600160a01b0385161580611efa57506001600160a01b038316155b80611f0c57506001600160a01b038216155b15611f2a5760405163d92e233d60e01b815260040160405180910390fd5b611f348787612e4e565b611f3d85612e7f565b611f49612a3085612eaf565b611f51612ee0565b611f59612f0f565b611f716000805160206152e783398151915284612f36565b611f8960008051602061528083398151915283612f36565b8015611fcf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b611fe0612645565b6001600160a01b038816331461200957604051635454b17d60e01b815260040160405180910390fd5b611e127fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de88a8a8a8a8a8a8a8a8a612cb0565b612043612645565b88518851148015612055575088518751145b8015612062575088518651145b801561206f575088518551145b801561207c575088518451145b8015612089575088518351145b8015612096575088518251145b80156120a3575088518151145b6120c057604051634b87fa4960e11b815260040160405180910390fd5b60005b89518110156121ea576121e27f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760001b8b838151811061210557612105614e9f565b60200260200101518b848151811061211f5761211f614e9f565b60200260200101518b858151811061213957612139614e9f565b60200260200101518b868151811061215357612153614e9f565b60200260200101518b878151811061216d5761216d614e9f565b60200260200101518b888151811061218757612187614e9f565b60200260200101518b89815181106121a1576121a1614e9f565b60200260200101518b8a815181106121bb576121bb614e9f565b60200260200101518b8b815181106121d5576121d5614e9f565b6020026020010151612cb0565b6001016120c3565b50505050505050505050565b60008051602061528083398151915261220e8161237b565b60005b828110156115da5761224884848381811061222e5761222e614e9f565b905060200201602081019061224391906145c6565b612fe0565b600101612211565b60006001600160e01b03198216637965db0b60e01b1480610dd357506301ffc9a760e01b6001600160e01b0319831614610dd3565b6000610e8e612292610d3c565b61229d906001614ece565b6122a96000600a614fc5565b6035546122b69190614ece565b8591908561302a565b6122c7612645565b6001600160a01b03821660009081526101d9602052604090205460ff161561230257604051634a8689b160e11b815260040160405180910390fd5b6001600160a01b03811660009081526101d9602052604090205460ff1615610f78576040516303926e9960e11b815260040160405180910390fd5b600033611888818585612c75565b6000610e8e61235b82600a614fc5565b6035546123689190614ece565b612370610d3c565b6122b6906001614ece565b610eb58133613087565b6123906000806130e0565b565b6000336123a08582856131a0565b6123ab858585612ac1565b506001949350505050565b600082815260c960205260409020600101546123d18161237b565b6123db8383612f36565b505050565b6001600160a01b03811633146124505760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610f65565b610f788282613214565b6000610f788161237b565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612498576123db8361324f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124f2575060408051601f3d908101601f191682019092526124ef91810190614d85565b60015b6125555760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610f65565b6000805160206152a083398151915281146125c45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610f65565b506123db8383836132eb565b6000336118888185856125e38383611dad565b6125ed9190614ece565b612c75565b6125fa613310565b610191805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6101915460ff16156123905760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610f65565b6000808683805190602001206040516020016126bf92919061190160f01b81526002810192909252602282015260420190565b6040516020818303038152906040528051906020012090506126e38187878761335a565b979650505050505050565b60006126f8611a52565b61270142613425565b61270b9190614fd4565b90506127178282613490565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b600061276c8261350f565b61277542613425565b61277f9190614fd4565b905061278b82826130e0565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b6001600160a01b03811660008181526101d96020526040808220805460ff19166001179055517f28e9b38569d728986e5868b0e113d9a49ee4c47dfc6db29a673e25b3515a56a89190a250565b6001600160a01b03841660009081526101d9602052604090205460ff161561285957604051634a8689b160e11b815260040160405180910390fd5b6115da84848484613557565b61286d612645565b610191805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586126283390565b6001600160a01b0382166129035760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610f65565b61290f826000836135d5565b6001600160a01b038216600090815260336020526040902054818110156129835760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610f65565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b0383166024820152604481018290526123db90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526136ad565b60003381612a548286611dad565b905083811015612ab45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610f65565b6123ab8286868403612c75565b6123db838383613782565b6001600160a01b03841660009081526101d9602052604090205460ff1615612b075760405163104f843760e31b815260040160405180910390fd5b6001600160a01b03851660009081526101d9602052604090205460ff1615612b42576040516303926e9960e11b815260040160405180910390fd5b612b5a6000805160206152808339815191528661162e565b8015612b7f57506001600160a01b03831660009081526101d9602052604090205460ff165b15612b9d57604051631cc6a69960e11b815260040160405180910390fd5b6115518585858585613938565b600080612bb5611b53565b91509150612bca8165ffffffffffff16151590565b8015612bdd57504265ffffffffffff8216105b612c3a5760405162461bcd60e51b815260206004820152602860248201527f416363657373436f6e74726f6c3a207472616e736665722064656c6179206e6f6044820152671d081c185cdcd95960c21b6064820152608401610f65565b612c566000612c5160fc546001600160a01b031690565b613214565b612c61600083612f36565b505060fb80546001600160d01b0319169055565b6123db8383836139e4565b600082815260c96020526040902060010154612c9b8161237b565b6123db8383613214565b612390600080613490565b854211612cd057604051631920d7e560e31b815260040160405180910390fd5b844210612cf057604051630f05f5bf60e01b815260040160405180910390fd5b6001600160a01b03891660009081526101ce6020908152604080832087845290915290205460ff1615612d585760405184906001600160a01b038b16907fd309466d0e5c5e3b306abfb2c1e7f3b4318b670dbd1236cc92288848a27384cb90600090a36121ea565b60408051602081018c90526001600160a01b038b8116828401819052908b166060830152608082018a905260a0820189905260c0820188905260e08083018890528351808403909101815261010090920190925290612db86114c8610f96565b6001600160a01b031614612ddf57604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b038a1660008181526101ce60209081526040808320898452909152808220805460ff19166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a3612e418a8a8a612ac1565b5050505050505050505050565b600054610100900460ff16612e755760405162461bcd60e51b8152600401610f6590614ffa565b610f788282613b08565b600054610100900460ff16612ea65760405162461bcd60e51b8152600401610f6590614ffa565b610eb581613b48565b600054610100900460ff16612ed65760405162461bcd60e51b8152600401610f6590614ffa565b610f788282613bcd565b600054610100900460ff16612f075760405162461bcd60e51b8152600401610f6590614ffa565b612390613c74565b600054610100900460ff166123905760405162461bcd60e51b8152600401610f6590614ffa565b81612fd6576000612f4f60fc546001600160a01b031690565b6001600160a01b031614612fba5760405162461bcd60e51b815260206004820152602c60248201527f416363657373436f6e74726f6c3a2064656661756c742061646d696e20616c7260448201526b1958591e4819dc985b9d195960a21b6064820152608401610f65565b60fc80546001600160a01b0319166001600160a01b0383161790555b610f788282613ca8565b6001600160a01b03811660008181526101d96020526040808220805460ff19169055517fa240927645d1251d97459a96c490f3efd3af585e7b0da4814c92aad8ef6ebbf69190a250565b600080613038868686613d2e565b9050600183600281111561304e5761304e615045565b14801561306b5750600084806130665761306661505b565b868809115b1561307e5761307b600182614ece565b90505b95945050505050565b613091828261162e565b610f785761309e81613e18565b6130a9836020613e2a565b6040516020016130ba929190615071565b60408051601f198184030181529082905262461bcd60e51b8252610f65916004016144c8565b60fc54600160d01b900465ffffffffffff168015613163574265ffffffffffff821610156131395760fc5460fb80546001600160d01b0316600160a01b90920465ffffffffffff16600160d01b02919091179055613163565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec590600090a15b5060fc80546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b60006131ac8484611dad565b905060001981146115da57818110156132075760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610f65565b6115da8484848403612c75565b8115801561322f575060fc546001600160a01b038281169116145b156132455760fc80546001600160a01b03191690555b610f788282613fc6565b6001600160a01b0381163b6132bc5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610f65565b6000805160206152a083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6132f48361402d565b6000825111806133015750805b156123db576115da838361406d565b6101915460ff166123905760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610f65565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561339d5760405163ed9a019560e01b815260040160405180910390fd5b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa1580156133f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661307e57604051638baa579f60e01b815260040160405180910390fd5b600065ffffffffffff82111561348c5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610f65565b5090565b600061349a611b53565b60fb805465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b0388161717905591506134dc90508165ffffffffffff16151590565b156123db576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510990600090a1505050565b60008061351a611a52565b90508065ffffffffffff168365ffffffffffff16116135425761353d83826150e6565b610e8e565b610e8e65ffffffffffff841662069780614092565b60655461356f906001600160a01b03168530856140a8565b61357983826140e0565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d784846040516135c7929190918252602082015260400190565b60405180910390a350505050565b6135ed6000805160206152808339815191523361162e565b801561361257506001600160a01b03831660009081526101d9602052604090205460ff165b801561362557506001600160a01b038216155b1561362f57505050565b6001600160a01b03831660009081526101d9602052604090205460ff161561366a57604051634a8689b160e11b815260040160405180910390fd5b6001600160a01b03821660009081526101d9602052604090205460ff16156136a55760405163104f843760e31b815260040160405180910390fd5b6123db612645565b6000613702826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166141ad9092919063ffffffff16565b90508051600014806137235750808060200190518101906137239190615105565b6123db5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610f65565b6001600160a01b0383166137e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610f65565b6001600160a01b0382166138485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610f65565b6138538383836135d5565b6001600160a01b038316600090815260336020526040902054818110156138cb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610f65565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061392b9086815260200190565b60405180910390a36115da565b826001600160a01b0316856001600160a01b03161461395c5761395c8386836131a0565b61396683826128a3565b60655461397d906001600160a01b031685846129e3565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db85856040516139d5929190918252602082015260400190565b60405180910390a45050505050565b6001600160a01b038316613a465760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610f65565b6001600160a01b038216613aa75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610f65565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054610100900460ff16613b2f5760405162461bcd60e51b8152600401610f6590614ffa565b6036613b3b8382615175565b5060376123db8282615175565b600054610100900460ff16613b6f5760405162461bcd60e51b8152600401610f6590614ffa565b600080613b7b836141bc565b9150915081613b8b576012613b8d565b805b606580546001600160a01b039095166001600160a01b031960ff93909316600160a01b02929092166001600160a81b031990951694909417179092555050565b600054610100900460ff16613bf45760405162461bcd60e51b8152600401610f6590614ffa565b6001600160a01b038116613c4a5760405162461bcd60e51b815260206004820152601e60248201527f416363657373436f6e74726f6c3a20302064656661756c742061646d696e00006044820152606401610f65565b60fb80546001600160d01b0316600160d01b65ffffffffffff851602179055610f78600082612f36565b600054610100900460ff16613c9b5760405162461bcd60e51b8152600401610f6590614ffa565b610191805460ff19169055565b613cb2828261162e565b610f7857600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613cea3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000808060001985870985870292508281108382030391505080600003613d6857838281613d5e57613d5e61505b565b0492505050610e8e565b808411613daf5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610f65565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6060610dd36001600160a01b03831660145b60606000613e39836002615235565b613e44906002614ece565b67ffffffffffffffff811115613e5c57613e5c6145e3565b6040519080825280601f01601f191660200182016040528015613e86576020820181803683370190505b509050600360fc1b81600081518110613ea157613ea1614e9f565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613ed057613ed0614e9f565b60200101906001600160f81b031916908160001a9053506000613ef4846002615235565b613eff906001614ece565b90505b6001811115613f77576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613f3357613f33614e9f565b1a60f81b828281518110613f4957613f49614e9f565b60200101906001600160f81b031916908160001a90535060049490941c93613f708161524c565b9050613f02565b508315610e8e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610f65565b613fd0828261162e565b15610f7857600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6140368161324f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610e8e83836040518060600160405280602781526020016152c060279139614298565b60008183106140a15781610e8e565b5090919050565b6040516001600160a01b03808516602483015283166044820152606481018290526115da9085906323b872dd60e01b90608401612a0f565b6001600160a01b0382166141365760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610f65565b614142600083836135d5565b80603560008282546141549190614ece565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060610ef58484600085614310565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000918291829182916001600160a01b0387169161420391615263565b600060405180830381855afa9150503d806000811461423e576040519150601f19603f3d011682016040523d82523d6000602084013e614243565b606091505b509150915081801561425757506020815110155b1561428b576000818060200190518101906142729190614d85565b905060ff8111614289576001969095509350505050565b505b5060009485945092505050565b6060600080856001600160a01b0316856040516142b59190615263565b600060405180830381855af49150503d80600081146142f0576040519150601f19603f3d011682016040523d82523d6000602084013e6142f5565b606091505b5091509150614306868383876143dc565b9695505050505050565b6060824710156143715760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610f65565b600080866001600160a01b0316858760405161438d9190615263565b60006040518083038185875af1925050503d80600081146143ca576040519150601f19603f3d011682016040523d82523d6000602084013e6143cf565b606091505b50915091506126e3878383875b6060831561444b578251600003614444576001600160a01b0385163b6144445760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f65565b5081610ef5565b610ef583838151156144605781518083602001fd5b8060405162461bcd60e51b8152600401610f6591906144c8565b60006020828403121561448c57600080fd5b81356001600160e01b031981168114610e8e57600080fd5b60005b838110156144bf5781810151838201526020016144a7565b50506000910152565b60208152600082518060208401526144e78160408501602087016144a4565b601f01601f19169190910160400192915050565b60006020828403121561450d57600080fd5b5035919050565b6001600160a01b0381168114610eb557600080fd5b6000806040838503121561453c57600080fd5b823561454781614514565b946020939093013593505050565b60008060006060848603121561456a57600080fd5b833561457581614514565b9250602084013561458581614514565b929592945050506040919091013590565b600080604083850312156145a957600080fd5b8235915060208301356145bb81614514565b809150509250929050565b6000602082840312156145d857600080fd5b8135610e8e81614514565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614622576146226145e3565b604052919050565b600067ffffffffffffffff831115614644576146446145e3565b614657601f8401601f19166020016145f9565b905082815283838301111561466b57600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561469557600080fd5b82356146a081614514565b9150602083013567ffffffffffffffff8111156146bc57600080fd5b8301601f810185136146cd57600080fd5b6146dc8582356020840161462a565b9150509250929050565b803560ff811681146146f757600080fd5b919050565b600080600080600060a0868803121561471457600080fd5b853561471f81614514565b945060208601359350614734604087016146e6565b94979396509394606081013594506080013592915050565b60006020828403121561475e57600080fd5b813565ffffffffffff81168114610e8e57600080fd5b60008083601f84011261478657600080fd5b50813567ffffffffffffffff81111561479e57600080fd5b6020830191508360208260051b85010111156147b957600080fd5b9250929050565b600080602083850312156147d357600080fd5b823567ffffffffffffffff8111156147ea57600080fd5b6147f685828601614774565b90969095509350505050565b6000806040838503121561481557600080fd5b823561482081614514565b915060208301356145bb81614514565b60008060006060848603121561484557600080fd5b83359250602084013561485781614514565b9150604084013561486781614514565b809150509250925092565b6000806000806000806060878903121561488b57600080fd5b863567ffffffffffffffff808211156148a357600080fd5b6148af8a838b01614774565b909850965060208901359150808211156148c857600080fd5b6148d48a838b01614774565b909650945060408901359150808211156148ed57600080fd5b506148fa89828a01614774565b979a9699509497509295939492505050565b600080600080600080600060e0888a03121561492757600080fd5b873561493281614514565b9650602088013561494281614514565b9550604088013594506060880135935061495e608089016146e6565b925060a0880135915060c0880135905092959891949750929550565b60008060008060008060008060006101208a8c03121561499957600080fd5b89356149a481614514565b985060208a01356149b481614514565b975060408a0135965060608a0135955060808a0135945060a08a013593506149de60c08b016146e6565b925060e08a013591506101008a013590509295985092959850929598565b600082601f830112614a0d57600080fd5b610e8e8383356020850161462a565b60008060008060008060c08789031215614a3557600080fd5b863567ffffffffffffffff80821115614a4d57600080fd5b614a598a838b016149fc565b97506020890135915080821115614a6f57600080fd5b50614a7c89828a016149fc565b9550506040870135614a8d81614514565b93506060870135614a9d81614514565b92506080870135614aad81614514565b915060a0870135614abd81614514565b809150509295509295509295565b600067ffffffffffffffff821115614ae557614ae56145e3565b5060051b60200190565b600082601f830112614b0057600080fd5b81356020614b15614b1083614acb565b6145f9565b82815260059290921b84018101918181019086841115614b3457600080fd5b8286015b84811015614b58578035614b4b81614514565b8352918301918301614b38565b509695505050505050565b600082601f830112614b7457600080fd5b81356020614b84614b1083614acb565b82815260059290921b84018101918181019086841115614ba357600080fd5b8286015b84811015614b585780358352918301918301614ba7565b600082601f830112614bcf57600080fd5b81356020614bdf614b1083614acb565b82815260059290921b84018101918181019086841115614bfe57600080fd5b8286015b84811015614b5857614c13816146e6565b8352918301918301614c02565b60008060008060008060008060006101208a8c031215614c3f57600080fd5b893567ffffffffffffffff80821115614c5757600080fd5b614c638d838e01614aef565b9a5060208c0135915080821115614c7957600080fd5b614c858d838e01614aef565b995060408c0135915080821115614c9b57600080fd5b614ca78d838e01614b63565b985060608c0135915080821115614cbd57600080fd5b614cc98d838e01614b63565b975060808c0135915080821115614cdf57600080fd5b614ceb8d838e01614b63565b965060a08c0135915080821115614d0157600080fd5b614d0d8d838e01614b63565b955060c08c0135915080821115614d2357600080fd5b614d2f8d838e01614bbe565b945060e08c0135915080821115614d4557600080fd5b614d518d838e01614b63565b93506101008c0135915080821115614d6857600080fd5b50614d758c828d01614b63565b9150509295985092959850929598565b600060208284031215614d9757600080fd5b5051919050565b600181811c90821680614db257607f821691505b602082108103614dd257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60ff8181168382160190811115610dd357610dd3614dd8565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060018201614ec757614ec7614dd8565b5060010190565b80820180821115610dd357610dd3614dd8565b600181815b80851115614f1c578160001904821115614f0257614f02614dd8565b80851615614f0f57918102915b93841c9390800290614ee6565b509250929050565b600082614f3357506001610dd3565b81614f4057506000610dd3565b8160018114614f565760028114614f6057614f7c565b6001915050610dd3565b60ff841115614f7157614f71614dd8565b50506001821b610dd3565b5060208310610133831016604e8410600b8410161715614f9f575081810a610dd3565b614fa98383614ee1565b8060001904821115614fbd57614fbd614dd8565b029392505050565b6000610e8e60ff841683614f24565b65ffffffffffff818116838216019080821115614ff357614ff3614dd8565b5092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516150a98160178501602088016144a4565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516150da8160288401602088016144a4565b01602801949350505050565b65ffffffffffff828116828216039080821115614ff357614ff3614dd8565b60006020828403121561511757600080fd5b81518015158114610e8e57600080fd5b601f8211156123db57600081815260208120601f850160051c8101602086101561514e5750805b601f850160051c820191505b8181101561516d5782815560010161515a565b505050505050565b815167ffffffffffffffff81111561518f5761518f6145e3565b6151a38161519d8454614d9e565b84615127565b602080601f8311600181146151d857600084156151c05750858301515b600019600386901b1c1916600185901b17855561516d565b600085815260208120601f198616915b82811015615207578886015182559484019460019091019084016151e8565b50858210156152255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417610dd357610dd3614dd8565b60008161525b5761525b614dd8565b506000190190565b600082516152758184602087016144a4565b919091019291505056fee3e4f9d7569515307c0cdec302af069a93c9e33f325269bac70e6e22465a9796360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46da264697066735822122009168a25d36a2db8be9508c8eb582533e32d9502318b3da994f64f310aef3c3564736f6c63430008110033