0 txs
1 call
constructor
constructor(bool timeBased_, uint256 blocksPerYear_, uint256 nextBidderBlockOrTimestampLimit_, uint256 waitForFirstBidder_)
functions
accessControlManager
viewfunction accessControlManager() view returns (address)
auctions
viewfunction auctions(address) view returns (uint256 startBlockOrTimestamp, uint8 auctionType, uint8 status, uint256 seizedRiskFund, address highestBidder, uint256 highestBidBps, uint256 highestBidBlockOrTimestamp, uint256 startBidBps)
auctionsPaused
viewfunction auctionsPaused() view returns (bool)
blocksOrSecondsPerYear
viewfunction blocksOrSecondsPerYear() view returns (uint256)
getBlockNumberOrTimestamp
viewfunction getBlockNumberOrTimestamp() view returns (uint256)
incentiveBps
viewfunction incentiveBps() view returns (uint256)
isTimeBased
viewfunction isTimeBased() view returns (bool)
minimumPoolBadDebt
viewfunction minimumPoolBadDebt() view returns (uint256)
nextBidderBlockLimit
viewfunction nextBidderBlockLimit() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
poolRegistry
viewfunction poolRegistry() view returns (address)
riskFund
viewfunction riskFund() view returns (address)
tokenDebt
viewfunction tokenDebt(address, address) view returns (uint256)
totalTokenDebt
viewfunction totalTokenDebt(address) view returns (uint256)
waitForFirstBidder
viewfunction waitForFirstBidder() view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
claimTokenDebt
nonpayablefunction claimTokenDebt(address token, uint256 amount_)
closeAuction
nonpayablefunction closeAuction(address comptroller)
initialize
nonpayablefunction initialize(address riskFund_, uint256 minimumPoolBadDebt_, address accessControlManager_)
pauseAuctions
nonpayablefunction pauseAuctions()
placeBid
nonpayablefunction placeBid(address comptroller, uint256 bidBps, uint256 auctionStartBlockOrTimestamp)
renounceOwnership
nonpayablefunction renounceOwnership()
restartAuction
nonpayablefunction restartAuction(address comptroller)
resumeAuctions
nonpayablefunction resumeAuctions()
setAccessControlManager
nonpayablefunction setAccessControlManager(address accessControlManager_)
startAuction
nonpayablefunction startAuction(address comptroller)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateIncentiveBps
nonpayablefunction updateIncentiveBps(uint256 incentiveBps_)
updateMinimumPoolBadDebt
nonpayablefunction updateMinimumPoolBadDebt(uint256 minimumPoolBadDebt_)
updateNextBidderBlockLimit
nonpayablefunction updateNextBidderBlockLimit(uint256 nextBidderBlockOrTimestampLimit_)
updatePoolRegistry
nonpayablefunction updatePoolRegistry(address poolRegistry_)
updateWaitForFirstBidder
nonpayablefunction updateWaitForFirstBidder(uint256 waitForFirstBidder_)
events
AuctionClosed
event AuctionClosed(address indexed comptroller, uint256 auctionStartBlockOrTimestamp, address indexed highestBidder, uint256 highestBidBps, uint256 seizedRiskFind, address[] markets, uint256[] marketDebt)
AuctionRestarted
event AuctionRestarted(address indexed comptroller, uint256 auctionStartBlockOrTimestamp)
AuctionsPaused
event AuctionsPaused(address sender)
AuctionsResumed
event AuctionsResumed(address sender)
AuctionStarted
event AuctionStarted(address indexed comptroller, uint256 auctionStartBlockOrTimestamp, uint8 auctionType, address[] markets, uint256[] marketsDebt, uint256 seizedRiskFund, uint256 startBidBps)
BidPlaced
event BidPlaced(address indexed comptroller, uint256 auctionStartBlockOrTimestamp, uint256 bidBps, address indexed bidder)
IncentiveBpsUpdated
event IncentiveBpsUpdated(uint256 oldIncentiveBps, uint256 newIncentiveBps)
Initialized
event Initialized(uint8 version)
MinimumPoolBadDebtUpdated
event MinimumPoolBadDebtUpdated(uint256 oldMinimumPoolBadDebt, uint256 newMinimumPoolBadDebt)
NewAccessControlManager
event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager)
NextBidderBlockLimitUpdated
event NextBidderBlockLimitUpdated(uint256 oldNextBidderBlockOrTimestampLimit, uint256 newNextBidderBlockOrTimestampLimit)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
PoolRegistryUpdated
event PoolRegistryUpdated(address indexed oldPoolRegistry, address indexed newPoolRegistry)
TokenDebtAdded
event TokenDebtAdded(address indexed token, address indexed user, uint256 amount)
TokenDebtClaimed
event TokenDebtClaimed(address indexed token, address indexed user, uint256 amount)
WaitForFirstBidderUpdated
event WaitForFirstBidderUpdated(uint256 oldWaitForFirstBidder, uint256 newWaitForFirstBidder)
errors
InsufficientBalance
error InsufficientBalance(address token, address recipient, uint256 amount, uint256 availableBalance)
InsufficientDebt
error InsufficientDebt(address token, address user, uint256 owedAmount, uint256 amount)
InvalidBlocksPerYear
error InvalidBlocksPerYear()
InvalidTimeBasedConfiguration
error InvalidTimeBasedConfiguration()
Unauthorized
error Unauthorized(address sender, address calledContract, string methodSignature)
ZeroAddressNotAllowed
error ZeroAddressNotAllowed()
ZeroValueNotAllowed
error ZeroValueNotAllowed()
creation bytecode
0x61012060405234801561001157600080fd5b50604051613aca380380613aca833981016040819052610030916101e7565b83838115801561003e575080155b1561005c576040516302723dfb60e21b815260040160405180910390fd5b81801561006857508015155b156100865760405163ae0fcab360e01b815260040160405180910390fd5b81151560a05281610097578061009d565b6301e133805b608052816100b4576100fc60201b611c0d176100bf565b61010060201b611c11175b6001600160401b031660c052506100d7905082610104565b6100e081610104565b60e08290526101008190526100f3610128565b5050505061022b565b4390565b4290565b806000036101255760405163273e150360e21b815260040160405180910390fd5b50565b600054610100900460ff16156101945760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146101e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600080600080608085870312156101fd57600080fd5b8451801515811461020d57600080fd5b60208601516040870151606090970151919890975090945092505050565b60805160a05160c05160e0516101005161385b61026f6000396000611a7601526000611a9b01526000611b100152600061049a01526000610330015261385b6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806376ee80171161011a578063ae8ddcb0116100ad578063c7ad08951161007c578063c7ad089514610495578063e1d146fb146104bc578063e30c3978146104c4578063e630fee0146104d5578063f2fde38b146104e857600080fd5b8063ae8ddcb01461044a578063afcff50f1461045d578063b4a0bdf314610471578063c350a1b51461048257600080fd5b8063892149a3116100e9578063892149a3146104095780638da5cb5b1461041357806391f8e69414610424578063a23926e11461042c57600080fd5b806376ee80171461039757806379ba5097146103aa5780637cf89030146103b25780637f9c714f146103de57600080fd5b806351b2fd0111610192578063690d6a1411610161578063690d6a14146103525780636f254c3214610372578063715018a61461038557806373d73f401461038d57600080fd5b806351b2fd01146102fd5780635be3fe1b1461031057806367cd03ab146103185780636857249c1461032b57600080fd5b8063264ad3d4116101ce578063264ad3d4146102b55780634075fa0f146102cd578063438d33d7146102e05780634b34e566146102ea57600080fd5b806304717aca146102005780630db011d0146102155780630e32cb86146102285780631d59410a1461023b575b600080fd5b61021361020e3660046130ca565b6104fb565b005b6102136102233660046130ff565b610b71565b6102136102363660046130ff565b610cd6565b6102986102493660046130ff565b610134602052600090815260409020805460018201546003830154600484015460058501546006860154600790960154949560ff8086169661010090960416946001600160a01b039093169288565b6040516102ac989796959493929190613146565b60405180910390f35b6102bf61012f5481565b6040519081526020016102ac565b6102136102db3660046130ff565b610ce7565b6102bf6101305481565b6102136102f83660046130ff565b610d4c565b61021361030b3660046131a5565b611377565b6102136113df565b6102136103263660046131a5565b6114a4565b6102bf7f000000000000000000000000000000000000000000000000000000000000000081565b6102bf6103603660046130ff565b60fc6020526000908152604090205481565b6102136103803660046131a5565b611571565b61021361163c565b6102bf6101315481565b6102136103a53660046131be565b611650565b610213611769565b61012e546103c6906001600160a01b031681565b6040516001600160a01b0390911681526020016102ac565b6102bf6103ec3660046131ea565b60fb60209081526000928352604080842090915290825290205481565b6102bf6101335481565b6033546001600160a01b03166103c6565b6102136117e0565b6101325461043a9060ff1681565b60405190151581526020016102ac565b6102136104583660046130ff565b6118a2565b61012d546103c6906001600160a01b031681565b6097546001600160a01b03166103c6565b610213610490366004613223565b611906565b61043a7f000000000000000000000000000000000000000000000000000000000000000081565b6102bf611b09565b6065546001600160a01b03166103c6565b6102136104e33660046131a5565b611b3c565b6102136104f63660046130ff565b611b9c565b610503611c15565b6001600160a01b038316600090815261013460205260409020805482146105715760405162461bcd60e51b815260206004820152601a60248201527f61756374696f6e20686173206265656e2072657374617274656400000000000060448201526064015b60405180910390fd5b61057a81611c6e565b6105965760405162461bcd60e51b815260040161056890613265565b61059f81611c96565b156105ec5760405162461bcd60e51b815260206004820152601c60248201527f61756374696f6e206973207374616c652c2072657374617274206974000000006044820152606401610568565b6000831161063c5760405162461bcd60e51b815260206004820152601b60248201527f626173697320706f696e74732063616e6e6f74206265207a65726f00000000006044820152606401610568565b61271083111561069d5760405162461bcd60e51b815260206004820152602660248201527f626173697320706f696e74732063616e6e6f74206265206d6f7265207468616e60448201526502031303030360d41b6064820152608401610568565b600060018083015460ff16908111156106b8576106b861311c565b148015610704575060048101546001600160a01b0316158015906106df5750806005015483115b80610704575060048101546001600160a01b0316158015610704575080600701548310155b8061076f575060018181015460ff16818111156107235761072361311c565b14801561076f575060048101546001600160a01b03161580159061074a5750806005015483105b8061076f575060048101546001600160a01b031615801561076f575080600701548311155b6107bb5760405162461bcd60e51b815260206004820152601b60248201527f796f757220626964206973206e6f7420746865206869676865737400000000006044820152606401610568565b600281015460005b81811015610aef5760008360020182815481106107e2576107e2613292565b600091825260208083209091015460408051636f307dc360e01b815290516001600160a01b0390921694508492636f307dc3926004808401938290030181865afa158015610834573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085891906132b8565b60048601549091506001600160a01b0316156108cf576108cf818660040160009054906101000a90046001600160a01b03168760090160008960020188815481106108a5576108a5613292565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611cd1565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906132d5565b9050600060018088015460ff16908111156109575761095761311c565b036109d3576000612710898860080160008a600201898154811061097d5761097d613292565b60009182526020808320909101546001600160a01b031683528201929092526040019020546109ac9190613304565b6109b6919061331b565b90506109cd6001600160a01b038416333084611d89565b50610a28565b610a2833308860080160008a60020189815481106109f3576109f3613292565b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054908616929190611d89565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9391906132d5565b9050610a9f828261333d565b876009016000896002018881548110610aba57610aba613292565b60009182526020808320909101546001600160a01b0316835282019290925260400190205550505060019190910190506107c3565b506004820180546001600160a01b0319163317905560058201849055610b13611b09565b60068301558154604080519182526020820186905233916001600160a01b038816917f5485cf82060404805b51f48c0c4afa3cec4a9e5755c0131e1243553f0eebb9a3910160405180910390a35050610b6c600160c955565b505050565b610b79611c15565b6001600160a01b0381166000908152610134602052604090206101325460ff1615610bdc5760405162461bcd60e51b8152602060048201526013602482015272185d58dd1a5bdb9cc8185c99481c185d5cd959606a1b6044820152606401610568565b610be581611c6e565b610c015760405162461bcd60e51b815260040161056890613265565b610c0a81611c96565b610c6e5760405162461bcd60e51b815260206004820152602f60248201527f796f75206e65656420746f207761697420666f72206d6f72652074696d65206660448201526e37b9103334b939ba103134b23232b960891b6064820152608401610568565b60018101805461ff001916610200179055805460408051918252516001600160a01b038416917faca104a4f0d6f116782afaefa8b644e86d53857ff9151824131b726b49a858d4919081900360200190a2610cc882611dfb565b50610cd3600160c955565b50565b610cde61278f565b610cd3816127e9565b610cef611c15565b6101325460ff1615610d395760405162461bcd60e51b8152602060048201526013602482015272105d58dd1a5bdb9cc8185c99481c185d5cd959606a1b6044820152606401610568565b610d4281611dfb565b610cd3600160c955565b610d54611c15565b6001600160a01b038116600090815261013460205260409020610d7681611c6e565b610d925760405162461bcd60e51b815260040161056890613265565b610131548160060154610da59190613350565b610dad611b09565b118015610dc6575060048101546001600160a01b031615155b610e285760405162461bcd60e51b815260206004820152602d60248201527f77616974696e6720666f72206e657874206269646465722e2063616e6e6f742060448201526c31b637b9b29030bab1ba34b7b760991b6064820152608401610568565b600281015460008167ffffffffffffffff811115610e4857610e48613363565b604051908082528060200260200182016040528015610e71578160200160208202803683370190505b5060018401805461ff001916610200179055905060005b828110156111b2576000846002018281548110610ea757610ea7613292565b600091825260208083209091015460408051636f307dc360e01b815290516001600160a01b0390921694508492636f307dc3926004808401938290030181865afa158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d91906132b8565b90506000816001600160a01b03166370a08231886002018681548110610f4557610f45613292565b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b039091166004820152602401602060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb991906132d5565b9050611040876002018581548110610fd357610fd3613292565b9060005260206000200160009054906101000a90046001600160a01b03168860090160008a600201888154811061100c5761100c613292565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190205490851691906128a7565b6000826001600160a01b03166370a0823189600201878154811061106657611066613292565b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b039091166004820152602401602060405180830381865afa1580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da91906132d5565b90506110e6828261333d565b8686815181106110f8576110f8613292565b60200260200101818152505087600201858154811061111957611119613292565b60009182526020909120015486516001600160a01b039091169063ef60450c9088908890811061114b5761114b613292565b60200260200101516040518263ffffffff1660e01b815260040161117191815260200190565b600060405180830381600087803b15801561118b57600080fd5b505af115801561119f573d6000803e3d6000fd5b5050505050505050806001019050610e88565b5060008060018086015460ff16908111156111cf576111cf61311c565b036111df57506003830154611203565b612710846005015485600301546111f69190613304565b611200919061331b565b90505b61012e546040805163c8ecc0d360e01b815290516000926001600160a01b03169163c8ecc0d39160048083019260209291908290030181865afa15801561124e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127291906132b8565b61012e54604051630a9837c560e01b81526001600160a01b0389811660048301526024820186905292935060009290911690630a9837c5906044016020604051808303816000875af11580156112cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f091906132d5565b600487015490915061130d9083906001600160a01b031685611cd1565b6004860154865460058801546040516001600160a01b03938416938b16927ff50338be3ffa7cdbebca76c758cfd1745fb4abe5bd3736c2dbf0cc6483a7b93f9261135f92879060028e01908c906133f4565b60405180910390a3505050505050610cd3600160c955565b6113986040518060600160405280602181526020016137c1602191396128d7565b61012f80549082905560408051828152602081018490527f85814f0246fcd999c88af70c9e6238211e79444ff07ec745b80aed19ddb268c891015b60405180910390a15050565b6114106040518060400160405280601081526020016f726573756d6541756374696f6e73282960801b8152506128d7565b6101325460ff166114635760405162461bcd60e51b815260206004820152601760248201527f41756374696f6e7320617265206e6f74207061757365640000000000000000006044820152606401610568565b610132805460ff191690556040513381527f91b812e075fb9190eebe2d938c00a7179d150156469a467ec60a290035f4635a906020015b60405180910390a1565b6114e26040518060400160405280601b81526020017f757064617465496e63656e746976654270732875696e743235362900000000008152506128d7565b806000036115325760405162461bcd60e51b815260206004820152601a60248201527f696e63656e74697665427073206d757374206e6f7420626520300000000000006044820152606401610568565b61013080549082905560408051828152602081018490527f3d438fa36c5052935d12a6925d1660c8150c74ef11ca672d4279bc6fd41b8bcf91016113d3565b6115926040518060600160405280602381526020016137e2602391396128d7565b806000036115f95760405162461bcd60e51b815260206004820152602e60248201527f6e657874426964646572426c6f636b4f7254696d657374616d704c696d69745f60448201526d0206d757374206e6f7420626520360941b6064820152608401610568565b6101315460408051918252602082018390527f3f22dba09ee9845bd2be6926fea5337a0db935ca059cbb205d62174783e29664910160405180910390a161013155565b61164461278f565b61164e6000612975565b565b6001600160a01b038216600090815260fb602090815260408083203384529091528120549060001983146116845782611686565b815b9050818111156116c857604051639d2df25760e01b81526001600160a01b03851660048201523360248201526044810183905260648101829052608401610568565b6001600160a01b038416600081815260fb602090815260408083203384528252808320858703905592825260fc9052908120805483929061170a90849061333d565b909155505060405181815233906001600160a01b038616907f8d0aa4a41b0206123877a3705f51d17acf5f31dc241d24188abb2b881297ecfd9060200160405180910390a36117636001600160a01b03851633836128a7565b50505050565b60655433906001600160a01b031681146117d75760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610568565b610cd381612975565b6118106040518060400160405280600f81526020016e706175736541756374696f6e73282960881b8152506128d7565b6101325460ff16156118645760405162461bcd60e51b815260206004820152601b60248201527f41756374696f6e732061726520616c72656164792070617573656400000000006044820152606401610568565b610132805460ff191660011790556040513381527fc1be5163c9ebecf05bfbd6c6ae7c2b6ce2d3c43088dffaf5270cbf95161504999060200161149a565b6118aa61278f565b6118b38161298e565b61012d80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fa87b964d321035d2165e484ff4b722dd6eae30606c0b98887d2ed1a34e594bfe90600090a35050565b600054610100900460ff16158080156119265750600054600160ff909116105b806119405750303b158015611940575060005460ff166001145b6119a35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610568565b6000805460ff1916600117905580156119c6576000805461ff0019166101001790555b6119cf8461298e565b82600003611a1f5760405162461bcd60e51b815260206004820152601d60248201527f696e76616c6964206d696e696d756d20706f6f6c2062616420646562740000006044820152606401610568565b611a276129b5565b611a30826129e4565b611a38612a0b565b611a40612a3a565b61012f83905561012e80546001600160a01b0319166001600160a01b0386161790556103e861013055610132805460ff191690557f0000000000000000000000000000000000000000000000000000000000000000610133557f0000000000000000000000000000000000000000000000000000000000000000610131558015611763576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6000611b377f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b905090565b611b5d604051806060016040528060218152602001613805602191396128d7565b61013380549082905560408051828152602081018490527f2a5be8a6b827e16c392d22522295794d6baff64565057a17b1f14c9d6c125a6091016113d3565b611ba461278f565b606580546001600160a01b0383166001600160a01b03199091168117909155611bd56033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b4390565b4290565b600260c95403611c675760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610568565b600260c955565b6000600180830154610100900460ff166002811115611c8f57611c8f61311c565b1492915050565b60048101546000906001600160a01b031615808015611cca5750610133548354611cc09190613350565b611cc8611b09565b115b9392505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015611d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3c91906132d5565b905081811015611d7e5760405163861da4bd60e01b81526001600160a01b03851660048201523060248201526044810183905260648101829052608401610568565b611763848484612a69565b6040516001600160a01b03808516602483015283166044820152606481018290526117639085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612b3b565b600160c955565b61012d54604051637aee632d60e01b81526001600160a01b0383811660048301526000921690637aee632d90602401600060405180830381865afa158015611e47573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e6f91908101906134b5565b9050816001600160a01b031681604001516001600160a01b031614611ee65760405162461bcd60e51b815260206004820152602760248201527f636f6d7074726f6c6c657220646f65736e277420657869737420706f6f6c20726044820152666567697374727960c81b6064820152608401610568565b6001600160a01b038216600090815261013460205260408120906001820154610100900460ff166002811115611f1e57611f1e61311c565b1480611f47575060026001820154610100900460ff166002811115611f4557611f4561311c565b145b611f895760405162461bcd60e51b815260206004820152601360248201527261756374696f6e206973206f6e2d676f696e6760681b6044820152606401610568565b600060058201819055600682018190556002820154905b81811015611fec576000836002018281548110611fbf57611fbf613292565b60009182526020808320909101546001600160a01b03168252600886019052604081205550600101611fa0565b50611ffb60028301600061301d565b600061200685612c10565b905080519150600061201786612c7e565b90506000808467ffffffffffffffff81111561203557612035613363565b60405190808252806020026020018201604052801561205e578160200160208202803683370190505b5090508467ffffffffffffffff81111561207a5761207a613363565b6040519080825280602002602001820160405280156120a3578160200160208202803683370190505b5080516120ba91600289019160209091019061303b565b5060005b858110156123585760008582815181106120da576120da613292565b60200260200101516001600160a01b031663bbcac5576040518163ffffffff1660e01b8152600401602060405180830381865afa15801561211f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214391906132d5565b9050846001600160a01b03166396e85ced87848151811061216657612166613292565b60200260200101516040518263ffffffff1660e01b815260040161219991906001600160a01b0391909116815260200190565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b505050506000670de0b6b3a764000082876001600160a01b031663fc57d4df8a87815181106121f8576121f8613292565b60200260200101516040518263ffffffff1660e01b815260040161222b91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226c91906132d5565b6122769190613304565b612280919061331b565b905061228c8186613350565b94508683815181106122a0576122a0613292565b60200260200101518960020184815481106122bd576122bd613292565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508189600801600089868151811061230457612304613292565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508184848151811061234357612343613292565b602090810291909101015250506001016120be565b5061012f548210156123ac5760405162461bcd60e51b815260206004820152601860248201527f706f6f6c20626164206465627420697320746f6f206c6f7700000000000000006044820152606401610568565b826001600160a01b031663b62cad6961012e60009054906101000a90046001600160a01b03166001600160a01b031663c8ecc0d36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561240f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243391906132b8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561247457600080fd5b505af1158015612488573d6000803e3d6000fd5b505061012e5460405163534de8cf60e11b81526001600160a01b038c8116600483015260009450670de0b6b3a764000093509091169063a69bd19e90602401602060405180830381865afa1580156124e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250891906132d5565b856001600160a01b03166341976e0961012e60009054906101000a90046001600160a01b03166001600160a01b031663c8ecc0d36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561256b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258f91906132b8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156125d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f791906132d5565b6126019190613304565b61260b919061331b565b90506000819050600061271061013054866126269190613304565b612630919061331b565b61263a9086613350565b9050828110612698576101305461265390612710613350565b61265d9086613304565b8261266a61271080613304565b6126749190613304565b61267e919061331b565b60078a015560018901805460ff19169055600091506126bf565b806126a3818461333d565b60018b8101805460ff1916909117905561271060078c01559250505b6126c9828461333d565b60038a01556126d6611b09565b89556001808a01805461ff00191661010083021790555060008960040160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a6001600160a01b03167f56c1f0c5ea96c78d614c0246b1915086a325f09ce15526bd5d69b50232d681328a600001548b60010160009054906101000a900460ff168c600201888e600301548f6007015460405161277a969594939291906135ab565b60405180910390a25050505050505050505050565b6033546001600160a01b0316331461164e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610568565b6001600160a01b03811661284d5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610568565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016113d3565b6040516001600160a01b038316602482015260448101829052610b6c90849063a9059cbb60e01b90606401611dbd565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab9061290a9033908690600401613625565b602060405180830381865afa158015612927573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294b9190613649565b90508061297157333083604051634a3fa29360e01b81526004016105689392919061366b565b5050565b606580546001600160a01b0319169055610cd381612ce2565b6001600160a01b038116610cd3576040516342bcdf7f60e11b815260040160405180910390fd5b600054610100900460ff166129dc5760405162461bcd60e51b8152600401610568906136a0565b61164e612d34565b600054610100900460ff16610cde5760405162461bcd60e51b8152600401610568906136a0565b600054610100900460ff16612a325760405162461bcd60e51b8152600401610568906136a0565b61164e612d64565b600054610100900460ff16612a615760405162461bcd60e51b8152600401610568906136a0565b61164e612d8b565b6000612a76848484612db2565b905080611763576001600160a01b03808516600090815260fb6020908152604080832093871683529290529081208054849290612ab4908490613350565b90915550506001600160a01b038416600090815260fc602052604081208054849290612ae1908490613350565b92505081905550826001600160a01b0316846001600160a01b03167fca6abeb3233ce8fb0de841c83102849b2d4165b80c92c5627899a5148ab4650084604051612b2d91815260200190565b60405180910390a350505050565b6000612b90826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e9d9092919063ffffffff16565b9050805160001480612bb1575080806020019051810190612bb19190613649565b610b6c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610568565b6060816001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612c50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c7891908101906136eb565b92915050565b6000816001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7891906132b8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612d5b5760405162461bcd60e51b8152600401610568906136a0565b61164e33612975565b600054610100900460ff16611df45760405162461bcd60e51b8152600401610568906136a0565b600054610100900460ff1661164e5760405162461bcd60e51b8152600401610568906136a0565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283918291881690612e10908590613791565b6000604051808303816000865af19150503d8060008114612e4d576040519150601f19603f3d011682016040523d82523d6000602084013e612e52565b606091505b5091509150818015612e7c575080511580612e7c575080806020019051810190612e7c9190613649565b8015612e9257506000876001600160a01b03163b115b979650505050505050565b6060612eac8484600085612eb4565b949350505050565b606082471015612f155760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610568565b600080866001600160a01b03168587604051612f319190613791565b60006040518083038185875af1925050503d8060008114612f6e576040519150601f19603f3d011682016040523d82523d6000602084013e612f73565b606091505b5091509150612e928783838760608315612fee578251600003612fe7576001600160a01b0385163b612fe75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610568565b5081612eac565b612eac83838151156130035781518083602001fd5b8060405162461bcd60e51b815260040161056891906137ad565b5080546000825590600052602060002090810190610cd391906130a0565b828054828255906000526020600020908101928215613090579160200282015b8281111561309057825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061305b565b5061309c9291506130a0565b5090565b5b8082111561309c57600081556001016130a1565b6001600160a01b0381168114610cd357600080fd5b6000806000606084860312156130df57600080fd5b83356130ea816130b5565b95602085013595506040909401359392505050565b60006020828403121561311157600080fd5b8135611cca816130b5565b634e487b7160e01b600052602160045260246000fd5b600281106131425761314261311c565b9052565b888152610100810161315b602083018a613132565b6003881061316b5761316b61311c565b604082019790975260608101959095526001600160a01b0393909316608085015260a084019190915260c083015260e09091015292915050565b6000602082840312156131b757600080fd5b5035919050565b600080604083850312156131d157600080fd5b82356131dc816130b5565b946020939093013593505050565b600080604083850312156131fd57600080fd5b8235613208816130b5565b91506020830135613218816130b5565b809150509250929050565b60008060006060848603121561323857600080fd5b8335613243816130b5565b925060208401359150604084013561325a816130b5565b809150509250925092565b60208082526013908201527237379037b716b3b7b4b7339030bab1ba34b7b760691b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b80516132b3816130b5565b919050565b6000602082840312156132ca57600080fd5b8151611cca816130b5565b6000602082840312156132e757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417612c7857612c786132ee565b60008261333857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115612c7857612c786132ee565b80820180821115612c7857612c786132ee565b634e487b7160e01b600052604160045260246000fd5b600081548084526020808501945083600052602060002060005b838110156133b85781546001600160a01b031687529582019560019182019101613393565b509495945050505050565b60008151808452602080850194506020840160005b838110156133b8578151875295820195908201906001016133d8565b85815284602082015283604082015260a06060820152600061341960a0830185613379565b828103608084015261342b81856133c3565b98975050505050505050565b60405160a0810167ffffffffffffffff8111828210171561345a5761345a613363565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561348957613489613363565b604052919050565b60005b838110156134ac578181015183820152602001613494565b50506000910152565b600060208083850312156134c857600080fd5b825167ffffffffffffffff808211156134e057600080fd5b9084019060a082870312156134f457600080fd5b6134fc613437565b82518281111561350b57600080fd5b8301601f8101881361351c57600080fd5b80518381111561352e5761352e613363565b613540601f8201601f19168701613460565b9350808452888682840101111561355657600080fd5b61356581878601888501613491565b50508181526135758484016132a8565b84820152613585604084016132a8565b604082015260608301516060820152608083015160808201528094505050505092915050565b8681526135bb6020820187613132565b60c0604082015260006135d160c0830187613379565b82810360608401526135e381876133c3565b6080840195909552505060a00152949350505050565b60008151808452613611816020860160208601613491565b601f01601f19169290920160200192915050565b6001600160a01b0383168152604060208201819052600090612eac908301846135f9565b60006020828403121561365b57600080fd5b81518015158114611cca57600080fd5b6001600160a01b03848116825283166020820152606060408201819052600090613697908301846135f9565b95945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208083850312156136fe57600080fd5b825167ffffffffffffffff8082111561371657600080fd5b818501915085601f83011261372a57600080fd5b81518181111561373c5761373c613363565b8060051b915061374d848301613460565b818152918301840191848101908884111561376757600080fd5b938501935b8385101561342b5784519250613781836130b5565b828252938501939085019061376c565b600082516137a3818460208701613491565b9190910192915050565b602081526000611cca60208301846135f956fe7570646174654d696e696d756d506f6f6c426164446562742875696e74323536297570646174654e657874426964646572426c6f636b4c696d69742875696e743235362975706461746557616974466f7246697273744269646465722875696e7432353629a2646970667358221220547ed2e32e32afbeb7652e553c9b977f8478377e6b1996ebc831fdb7574142ee64736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002819a0000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064