[ { "inputs": [ { "internalType": "address", "name": "_factory", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "caller", "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": true, "internalType": "address", "name": "strategy", "type": "address" }, { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "string", "name": "apiVersion", "type": "string" } ], "name": "NewTokenizedStrategy", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "profit", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "loss", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "protocolFees", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "performanceFees", "type": "uint256" } ], "name": "Reported", "type": "event" }, { "anonymous": false, "inputs": [], "name": "StrategyShutdown", "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": "newEmergencyAdmin", "type": "address" } ], "name": "UpdateEmergencyAdmin", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newKeeper", "type": "address" } ], "name": "UpdateKeeper", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newManagement", "type": "address" } ], "name": "UpdateManagement", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newPendingManagement", "type": "address" } ], "name": "UpdatePendingManagement", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "newPerformanceFee", "type": "uint16" } ], "name": "UpdatePerformanceFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newPerformanceFeeRecipient", "type": "address" } ], "name": "UpdatePerformanceFeeRecipient", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newProfitMaxUnlockTime", "type": "uint256" } ], "name": "UpdateProfitMaxUnlockTime", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "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": "FACTORY", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FEE", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptManagement", "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": [], "name": "apiVersion", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "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": "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": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "emergencyAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "fullProfitUnlockDate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_asset", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "address", "name": "_management", "type": "address" }, { "internalType": "address", "name": "_performanceFeeRecipient", "type": "address" }, { "internalType": "address", "name": "_keeper", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isShutdown", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "keeper", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastReport", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "management", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "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": "assets", "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": "pendingManagement", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "performanceFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "performanceFeeRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "pricePerShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "profitMaxUnlockTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "profitUnlockingRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "maxLoss", "type": "uint256" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "report", "outputs": [ { "internalType": "uint256", "name": "profit", "type": "uint256" }, { "internalType": "uint256", "name": "loss", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" } ], "name": "requireEmergencyAuthorized", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" } ], "name": "requireKeeperOrManagement", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" } ], "name": "requireManagement", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_emergencyAdmin", "type": "address" } ], "name": "setEmergencyAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_keeper", "type": "address" } ], "name": "setKeeper", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_management", "type": "address" } ], "name": "setPendingManagement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_performanceFee", "type": "uint16" } ], "name": "setPerformanceFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_performanceFeeRecipient", "type": "address" } ], "name": "setPerformanceFeeRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_profitMaxUnlockTime", "type": "uint256" } ], "name": "setProfitMaxUnlockTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "shutdownStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tend", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "unlockedShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "maxLoss", "type": "uint256" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ]
60a060405234801561000f575f80fd5b506040516149d53803806149d583398101604081905261002e9161009c565b6001600160a01b0381166080526001610045610069565b80546001600160a01b0319166001600160a01b0392909216919091179055506100e8565b5f8061009660017fd2841a5d2692465040bd5e06a6f3b37483952c866e0f304dc0e03f76a1f8a0b16100c9565b92915050565b5f602082840312156100ac575f80fd5b81516001600160a01b03811681146100c2575f80fd5b9392505050565b8181038181111561009657634e487b7160e01b5f52601160045260245ffd5b6080516148ce6101075f395f81816104c10152610ad901526148ce5ff3fe608060405234801561000f575f80fd5b506004361061039e575f3560e01c806387788782116101ea578063be8f166811610114578063d505accf116100a9578063df69b22a11610079578063df69b22a14610781578063ed27f7c914610794578063ef8b30f7146106ff578063f629b7901461079c575f80fd5b8063d505accf14610740578063d905777e14610753578063d9a0e97a14610766578063dd62ed3e1461076e575f80fd5b8063c6e6f592116100e4578063c6e6f592146106ff578063c8c2fe6c14610712578063ce96cb771461071a578063d43fdcf71461072d575f80fd5b8063be8f1668146106d4578063bf86d690146106dc578063c3535b52146106e4578063c63d75b6146106ec575f80fd5b8063a318c1a41161018a578063b3d7f6b91161015a578063b3d7f6b914610692578063b460af94146106a5578063ba087652146106b8578063bc063e1a146106cb575f80fd5b8063a318c1a414610651578063a9059cbb14610664578063aa290e6d14610677578063aced16611461068a575f80fd5b806395d89b41116101c557806395d89b411461061b57806397073ae61461062357806399530b06146106365780639f40a7b31461063e575f80fd5b806387788782146105e557806388a8d6021461060057806394bf804d14610608575f80fd5b80633644e515116102cb5780635312ea8e1161026b57806370a082311161023b57806370a0823114610599578063748747e6146105ac5780637ecebe00146105bf57806382e00a44146105d2575f80fd5b80635312ea8e146105585780636a5f1aa21461056b5780636e553f651461057e57806370905dce14610591575f80fd5b8063440368a3116102a6578063440368a31461053557806348e4a6491461053d5780634cdad506146103d25780635141eebb14610550575f80fd5b80633644e5151461051257806338d52e0f1461051a578063402d267d14610522575f80fd5b806318160ddd116103415780632d632692116103115780632d632692146104b45780632dd31000146104bc578063313ce567146104e357806335da3394146104fd575f80fd5b806318160ddd1461044357806323b872dd1461044b578063258294101461045e5780632606a10b14610497575f80fd5b80630952864e1161037c5780630952864e146103e5578063095ea7b3146103ed5780630a28a477146104105780630b68f46f14610423575f80fd5b806301e1d114146103a257806306fdde03146103bd57806307a2d13a146103d2575b5f80fd5b6103aa6107af565b6040519081526020015b60405180910390f35b6103c56107c7565b6040516103b49190613ffe565b6103aa6103e0366004614030565b610860565b6103aa610879565b6104006103fb36600461406b565b610891565b60405190151581526020016103b4565b6103aa61041e366004614030565b6108ae565b61042b6108c2565b6040516001600160a01b0390911681526020016103b4565b6103aa6108dd565b610400610459366004614095565b6108ee565b60408051808201909152600581527f332e302e3200000000000000000000000000000000000000000000000000000060208201526103c5565b61049f61091f565b604080519283526020830191909152016103b4565b6103aa610e30565b61042b7f000000000000000000000000000000000000000000000000000000000000000081565b6104eb610e50565b60405160ff90911681526020016103b4565b61051061050b3660046140d3565b610e7a565b005b6103aa610ef0565b61042b610f45565b6103aa6105303660046140d3565b610f5d565b610510610f6f565b61051061054b3660046140d3565b611154565b6103aa6111cd565b610510610566366004614030565b6111df565b6105106105793660046140d3565b6113c4565b6103aa61058c3660046140ee565b6114f1565b61042b6116c3565b6103aa6105a73660046140d3565b6116de565b6105106105ba3660046140d3565b6116f0565b6103aa6105cd3660046140d3565b611761565b6105106105e03660046140d3565b61178b565b6105ed611824565b60405161ffff90911681526020016103b4565b61042b611842565b6103aa6106163660046140ee565b61186d565b6103c56119f9565b6105106106313660046141a1565b611aac565b6103aa611f3a565b6103aa61064c36600461425e565b611f7b565b6103aa61065f36600461425e565b612155565b61040061067236600461406b565b61232d565b6105106106853660046142b2565b612341565b61042b612418565b6103aa6106a0366004614030565b612443565b6103aa6106b33660046142cd565b612457565b6103aa6106c63660046142cd565b61246c565b6105ed61138881565b61051061247b565b610400612502565b6103aa612530565b6103aa6106fa3660046140d3565b612550565b6103aa61070d366004614030565b612562565b610510612575565b6103aa6107283660046140d3565b61265e565b61051061073b3660046140d3565b612670565b61051061074e36600461431a565b612715565b6103aa6107613660046140d3565b612941565b6103aa612953565b6103aa61077c366004614386565b612964565b61051061078f366004614030565b61299d565b61042b612ac9565b6105106107aa3660046140d3565b612aee565b5f6107c26107bb612bba565b6007015490565b905090565b60606107d1612bba565b60010180546107df906143b2565b80601f016020809104026020016040519081016040528092919081815260200182805461080b906143b2565b80156108565780601f1061082d57610100808354040283529160200191610856565b820191905f5260205f20905b81548152906001019060200180831161083957829003601f168201915b5050505050905090565b5f61087361086c612bba565b835f612be7565b92915050565b5f610882612bba565b600a015463ffffffff16919050565b5f6108a561089d612bba565b338585612c21565b50600192915050565b5f6108736108ba612bba565b836001612d7c565b5f6108cb612bba565b600c01546001600160a01b0316919050565b5f6107c26108e9612bba565b612dcb565b5f806108f8612bba565b905061090681863386612de4565b61091281868686612e78565b60019150505b9392505050565b5f805f61092a612bba565b600d8101549091506001197401000000000000000000000000000000000000000090910460ff16016109a35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600d810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740200000000000000000000000000000000000000001790556109ed33612670565b5f6109f6612bba565b90505f306001600160a01b03166349317f1d6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610a36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5a91906143fd565b90505f610a68836007015490565b90505f610a748461304d565b600a8501549091505f908190819063ffffffff1685871115610bf0578587039a50610aa0888c5f612d7c565b600a890154909250640100000000900461ffff165f8115610baf5761271061ffff83168e0204955061271061ffff831685020490505f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635153b1996040518163ffffffff1660e01b81526004016040805180830381865afa158015610b32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b569190614441565b915091505f8261ffff165f14610b85575061271061ffff83168981028290049850840204610b858d83836130c2565b600a8d0154610bab908e90660100000000000090046001600160a01b03168387036130c2565b5050505b8215610be957808403935083871115610bd457610bcf8a30868a03613187565b610be9565b86841115610be957610be98a308987036130c2565b5050610c43565b8686039950895f14610c3257305f908152600589016020526040812054610c2f918790610c20908c908f90612d7c565b610c2a919061449b565b613279565b94505b8415610c4357610c43883087613187565b305f9081526005890160205260409020548015610d225760098901545f906bffffffffffffffffffffffff1642811115610c8f5784830342826bffffffffffffffffffffffff16030291505b5f83610c9b86886144ae565b610ca5908561449b565b610caf91906144c5565b905080610cc164e8d4a51000866144ae565b610ccb91906144c5565b60088d0155610cda814261449b565b60098d0180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9290921691909117905550610d4d915050565b6009890180547fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001690555b60078901889055600b890180547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016426bffffffffffffffffffffffff161790557fecdd072e4d5bd913a75a37f02daedcea7e2dc0281f9942c0063cfd1cfe5c4c4f8c8c86610dbc818a6144fd565b60408051948552602085019390935291830152606082015260800160405180910390a1505050600d90960180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550959694955050505050565b5f610e39612bba565b600901546bffffffffffffffffffffffff16919050565b5f610e59612bba565b5474010000000000000000000000000000000000000000900460ff16919050565b610e8333611154565b80610e8c612bba565b600d0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055604051908216907f2bf242d027263e45fab022c28b4144255c97b30b8e54c30f1f5757906d487f09905f90a250565b5f80610efa612bba565b8054909150750100000000000000000000000000000000000000000090046affffffffffffffffffffff164614610f3957610f348161328e565b610f3f565b80600301545b91505090565b5f610f4e612bba565b546001600160a01b0316919050565b5f610873610f69612bba565b8361335c565b5f610f78612bba565b600d8101549091506001197401000000000000000000000000000000000000000090910460ff1601610fec5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161099a565b600d810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167402000000000000000000000000000000000000000017905561103633612670565b30639d7fb70c611044612bba565b546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156110a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c591906143fd565b6040518263ffffffff1660e01b81526004016110e391815260200190565b5f604051808303815f87803b1580156110fa575f80fd5b505af115801561110c573d5f803e3d5ffd5b505050600d90910180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550565b61115c612bba565b600b01546001600160a01b038281166c0100000000000000000000000090920416146111ca5760405162461bcd60e51b815260206004820152600b60248201527f216d616e6167656d656e74000000000000000000000000000000000000000000604482015260640161099a565b50565b5f6111d6612bba565b60080154905090565b5f6111e8612bba565b600d8101549091506001197401000000000000000000000000000000000000000090910460ff160161125c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161099a565b600d810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740200000000000000000000000000000000000000001790556112a63361178b565b6112ae612bba565b600d01547501000000000000000000000000000000000000000000900460ff1661131a5760405162461bcd60e51b815260206004820152600c60248201527f6e6f742073687574646f776e0000000000000000000000000000000000000000604482015260640161099a565b6040517ffde813a800000000000000000000000000000000000000000000000000000000815260048101839052309063fde813a8906024015f604051808303815f87803b158015611369575f80fd5b505af115801561137b573d5f803e3d5ffd5b505050600d90910180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050565b6113cd33611154565b6001600160a01b0381166114235760405162461bcd60e51b815260206004820152600c60248201527f5a45524f20414444524553530000000000000000000000000000000000000000604482015260640161099a565b306001600160a01b0382160361147b5760405162461bcd60e51b815260206004820152600e60248201527f43616e6e6f742062652073656c66000000000000000000000000000000000000604482015260640161099a565b80611484612bba565b600a0180547fffffffffffff0000000000000000000000000000000000000000ffffffffffff1666010000000000006001600160a01b0393841602179055604051908216907f9ebbf695dd251e855d9d15a146a72f5f654dc6f8630fbc11212f27e0c88ba11a905f90a250565b5f806114fb612bba565b600d8101549091506001197401000000000000000000000000000000000000000090910460ff160161156f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161099a565b600d810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740200000000000000000000000000000000000000001790555f6115b9612bba565b90506115c5818561335c565b8511156116145760405162461bcd60e51b815260206004820152601e60248201527f455243343632363a206465706f736974206d6f7265207468616e206d61780000604482015260640161099a565b61161f81865f612d7c565b9250825f036116705760405162461bcd60e51b815260206004820152600b60248201527f5a45524f5f534841524553000000000000000000000000000000000000000000604482015260640161099a565b61167c8185878661340a565b50600d0180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905592915050565b5f6116cc612bba565b600d01546001600160a01b0316919050565b5f6108736116ea612bba565b836135bd565b6116f933611154565b80611702612bba565b60090180546bffffffffffffffffffffffff166c010000000000000000000000006001600160a01b0393841602179055604051908216907fd7f49e282c36d417b290d4181a56943f6d670aaa2987c0d40e60d39919c68882905f90a250565b5f61176a612bba565b6001600160a01b039092165f90815260049290920160205250604090205490565b5f611794612bba565b600d8101549091506001600160a01b03838116911614806117d45750600b8101546001600160a01b038381166c0100000000000000000000000090920416145b6118205760405162461bcd60e51b815260206004820152601560248201527f21656d657267656e637920617574686f72697a65640000000000000000000000604482015260640161099a565b5050565b5f61182d612bba565b600a0154640100000000900461ffff16919050565b5f61184b612bba565b600b01546c0100000000000000000000000090046001600160a01b0316919050565b5f80611877612bba565b600d8101549091506001197401000000000000000000000000000000000000000090910460ff16016118eb5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161099a565b600d810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740200000000000000000000000000000000000000001790555f611935612bba565b90506119418185613621565b8511156119905760405162461bcd60e51b815260206004820152601b60248201527f455243343632363a206d696e74206d6f7265207468616e206d61780000000000604482015260640161099a565b61199c81866001612be7565b9250825f036119ed5760405162461bcd60e51b815260206004820152600b60248201527f5a45524f5f415353455453000000000000000000000000000000000000000000604482015260640161099a565b61167c8185858861340a565b6060611a03612bba565b54604080517f95d89b4100000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216916395d89b41916004808201925f929091908290030181865afa158015611a61573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a889190810190614510565b604051602001611a989190614579565b604051602081830303815290604052905090565b5f611ab5612bba565b80549091506001600160a01b031615611b105760405162461bcd60e51b815260206004820152600b60248201527f696e697469616c697a6564000000000000000000000000000000000000000000604482015260640161099a565b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03871617815560018101611b4f8682614601565b50856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb091906146c1565b815460ff9190911674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161781556affffffffffffffffffffff4610611c505760405162461bcd60e51b815260206004820152601060248201527f696e76616c696420636861696e20696400000000000000000000000000000000604482015260640161099a565b805474ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000466affffffffffffffffffffff1602178155611c9b8161328e565b6003820155600a810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016620d2f001790556001600160a01b038316611d255760405162461bcd60e51b815260206004820152600c60248201527f5a45524f20414444524553530000000000000000000000000000000000000000604482015260640161099a565b306001600160a01b03841603611d7f5760405162461bcd60e51b815260040161099a9060208082526004908201527f73656c6600000000000000000000000000000000000000000000000000000000604082015260600190565b600a810180547fffffffffffff00000000000000000000000000000000000000000000ffffffff1666010000000000006001600160a01b03868116919091027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff16919091176503e80000000017909155600b820180547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016426bffffffffffffffffffffffff161790558416611e775760405162461bcd60e51b815260206004820152600c60248201527f5a45524f20414444524553530000000000000000000000000000000000000000604482015260640161099a565b600b810180546001600160a01b038087166c010000000000000000000000009081026bffffffffffffffffffffffff9384161790935560098401805486831690940293909216929092179055604080518082018252600581527f332e302e32000000000000000000000000000000000000000000000000000000602082015290519188169130917ffb1616746b8474b6b7c67f2fe5ada156ed24774d0efe8bfe529cf537ba17333091611f2a9190613ffe565b60405180910390a3505050505050565b5f80611f44612bba565b8054909150610f3f908290611f759074010000000000000000000000000000000000000000900460ff16600a6147bc565b5f612be7565b5f80611f85612bba565b600d8101549091506001197401000000000000000000000000000000000000000090910460ff1601611ff95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161099a565b600d810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740200000000000000000000000000000000000000001790555f612043612bba565b905061204f81866136e4565b87111561209e5760405162461bcd60e51b815260206004820152601d60248201527f455243343632363a2072656465656d206d6f7265207468616e206d6178000000604482015260640161099a565b5f6120aa82895f612be7565b9050805f036120fb5760405162461bcd60e51b815260206004820152600b60248201527f5a45524f5f415353455453000000000000000000000000000000000000000000604482015260640161099a565b612109828888848c8a613791565b93505050600d0180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055949350505050565b5f8061215f612bba565b600d8101549091506001197401000000000000000000000000000000000000000090910460ff16016121d35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161099a565b600d810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740200000000000000000000000000000000000000001790555f61221d612bba565b90506122298186613ae8565b8711156122785760405162461bcd60e51b815260206004820152601f60248201527f455243343632363a207769746864726177206d6f7265207468616e206d617800604482015260640161099a565b61228481886001612d7c565b9250825f036122d55760405162461bcd60e51b815260206004820152600b60248201527f5a45524f5f534841524553000000000000000000000000000000000000000000604482015260640161099a565b6122e38187878a8789613791565b5050600d0180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055949350505050565b5f6108a5612339612bba565b338585612e78565b61234a33611154565b61138861ffff821611156123a05760405162461bcd60e51b815260206004820152600760248201527f4d41582046454500000000000000000000000000000000000000000000000000604482015260640161099a565b806123a9612bba565b600a0180547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff1664010000000061ffff9384160217905560405190821681527fdc843735e683348ec21c302ffff45462399c5c46f75f67b0a1a5395c535997539060200160405180910390a150565b5f612421612bba565b600901546c0100000000000000000000000090046001600160a01b0316919050565b5f61087361244f612bba565b836001612be7565b5f6124648484845f612155565b949350505050565b5f612464848484612710611f7b565b6124843361178b565b600161248e612bba565b600d0180549115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9092169190911790556040517ffc1249757a7f27c510c8173c55d03ba442e0d33d9223e06ceb416feac8c7693f905f90a1565b5f61250b612bba565b600d01547501000000000000000000000000000000000000000000900460ff16919050565b5f612539612bba565b600b01546bffffffffffffffffffffffff16919050565b5f61087361255c612bba565b83613621565b5f61087361256e612bba565b835f612d7c565b5f61257e612bba565b600c8101549091506001600160a01b031633146125dd5760405162461bcd60e51b815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015260640161099a565b600b810180546bffffffffffffffffffffffff16336c01000000000000000000000000810291909117909155600c820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040517fff54978127edd34aec0f9061fb3b155fbe0ededdfa881ee3e0d541d3a1eef438905f90a250565b5f61087361266a612bba565b83613ae8565b5f612679612bba565b60098101549091506001600160a01b038381166c010000000000000000000000009092041614806126c95750600b8101546001600160a01b038381166c0100000000000000000000000090920416145b6118205760405162461bcd60e51b815260206004820152600760248201527f216b656570657200000000000000000000000000000000000000000000000000604482015260640161099a565b428410156127655760405162461bcd60e51b815260206004820152601e60248201527f45524332303a205045524d49545f444541444c494e455f455850495245440000604482015260640161099a565b5f6001612770610ef0565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a61279c612bba565b6001600160a01b038f81165f90815260049290920160209081526040928390208054600181019091558351808301989098529582168784015293166060860152608085019190915260a084019290925260c08084018b90528251808503909101815260e0840190925281519101207f19010000000000000000000000000000000000000000000000000000000000006101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156128a2573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906128d85750876001600160a01b0316816001600160a01b0316145b6129245760405162461bcd60e51b815260206004820152601560248201527f45524332303a20494e56414c49445f5349474e45520000000000000000000000604482015260640161099a565b61293761292f612bba565b828989612c21565b5050505050505050565b5f61087361294d612bba565b836136e4565b5f6107c261295f612bba565b61304d565b5f610918612970612bba565b6001600160a01b038086165f90815260069290920160209081526040808420928716845291905290205490565b6129a633611154565b6301e185588111156129fa5760405162461bcd60e51b815260206004820152600860248201527f746f6f206c6f6e67000000000000000000000000000000000000000000000000604482015260640161099a565b5f612a03612bba565b9050815f03612a6057305f9081526005820160205260409020548015612a2e57612a2e823083613187565b505f60088201556009810180547fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001690555b600a810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff84161790556040518281527ff361aed463da6fa20358e45c6209f1d3e16d4eca706e6eab0b0aeb338729c77a9060200160405180910390a15050565b5f612ad2612bba565b600a0154660100000000000090046001600160a01b0316919050565b612af733611154565b6001600160a01b038116612b4d5760405162461bcd60e51b815260206004820152600c60248201527f5a45524f20414444524553530000000000000000000000000000000000000000604482015260640161099a565b80612b56612bba565b600c0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055604051908216907fd74668a8c80a07cc56d7c3318a06439eaa815e740d97dcd83487e1fc75076b8b905f90a250565b5f8061087360017fd2841a5d2692465040bd5e06a6f3b37483952c866e0f304dc0e03f76a1f8a0b16144fd565b5f80612bf285612dcb565b90508015612c1657612c11612c08866007015490565b85908386613b98565b612c18565b835b95945050505050565b6001600160a01b038316612c9c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161099a565b6001600160a01b038216612d185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161099a565b6001600160a01b038381165f81815260068701602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a350505050565b5f80612d89856007015490565b90505f612d9586612dcb565b9050815f03612db5578015612daa575f612dac565b845b92505050610918565b612dc185828487613b98565b9695505050505050565b5f612dd58261304d565b826002015461087391906144fd565b6001600160a01b038381165f9081526006860160209081526040808320938616835292905220545f198114612e715781811015612e635760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161099a565b612e71858585858503612c21565b5050505050565b6001600160a01b038316612ef45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161099a565b6001600160a01b038216612f705760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161099a565b306001600160a01b03831603612fc85760405162461bcd60e51b815260206004820152601a60248201527f4552433230207472616e7366657220746f207374726174656779000000000000604482015260640161099a565b6001600160a01b0383165f90815260058501602052604081208054839290612ff19084906144fd565b90915550506001600160a01b038083165f818152600587016020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612d6e9085815260200190565b60098101545f906bffffffffffffffffffffffff164281111561309457600b830154600884015464e8d4a51000916bffffffffffffffffffffffff164203020491506130bc565b6bffffffffffffffffffffffff8116156130bc57305f90815260058401602052604090205491505b50919050565b6001600160a01b0382166131185760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161099a565b80836002015f82825461312b919061449b565b90915550506001600160a01b0382165f8181526005850160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3505050565b6001600160a01b0382166132035760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161099a565b6001600160a01b0382165f9081526005840160205260408120805483929061322c9084906144fd565b909155505060028301805482900390556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161317a565b5f8183106132875781610918565b5090919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f826001016040516132c191906147ca565b604080519182900382208282018252600583527f332e302e320000000000000000000000000000000000000000000000000000006020938401528151928301939093528101919091527f9b05054bd9341297fefb2453389e7533e0f19626959ede8bc13c51627768c97460608201524660808201523060a082015260c001604051602081830303815290604052805190602001209050919050565b600d8201545f907501000000000000000000000000000000000000000000900460ff161561338b57505f610873565b6040517f46aa2f120000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015230906346aa2f1290602401602060405180830381865afa1580156133e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091891906143fd565b306001600160a01b038416036134625760405162461bcd60e51b815260206004820152601560248201527f455243343632363a206d696e7420746f2073656c660000000000000000000000604482015260640161099a565b83546001600160a01b031661347981333086613be7565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482018190529063503160d9906001600160a01b038416906370a0823190602401602060405180830381865afa1580156134dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061350191906143fd565b6040518263ffffffff1660e01b815260040161351f91815260200190565b5f604051808303815f87803b158015613536575f80fd5b505af1158015613548573d5f803e3d5ffd5b5050505082856007015f82825461355f919061449b565b9091555061357090508585846130c2565b60408051848152602081018490526001600160a01b0386169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a35050505050565b5f306001600160a01b03831603613602576135d78361304d565b6001600160a01b0383165f9081526005850160205260409020546135fb91906144fd565b9050610873565b506001600160a01b03165f908152600591909101602052604090205490565b600d8201545f907501000000000000000000000000000000000000000000900460ff161561365057505f610873565b6040517f46aa2f120000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015230906346aa2f1290602401602060405180830381865afa1580156136ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136cf91906143fd565b90505f1981146108735761091883825f612d7c565b6040517f04bd46290000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201525f9030906304bd462990602401602060405180830381865afa158015613741573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061376591906143fd565b90505f198103613779576135fb83836135bd565b61091861378784835f612d7c565b610c2a85856135bd565b5f6001600160a01b0386166137e85760405162461bcd60e51b815260206004820152600c60248201527f5a45524f20414444524553530000000000000000000000000000000000000000604482015260640161099a565b61271082111561383a5760405162461bcd60e51b815260206004820152600f60248201527f65786365656473204d41585f4250530000000000000000000000000000000000604482015260640161099a565b336001600160a01b038616146138565761385687863386612de4565b86546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116905f9082906370a0823190602401602060405180830381865afa1580156138b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138dc91906143fd565b90505f86821015613a4e576040517f3d6cb57500000000000000000000000000000000000000000000000000000000815282880360048201523090633d6cb575906024015f604051808303815f87803b158015613937575f80fd5b505af1158015613949573d5f803e3d5ffd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03861692506370a082319150602401602060405180830381865afa1580156139a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139cc91906143fd565b915086821015613a4e5750808603612710851015613a4a576127106139f186896144ae565b6139fb91906144c5565b811115613a4a5760405162461bcd60e51b815260206004820152600d60248201527f746f6f206d756368206c6f737300000000000000000000000000000000000000604482015260640161099a565b8196505b613a58818861449b565b8a6007015f828254613a6a91906144fd565b90915550613a7b90508a8988613187565b613a8f6001600160a01b0384168a89613c9e565b60408051888152602081018890526001600160a01b03808b1692908c169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a4509498975050505050505050565b6040517f04bd46290000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201525f9030906304bd462990602401602060405180830381865afa158015613b45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b6991906143fd565b90505f198103613b81576135fb83611f7585856135bd565b610918613b9284611f7586866135bd565b82613279565b5f80613ba5868686613cec565b90506001836002811115613bbb57613bbb61485a565b148015613bd757505f8480613bd257613bd2614414565b868809115b15612c1857612dc160018261449b565b6040516001600160a01b0380851660248301528316604482015260648101829052613c989085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613dd9565b50505050565b6040516001600160a01b038316602482015260448101829052613ce79084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401613c34565b505050565b5f80805f19858709858702925082811083820303915050805f03613d2357838281613d1957613d19614414565b0492505050610918565b808411613d725760405162461bcd60e51b815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161099a565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f613e2d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ebf9092919063ffffffff16565b905080515f1480613e4d575080806020019051810190613e4d9190614887565b613ce75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161099a565b606061246484845f85855f80866001600160a01b03168587604051613ee491906148a6565b5f6040518083038185875af1925050503d805f8114613f1e576040519150601f19603f3d011682016040523d82523d5f602084013e613f23565b606091505b5091509150613f3487838387613f3f565b979650505050505050565b60608315613fad5782515f03613fa6576001600160a01b0385163b613fa65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161099a565b5081612464565b6124648383815115613fc25781518083602001fd5b8060405162461bcd60e51b815260040161099a9190613ffe565b5f5b83811015613ff6578181015183820152602001613fde565b50505f910152565b602081525f825180602084015261401c816040850160208701613fdc565b601f01601f19169190910160400192915050565b5f60208284031215614040575f80fd5b5035919050565b6001600160a01b03811681146111ca575f80fd5b803561406681614047565b919050565b5f806040838503121561407c575f80fd5b823561408781614047565b946020939093013593505050565b5f805f606084860312156140a7575f80fd5b83356140b281614047565b925060208401356140c281614047565b929592945050506040919091013590565b5f602082840312156140e3575f80fd5b813561091881614047565b5f80604083850312156140ff575f80fd5b82359150602083013561411181614047565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156141725761417261411c565b604052919050565b5f67ffffffffffffffff8211156141935761419361411c565b50601f01601f191660200190565b5f805f805f60a086880312156141b5575f80fd5b85356141c081614047565b9450602086013567ffffffffffffffff8111156141db575f80fd5b8601601f810188136141eb575f80fd5b80356141fe6141f98261417a565b614149565b818152896020838501011115614212575f80fd5b816020840160208301375f602083830101528096505050506142366040870161405b565b92506142446060870161405b565b91506142526080870161405b565b90509295509295909350565b5f805f8060808587031215614271575f80fd5b84359350602085013561428381614047565b9250604085013561429381614047565b9396929550929360600135925050565b61ffff811681146111ca575f80fd5b5f602082840312156142c2575f80fd5b8135610918816142a3565b5f805f606084860312156142df575f80fd5b8335925060208401356142f181614047565b9150604084013561430181614047565b809150509250925092565b60ff811681146111ca575f80fd5b5f805f805f805f60e0888a031215614330575f80fd5b873561433b81614047565b9650602088013561434b81614047565b9550604088013594506060880135935060808801356143698161430c565b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215614397575f80fd5b82356143a281614047565b9150602083013561411181614047565b600181811c908216806143c657607f821691505b6020821081036130bc577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6020828403121561440d575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f8060408385031215614452575f80fd5b825161445d816142a3565b602084015190925061411181614047565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156108735761087361446e565b80820281158282048414176108735761087361446e565b5f826144f8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b818103818111156108735761087361446e565b5f60208284031215614520575f80fd5b815167ffffffffffffffff811115614536575f80fd5b8201601f81018413614546575f80fd5b80516145546141f98261417a565b818152856020838501011115614568575f80fd5b612c18826020830160208601613fdc565b7f797300000000000000000000000000000000000000000000000000000000000081525f82516145b0816002850160208701613fdc565b9190910160020192915050565b601f821115613ce757805f5260205f20601f840160051c810160208510156145e25750805b601f840160051c820191505b81811015612e71575f81556001016145ee565b815167ffffffffffffffff81111561461b5761461b61411c565b61462f8161462984546143b2565b846145bd565b602080601f831160018114614662575f841561464b5750858301515b5f19600386901b1c1916600185901b1785556146b9565b5f85815260208120601f198616915b8281101561469057888601518255948401946001909101908401614671565b50858210156146ad57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f602082840312156146d1575f80fd5b81516109188161430c565b600181815b8085111561471657815f19048211156146fc576146fc61446e565b8085161561470957918102915b93841c93908002906146e1565b509250929050565b5f8261472c57506001610873565b8161473857505f610873565b816001811461474e576002811461475857614774565b6001915050610873565b60ff8411156147695761476961446e565b50506001821b610873565b5060208310610133831016604e8410600b8410161715614797575081810a610873565b6147a183836146dc565b805f19048211156147b4576147b461446e565b029392505050565b5f61091860ff84168361471e565b5f8083546147d7816143b2565b600182811680156147ef57600181146148225761484e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945061484e565b875f526020805f205f5b858110156148455781548a82015290840190820161482c565b50505082870194505b50929695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60208284031215614897575f80fd5b81518015158114610918575f80fd5b5f82516148b7818460208701613fdc565b919091019291505056fea164736f6c6343000819000a000000000000000000000000981771292052c5f77b14a3bd4df22e43a8b17bb0
0x000000000000000000000000981771292052c5f77b14a3bd4df22e43a8b17bb0
----Decoded View------------Arg [0] : _factory (address): 0x981771292052c5f77B14A3BD4DF22e43a8B17bB0
----Encoded View------------Arg [0] : 0x000000000000000000000000981771292052c5f77b14a3bd4df22e43a8b17bb0