[ { "inputs": [ { "internalType": "address", "name": "initialOwner_", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "contract IERC20", "name": "asset_", "type": "address" }, { "internalType": "address", "name": "tokenPrices_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "tokensOwner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxDeposit", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxRedeem", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxWithdraw", "type": "error" }, { "inputs": [], "name": "InvalidAccess", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "InvalidAddress", "type": "error" }, { "inputs": [], "name": "InvalidParam", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "InvalidToken", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "x", "type": "uint256" }, { "internalType": "uint256", "name": "y", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "PRBMath_MulDiv_Overflow", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": 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": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "bytes4", "name": "fnSelector", "type": "bytes4" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "ExplicitAccessSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum IOrigamiErc4626.FeeType", "name": "feeType", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "feeBps", "type": "uint256" } ], "name": "FeeBpsSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum IOrigamiErc4626.FeeType", "name": "feeType", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "feeBps", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "feeAmount", "type": "uint256" } ], "name": "InKindFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "manager", "type": "address" } ], "name": "ManagerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxTotalSupply", "type": "uint256" } ], "name": "MaxTotalSupplySet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "NewOwnerAccepted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldProposedOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newProposedOwner", "type": "address" } ], "name": "NewOwnerProposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "PerformanceFeeSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_tokenPrices", "type": "address" } ], "name": "TokenPricesSet", "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": 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": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptOwner", "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": "areDepositsPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "areWithdrawalsPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "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": [ { "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": [], "name": "depositFeeBps", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "name": "explicitFunctionAccess", "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": "uint256", "name": "performanceFees", "type": "uint256" } ], "name": "logPerformanceFeesSet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "manager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "maxAssets", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "maxShares", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sharesOwner", "type": "address" } ], "name": "maxRedeem", "outputs": [ { "internalType": "uint256", "name": "maxShares", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sharesOwner", "type": "address" } ], "name": "maxWithdraw", "outputs": [ { "internalType": "uint256", "name": "maxAssets", "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": "sharesOwner", "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": "performanceFeeBps", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sharesOwner", "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": "shares", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewMint", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewRedeem", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewWithdraw", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "proposeNewOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "recoverToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "sharesOwner", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revokeOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "maxTotalSupply_", "type": "uint256" } ], "name": "seedDeposit", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "allowedCaller", "type": "address" }, { "components": [ { "internalType": "bytes4", "name": "fnSelector", "type": "bytes4" }, { "internalType": "bool", "name": "allowed", "type": "bool" } ], "internalType": "struct IOrigamiElevatedAccess.ExplicitAccess[]", "name": "access", "type": "tuple[]" } ], "name": "setExplicitAccess", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newManager", "type": "address" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxTotalSupply_", "type": "uint256" } ], "name": "setMaxTotalSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenPrices", "type": "address" } ], "name": "setTokenPrices", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenPrices", "outputs": [ { "internalType": "contract ITokenPrices", "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": "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": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "sharesOwner", "type": "address" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawalFeeBps", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
6101a06040523480156200001257600080fd5b506040516200422e3803806200422e833981016040819052620000359162000411565b848484848383604051806040016040528060018152602001603160f81b815250858581600390816200006891906200054c565b5060046200007782826200054c565b50620000899150839050600562000236565b610120526200009a81600662000236565b61014052815160208084019190912060e052815190820120610100524660a0526200012860e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052600160075562000141816200026f565b506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000183573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a9919062000618565b9050601260ff82161115620001e15760405163961c9a4f60e01b81526001600160a01b03831660048201526024015b60405180910390fd5b620001ee8160126200065a565b620001fb90600a62000773565b61018052506001600160a01b0390811661016052600d80546001600160a01b031916959091169490941790935550620007de95505050505050565b600060208351101562000256576200024e83620002e8565b905062000269565b816200026384826200054c565b5060ff90505b92915050565b6008546001600160a01b0316156200029a57604051633006171960e21b815260040160405180910390fd5b6001600160a01b038116620002c657604051634726455360e11b815260006004820152602401620001d8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f8151111562000316578260405163305a27a960e01b8152600401620001d8919062000784565b80516200032382620007b9565b179392505050565b6001600160a01b03811681146200034157600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003775781810151838201526020016200035d565b50506000910152565b600082601f8301126200039257600080fd5b81516001600160401b0380821115620003af57620003af62000344565b604051601f8301601f19908116603f01168101908282118183101715620003da57620003da62000344565b81604052838152866020858801011115620003f457600080fd5b620004078460208301602089016200035a565b9695505050505050565b600080600080600060a086880312156200042a57600080fd5b855162000437816200032b565b60208701519095506001600160401b03808211156200045557600080fd5b6200046389838a0162000380565b955060408801519150808211156200047a57600080fd5b50620004898882890162000380565b93505060608601516200049c816200032b565b6080870151909250620004af816200032b565b809150509295509295909350565b600181811c90821680620004d257607f821691505b602082108103620004f357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054757600081815260208120601f850160051c81016020861015620005225750805b601f850160051c820191505b8181101562000543578281556001016200052e565b5050505b505050565b81516001600160401b0381111562000568576200056862000344565b6200058081620005798454620004bd565b84620004f9565b602080601f831160018114620005b857600084156200059f5750858301515b600019600386901b1c1916600185901b17855562000543565b600085815260208120601f198616915b82811015620005e957888601518255948401946001909101908401620005c8565b5085821015620006085787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200062b57600080fd5b815160ff811681146200063d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60ff828116828216039081111562000269576200026962000644565b600181815b80851115620006b75781600019048211156200069b576200069b62000644565b80851615620006a957918102915b93841c93908002906200067b565b509250929050565b600082620006d05750600162000269565b81620006df5750600062000269565b8160018114620006f85760028114620007035762000723565b600191505062000269565b60ff84111562000717576200071762000644565b50506001821b62000269565b5060208310610133831016604e8410600b841016171562000748575081810a62000269565b62000754838362000676565b80600019048211156200076b576200076b62000644565b029392505050565b60006200063d60ff841683620006bf565b6020815260008251806020840152620007a58160408501602087016200035a565b601f01601f19169190910160400192915050565b80516020808301519190811015620004f35760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516139ca6200086460003960008181611d5f015261278301526000818161042a015281816110dd015261295201526000610e7b01526000610e50015260006122de015260006122b6015260006122110152600061223b0152600061226501526139ca6000f3fe608060405234801561001057600080fd5b506004361061034c5760003560e01c806395d89b41116101bd578063c63d75b6116100f9578063d905777e116100a2578063dd62ed3e1161007c578063dd62ed3e14610718578063ebbc496514610751578063ef8b30f714610759578063f20976111461076c57600080fd5b8063d905777e146106c4578063daeccc79146106d7578063db686a921461070557600080fd5b8063d0ebdbe7116100d3578063d0ebdbe714610696578063d505accf146106a9578063d6c9b0dc146106bc57600080fd5b8063c63d75b61461065d578063c6e6f59214610670578063ce96cb771461068357600080fd5b8063b1f8100d11610166578063b9d4e87911610140578063b9d4e87914610605578063ba08765214610624578063be2f503914610637578063bfccf0ec1461064a57600080fd5b8063b1f8100d146105cc578063b3d7f6b9146105df578063b460af94146105f257600080fd5b8063a9059cbb11610197578063a9059cbb146105a6578063ab8798271461038f578063b1e1fca4146105b957600080fd5b806395d89b4114610578578063a457c2d714610580578063a7229fd91461059357600080fd5b806338d52e0f1161028c57806365c1e09e116102355780637ecebe001161020f5780637ecebe001461050e57806384b0196e146105375780638da5cb5b1461055257806394bf804d1461056557600080fd5b806365c1e09e146104bf5780636e553f65146104d257806370a08231146104e557600080fd5b8063402d267d11610266578063402d267d14610488578063481c6a751461049b5780634cdad506146104ac57600080fd5b806338d52e0f1461042857806339509351146104625780633f3e4c111461047557600080fd5b80630a28a477116102f95780632ab4d052116102d35780632ab4d052146103ff5780632b96895814610407578063313ce567146104115780633644e5151461042057600080fd5b80630a28a477146103d157806318160ddd146103e457806323b872dd146103ec57600080fd5b806306fdde031161032a57806306fdde031461039657806307a2d13a146103ab578063095ea7b3146103be57600080fd5b806301e1d1141461035157806301ffc9a71461036c57806304336bb31461038f575b600080fd5b610359610774565b6040519081526020015b60405180910390f35b61037f61037a3660046132f1565b610800565b6040519015158152602001610363565b6000610359565b61039e610931565b604051610363919061337a565b6103596103b936600461338d565b6109c3565b61037f6103cc3660046133bd565b6109d0565b6103596103df36600461338d565b6109e8565b600254610359565b61037f6103fa3660046133e7565b6109fb565b600b54610359565b61040f610a21565b005b60405160128152602001610363565b610359610b41565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610363565b61037f6104703660046133bd565b610b4b565b61040f61048336600461338d565b610b8a565b610359610496366004613423565b610c66565b600e546001600160a01b031661044a565b6103596104ba36600461338d565b610c71565b6103596104cd36600461343e565b610c7d565b6103596104e0366004613463565b610d67565b6103596104f3366004613423565b6001600160a01b031660009081526020819052604090205490565b61035961051c366004613423565b6001600160a01b03166000908152600c602052604090205490565b61053f610e42565b604051610363979695949392919061348f565b60085461044a906001600160a01b031681565b610359610573366004613463565b610ee7565b61039e610fb3565b61037f61058e3660046133bd565b610fc2565b61040f6105a13660046133e7565b611077565b61037f6105b43660046133bd565b6111b7565b600d5461044a906001600160a01b031681565b61040f6105da366004613423565b6111c5565b6103596105ed36600461338d565b6112ee565b610359610600366004613541565b6112fa565b61060d6113d7565b60405165ffffffffffff9091168152602001610363565b610359610632366004613541565b61146e565b61040f610645366004613423565b61153c565b61040f61065836600461357d565b611651565b61035961066b366004613423565b611839565b61035961067e36600461338d565b611881565b610359610691366004613423565b61188e565b61040f6106a4366004613423565b61189a565b61040f6106b7366004613603565b6119af565b61037f611b1b565b6103596106d2366004613423565b611ba2565b61037f6106e5366004613676565b600960209081526000928352604080842090915290825290205460ff1681565b61040f61071336600461338d565b611bae565b6103596107263660046136a0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61040f611c22565b61035961076736600461338d565b611cd6565b61037f611ce2565b600e54604080517f01e1d11400000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916301e1d1149160048083019260209291908290030181865afa1580156107d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fb91906136ca565b905090565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f87dfe5a000000000000000000000000000000000000000000000000000000000148061089357507fffffffff0000000000000000000000000000000000000000000000000000000082167f9d8ff7da00000000000000000000000000000000000000000000000000000000145b806108df57507fffffffff0000000000000000000000000000000000000000000000000000000082167f84b0196e00000000000000000000000000000000000000000000000000000000145b8061092b57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b606060038054610940906136e3565b80601f016020809104026020016040519081016040528092919081815260200182805461096c906136e3565b80156109b95780601f1061098e576101008083540402835291602001916109b9565b820191906000526020600020905b81548152906001019060200180831161099c57829003601f168201915b5050505050905090565b600061092b826000611d45565b6000336109de818585611d9a565b5060019392505050565b60006109f48282611ef2565b5092915050565b600033610a09858285611f1c565b610a14858585611fae565b60019150505b9392505050565b610a4f336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b610a85576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a546001600160a01b031661dead14610adf57600a546040517f8e4c8aa60000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024015b60405180910390fd5b6008546040516000916001600160a01b0316907f5cd6b24c0149d980c82592262b3a81294b39f8f6e3c004126aaf0828c787d554908390a3600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60006107fb612204565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906109de9082908690610b85908790613765565b611d9a565b610bb8336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b610bee576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600003610c2a576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b8190556040518181527f0120f799fc820eabb910038e9cce6e8024add369b4d780181846e300df284484906020015b60405180910390a150565b600061092b8161232f565b60006109f48282612391565b6000610cad336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b610ce3576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025415610d1d576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b8290556040518281527f0120f799fc820eabb910038e9cce6e8024add369b4d780181846e300df2844849060200160405180910390a1610d5f8484610d67565b949350505050565b6000610d716123b8565b600080610d7d8261232f565b905080851115610dd2576040517f79012fb20000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810186905260448101829052606401610ad6565b600080610ddf8785612411565b90925090508015610e27577f7e81c1439e2f6851efe3288a5d0ae235c1729a6272f98ed0a4b5eb780914042760008583604051610e1e939291906137a7565b60405180910390a15b610e3333878985612438565b509250505061092b6001600755565b600060608082808083610e767f000000000000000000000000000000000000000000000000000000000000000060056124a8565b610ea17f000000000000000000000000000000000000000000000000000000000000000060066124a8565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6000610ef16123b8565b6000610efc83611839565b905080841115610f51576040517f284ff6670000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810185905260448101829052606401610ad6565b60008080610f5f8784612553565b90925090508015610fa7577f7e81c1439e2f6851efe3288a5d0ae235c1729a6272f98ed0a4b5eb780914042760008483604051610f9e939291906137a7565b60405180910390a15b610e333387848a612438565b606060048054610940906136e3565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561105f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610ad6565b61106c8286868403611d9a565b506001949350505050565b6110a5336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b6110db576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611151576040517f961c9a4f0000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ad6565b826001600160a01b0316826001600160a01b03167f879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f90968360405161119691815260200190565b60405180910390a36111b26001600160a01b038416838361257f565b505050565b6000336109de818585611fae565b6111f3336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b611229576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116611274576040517f8e4c8aa60000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610ad6565b600a546008546040516001600160a01b038085169381169216907f64420d4a41c6ed4de2bccbf33192eea18e576c5b23c79c3a722d4e9534c2e8d890600090a4600a80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006109f48282612553565b60006113046123b8565b6000806113118483612646565b905080861115611366576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810187905260448101829052606401610ad6565b6000806113738885611ef2565b909250905080156113bb577f7e81c1439e2f6851efe3288a5d0ae235c1729a6272f98ed0a4b5eb7809140427600185836040516113b2939291906137a7565b60405180910390a15b6113c83388888b86612694565b5092505050610a1a6001600755565b6000806000600e60009054906101000a90046001600160a01b03166001600160a01b031663b9d4e8796040518163ffffffff1660e01b81526004016040805180830381865afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114529190613808565b61ffff91821693501690506114678183613832565b9250505090565b60006114786123b8565b6000806114858483612743565b9050808611156114da576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810187905260448101829052606401610ad6565b6000806114e78885612391565b9092509050801561152f577f7e81c1439e2f6851efe3288a5d0ae235c1729a6272f98ed0a4b5eb780914042760018583604051611526939291906137a7565b60405180910390a15b6113c8338888858c612694565b61156a336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b6115a0576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166115e3576040517f8e4c8aa600000000000000000000000000000000000000000000000000000000815260006004820152602401610ad6565b6040516001600160a01b038216907f2781e03d8cf8be1845f40e150af1187b0cdb48dccd761a708f5e5b612a865d1d90600090a2600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61167f336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b6116b5576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038316611700576040517f8e4c8aa60000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ad6565b604080518082019091526000808252602082015260005b828110156118325783838281811061173157611731613851565b905060400201803603810190611747919061388e565b91508160200151151582600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b03167ff5736e75de2c751f775d4c5ed517289f77074f8c337f451ba4c0c3ed1dd7f9ad60405160405180910390a46020828101516001600160a01b038716600090815260098352604080822086517fffffffff000000000000000000000000000000000000000000000000000000001683529093529190912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905561182b81613912565b9050611717565b5050505050565b600080611845600b5490565b9050600019810361185a575060001992915050565b600061186560025490565b905081811115611879575060009392505050565b900392915050565b600061092b82600061277c565b600061092b8282612646565b6118c8336000357fffffffff000000000000000000000000000000000000000000000000000000001661219b565b6118fe576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116611941576040517f8e4c8aa600000000000000000000000000000000000000000000000000000000815260006004820152602401610ad6565b6040516001600160a01b038216907f60a0f5b9f9e81e98216071b85826681c796256fe3d1354ecb675580fba64fa6990600090a2600e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b834211156119ec576040517f6279130200000000000000000000000000000000000000000000000000000000815260048101859052602401610ad6565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888611a398c6001600160a01b03166000908152600c6020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000611a94826127c8565b90506000611aa482878787612810565b9050896001600160a01b0316816001600160a01b031614611b04576040517f4b800e460000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528b166024820152604401610ad6565b611b0f8a8a8a611d9a565b50505050505050505050565b600e54604080517fd6c9b0dc00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163d6c9b0dc9160048083019260209291908290030181865afa158015611b7e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fb919061392c565b600061092b8282612743565b600e546001600160a01b03163314611bf2576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518181527fceb20f7f0b19335681096ee1eaa9bb2a6ef5a9a69ba48b6b488e7b7eff2ef04d90602001610c5b565b600a546001600160a01b03163314611c66576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085460405133916001600160a01b0316907f5cd6b24c0149d980c82592262b3a81294b39f8f6e3c004126aaf0828c787d55490600090a3600880547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600a80549091169055565b60006109f48282612411565b600e54604080517ff209761100000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163f20976119160048083019260209291908290030181865afa158015611b7e573d6000803e3d6000fd5b6000610a1a611d52610774565b611d5d906001613765565b7f0000000000000000000000000000000000000000000000000000000000000000611d8760025490565b611d919190613765565b85919085612838565b6001600160a01b038316611e155760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b038216611e915760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806000611f0285600161277c565b9050611f10818560016128cb565b95908603945092505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114611fa85781811015611f9b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610ad6565b611fa88484848403611d9a565b50505050565b6001600160a01b03831661202a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b0382166120a65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b038316600090815260208190526040902054818110156121355760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611fa8565b6008546000906001600160a01b0384811691161480610a1a5750506001600160a01b039190911660009081526009602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000009094168352929052205460ff1690565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561225d57507f000000000000000000000000000000000000000000000000000000000000000046145b1561228757507f000000000000000000000000000000000000000000000000000000000000000090565b6107fb604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008061233b600b5490565b90506000198103612350575060001992915050565b600061235b60025490565b90508181111561236f575060009392505050565b808203612388612381828760016128cb565b6001611d45565b95945050505050565b60008061239f84848361292e565b90945090506123af846000611d45565b91509250929050565b60026007540361240a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ad6565b6002600755565b60008061241f84600061277c565b915061242d8284600061292e565b909590945092505050565b6124428483612949565b61244c8382612a0d565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7848460405161249a929190918252602082015260400190565b60405180910390a350505050565b606060ff83146124c2576124bb83612acc565b905061092b565b8180546124ce906136e3565b80601f01602080910402602001604051908101604052809291908181526020018280546124fa906136e3565b80156125475780601f1061251c57610100808354040283529160200191612547565b820191906000526020600020905b81548152906001019060200180831161252a57829003601f168201915b5050505050905061092b565b60008080612563858560016128cb565b90508481039150612575816001611d45565b9250509250929050565b6040516001600160a01b0383166024820152604481018290526111b29084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612b0b565b60006001600160a01b03831661265f575060001961092b565b6001600160a01b03831660009081526020819052604081205490506126868184600061292e565b509050610d5f816000611d45565b826001600160a01b0316856001600160a01b0316146126b8576126b8838683611f1c565b6126c28382612bf3565b6002546000036126d2576000600b555b6126dc8285612d5c565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051612734929190918252602082015260400190565b60405180910390a45050505050565b60006001600160a01b03831615612772576001600160a01b038316600090815260208190526040902054610a1a565b5060001992915050565b6000610a1a7f00000000000000000000000000000000000000000000000000000000000000006127ab60025490565b6127b59190613765565b6127bd610774565b611d91906001613765565b600061092b6127d5612204565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061282187878787612dac565b9150915061282e81612e8e565b5095945050505050565b6000612845858585612ff6565b9050600182600181111561285b5761285b613778565b03610d5f57828061286e5761286e613949565b84860915610d5f5760001981101561288857600101610d5f565b6040517f63a05778000000000000000000000000000000000000000000000000000000008152600481018690526024810185905260448101849052606401610ad6565b6000826000036128dc575082610a1a565b6127108310612917576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083612710039050612388856127108386612838565b60008061293c8585856130e3565b9594869003949350505050565b600e54612983907f00000000000000000000000000000000000000000000000000000000000000009084906001600160a01b031684613107565b600e546040517fb6b55f2500000000000000000000000000000000000000000000000000000000815260001960048201526001600160a01b039091169063b6b55f25906024015b6020604051808303816000875af11580156129e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b291906136ca565b6001600160a01b038216612a635760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610ad6565b8060026000828254612a759190613765565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60606000612ad983613158565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000612b60826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166131999092919063ffffffff16565b9050805160001480612b81575080806020019051810190612b81919061392c565b6111b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b038216612c6f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b03821660009081526020819052604090205481811015612cfe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610ad6565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600e546040517ef714ce000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0383811660248301529091169062f714ce906044016129ca565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612de35750600090506003612e85565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612e37573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b038116612e7e57600060019250925050612e85565b9150600090505b94509492505050565b6000816004811115612ea257612ea2613778565b03612eaa5750565b6001816004811115612ebe57612ebe613778565b03612f0b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ad6565b6002816004811115612f1f57612f1f613778565b03612f6c5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ad6565b6003816004811115612f8057612f80613778565b03612ff35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610ad6565b50565b60008080600019858709858702925082811083820303915050806000036130305783828161302657613026613949565b0492505050610a1a565b83811061307a576040517f63a05778000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610ad6565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b60006127108381039084106130f9576000612388565b612388858261271086612838565b6040516001600160a01b0380851660248301528316604482015260648101829052611fa89085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016125c4565b600060ff8216601f81111561092b576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d5f848460008585600080866001600160a01b031685876040516131c09190613978565b60006040518083038185875af1925050503d80600081146131fd576040519150601f19603f3d011682016040523d82523d6000602084013e613202565b606091505b50915091506132138783838761321e565b979650505050505050565b6060831561328d578251600003613286576001600160a01b0385163b6132865760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ad6565b5081610d5f565b610d5f83838151156132a25781518083602001fd5b8060405162461bcd60e51b8152600401610ad6919061337a565b80357fffffffff00000000000000000000000000000000000000000000000000000000811681146132ec57600080fd5b919050565b60006020828403121561330357600080fd5b610a1a826132bc565b60005b8381101561332757818101518382015260200161330f565b50506000910152565b6000815180845261334881602086016020860161330c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a1a6020830184613330565b60006020828403121561339f57600080fd5b5035919050565b80356001600160a01b03811681146132ec57600080fd5b600080604083850312156133d057600080fd5b6133d9836133a6565b946020939093013593505050565b6000806000606084860312156133fc57600080fd5b613405846133a6565b9250613413602085016133a6565b9150604084013590509250925092565b60006020828403121561343557600080fd5b610a1a826133a6565b60008060006060848603121561345357600080fd5b83359250613413602085016133a6565b6000806040838503121561347657600080fd5b82359150613486602084016133a6565b90509250929050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e0818401526134cb60e084018a613330565b83810360408501526134dd818a613330565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561352f57835183529284019291840191600101613513565b50909c9b505050505050505050505050565b60008060006060848603121561355657600080fd5b83359250613566602085016133a6565b9150613574604085016133a6565b90509250925092565b60008060006040848603121561359257600080fd5b61359b846133a6565b9250602084013567ffffffffffffffff808211156135b857600080fd5b818601915086601f8301126135cc57600080fd5b8135818111156135db57600080fd5b8760208260061b85010111156135f057600080fd5b6020830194508093505050509250925092565b600080600080600080600060e0888a03121561361e57600080fd5b613627886133a6565b9650613635602089016133a6565b95506040880135945060608801359350608088013560ff8116811461365957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561368957600080fd5b613692836133a6565b9150613486602084016132bc565b600080604083850312156136b357600080fd5b6136bc836133a6565b9150613486602084016133a6565b6000602082840312156136dc57600080fd5b5051919050565b600181811c908216806136f757607f821691505b602082108103613730577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561092b5761092b613736565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60608101600285106137e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b938152602081019290925260409091015290565b805161ffff811681146132ec57600080fd5b6000806040838503121561381b57600080fd5b613824836137f6565b9150613486602084016137f6565b65ffffffffffff8181168382160190808211156109f4576109f4613736565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8015158114612ff357600080fd5b6000604082840312156138a057600080fd5b6040516040810181811067ffffffffffffffff821117156138ea577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040526138f6836132bc565b8152602083013561390681613880565b60208201529392505050565b6000600019820361392557613925613736565b5060010190565b60006020828403121561393e57600080fd5b8151610a1a81613880565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000825161398a81846020870161330c565b919091019291505056fea264697066735822122026c2b56e51f444ef376ac7742606058012590df27b95f1ac3dba06fd4f96ac4164736f6c63430008130033000000000000000000000000b20aae0fe007519b7ce6f090a2ab8353b3da5d8000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000dc035d45d973e3ec169d2276ddab16f1e407384f00000000000000000000000043a3cb2cf5ea2331174c166214302f0c3bba6a8500000000000000000000000000000000000000000000000000000000000000194f726967616d69207355534453202b20536b79204661726d7300000000000000000000000000000000000000000000000000000000000000000000000000000773555344532b7300000000000000000000000000000000000000000000000000
0x000000000000000000000000b20aae0fe007519b7ce6f090a2ab8353b3da5d8000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000dc035d45d973e3ec169d2276ddab16f1e407384f00000000000000000000000043a3cb2cf5ea2331174c166214302f0c3bba6a8500000000000000000000000000000000000000000000000000000000000000194f726967616d69207355534453202b20536b79204661726d7300000000000000000000000000000000000000000000000000000000000000000000000000000773555344532b7300000000000000000000000000000000000000000000000000
----Decoded View------------Arg [0] : initialOwner_ (address): 0xb20AaE0Fe007519b7cE6f090a2aB8353B3Da5d80Arg [1] : name_ (string): Origami sUSDS + Sky FarmsArg [2] : symbol_ (string): sUSDS+sArg [3] : asset_ (address): 0xdC035D45d973E3EC169d2276DDab16f1e407384FArg [4] : tokenPrices_ (address): 0x43A3cb2cf5eA2331174c166214302f0C3BbA6A85
----Encoded View------------Arg [0] : 0x000000000000000000000000b20aae0fe007519b7ce6f090a2ab8353b3da5d80Arg [1] : 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000194f726967616d69207355534453202b20536b79204661726d7300000000000000Arg [2] : 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000773555344532b7300000000000000000000000000000000000000000000000000Arg [3] : 0x000000000000000000000000dc035d45d973e3ec169d2276ddab16f1e407384fArg [4] : 0x00000000000000000000000043a3cb2cf5ea2331174c166214302f0c3bba6a85