0 txs
2k calls
constructor
constructor(address _nftTracker, (address poolLogic, address collateralAsset, address debtAsset, uint128 snxLiquidityPoolId)[] _whitelisteddHedgeVaults, address _snxV3Core, (((uint8 dayOfWeek, uint8 hour) start, (uint8 dayOfWeek, uint8 hour) end) delegationWindow, ((uint8 dayOfWeek, uint8 hour) start, (uint8 dayOfWeek, uint8 hour) end) undelegationWindow) _windows, (uint256 usdValue, uint256 percent) _withdrawalLimit)
functions
calculateWithdrawalLimit
viewfunction calculateWithdrawalLimit(uint256 _totalCollateralD18, address _collateralType, address _poolManagerLogic) view returns (uint256 limitD18)
convert32toAddress
purefunction convert32toAddress(bytes32 data) pure returns (address o)
dHedgeVaultsWhitelist
viewfunction dHedgeVaultsWhitelist(address) view returns (address poolLogic, address collateralAsset, address debtAsset, uint128 snxLiquidityPoolId)
getAccountNftTokenId
viewfunction getAccountNftTokenId(address _poolLogic, address _to) view returns (uint128 tokenId)
getArrayIndex
purefunction getArrayIndex(bytes data, uint8 inputNum, uint8 arrayIndex) pure returns (bytes32)
getArrayLast
purefunction getArrayLast(bytes data, uint8 inputNum) pure returns (bytes32)
getArrayLength
purefunction getArrayLength(bytes data, uint8 inputNum) pure returns (uint256)
getBytes
purefunction getBytes(bytes data, uint8 inputNum, uint256 offset) pure returns (bytes)
getInput
purefunction getInput(bytes data, uint8 inputNum) pure returns (bytes32)
getMethod
purefunction getMethod(bytes data) pure returns (bytes4)
getParams
purefunction getParams(bytes data) pure returns (bytes)
isTxTrackingGuard
viewfunction isTxTrackingGuard() view returns (bool)
isVaultWhitelisted
viewfunction isVaultWhitelisted(address _wanted) view returns (bool)
MAX_ACCOUNT_LIMIT
viewfunction MAX_ACCOUNT_LIMIT() view returns (uint256)
nftTracker
viewfunction nftTracker() view returns (address)
read32
purefunction read32(bytes data, uint256 offset, uint256 length) pure returns (bytes32 o)
read4left
purefunction read4left(bytes data, uint256 offset) pure returns (bytes4 o)
verifyERC721
purefunction verifyERC721(address, address _from, uint256, bytes) pure returns (bool verified)
windows
viewfunction windows() view returns (tuple delegationWindow, tuple undelegationWindow)
withdrawalLimit
viewfunction withdrawalLimit() view returns (uint256 usdValue, uint256 percent)
afterTxGuard
nonpayablefunction afterTxGuard(address _poolManagerLogic, address _to, bytes _data)
txGuard
nonpayablefunction txGuard(address _poolManagerLogic, address _to, bytes _data) returns (uint16 txType, bool isPublic)
events
AddLiquidity
event AddLiquidity(address poolLogic, address pair, bytes params, uint256 time)
AddLiquiditySingle
event AddLiquiditySingle(address fundAddress, address asset, address liquidityPool, uint256 amount, uint256 time)
Claim
event Claim(address poolLogic, address stakingContract, uint256 time)
ExchangeFrom
event ExchangeFrom(address fundAddress, address sourceAsset, uint256 sourceAmount, address dstAsset, uint256 time)
ExchangeTo
event ExchangeTo(address fundAddress, address sourceAsset, address dstAsset, uint256 dstAmount, uint256 time)
RemoveLiquidity
event RemoveLiquidity(address poolLogic, address pair, bytes params, uint256 time)
RemoveLiquiditySingle
event RemoveLiquiditySingle(address fundAddress, address asset, address liquidityPool, uint256 amount, uint256 time)
SonneBorrowEvent
event SonneBorrowEvent(address indexed fundAddress, address asset, address cToken, uint256 amount, uint256 time)
SonneEnterMarkets
event SonneEnterMarkets(address indexed poolLogic, address[] cTokens, uint256 time)
SonneExitMarket
event SonneExitMarket(address indexed poolLogic, address cToken, uint256 time)
SonneMintEvent
event SonneMintEvent(address indexed fundAddress, address asset, address cToken, uint256 amount, uint256 time)
SonneRedeemEvent
event SonneRedeemEvent(address indexed fundAddress, address asset, address cToken, uint256 amount, uint256 time)
SonneRedeemUnderlyingEvent
event SonneRedeemUnderlyingEvent(address indexed fundAddress, address asset, address cToken, uint256 amount, uint256 time)
SonneRepayEvent
event SonneRepayEvent(address indexed fundAddress, address asset, address cToken, uint256 amount, uint256 time)
Stake
event Stake(address poolLogic, address stakingToken, address to, uint256 amount, uint256 time)
SynthetixV3Event
event SynthetixV3Event(address poolLogic, uint256 txType)
SynthRedeem
event SynthRedeem(address poolAddress, address[] synthProxies)
Unstake
event Unstake(address poolLogic, address stakingToken, address to, uint256 amount, uint256 time)
errors
No errors.
creation bytecode
0x60a06040526007805460ff191660011790553480156200001e57600080fd5b5060405162003e6f38038062003e6f833981016040819052620000419162000914565b6001600160a01b038516620000735760405162461bcd60e51b81526004016200006a9062000cb4565b60405180910390fd5b6001600160a01b0383166200009c5760405162461bcd60e51b81526004016200006a9062000ce0565b846001600160a01b03166080816001600160a01b031660601b815250506000856001600160a01b0316634219dc406040518163ffffffff1660e01b815260040160206040518083038186803b158015620000f557600080fd5b505afa1580156200010a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001309190620008f0565b905060005b85518110156200020f5760008682815181106200014e57fe5b602002602001015190506200017e868483600001518460200151856040015186606001516200032560201b60201c565b80516001600160a01b0390811660009081526020818152604091829020845181546001600160a01b03199081169186169190911782559185015160018083018054851692871692909217909155928501516002820180549093169416939093179055606090920151600390910180546001600160801b0319166001600160801b039092169190911790550162000135565b50604051632015be8d60e21b8152736670c5750d2baa33870f422fe1da8bff7277502790638056fa34906200024990869060040162000d42565b60006040518083038186803b1580156200026257600080fd5b505af415801562000277573d6000803e3d6000fd5b50508451805180516001805460209384015160ff90811661010090810261ff001995831660ff19948516178616179093559484015180516002805492870151881685029188169284169290921785161790559883015180518051600380549287015188168502918816928d1692909217851617905583015180516004805492860151871690930295169916989098171691909117909555505081516005555001516006555062000db5915050565b6001600160a01b03841615801590620003bb5750604051635b16ebb760e01b81526001600160a01b03861690635b16ebb7906200036790879060040162000c11565b60206040518083038186803b1580156200038057600080fd5b505afa15801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb919062000b0e565b620003da5760405162461bcd60e51b81526004016200006a9062000c51565b6001600160a01b0383161580159062000470575060405163cc435bf360e01b81526001600160a01b0386169063cc435bf3906200041c90869060040162000c11565b60206040518083038186803b1580156200043557600080fd5b505afa1580156200044a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000470919062000b0e565b8015620004fc5750604051636e059fa960e11b81526001600160a01b0387169063dc0b3f5290620004a690869060040162000c11565b60e06040518083038186803b158015620004bf57600080fd5b505afa158015620004d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fa919062000b2b565b515b6200051b5760405162461bcd60e51b81526004016200006a9062000c7d565b6001600160a01b03821615801590620005b1575060405163cc435bf360e01b81526001600160a01b0386169063cc435bf3906200055d90859060040162000c11565b60206040518083038186803b1580156200057657600080fd5b505afa1580156200058b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b1919062000b0e565b620005d05760405162461bcd60e51b81526004016200006a9062000c25565b6000866001600160a01b0316633b390b576040518163ffffffff1660e01b815260040160206040518083038186803b1580156200060c57600080fd5b505afa15801562000621573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000647919062000bb9565b90506000876001600160a01b031663487416266040518163ffffffff1660e01b815260040160006040518083038186803b1580156200068557600080fd5b505afa1580156200069a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620006c4919081019062000a76565b90506001600160801b038381169083161480620007235760005b82518110156200072157828181518110620006f557fe5b6020026020010151856001600160801b0316141562000718576001915062000721565b600101620006de565b505b80620007435760405162461bcd60e51b81526004016200006a9062000d0b565b505050505050505050565b80516001600160a01b03811681146200076657600080fd5b919050565b805180151581146200076657600080fd5b6000604082840312156200078e578081fd5b604080519081016001600160401b0381118282101715620007ab57fe5b604052905080620007bc83620008de565b8152620007cc60208401620008de565b60208201525092915050565b60006101008284031215620007eb578081fd5b604080519081016001600160401b03811182821017156200080857fe5b6040529050806200081a848462000874565b8152620007cc846080850162000874565b6000604082840312156200083d578081fd5b604080519081016001600160401b03811182821017156200085a57fe5b604052825181526020928301519281019290925250919050565b60006080828403121562000886578081fd5b604080519081016001600160401b0381118282101715620008a357fe5b604052905080620008b584846200077c565b8152620007cc84604085016200077c565b80516001600160801b03811681146200076657600080fd5b805160ff811681146200076657600080fd5b60006020828403121562000902578081fd5b6200090d826200074e565b9392505050565b60008060008060006101a086880312156200092d578081fd5b62000938866200074e565b602087810151919650906001600160401b038082111562000957578384fd5b818901915089601f8301126200096b578384fd5b8151620009826200097c8262000d97565b62000d73565b8181528481019084860160808402860187018e1015620009a0578788fd5b8795505b8386101562000a2f576080818f031215620009bd578788fd5b60408051608081018181108882111715620009d457fe5b8252620009e1836200074e565b8152620009f08984016200074e565b8982015262000a018284016200074e565b8282015262000a1360608401620008c6565b60608201528452506001959095019491860191608001620009a4565b5080995050505050505062000a47604087016200074e565b925062000a588760608801620007d8565b915062000a6a8761016088016200082b565b90509295509295909350565b6000602080838503121562000a89578182fd5b82516001600160401b0381111562000a9f578283fd5b8301601f8101851362000ab0578283fd5b805162000ac16200097c8262000d97565b818152838101908385018584028501860189101562000ade578687fd5b8694505b8385101562000b0257805183526001949094019391850191850162000ae2565b50979650505050505050565b60006020828403121562000b20578081fd5b6200090d826200076b565b600060e0828403121562000b3d578081fd5b60405160e081016001600160401b038111828210171562000b5a57fe5b60405262000b68836200076b565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015262000ba060a084016200074e565b60a082015260c083015160c08201528091505092915050565b60006020828403121562000bcb578081fd5b6200090d82620008c6565b805160ff908116835260209182015116910152565b62000bf882825162000bd6565b602081015162000c0c604084018262000bd6565b505050565b6001600160a01b0391909116815260200190565b6020808252601290820152711a5b9d985b1a59081919589d08185cdcd95d60721b604082015260600190565b602080825260129082015271696e76616c696420706f6f6c206c6f67696360701b604082015260600190565b60208082526018908201527f696e76616c696420636f6c6c61746572616c2061737365740000000000000000604082015260600190565b60208082526012908201527134b73b30b634b21037333a2a3930b1b5b2b960711b604082015260600190565b602080825260119082015270696e76616c696420736e785633436f726560781b604082015260600190565b6020808252601d908201527f696e76616c696420736e78206c697175696469747920706f6f6c206964000000604082015260600190565b60006101008201905062000d5882845162000beb565b602083015162000d6c608084018262000beb565b5092915050565b6040518181016001600160401b038111828210171562000d8f57fe5b604052919050565b60006001600160401b0382111562000dab57fe5b5060209081020190565b60805160601c61308d62000de26000398061066452806107b15280610a0e52806122e4525061308d6000f3fe608060405234801561001057600080fd5b50600436106101125760003560e01c806309ff5c7d146101175780630d75dfe6146101405780631053f952146101605780631eba3077146101805780632713f36e146101a0578063293d8063146101b657806341dc16c3146101d65780634c282e38146101e957806352dac656146102095780636179309d1461021157806368901513146102325780637bf98119146102455780637ddfe78d1461024d57806382f86acc14610263578063998546e314610276578063b203748014610289578063b84f1d631461029c578063c3c6279f146102a4578063db896b57146102b7578063e7a1b394146102ca578063f66c9dd2146102dd578063f761dea0146102f2575b600080fd5b61012a610125366004612790565b610315565b6040516101379190612b49565b60405180910390f35b61015361014e366004612560565b6103a8565b6040516101379190612b3e565b61017361016e3660046127db565b6103e6565b6040516101379190612b7e565b61019361018e3660046126b9565b610480565b6040516101379190612a8e565b6101a8610487565b604051610137929190612f0b565b6101c96101c4366004612703565b61051f565b6040516101379190612b69565b61012a6101e436600461282f565b610581565b6101fc6101f73660046124c9565b61065f565b6040516101379190612f5a565b6101936107af565b61022461021f366004612501565b6107d3565b604051610137929190612f90565b6101736102403660046126d1565b611503565b61015361151e565b610255611527565b604051610137929190612fa6565b61012a610271366004612790565b611530565b61012a610284366004612790565b611547565b610153610297366004612491565b611570565b61012a6115ba565b6101c96102b23660046126d1565b6115bf565b61012a6102c5366004612745565b6115cc565b61012a6102d83660046129dc565b61164b565b6102f06102eb366004612501565b611837565b005b610305610300366004612491565b611b24565b6040516101379493929190612aa2565b60008061032d848460200260040160ff1660206115cc565b90506000610340856004840160206115cc565b905080610389576040805162461bcd60e51b8152602060048201526012602482015271696e707574206973206e6f7420617272617960701b604482015290519081900360640190fd5b61039d8560208084028501600401906115cc565b925050505b92915050565b60006001600160a01b038516156103da5760405162461bcd60e51b81526004016103d190612d83565b60405180910390fd5b50600195945050505050565b60606014821061042e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081bd9999cd95d60921b604482015290519081900360640190fd5b816020029150600061044d85848660200260040160ff160160206115cc565b905060006104628685840160040160206115cc565b90506104748660248487010183611b64565b925050505b9392505050565b805b919050565b604080516080808201835260015460ff8082168486019081526101009283900482166060808701919091529085528551808701875260025480841682528490048316602082810191909152808701919091528651948501875260035480841686890190815290859004841692860192909252908452855180870190965260045480831687529290920416848201528101929092529082565b60008160040183511015610578576040805162461bcd60e51b815260206004820152601b60248201527a52656164696e67206279746573206f7574206f6620626f756e647360281b604482015290519081900360640190fd5b50016020015190565b600080610599858560200260040160ff1660206115cc565b905060006105ac866004840160206115cc565b9050806105f5576040805162461bcd60e51b8152602060048201526012602482015271696e707574206973206e6f7420617272617960701b604482015290519081900360640190fd5b60ff84168111610645576040805162461bcd60e51b815260206004820152601660248201527534b73b30b634b21030b93930bc903837b9b4ba34b7b760511b604482015290519081900360640190fd5b610474866020600160ff88160181028501600401906115cc565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6b6aa4961070a856001600160a01b031663a148bf106040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cd57600080fd5b505afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070591906124ad565b611cb5565b866040518363ffffffff1660e01b8152600401610728929190612b52565b60006040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077c91908101906125f9565b90508051600114156107a8576107a58160008151811061079857fe5b6020026020010151611ce5565b91505b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000856001600160a01b03166339b81fd96040518163ffffffff1660e01b815260040160206040518083038186803b15801561081157600080fd5b505afa158015610825573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084991906124ad565b9050336001600160a01b038216146108735760405162461bcd60e51b81526004016103d190612e89565b61087c81611570565b6108985760405162461bcd60e51b81526004016103d190612e53565b604051634df48c7360e11b815286906001600160a01b03821690639be918e6906108c6908990600401612a8e565b60206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190612699565b6109325760405162461bcd60e51b81526004016103d190612c5e565b6001600160a01b038216600090815260208190526040812090610954876115bf565b9050600061096188611503565b90506001600160e01b03198216639dca362f60e01b148061099257506001600160e01b0319821663cadb09a560e01b145b15610b01576000896001600160a01b031663a148bf106040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d257600080fd5b505afa1580156109e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a91906124ad565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ab053684610a4483611cb5565b886040518363ffffffff1660e01b8152600401610a62929190612b52565b60206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab291906129c4565b15610acf5760405162461bcd60e51b81526004016103d190612cc6565b60255b97506000805160206130388339815191528689604051610af3929190612b08565b60405180910390a1506114f6565b6001600160e01b03198216631070052d60e31b1415610beb5760008082806020019051810190610b3191906128a4565b600187015491935091506001600160a01b0380831691161480610b63575060028501546001600160a01b038281169116145b610b7f5760405162461bcd60e51b81526004016103d190612de9565b816001600160801b0316610b93888d61065f565b6001600160801b031614610bb95760405162461bcd60e51b81526004016103d190612bd1565b60269850600080516020613038833981519152878a604051610bdc929190612b08565b60405180910390a150506114f6565b6001600160e01b031982166395997c5160e01b1415610d0757600081806020019051810190610c1a91906128a4565b60018601549092506001600160a01b03808416911614905080610c4c575060028401546001600160a01b038281169116145b610c685760405162461bcd60e51b81526004016103d190612de9565b604051634df48c7360e11b81526001600160a01b03861690639be918e690610c94908490600401612a8e565b60206040518083038186803b158015610cac57600080fd5b505afa158015610cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce49190612699565b610d005760405162461bcd60e51b81526004016103d190612e1e565b6027610ad2565b6001600160e01b03198216631ec14ca960e21b1415610d3757610d2d81868b8d87611d2d565b90975095506114f6565b6001600160e01b031982166337c5a81d60e21b1415610f2657600080600083806020019051810190610d6991906128cf565b925092509250826001600160801b0316610d83898e61065f565b6001600160801b031614610da95760405162461bcd60e51b81526004016103d190612bd1565b60038601546001600160801b03838116911614610dd85760405162461bcd60e51b81526004016103d190612eb1565b60018601546001600160a01b03828116911614610e075760405162461bcd60e51b81526004016103d190612de9565b6040805160808101825260015460ff8082168385019081526101009283900482166060850152835283518085018552600254808316825292909204166020828101919091528201529051631d1e781360e21b8152736670c5750d2baa33870f422fe1da8bff7277502791637479e04c91610e8691904290600401612f27565b60206040518083038186803b158015610e9e57600080fd5b505af4158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed69190612699565b610ef25760405162461bcd60e51b81526004016103d190612db6565b60295b9950600080516020613038833981519152888b604051610f16929190612b08565b60405180910390a15050506114f6565b6001600160e01b0319821663d3264e4360e01b14156111bf57600080600083806020019051810190610f5891906128cf565b925092509250826001600160801b0316610f72898e61065f565b6001600160801b031614610f985760405162461bcd60e51b81526004016103d190612bd1565b60038601546001600160801b03838116911614610fc75760405162461bcd60e51b81526004016103d190612eb1565b60018601546001600160a01b03828116911614610ff65760405162461bcd60e51b81526004016103d190612de9565b6040805160808101825260015460ff8082168385019081526101009283900482166060850152835283518085018552600254808316825292909204166020828101919091528201529051631d1e781360e21b8152736670c5750d2baa33870f422fe1da8bff7277502791637479e04c9161107591904290600401612f27565b60206040518083038186803b15801561108d57600080fd5b505af41580156110a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c59190612699565b8061119c57506040805160808101825260035460ff8082168385019081526101009283900482166060850152835283518085018552600480548084168352939093049091166020828101919091528301529151631d1e781360e21b8152736670c5750d2baa33870f422fe1da8bff7277502792637479e04c9261114c929091429101612f27565b60206040518083038186803b15801561116457600080fd5b505af4158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190612699565b6111b85760405162461bcd60e51b81526004016103d190612d24565b602a610ef5565b6001600160e01b0319821663460d204960e01b14806111ee57506001600160e01b031982166350f2f49b60e01b145b156114f6576000806000808480602001905181019061120d9190612915565b9350935093509350836001600160801b03166112298a8f61065f565b6001600160801b03161461124f5760405162461bcd60e51b81526004016103d190612bd1565b60038701546001600160801b0384811691161461127e5760405162461bcd60e51b81526004016103d190612eb1565b60018701546001600160a01b03838116911614806112ab575060028701546001600160a01b038381169116145b6112c75760405162461bcd60e51b81526004016103d190612de9565b6000816001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561130257600080fd5b505afa158015611316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133a91906124ad565b90508e6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561137557600080fd5b505afa158015611389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ad91906124ad565b6001600160a01b031663cc435bf3826040518263ffffffff1660e01b81526004016113d89190612a8e565b60206040518083038186803b1580156113f057600080fd5b505afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114289190612699565b156114c557604051634df48c7360e11b81526001600160a01b038a1690639be918e690611459908490600401612a8e565b60206040518083038186803b15801561147157600080fd5b505afa158015611485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a99190612699565b6114c55760405162461bcd60e51b81526004016103d190612ed9565b603e9b506000805160206130388339815191528a8d6040516114e8929190612b08565b60405180910390a150505050505b5050505050935093915050565b60606103a260048084510384611b649092919063ffffffff16565b60075460ff1681565b60055460065482565b6000610479838360200260040160ff1660206115cc565b60008061155f848460200260040160ff1660206115cc565b90506107a5846004830160206115cc565b60006001600160a01b0382166115985760405162461bcd60e51b81526004016103d190612cf8565b506001600160a01b039081166000818152602081905260409020549091161490565b600181565b60006103a282600061051f565b600081830184511015611624576040805162461bcd60e51b815260206004820152601b60248201527a52656164696e67206279746573206f7574206f6620626f756e647360281b604482015290519081900360640190fd5b826020018401519050816020038015611643576008810260020a820491505b509392505050565b60008061166a611663856001600160a01b0316612142565b86906121b8565b90506000836001600160a01b03166329c07fba866116a8670de0b6b3a76400006116a26005600101548861221c90919063ffffffff16565b906121b8565b6040518363ffffffff1660e01b81526004016116c5929190612b25565b60206040518083038186803b1580156116dd57600080fd5b505afa1580156116f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171591906129c4565b600554909150600090611729908390612275565b905061182c856001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561176757600080fd5b505afa15801561177b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179f91906124ad565b6001600160a01b031663b3596f07886040518263ffffffff1660e01b81526004016117ca9190612a8e565b60206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a91906129c4565b6116a283670de0b6b3a764000061221c565b979650505050505050565b6000836001600160a01b03166339b81fd96040518163ffffffff1660e01b815260040160206040518083038186803b15801561187257600080fd5b505afa158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118aa91906124ad565b9050336001600160a01b038216146118d45760405162461bcd60e51b81526004016103d190612e89565b6118dd81611570565b6118f95760405162461bcd60e51b81526004016103d190612e53565b6000611904836115bf565b90506001600160e01b0319811663cadb09a560e01b141561195957600061192a84611503565b80602001905181019061193d919061288a565b9050611953816001600160801b0316848761228c565b50611b1d565b6001600160e01b03198116639dca362f60e01b1415611b1d576000846001600160a01b031663a148bf106040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ad57600080fd5b505afa1580156119c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e591906124ad565b90506000816001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401611a159190612a8e565b60206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906129c4565b905060008111611a875760405162461bcd60e51b81526004016103d190612c04565b604051632f745c5960e01b81526000906001600160a01b03841690632f745c5990611abc908890600019870190600401612b25565b60206040518083038186803b158015611ad457600080fd5b505afa158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c91906129c4565b9050611b1981868961228c565b5050505b5050505050565b60006020819052908152604090208054600182015460028301546003909301546001600160a01b039283169391831692909116906001600160801b031684565b60608182601f011015611baf576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b828284011015611bf7576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b81830184511015611c43576040805162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015290519081900360640190fd5b606082158015611c625760405191506000825260208201604052611cac565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611c9b578051835260209283019201611c83565b5050858452601f01601f1916604052505b50949350505050565b600081604051602001611cc89190612a76565b604051602081830303815290604052805190602001209050919050565b6000600160801b8210611d295760405162461bcd60e51b8152600401808060200182810382526027815260200180612ff06027913960400191505060405180910390fd5b5090565b60008060008060008060008b806020019051810190611d4c919061296d565b94509450945094509450846001600160801b0316611d6a8c8c61065f565b6001600160801b031614611d905760405162461bcd60e51b81526004016103d190612bd1565b80670de0b6b3a764000014611db75760405162461bcd60e51b81526004016103d190612d55565b60038801546001600160801b03858116911614611de65760405162461bcd60e51b81526004016103d190612eb1565b60018801546001600160a01b03848116911614611e155760405162461bcd60e51b81526004016103d190612de9565b6040805160808101825260015460ff8082168385019081526101009283900482166060850152835283518085018552600254808316825292909204166020828101919091528201529051631d1e781360e21b8152736670c5750d2baa33870f422fe1da8bff7277502791637479e04c91611e9491904290600401612f27565b60206040518083038186803b158015611eac57600080fd5b505af4158015611ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee49190612699565b15611f1957602896506000805160206130388339815191528b88604051611f0c929190612b08565b60405180910390a1612133565b6040805160808101825260035460ff8082168385019081526101009283900482166060850152835283518085018552600480548084168352939093049091166020828101919091528301529151631d1e781360e21b8152736670c5750d2baa33870f422fe1da8bff7277502792637479e04c92611f9a929091429101612f27565b60206040518083038186803b158015611fb257600080fd5b505af4158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea9190612699565b1561211b576000808b6001600160a01b031663ef45148e88876040518363ffffffff1660e01b8152600401612020929190612f6e565b60606040518083038186803b15801561203857600080fd5b505afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190612a12565b50915091508084106120945760405162461bcd60e51b81526004016103d190612c2b565b60006120a08383612350565b905060006120ae8387612350565b90506120bb84888f61164b565b6120c583836123ad565b11156120e35760405162461bcd60e51b81526004016103d190612c91565b60399a50600199506000805160206130388339815191528f8c60405161210a929190612b08565b60405180910390a150505050612133565b60405162461bcd60e51b81526004016103d190612d24565b50505050509550959350505050565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561217d57600080fd5b505afa158015612191573d6000803e3d6000fd5b505050506040513d60208110156121a757600080fd5b505160120360ff16600a0a92915050565b600080821161220b576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b81838161221457fe5b049392505050565b60008261222b575060006103a2565b8282028284828161223857fe5b04146104795760405162461bcd60e51b81526004018080602001828103825260218152602001806130176021913960400191505060405180910390fd5b6000818310156122855781610479565b5090919050565b60006122ca826001600160a01b031663a148bf106040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cd57600080fd5b604051633b68defb60e11b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906376d1bdf690612322908590859088908a90600190600401612ad4565b600060405180830381600087803b15801561233c57600080fd5b505af1158015611b19573d6000803e3d6000fd5b6000828211156123a7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610479576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b600082601f830112612415578081fd5b81356001600160401b0381111561242857fe5b61243b601f8201601f1916602001612fb4565b81815284602083860101111561244f578283fd5b816020850160208301379081016020019190915292915050565b80516001600160801b038116811461048257600080fd5b803560ff8116811461048257600080fd5b6000602082840312156124a2578081fd5b813561047981612fd7565b6000602082840312156124be578081fd5b815161047981612fd7565b600080604083850312156124db578081fd5b82356124e681612fd7565b915060208301356124f681612fd7565b809150509250929050565b600080600060608486031215612515578081fd5b833561252081612fd7565b9250602084013561253081612fd7565b915060408401356001600160401b0381111561254a578182fd5b61255686828701612405565b9150509250925092565b600080600080600060808688031215612577578081fd5b853561258281612fd7565b9450602086013561259281612fd7565b93506040860135925060608601356001600160401b03808211156125b4578283fd5b818801915088601f8301126125c7578283fd5b8135818111156125d5578384fd5b8960208285010111156125e6578384fd5b9699959850939650602001949392505050565b6000602080838503121561260b578182fd5b82516001600160401b0380821115612621578384fd5b818501915085601f830112612634578384fd5b81518181111561264057fe5b8381029150612650848301612fb4565b8181528481019084860184860187018a101561266a578788fd5b8795505b8386101561268c57805183526001959095019491860191860161266e565b5098975050505050505050565b6000602082840312156126aa578081fd5b81518015158114610479578182fd5b6000602082840312156126ca578081fd5b5035919050565b6000602082840312156126e2578081fd5b81356001600160401b038111156126f7578182fd5b6107a584828501612405565b60008060408385031215612715578182fd5b82356001600160401b0381111561272a578283fd5b61273685828601612405565b95602094909401359450505050565b600080600060608486031215612759578283fd5b83356001600160401b0381111561276e578384fd5b61277a86828701612405565b9660208601359650604090950135949350505050565b600080604083850312156127a2578182fd5b82356001600160401b038111156127b7578283fd5b6127c385828601612405565b9250506127d260208401612480565b90509250929050565b6000806000606084860312156127ef578081fd5b83356001600160401b03811115612804578182fd5b61281086828701612405565b93505061281f60208501612480565b9150604084013590509250925092565b600080600060608486031215612843578081fd5b83356001600160401b03811115612858578182fd5b61286486828701612405565b93505061287360208501612480565b915061288160408501612480565b90509250925092565b60006020828403121561289b578081fd5b61047982612469565b600080604083850312156128b6578182fd5b6128bf83612469565b915060208301516124f681612fd7565b6000806000606084860312156128e3578081fd5b6128ec84612469565b92506128fa60208501612469565b9150604084015161290a81612fd7565b809150509250925092565b6000806000806080858703121561292a578182fd5b61293385612469565b935061294160208601612469565b9250604085015161295181612fd7565b606086015190925061296281612fd7565b939692955090935050565b600080600080600060a08688031215612984578283fd5b61298d86612469565b945061299b60208701612469565b935060408601516129ab81612fd7565b6060870151608090970151959894975095949392505050565b6000602082840312156129d5578081fd5b5051919050565b6000806000606084860312156129f0578081fd5b833592506020840135612a0281612fd7565b9150604084013561290a81612fd7565b600080600060608486031215612a26578081fd5b8351925060208401519150604084015190509250925092565b805160ff908116835260209182015116910152565b612a5f828251612a3f565b6020810151612a716040840182612a3f565b505050565b60609190911b6001600160601b031916815260140190565b6001600160a01b0391909116815260200190565b6001600160a01b0394851681529284166020840152921660408201526001600160801b03909116606082015260800190565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252608081019190915260a00190565b6001600160a01b0392909216825261ffff16602082015260400190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b9182526001600160a01b0316602082015260400190565b6001600160e01b031991909116815260200190565b6000602080835283518082850152825b81811015612baa57858101830151858201604001528201612b8e565b81811115612bbb5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601990820152781858d8dbdd5b9d081b9bdd081bdddb995908189e481c1bdbdb603a1b604082015260600190565b6020808252600d908201526c1b9bc81b5a5b9d1959081b999d609a1b604082015260600190565b6020808252601990820152781bdb9b1e481d5b99195b1959d85d1a5bdb88185b1b1bddd959603a1b604082015260600190565b602080825260199082015278195b98589b19481cde5b9d1a195d1a5e081d8cc8185cdcd95d603a1b604082015260600190565b6020808252601b908201527a1d5b99195b1959d85d1a5bdb881b1a5b5a5d08189c995858da1959602a1b604082015260600190565b6020808252601890820152771bdb9b1e481bdb99481858d8dbdd5b9d08185b1b1bddd95960421b604082015260600190565b602080825260129082015271696e76616c696420706f6f6c206c6f67696360701b604082015260600190565b6020808252601790820152766f75747369646520616c6c6f7765642077696e646f777360481b604082015260600190565b602080825260149082015273756e737570706f72746564206c6576657261676560601b604082015260600190565b60208082526019908201527863616e27742061636365707420666f726569676e204e46547360381b604082015260600190565b6020808252601990820152786f7574736964652064656c65676174696f6e2077696e646f7760381b604082015260600190565b6020808252601b908201527a756e737570706f7274656420636f6c6c61746572616c207479706560281b604082015260600190565b6020808252818101527f636f6c6c61746572616c206173736574206d75737420626520656e61626c6564604082015260600190565b6020808252601c908201527b191a195919d9481d985d5b1d081b9bdd081dda1a5d195b1a5cdd195960221b604082015260600190565b6020808252600e908201526d6e6f7420706f6f6c206c6f67696360901b604082015260600190565b6020808252600e908201526d1b1c081b9bdd08185b1b1bddd95960921b604082015260600190565b6020808252601890820152771d5b9cdd5c1c1bdc9d1959081c995dd85c9908185cdcd95d60421b604082015260600190565b6101008101612f1a8285612a54565b6104796080830184612a54565b600060a082019050612f3a828551612a3f565b6020840151612f4c6040840182612a3f565b508260808301529392505050565b6001600160801b0391909116815260200190565b6001600160801b039290921682526001600160a01b0316602082015260400190565b61ffff9290921682521515602082015260400190565b918252602082015260400190565b6040518181016001600160401b0381118282101715612fcf57fe5b604052919050565b6001600160a01b0381168114612fec57600080fd5b5056fe53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f778217dca87a87c07fc47f01c0ea0dc35c7e3b583046095a60e74ce9d9febb0d6fa26469706673582212209926933e0d3cb7abc822863252e74f68b3d51022c84d02abc00468411dcb98fa64736f6c6343000706003300000000000000000000000008a664ca241dd50b1dd5c9ebb97eca33ac6f744e00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000032c222a9a159782afd7529c87fa34b96ca72c696000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000017000000000000000000000000000000000000000000000a968163f0a57b4000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000c1e02884af4a283ca25ab63c45360d220d69da52000000000000000000000000c74ea762cf06c9151ce074e6a569a5945b6302e700000000000000000000000009d51516f38980035153a554c26df3c6f51a23c30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e404fa05a4298dc657ea826ddaeec8bd630e414a000000000000000000000000c74ea762cf06c9151ce074e6a569a5945b6302e700000000000000000000000009d51516f38980035153a554c26df3c6f51a23c30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d258da1a96c53676301b60000918a1406e367d3e000000000000000000000000c74ea762cf06c9151ce074e6a569a5945b6302e700000000000000000000000009d51516f38980035153a554c26df3c6f51a23c300000000000000000000000000000000000000000000000000000000000000010000000000000000000000005334d0184a11f210de806fcd5b556bf19981a7be000000000000000000000000c74ea762cf06c9151ce074e6a569a5945b6302e700000000000000000000000009d51516f38980035153a554c26df3c6f51a23c30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000cf51f81652779c07d08f1c7d0acaf66e5c3b7377000000000000000000000000c74ea762cf06c9151ce074e6a569a5945b6302e700000000000000000000000009d51516f38980035153a554c26df3c6f51a23c30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a1a0fcc73689549b244e9938d71b6638e18032d7000000000000000000000000c74ea762cf06c9151ce074e6a569a5945b6302e700000000000000000000000009d51516f38980035153a554c26df3c6f51a23c30000000000000000000000000000000000000000000000000000000000000001