0 txs
775 calls
constructor
constructor()
functions
canDeposit
viewfunction canDeposit() view returns (uint256)
canWithdraw
viewfunction canWithdraw() view returns (uint256)
checkUpkeep
viewfunction checkUpkeep(bytes) view returns (bool, bytes)
getDepositChange
viewfunction getDepositChange() view returns (int256)
getFees
viewfunction getFees() view returns (tuple[])
getMaxDeposits
viewfunction getMaxDeposits() view returns (uint256)
getMinDeposits
viewfunction getMinDeposits() view returns (uint256)
getPendingFees
viewfunction getPendingFees() view returns (uint256)
getTotalDeposits
viewfunction getTotalDeposits() view returns (uint256)
getVaultDepositLimits
viewfunction getVaultDepositLimits() view returns (uint256, uint256)
getVaults
viewfunction getVaults() view returns (address[])
indexOfLastFullVault
viewfunction indexOfLastFullVault() view returns (uint256)
maxDepositSizeBP
viewfunction maxDepositSizeBP() view returns (uint256)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
stakeController
viewfunction stakeController() view returns (address)
stakingPool
viewfunction stakingPool() view returns (address)
token
viewfunction token() view returns (address)
totalPrincipalDeposits
viewfunction totalPrincipalDeposits() view returns (uint256)
vaultDeploymentAmount
viewfunction vaultDeploymentAmount() view returns (uint128)
vaultDeploymentThreshold
viewfunction vaultDeploymentThreshold() view returns (uint128)
vaultImplementation
viewfunction vaultImplementation() view returns (address)
withdraw
viewfunction withdraw(uint256) view
__Strategy_init
nonpayablefunction __Strategy_init(address _token, address _stakingPool)
__VaultControllerStrategy_init
nonpayablefunction __VaultControllerStrategy_init(address _token, address _stakingPool, address _stakeController, address _vaultImplementation, tuple[] _fees, uint256 _maxDepositSizeBP)
addFee
nonpayablefunction addFee(address _receiver, uint256 _feeBasisPoints)
addVaults
nonpayablefunction addVaults(uint256 _numVaults)
claimRewards
nonpayablefunction claimRewards(uint256[] _vaults, uint256 _minRewards) returns (uint256)
deposit
nonpayablefunction deposit(uint256 _amount)
initialize
nonpayablefunction initialize(address _token, address _stakingPool, address _stakeController, address _vaultImplementation, tuple[] _fees, uint256 _maxDepositSizeBP, uint128 _vaultDeploymentThreshold, uint128 _vaultDeploymentAmount)
performUpkeep
nonpayablefunction performUpkeep(bytes)
renounceOwnership
nonpayablefunction renounceOwnership()
setMaxDepositSizeBP
nonpayablefunction setMaxDepositSizeBP(uint256 _maxDepositSizeBP)
setVaultDeploymentParams
nonpayablefunction setVaultDeploymentParams(uint128 _vaultDeploymentThreshold, uint128 _vaultDeploymentAmount)
setVaultImplementation
nonpayablefunction setVaultImplementation(address _vaultImplementation)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateDeposits
nonpayablefunction updateDeposits(bytes) returns (int256 depositChange, address[] receivers, uint256[] amounts)
updateFee
nonpayablefunction updateFee(uint256 _index, address _receiver, uint256 _feeBasisPoints)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
upgradeVaults
nonpayablefunction upgradeVaults(uint256 _startIndex, uint256 _numVaults, bytes _data)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetMaxDepositSizeBP
event SetMaxDepositSizeBP(uint256 maxDepositSizeBP)
SetVaultDeploymentParams
event SetVaultDeploymentParams(uint128 vaultDeploymentThreshold, uint128 vaultDeploymentAmount)
SetVaultImplementation
event SetVaultImplementation(address vaultImplementation)
Upgraded
event Upgraded(address indexed implementation)
UpgradedVaults
event UpgradedVaults(uint256 startIndex, uint256 numVaults, bytes data)
errors
InvalidBasisPoints
error InvalidBasisPoints()
VaultsAboveThreshold
error VaultsAboveThreshold()
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161423d6200011f60003960008181610a7001528181610ab301528181610e6601528181610ea90152610f41015261423d6000f3fe608060405260043610620002775760003560e01c806380135e3c1162000153578063c51c2d0e11620000c5578063e78a58751162000084578063e78a58751462000765578063e8470988146200077d578063eb47dc8f14620002ef578063eb63421014620007a2578063f2fde38b14620007c4578063fc0c546a14620007e957600080fd5b8063c51c2d0e14620006c7578063cea7728e14620006df578063db8d55f114620006f7578063df9348a1146200071e578063e61fbf3c146200074057600080fd5b8063b47529c51162000112578063b47529c5146200062b578063b51459fe1462000650578063b6b55f251462000668578063b7b7a408146200068d578063bba48a9014620006a557600080fd5b806380135e3c146200055d5780638da5cb5b14620005825780639566355b14620005a2578063a4f6548014620005d0578063af51e6a514620005f557600080fd5b80634585e33b11620001ed5780636e04ff0d11620001ac5780636e04ff0d14620004915780636fac5bd114620004c6578063715018a614620004de578063722e354c14620004f65780637718238f146200053857600080fd5b80634585e33b14620004005780634f1ef286146200042557806352d1902d146200043c57806353e78b6b146200045457806369feab49146200047957600080fd5b80632e1a7d4d116200023a5780632e1a7d4d14620003455780633659cfe6146200036a578063396a8b83146200038f57806343ae8a5f14620003b457806344d00f8214620003d957600080fd5b80630c56ae3b146200027c5780630f1d1e3114620002bb578063168a482214620002ef57806317359da4146200030657806320009405146200032d575b600080fd5b3480156200028957600080fd5b5060ca546200029e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620002c857600080fd5b50620002e0620002da36600462002efc565b6200080b565b604051908152602001620002b2565b348015620002fc57600080fd5b5060cf54620002e0565b3480156200031357600080fd5b506200032b6200032536600462002f7c565b620009cf565b005b3480156200033a57600080fd5b50620002e060d05481565b3480156200035257600080fd5b506200032b6200036436600462002f7c565b620009e7565b3480156200037757600080fd5b506200032b6200038936600462002fac565b62000a66565b3480156200039c57600080fd5b506200032b620003ae366004620030b9565b62000b4e565b348015620003c157600080fd5b506200032b620003d3366004620031c8565b62000bd0565b348015620003e657600080fd5b50620003f162000d88565b604051620002b2919062003264565b3480156200040d57600080fd5b506200032b6200041f366004620032b3565b62000dec565b6200032b620004363660046200332a565b62000e5c565b3480156200044957600080fd5b50620002e062000f34565b3480156200046157600080fd5b506200032b6200047336600462002fac565b62000fea565b3480156200048657600080fd5b50620002e0620010a3565b3480156200049e57600080fd5b50620004b6620004b0366004620032b3565b620011ff565b604051620002b2929190620033dd565b348015620004d357600080fd5b50620002e060d15481565b348015620004eb57600080fd5b506200032b62001250565b3480156200050357600080fd5b5060dc546200051f90600160801b90046001600160801b031681565b6040516001600160801b039091168152602001620002b2565b3480156200054557600080fd5b506200032b62000557366004620033fa565b62001268565b3480156200056a57600080fd5b506200032b6200057c36600462003446565b62001333565b3480156200058f57600080fd5b506097546001600160a01b03166200029e565b348015620005af57600080fd5b50620005ba62001480565b60408051928352602083019190915201620002b2565b348015620005dd57600080fd5b506200032b620005ef36600462003509565b620014f9565b3480156200060257600080fd5b506200061a62000614366004620032b3565b6200155c565b604051620002b29392919062003541565b3480156200063857600080fd5b506200032b6200064a366004620035d4565b62001823565b3480156200065d57600080fd5b50620002e0620019ee565b3480156200067557600080fd5b506200032b6200068736600462002f7c565b62001a25565b3480156200069a57600080fd5b50620002e062001c1f565b348015620006b257600080fd5b5060cd546200029e906001600160a01b031681565b348015620006d457600080fd5b50620002e062001cba565b348015620006ec57600080fd5b50620002e060d25481565b3480156200070457600080fd5b506200070f62001d4f565b604051620002b291906200360f565b3480156200072b57600080fd5b5060dc546200051f906001600160801b031681565b3480156200074d57600080fd5b506200032b6200075f36600462003669565b62001dc6565b3480156200077257600080fd5b50620002e062001e34565b3480156200078a57600080fd5b506200032b6200079c36600462002f7c565b62001e73565b348015620007af57600080fd5b5060cb546200029e906001600160a01b031681565b348015620007d157600080fd5b506200032b620007e336600462002fac565b62001ed7565b348015620007f657600080fd5b5060c9546200029e906001600160a01b031681565b60c9546040516370a0823160e01b81523060048201819052600092909183916001600160a01b0316906370a0823190602401602060405180830381865afa1580156200085b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008819190620036a7565b905060005b85811015620009455760ce878783818110620008a657620008a6620036c1565b9050602002013581548110620008c057620008c0620036c1565b600091825260209091200154604051636c7b69cb60e01b8152600481018790526001600160a01b03858116602483015290911690636c7b69cb90604401600060405180830381600087803b1580156200091857600080fd5b505af11580156200092d573d6000803e3d6000fd5b50505050806200093d90620036ed565b905062000886565b5060c9546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801562000990573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009b69190620036a7565b9050620009c4828262003709565b979650505050505050565b620009d962001f53565b620009e48162001faf565b50565b60ca546001600160a01b0316331462000a1d5760405162461bcd60e51b815260040162000a149062003723565b60405180910390fd5b60405162461bcd60e51b815260206004820152601f60248201527f7769746864726177616c73206e6f742079657420696d706c656d656e74656400604482015260640162000a14565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000ab15760405162461bcd60e51b815260040162000a14906200374d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000afc600080516020620041c1833981519152546001600160a01b031690565b6001600160a01b03161462000b255760405162461bcd60e51b815260040162000a149062003799565b62000b3081620020b2565b60408051600080825260208201909252620009e491839190620020bc565b62000b5862001f53565b825b62000b668385620037e5565b81101562000b8d5762000b7a818362002234565b62000b8581620036ed565b905062000b5a565b507f71ddb05108536dca4ade6ad9f2cec5fd3e84727523ab1e86b135ea47f79dfe8e83838360405162000bc39392919062003800565b60405180910390a1505050565b600054610100900460ff1662000bfa5760405162461bcd60e51b815260040162000a14906200382a565b62000c06868662001dc6565b60cb80546001600160a01b0319166001600160a01b038616179055823b62000c905760405162461bcd60e51b815260206004820152603660248201527f5661756c7420696d706c656d656e746174696f6e2061646472657373206d75736044820152751d0818995b1bdb99c81d1bc8184818dbdb9d1c9858dd60521b606482015260840162000a14565b60cd80546001600160a01b0319166001600160a01b03851617905560005b825181101562000d2b5760cc83828151811062000ccf5762000ccf620036c1565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b0390921691909117815591015191015562000d2381620036ed565b905062000cae565b5061138862000d396200230a565b111562000d5a5760405162461bcd60e51b815260040162000a149062003875565b61271081111562000d7e5760405163800c7e9160e01b815260040160405180910390fd5b60d2555050505050565b606060ce80548060200260200160405190810160405280929190818152602001828054801562000de257602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000dc3575b5050505050905090565b60dc5460d15460ce546001600160801b039092169162000e0f9060019062003709565b62000e1b919062003709565b1062000e3a5760405163204207c760e21b815260040160405180910390fd5b60dc5462000e5890600160801b90046001600160801b031662001faf565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000ea75760405162461bcd60e51b815260040162000a14906200374d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000ef2600080516020620041c1833981519152546001600160a01b031690565b6001600160a01b03161462000f1b5760405162461bcd60e51b815260040162000a149062003799565b62000f2682620020b2565b62000e5882826001620020bc565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000fd65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000a14565b50600080516020620041c183398151915290565b62000ff462001f53565b803b6200104e5760405162461bcd60e51b815260206004820152602160248201527f41646472657373206d7573742062656c6f6e6720746f206120636f6e747261636044820152601d60fa1b606482015260840162000a14565b60cd80546001600160a01b0319166001600160a01b0383169081179091556040519081527f028cd482b99a4d21fe2c757cd8fc155d8dcce718854d0f63e40819069339a49d906020015b60405180910390a150565b60c9546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015620010f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011179190620036a7565b905060005b60ce54811015620011e957600060ce82815481106200113f576200113f620036c1565b6000918252602091829020015460408051630b45241160e11b815290516001600160a01b039092169263168a4822926004808401938290030181865afa1580156200118e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011b49190620036a7565b905080600003620011c65750620011e9565b620011d28184620037e5565b92505080620011e190620036ed565b90506200111c565b5060cf54620011f99082620038ac565b91505090565b60dc5460d15460ce546000926060926001600160801b0390911691620012289060019062003709565b62001234919062003709565b1060405180602001604052806000815250915091509250929050565b6200125a62001f53565b6200126660006200236b565b565b6200127262001f53565b604080518082019091526001600160a01b0383811682526020820183815260cc805460018101825560009190915292517f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe600290940293840180546001600160a01b0319169190931617909155517f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebf90910155611388620013126200230a565b111562000e585760405162461bcd60e51b815260040162000a149062003875565b600054610100900460ff1615808015620013545750600054600160ff909116105b80620013705750303b15801562001370575060005460ff166001145b620013d55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000a14565b6000805460ff191660011790558015620013f9576000805461ff0019166101001790555b6200140989898989898962000bd0565b6001600160801b03838116600160801b9184169182021760dc556200142e9062001faf565b801562001475576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60cb5460408051636277b91560e11b8152815160009384936001600160a01b039091169263c4ef722a92600480830193928290030181865afa158015620014cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014f19190620038f1565b915091509091565b6200150362001f53565b6001600160801b03828116600160801b918316918202811760dc556040805191825260208201929092527f2196e987c24b3b409afea8902f67b4da71ca78df105640a4eb1776b2a2824a71910160405180910390a15050565b60ca5460009060609081906001600160a01b03163314620015915760405162461bcd60e51b815260040162000a149062003723565b6200159b620010a3565b60cf5490935060008413156200174757620015b78482620037e5565b60cc5490915067ffffffffffffffff811115620015d857620015d862002fcc565b60405190808252806020026020018201604052801562001602578160200160208202803683370190505b5060cc5490935067ffffffffffffffff81111562001624576200162462002fcc565b6040519080825280602002602001820160405280156200164e578160200160208202803683370190505b50915060005b60cc54811015620017405760cc8181548110620016755762001675620036c1565b600091825260209091206002909102015484516001600160a01b0390911690859083908110620016a957620016a9620036c1565b60200260200101906001600160a01b031690816001600160a01b03168152505061271060cc8281548110620016e257620016e2620036c1565b9060005260206000209060020201600101548662001701919062003916565b6200170d919062003938565b838281518110620017225762001722620036c1565b60209081029190910101526200173881620036ed565b905062001654565b506200176e565b60008412156200176e576200175f846000196200395b565b6200176b908262003709565b90505b60c9546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015620017b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017de9190620036a7565b90508015620018155760ca5460c95462001806916001600160a01b03918216911683620023bd565b62001812818362003709565b91505b5060cf559194909350909150565b6200182d62001f53565b60cc548310620018755760405162461bcd60e51b815260206004820152601260248201527111995948191bd95cc81b9bdd08195e1a5cdd60721b604482015260640162000a14565b80600003620019425760cc8054620018909060019062003709565b81548110620018a357620018a3620036c1565b906000526020600020906002020160cc8481548110620018c757620018c7620036c1565b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b0390921691909117815560019182015491015560cc805480620019135762001913620039ec565b60008281526020812060026000199093019283020180546001600160a01b0319168155600101559055620019bb565b8160cc8481548110620019595762001959620036c1565b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060cc8481548110620019a557620019a5620036c1565b9060005260206000209060020201600101819055505b611388620019c86200230a565b1115620019e95760405162461bcd60e51b815260040162000a149062003875565b505050565b600080620019fb60cf5490565b905062001a0760cf5490565b811162001a1657600091505090565b60cf54620011f9908262003709565b60ca546001600160a01b0316331462001a525760405162461bcd60e51b815260040162000a149062003723565b60c95462001a6c906001600160a01b031633308462002422565b60008062001a7962001480565b91509150600060d154600162001a909190620037e5565b90508160ce60008154811062001aaa5762001aaa620036c1565b6000918252602091829020015460408051631ae665a560e01b815290516001600160a01b0390921692631ae665a5926004808401938290030181865afa15801562001af9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b1f9190620036a7565b101562001b2a575060005b60c9546040516370a0823160e01b815230600482015260009162001ba99184916001600160a01b0316906370a0823190602401602060405180830381865afa15801562001b7b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ba19190620036a7565b868662002462565b90508060cf600082825462001bbf9190620037e5565b925050819055508060d0600082825462001bda9190620037e5565b909155505080851462001c185760ca5462001c18906001600160a01b031662001c04838862003709565b60c9546001600160a01b03169190620023bd565b5050505050565b60008060001b60cb60009054906101000a90046001600160a01b03166001600160a01b031663495906576040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001c79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c9f9190620036a7565b1462001cab5750600090565b62001cb56200266a565b905090565b60008062001cc7620010a3565b905060008082131562001d495760005b60cc5481101562001d475761271060cc828154811062001cfb5762001cfb620036c1565b9060005260206000209060020201600101548462001d1a919062003916565b62001d26919062003938565b62001d329083620037e5565b915062001d3f81620036ed565b905062001cd7565b505b92915050565b606060cc805480602002602001604051908101604052809291908181526020016000905b8282101562001dbd576000848152602090819020604080518082019091526002850290910180546001600160a01b0316825260019081015482840152908352909201910162001d73565b50505050905090565b600054610100900460ff1662001df05760405162461bcd60e51b815260040162000a14906200382a565b60c980546001600160a01b038085166001600160a01b03199283161790925560ca80549284169290911691909117905562001e2a6200284f565b62000e5862002883565b60008062001e4160cf5490565b905062001e4d62001c1f565b811062001e5c57600091505090565b8062001e6762001c1f565b620011f9919062003709565b62001e7d62001f53565b61271081111562001ea15760405163800c7e9160e01b815260040160405180910390fd5b60d28190556040518181527fc3a64d8ad419db097a8d7e9ab60fad0d91ad6158cdd00de7ec455531ae72d4269060200162001098565b62001ee162001f53565b6001600160a01b03811662001f485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000a14565b620009e4816200236b565b6097546001600160a01b03163314620012665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000a14565b60c95460cb5460408051635f0f4c8360e01b815290516000936001600160a01b039081169330939116918291635f0f4c839160048083019260209291908290030181865afa15801562002006573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200202c919062003a02565b6040516001600160a01b03948516602482015292841660448401529083166064830152909116608482015260a40160408051601f198184030181529190526020810180516001600160e01b0316637c643b2f60e11b179052905060005b82811015620019e9576200209d82620028ad565b80620020a981620036ed565b91505062002089565b620009e462001f53565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615620020f257620019e98362002969565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200214f575060408051601f3d908101601f191682019092526200214c91810190620036a7565b60015b620021b45760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000a14565b600080516020620041c18339815191528114620022265760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000a14565b50620019e983838362002a08565b600060ce83815481106200224c576200224c620036c1565b600091825260208220015483516001600160a01b0390911692509003620022d45760cd54604051631b2ce7f360e11b81526001600160a01b03918216600482015290821690633659cfe6906024015b600060405180830381600087803b158015620022b657600080fd5b505af1158015620022cb573d6000803e3d6000fd5b50505050505050565b60cd5460405163278f794360e11b81526001600160a01b0383811692634f1ef286926200229b9290911690869060040162003a22565b60008060005b60cc54811015620023655760cc8181548110620023315762002331620036c1565b90600052602060002090600202016001015482620023509190620037e5565b91506200235d81620036ed565b905062002310565b50919050565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b038316602482015260448101829052620019e990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262002a33565b6040516001600160a01b03808516602483015283166044820152606481018290526200245c9085906323b872dd60e01b90608401620023ea565b50505050565b60008381865b60ce548110156200264b57600060ce82815481106200248b576200248b620036c1565b600091825260208083209091015460408051631ae665a560e01b815290516001600160a01b0390921694508492631ae665a5926004808401938290030181865afa158015620024de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025049190620036a7565b9050600062002514828962003709565b905088821080156200253057506200252d828a62003709565b86105b156200253f575050506200264b565b80861115620025bf5760405163b6b55f2560e01b81526004810182905293945084936001600160a01b0384169063b6b55f2590602401600060405180830381600087803b1580156200259057600080fd5b505af1158015620025a5573d6000803e3d6000fd5b505050508086620025b7919062003709565b955062002634565b808603620025cb578394505b60405163b6b55f2560e01b8152600481018790526001600160a01b0384169063b6b55f2590602401600060405180830381600087803b1580156200260e57600080fd5b505af115801562002623573d6000803e3d6000fd5b50505050600095505050506200264b565b505050806200264390620036ed565b905062002468565b5060d18190556200265d828762003709565b925050505b949350505050565b6000806200267762001480565b91505060cb60009054906101000a90046001600160a01b03166001600160a01b03166322f3e2d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015620026ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026f4919062003a48565b6200270157600062002840565b60d05460ce546200284091906200271a90849062003916565b62002726919062003709565b60d25460cb546040805163885491af60e01b8152905161271093926001600160a01b03169163885491af9160048083019260209291908290030181865afa15801562002776573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200279c9190620036a7565b60cb60009054906101000a90046001600160a01b03166001600160a01b0316630fbc8f5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620027f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028169190620036a7565b62002822919062003709565b6200282e919062003916565b6200283a919062003938565b62002b0f565b60cf54620011f99190620037e5565b600054610100900460ff16620028795760405162461bcd60e51b815260040162000a14906200382a565b6200126662002b29565b600054610100900460ff16620012665760405162461bcd60e51b815260040162000a14906200382a565b60cd546040516000916001600160a01b0316908390620028cd9062002eee565b620028da92919062003a22565b604051809103906000f080158015620028f7573d6000803e3d6000fd5b5060c95490915062002916906001600160a01b03168260001962002b5e565b60ce80546001810182556000919091527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620029d85760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000a14565b600080516020620041c183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62002a138362002c7b565b60008251118062002a215750805b15620019e9576200245c838362002cbd565b600062002a8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662002ce59092919063ffffffff16565b905080516000148062002aae57508080602001905181019062002aae919062003a48565b620019e95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000a14565b600081831062002b20578162002b22565b825b9392505050565b600054610100900460ff1662002b535760405162461bcd60e51b815260040162000a14906200382a565b62001266336200236b565b80158062002bdc5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801562002bb4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002bda9190620036a7565b155b62002c495760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840162000a14565b6040516001600160a01b038316602482015260448101829052620019e990849063095ea7b360e01b90606401620023ea565b62002c868162002969565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062002b228383604051806060016040528060278152602001620041e16027913962002cf6565b606062002662848460008562002d74565b6060600080856001600160a01b03168560405162002d15919062003a6c565b600060405180830381855af49150503d806000811462002d52576040519150601f19603f3d011682016040523d82523d6000602084013e62002d57565b606091505b509150915062002d6a8683838762002e47565b9695505050505050565b60608247101562002dd75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000a14565b600080866001600160a01b0316858760405162002df5919062003a6c565b60006040518083038185875af1925050503d806000811462002e34576040519150601f19603f3d011682016040523d82523d6000602084013e62002e39565b606091505b50915091506200265d878383875b6060831562002ebb57825160000362002eb3576001600160a01b0385163b62002eb35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000a14565b508162002662565b62002662838381511562002ed25781518083602001fd5b8060405162461bcd60e51b815260040162000a14919062003a8a565b6107218062003aa083390190565b60008060006040848603121562002f1257600080fd5b833567ffffffffffffffff8082111562002f2b57600080fd5b818601915086601f83011262002f4057600080fd5b81358181111562002f5057600080fd5b8760208260051b850101111562002f6657600080fd5b6020928301989097509590910135949350505050565b60006020828403121562002f8f57600080fd5b5035919050565b6001600160a01b0381168114620009e457600080fd5b60006020828403121562002fbf57600080fd5b813562002b228162002f96565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171562003008576200300862002fcc565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156200303a576200303a62002fcc565b604052919050565b600082601f8301126200305457600080fd5b813567ffffffffffffffff81111562003071576200307162002fcc565b62003086601f8201601f19166020016200300e565b8181528460208386010111156200309c57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215620030cf57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115620030f557600080fd5b620031038682870162003042565b9150509250925092565b600082601f8301126200311f57600080fd5b8135602067ffffffffffffffff8211156200313e576200313e62002fcc565b6200314e818360051b016200300e565b82815260069290921b840181019181810190868411156200316e57600080fd5b8286015b84811015620031bd57604081890312156200318d5760008081fd5b6200319762002fe2565b8135620031a48162002f96565b8152818501358582015283529183019160400162003172565b509695505050505050565b60008060008060008060c08789031215620031e257600080fd5b8635620031ef8162002f96565b95506020870135620032018162002f96565b94506040870135620032138162002f96565b93506060870135620032258162002f96565b9250608087013567ffffffffffffffff8111156200324257600080fd5b6200325089828a016200310d565b92505060a087013590509295509295509295565b6020808252825182820181905260009190848201906040850190845b81811015620032a75783516001600160a01b03168352928401929184019160010162003280565b50909695505050505050565b60008060208385031215620032c757600080fd5b823567ffffffffffffffff80821115620032e057600080fd5b818501915085601f830112620032f557600080fd5b8135818111156200330557600080fd5b8660208285010111156200331857600080fd5b60209290920196919550909350505050565b600080604083850312156200333e57600080fd5b82356200334b8162002f96565b9150602083013567ffffffffffffffff8111156200336857600080fd5b620033768582860162003042565b9150509250929050565b60005b838110156200339d57818101518382015260200162003383565b838111156200245c5750506000910152565b60008151808452620033c981602086016020860162003380565b601f01601f19169290920160200192915050565b8215158152604060208201526000620026626040830184620033af565b600080604083850312156200340e57600080fd5b82356200341b8162002f96565b946020939093013593505050565b80356001600160801b03811681146200344157600080fd5b919050565b600080600080600080600080610100898b0312156200346457600080fd5b8835620034718162002f96565b97506020890135620034838162002f96565b96506040890135620034958162002f96565b95506060890135620034a78162002f96565b9450608089013567ffffffffffffffff811115620034c457600080fd5b620034d28b828c016200310d565b94505060a08901359250620034ea60c08a0162003429565b9150620034fa60e08a0162003429565b90509295985092959890939650565b600080604083850312156200351d57600080fd5b620035288362003429565b9150620035386020840162003429565b90509250929050565b6000606082018583526020606081850152818651808452608086019150828801935060005b818110156200358d5784516001600160a01b03168352938301939183019160010162003566565b50508481036040860152855180825290820192508186019060005b81811015620035c657825185529383019391830191600101620035a8565b509298975050505050505050565b600080600060608486031215620035ea57600080fd5b833592506020840135620035fe8162002f96565b929592945050506040919091013590565b602080825282518282018190526000919060409081850190868401855b828110156200365c57815180516001600160a01b031685528601518685015292840192908501906001016200362c565b5091979650505050505050565b600080604083850312156200367d57600080fd5b82356200368a8162002f96565b915060208301356200369c8162002f96565b809150509250929050565b600060208284031215620036ba57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620037025762003702620036d7565b5060010190565b6000828210156200371e576200371e620036d7565b500390565b60208082526010908201526f5374616b696e67506f6f6c206f6e6c7960801b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60008219821115620037fb57620037fb620036d7565b500190565b838152826020820152606060408201526000620038216060830184620033af565b95945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526019908201527f546f74616c2066656573206d757374206265203c3d2035302500000000000000604082015260600190565b60008083128015600160ff1b850184121615620038cd57620038cd620036d7565b6001600160ff1b0384018313811615620038eb57620038eb620036d7565b50500390565b600080604083850312156200390557600080fd5b505080516020909101519092909150565b6000816000190483118215151615620039335762003933620036d7565b500290565b6000826200395657634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160ff1b0381841382841380821686840486111615620039845762003984620036d7565b600160ff1b6000871282811687830589121615620039a657620039a6620036d7565b60008712925087820587128484161615620039c557620039c5620036d7565b87850587128184161615620039de57620039de620036d7565b505050929093029392505050565b634e487b7160e01b600052603160045260246000fd5b60006020828403121562003a1557600080fd5b815162002b228162002f96565b6001600160a01b03831681526040602082018190526000906200266290830184620033af565b60006020828403121562003a5b57600080fd5b8151801515811462002b2257600080fd5b6000825162003a8081846020870162003380565b9190910192915050565b60208152600062002b226020830184620033af56fe608060405260405161072138038061072183398101604081905261002291610314565b61002e82826000610035565b5050610431565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106fa602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c91906103e2565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103fe565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103035781810151838201526020016102eb565b838111156100645750506000910152565b6000806040838503121561032757600080fd5b82516001600160a01b038116811461033e57600080fd5b60208401519092506001600160401b038082111561035b57600080fd5b818501915085601f83011261036f57600080fd5b815181811115610381576103816102d2565b604051601f8201601f19908116603f011681019083821181831017156103a9576103a96102d2565b816040528281528860208487010111156103c257600080fd5b6103d38360208301602088016102e8565b80955050505050509250929050565b600082516103f48184602087016102e8565b9190910192915050565b602081526000825180602084015261041d8160408501602087016102e8565b601f01601f19169190910160400192915050565b6102ba806104406000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b919061020e565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b8152600401610127919061022a565b60005b838110156101f95781810151838201526020016101e1565b83811115610208576000848401525b50505050565b600082516102208184602087016101de565b9190910192915050565b60208152600082518060208401526102498160408501602087016101de565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122015c575a1d4aa5f6221f50862bdd76e39e9fc0eff20f628e8308027fc8124232e64736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204ea39862d1c2530f9efa437f6e732112f4fc61182854bbeeed1c389bfc92da3d64736f6c634300080f0033