0 txs
0 calls
constructor
constructor(address _weth, address _keeper, string _tokenName, string _tokenSymbol, (uint8 decimals, address asset, uint56 minimumSupply, uint104 cap) _vaultParams)
functions
accountVaultBalance
viewfunction accountVaultBalance(address account) view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
canDeposit
viewfunction canDeposit(address account, bytes32[] proof) view returns (bool)
cap
viewfunction cap() view returns (uint256)
currentQueuedWithdrawShares
viewfunction currentQueuedWithdrawShares() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
depositReceipts
viewfunction depositReceipts(address) view returns (uint16 round, uint104 amount, uint128 unredeemedShares)
getCurrQueuedWithdrawAmount
viewfunction getCurrQueuedWithdrawAmount(uint256 currentBalance) view returns (uint256)
isPublic
viewfunction isPublic() view returns (bool)
keeper
viewfunction keeper() view returns (address)
lastQueuedWithdrawAmount
viewfunction lastQueuedWithdrawAmount() view returns (uint256)
merkleRoot
viewfunction merkleRoot() view returns (bytes32)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pricePerShare
viewfunction pricePerShare() view returns (uint256)
round
viewfunction round() view returns (uint256)
roundPricePerShare
viewfunction roundPricePerShare(uint256) view returns (uint256)
shareBalances
viewfunction shareBalances(address account) view returns (uint256 heldByAccount, uint256 heldByVault)
shares
viewfunction shares(address account) view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalBalance
viewfunction totalBalance() view returns (uint256)
totalPending
viewfunction totalPending() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
vaultParams
viewfunction vaultParams() view returns (uint8 decimals, address asset, uint56 minimumSupply, uint104 cap)
vaultState
viewfunction vaultState() view returns (uint16 round, uint104 lockedAmount, uint104 lastLockedAmount, uint128 totalPending, uint128 queuedWithdrawShares)
WETH
viewfunction WETH() view returns (address)
withdrawals
viewfunction withdrawals(address) view returns (uint16 round, uint128 shares)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
completeWithdraw
nonpayablefunction completeWithdraw()
deposit
nonpayablefunction deposit(uint256 amount)
depositETH
payablefunction depositETH() payable
depositETHFor
payablefunction depositETHFor(address creditor) payable
depositFor
nonpayablefunction depositFor(uint256 amount, address creditor)
initiateWithdraw
nonpayablefunction initiateWithdraw(uint256 numShares)
maxRedeem
nonpayablefunction maxRedeem()
privateDeposit
nonpayablefunction privateDeposit(uint256 amount, bytes32[] proof)
privateDepositETH
payablefunction privateDepositETH(bytes32[] proof) payable
redeem
nonpayablefunction redeem(uint256 numShares)
renounceOwnership
nonpayablefunction renounceOwnership()
rollToNextRound
nonpayablefunction rollToNextRound(uint256 currentBalance)
setCap
nonpayablefunction setCap(uint256 newCap)
setMerkleRoot
nonpayablefunction setMerkleRoot(bytes32 _merkleRoot)
setNewKeeper
nonpayablefunction setNewKeeper(address newKeeper)
setPublic
nonpayablefunction setPublic(bool _isPublic)
setVaultParams
nonpayablefunction setVaultParams(tuple newVaultParams)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawInstantly
nonpayablefunction withdrawInstantly(uint256 amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CapSet
event CapSet(uint256 oldCap, uint256 newCap)
Deposit
event Deposit(address indexed account, uint256 amount, uint256 round)
InitiateWithdraw
event InitiateWithdraw(address indexed account, uint256 shares, uint256 round)
InstantWithdraw
event InstantWithdraw(address indexed account, uint256 amount, uint256 round)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Redeem
event Redeem(address indexed account, uint256 share, uint256 round)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdraw
event Withdraw(address indexed account, uint256 amount, uint256 shares)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
FailedInnerCall
error FailedInnerCall()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162003b2738038062003b278339810160408190526200003491620003ce565b600160005533838360046200004a83826200057e565b5060056200005982826200057e565b5050506001600160a01b0381166200008c57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000097816200025e565b506001600160a01b038516620000d95760405162461bcd60e51b8152602060048201526006602482015265042beeecae8d60d31b604482015260640162000083565b6001600160a01b0384166200011c5760405162461bcd60e51b815260206004820152600860248201526710afb5b2b2b832b960c11b604482015260640162000083565b600081606001516001600160681b031611620001635760405162461bcd60e51b81526020600482015260056024820152640215f6361760dc1b604482015260640162000083565b60208101516001600160a01b0316620001a95760405162461bcd60e51b81526020600482015260076024820152660857d85cdcd95d60ca1b604482015260640162000083565b6001600160a01b03948516608052601080546001600160a01b0319169486169490941790935550508051600a80546020840151604085015160ff9094166001600160a81b03199092169190911761010091909516029390931766ffffffffffffff60a81b1916600160a81b66ffffffffffffff909216919091021790915560600151600b80546001600160681b0319166001600160681b03909216919091179055600c805461ffff191660011790556200064a565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b0381168114620002c857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620003085762000308620002cd565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620003395762000339620002cd565b604052919050565b600082601f8301126200035357600080fd5b81516001600160401b038111156200036f576200036f620002cd565b602062000385601f8301601f191682016200030e565b82815285828487010111156200039a57600080fd5b60005b83811015620003ba5785810183015182820184015282016200039d565b506000928101909101919091529392505050565b6000806000806000858703610100811215620003e957600080fd5b620003f487620002b0565b95506200040460208801620002b0565b60408801519095506001600160401b03808211156200042257600080fd5b620004308a838b0162000341565b955060608901519150808211156200044757600080fd5b506200045689828a0162000341565b9350506080607f19820112156200046c57600080fd5b5062000477620002e3565b608087015160ff811681146200048c57600080fd5b81526200049c60a08801620002b0565b602082015260c087015166ffffffffffffff81168114620004bc57600080fd5b604082015260e08701516001600160681b0381168114620004dc57600080fd5b6060820152949793965091945092919050565b600181811c908216806200050457607f821691505b6020821081036200052557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200057957600081815260208120601f850160051c81016020861015620005545750805b601f850160051c820191505b81811015620005755782815560010162000560565b5050505b505050565b81516001600160401b038111156200059a576200059a620002cd565b620005b281620005ab8454620004ef565b846200052b565b602080601f831160018114620005ea5760008415620005d15750858301515b600019600386901b1c1916600185901b17855562000575565b600085815260208120601f198616915b828110156200061b57888601518255948401946001909101908401620005fa565b50858210156200063a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805161349062000697600039600081816108af01528181611940015281816119ba01528181611bc301528181611cb301528181611d2d0152818161219501526121d101526134906000f3fe6080604052600436106102cd5760003560e01c80637cb6475911610175578063c0ce93f1116100dc578063eae1f26511610095578063f6203e351161006f578063f6203e3514610a40578063f6326fb314610a53578063f656ba5114610a5b578063f756fa2114610a9057600080fd5b8063eae1f265146109ed578063f0b2c7e614610a00578063f2fde38b14610a2057600080fd5b8063c0ce93f114610906578063ce7c2ac214610926578063d164cc1514610946578063db006a7514610966578063dc9a153514610986578063dd62ed3e146109a757600080fd5b80639fcc2d751161012e5780639fcc2d75146107d2578063a9059cbb1461085d578063aced16611461087d578063ad5c46481461089d578063ad7a672f146108d1578063b6b55f25146108e657600080fd5b80637cb64759146107095780637e108d521461072957806387153eb1146107495780638da5cb5b1461077657806395d89b41146107a857806399530b06146107bd57600080fd5b806338bca72611610234578063503c70aa116101ed5780636f31ab34116101c75780636f31ab341461064557806370a082311461065a578063715018a6146106905780637a9262a2146106a557600080fd5b8063503c70aa1461058b5780635cbcec4e146105a15780636719b2ee146105c157600080fd5b806338bca726146104d75780633aa03f17146104f75780633f23bb73146105175780633f90916a1461053757806347786d37146105555780634b2431d91461057557600080fd5b80632775d01c116102865780632775d01c1461041f5780632eb4a7ab14610441578063313ce567146104575780633340d73c14610479578063355274ea1461049957806336efd16f146104b757600080fd5b806306fdde03146102d9578063095ea7b314610304578063146ca5311461033457806318160ddd1461035757806323b872dd1461036c5780632728f3331461038c57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610aa5565b6040516102fb9190612e78565b60405180910390f35b34801561031057600080fd5b5061032461031f366004612ec7565b610b37565b60405190151581526020016102fb565b34801561034057600080fd5b50600c5461ffff165b6040519081526020016102fb565b34801561036357600080fd5b50600354610349565b34801561037857600080fd5b50610324610387366004612ef1565b610b51565b34801561039857600080fd5b50600c54600d546103da9161ffff8116916001600160681b03620100008304811692600160781b900416906001600160801b0380821691600160801b90041685565b6040805161ffff90961686526001600160681b03948516602087015293909216928401929092526001600160801b03918216606084015216608082015260a0016102fb565b34801561042b57600080fd5b5061043f61043a366004612f2d565b610b77565b005b34801561044d57600080fd5b5061034960115481565b34801561046357600080fd5b50600a5460405160ff90911681526020016102fb565b34801561048557600080fd5b5061043f610494366004612ff7565b610d0a565b3480156104a557600080fd5b50600b546001600160681b0316610349565b3480156104c357600080fd5b5061043f6104d236600461303e565b610dfc565b3480156104e357600080fd5b5061043f6104f2366004612f2d565b610e99565b34801561050357600080fd5b50610349610512366004612f2d565b6111ec565b34801561052357600080fd5b5061034961053236600461306a565b6112ba565b34801561054357600080fd5b50600d546001600160801b0316610349565b34801561056157600080fd5b5061043f610570366004612f2d565b6112ff565b34801561058157600080fd5b50610349600f5481565b34801561059757600080fd5b50610349600e5481565b3480156105ad57600080fd5b5061043f6105bc366004613093565b6113b8565b3480156105cd57600080fd5b506106146105dc36600461306a565b60076020526000908152604090205461ffff8116906201000081046001600160681b031690600160781b90046001600160801b031683565b6040805161ffff90941684526001600160681b0390921660208401526001600160801b0316908201526060016102fb565b34801561065157600080fd5b5061043f6113de565b34801561066657600080fd5b5061034961067536600461306a565b6001600160a01b031660009081526001602052604090205490565b34801561069c57600080fd5b5061043f6113fe565b3480156106b157600080fd5b506106e76106c036600461306a565b60096020526000908152604090205461ffff8116906201000090046001600160801b031682565b6040805161ffff90931683526001600160801b039091166020830152016102fb565b34801561071557600080fd5b5061043f610724366004612f2d565b611410565b34801561073557600080fd5b5061043f610744366004612f2d565b61141d565b34801561075557600080fd5b50610349610764366004612f2d565b60086020526000908152604090205481565b34801561078257600080fd5b506006546001600160a01b03165b6040516001600160a01b0390911681526020016102fb565b3480156107b457600080fd5b506102ee611626565b3480156107c957600080fd5b50610349611635565b3480156107de57600080fd5b50600a54600b5461081a9160ff81169161010082046001600160a01b031691600160a81b900466ffffffffffffff16906001600160681b031684565b6040805160ff90951685526001600160a01b03909316602085015266ffffffffffffff909116918301919091526001600160681b031660608201526080016102fb565b34801561086957600080fd5b50610324610878366004612ec7565b61166a565b34801561088957600080fd5b50601054610790906001600160a01b031681565b3480156108a957600080fd5b506107907f000000000000000000000000000000000000000000000000000000000000000081565b3480156108dd57600080fd5b50610349611678565b3480156108f257600080fd5b5061043f610901366004612f2d565b611706565b34801561091257600080fd5b506103246109213660046130b0565b611788565b34801561093257600080fd5b5061034961094136600461306a565b6117e6565b34801561095257600080fd5b5061043f61096136600461306a565b611803565b34801561097257600080fd5b5061043f610981366004612f2d565b611870565b34801561099257600080fd5b5060105461032490600160a01b900460ff1681565b3480156109b357600080fd5b506103496109c23660046130e8565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61043f6109fb366004613112565b6118c0565b348015610a0c57600080fd5b5061043f610a1b366004613147565b611a36565b348015610a2c57600080fd5b5061043f610a3b36600461306a565b611b52565b61043f610a4e36600461306a565b611b8d565b61043f611c7d565b348015610a6757600080fd5b50610a7b610a7636600461306a565b611da9565b604080519283526020830191909152016102fb565b348015610a9c57600080fd5b5061043f611e87565b606060048054610ab4906131e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae0906131e8565b8015610b2d5780601f10610b0257610100808354040283529160200191610b2d565b820191906000526020600020905b815481529060010190602001808311610b1057829003601f168201915b5050505050905090565b600033610b45818585612066565b60019150505b92915050565b600033610b5f858285612078565b610b6a8585856120f6565b60019150505b9392505050565b610b7f612155565b336000908152600760205260409020600c5461ffff1682610bbb5760405162461bcd60e51b8152600401610bb290613222565b60405180910390fd5b815461ffff168114610bff5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081c9bdd5b99609a1b6044820152606401610bb2565b81546201000090046001600160681b031683811015610c505760405162461bcd60e51b815260206004820152600d60248201526c115e18d9595908185b5bdd5b9d609a1b6044820152606401610bb2565b610c5a8482613259565b83546001600160681b0391909116620100000262010000600160781b0319909116178355600d54610c959085906001600160801b0316613259565b600d80546001600160801b0319166001600160801b0392909216919091179055604080518581526020810184905233917fab2daf3c146ca6416cbccd2a86ed2ba995e171ef6319df14a38aef01403a9c96910160405180910390a2610cfa338561217f565b505050610d076001600055565b50565b610d12612155565b601054600160a01b900460ff16610da7576011546040516001600160601b03193360601b166020820152610d6b91906034015b60405160208183030381529060405280519060200120836122e59092919063ffffffff16565b610da75760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b6044820152606401610bb2565b60008211610dc75760405162461bcd60e51b8152600401610bb290613222565b610dd18233612327565b600a54610dee9061010090046001600160a01b03163330856125b5565b610df86001600055565b5050565b610e04612155565b601054600160a01b900460ff16610e2d5760405162461bcd60e51b8152600401610bb29061326c565b60008211610e4d5760405162461bcd60e51b8152600401610bb290613222565b6001600160a01b038116610e8f5760405162461bcd60e51b815260206004820152600960248201526810b1b932b234ba37b960b91b6044820152606401610bb2565b610dd18282612327565b6010546001600160a01b03163314610edd5760405162461bcd60e51b815260206004820152600760248201526610b5b2b2b832b960c91b6044820152606401610bb2565b610ee5612155565b600a54600160a81b900466ffffffffffffff16811015610f3e5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610bb2565b6040805160a081018252600c5461ffff81168083526001600160681b0362010000830481166020850152600160781b90920490911692820192909252600d546001600160801b038082166060840152600160801b9091041660808201819052909190600090610fe390610fb060035490565b610fba9190613259565b600e54610fc79087613259565b6060860151600a546001600160801b039091169060ff1661261c565b6000838152600860205260409020819055600d80546001600160801b0319169055905061101182600161328d565b600c805461ffff191661ffff929092169190911790556060830151600a5460009161104c916001600160801b0390911690849060ff16612663565b905061105830826126cd565b600f54600a5460009161106f91859060ff16612703565b600e5461107c919061328d565b905080600e819055506000600f5486608001516001600160801b03166110a2919061328d565b90506110ad81612762565b600d80546001600160801b03808416600160801b0291161790556000600f8190556020870151600c80546001600160681b03909216600160781b026cffffffffffffffffffffffffff60781b1990921691909117905561110d8389613259565b9050611118816127ac565b600c805462010000600160781b031916620100006001600160681b03841602179055601054600a546040516370a0823160e01b81523060048201526111db926001600160a01b03908116928792610100909104909116906370a0823190602401602060405180830381865afa158015611195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b991906132a0565b6111c39190613259565b600a5461010090046001600160a01b031691906127f6565b50505050505050610d076001600055565b6040805160a081018252600c5461ffff811682526001600160681b0362010000820481166020840152600160781b9091041691810191909152600d546001600160801b038082166060840152600160801b909104166080820181905260009190829061128e9061125b60035490565b6112659190613259565b600e546112729087613259565b6060850151600a546001600160801b039091169060ff1661261c565b600f54600a549192506112a591839060ff16612703565b600e546112b2919061328d565b949350505050565b600a5460009060ff16816112ea6112d060035490565b6112d8611678565b600d546001600160801b03168561261c565b90506112b26112f8856117e6565b8284612703565b611307612827565b600081116113415760405162461bcd60e51b81526020600482015260076024820152660216e65774361760cc1b6044820152606401610bb2565b61134a816127ac565b600b54604080516001600160681b039092168252602082018390527f5f86edbb9d92228a9edc3f0ebc0f001bda1ea345ac7335e0eeef3504b31d1a1c910160405180910390a1600b80546cffffffffffffffffffffffffff19166001600160681b0392909216919091179055565b6113c0612827565b60108054911515600160a01b0260ff60a01b19909216919091179055565b6113e6612155565b6113f260006001612854565b6113fc6001600055565b565b611406612827565b6113fc6000612a01565b611418612827565b601155565b611425612155565b600081116114625760405162461bcd60e51b815260206004820152600a602482015269216e756d53686172657360b01b6044820152606401610bb2565b336000908152600760205260409020546201000090046001600160681b03161515806114ac575033600090815260076020526040902054600160781b90046001600160801b031615155b156114bd576114bd60006001612854565b600c543360008181526009602090815260409182902082518084018452905461ffff808216808452620100009092046001600160801b0316838501528451888152961692860183905291949093918514927f0c53c82ad07e2d592d88ece3b066777dd60f1118e2a081b380efc4358f0d9e2a910160405180910390a260208201516001600160801b03166000821561156057611559868361328d565b90506115c3565b81156115a25760405162461bcd60e51b81526020600482015260116024820152704578697374696e6720776974686472617760781b6044820152606401610bb2565b50336000908152600960205260409020805461ffff191661ffff8616179055845b6115cc81612762565b336000818152600960205260409020805462010000600160901b031916620100006001600160801b038516021790556116069030886120f6565b85600f54611614919061328d565b600f5550610d0793506122de92505050565b606060058054610ab4906131e8565b600061166561164360035490565b61164b611678565b600d54600a546001600160801b039091169060ff1661261c565b905090565b600033610b458185856120f6565b600a546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156116c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ea91906132a0565b600c5461166591906201000090046001600160681b031661328d565b61170e612155565b601054600160a01b900460ff166117375760405162461bcd60e51b8152600401610bb29061326c565b600081116117575760405162461bcd60e51b8152600401610bb290613222565b6117618133612327565b600a5461177e9061010090046001600160a01b03163330846125b5565b610d076001600055565b601054600090600160a01b900460ff1680610b7057506011546040516001600160601b0319606086901b166020820152610b70919060340160405160208183030381529060405280519060200120846122e59092919063ffffffff16565b60008060006117f484611da9565b90925090506112b2818361328d565b61180b612827565b6001600160a01b03811661184e5760405162461bcd60e51b815260206004820152600a60248201526910b732bba5b2b2b832b960b11b6044820152606401610bb2565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b611878612155565b600081116118b55760405162461bcd60e51b815260206004820152600a602482015269216e756d53686172657360b01b6044820152606401610bb2565b61177e816000612854565b6118c8612155565b601054600160a01b900460ff1661193b576011546040516001600160601b03193360601b1660208201526118ff9190603401610d45565b61193b5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b6044820152606401610bb2565b600a547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116610100909204161461198e5760405162461bcd60e51b8152600401610bb2906132b9565b600034116119ae5760405162461bcd60e51b8152600401610bb2906132d8565b6119b83433612327565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a1357600080fd5b505af1158015611a27573d6000803e3d6000fd5b5050505050610d076001600055565b611a3e612827565b600081606001516001600160681b031611611a855760405162461bcd60e51b81526020600482015260076024820152660216e65774361760cc1b6044820152606401610bb2565b60208101516001600160a01b0316611acb5760405162461bcd60e51b8152602060048201526009602482015268085b995dd05cdcd95d60ba1b6044820152606401610bb2565b8051600a80546020840151604085015166ffffffffffffff16600160a81b0266ffffffffffffff60a81b196001600160a01b03909216610100026001600160a81b031990931660ff90951694909417919091171691909117905560600151600b80546001600160681b039092166cffffffffffffffffffffffffff19909216919091179055565b611b5a612827565b6001600160a01b038116611b8457604051631e4fbdf760e01b815260006004820152602401610bb2565b610d0781612a01565b611b95612155565b601054600160a01b900460ff16611bbe5760405162461bcd60e51b8152600401610bb29061326c565b600a547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166101009092041614611c115760405162461bcd60e51b8152600401610bb2906132b9565b60003411611c315760405162461bcd60e51b8152600401610bb2906132d8565b6001600160a01b038116611c735760405162461bcd60e51b815260206004820152600960248201526810b1b932b234ba37b960b91b6044820152606401610bb2565b6119b83482612327565b611c85612155565b601054600160a01b900460ff16611cae5760405162461bcd60e51b8152600401610bb29061326c565b600a547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166101009092041614611d015760405162461bcd60e51b8152600401610bb2906132b9565b60003411611d215760405162461bcd60e51b8152600401610bb2906132d8565b611d2b3433612327565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d8657600080fd5b505af1158015611d9a573d6000803e3d6000fd5b50505050506113fc6001600055565b6001600160a01b03811660009081526007602090815260408083208151606081018352905461ffff81168083526201000082046001600160681b031694830194909452600160781b90046001600160801b031691810191909152829160011115611e2b575050506001600160a01b031660009081526001602052604081205491565b600c54815161ffff908116600090815260086020526040812054600a549193611e5c9386939116919060ff16612a53565b9050611e7d856001600160a01b031660009081526001602052604090205490565b9590945092505050565b611e8f612155565b33600090815260096020526040902080546001600160801b03620100008204169061ffff1681611ef15760405162461bcd60e51b815260206004820152600d60248201526c139bdd081a5b9a5d1a585d1959609a1b6044820152606401610bb2565b600c5461ffff168110611f395760405162461bcd60e51b815260206004820152601060248201526f149bdd5b99081b9bdd0818db1bdcd95960821b6044820152606401610bb2565b336000908152600960205260409020805462010000600160901b0319169055600d54611f76908390600160801b90046001600160801b0316613259565b600d80546001600160801b03928316600160801b029216919091179055600081815260086020526040812054600a54611fb391859160ff16612703565b604080518281526020810186905291925033917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a2611ffb3084612ac4565b6000811161203d5760405162461bcd60e51b815260206004820152600f60248201526e085dda5d1a191c985dd05b5bdd5b9d608a1b6044820152606401610bb2565b612047338261217f565b80600e546120559190613259565b600e55506113fc92506122de915050565b6120738383836001612afa565b505050565b6001600160a01b0383811660009081526002602090815260408083209386168352929052205460001981146120f057818110156120e157604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610bb2565b6120f084848484036000612afa565b50505050565b6001600160a01b03831661212057604051634b637e8f60e11b815260006004820152602401610bb2565b6001600160a01b03821661214a5760405163ec442f0560e01b815260006004820152602401610bb2565b612073838383612bcf565b60026000540361217857604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b600a546001600160a01b036101009091048116907f00000000000000000000000000000000000000000000000000000000000000001681036122ca57604051632e1a7d4d60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561221d57600080fd5b505af1158015612231573d6000803e3d6000fd5b505050506000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114612282576040519150601f19603f3d011682016040523d82523d6000602084013e612287565b606091505b50509050806120f05760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610bb2565b6120736001600160a01b03821684846127f6565b6001600055565b60008351156123205760208401845160051b81015b8151841160051b9384528151602094851852604060002093909101908082106122fa5750505b5014919050565b600c5461ffff16600083612339611678565b612343919061328d565b600b549091506001600160681b031681111561238e5760405162461bcd60e51b815260206004820152600a6024820152690457863656564206361760b41b6044820152606401610bb2565b600a54600160a81b900466ffffffffffffff168110156123e75760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610bb2565b60408051858152602081018490526001600160a01b038516917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a26001600160a01b03831660009081526007602090815260408083208151606081018352905461ffff81168083526201000082046001600160681b031683860152600160781b9091046001600160801b03168284015284526008909252822054600a549192916124a191849187919060ff16612a53565b8251909150869061ffff1685036124d15760008784602001516001600160681b03166124cd919061328d565b9150505b6124da816127ac565b6040805160608101825261ffff80881682526001600160681b0380851660208085019182526001600160801b038089168688019081526001600160a01b038e166000908152600790935296822095518654935197518216600160781b02600160781b600160f81b03199890951662010000026effffffffffffffffffffffffffffff19909416951694909417919091179490941617909155600d54612581918a911661328d565b905061258c81612762565b600d80546001600160801b0319166001600160801b039290921691909117905550505050505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526120f09186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612cf9565b60008061262a83600a6133dc565b90506000861161263a5780612659565b856126458587613259565b61264f90836133e8565b61265991906133ff565b9695505050505050565b6000600183116126ad5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964206173736574506572536861726560581b6044820152606401610bb2565b826126b983600a6133dc565b6126c390866133e8565b6112b291906133ff565b6001600160a01b0382166126f75760405163ec442f0560e01b815260006004820152602401610bb2565b610df860008383612bcf565b60006001831161274d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964206173736574506572536861726560581b6044820152606401610bb2565b61275882600a6133dc565b6126c384866133e8565b6001600160801b03811115610d075760405162461bcd60e51b815260206004820152601060248201526f09eeccae4ccd8deee40ead2dce86264760831b6044820152606401610bb2565b6001600160681b03811115610d075760405162461bcd60e51b815260206004820152601060248201526f13dd995c999b1bddc81d5a5b9d0c4c0d60821b6044820152606401610bb2565b6040516001600160a01b0383811660248301526044820183905261207391859182169063a9059cbb906064016125ea565b6006546001600160a01b031633146113fc5760405163118cdaa760e01b8152336004820152602401610bb2565b3360009081526007602090815260408083208151606081018352905461ffff8082168084526201000083046001600160681b031684870152600160781b9092046001600160801b031683850152600c54918652600890945291842054600a54919492909316926128ca918591859160ff16612a53565b9050836128d757846128d9565b805b9450846000036128ea575050505050565b8085111561292e5760405162461bcd60e51b81526020600482015260116024820152704578636565647320617661696c61626c6560781b6044820152606401610bb2565b825161ffff1682111561295b57336000908152600760205260409020805462010000600160781b03191690555b61296485612762565b61296e8582613259565b336000818152600760205260409081902080546001600160801b0394909416600160781b02600160781b600160f81b0319909416939093179092558451915190917fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929916129e79189825261ffff16602082015260400190565b60405180910390a26129fa3033876120f6565b5050505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b835160009061ffff1615801590612a6e5750845161ffff1684115b15612ab0576000612a8d86602001516001600160681b03168585612663565b90508086604001516001600160801b0316612aa8919061328d565b9150506112b2565b50505050604001516001600160801b031690565b6001600160a01b038216612aee57604051634b637e8f60e11b815260006004820152602401610bb2565b610df882600083612bcf565b6001600160a01b038416612b245760405163e602df0560e01b815260006004820152602401610bb2565b6001600160a01b038316612b4e57604051634a1406b160e11b815260006004820152602401610bb2565b6001600160a01b03808516600090815260026020908152604080832093871683529290522082905580156120f057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051612bc191815260200190565b60405180910390a350505050565b6001600160a01b038316612bfa578060036000828254612bef919061328d565b90915550612c6c9050565b6001600160a01b03831660009081526001602052604090205481811015612c4d5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610bb2565b6001600160a01b03841660009081526001602052604090209082900390555b6001600160a01b038216612c8857600380548290039055612ca7565b6001600160a01b03821660009081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cec91815260200190565b60405180910390a3505050565b6000612d0e6001600160a01b03841683612d5c565b90508051600014158015612d33575080806020019051810190612d319190613421565b155b1561207357604051635274afe760e01b81526001600160a01b0384166004820152602401610bb2565b6060610b708383600084600080856001600160a01b03168486604051612d82919061343e565b60006040518083038185875af1925050503d8060008114612dbf576040519150601f19603f3d011682016040523d82523d6000602084013e612dc4565b606091505b5091509150612659868383606082612de457612ddf82612e2b565b610b70565b8151158015612dfb57506001600160a01b0384163b155b15612e2457604051639996b31560e01b81526001600160a01b0385166004820152602401610bb2565b5080610b70565b805115612e3b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015612e6f578181015183820152602001612e57565b50506000910152565b6020815260008251806020840152612e97816040850160208701612e54565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612ec257600080fd5b919050565b60008060408385031215612eda57600080fd5b612ee383612eab565b946020939093013593505050565b600080600060608486031215612f0657600080fd5b612f0f84612eab565b9250612f1d60208501612eab565b9150604084013590509250925092565b600060208284031215612f3f57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612f6d57600080fd5b8135602067ffffffffffffffff80831115612f8a57612f8a612f46565b8260051b604051601f19603f83011681018181108482111715612faf57612faf612f46565b604052938452858101830193838101925087851115612fcd57600080fd5b83870191505b84821015612fec57813583529183019190830190612fd3565b979650505050505050565b6000806040838503121561300a57600080fd5b82359150602083013567ffffffffffffffff81111561302857600080fd5b61303485828601612f5c565b9150509250929050565b6000806040838503121561305157600080fd5b8235915061306160208401612eab565b90509250929050565b60006020828403121561307c57600080fd5b610b7082612eab565b8015158114610d0757600080fd5b6000602082840312156130a557600080fd5b8135610b7081613085565b600080604083850312156130c357600080fd5b6130cc83612eab565b9150602083013567ffffffffffffffff81111561302857600080fd5b600080604083850312156130fb57600080fd5b61310483612eab565b915061306160208401612eab565b60006020828403121561312457600080fd5b813567ffffffffffffffff81111561313b57600080fd5b6112b284828501612f5c565b60006080828403121561315957600080fd5b6040516080810181811067ffffffffffffffff8211171561317c5761317c612f46565b604052823560ff8116811461319057600080fd5b815261319e60208401612eab565b6020820152604083013566ffffffffffffff811681146131bd57600080fd5b604082015260608301356001600160681b03811681146131dc57600080fd5b60608201529392505050565b600181811c908216806131fc57607f821691505b60208210810361321c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526608585b5bdd5b9d60ca1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b4b57610b4b613243565b602080825260079082015266217075626c696360c81b604082015260600190565b80820180821115610b4b57610b4b613243565b6000602082840312156132b257600080fd5b5051919050565b602080825260059082015264042ae8aa8960db1b604082015260600190565b6020808252600690820152652176616c756560d01b604082015260600190565b600181815b8085111561333357816000190482111561331957613319613243565b8085161561332657918102915b93841c93908002906132fd565b509250929050565b60008261334a57506001610b4b565b8161335757506000610b4b565b816001811461336d576002811461337757613393565b6001915050610b4b565b60ff84111561338857613388613243565b50506001821b610b4b565b5060208310610133831016604e8410600b84101617156133b6575081810a610b4b565b6133c083836132f8565b80600019048211156133d4576133d4613243565b029392505050565b6000610b70838361333b565b8082028115828204841417610b4b57610b4b613243565b60008261341c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561343357600080fd5b8151610b7081613085565b60008251613450818460208701612e54565b919091019291505056fea2646970667358221220a58f04da9bad95356bde9b2f53650e5569903e513d71b1017e60b7e10d12634664736f6c63430008140033000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000008beb3b41e82f1bc86a5961e2f226701af1905521000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000012000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000d3c21bcecceda1000000000000000000000000000000000000000000000000000000000000000000000f53747265616d20486f646c77424e420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000973486f646c77424e420000000000000000000000000000000000000000000000