0 txs
0 calls
constructor
constructor()
functions
arbBots
viewfunction arbBots(address) view returns (bool)
curvePool
viewfunction curvePool() view returns (address)
feeForETHUSDC
viewfunction feeForETHUSDC() view returns (uint24)
feeForHono
viewfunction feeForHono() view returns (uint24)
feeForWstETHETH
viewfunction feeForWstETHETH() view returns (uint24)
getBalance
viewfunction getBalance(address _tokenContractAddress) view returns (uint256)
HONO
viewfunction HONO() view returns (address)
iWETH
viewfunction iWETH() view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
revenueDistributor
viewfunction revenueDistributor() view returns (address)
router
viewfunction router() view returns (address)
stETH
viewfunction stETH() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
USDC
viewfunction USDC() view returns (address)
WstETH
viewfunction WstETH() view returns (address)
wstETHContract
viewfunction wstETHContract() view returns (address)
approveThisToRedeemHono
nonpayablefunction approveThisToRedeemHono()
BuyThenRedeemForEther
nonpayablefunction BuyThenRedeemForEther(uint256 estimatedGasCost)
deposit
payablefunction deposit() payable
initialize
nonpayablefunction initialize(address _wstETH, address _iWETH, address _usdc, address _router, address _hono, address _stETH, address _curvePool, address _revenueDistributor)
MintAndSellForEther
nonpayablefunction MintAndSellForEther(uint256 estimatedGasCost)
recoverEth
nonpayablefunction recoverEth()
recoverTokens
nonpayablefunction recoverTokens(address tokenAddress)
renounceOwnership
nonpayablefunction renounceOwnership()
setFee
nonpayablefunction setFee(uint24 _feeForHono, uint24 _feeForETHUSDC)
setFee
nonpayablefunction setFee(uint256 _feeForWstETHETH, uint256 _feeForHONO, uint256 _feeForETHUSDC)
setToUseDistribute
nonpayablefunction setToUseDistribute(bool _touse)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateBotAddress
nonpayablefunction updateBotAddress(address _botaddress, bool allow)
updateRevenueDistributor
nonpayablefunction updateRevenueDistributor(address _revenueDistributor)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TradeExecuted
event TradeExecuted(uint8 tradeType, uint256 initialWstETH, uint256 finalWstETH, uint256 profitWstETH, uint256 gasCost, uint256 timestamp)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612fa66200010460003960008181611df701528181611e200152611f610152612fa66000f3fe6080604052600436106101e75760003560e01c80638a10d44b11610102578063bcdb446b11610095578063eae0a48811610064578063eae0a48814610590578063f2fde38b146105b0578063f887ea40146105d0578063f8b2cb4f146105f057600080fd5b8063bcdb446b1461053b578063be241eb114610550578063c1fe3e4814610570578063d0e30db01461028f57600080fd5b8063ad3cb1cc116100d1578063ad3cb1cc146104a8578063b40c9ebd146104e6578063b6d9d9a114610506578063b6e6f0c61461051b57600080fd5b80638a10d44b146104375780638a29e2de146104535780638da5cb5b14610473578063983e19801461048857600080fd5b806338d7f8491161017a57806352d1902d1161014957806352d1902d146103bf5780635b65b9ab146103e2578063715018a61461040257806389a302711461041757600080fd5b806338d7f849146103495780634ba191701461036c5780634c01091d1461038c5780634f1ef286146103ac57600080fd5b8063218751b2116101b6578063218751b2146102b157806321f58893146102e95780632cd610de146103095780632ec1be291461032957600080fd5b80630872fd22146101f35780630ff883ef1461023857806316114acd1461026f5780631e9c62ca1461029157600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061022361020e366004612a78565b600a6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024457600080fd5b50603c5461025b90600160301b900462ffffff1681565b60405162ffffff909116815260200161022f565b34801561027b57600080fd5b5061028f61028a366004612a78565b610610565b005b34801561029d57600080fd5b5061028f6102ac366004612aa6565b6106f1565b3480156102bd57600080fd5b506007546102d1906001600160a01b031681565b6040516001600160a01b03909116815260200161022f565b3480156102f557600080fd5b5061028f610304366004612ad9565b610738565b34801561031557600080fd5b5061028f610324366004612a78565b610d7f565b34801561033557600080fd5b506003546102d1906001600160a01b031681565b34801561035557600080fd5b50603c5461025b906301000000900462ffffff1681565b34801561037857600080fd5b506002546102d1906001600160a01b031681565b34801561039857600080fd5b506009546102d1906001600160a01b031681565b61028f6103ba366004612b08565b610da9565b3480156103cb57600080fd5b506103d4610dc8565b60405190815260200161022f565b3480156103ee57600080fd5b5061028f6103fd366004612bca565b610de5565b34801561040e57600080fd5b5061028f610e32565b34801561042357600080fd5b506004546102d1906001600160a01b031681565b34801561044357600080fd5b50603c5461025b9062ffffff1681565b34801561045f57600080fd5b5061028f61046e366004612bf6565b610e46565b34801561047f57600080fd5b506102d161115c565b34801561049457600080fd5b506005546102d1906001600160a01b031681565b3480156104b457600080fd5b506104d9604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161022f9190612cdd565b3480156104f257600080fd5b5061028f610501366004612cfe565b61118a565b34801561051257600080fd5b5061028f6111b0565b34801561052757600080fd5b5061028f610536366004612ad9565b6111c0565b34801561054757600080fd5b5061028f6116e6565b34801561055c57600080fd5b5061028f61056b366004612d1b565b61171a565b34801561057c57600080fd5b506008546102d1906001600160a01b031681565b34801561059c57600080fd5b506006546102d1906001600160a01b031681565b3480156105bc57600080fd5b5061028f6105cb366004612a78565b61174d565b3480156105dc57600080fd5b506000546102d1906001600160a01b031681565b3480156105fc57600080fd5b506103d461060b366004612a78565b611788565b6106186117fc565b6040516370a0823160e01b815230600482015281906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068c9190612d52565b6040518363ffffffff1660e01b81526004016106a9929190612d6b565b6020604051808303816000875af11580156106c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ec9190612d84565b505050565b6106f96117fc565b603c805468ffffffffffff0000001916630100000062ffffff9485160268ffffff000000000000191617600160301b9290931691909102919091179055565b336000908152600a602052604090205460ff168061076e575061075961115c565b6001600160a01b0316336001600160a01b0316145b6107aa5760405162461bcd60e51b8152602060048201526008602482015267165bdd4818d85b9d60c21b60448201526064015b60405180910390fd5b6107b261182e565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190612d52565b9050600081116108715760405162461bcd60e51b815260206004820152601f60248201527f4e6f207773744554482062616c616e636520746f20737461727420776974680060448201526064016107a1565b600061087c82611866565b9050600081116108ce5760405162461bcd60e51b815260206004820152601f60248201527f4661696c656420746f20636f6e766572742077737445544820746f204554480060448201526064016107a1565b8281116108ed5760405162461bcd60e51b81526004016107a190612da1565b60006108f98483612df9565b905061090481611bc8565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561094d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109719190612d52565b9050600081116109c35760405162461bcd60e51b815260206004820152601960248201527f4661696c656420746f2062757920484f4e4f20746f6b656e730000000000000060448201526064016107a1565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612d52565b6002546040516324f0963160e21b8152600481018590529192506001600160a01b0316906393c258c490602401600060405180830381600087803b158015610a7757600080fd5b505af1158015610a8b573d6000803e3d6000fd5b50506005546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015610ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afe9190612d52565b90506000610b0c8383612df9565b905060008111610b695760405162461bcd60e51b815260206004820152602260248201527f4e6f207773744554482072656365697665642066726f6d20726564656d70746960448201526137b760f11b60648201526084016107a1565b868211610baf5760405162461bcd60e51b81526020600482015260146024820152735472616465206e6f742070726f66697461626c6560601b60448201526064016107a1565b6000610bbb8884612df9565b90508015610d115760055460065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92610bf9929116908590600401612d6b565b6020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190612d84565b610c965760405162461bcd60e51b815260206004820152602560248201527f777374455448207472616e7366657220746f206469737472696275746f722066604482015264185a5b195960da1b60648201526084016107a1565b600654600160a01b900460ff1615610d1157600660009054906101000a90046001600160a01b03166001600160a01b03166326c4e60d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cf857600080fd5b505af1158015610d0c573d6000803e3d6000fd5b505050505b610d1b338a611d3e565b7fccc6ba339fc3ebabc09404427e1539e839fae871f1170166dca5ae3a89db727960018985848d42604051610d5596959493929190612e0c565b60405180910390a15050505050505050610d7c6001600080516020612f5183398151915255565b50565b610d876117fc565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610db1611dec565b610dba82611e91565b610dc48282611e99565b5050565b6000610dd2611f56565b50600080516020612f3183398151915290565b610ded6117fc565b603c805462ffffff94851665ffffffffffff19909116176301000000938516939093029290921768ffffff0000000000001916600160301b9190931602919091179055565b610e3a6117fc565b610e446000611f9f565b565b6000610e50612010565b805490915060ff600160401b820416159067ffffffffffffffff16600081158015610e785750825b905060008267ffffffffffffffff166001148015610e955750303b155b905081158015610ea3575080155b15610ec15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eeb57845460ff60401b1916600160401b1785555b610ef43361203b565b610efc61204c565b610f04612054565b896000806101000a8154816001600160a01b0302191690836001600160a01b0316021790555088600260006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b600360006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600460006101000a8154816001600160a01b0302191690836001600160a01b031602179055508c600560006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600760006101000a8154816001600160a01b0302191690836001600160a01b0316021790555087600860006101000a8154816001600160a01b0302191690836001600160a01b031602179055508c600960006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600660006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f19999999999999999999999999999999999999999999999999999999999999996001819055506001600660146101000a81548160ff021916908315150217905550610bb8603c60006101000a81548162ffffff021916908362ffffff160217905550610bb8603c60036101000a81548162ffffff021916908362ffffff1602179055506101f4603c60066101000a81548162ffffff021916908362ffffff160217905550831561114d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6111926117fc565b60068054911515600160a01b0260ff60a01b19909216919091179055565b6111b86117fc565b610e44612064565b336000908152600a602052604090205460ff16806111f657506111e161115c565b6001600160a01b0316336001600160a01b0316145b61122d5760405162461bcd60e51b8152602060048201526008602482015267165bdd4818d85b9d60c21b60448201526064016107a1565b61123561182e565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561127e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a29190612d52565b9050600081116112f45760405162461bcd60e51b815260206004820152601e60248201527f4e6f207773744554482062616c616e636520746f206d696e742077697468000060448201526064016107a1565b60025460405163272a522f60e01b81526004810183905247916001600160a01b03169063272a522f90602401600060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b50506002546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa15801561139d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c19190612d52565b9050600081116114135760405162461bcd60e51b815260206004820152601a60248201527f4661696c656420746f206d696e7420484f4e4f20746f6b656e7300000000000060448201526064016107a1565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561145c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190612d52565b905061148b816123ba565b60006114978447612df9565b9050600081116114e95760405162461bcd60e51b815260206004820152601e60248201527f4e6f204554482072656365697665642066726f6d20484f4e4f2073776170000060448201526064016107a1565b8581116115085760405162461bcd60e51b81526004016107a190612da1565b60006115148783612df9565b90506000611521826125fc565b90508681116115695760405162461bcd60e51b81526020600482015260146024820152735472616465206e6f742070726f66697461626c6560601b60448201526064016107a1565b60006115758883612df9565b90506000811561167a5761158882611866565b9050600081116115e95760405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f20636f6e76657274207773744554482070726f666974206044820152650e8de408aa8960d31b60648201526084016107a1565b6006546115ff906001600160a01b031682611d3e565b600654600160a01b900460ff161561167a57600660009054906101000a90046001600160a01b03166001600160a01b03166326c4e60d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561166157600080fd5b505af1158015611675573d6000803e3d6000fd5b505050505b611684338b611d3e565b7fccc6ba339fc3ebabc09404427e1539e839fae871f1170166dca5ae3a89db727960008a85858e426040516116be96959493929190612e0c565b60405180910390a1505050505050505050610d7c6001600080516020612f5183398151915255565b6116ee6117fc565b60405133904780156108fc02916000818181858888f19350505050158015610d7c573d6000803e3d6000fd5b6117226117fc565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6117556117fc565b6001600160a01b03811661177f57604051631e4fbdf760e01b8152600060048201526024016107a1565b610d7c81611f9f565b6040516370a0823160e01b815230600482015260009081906001600160a01b038416906370a0823190602401602060405180830381865afa1580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f59190612d52565b9392505050565b3361180561115c565b6001600160a01b031614610e445760405163118cdaa760e01b81523360048201526024016107a1565b600080516020612f5183398151915280546001190161186057604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60008160000361187857506000919050565b60095460405163095ea7b360e01b815247916001600160a01b03169063095ea7b3906118aa9083908790600401612d6b565b6020604051808303816000875af11580156118c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ed9190612d84565b6119315760405162461bcd60e51b81526020600482015260156024820152741ddcdd11551208185c1c1c9bdd994819985a5b1959605a1b60448201526064016107a1565b600954604051636f074d1f60e11b8152600481018590526000916001600160a01b03169063de0e9a3e906024016020604051808303816000875af115801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a19190612d52565b9050600081116119e95760405162461bcd60e51b81526020600482015260136024820152721cdd115512081d5b9ddc985c0819985a5b1959606a1b60448201526064016107a1565b60085460075460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611a1f929116908590600401612d6b565b6020604051808303816000875af1158015611a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a629190612d84565b611aa55760405162461bcd60e51b81526020600482015260146024820152731cdd11551208185c1c1c9bdd994819985a5b195960621b60448201526064016107a1565b600754604051630f7c084960e21b8152600160048201526000602482018190526044820184905260648201819052916001600160a01b031690633df02124906084016020604051808303816000875af1158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612d52565b905060008111611b705760405162461bcd60e51b815260206004820152601160248201527010dd5c9d99481cddd85c0819985a5b1959607a1b60448201526064016107a1565b80611b7b8447612df9565b1015611bc05760405162461bcd60e51b815260206004820152601460248201527308aa89040c4c2d8c2dcc6ca40dad2e6dac2e8c6d60631b60448201526064016107a1565b949350505050565b600360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611c1857600080fd5b505af1158015611c2c573d6000803e3d6000fd5b5050505050600042610bb8611c419190612e57565b6040805160a08101909152600354603c546004546002549495506000948493611c96936001600160a01b039182169362ffffff600160301b830481169491841693630100000090930416911660c08701612e6a565b60408051601f1981840301815291815290825230602083015281810185905260608201869052600060809092018290529054905163c04b8d5960e01b81529192506001600160a01b03169063c04b8d5990611cf5908490600401612ebc565b6020604051808303816000875af1158015611d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d389190612d52565b50505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d8b576040519150601f19603f3d011682016040523d82523d6000602084013e611d90565b606091505b50509050806106ec5760405162461bcd60e51b815260206004820152601460248201527322aa24102a3930b739b332b9103330b4b632b21760611b60448201526064016107a1565b6001600080516020612f5183398151915255565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611e7357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611e67600080516020612f31833981519152546001600160a01b031690565b6001600160a01b031614155b15610e445760405163703e46dd60e11b815260040160405180910390fd5b610d7c6117fc565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611ef3575060408051601f3d908101601f19168201909252611ef091810190612d52565b60015b611f1b57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016107a1565b600080516020612f318339815191528114611f4c57604051632a87526960e21b8152600481018290526024016107a1565b6106ec8383612839565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e445760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b61204361288f565b610d7c816128b4565b610e4461288f565b61205c61288f565b610e446128bc565b60025460015460405163095ea7b360e01b81526001600160a01b039092169163095ea7b39161209891849190600401612d6b565b6020604051808303816000875af11580156120b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120db9190612d84565b5060025460005460015460405163095ea7b360e01b81526001600160a01b039384169363095ea7b39361211393911691600401612d6b565b6020604051808303816000875af1158015612132573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121569190612d84565b5060055460005460015460405163095ea7b360e01b81526001600160a01b039384169363095ea7b39361218e93911691600401612d6b565b6020604051808303816000875af11580156121ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d19190612d84565b5060055460025460015460405163095ea7b360e01b81526001600160a01b039384169363095ea7b39361220993911691600401612d6b565b6020604051808303816000875af1158015612228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224c9190612d84565b5060085460075460015460405163095ea7b360e01b81526001600160a01b039384169363095ea7b39361228493911691600401612d6b565b6020604051808303816000875af11580156122a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c79190612d84565b5060085460095460015460405163095ea7b360e01b81526001600160a01b039384169363095ea7b3936122ff93911691600401612d6b565b6020604051808303816000875af115801561231e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123429190612d84565b5060095460015460405163095ea7b360e01b81526001600160a01b039092169163095ea7b39161237791849190600401612d6b565b6020604051808303816000875af1158015612396573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c9190612d84565b60006123c842610bb8612e57565b6040805160a08101909152600254603c54600454600354949550600094849361241d936001600160a01b039182169362ffffff6301000000830481169491841693600160301b90930416911660c08701612e6a565b60408051601f1981840301815291815290825230602083015281810185905260608201869052600060809092018290529054905163c04b8d5960e01b81529192506001600160a01b03169063c04b8d599061247c908490600401612ebc565b6020604051808303816000875af115801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf9190612d52565b506003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d9190612d52565b11156106ec576003546040516370a0823160e01b81523060048201526001600160a01b0390911690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015612583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a79190612d52565b6040518263ffffffff1660e01b81526004016125c591815260200190565b600060405180830381600087803b1580156125df57600080fd5b505af11580156125f3573d6000803e3d6000fd5b50505050505050565b60008160000361260e57506000919050565b60085460405163a1903eab60e01b8152600060048201819052916001600160a01b03169063a1903eab90859060240160206040518083038185885af115801561265b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126809190612d52565b9050600081116126c65760405162461bcd60e51b81526020600482015260116024820152701cdd115512081b5a5b9d0819985a5b1959607a1b60448201526064016107a1565b60085460095460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926126fc929116908590600401612d6b565b6020604051808303816000875af115801561271b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273f9190612d84565b6127825760405162461bcd60e51b81526020600482015260146024820152731cdd11551208185c1c1c9bdd994819985a5b195960621b60448201526064016107a1565b600954604051630ea598cb60e41b8152600481018390526000916001600160a01b03169063ea598cb0906024016020604051808303816000875af11580156127ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f29190612d52565b9050600081116117f55760405162461bcd60e51b81526020600482015260126024820152711ddcdd115512081ddc985c0819985a5b195960721b60448201526064016107a1565b612842826128c4565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612887576106ec8282612929565b610dc461299f565b6128976129be565b610e4457604051631afcd79f60e31b815260040160405180910390fd5b61175561288f565b611dd861288f565b806001600160a01b03163b6000036128fa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016107a1565b600080516020612f3183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516129469190612f14565b600060405180830381855af49150503d8060008114612981576040519150601f19603f3d011682016040523d82523d6000602084013e612986565b606091505b50915091506129968583836129d8565b95945050505050565b3415610e445760405163b398979f60e01b815260040160405180910390fd5b60006129c8612010565b54600160401b900460ff16919050565b6060826129ed576129e882612a34565b6117f5565b8151158015612a0457506001600160a01b0384163b155b15612a2d57604051639996b31560e01b81526001600160a01b03851660048201526024016107a1565b5092915050565b805115612a4357805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114612a7357600080fd5b919050565b600060208284031215612a8a57600080fd5b6117f582612a5c565b803562ffffff81168114612a7357600080fd5b60008060408385031215612ab957600080fd5b612ac283612a93565b9150612ad060208401612a93565b90509250929050565b600060208284031215612aeb57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612b1b57600080fd5b612b2483612a5c565b9150602083013567ffffffffffffffff80821115612b4157600080fd5b818501915085601f830112612b5557600080fd5b813581811115612b6757612b67612af2565b604051601f8201601f19908116603f01168101908382118183101715612b8f57612b8f612af2565b81604052828152886020848701011115612ba857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600060608486031215612bdf57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600080610100898b031215612c1357600080fd5b612c1c89612a5c565b9750612c2a60208a01612a5c565b9650612c3860408a01612a5c565b9550612c4660608a01612a5c565b9450612c5460808a01612a5c565b9350612c6260a08a01612a5c565b9250612c7060c08a01612a5c565b9150612c7e60e08a01612a5c565b90509295985092959890939650565b60005b83811015612ca8578181015183820152602001612c90565b50506000910152565b60008151808452612cc9816020860160208601612c8d565b601f01601f19169290920160200192915050565b6020815260006117f56020830184612cb1565b8015158114610d7c57600080fd5b600060208284031215612d1057600080fd5b81356117f581612cf0565b60008060408385031215612d2e57600080fd5b612d3783612a5c565b91506020830135612d4781612cf0565b809150509250929050565b600060208284031215612d6457600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215612d9657600080fd5b81516117f581612cf0565b60208082526022908201527f496e73756666696369656e742045544820746f20636f7665722067617320636f6040820152611cdd60f21b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561203557612035612de3565b60c0810160028810612e2e57634e487b7160e01b600052602160045260246000fd5b968152602081019590955260408501939093526060840191909152608083015260a09091015290565b8082018082111561203557612035612de3565b6bffffffffffffffffffffffff19606096871b811682526001600160e81b031960e896871b8116601484015294871b811660178301529290941b909216602b840152921b909116602e82015260420190565b602081526000825160a06020840152612ed860c0840182612cb1565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b60008251612f26818460208701612c8d565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220823591e3ed5ed03064dc0ff2ea5fbfda08982c373afa5494b4c4bdc90db3862a64736f6c63430008180033