0 txs
394 calls
constructor
No constructor.
functions
AAStaking
viewfunction AAStaking() view returns (address)
AATranche
viewfunction AATranche() view returns (address)
allowAAWithdraw
viewfunction allowAAWithdraw() view returns (bool)
allowAAWithdrawRequest
viewfunction allowAAWithdrawRequest() view returns (bool)
allowBBWithdraw
viewfunction allowBBWithdraw() view returns (bool)
allowBBWithdrawRequest
viewfunction allowBBWithdrawRequest() view returns (bool)
allowInstantWithdraw
viewfunction allowInstantWithdraw() view returns (bool)
BBStaking
viewfunction BBStaking() view returns (address)
BBTranche
viewfunction BBTranche() view returns (address)
bufferPeriod
viewfunction bufferPeriod() view returns (uint256)
defaulted
viewfunction defaulted() view returns (bool)
directDeposit
viewfunction directDeposit() view returns (bool)
disableInstantWithdraw
viewfunction disableInstantWithdraw() view returns (bool)
epochDuration
viewfunction epochDuration() view returns (uint256)
epochEndDate
viewfunction epochEndDate() view returns (uint256)
expectedEpochInterest
viewfunction expectedEpochInterest() view returns (uint256)
fee
viewfunction fee() view returns (uint256)
feeReceiver
viewfunction feeReceiver() view returns (address)
feeSplit
viewfunction feeSplit() view returns (uint256)
FULL_ALLOC
viewfunction FULL_ALLOC() view returns (uint256)
getApr
viewfunction getApr(address _tranche) view returns (uint256)
getContractValue
viewfunction getContractValue() view returns (uint256)
getCurrentAARatio
viewfunction getCurrentAARatio() view returns (uint256)
governanceRecoveryFund
viewfunction governanceRecoveryFund() view returns (address)
guardian
viewfunction guardian() view returns (address)
idealRange
viewfunction idealRange() view returns (uint256)
incentiveTokens
viewfunction incentiveTokens(uint256) view returns (address)
instantWithdrawAprDelta
viewfunction instantWithdrawAprDelta() view returns (uint256)
instantWithdrawDeadline
viewfunction instantWithdrawDeadline() view returns (uint256)
instantWithdrawDelay
viewfunction instantWithdrawDelay() view returns (uint256)
interestForOverUnderPerformance
viewfunction interestForOverUnderPerformance() view returns (int256)
isAYSActive
viewfunction isAYSActive() view returns (bool)
isEpochRunning
viewfunction isEpochRunning() view returns (bool)
isWalletAllowed
viewfunction isWalletAllowed(address _user) view returns (bool)
keyring
viewfunction keyring() view returns (address)
keyringAllowWithdraw
viewfunction keyringAllowWithdraw() view returns (bool)
keyringPolicyId
viewfunction keyringPolicyId() view returns (uint256)
lastEpochApr
viewfunction lastEpochApr() view returns (uint256)
lastEpochInterest
viewfunction lastEpochInterest() view returns (uint256)
lastNAVAA
viewfunction lastNAVAA() view returns (uint256)
lastNAVBB
viewfunction lastNAVBB() view returns (uint256)
lastStrategyPrice
viewfunction lastStrategyPrice() view returns (uint256)
limit
viewfunction limit() view returns (uint256)
liquidationTolerance
viewfunction liquidationTolerance() view returns (uint256)
lossToleranceBps
viewfunction lossToleranceBps() view returns (uint256)
MAX_FEE
viewfunction MAX_FEE() view returns (uint256)
maxDecreaseDefault
viewfunction maxDecreaseDefault() view returns (uint256)
maxWithdrawable
viewfunction maxWithdrawable(address _user, address _tranche) view returns (uint256)
maxWithdrawableInstant
viewfunction maxWithdrawableInstant(address _user, address _tranche) view returns (uint256)
minAprSplitAYS
viewfunction minAprSplitAYS() view returns (uint256)
ONE_TRANCHE_TOKEN
viewfunction ONE_TRANCHE_TOKEN() view returns (uint256)
oneToken
viewfunction oneToken() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingWithdrawFees
viewfunction pendingWithdrawFees() view returns (uint256)
priceAA
viewfunction priceAA() view returns (uint256)
priceBB
viewfunction priceBB() view returns (uint256)
rebalancer
viewfunction rebalancer() view returns (address)
referral
viewfunction referral() view returns (address)
releaseBlocksPeriod
viewfunction releaseBlocksPeriod() view returns (uint256)
revertIfTooLow
viewfunction revertIfTooLow() view returns (bool)
skipDefaultCheck
viewfunction skipDefaultCheck() view returns (bool)
stkIDLEPerUnderlying
viewfunction stkIDLEPerUnderlying() view returns (uint256)
strategy
viewfunction strategy() view returns (address)
strategyToken
viewfunction strategyToken() view returns (address)
token
viewfunction token() view returns (address)
trancheAPRSplitRatio
viewfunction trancheAPRSplitRatio() view returns (uint256)
trancheIdealWeightRatio
viewfunction trancheIdealWeightRatio() view returns (uint256)
tranchePrice
viewfunction tranchePrice(address _tranche) view returns (uint256)
unclaimedFees
viewfunction unclaimedFees() view returns (uint256)
unlentPerc
viewfunction unlentPerc() view returns (uint256)
virtualPrice
viewfunction virtualPrice(address _tranche) view returns (uint256 _virtualPrice)
weth
viewfunction weth() view returns (address)
_setLimit
nonpayablefunction _setLimit(uint256 _limit)
claimInstantWithdrawRequest
nonpayablefunction claimInstantWithdrawRequest()
claimWithdrawRequest
nonpayablefunction claimWithdrawRequest()
depositAA
nonpayablefunction depositAA(uint256 _amount) returns (uint256)
depositAARef
nonpayablefunction depositAARef(uint256 _amount, address _referral) returns (uint256)
depositBB
nonpayablefunction depositBB(uint256 _amount) returns (uint256)
depositBBRef
nonpayablefunction depositBBRef(uint256, address) returns (uint256)
emergencyShutdown
nonpayablefunction emergencyShutdown()
getFundsFromBorrower
nonpayablefunction getFundsFromBorrower(uint256 _amount, uint256 _withdrawRequests, uint256 _instantWithdrawRequests)
getInstantWithdrawFunds
nonpayablefunction getInstantWithdrawFunds()
harvest
nonpayablefunction harvest(bool[], bool[], uint256[], uint256[], bytes[]) returns (uint256[][])
initialize
nonpayablefunction initialize(uint256 _limit, address _guardedToken, address _governanceFund, address _owner, address _rebalancer, address _strategy, uint256 _trancheAPRSplitRatio)
liquidate
nonpayablefunction liquidate(uint256, bool) returns (uint256)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
requestWithdraw
nonpayablefunction requestWithdraw(uint256 _amount, address _tranche) returns (uint256)
restoreOperations
nonpayablefunction restoreOperations()
sendFundsToBorrower
nonpayablefunction sendFundsToBorrower(uint256 _amount)
setAllowAAWithdraw
nonpayablefunction setAllowAAWithdraw(bool)
setAllowBBWithdraw
nonpayablefunction setAllowBBWithdraw(bool)
setEpochParams
nonpayablefunction setEpochParams(uint256 _epochDuration, uint256 _bufferPeriod)
setFee
nonpayablefunction setFee(uint256 _fee)
setFeeReceiver
nonpayablefunction setFeeReceiver(address _feeReceiver)
setGuardian
nonpayablefunction setGuardian(address _guardian)
setInstantWithdrawParams
nonpayablefunction setInstantWithdrawParams(uint256 _delay, uint256 _aprDelta, bool _disable)
setIsAYSActive
nonpayablefunction setIsAYSActive(bool _active)
setKeyringParams
nonpayablefunction setKeyringParams(address _keyring, uint256 _keyringPolicyId, bool _keyringAllowWithdraw)
setLiquidationTolerance
nonpayablefunction setLiquidationTolerance(uint256)
setLossToleranceBps
nonpayablefunction setLossToleranceBps(uint256 _diffBps)
setMaxDecreaseDefault
nonpayablefunction setMaxDecreaseDefault(uint256)
setMinAprSplitAYS
nonpayablefunction setMinAprSplitAYS(uint256 _aprSplit)
setRebalancer
nonpayablefunction setRebalancer(address _rebalancer)
setReleaseBlocksPeriod
nonpayablefunction setReleaseBlocksPeriod(uint256)
setRevertIfTooLow
nonpayablefunction setRevertIfTooLow(bool)
setSkipDefaultCheck
nonpayablefunction setSkipDefaultCheck(bool)
setStkIDLEPerUnderlying
nonpayablefunction setStkIDLEPerUnderlying(uint256)
setTrancheAPRSplitRatio
nonpayablefunction setTrancheAPRSplitRatio(uint256)
setUnlentPerc
nonpayablefunction setUnlentPerc(uint256)
startEpoch
nonpayablefunction startEpoch()
stopEpoch
nonpayablefunction stopEpoch(uint256 _newApr, uint256 _interest)
stopEpochWithDuration
nonpayablefunction stopEpochWithDuration(uint256 _newApr, uint256 _interest, uint256 _duration)
toggleStkIDLEForTranche
nonpayablefunction toggleStkIDLEForTranche(address)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferToken
nonpayablefunction transferToken(address _token, uint256 _value)
unpause
nonpayablefunction unpause()
updateAccounting
nonpayablefunction updateAccounting()
withdrawAA
nonpayablefunction withdrawAA(uint256) returns (uint256)
withdrawBB
nonpayablefunction withdrawBB(uint256) returns (uint256)
events
AccrueInterest
event AccrueInterest(uint256 interest, uint256 fees)
BorrowerDefault
event BorrowerDefault(uint256 funds)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Referral
event Referral(uint256 _amount, address _ref)
Unpaused
event Unpaused(address account)
errors
EpochRunning
error EpochRunning()
NotAllowed
error NotAllowed()
creation bytecode
0x608060405234801561001057600080fd5b5060cf80546001600160a01b0319166001179055615f5d80620000346000396000f3fe60806040523480156200001157600080fd5b5060043610620005ce5760003560e01c806301d22ccd14620005d357806302a3f66814620005ff57806303311d75146200062557806304a3a34314620006555780630553c2e7146200067557806306a9a8bf1462000680578063085a2b78146200068a578063088f4b7814620006945780631072cbea14620006ad57806312361ac214620006c45780631441a5a914620006ce5780631533c31e14620006e757806315c44b8b14620006fe5780631a7e0ce514620007125780631cac645414620007205780631cf7a8ff14620007205780631ed4fd9714620007345780632047782a14620007495780632544e841146200075357806325cdd860146200075e57806325f66adf14620007685780632758db0c146200077257806329811ee5146200078b5780632a3e4dc214620007a25780632c2a7ca414620007b95780632cc0800e14620007c35780632e02cd5e14620007d457806333986ffa14620007eb57806333f0f80014620007f55780633403c2fc1462000800578063387af1bd146200080a5780633f4ba83a146200081e5780633fc8cef31462000828578063400f7d32146200083c578063408f3a30146200084657806340a2029e146200085d57806340bd61091462000874578063435d44d9146200087e57806343848aed146200089557806344966ba014620008a0578063452a932014620008b45780634684059014620008c8578063494347e714620008d95780634da4f60314620008e35780634ff0876a14620008f757806355c70701146200090257806358cdd22b14620009175780635c975abb146200092b57806362adade514620009375780636373ea691462000941578063655c9a53146200094b57806366a4c633146200095657806369e25ec1146200096057806369fe0e2d14620009755780636bd7b301146200098c5780636c4321eb146200099b5780636cfd155314620009b05780636d90a39c14620009c15780636f47d99b14620009cf578063715018a614620009e4578063734d828714620009ee578063747efea114620009f8578063750953921462000a0c57806375d1497b1462000a165780638260dbba1462000a2157806383975b671462000a2c5780638456cb591462000a36578063854381fa1462000a4057806387109ffd14620007205780638a0dac4a1462000a4b5780638da5cb5b1462000a625780638f5aa09014620008c85780639290d4271462000a6c57806392b29be31462000a8357806394929dc114620007205780639638529c1462000a8d578063991052b71462000aa457806399abe5e81462000aae5780639a4d36081462000ac55780639af648541462000aae5780639d3ef4b21462000adc5780639ed9de941462000af1578063a219d2181462000b0d578063a27eccc11462000b24578063a2c8b1771462000b2e578063a3d0bd481462000720578063a4d66daf1462000b38578063a8c62e761462000b42578063b3a1f0321462000b56578063b3f006741462000b6d578063b450dfce1462000b81578063b4ecd47f1462000b98578063b9ed20691462000baf578063bc063e1a1462000bc6578063c5c750981462000bd0578063c9aba3561462000bdf578063cc11580514620008c8578063ccc143b81462000bef578063cfa565671462000c06578063d48099ad1462000c10578063d636b05f1462000c27578063d816f5dc1462000c32578063dc82697c1462000c49578063ddca3f431462000c53578063dfd5b1c91462000c5d578063dfefc7f81462000c68578063e07eace614620008c8578063e2988e6e1462000c73578063e3e393681462000c7e578063e70875ad1462000c92578063e86d8c341462000720578063eb120bf41462000ca9578063edd636fb1462000cbd578063ef191b7f1462000cc7578063efdcd9741462000cde578063f2fde38b1462000cf5578063f8623d9b14620009b0578063fa69d1771462000d0c578063fc0c546a1462000d23578063fdf4c0dc1462000d37578063fe81a0241462000d41575b600080fd5b60d254620005e7906001600160a01b031681565b604051620005f6919062004687565b60405180910390f35b6200061662000610366004620046b1565b62000d4b565b604051908152602001620005f6565b620006466200063636600462004736565b60609a9950505050505050505050565b604051620005f6919062004836565b61012b54620006649060ff1681565b6040519015158152602001620005f6565b6200061661012a5481565b6200061660ed5481565b6200061660da5481565b620006ab620006a5366004620048d3565b62000df4565b005b620006ab620006be366004620048f3565b62000e11565b6200061660dc5481565b60e854620005e79061010090046001600160a01b031681565b620006ab620006f836600462004922565b62000e3b565b60d954620005e7906001600160a01b031681565b60ea54620006649060ff1681565b620006ab6200073136600462004922565b50565b60d3546200066490600160b81b900460ff1681565b6200061660e55481565b620006166101245481565b6200061662000e4a565b6200061660db5481565b62000616620007833660046200493c565b600092915050565b620006166200079c36600462004964565b62000e5d565b620005e7620007b336600462004922565b62000e76565b6200061660ec5481565b620006166200078336600462004984565b62000664620007e536600462004964565b62000ea1565b620006ab62000f3f565b620006166101255481565b620006ab62000fb7565b60ca54620005e7906001600160a01b031681565b620006ab62000fcf565b60cd54620005e7906001600160a01b031681565b6200061660dd5481565b620006ab6200085736600462004922565b62000fe3565b620006ab6200086e366004620049ac565b62000ff2565b6200061660ee5481565b620006ab6200088f36600462004922565b62001048565b620006166101275481565b60d654620005e7906001600160a01b031681565b60d054620005e7906001600160a01b031681565b620006ab62000731366004620048d3565b620006ab62001086565b61011e546200066490610100900460ff1681565b6200061661011f5481565b60d3546200066490600160a01b900460ff1681565b610128546200066490610100900460ff1681565b60335460ff1662000664565b6200061660de5481565b6200061660e95481565b620006166101265481565b6200061660ef5481565b61012854620006649062010000900460ff1681565b620006ab6200098636600462004922565b620010bc565b61012854620006649060ff1681565b61011e54620006649062010000900460ff1681565b620006ab6200073136600462004964565b60e854620006649060ff1681565b60d3546200066490600160b01b900460ff1681565b620006ab620010f0565b6200061660e15481565b60d554620005e7906001600160a01b031681565b6200061660eb5481565b620006166101225481565b620006166101205481565b620006ab62001106565b620006ab62001173565b6200061661012c5481565b620006ab62000a5c36600462004964565b62001187565b620005e7620011ce565b6200061662000a7d36600462004964565b620011dd565b6200061660e25481565b620006ab62000a9e366004620049e8565b62001233565b620006ab62001838565b6200061662000abf36600462004922565b50600090565b620006ab62000ad636600462004922565b620018c5565b60d3546200066490600160a81b900460ff1681565b61012854620005e790630100000090046001600160a01b031681565b6200061662000b1e36600462004964565b62001960565b6200061660d15481565b620006ab6200196d565b6200061660c95481565b60d454620005e7906001600160a01b031681565b620006ab62000b6736600462004a77565b62001cfb565b60e454620005e7906001600160a01b031681565b6200061662000b9236600462004922565b62001d4b565b620006ab62000ba936600462004ab3565b62001d68565b620006ab62000bc036600462004ab3565b62001d93565b62000616614e2081565b61011e54620006649060ff1681565b62000616670de0b6b3a764000081565b6200061662000c0036600462004984565b62001e65565b620006ab6200229e565b620006ab62000c2136600462004ae0565b62002433565b620006166101295481565b6200061662000c4336600462004984565b62002919565b6200061662002936565b6200061660e35481565b62000616620186a081565b620006166101235481565b620006166101215481565b60d754620005e7906001600160a01b031681565b6200061662000ca336600462004922565b62002a35565b60d854620005e7906001600160a01b031681565b6200061660e65481565b6200061662000cd8366004620046b1565b62002a52565b620006ab62000cef36600462004964565b62002b47565b620006ab62000d0636600462004964565b62002b8e565b620006ab62000d1d36600462004ae0565b62002c0a565b60cf54620005e7906001600160a01b031681565b6200061660e05481565b6200061660df5481565b6000670de0b6b3a764000062000d618362002c5e565b6040516370a0823160e01b81526001600160a01b038516906370a082319062000d8f90889060040162004687565b602060405180830381865afa15801562000dad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dd3919062004b03565b62000ddf919062004b33565b62000deb919062004b6b565b90505b92915050565b62000dfe62002cf9565b60ea805460ff1916911515919091179055565b62000e1b62002cf9565b60ca5462000e37906001600160a01b0384811691168362002d2d565b5050565b62000e4562002cf9565b60ee55565b600062000e58600062002d87565b905090565b600062000dee8262000e70600062002d87565b62002e1d565b60ce818154811062000e8757600080fd5b6000918252602090912001546001600160a01b0316905081565b61012854600090630100000090046001600160a01b031680158062000f3857506101295460405163043bb58960e51b81526001600160a01b03831691638776b1209162000ef49190879060040162004b82565b602060405180830381865afa15801562000f12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f38919062004b99565b9392505050565b60d45460405163370a95eb60e21b81526001600160a01b039091169063dc2a57ac9062000f7190339060040162004687565b6020604051808303816000875af115801562000f91573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000731919062004b03565b62000fc162002ec8565b62000fcd600062002f1b565b565b62000fd962002ec8565b62000fcd62002f53565b62000fed62002cf9565b60c955565b62000ffc62002fa3565b61011e5460ff161562001022576040516304debc7560e11b815260040160405180910390fd5b610120929092556101255561012880549115156101000261ff0019909216919091179055565b6200105262002cf9565b620186a08160ec8190551115620007315760405162461bcd60e51b81526004016200107d9062004bb9565b60405180910390fd5b6200109062002ec8565b60d3805460ff60b81b1916600160b81b179055620010ad62003079565b60d3805460ff60b81b19169055565b620010c662002cf9565b614e208160e38190551115620007315760405162461bcd60e51b81526004016200107d9062004bb9565b620010fa620031e1565b62000fcd600062003244565b6200111062002cf9565b6101285462010000900460ff16156200113c57604051631eb49d6d60e11b815260040160405180910390fd5b60335460ff161562001152576200115262002f53565b61011e805462ffff0019166201010017905560d3805460ff60b81b19169055565b6200117d62002ec8565b62000fcd62003296565b6200119162002cf9565b60d080546001600160a01b0319166001600160a01b038316908117909155620007315760405162461bcd60e51b81526004016200107d9062004bd4565b6065546001600160a01b031690565b60de5460df54600091906200122a84620011f662002936565b62001202848662004bef565b60d6546001600160a01b038981169116146200121f578462001221565b855b60da54620032d6565b50949350505050565b600054610100900460ff1615808015620012545750600054600160ff909116105b806200127957506200126630620035fc565b15801562001279575060005460ff166001145b620012de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200107d565b6000805460ff19166001179055801562001302576000805461ff0019166101001790555b60cf546001600160a01b031615620013415760405162461bcd60e51b81526020600482015260016024820152603160f81b60448201526064016200107d565b6001600160a01b0384166200136a5760405162461bcd60e51b81526004016200107d9062004bd4565b6001600160a01b038316620013935760405162461bcd60e51b81526004016200107d9062004bd4565b6001600160a01b038716620013bc5760405162461bcd60e51b81526004016200107d9062004bd4565b620186a0821115620013e25760405162461bcd60e51b81526004016200107d9062004bb9565b620013ec6200360b565b620013f98887876200363f565b6000836001600160a01b031663747efea16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001460919062004c0a565b90506000816001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620014a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620014cd919081019062004c6f565b9050620015076040518060400160405280601481526020017302830b932ba379020a0902a3930b731b4329016960651b81525082620036d0565b6200152e6040518060400160405280600381526020016241415f60e81b81525083620036d0565b6040516200153c906200466f565b6200154992919062004d4a565b604051809103906000f08015801562001566573d6000803e3d6000fd5b5060d680546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601481527302830b932ba37902121102a3930b731b4329016960651b6020820152620015be9082620036d0565b620015e56040518060400160405280600381526020016242425f60e81b81525083620036d0565b604051620015f3906200466f565b6200160092919062004d4a565b604051809103906000f0801580156200161d573d6000803e3d6000fd5b5060d780546001600160a01b03199081166001600160a01b039384161790915560cf805482168c841690811790915560d48054831689851617905560d58054831686851617905560d2805490921692891692909217905560da8590556040805163313ce56760e01b815290516000929163313ce5679160048083019260209291908290030181865afa158015620016b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016de919062004b03565b620016eb90600a62004e70565b60d181905560d3805460cd80546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560dc83905560dd8390556107d060e25561190060e655760101017a250d5630b4cf539739df2c5dacb4c659f2488d6001600160b81b03199091161790559050620017658a87620036fe565b620017718387620036fe565b6200177b62003716565b60e055613a9860e35560e4805473fb3bd022d5dacf95ee28a6b07825d4ff9c5b38146001600160a01b03199182161790915560d080549091166001600160a01b038a1617905560ea805460ff1916600117905561c35060ec5561138860ed55620017e462003787565b50505080156200182e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6101285460ff166200185d57604051631eb49d6d60e11b815260040160405180910390fd5b60d4546040516347e9887560e11b81526001600160a01b0390911690638fd310ea906200188f90339060040162004687565b600060405180830381600087803b158015620018aa57600080fd5b505af1158015620018bf573d6000803e3d6000fd5b50505050565b333014620018e657604051631eb49d6d60e11b815260040160405180910390fd5b60d45460408051637df1f1b960e01b8152905162000731926001600160a01b031691637df1f1b99160048083019260209291908290030181865afa15801562001933573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001959919062004c0a565b8262003806565b600062000dee8262002c5e565b6200197762002fa3565b61011f5461012a54610122546200198f919062004bef565b4210806200199b575080155b15620019ba57604051631eb49d6d60e11b815260040160405180910390fd5b61011e805460ff19166001179055620019d262003296565b61011e805462ffff001916905560d45461012c54610126546001600160a01b039092169162001a0a62001a0462002936565b6200381f565b62001a16919062004e7e565b62001a22919062004e7e565b61012155600061012c5562001a38824262004bef565b610122556101205462001a4c904262004bef565b61012381905550806001600160a01b031663ff4b7a26826001600160a01b031663efda7e076040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001aa1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ac7919062004b03565b6101275462001ad7919062004bef565b6040518263ffffffff1660e01b815260040162001af691815260200190565b600060405180830381600087803b15801562001b1157600080fd5b505af115801562001b26573d6000803e3d6000fd5b505050506000816001600160a01b031663f15789186040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001b6b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b91919062004b03565b60cf5490915060009062001bae906001600160a01b031662003879565b90508082111562001c11576040516303c96c4560e61b8152600481018290526001600160a01b0384169063f25b114090602401600060405180830381600087803b15801562001bfc57600080fd5b505af11580156200182e573d6000803e3d6000fd5b6040516303c96c4560e61b8152600481018390526001600160a01b0384169063f25b114090602401600060405180830381600087803b15801562001c5457600080fd5b505af115801562001c69573d6000803e3d6000fd5b5050610128805460ff1916600117905550309050639a4d360862001c8e848462004ec5565b6040518263ffffffff1660e01b815260040162001cad91815260200190565b600060405180830381600087803b15801562001cc857600080fd5b505af192505050801562001cda575060015b620018bf5762001cf562001cef838362004ec5565b620038ee565b620018bf565b62001d0562002fa3565b61012880546001600160a01b039094166301000000026301000000600160b81b0319909416939093179092556101295561012b805491151560ff19909216919091179055565b60d65460009062000dee9083906001600160a01b031683620039c6565b62001d74838362002433565b62001d838161012a5462002c0a565b62001d8e8362003a1a565b505050565b33301462001db457604051631eb49d6d60e11b815260040160405180910390fd5b60008162001dc3848662004bef565b62001dcf919062004bef565b90508062001ddd5750505050565b60d45460408051637df1f1b960e01b81529051620018bf926001600160a01b031691637df1f1b99160048083019260209291908290030181865afa15801562001e2a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e50919062004c0a565b60cf546001600160a01b031690308462003a92565b60d65460d7546000916001600160a01b0390811691811690841682148062001e9e5750806001600160a01b0316846001600160a01b0316145b158062001ed1575061011e54610100900460ff1615801562001ed15750816001600160a01b0316846001600160a01b0316145b8062001f04575061011e5462010000900460ff1615801562001f045750806001600160a01b0316846001600160a01b0316145b8062001f28575061012b5460ff1615801562001f28575062001f263362000ea1565b155b1562001f4757604051631eb49d6d60e11b815260040160405180910390fd5b62001f5162003acc565b62001f5b62003079565b60d4546001600160a01b03166000670de0b6b3a764000062001f7d8762002c5e565b62001f89908962004b33565b62001f95919062004b6b565b90506000866001600160a01b03166370a08231336040518263ffffffff1660e01b815260040162001fc7919062004687565b602060405180830381865afa15801562001fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200200b919062004b03565b61012854909150610100900460ff16620021485761012554836001600160a01b031663d7bff5386040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002088919062004b03565b62002094919062004bef565b61012454111562002148578715620020ad5781620020b9565b620020b9338862000d4b565b604051630a198c7f60e21b81529092506001600160a01b0384169063286631fc90620020ec908590339060040162004b82565b600060405180830381600087803b1580156200210757600080fd5b505af11580156200211c573d6000803e3d6000fd5b5050505087600014156200212e578097505b6200213b88838962003b0a565b50935062000dee92505050565b876200218057670de0b6b3a7640000620021628862002c5e565b6200216e908362004b33565b6200217a919062004b6b565b91508097505b6000806200218f848a62003bd7565b915091506000620186a060e35484620021a9919062004b33565b620021b5919062004b6b565b90506000620021c5828562004ec5565b9050620021d3818762004bef565b9550816101266000828254620021ea919062004bef565b925050819055508261012c600082825462002206919062004e7e565b909155505060405163f16c6bf160e01b815260048101879052336024820152604481018290526001600160a01b0388169063f16c6bf190606401600060405180830381600087803b1580156200225b57600080fd5b505af115801562002270573d6000803e3d6000fd5b505050506200228e8c828862002287919062004ec5565b8d62003b0a565b50939a9950505050505050505050565b620022a862002fa3565b61011e5460ff161580620022be57506101235442105b15620022dd57604051631eb49d6d60e11b815260040160405180910390fd5b60d45460408051631e2af12360e31b815290516001600160a01b0390921691600091839163f1578918916004808201926020929091908290030181865afa1580156200232d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002353919062004b03565b60405163b9ed206960e01b8152909150309063b9ed20699062002380906000908190869060040162004edf565b600060405180830381600087803b1580156200239b57600080fd5b505af1925050508015620023ad575060015b620023bd5762000e3781620038ee565b801562002421576040516303c96c4560e61b8152600481018290526001600160a01b0383169063f25b114090602401600060405180830381600087803b1580156200240757600080fd5b505af11580156200241c573d6000803e3d6000fd5b505050505b610128805460ff191660011790555050565b6200243d62002fa3565b60d45460408051631535292d60e31b815290516001600160a01b0390921691600091839163a9a94968916004808201926020929091908290030181865afa1580156200248d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024b3919062004b03565b6101265461011e549192509060ff161580620024d157506101225442105b806200254157506000836001600160a01b031663f15789186040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002519573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200253f919062004b03565b115b80620025625750600184118015620025625750808410806200256257508415155b156200258157604051631eb49d6d60e11b815260040160405180910390fd5b60006001851162002596576101215462002598565b845b90506000600186148015620025e55760cf54620025be906001600160a01b031662003879565b620025c862002936565b620025d4919062004ec5565b9150620025e2828462004bef565b92505b60405163b9ed206960e01b8152309063b9ed2069906200260f908690899060009060040162004edf565b600060405180830381600087803b1580156200262a57600080fd5b505af19250505080156200263c575060015b620026725761011e805460ff19908116909155610128805490911660011790556200266c62001cef868562004bef565b6200182e565b8415620026d657604051638b80c89d60e01b8152600481018690526001600160a01b03871690638b80c89d90602401600060405180830381600087803b158015620026bc57600080fd5b505af1158015620026d1573d6000803e3d6000fd5b505050505b8315620026f55760e454620026f5906001600160a01b03168562003806565b8015620027085762002708868362003806565b6200271262003079565b60e15460e4546200272d906001600160a01b03168262003806565b600060e18190558582846200274357866200274f565b6200274f868862004ec5565b6200275b919062004ec5565b62002767919062004ec5565b61012781905560405163b6b55f2560e01b8152600481018290529091506001600160a01b0389169063b6b55f25906024016020604051808303816000875af1158015620027b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027de919062004b03565b50876001600160a01b031663d7bff5386040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200281e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002844919062004b03565b61012455620028538a62003a1a565b61011e805460ff191690556000610121819055610126556200287462002f53565b61011e805462ffff00191662010100179055610128805460ff19168415801591909117909155620028bc57610128805461ff001916610100179055600061011f819055610122555b7ff66f28b40975dbb933913542c7e6a0f50a1d0f20aa74ea6e0efe65ab616323ec620028e9858762004ec5565b620028f5888562004bef565b6040805192835260208301919091520160405180910390a150505050505050505050565b60d65460009062000deb9084906001600160a01b031684620039c6565b60d5546040805163313ce56760e01b815290516000926001600160a01b0316918391839163313ce5679160048083019260209291908290030181865afa15801562002985573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029ab919062004b03565b905060e154620029b9600090565b60cf54620029d0906001600160a01b031662003879565b620029dd84600a62004e70565b620029e762003716565b620029f28762003879565b620029fe919062004b33565b62002a0a919062004b6b565b62002a16919062004bef565b62002a22919062004ec5565b62002a2e919062004ec5565b9250505090565b60d75460009062000dee9083906001600160a01b031683620039c6565b600080670de0b6b3a764000062002a698462002c5e565b6040516370a0823160e01b81526001600160a01b038616906370a082319062002a9790899060040162004687565b602060405180830381865afa15801562002ab5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002adb919062004b03565b62002ae7919062004b33565b62002af3919062004b6b565b9050600062002b03828562003bd7565b509050620186a060e3548262002b1a919062004b33565b62002b26919062004b6b565b62002b32828462004bef565b62002b3e919062004ec5565b95945050505050565b62002b5162002cf9565b60e480546001600160a01b0319166001600160a01b038316908117909155620007315760405162461bcd60e51b81526004016200107d9062004bd4565b62002b98620031e1565b6001600160a01b03811662002bff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200107d565b620007318162003244565b62002c1462002fa3565b61011e5460ff168062002c25575081155b8062002c32575061011f54155b1562002c5157604051631eb49d6d60e11b815260040160405180910390fd5b61011f9190915561012a55565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002c9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002cc5919062004b03565b62002cd257505060d15490565b60d6546001600160a01b0383811691161462002cf15760dd5462000dee565b505060dc5490565b3362002d04620011ce565b6001600160a01b03161462000fcd5760405162461bcd60e51b81526004016200107d9062004ef5565b62001d8e8363a9059cbb60e01b848460405160240162002d4f92919062004f10565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262003d1f565b60006200467d8262002d9d5762003dfb62002da2565b62003e765b60d65490915060009062002dc2906001600160a01b031663ffffffff8416565b60d75490915060009062002de2906001600160a01b031663ffffffff8516565b62002dee908362004bef565b90508062002e0157506000949350505050565b8062002e11620186a08462004b33565b62002b3e919062004b6b565b60008062002e2a62003e8c565b60da5460d654919250906001600160a01b038681169116148462002e63578062002e55578262002e58565b60005b935050505062000dee565b8062002ea55762002e7885620186a062004ec5565b62002e8783620186a062004ec5565b62002e93908562004b33565b62002e9f919062004b6b565b62002ebe565b8462002eb2838562004b33565b62002ebe919062004b6b565b9695505050505050565b60d0546001600160a01b031633148062002efc575062002ee7620011ce565b6001600160a01b0316336001600160a01b0316145b62000fcd5760405162461bcd60e51b81526004016200107d9062004ef5565b60335460ff1662002f305762002f3062003296565b5061011e805462ffff001916905560d3805460ff60b81b1916600160b81b179055565b62002f5d62003ed7565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405162002f99919062004687565b60405180910390a1565b62002fad620011ce565b6001600160a01b0316336001600160a01b0316141580156200305a575060d460009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200301e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003044919062004c0a565b6001600160a01b0316336001600160a01b031614155b1562000fcd57604051631eb49d6d60e11b815260040160405180910390fd5b60de5460df5460006200308d828462004bef565b905060006200309b62002936565b60da5490915082821115620030ef5760e354620186a090620030be858562004ec5565b620030ca919062004b33565b620030d6919062004b6b565b60e16000828254620030e9919062004bef565b90915550505b60d65460009081906200310f906001600160a01b031685878a87620032d6565b60d7549193509150600090819062003134906001600160a01b031687898b89620032d6565b909250905062003145838a62004e7e565b60de5560008112801562003163575087620031608262004f29565b12155b15620031bf5760d354600160b81b900460ff16620031a85760405162461bcd60e51b81526020600482015260016024820152600d60fa1b60448201526064016200107d565b600060df55620031b9600162002f1b565b620031cf565b620031cb818962004e7e565b60df555b5060dc929092555060dd555050505050565b33620031ec620011ce565b6001600160a01b03161462000fcd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200107d565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620032a062003f22565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25862002f8a3390565b6000806000876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200331a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003340919062004b03565b90508515806200334e575080155b156200336357505060d15490506000620035f2565b600062003371878962004f49565b9050806200339257620033848962002c5e565b6000935093505050620035f2565b6000811315620033cb57620186a060e35482620033b0919062004f8e565b620033bc91906200501f565b620033c8908262004f49565b90505b60d65460d7546001600160a01b0391821691908116908b16821480620033f25782620033f4565b815b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003458919062004b03565b6200346657839550620035bc565b6000841315620034be576000620186a0620034828a8262004ec5565b6200348e908762004f8e565b6200349a91906200501f565b905081620034a95780620034b5565b620034b5818662004f49565b965050620035bc565b620186a08a60ee54620034d2919062004b33565b620034de919062004b6b565b620034e98562004f29565b11620035425760df5460de546000906200350590839062004bef565b62003511838862004f8e565b6200351d91906200501f565b9050826200352c578062003538565b62003538818762004f49565b97505050620035bc565b6000816200355157896200355d565b6200355d8a8c62004ec5565b905060006200356d868362004e7e565b9050600081131562003591578262003586578562003589565b60005b9750620035b9565b82620035b5576000620035a48362004f29565b9850985050505050505050620035f2565b8097505b50505b84670de0b6b3a7640000620035d2888c62004e7e565b620035de919062004b33565b620035ea919062004b6b565b965050505050505b9550959350505050565b6001600160a01b03163b151590565b600054610100900460ff16620036355760405162461bcd60e51b81526004016200107d9062005053565b62000fcd62003f6a565b6001600160a01b038216620036685760405162461bcd60e51b81526004016200107d9062004bd4565b6001600160a01b038116620036915760405162461bcd60e51b81526004016200107d9062004bd4565b6200369b62003fa0565b620036a562003fd4565b60c983905560ca80546001600160a01b0319166001600160a01b03841617905562001d8e8162002b8e565b60608282604051602001620036e79291906200509e565b604051602081830303815290604052905092915050565b62000e376001600160a01b0383168260001962004008565b60d4546040805163501ad8ff60e11b815290516000926001600160a01b03169163a035b1fe9160048083019260209291908290030181865afa15801562003761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e58919062004b03565b600060e255620186a060ee5560ea805460ff1990811690915560e88054909116600117905562278d0061011f556206978061012a819055620037ca904262004ec5565b6101225561011e80546201010062ffff0019909116179055610128805461ff00191661010017905562000fcd6200380062003e8c565b62003a1a565b60cf5462000e37906001600160a01b0316838362002d2d565b600062003839670de0b6b3a76400006301e1338062004b33565b61011f5460646200384962003e8c565b62003855919062004b6b565b62003861908562004b33565b6200386d919062004b33565b62000dee919062004b6b565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190620038aa90309060040162004687565b602060405180830381865afa158015620038c8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dee919062004b03565b610128805462ff00001916620100001790556200390d60335460ff1690565b6200391c576200391c62003296565b61011e805462ffffff1916905560d45460408051632185810b60e01b815290516001600160a01b0390921691632185810b9160048082019260009290919082900301818387803b1580156200397057600080fd5b505af115801562003985573d6000803e3d6000fd5b505050507fddeda4ec7ef5a5761f0a329088482bf17d717987d67aaad5a3c4535ab7da290981604051620039bb91815260200190565b60405180910390a150565b6000620039d262003f22565b620039dd3362000ea1565b620039fb57604051631eb49d6d60e11b815260040160405180910390fd5b62003a0562003acc565b62003a12848484620040ae565b949350505050565b60d4546001600160a01b0316635a4f7c538262003a378162004258565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801562003a7657600080fd5b505af115801562003a8b573d6000803e3d6000fd5b5050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052620018bf9085906323b872dd60e01b9060840162002d4f565b60cf546001600160a01b0316600062003ae58262003879565b9050801562000e375760e45462000e37906001600160a01b0384811691168362002d2d565b604051632770a7eb60e21b81526001600160a01b03821690639dc29fac9062003b3a903390879060040162004f10565b600060405180830381600087803b15801562003b5557600080fd5b505af115801562003b6a573d6000803e3d6000fd5b505060d6546001600160a01b0384811691161415915062003ba79050578160de600082825462003b9b919062004ec5565b9091555062003bc19050565b8160df600082825462003bbb919062004ec5565b90915550505b62001d8e62003bd1600162002d87565b6200429d565b61011f5460009081908062003bed575062003d18565b61012a5460d6546001600160a01b03868116911614600062003c0e62002936565b905060008262003c305760da5462003c2a90620186a062004ec5565b62003c34565b60da545b9050600062003c44858762004bef565b8662003c50856200381f565b62003c5c919062004b33565b62003c68919062004b6b565b90506000620186a062003c7c848462004b33565b62003c88919062004b6b565b905060008562003c9b5760df5462003c9f565b60de545b9050801562003cc7578062003cb5838e62004b33565b62003cc1919062004b6b565b62003cca565b60005b9950600062003cda888a62004bef565b8962003ce68f6200381f565b62003cf2919062004b33565b62003cfe919062004b6b565b905062003d0c8b8262004f49565b99505050505050505050505b9250929050565b600062003d76826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620043289092919063ffffffff16565b905080516000148062003d9a57508080602001905181019062003d9a919062004b99565b62001d8e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016200107d565b6000670de0b6b3a764000062003e1183620011dd565b836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e50573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003861919062004b03565b6000670de0b6b3a764000062003e118362002c5e565b60d45460408051632116f20160e21b815290516000926001600160a01b03169163845bc8049160048083019260209291908290030181865afa15801562003761573d6000803e3d6000fd5b60335460ff1662000fcd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016200107d565b60335460ff161562000fcd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200107d565b600054610100900460ff1662003f945760405162461bcd60e51b81526004016200107d9062005053565b6033805460ff19169055565b600054610100900460ff1662003fca5760405162461bcd60e51b81526004016200107d9062005053565b62000fcd62004339565b600054610100900460ff1662003ffe5760405162461bcd60e51b81526004016200107d9062005053565b62000fcd6200436e565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801562004059573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200407f919062004b03565b9050620018bf8463095ea7b360e01b856200409b868662004bef565b60405160240162002d4f92919062004f10565b6000620040ba62003f22565b83620040c65762000f38565b620040d1846200439f565b620041116040516001600160601b03193260601b16602082015243603482015260540160408051601f19818403018152919052805160209091012060cb55565b6200411b62003079565b60cf546001600160a01b03166000620041348262003879565b90506200414d6001600160a01b03831633308962003a92565b62004171816200415d8462003879565b62004169919062004ec5565b3387620043f8565b92506200418362003bd1600162002d87565b60e85460ff1615620042035760d45460405163b6b55f2560e01b8152600481018890526001600160a01b039091169063b6b55f25906024016020604051808303816000875af1158015620041db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004201919062004b03565b505b6001600160a01b038416156200424f577f496d589d8b7eb829a8d7b30e24a326ac33991f5cea96429b69231a6b15b54b1d86856040516200424692919062004b82565b60405180910390a15b50509392505050565b61011f54600090801562004296578061012a548262004278919062004bef565b62004284908562004b33565b62004290919062004b6b565b62000f38565b5090919050565b60ec548015620042ae5780620042b2565b61c3505b60ea5490915060ff161562000e37576000620182b88310620042f057620186a08314620042e357620182b8620042e8565b620186a05b905062004304565b818311156200430157508162004304565b50805b620186a062004314848362004b33565b62004320919062004b6b565b60da55505050565b606062003a128484600085620044e8565b600054610100900460ff16620043635760405162461bcd60e51b81526004016200107d9062005053565b62000fcd3362003244565b600054610100900460ff16620043985760405162461bcd60e51b81526004016200107d9062005053565b6001609755565b60c95480620043ac575050565b8082620043b862002936565b620043c4919062004bef565b111562000e375760405162461bcd60e51b81526020600482015260016024820152601960f91b60448201526064016200107d565b600081620044068162002c5e565b6200441a670de0b6b3a76400008762004b33565b62004426919062004b6b565b6040516340c10f1960e01b81529092506001600160a01b038216906340c10f199062004459908790869060040162004f10565b600060405180830381600087803b1580156200447457600080fd5b505af115801562004489573d6000803e3d6000fd5b505060d6546001600160a01b03868116911614159150620044c69050578460de6000828254620044ba919062004bef565b90915550620044e09050565b8460df6000828254620044da919062004bef565b90915550505b509392505050565b6060824710156200454b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016200107d565b600080866001600160a01b03168587604051620045699190620050d1565b60006040518083038185875af1925050503d8060008114620045a8576040519150601f19603f3d011682016040523d82523d6000602084013e620045ad565b606091505b5091509150620045c087838387620045cb565b979650505050505050565b606083156200463c5782516200463457620045e685620035fc565b620046345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016200107d565b508162003a12565b62003a128383815115620046535781518083602001fd5b8060405162461bcd60e51b81526004016200107d9190620050ef565b610e0d806200511b83390190565b62000fcd62005104565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146200073157600080fd5b60008060408385031215620046c557600080fd5b8235620046d2816200469b565b91506020830135620046e4816200469b565b809150509250929050565b60008083601f8401126200470257600080fd5b5081356001600160401b038111156200471a57600080fd5b6020830191508360208260051b850101111562003d1857600080fd5b60008060008060008060008060008060a08b8d0312156200475657600080fd5b8a356001600160401b03808211156200476e57600080fd5b6200477c8e838f01620046ef565b909c509a5060208d01359150808211156200479657600080fd5b620047a48e838f01620046ef565b909a50985060408d0135915080821115620047be57600080fd5b620047cc8e838f01620046ef565b909850965060608d0135915080821115620047e657600080fd5b620047f48e838f01620046ef565b909650945060808d01359150808211156200480e57600080fd5b506200481d8d828e01620046ef565b915080935050809150509295989b9194979a5092959850565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015620048b657888603603f19018552825180518088529088019088880190845b818110156200489f5783518352928a0192918a019160010162004881565b50909750505093860193918601916001016200485e565b509398975050505050505050565b80151581146200073157600080fd5b600060208284031215620048e657600080fd5b813562000f3881620048c4565b600080604083850312156200490757600080fd5b823562004914816200469b565b946020939093013593505050565b6000602082840312156200493557600080fd5b5035919050565b600080604083850312156200495057600080fd5b823591506020830135620046e481620048c4565b6000602082840312156200497757600080fd5b813562000f38816200469b565b600080604083850312156200499857600080fd5b823591506020830135620046e4816200469b565b600080600060608486031215620049c257600080fd5b83359250602084013591506040840135620049dd81620048c4565b809150509250925092565b600080600080600080600060e0888a03121562004a0457600080fd5b87359650602088013562004a18816200469b565b9550604088013562004a2a816200469b565b9450606088013562004a3c816200469b565b9350608088013562004a4e816200469b565b925060a088013562004a60816200469b565b8092505060c0880135905092959891949750929550565b60008060006060848603121562004a8d57600080fd5b833562004a9a816200469b565b9250602084013591506040840135620049dd81620048c4565b60008060006060848603121562004ac957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121562004af457600080fd5b50508035926020909101359150565b60006020828403121562004b1657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562004b505762004b5062004b1d565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262004b7d5762004b7d62004b55565b500490565b9182526001600160a01b0316602082015260400190565b60006020828403121562004bac57600080fd5b815162000f3881620048c4565b6020808252600190820152603760f81b604082015260600190565b6020808252600190820152600360fc1b604082015260600190565b6000821982111562004c055762004c0562004b1d565b500190565b60006020828403121562004c1d57600080fd5b815162000f38816200469b565b634e487b7160e01b600052604160045260246000fd5b60005b8381101562004c5d57818101518382015260200162004c43565b83811115620018bf5750506000910152565b60006020828403121562004c8257600080fd5b81516001600160401b038082111562004c9a57600080fd5b818401915084601f83011262004caf57600080fd5b81518181111562004cc45762004cc462004c2a565b604051601f8201601f19908116603f0116810190838211818310171562004cef5762004cef62004c2a565b8160405282815287602084870101111562004d0957600080fd5b620045c083602083016020880162004c40565b6000815180845262004d3681602086016020860162004c40565b601f01601f19169290920160200192915050565b60408152600062004d5f604083018562004d1c565b828103602084015262002b3e818562004d1c565b600181815b8085111562004db457816000190482111562004d985762004d9862004b1d565b8085161562004da657918102915b93841c939080029062004d78565b509250929050565b60008262004dcd5750600162000dee565b8162004ddc5750600062000dee565b816001811462004df5576002811462004e005762004e20565b600191505062000dee565b60ff84111562004e145762004e1462004b1d565b50506001821b62000dee565b5060208310610133831016604e8410600b841016171562004e45575081810a62000dee565b62004e51838362004d73565b806000190482111562004e685762004e6862004b1d565b029392505050565b600062000deb838362004dbc565b600080821280156001600160ff1b038490038513161562004ea35762004ea362004b1d565b600160ff1b839003841281161562004ebf5762004ebf62004b1d565b50500190565b60008282101562004eda5762004eda62004b1d565b500390565b9283526020830191909152604082015260600190565b6020808252600190820152601b60f91b604082015260600190565b6001600160a01b03929092168252602082015260400190565b6000600160ff1b82141562004f425762004f4262004b1d565b5060000390565b60008083128015600160ff1b85018412161562004f6a5762004f6a62004b1d565b6001600160ff1b038401831381161562004f885762004f8862004b1d565b50500390565b60006001600160ff1b038184138284138082168684048611161562004fb75762004fb762004b1d565b600160ff1b600087128281168783058912161562004fd95762004fd962004b1d565b6000871292508782058712848416161562004ff85762004ff862004b1d565b8785058712818416161562005011576200501162004b1d565b505050929093029392505050565b60008262005031576200503162004b55565b600160ff1b8214600019841416156200504e576200504e62004b1d565b500590565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008351620050b281846020880162004c40565b835190830190620050c881836020880162004c40565b01949350505050565b60008251620050e581846020870162004c40565b9190910192915050565b60208152600062000deb602083018462004d1c565b634e487b7160e01b600052605160045260246000fdfe60806040523480156200001157600080fd5b5060405162000e0d38038062000e0d8339810160408190526200003491620001f4565b8151829082906200004d90600390602085019062000081565b5080516200006390600490602084019062000081565b5050600580546001600160a01b03191633179055506200029b915050565b8280546200008f906200025e565b90600052602060002090601f016020900481019282620000b35760008555620000fe565b82601f10620000ce57805160ff1916838001178555620000fe565b82800160010185558215620000fe579182015b82811115620000fe578251825591602001919060010190620000e1565b506200010c92915062000110565b5090565b5b808211156200010c576000815560010162000111565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200014f57600080fd5b81516001600160401b03808211156200016c576200016c62000127565b604051601f8301601f19908116603f0116810190828211818310171562000197576200019762000127565b81604052838152602092508683858801011115620001b457600080fd5b600091505b83821015620001d85785820183015181830184015290820190620001b9565b83821115620001ea5760008385830101525b9695505050505050565b600080604083850312156200020857600080fd5b82516001600160401b03808211156200022057600080fd5b6200022e868387016200013d565b935060208501519150808211156200024557600080fd5b5062000254858286016200013d565b9150509250929050565b600181811c908216806200027357607f821691505b602082108114156200029557634e487b7160e01b600052602260045260246000fd5b50919050565b610b6280620002ab6000396000f3fe608060405234801561001057600080fd5b50600436106100ba5760003560e01c806306fdde03146100bf57806307546172146100dd578063095ea7b31461010857806318160ddd1461012b57806323b872dd1461013d578063313ce56714610150578063395093511461015f57806340c10f191461017257806370a082311461018757806395d89b41146101b05780639dc29fac146101b8578063a457c2d7146101cb578063a9059cbb146101de578063dd62ed3e146101f1575b600080fd5b6100c7610204565b6040516100d49190610945565b60405180910390f35b6005546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020016100d4565b61011b6101163660046109b6565b610296565b60405190151581526020016100d4565b6002545b6040519081526020016100d4565b61011b61014b3660046109e0565b6102ae565b604051601281526020016100d4565b61011b61016d3660046109b6565b6102d2565b6101856101803660046109b6565b6102f4565b005b61012f610195366004610a1c565b6001600160a01b031660009081526020819052604090205490565b6100c7610358565b6101856101c63660046109b6565b610367565b61011b6101d93660046109b6565b61039b565b61011b6101ec3660046109b6565b610416565b61012f6101ff366004610a3e565b610424565b60606003805461021390610a71565b80601f016020809104026020016040519081016040528092919081815260200182805461023f90610a71565b801561028c5780601f106102615761010080835404028352916020019161028c565b820191906000526020600020905b81548152906001019060200180831161026f57829003601f168201915b5050505050905090565b6000336102a481858561044f565b5060019392505050565b6000336102bc858285610574565b6102c78585856105ee565b506001949350505050565b6000336102a48185856102e58383610424565b6102ef9190610ac2565b61044f565b6005546001600160a01b031633146103275760405162461bcd60e51b815260040161031e90610ada565b60405180910390fd5b60025461034a5761033b60016103e8610780565b6103476103e882610af5565b90505b6103548282610780565b5050565b60606004805461021390610a71565b6005546001600160a01b031633146103915760405162461bcd60e51b815260040161031e90610ada565b610354828261082d565b600033816103a98286610424565b9050838110156104095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161031e565b6102c7828686840361044f565b6000336102a48185856105ee565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104b15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161031e565b6001600160a01b0382166105125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161031e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006105808484610424565b905060001981146105e857818110156105db5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161031e565b6105e8848484840361044f565b50505050565b6001600160a01b0383166106525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161031e565b6001600160a01b0382166106b45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161031e565b6001600160a01b0383166000908152602081905260409020548181101561072c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161031e565b6001600160a01b0384811660008181526020818152604080832087870390559387168083529184902080548701905592518581529092600080516020610b0d833981519152910160405180910390a36105e8565b6001600160a01b0382166107d65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161031e565b80600260008282546107e89190610ac2565b90915550506001600160a01b03821660008181526020818152604080832080548601905551848152600080516020610b0d833981519152910160405180910390a35050565b6001600160a01b03821661088d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161031e565b6001600160a01b038216600090815260208190526040902054818110156109015760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161031e565b6001600160a01b038316600081815260208181526040808320868603905560028054879003905551858152919291600080516020610b0d8339815191529101610567565b600060208083528351808285015260005b8181101561097257858101830151858201604001528201610956565b81811115610984576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146109b157600080fd5b919050565b600080604083850312156109c957600080fd5b6109d28361099a565b946020939093013593505050565b6000806000606084860312156109f557600080fd5b6109fe8461099a565b9250610a0c6020850161099a565b9150604084013590509250925092565b600060208284031215610a2e57600080fd5b610a378261099a565b9392505050565b60008060408385031215610a5157600080fd5b610a5a8361099a565b9150610a686020840161099a565b90509250929050565b600181811c90821680610a8557607f821691505b60208210811415610aa657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ad557610ad5610aac565b500190565b6020808252600190820152601b60f91b604082015260600190565b600082821015610b0757610b07610aac565b50039056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209b4a7a56c67d63dedd52fcd59ccf35f982f3f375b3103037536278cce985775f64736f6c634300080a0033a2646970667358221220d38933ee6c470632477e68ee986459cb993d4c1828110281c15692a5f42c7aa464736f6c634300080a0033