0 txs
12 calls
constructor
No constructor.
functions
allowedSlippageInBps
viewfunction allowedSlippageInBps() view returns (uint256)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
isValidSignature
viewfunction isValidSignature(bytes32 orderDigest, bytes encodedOrder) view returns (bytes4)
mamoStrategyRegistry
viewfunction mamoStrategyRegistry() view returns (address)
metaMorphoVault
viewfunction metaMorphoVault() view returns (address)
mToken
viewfunction mToken() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
slippagePriceChecker
viewfunction slippagePriceChecker() view returns (address)
SPLIT_TOTAL
viewfunction SPLIT_TOTAL() view returns (uint256)
splitMToken
viewfunction splitMToken() view returns (uint256)
splitVault
viewfunction splitVault() view returns (uint256)
strategyTypeId
viewfunction strategyTypeId() view returns (uint256)
token
viewfunction token() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
VAULT_RELAYER
viewfunction VAULT_RELAYER() view returns (address)
approveCowSwap
nonpayablefunction approveCowSwap(address tokenAddress, uint256 amount)
deposit
nonpayablefunction deposit(uint256 amount)
depositIdleTokens
nonpayablefunction depositIdleTokens() returns (uint256)
getTotalBalance
nonpayablefunction getTotalBalance() returns (uint256)
initialize
nonpayablefunction initialize(tuple params)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, address to, uint256 amount)
recoverETH
nonpayablefunction recoverETH(address to)
setSlippage
nonpayablefunction setSlippage(uint256 _newSlippageInBps)
updatePosition
nonpayablefunction updatePosition(uint256 splitA, uint256 splitB)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(uint256 amount)
events
Deposit
event Deposit(address indexed asset, uint256 amount)
Initialized
event Initialized(uint64 version)
PositionUpdated
event PositionUpdated(uint256 splitA, uint256 splitB)
SlippageUpdated
event SlippageUpdated(uint256 oldSlippage, uint256 newSlippage)
TokenRecovered
event TokenRecovered(address indexed token, address indexed to, uint256 amount)
Upgraded
event Upgraded(address indexed implementation)
Withdraw
event Withdraw(address indexed asset, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0604052306080523480156012575f5ffd5b506080516130ad6100395f395f818161243801528181612461015261260201526130ad5ff3fe60806040526004361061017e575f3560e01c80636b8bd87c116100cd578063ad3cb1cc11610087578063c3b6f93911610062578063c3b6f93914610453578063f0fa55a914610472578063f83ebfec14610491578063fc0c546a146104b0575f5ffd5b8063ad3cb1cc146103d9578063b6b55f2514610416578063b6d3dd1214610435575f5ffd5b80636b8bd87c1461033e5780637051271114610353578063759bfedf1461037257806392b1d8ae146103915780639472afab146103a5578063a3b31fb8146103c4575f5ffd5b80632e1a7d4d11610138578063430155001161011357806343015500146102ed57806349c73b6f146103025780634f1ef2861461031757806352d1902d1461032a575f5ffd5b80632e1a7d4d1461027c5780633026b2731461029b5780633644e515146102ba575f5ffd5b806307c99208146101895780631171bda9146101b157806312b58349146101d2578063134dfcd8146101e65780631626ba7e146102055780632626f2941461023d575f5ffd5b3661018557005b5f5ffd5b348015610194575f5ffd5b5061019e60365481565b6040519081526020015b60405180910390f35b3480156101bc575f5ffd5b506101d06101cb366004612ba2565b6104cf565b005b3480156101dd575f5ffd5b5061019e61063e565b3480156101f1575f5ffd5b506101d0610200366004612be0565b610818565b348015610210575f5ffd5b5061022461021f366004612bfb565b610a05565b6040516001600160e01b031990911681526020016101a8565b348015610248575f5ffd5b5061026473c92e8bdf79f0507f65a392b0ab4667716bfe011081565b6040516001600160a01b0390911681526020016101a8565b348015610287575f5ffd5b506101d0610296366004612c72565b61111c565b3480156102a6575f5ffd5b506101d06102b5366004612c89565b611560565b3480156102c5575f5ffd5b5061019e7fc078f884a2676e1345748b1feace7b0abee5d00ecadb6e574dcdd109a63e894381565b3480156102f8575f5ffd5b5061019e60375481565b34801561030d575f5ffd5b5061019e61271081565b6101d0610325366004612d12565b611a89565b348015610335575f5ffd5b5061019e611aa8565b348015610349575f5ffd5b5061019e60385481565b34801561035e575f5ffd5b50603554610264906001600160a01b031681565b34801561037d575f5ffd5b506101d061038c366004612db9565b611ac3565b34801561039c575f5ffd5b5061019e611f09565b3480156103b0575f5ffd5b506101d06103bf366004612dd9565b61200f565b3480156103cf575f5ffd5b5061019e60015481565b3480156103e4575f5ffd5b50610409604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101a89190612e03565b348015610421575f5ffd5b506101d0610430366004612c72565b61216e565b348015610440575f5ffd5b505f54610264906001600160a01b031681565b34801561045e575f5ffd5b50603254610264906001600160a01b031681565b34801561047d575f5ffd5b506101d061048c366004612c72565b61227e565b34801561049c575f5ffd5b50603354610264906001600160a01b031681565b3480156104bb575f5ffd5b50603454610264906001600160a01b031681565b5f54604051630357df2f60e21b81523360048201523060248201526001600160a01b0390911690630d5f7cbc90604401602060405180830381865afa15801561051a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053e9190612e45565b6105635760405162461bcd60e51b815260040161055a90612e60565b60405180910390fd5b6001600160a01b0382166105b95760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f742073656e6420746f207a65726f20616464726573730000000000604482015260640161055a565b5f81116105d85760405162461bcd60e51b815260040161055a90612e8c565b6105ec6001600160a01b038416838361239c565b816001600160a01b0316836001600160a01b03167f879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f90968360405161063191815260200190565b60405180910390a3505050565b6033546040516370a0823160e01b81523060048201525f9182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610688573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ac9190612ec3565b90505f5f82116106bc575f610727565b6033546040516303d1689d60e11b8152600481018490526001600160a01b03909116906307a2d13a90602401602060405180830381865afa158015610703573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107279190612ec3565b6034546040516370a0823160e01b81523060048201529192506001600160a01b0316906370a0823190602401602060405180830381865afa15801561076e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107929190612ec3565b603254604051633af9e66960e01b81523060048201526001600160a01b0390911690633af9e669906024016020604051808303815f875af11580156107d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fd9190612ec3565b6108079083612eee565b6108119190612eee565b9250505090565b5f54604051630357df2f60e21b81523360048201523060248201526001600160a01b0390911690630d5f7cbc90604401602060405180830381865afa158015610863573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108879190612e45565b6108a35760405162461bcd60e51b815260040161055a90612e60565b6001600160a01b0381166108f95760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f742073656e6420746f207a65726f20616464726573730000000000604482015260640161055a565b47806109375760405162461bcd60e51b815260206004820152600d60248201526c456d7074792062616c616e636560981b604482015260640161055a565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610980576040519150601f19603f3d011682016040523d82523d5f602084013e610985565b606091505b50509050806109c85760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161055a565b6040518281526001600160a01b038416905f907f879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f909690602001610631565b5f80610a1383850185612f1f565b601f19810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a08220915260405161190160f01b81527fc078f884a2676e1345748b1feace7b0abee5d00ecadb6e574dcdd109a63e894360028201526022810191909152604290209091508514610ae85760405162461bcd60e51b815260206004820152602d60248201527f4f72646572206861736820646f6573206e6f74206d617463682074686520707260448201526c1bdd9a59195908191a59d95cdd609a1b606482015260840161055a565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581610100015114610b5c5760405162461bcd60e51b815260206004820152601a60248201527f4f72646572206d75737420626520612073656c6c206f72646572000000000000604482015260640161055a565b610b684261012c612eee565b8160a0015163ffffffff161015610be75760405162461bcd60e51b815260206004820152603d60248201527f4f72646572206578706972657320746f6f20736f6f6e202d206d75737420626560448201527f2076616c696420666f72206174206c656173742035206d696e75746573000000606482015260840161055a565b6035548151604051631a08793d60e31b81526001600160a01b03918216600482015291169063d043c9e890602401602060405180830381865afa158015610c30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612ec3565b610c5e9042612eee565b8160a0015163ffffffff161115610cc35760405162461bcd60e51b815260206004820152602360248201527f4f72646572206578706972657320746f6f2066617220696e207468652066757460448201526275726560e81b606482015260840161055a565b80610120015115610d345760405162461bcd60e51b815260206004820152603560248201527f4f72646572206d7573742062652066696c6c2d6f722d6b696c6c2c20706172746044820152741a585b08199a5b1b1cc81b9bdd08185b1b1bddd959605a1b606482015260840161055a565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981610140015114610db25760405162461bcd60e51b815260206004820152602160248201527f53656c6c20746f6b656e206d75737420626520616e20455243323020746f6b656044820152603760f91b606482015260840161055a565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981610160015114610e265760405162461bcd60e51b815260206004820181905260248201527f42757920746f6b656e206d75737420626520616e20455243323020746f6b656e604482015260640161055a565b60345481516001600160a01b03918216911603610e905760405162461bcd60e51b815260206004820152602260248201527f53656c6c20746f6b656e2063616e277420626520737472617465677920746f6b60448201526132b760f11b606482015260840161055a565b60345460208201516001600160a01b03908116911614610f025760405162461bcd60e51b815260206004820152602760248201527f42757920746f6b656e206d757374206d617463682074686520737472617465676044820152663c903a37b5b2b760c91b606482015260840161055a565b60e081015115610f545760405162461bcd60e51b815260206004820152601760248201527f46656520616d6f756e74206d757374206265207a65726f000000000000000000604482015260640161055a565b60408101516001600160a01b03163014610fc65760405162461bcd60e51b815260206004820152602d60248201527f4f72646572207265636569766572206d7573742062652074686973207374726160448201526c1d1959de4818dbdb9d1c9858dd609a1b606482015260840161055a565b60c0810151156110105760405162461bcd60e51b81526020600482015260156024820152744170702064617461206d757374206265207a65726f60581b604482015260640161055a565b603554606082015182516020840151608085015160385460405163aa81311960e01b815260048101959095526001600160a01b0393841660248601529183166044850152606484015260848301529091169063aa8131199060a401602060405180830381865afa158015611086573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110aa9190612e45565b6111095760405162461bcd60e51b815260206004820152602a60248201527f507269636520636865636b206661696c6564202d206f757470757420616d6f756044820152696e7420746f6f206c6f7760b01b606482015260840161055a565b50630b135d3f60e11b90505b9392505050565b5f54604051630357df2f60e21b81523360048201523060248201526001600160a01b0390911690630d5f7cbc90604401602060405180830381865afa158015611167573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118b9190612e45565b6111a75760405162461bcd60e51b815260040161055a90612e60565b5f81116111c65760405162461bcd60e51b815260040161055a90612e8c565b806111cf61063e565b116112425760405162461bcd60e51b815260206004820152603760248201527f5769746864726177616c20616d6f756e74206578636565647320617661696c6160448201527f626c652062616c616e636520696e207374726174656779000000000000000000606482015260840161055a565b6034546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611288573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ac9190612ec3565b90508181101561143d575f6112c18284612fdd565b90505f612710603654836112d59190612ff0565b6112df9190613007565b9050801561139a5760325460405163852a12e360e01b8152600481018390526001600160a01b039091169063852a12e3906024016020604051808303815f875af115801561132f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113539190612ec3565b1561139a5760405162461bcd60e51b81526020600482015260176024820152762330b4b632b2103a37903932b232b2b69036aa37b5b2b760491b604482015260640161055a565b5f612710603754846113ac9190612ff0565b6113b69190613007565b9050801561143957603354604051632d182be560e21b815260048101839052306024820181905260448201526001600160a01b039091169063b460af94906064016020604051808303815f875af1158015611413573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114379190612ec3565b505b5050505b6034546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015611483573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a79190612ec3565b10156115035760405162461bcd60e51b815260206004820152602560248201527f5769746864726177616c206661696c65643a20696e73756666696369656e742060448201526466756e647360d81b606482015260840161055a565b60345461151a906001600160a01b0316338461239c565b6034546040518381526001600160a01b03909116907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a25050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156115a55750825b90505f8267ffffffffffffffff1660011480156115c15750303b155b9050811580156115cf575080155b156115ed5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561161757845460ff60401b1916600160401b1785555b5f6116256020880188612be0565b6001600160a01b0316036116875760405162461bcd60e51b8152602060048201526024808201527f496e76616c6964206d616d6f53747261746567795265676973747279206164646044820152637265737360e01b606482015260840161055a565b5f6116986040880160208901612be0565b6001600160a01b0316036116ee5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206d616d6f4261636b656e6420616464726573730000000000604482015260640161055a565b5f6116ff6060880160408901612be0565b6001600160a01b03160361174e5760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206d546f6b656e206164647265737360501b604482015260640161055a565b5f61175f6080880160608901612be0565b6001600160a01b0316036117b55760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964206d6574614d6f7270686f5661756c74206164647265737300604482015260640161055a565b5f6117c660a0880160808901612be0565b6001600160a01b0316036118145760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b604482015260640161055a565b5f61182560c0880160a08901612be0565b6001600160a01b0316036118875760405162461bcd60e51b8152602060048201526024808201527f496e76616c696420536c6970706167655072696365436865636b6572206164646044820152637265737360e01b606482015260840161055a565b8561010001355f036118db5760405162461bcd60e51b815260206004820152601860248201527f53747261746567792074797065206964206e6f74207365740000000000000000604482015260640161055a565b6118ed60e087013560c0880135612eee565b6127101461194b5760405162461bcd60e51b815260206004820152602560248201527f53706c697420706172616d6574657273206d7573742061646420757020746f20604482015264031303030360dc1b606482015260840161055a565b61196661195b6020880188612be0565b876101000135612400565b6119766060870160408801612be0565b603280546001600160a01b0319166001600160a01b03929092169190911790556119a66080870160608801612be0565b603380546001600160a01b0319166001600160a01b03929092169190911790556119d660a0870160808801612be0565b603480546001600160a01b0319166001600160a01b0392909216919091179055611a0660c0870160a08801612be0565b603580546001600160a01b0319166001600160a01b039290921691909117905560c086013560365560e086013560375560646038558315611a8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b611a9161242d565b611a9a826124d3565b611aa4828261253b565b5050565b5f611ab16125f7565b505f5160206130585f395f51905f5290565b5f5f9054906101000a90046001600160a01b03166001600160a01b031663edb39a406040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b12573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b369190613026565b6001600160a01b0316336001600160a01b031614611b845760405162461bcd60e51b815260206004820152600b60248201526a139bdd08189858dad95b9960aa1b604482015260640161055a565b612710611b918284612eee565b14611bf25760405162461bcd60e51b815260206004820152602b60248201527f53706c697420706172616d6574657273206d7573742061646420757020746f2060448201526a14d413125517d513d5105360aa1b606482015260840161055a565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611c38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5c9190612ec3565b90508015611d175760325460405163db006a7560e01b8152600481018390526001600160a01b039091169063db006a75906024016020604051808303815f875af1158015611cac573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd09190612ec3565b15611d175760405162461bcd60e51b81526020600482015260176024820152762330b4b632b2103a37903932b232b2b69036aa37b5b2b760491b604482015260640161055a565b6033546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611d5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d819190612ec3565b90508015611e0457603354604051635d043b2960e11b815260048101839052306024820181905260448201526001600160a01b039091169063ba087652906064016020604051808303815f875af1158015611dde573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e029190612ec3565b505b6034546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611e4a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6e9190612ec3565b90505f8111611eb65760405162461bcd60e51b81526020600482015260146024820152734e6f7468696e6720746f20726562616c616e636560601b604482015260640161055a565b60368590556037849055611ec981612640565b60408051868152602081018690527f396804cc530be039a91bbe137a3dc0b0435d63b2d287fe495c78d822fb538d45910160405180910390a15050505050565b6034546040516370a0823160e01b81523060048201525f9182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611f53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190612ec3565b90505f8111611fbf5760405162461bcd60e51b8152602060048201526014602482015273139bc81d1bdad95b9cc81d1bc819195c1bdcda5d60621b604482015260640161055a565b611fc881612640565b6034546040518281526001600160a01b03909116907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2919050565b5f54604051630357df2f60e21b81523360048201523060248201526001600160a01b0390911690630d5f7cbc90604401602060405180830381865afa15801561205a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207e9190612e45565b61209a5760405162461bcd60e51b815260040161055a90612e60565b6035546040516316bfae7f60e31b81526001600160a01b0384811660048301529091169063b5fd73f890602401602060405180830381865afa1580156120e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121069190612e45565b6121465760405162461bcd60e51b8152602060048201526011602482015270151bdad95b881b9bdd08185b1b1bddd959607a1b604482015260640161055a565b611aa46001600160a01b03831673c92e8bdf79f0507f65a392b0ab4667716bfe0110836127e8565b5f54604051630357df2f60e21b81523360048201523060248201526001600160a01b0390911690630d5f7cbc90604401602060405180830381865afa1580156121b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121dd9190612e45565b6121f95760405162461bcd60e51b815260040161055a90612e60565b5f81116122185760405162461bcd60e51b815260040161055a90612e8c565b603454612230906001600160a01b0316333084612877565b61223981612640565b6034546040518281526001600160a01b03909116907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a250565b5f54604051630357df2f60e21b81523360048201523060248201526001600160a01b0390911690630d5f7cbc90604401602060405180830381865afa1580156122c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ed9190612e45565b6123095760405162461bcd60e51b815260040161055a90612e60565b61271081111561235b5760405162461bcd60e51b815260206004820152601860248201527f536c6970706167652065786365656473206d6178696d756d0000000000000000604482015260640161055a565b60385460408051918252602082018390527f07af09e2b23ebab5dd29fa2271d6ca4795031f308caf26ca605f4a719ffeed61910160405180910390a1603855565b6040516001600160a01b038381166024830152604482018390526123fb91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506128b0565b505050565b61240861291c565b5f80546001600160a01b0319166001600160a01b039390931692909217909155600155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806124b357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124a75f5160206130585f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156124d15760405163703e46dd60e11b815260040160405180910390fd5b565b5f546001600160a01b031633146125385760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79204d616d6f2053747261746567792052656769737472792063616e2060448201526318d85b1b60e21b606482015260840161055a565b50565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612595575060408051601f3d908101601f1916820190925261259291810190612ec3565b60015b6125bd57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161055a565b5f5160206130585f395f51905f5281146125ed57604051632a87526960e21b81526004810182905260240161055a565b6123fb8383612965565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146124d15760405163703e46dd60e11b815260040160405180910390fd5b5f612710603654836126529190612ff0565b61265c9190613007565b90505f612710603754846126709190612ff0565b61267a9190613007565b9050811561274d5760325460345461269f916001600160a01b039182169116846127e8565b60325460405163140e25ad60e31b8152600481018490526001600160a01b039091169063a0712d68906024016020604051808303815f875af11580156126e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270b9190612ec3565b1561274d5760405162461bcd60e51b815260206004820152601260248201527113551bdad95b881b5a5b9d0819985a5b195960721b604482015260640161055a565b80156123fb57603354603454612770916001600160a01b039182169116836127e8565b603354604051636e553f6560e01b8152600481018390523060248201526001600160a01b0390911690636e553f65906044016020604051808303815f875af11580156127be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e29190612ec3565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261283984826129ba565b6127e2576040516001600160a01b0384811660248301525f604483015261286d91869182169063095ea7b3906064016123c9565b6127e284826128b0565b6040516001600160a01b0384811660248301528381166044830152606482018390526127e29186918216906323b872dd906084016123c9565b5f5f60205f8451602086015f885af1806128cf576040513d5f823e3d81fd5b50505f513d915081156128e65780600114156128f3565b6001600160a01b0384163b155b156127e257604051635274afe760e01b81526001600160a01b038516600482015260240161055a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166124d157604051631afcd79f60e31b815260040160405180910390fd5b61296e82612a05565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156129b2576123fb8282612a68565b611aa4612ada565b5f5f5f5f60205f8651602088015f8a5af192503d91505f5190508280156129f9575081156129eb57806001146129f9565b5f866001600160a01b03163b115b93505050505b92915050565b806001600160a01b03163b5f03612a3a57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161055a565b5f5160206130585f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b031684604051612a849190613041565b5f60405180830381855af49150503d805f8114612abc576040519150601f19603f3d011682016040523d82523d5f602084013e612ac1565b606091505b5091509150612ad1858383612af9565b95945050505050565b34156124d15760405163b398979f60e01b815260040160405180910390fd5b606082612b0e57612b0982612b55565b611115565b8151158015612b2557506001600160a01b0384163b155b15612b4e57604051639996b31560e01b81526001600160a01b038516600482015260240161055a565b5080611115565b805115612b655780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6001600160a01b0381168114612538575f5ffd5b8035612b9d81612b7e565b919050565b5f5f5f60608486031215612bb4575f5ffd5b8335612bbf81612b7e565b92506020840135612bcf81612b7e565b929592945050506040919091013590565b5f60208284031215612bf0575f5ffd5b813561111581612b7e565b5f5f5f60408486031215612c0d575f5ffd5b83359250602084013567ffffffffffffffff811115612c2a575f5ffd5b8401601f81018613612c3a575f5ffd5b803567ffffffffffffffff811115612c50575f5ffd5b866020828401011115612c61575f5ffd5b939660209190910195509293505050565b5f60208284031215612c82575f5ffd5b5035919050565b5f610120828403128015612c9b575f5ffd5b509092915050565b634e487b7160e01b5f52604160045260245ffd5b604051610180810167ffffffffffffffff81118282101715612cdb57612cdb612ca3565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d0a57612d0a612ca3565b604052919050565b5f5f60408385031215612d23575f5ffd5b8235612d2e81612b7e565b9150602083013567ffffffffffffffff811115612d49575f5ffd5b8301601f81018513612d59575f5ffd5b803567ffffffffffffffff811115612d7357612d73612ca3565b612d86601f8201601f1916602001612ce1565b818152866020838501011115612d9a575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f60408385031215612dca575f5ffd5b50508035926020909101359150565b5f5f60408385031215612dea575f5ffd5b8235612df581612b7e565b946020939093013593505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8015158114612538575f5ffd5b5f60208284031215612e55575f5ffd5b815161111581612e38565b6020808252601290820152712737ba1039ba3930ba32b3bc9037bbb732b960711b604082015260600190565b6020808252601d908201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604082015260600190565b5f60208284031215612ed3575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156129ff576129ff612eda565b803563ffffffff81168114612b9d575f5ffd5b8035612b9d81612e38565b5f610180828403128015612f31575f5ffd5b50612f3a612cb7565b612f4383612b92565b8152612f5160208401612b92565b6020820152612f6260408401612b92565b60408201526060838101359082015260808084013590820152612f8760a08401612f01565b60a082015260c0838101359082015260e080840135908201526101008084013590820152612fb86101208401612f14565b6101208201526101408381013590820152610160928301359281019290925250919050565b818103818111156129ff576129ff612eda565b80820281158282048414176129ff576129ff612eda565b5f8261302157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613036575f5ffd5b815161111581612b7e565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122064b0e10bb80f4bd347bb4070493099b1285f08d2ba558ed193f65e48146421eb64736f6c634300081c0033