0 txs
0 calls
constructor
constructor(address[] _rewardtokens, address _token, address _distribution, address _feeVault, address _votingIncentives, address _claimer, bool _isWeighted)
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
claimer
viewfunction claimer() view returns (address)
DISTRIBUTION
viewfunction DISTRIBUTION() view returns (address)
DURATION
viewfunction DURATION() view returns (uint256)
earned
viewfunction earned(address _account, address _token) view returns (uint256)
earnedAll
viewfunction earnedAll(address _account) view returns (uint256[] amounts)
emergency
viewfunction emergency() view returns (bool)
feeVault
viewfunction feeVault() view returns (address)
isRewardToken
viewfunction isRewardToken(address) view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
periodFinish
viewfunction periodFinish(address _token) view returns (uint256)
rewardForDuration
viewfunction rewardForDuration(address _token) view returns (uint256)
rewardPerToken
viewfunction rewardPerToken(address _token) view returns (uint256)
rewardRate
viewfunction rewardRate(address _token) view returns (uint256)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
rewardTokensLength
viewfunction rewardTokensLength() view returns (uint256)
TOKEN
viewfunction TOKEN() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
votingIncentives
viewfunction votingIncentives() view returns (address)
activateEmergencyMode
nonpayablefunction activateEmergencyMode()
addRewardToken
nonpayablefunction addRewardToken(address _token)
claimFees
nonpayablefunction claimFees() returns (uint256 claimed0, uint256 claimed1)
deposit
nonpayablefunction deposit(uint256 amount)
depositAll
nonpayablefunction depositAll()
emergencyWithdraw
nonpayablefunction emergencyWithdraw()
emergencyWithdrawAmount
nonpayablefunction emergencyWithdrawAmount(uint256 _amount)
getReward
nonpayablefunction getReward()
getReward
nonpayablefunction getReward(address _token)
getRewardFor
nonpayablefunction getRewardFor(address user)
notifyRewardAmount
nonpayablefunction notifyRewardAmount(address _token, uint256 _amount)
notifyRewardAmountTransferFrom
nonpayablefunction notifyRewardAmountTransferFrom(address _token, uint256 _amount)
pause
nonpayablefunction pause(bool status)
removeRewardToken
nonpayablefunction removeRewardToken(address _token)
renounceOwnership
nonpayablefunction renounceOwnership()
setClaimer
nonpayablefunction setClaimer(address _claimer)
setDistribution
nonpayablefunction setDistribution(address _distribution)
setFeeVault
nonpayablefunction setFeeVault(address _feeVault)
setVotingIncentives
nonpayablefunction setVotingIncentives(address _vi)
stopEmergencyMode
nonpayablefunction stopEmergencyMode()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 amount)
withdrawAll
nonpayablefunction withdrawAll()
withdrawAllAndHarvest
nonpayablefunction withdrawAllAndHarvest()
events
ActivateEmergencyMode
event ActivateEmergencyMode()
AddRewardToken
event AddRewardToken(address indexed token)
ClaimFees
event ClaimFees(address indexed from, address indexed token, uint256 claimed)
ClaimFees
event ClaimFees(address indexed from, uint256 claimed0, uint256 claimed1)
Deposit
event Deposit(address indexed user, uint256 amount)
Harvest
event Harvest(address indexed user, address indexed token, uint256 reward)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RemoveRewardToken
event RemoveRewardToken(address indexed token)
RewardAdded
event RewardAdded(address indexed token, uint256 reward)
SetClaimer
event SetClaimer(address indexed claimer)
SetDistribution
event SetDistribution(address indexed distribution)
SetFeeVault
event SetFeeVault(address indexed feeVault)
SetVotingIncentives
event SetVotingIncentives(address indexed vi)
StopEmergencyMode
event StopEmergencyMode()
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b50604051620030e9380380620030e9833981016040819052620000349162000369565b60016000556200004433620002d3565b6001805460ff60a01b191690556001600160a01b038616620000955760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064015b60405180910390fd5b6001600160a01b038516620000d55760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064016200008c565b6001600160a01b038416620001155760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064016200008c565b6001600160a01b038216620001555760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064016200008c565b60005b87518110156200024f5760006001600160a01b0316888281518110620001825762000182620004ac565b60200260200101516001600160a01b03161462000246576001600b60008a8481518110620001b457620001b4620004ac565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555060068882815181106200020a576200020a620004ac565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b039092169190911790555b60010162000158565b8115156080526001600160a01b0387811660a052600380546001600160a01b03199081168984161790915560058054821688841617905560048054909116858316179055841615620002b757600f80546001600160a01b0319166001600160a01b0386161790555b50506001805460ff60a81b1916905550620004c2945050505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200035357600080fd5b919050565b805180151581146200035357600080fd5b600080600080600080600060e0888a0312156200038557600080fd5b87516001600160401b03808211156200039d57600080fd5b818a0191508a601f830112620003b257600080fd5b8151602082821115620003c957620003c962000325565b8160051b604051601f19603f83011681018181108682111715620003f157620003f162000325565b60405292835281830193508481018201928e8411156200041057600080fd5b948201945b83861015620004395762000429866200033b565b8552948201949382019362000415565b9b506200044a90508c82016200033b565b9950505050506200045e604089016200033b565b94506200046e606089016200033b565b93506200047e608089016200033b565b92506200048e60a089016200033b565b91506200049e60c0890162000358565b905092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b60805160a051612bde6200050b600039600081816104b801528181610f66015281816111c80152818161125801528181611be20152612120015260006110dc0152612bde6000f3fe608060405234801561001057600080fd5b50600436106102f45760003560e01c8063853828b611610191578063c6c8f6b6116100e3578063d379be2311610097578063de5f626811610071578063de5f626814610648578063f122977714610650578063f2fde38b1461066357600080fd5b8063d379be2314610604578063da09d19d14610617578063db2e21bc1461064057600080fd5b8063cdfb5832116100c8578063cdfb5832146105cc578063d0096010146105df578063d294f093146105e757600080fd5b8063c6c8f6b6146105a5578063caa6fea4146105b857600080fd5b8063b5fd73f811610145578063b6f7097f1161011f578063b6f7097f14610577578063bf199e621461058a578063c00007b01461059257600080fd5b8063b5fd73f81461052e578063b66503cf14610551578063b6b55f251461056457600080fd5b80639e88ec10116101765780639e88ec10146104f3578063a591f97f14610513578063b1534ecd1461052657600080fd5b8063853828b6146104da5780638da5cb5b146104e257600080fd5b8063478222c21161024a578063715018a6116101fe5780637c91e4eb116101d85780637c91e4eb1461048d5780637f699015146104a057806382bfefc8146104b357600080fd5b8063715018a61461045f57806376a0adf2146104675780637bb7bed11461047a57600080fd5b80636bbcf6d81161022f5780636bbcf6d81461041b5780636e9852f21461042e57806370a082311461043657600080fd5b8063478222c2146103d25780635c975abb146103fd57600080fd5b80631c3317c7116102ac5780632e1a7d4d116102865780632e1a7d4d146103a45780633d18b912146103b75780633d509c97146103bf57600080fd5b80631c3317c714610355578063211dc32d14610368578063221ca18c1461037b57600080fd5b806318160ddd116102dd57806318160ddd146103215780631be05289146103385780631c03e6cc1461034257600080fd5b806302329a29146102f9578063055de2751461030e575b600080fd5b61030c610307366004612838565b610676565b005b61030c61031c36600461286a565b610696565b6002545b6040519081526020015b60405180910390f35b61032562093a8081565b61030c61035036600461286a565b6106e6565b61030c610363366004612887565b610817565b6103256103763660046128b3565b610894565b61032561038936600461286a565b6001600160a01b031660009081526008602052604090205490565b61030c6103b23660046128ec565b6108a9565b61030c6108ba565b61030c6103cd36600461286a565b6108df565b6005546103e5906001600160a01b031681565b6040516001600160a01b03909116815260200161032f565b600154600160a01b900460ff165b604051901515815260200161032f565b61030c61042936600461286a565b6109d6565b61030c610a66565b61032561044436600461286a565b6001600160a01b03166000908152600e602052604090205490565b61030c610a90565b61032561047536600461286a565b610aa2565b6103e56104883660046128ec565b610ac9565b6003546103e5906001600160a01b031681565b61030c6104ae36600461286a565b610af3565b6103e57f000000000000000000000000000000000000000000000000000000000000000081565b61030c610b83565b6001546001600160a01b03166103e5565b61050661050136600461286a565b610ba4565b60405161032f9190612905565b61030c61052136600461286a565b610c60565b61030c610cf0565b61040b61053c36600461286a565b600b6020526000908152604090205460ff1681565b61030c61055f366004612887565b610d4a565b61030c6105723660046128ec565b610db9565b600f546103e5906001600160a01b031681565b600654610325565b61030c6105a036600461286a565b610dcb565b61030c6105b33660046128ec565b610ea0565b60015461040b90600160a81b900460ff1681565b61030c6105da36600461286a565b610fcc565b61030c61105c565b6105ef6110b8565b6040805192835260208301919091520161032f565b6004546103e5906001600160a01b031681565b61032561062536600461286a565b6001600160a01b031660009081526007602052604090205490565b61030c611127565b61030c611237565b61032561065e36600461286a565b6112d1565b61030c61067136600461286a565b6112dc565b61067e611369565b8061068e5761068b6113c3565b50565b61068b611418565b61069e61145b565b6106a66114b4565b6004546001600160a01b0316331480156106ca57506004546001600160a01b031615155b6106d357600080fd5b6106dc8161150e565b61068b6001600055565b6106ee611369565b6001600160a01b0381166000908152600b602052604090205460ff161561074d5760405162461bcd60e51b815260206004820152600e60248201526d10b4b9a932bbb0b9322a37b5b2b760911b60448201526064015b60405180910390fd5b6001600160a01b03811661078b5760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b6001600160a01b0381166000818152600b6020526040808220805460ff1916600190811790915560068054918201815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191684179055517f851bbb4304bf0768ed98b97e429b5bd1dcc1f194b36cd1650f40293e951ae3939190a250565b61081f61145b565b600154600160a81b900460ff161561083657600080fd5b6003546001600160a01b0316331461087a5760405162461bcd60e51b81526020600482015260076024820152662164697374726f60c81b6044820152606401610744565b61088682826001611608565b6108906001600055565b5050565b60006108a083836118b5565b90505b92915050565b6108b16114b4565b61068b81611964565b6108c261145b565b6108ca6114b4565b6108d33361150e565b6108dd6001600055565b565b6108e7611369565b6001600160a01b0381166000908152600b602052604090205460ff16156109415760405162461bcd60e51b815260206004820152600e60248201526d10b4b9a932bbb0b9322a37b5b2b760911b6044820152606401610744565b60065460005b818110156109d157826001600160a01b03166006828154811061096c5761096c612949565b6000918252602090912001546001600160a01b0316036109c9576109908382611a09565b6040516001600160a01b038416907f36bd04094fa067bb9471a8fbdb0a6e8a43424a2566ad3a740c88973fa40a311890600090a2505050565b600101610947565b505050565b6109de611369565b6001600160a01b038116610a1c5760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517f71119a4a2850109bdeaff1aedbd330e4bc80607f423b1562fddbdc7ff4628b6490600090a250565b610a6e6114b4565b336000908152600e6020526040902054610a8790611964565b6108dd3361150e565b610a98611369565b6108dd6000611adc565b6001600160a01b0381166000908152600860205260408120546108a39062093a8090612975565b60068181548110610ad957600080fd5b6000918252602090912001546001600160a01b0316905081565b610afb611369565b6001600160a01b038116610b395760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600380546001600160a01b0319166001600160a01b0383169081179091556040517ff085c57737528946971c505b4c9d6f7ca7ab5925b0cee78d8cb75797f36f362890600090a250565b610b8b6114b4565b336000908152600e60205260409020546108dd90611964565b600654606090600090818167ffffffffffffffff811115610bc757610bc761298c565b604051908082528060200260200182016040528015610bf0578160200160208202803683370190505b5093505b81831015610c585760068381548110610c0f57610c0f612949565b6000918252602090912001546001600160a01b03169050610c3085826118b5565b848481518110610c4257610c42612949565b6020908102919091010152600190920191610bf4565b505050919050565b610c68611369565b6001600160a01b038116610ca65760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600580546001600160a01b0319166001600160a01b0383169081179091556040517fe68507d3387f586d218f2d30c6bd698977c73cfe98ae490919957b344476f19790600090a250565b610cf8611369565b60018054600160a81b900460ff16151514610d1257600080fd5b6001805460ff60a81b191690556040517f2b8c5008aae34863b256c67a6c2757d0ac8f800e6b4f3bb98bddf13e47b028ef90600090a1565b610d5261145b565b600154600160a81b900460ff1615610d6957600080fd5b6003546001600160a01b03163314610dad5760405162461bcd60e51b81526020600482015260076024820152662164697374726f60c81b6044820152606401610744565b61088682826000611608565b610dc16114b4565b61068b8133611b2e565b610dd361145b565b610ddb6114b4565b33610de68183611c57565b6001600160a01b038082166000908152600d60209081526040808320938616835292905220548015610e94576001600160a01b038083166000908152600d6020908152604080832093871680845293909152812055610e46908383611cf9565b826001600160a01b0316826001600160a01b03167fa0306f61d3fafe13787b78e276cb6b644382854a66cb46daae14227d3ec2679783604051610e8b91815260200190565b60405180910390a35b505061068b6001600055565b610ea861145b565b600154600160a81b900460ff16610ebe57600080fd5b336000908152600e6020526040902054811115610f1d5760405162461bcd60e51b815260206004820152600660248201527f6e6f2062616c00000000000000000000000000000000000000000000000000006044820152606401610744565b8060026000828254610f2f91906129a2565b9091555050336000908152600e602052604081208054839290610f539084906129a2565b90915550610f8d90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611cf9565b60405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a261068b6001600055565b610fd4611369565b6001600160a01b0381166110125760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600480546001600160a01b0319166001600160a01b0383169081179091556040517fdfe91dcad2adcb1ecd18d2e830b469081211d6743c1e2dfa893836431fb7879490600090a250565b611064611369565b600154600160a81b900460ff161561107b57600080fd5b6001805460ff60a81b1916600160a81b1790556040517e2027e346bbcb4e71801ce26885a270290fb7d1d463cb49adf82dba74bd151d90600090a1565b6000806110c361145b565b6001546001600160a01b031633146110da57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000001561111157611108611d89565b91509150611119565b611108612106565b6111236001600055565b9091565b61112f61145b565b600154600160a81b900460ff1661114557600080fd5b336000908152600e602052604090205461118a5760405162461bcd60e51b815260040161074490602080825260049082015263062616c360e41b604082015260600190565b336000908152600e602052604081205460028054919283926111ad9084906129a2565b9091555050336000818152600e60205260408120556111f7907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169083611cf9565b60405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a2506108dd6001600055565b61123f6114b4565b6040516370a0823160e01b81523360048201526108dd907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb91906129b5565b33611b2e565b60006108a3826123bc565b6112e4611369565b6001600160a01b0381166113605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610744565b61068b81611adc565b6001546001600160a01b031633146108dd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610744565b6113cb612456565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6114206114b4565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113fb3390565b6002600054036114ad5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610744565b6002600055565b600154600160a01b900460ff16156108dd5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610744565b611517816124af565b600654600090815b81831015611602576006838154811061153a5761153a612949565b60009182526020808320909101546001600160a01b038781168452600d835260408085209190921680855292529091205490915080156115f6576001600160a01b038086166000908152600d60209081526040808320938616808452939091528120556115a8908683611cf9565b816001600160a01b0316856001600160a01b03167fa0306f61d3fafe13787b78e276cb6b644382854a66cb46daae14227d3ec26797836040516115ed91815260200190565b60405180910390a35b5060019092019161151f565b50505050565b611613600084611c57565b6001600160a01b0383166000908152600b602052604090205460ff1661167b5760405162461bcd60e51b815260206004820152600660248201527f21746f6b656e00000000000000000000000000000000000000000000000000006044820152606401610744565b6001600160a01b0383166000908152600760205260409020544281116116c6576116a862093a80846129ce565b6001600160a01b03851660009081526008602052604090205561172b565b6001600160a01b03841660009081526008602052604081205490816116eb42856129a2565b6116f59190612975565b905062093a8061170582876129f0565b61170f91906129ce565b6001600160a01b03871660009081526008602052604090205550505b6001600160a01b038416600090815260096020526040902042908190556117569062093a80906129f0565b6001600160a01b038516600090815260076020526040902055811561178a5761178a6001600160a01b0385163330866124fe565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa1580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906129b5565b905061180462093a80826129ce565b6001600160a01b038616600090815260086020526040902054111561186b5760405162461bcd60e51b815260206004820152600560248201527f21726174650000000000000000000000000000000000000000000000000000006044820152606401610744565b846001600160a01b03167fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e29856040516118a691815260200190565b60405180910390a25050505050565b6001600160a01b038083166000908152600c602090815260408083209385168352929052908120548190670de0b6b3a7640000906118f2856123bc565b6118fc91906129a2565b6001600160a01b0386166000908152600e602052604090205461191f9190612975565b61192991906129ce565b6001600160a01b038086166000908152600d602090815260408083209388168352929052205490915061195c90826129f0565b949350505050565b61196c61145b565b600154600160a81b900460ff161561198357600080fd5b600081116119bb5760405162461bcd60e51b81526020600482015260056024820152640616d6e74360dc1b6044820152606401610744565b336000908152600e6020526040902054611a005760405162461bcd60e51b815260040161074490602080825260049082015263062616c360e41b604082015260600190565b610f1d336124af565b60068054611a19906001906129a2565b81548110611a2957611a29612949565b600091825260209091200154600680546001600160a01b039092169183908110611a5557611a55612949565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506006805480611a9457611a94612a03565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03939093168152600b9092525060409020805460ff19169055565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611b3661145b565b600154600160a81b900460ff1615611b4d57600080fd5b60008211611b855760405162461bcd60e51b81526020600482015260056024820152640616d6e74360dc1b6044820152606401610744565b611b8e816124af565b6001600160a01b0381166000908152600e602052604081208054849290611bb69084906129f0565b925050819055508160026000828254611bcf91906129f0565b90915550611c0a90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168230856124fe565b806001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c83604051611c4591815260200190565b60405180910390a26108906001600055565b6000611c62826123bc565b6001600160a01b0383166000908152600a602052604090208190559050611c8882612536565b6001600160a01b038084166000908152600960205260409020919091558316156109d157611cb683836118b5565b6001600160a01b039384166000818152600d602090815260408083209690971680835295815286822093909355908152600c825284812093815292905291902055565b6040516001600160a01b0383166024820152604481018290526109d190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261255a565b600554604051637aaac16d60e11b815230600482015260009182916001600160a01b03909116908290829063f55582da90602401600060405180830381865afa158015611dda573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e029190810190612a19565b60055460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663d294f09360e01b17905290519293506000926001600160a01b0390921691611e609190612afb565b6000604051808303816000865af19150503d8060008114611e9d576040519150601f19603f3d011682016040523d82523d6000602084013e611ea2565b606091505b5050905080611ef35760405162461bcd60e51b815260206004820152601760248201527f636c61696d4665657328292063616c6c206661696c65640000000000000000006044820152606401610744565b6000836001600160a01b0316637e1c0c096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5791906129b5565b905060005b818110156120f7576040516327b2595f60e11b8152600481018290526000906001600160a01b03871690634f64b2be90602401602060405180830381865afa158015611fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd09190612b17565b90506000858381518110611fe657611fe6612949565b6020026020010151905060008111801561206757506040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801561203f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206391906129b5565b8111155b156120ed57600f54612086906001600160a01b0384811691168361263f565b600f5460405163b66503cf60e01b81526001600160a01b038481166004830152602482018490529091169063b66503cf90604401600060405180830381600087803b1580156120d457600080fd5b505af11580156120e8573d6000803e3d6000fd5b505050505b5050600101611f5c565b50600096879650945050505050565b6005546040805163d294f09360e01b8152815160009384937f0000000000000000000000000000000000000000000000000000000000000000936001600160a01b039092169263d294f093926004808201939291829003018188875af1158015612174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121989190612b34565b80935081945050506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122049190612b17565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226a9190612b17565b905084156122f357600f5461228c906001600160a01b0384811691168761263f565b600f5460405163b66503cf60e01b81526001600160a01b038481166004830152602482018890529091169063b66503cf90604401600060405180830381600087803b1580156122da57600080fd5b505af11580156122ee573d6000803e3d6000fd5b505050505b831561237a57600f54612313906001600160a01b0383811691168661263f565b600f5460405163b66503cf60e01b81526001600160a01b038381166004830152602482018790529091169063b66503cf90604401600060405180830381600087803b15801561236157600080fd5b505af1158015612375573d6000803e3d6000fd5b505050505b604080518681526020810186905233917fbc567d6cbad26368064baa0ab5a757be46aae4d70f707f9203d9d9b6c8ccbfa3910160405180910390a25050509091565b6001600160a01b0381166000908152600a602052604081205460025482036123e45792915050565b6002546001600160a01b03841660009081526008602090815260408083205460099092529091205461241586612536565b61241f91906129a2565b6124299190612975565b61243b90670de0b6b3a7640000612975565b61244591906129ce565b61244f90826129f0565b9392505050565b600154600160a01b900460ff166108dd5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610744565b600654600090815b8183101561160257600683815481106124d2576124d2612949565b6000918252602090912001546001600160a01b031690506124f38482611c57565b6001909201916124b7565b6040516001600160a01b03808516602483015283166044820152606481018290526116029085906323b872dd60e01b90608401611d25565b6001600160a01b0381166000908152600760205260408120546108a39042906126f1565b60006125af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127079092919063ffffffff16565b8051909150156109d157808060200190518101906125cd9190612b58565b6109d15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610744565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b491906129b5565b6126be91906129f0565b6040516001600160a01b03851660248201526044810182905290915061160290859063095ea7b360e01b90606401611d25565b600081831061270057816108a0565b5090919050565b606061195c848460008585600080866001600160a01b0316858760405161272e9190612afb565b60006040518083038185875af1925050503d806000811461276b576040519150601f19603f3d011682016040523d82523d6000602084013e612770565b606091505b50915091506127818783838761278c565b979650505050505050565b606083156127fb5782516000036127f4576001600160a01b0385163b6127f45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610744565b508161195c565b61195c83838151156128105781518083602001fd5b8060405162461bcd60e51b81526004016107449190612b75565b801515811461068b57600080fd5b60006020828403121561284a57600080fd5b813561244f8161282a565b6001600160a01b038116811461068b57600080fd5b60006020828403121561287c57600080fd5b813561244f81612855565b6000806040838503121561289a57600080fd5b82356128a581612855565b946020939093013593505050565b600080604083850312156128c657600080fd5b82356128d181612855565b915060208301356128e181612855565b809150509250929050565b6000602082840312156128fe57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561293d57835183529284019291840191600101612921565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a3576108a361295f565b634e487b7160e01b600052604160045260246000fd5b818103818111156108a3576108a361295f565b6000602082840312156129c757600080fd5b5051919050565b6000826129eb57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108a3576108a361295f565b634e487b7160e01b600052603160045260246000fd5b60006020808385031215612a2c57600080fd5b825167ffffffffffffffff80821115612a4457600080fd5b818501915085601f830112612a5857600080fd5b815181811115612a6a57612a6a61298c565b8060051b604051601f19603f83011681018181108582111715612a8f57612a8f61298c565b604052918252848201925083810185019188831115612aad57600080fd5b938501935b82851015612acb57845184529385019392850192612ab2565b98975050505050505050565b60005b83811015612af2578181015183820152602001612ada565b50506000910152565b60008251612b0d818460208701612ad7565b9190910192915050565b600060208284031215612b2957600080fd5b815161244f81612855565b60008060408385031215612b4757600080fd5b505080516020909101519092909150565b600060208284031215612b6a57600080fd5b815161244f8161282a565b6020815260008251806020840152612b94816040850160208701612ad7565b601f01601f1916919091016040019291505056fea2646970667358221220968acee6884731963027fa889e3295cd8c3aa22bce021a96877a2f5e40630db764736f6c6343000816003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000005134729cd5a5b40336bc3ca71349f2c1087184280000000000000000000000003005b0d329141d75b62cceee57bf00153fe260740000000000000000000000005134729cd5a5b40336bc3ca71349f2c1087184280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d2d64e094d37dd7d7759603fb9ed6b2306d1e5b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f4c8e32eadec4bfe97e0f595add0f4450a863a11