0 txs
1 call
constructor
constructor(address taxCollector_, address weth_, address locker_, address uniswapV3Factory_, address positionManager_, address swapRouter_)
functions
defaultLockingPeriod
viewfunction defaultLockingPeriod() view returns (uint64)
generateSalt
viewfunction generateSalt(address deployer, string name, string symbol, uint256 supply) view returns (bytes32 salt, address token)
liquidityLocker
viewfunction liquidityLocker() view returns (address)
lpFeesCut
viewfunction lpFeesCut() view returns (uint16)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOperations
viewfunction pendingOperations(bytes32) view returns (uint256)
positionManager
viewfunction positionManager() view returns (address)
predictToken
viewfunction predictToken(address deployer, string name, string symbol, uint256 supply, bytes32 salt) view returns (address)
protocolCut
viewfunction protocolCut() view returns (uint8)
swapRouter
viewfunction swapRouter() view returns (address)
taxCollector
viewfunction taxCollector() view returns (address)
TIMELOCK_PERIOD
viewfunction TIMELOCK_PERIOD() view returns (uint256)
uniswapV3Factory
viewfunction uniswapV3Factory() view returns (address)
weth
viewfunction weth() view returns (address)
cancelOperation
nonpayablefunction cancelOperation(bytes32 operationId)
deployToken
payablefunction deployToken(string _name, string _symbol, uint256 _supply, int24 _initialTick, uint24 _fee, bytes32 _salt, address _deployer, address _recipient, uint256 _recipientAmount) payable returns (address token, uint256 tokenId)
executeUpdateDefaultLockingPeriod
nonpayablefunction executeUpdateDefaultLockingPeriod(bytes32 operationId, uint64 newPeriod)
executeUpdateLiquidityLocker
nonpayablefunction executeUpdateLiquidityLocker(bytes32 operationId, address newLocker)
executeUpdateLpFeesCut
nonpayablefunction executeUpdateLpFeesCut(bytes32 operationId, uint16 newCut)
initialSwapTokens
payablefunction initialSwapTokens(address token, uint24 _fee) payable
renounceOwnership
nonpayablefunction renounceOwnership()
rescueETH
nonpayablefunction rescueETH()
rescueToken
nonpayablefunction rescueToken(address tokenAddress, uint256 amount)
scheduleUpdateDefaultLockingPeriod
nonpayablefunction scheduleUpdateDefaultLockingPeriod(uint64 newPeriod) returns (bytes32 operationId)
scheduleUpdateLiquidityLocker
nonpayablefunction scheduleUpdateLiquidityLocker(address newLocker) returns (bytes32 operationId)
scheduleUpdateLpFeesCut
nonpayablefunction scheduleUpdateLpFeesCut(uint16 newCut) returns (bytes32 operationId)
setDebugMode
nonpayablefunction setDebugMode(bool _debugMode)
setPaused
nonpayablefunction setPaused(bool _paused)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateTaxCollector
nonpayablefunction updateTaxCollector(address newTaxCollector)
events
AddressUpdated
event AddressUpdated(string parameter, address oldValue, address newValue)
DebugAddress
event DebugAddress(string name, address addr)
DebugIntValues
event DebugIntValues(string name, int256 value)
DebugStep
event DebugStep(string step)
DebugValues
event DebugValues(string name, uint256 value)
OperationCancelled
event OperationCancelled(bytes32 indexed operationId)
OperationExecuted
event OperationExecuted(bytes32 indexed operationId)
OperationScheduled
event OperationScheduled(bytes32 indexed operationId, uint256 executionTime)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ParameterUpdated
event ParameterUpdated(string parameter, uint256 oldValue, uint256 newValue)
PauseToggled
event PauseToggled(bool paused)
TokenCreated
event TokenCreated(address indexed tokenAddress, uint256 lpNftId, address indexed deployer, string name, string symbol, uint256 supply, address indexed recipient, uint256 recipientAmount)
errors
ContractPaused
error ContractPaused()
InvalidAddress
error InvalidAddress()
InvalidFeeParameters
error InvalidFeeParameters()
InvalidSupply
error InvalidSupply()
InvalidTick
error InvalidTick()
OperationNotFound
error OperationNotFound()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PoolCreationFailed
error PoolCreationFailed(string reason)
PoolInitializationFailed
error PoolInitializationFailed(string reason)
PositionManagementFailed
error PositionManagementFailed(string reason)
SwapFailed
error SwapFailed(string reason)
TimelockNotElapsed
error TimelockNotElapsed()
TransferFailed
error TransferFailed()
Unauthorized
error Unauthorized()
creation bytecode
0x60803461024757601f6146f938819003918201601f19168301916001600160401b0383118484101761024c5780849260c0946040528339810103126102475761004781610262565b9061005460208201610262565b9061006160408201610262565b61006d60608301610262565b9061008660a061007f60808601610262565b9401610262565b9333156102315760008054336001600160a01b0319821681178355604051989290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360015490600160095560018060a01b03169081158015610220575b801561020f575b80156101fe575b80156101ed575b80156101dc575b6101cb577fff0000000000000000000000000000000000000000000000000000000000000016177d01f40000000000015180000000000000000000000000000000000000000017600155600380546001600160a01b03199081166001600160a01b03938416179091556002805482169383169390931790925560048054831693821693909317909255600580548216938316939093179092556006805490921692169190911790556008805460ff1916905561448290816102778239f35b63e6c4247b60e01b60005260046000fd5b506001600160a01b0387161561010d565b506001600160a01b03861615610106565b506001600160a01b038516156100ff565b506001600160a01b038416156100f8565b506001600160a01b038316156100f1565b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036102475756fe6080604052600436101561001257600080fd5b6000803560e01c80630754122e1461310d57806310f3577e14612de757806316c38b3c14612d795780631962d94714612cda57806320800a0014612c1c5780632913a09914612add5780632b66df5114612a5b57806333f3d628146129db5780633fc8cef3146129b25780634098544c1461283b5780634a5bcbf81461281d57806357aa0201146127f85780635b549182146127cf5780635c975abb146127a9578063680c635414612726578063715018a6146126cc578063791b98bc146126a35780638811e1911461266b5780638da5cb5b1461264457806394c49cac1461261a5780639759164a146125f1578063a36b3f931461259a578063aaf2985014610462578063bea1dcf814610439578063beadf957146103c6578063c31c9c071461039d578063c530b3491461034f578063d406d75114610325578063de04f42e14610301578063f2fde38b1461023e5763f8cd3b471461017257600080fd5b3461023b57602036600319011261023b576004356001600160401b038116808203610237576101aa906101a361392a565b15156132a2565b6040516101cf816101c160208201944290866132ee565b03601f19810183528261336e565b519020620151804201804211610223577fbc362f81ec202416fc27ced496e69ba2db4b08d8c0b47629d2cc58f7bf7935046020839285848397526007835281604082205550604051908152a2604051908152f35b634e487b7160e01b83526011600452602483fd5b8280fd5b80fd5b503461023b57602036600319011261023b5761025861325f565b61026061392a565b6001600160a01b031680156102b05781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60405162461bcd60e51b8152602060048201526024808201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b503461023b578060031936011261023b57602060ff60015460f01c16604051908152f35b503461023b578060031936011261023b5760206001600160401b0360015460a01c16604051908152f35b503461023b57602036600319011261023b5760043561ffff8116808203610237576103e86103869161037f61392a565b11156135ee565b6040516101cf816101c1602082019442908661363a565b503461023b578060031936011261023b576006546040516001600160a01b039091168152602090f35b503461023b57602036600319011261023b576004356103e361392a565b808252600760205260408220541561042a5780825260076020528160408120557fcf0f63b97f3387253cbc0bde884f975df77e39184dc3280c2c81be495f58eef48280a280f35b630f046c7760e41b8252600482fd5b503461023b578060031936011261023b576001546040516001600160a01b039091168152602090f35b5061012036600319011261023b576004356001600160401b03811161138b5761048f903690600401613275565b6024356001600160401b03811161139a576104ae903690600401613275565b9091606435928360020b8403612596576084359262ffffff841684036125925760c435956001600160a01b038716870361258e5760e435946001600160a01b038616860361131857610505600260095414156133db565b600260095560ff60065460a01c1661257f576001600160a01b038816156125705760ff60085416978861252e575b85156124f25783156124b4576024986101f462ffffff84161480156124a4575b8015612494575b61056390613427565b602060018060a01b03600454166040519b8c80926322afcccb60e01b825262ffffff881660048301525afa998a15611687578b9a612456575b50806123b3575b8960020b156123a4578960020b8960020b0760020b15801590612394575b8015612385575b6123765780612332575b604435156123235760443561010435116122de576001600160801b03604435116122a6576101043560443503906044358211611f8857612227575b60408051336020820190815260a4359282019290925261063081606081016101c1565b51902060405180610a998101106001600160401b03610a998301111761221357610a9961395482398061066d604435898b8d8b610a998701613697565b03908df5998a156116875760ff60085416806121c5575b6003546001600160a01b03908116908d16101561216b57808d9161212a575b8c61010435151580612118575b611fa5575b5050508b8a60020b12600014611f9c5760028a900b600160ff1b14611f88578960020b8c035b620d89e890818111611f5f578c8e6001831615611f4c578d6001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b169360028116611f08575b60048116611ec4575b60088116611e80575b60108116611e3c575b60208116611df8575b60408116611db4575b60808116611d70575b6101008116611d2c575b6102008116611ce8575b6104008116611ca4575b6108008116611c60575b6110008116611c1c575b6120008116611bd8575b6140008116611b94575b6180008116611b50575b620100008116611b0c575b620200008116611aca575b620400008116611a74575b6208000016611a1d575b819060020b136119f6575b61085f9263ffffffff81166119eb576107fe82915b6001600160a01b039260ff169060201c613907565b169160ff60085416806119ab575b60048054600354604051630b4c774160e11b81526001600160a01b03868116948201949094529083166024820181905262ffffff8e16604483015290979190921693919290602090889081906064820190565b0381875afa80156119a0578c978691611981575b506001600160a01b03168061192257509184602094926108d198946118e9575b60405163a167129560e01b81526001600160a01b0391821660048201529216602483015262ffffff9093166044820152958692839182906064820190565b03925af19092816118b8575b50610a25576108ea6134e3565b6308c379a014610979575b60ff6008541661091e575b6040516318ddbab760e21b81528061091a600482016135c6565b0390fd5b60008051602061442d833981519152608060405160208152602760208201527f506f6f6c206372656174696f6e206661696c6564207769746820756e6b6e6f77604082015266371032b93937b960c91b6060820152a1610900565b610981613501565b8061098c57506108f5565b61091a9060ff600854166109b4575b6040516318ddbab760e21b81529182916004830161359a565b60008051602061442d833981519152610a1d6040517502837b7b61031b932b0ba34b7b7103330b4b632b21d160551b6020820152610a116036828651610a008184840160208b01613577565b81010301601f19810183528261336e565b6040519182918261359a565b0390a161099b565b6001600160a01b038216918215611872578f9260ff6008541661182d575b5060ff600854166117ee575b6001600160a01b0316803b156102375760248392604051948593849263f637731d60e01b845260048401525af190816117db575b50610bb757610a906134e3565b6308c379a014610b21575b60ff60085416610ac0575b6040516321ca607f60e01b81528061091a600482016135c6565b60008051602061442d833981519152608060405160208152602d60208201527f506f6f6c20696e697469616c697a6174696f6e206661696c656420776974682060408201526c3ab735b737bbb71032b93937b960991b6060820152a1610aa6565b610b29613501565b80610b345750610a9b565b61091a9060ff60085416610b5c575b6040516321ca607f60e01b81529182916004830161359a565b60008051602061442d833981519152610baf6040517f506f6f6c20696e697469616c697a6174696f6e206661696c65643a20000000006020820152610a11603c828651610a008184840160208b01613577565b0390a1610b43565b60ff6008541661179d575b6003546040519b906001600160a01b03166001600160401b036101608e01908111908e1117611789576101608d016040528d60018060a01b03168d5260208d015262ffffff861660408d015260020b60608c01528160020b90050260020b60808a01528060a08a01528a60c08a01528a60e08a01528a6101008a0152306101208a0152426101408a01528a604460018060a01b036005541660208d60405193848092636eb1769f60e11b825230600483015285602483015260018060a01b03165afa801561138f578d928491611750575b508481106115ba575b505050505060ff60085416611563575b60055460408051634418b22b60e11b81528a516001600160a01b03908116600483015260208c015181166024830152918b015162ffffff16604482015260608b0151600290810b60648301526080808d015190910b608483015260a08c015160a483015260c08c015160c483015260e08c015160e48301526101008c01516101048301526101208c01518316610124830152610140909b015161014482015299918a916101649183918f91165af1908a809983829183956114ff575b50610e9957610d756134e3565b6308c379a014610e03575b60ff60085416610da5575b604051632defbf9560e21b81528061091a600482016135c6565b60008051602061442d833981519152608060405160208152602a60208201527f506f736974696f6e206d696e74696e67206661696c6564207769746820756e6b6040820152693737bbb71032b93937b960b11b6060820152a1610d8b565b610e0b613501565b80610e165750610d80565b61091a9060ff60085416610e3e575b604051632defbf9560e21b81529182916004830161359a565b60008051602061442d833981519152610e916040517f506f736974696f6e206d696e74696e67206661696c65643a20000000000000006020820152610a116039828651610a008184840160208b01613577565b0390a1610e25565b8a156114ba578c9360ff600854166113e9575b50505060ff6008541661139e575b6005546002546001600160a01b039182169116813b1561139a578a60648592836040519586948593632142170760e11b8552306004860152602485015260448401525af190811561138f578391611376575b505060ff6008541661132b575b60018060a01b0360025416600154916001600160401b03610f3f818560a01c1642613907565b1692823b15611327578b85809461ffff60849460405198899788966322614fd560e21b8852600488015260018060a01b03166024870152604486015260e01c1660648401525af1801561131c57611303575b505060ff60085416806112b2575b3461103e575b50506040975090610fcb610fd8939289519588875260a0602088015260a0870191613676565b9184830389860152613676565b60443560608301526101043560808301526001600160a01b03928316923392908616917fdae899a394233ea0635e48cfc12126491c770b57e2ea82e0aaf258e023584dee919081900390a4600160095582516001600160a01b0390921682526020820152f35b6110bb91602091611272575b6003546040519162ffffff916001600160a01b03166110688461333d565b835260018060a01b038c16848401521660408201523360608201523460808201528a60a08201528a60c082015260018060a01b036006541660405180809581946304e45aaf60e01b835260048301613485565b039134905af1899181611230575b5091604099610fcb92610fd8969594156000146111db57506001906110ec6134e3565b6308c379a014611159575b50611105575b919293610fa5565b60ff60085416156110fd5760008051602061442d83398151915260608b5160208152601e60208201527f53776170206661696c6564207769746820756e6b6e6f776e206572726f7200008d820152a16110fd565b611161613501565b908161116e575b506110f7565b60085490925060ff16611182575b80611168565b6111d260008051602061442d833981519152916111c7602d8f5180936c029bbb0b8103330b4b632b21d1609d1b6020830152610a008151809260208686019101613577565b8d519182918261359a565b0390a13861117c565b905060ff600854166111ee575b506110fd565b608060008051602061440d833981519152918c51908d8252600f8e8301526e14ddd85c08185b5bdd5b9d081bdd5d608a1b60608301526020820152a1386111e8565b91509392916020823d60201161126a575b8161124e6020938361336e565b8101031261126557905192939192909160406110c9565b600080fd5b3d9150611241565b60008051602061442d8339815191526060604051848152601485820152730457865637574696e6720746f6b656e20737761760641b6040820152a161104a565b60008051602061440d833981519152608060405160408152601a60408201527f52656d61696e696e672066756e647320666f7220746f6b656e730000000000006060820152346020820152a1610f9f565b8161130d9161336e565b611318578838610f91565b8880fd5b6040513d84823e3d90fd5b8480fd5b60008051602061442d833981519152606060405160208152601f60208201527f496e697469616c697a696e6720706f736974696f6e20696e206c6f636b6572006040820152a1610f19565b816113809161336e565b61138b578138610f0c565b5080fd5b6040513d85823e3d90fd5b8380fd5b60008051602061442d833981519152606060405160208152601a60208201527f5472616e7366657272696e67204e465420746f206c6f636b65720000000000006040820152a1610eba565b60008051602061440d833981519152608081948282809660008051602061442d833981519152606060405160208152600f60208201526e141bdcda5d1a5bdb881b5a5b9d1959608a1b6040820152a16001600160801b03604051916040835260096040840152684c697175696469747960b81b6060840152166020820152a1604051906040825260076040830152660416d6f756e74360cc1b60608301526020820152a160405190604082526007604083015266416d6f756e743160c81b60608301526020820152a1388080610eac565b60405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964204e465420746f6b656e2049442072656365697665640000006044820152606490fd5b9b50935050506080893d60801161155b575b8161151e6080938361336e565b8101031261155757885160208a0151996001600160801b038b168b036115535760606040820151910151919a90919338610d68565b8c80fd5b8a80fd5b3d9150611511565b60008051602061442d833981519152608060405160208152602360208201527f546f6b656e20617070726f76656420666f7220706f736974696f6e206d616e6160408201526233b2b960e91b6060820152a1610cac565b611692575b5060055460405163095ea7b360e01b81526001600160a01b03918216600482015260248101949094526020928492604492849291165af1908115611687578b91611658575b501561161457388a8a8280610c9c565b606460405162461bcd60e51b815260206004820152602060248201527f4661696c656420746f20617070726f766520746f6b656e207472616e736665726044820152fd5b61167a915060203d602011611680575b611672818361336e565b8101906137b9565b38611604565b503d611668565b6040513d8d823e3d90fd5b60405163095ea7b360e01b81526004810191909152602481018390529160209183916044918391906001600160a01b03165af1908115611745578c91611726575b50156116e1578a8a386115bf565b60405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f20726573657420746f6b656e20617070726f76616c00006044820152606490fd5b61173f915060203d60201161168057611672818361336e565b386116d3565b6040513d8e823e3d90fd5b92505091506020813d602011611781575b8161176e6020938361336e565b81010312611265578c918c915138610c93565b3d9150611761565b634e487b7160e01b8f52604160045260248ffd5b60008051602061442d833981519152606060405160208152601060208201526f141bdbdb081a5b9a5d1a585b1a5e995960821b6040820152a1610bc2565b8e919e6117e79161336e565b9c38610a83565b60008051602061442d8339815191526060604051602081526011602082015270125b9a5d1a585b1a5e9a5b99c81c1bdbdb607a1b6040820152a1610a4f565b60806000805160206143ed833981519152916040519060408252600f60408301526e141bdbdb0818dc99585d195908185d608a1b60608301526020820152a138610a43565b6040516318ddbab760e21b815260206004820152601a60248201527f4e756c6c20706f6f6c20616464726573732072657475726e65640000000000006044820152606490fd5b6118db91935060203d6020116118e2575b6118d3818361336e565b810190613466565b91386108dd565b503d6118c9565b60008051602061442d8339815191526060604051888152600d898201526c10dc99585d1a5b99c81c1bdbdb609a1b6040820152a1610893565b9650945050505050611935575b50610bc2565b60806000805160206143ed8339815191529160405190604082526016604083015275141bdbdb08185b1c9958591e48195e1a5cdd1cc8185d60521b60608301526020820152a13861192f565b61199a915060203d6020116118e2576118d3818361336e565b38610873565b6040513d87823e3d90fd5b60008051602061440d833981519152608060405160408152600c60408201526b39b8b93a283934b1b2ac1c9b60a11b6060820152866020820152a161080c565b6107fe6001916107e9565b50508015611a0957600019048c8e6107d4565b634e487b7160e01b8e52601260045260248efd5b505050806b048a170391f7dc42444e8fa28102046b048a170391f7dc42444e8fa21481151715611a60576b048a170391f7dc42444e8fa20260801c8c8e8d6107c9565b634e487b7160e01b8e52601160045260248efd5b939250505080156d2216e584f5fa1ea926041bedfe98808302839004141715611ab6576d2216e584f5fa1ea926041bedfe980260801c908d908f908e906107bf565b634e487b7160e01b8f52601160045260248ffd5b939250505080156e5d6af8dedb81196699c329225ee604808302839004141715611ab6578e8d8f926e5d6af8dedb81196699c329225ee6040260801c936107b4565b939250505080156f09aa508b5b7a84e1c677de54f3e99bc9808302839004141715611ab6578e8d8f926f09aa508b5b7a84e1c677de54f3e99bc90260801c936107a9565b939250505080156f31be135f97d08fd981231505542fcfa6808302839004141715611ab6578e8d8f926f31be135f97d08fd981231505542fcfa60260801c9361079e565b939250505080156f70d869a156d2a1b890bb3df62baf32f7808302839004141715611ab6578e8d8f926f70d869a156d2a1b890bb3df62baf32f70260801c93610794565b939250505080156fa9f746462d870fdf8a65dc1f90e061e5808302839004141715611ab6578e8d8f926fa9f746462d870fdf8a65dc1f90e061e50260801c9361078a565b939250505080156fd097f3bdfd2022b8845ad8f792aa5825808302839004141715611ab6578e8d8f926fd097f3bdfd2022b8845ad8f792aa58250260801c93610780565b939250505080156fe7159475a2c29b7443b29c7fa6e889d9808302839004141715611ab6578e8d8f926fe7159475a2c29b7443b29c7fa6e889d90260801c93610776565b939250505080156ff3392b0822b70005940c7a398e4b70f3808302839004141715611ab6578e8d8f926ff3392b0822b70005940c7a398e4b70f30260801c9361076c565b939250505080156ff987a7253ac413176f2b074cf7815e54808302839004141715611ab6578e8d8f926ff987a7253ac413176f2b074cf7815e540260801c93610762565b939250505080156ffcbe86c7900a88aedcffc83b479aa3a4808302839004141715611ab6578e8d8f926ffcbe86c7900a88aedcffc83b479aa3a40260801c93610758565b939250505080156ffe5dee046a99a2a811c461f1969c3053808302839004141715611ab6578e8d8f926ffe5dee046a99a2a811c461f1969c30530260801c9361074e565b939250505080156fff2ea16466c96a3843ec78b326b52861808302839004141715611ab6578e8d8f926fff2ea16466c96a3843ec78b326b528610260801c93610745565b939250505080156fff973b41fa98c081472e6896dfb254c0808302839004141715611ab6578e8d8f926fff973b41fa98c081472e6896dfb254c00260801c9361073c565b939250505080156fffcb9843d60f6159c9db58835c926644808302839004141715611ab6578e8d8f926fffcb9843d60f6159c9db58835c9266440260801c93610733565b939250505080156fffe5caca7e10e4e61c3624eaa0941cd0808302839004141715611ab6578e8d8f926fffe5caca7e10e4e61c3624eaa0941cd00260801c9361072a565b939250505080156ffff2e50f5f656932ef12357cf3c7fdcc808302839004141715611ab6578e8d8f926ffff2e50f5f656932ef12357cf3c7fdcc0260801c93610721565b939250505080156ffff97272373d413259a46990580e213a808302839004141715611ab6578e8d8f926ffff97272373d413259a46990580e213a0260801c93610718565b8d6001600160881b03600160801b61070d565b60405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606490fd5b634e487b7160e01b8c52601160045260248cfd5b8960020b6106db565b611fe660209184936120c5575b60405163a9059cbb60e01b81526001600160a01b038f16600482015261010435602482015293849283919082906044820190565b03926001600160a01b03165af190811561131c5761200a92916120a6575b506137d1565b60ff6008541661201d575b8b388c6106b5565b6000805160206143ed8339815191526080604051604081526009604082015268149958da5c1a595b9d60ba1b606082015260018060a01b038c166020820152a160008051602061440d8339815191526080604051604081526012604082015271105b5bdd5b9d081d1c985b9cd9995c9c995960721b6060820152610104356020820152a1612015565b6120bf915060203d60201161168057611672818361336e565b38612004565b60008051602061442d83398151915260806040518581526021868201527f5472616e7366657272696e6720726563697069656e7420616c6c6f636174696f6040820152603760f91b6060820152a1611fb2565b506001600160a01b038c1615156106b0565b60008051602061442d8339815191526060604051602081526013602082015272151bdad95b8818da1958dadcc81c185cdcd959606a1b6040820152a16106a3565b60405162461bcd60e51b815260206004820152602c60248201527f546f6b656e2061646472657373206d757374206265206c657373207468616e2060448201526b57455448206164647265737360a01b6064820152608490fd5b6000805160206143ed83398151915260808d60405190604082526011604083015270151bdad95b8819195c1b1bde595908185d607a1b606083015260018060a01b03166020820152a1610684565b634e487b7160e01b8d52604160045260248dfd5b60008051602061440d833981519152608060405160408152601060408201526f149958da5c1a595b9d08185b5bdd5b9d60821b6060820152610104356020820152a160008051602061440d8339815191526080604051604081526009604082015268131408185b5bdd5b9d60ba1b6060820152836020820152a161060d565b60405162461bcd60e51b815260206004820152601060248201526f537570706c7920746f6f206c6172676560801b6044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f526563697069656e7420616d6f756e74206578636565647320737570706c79006044820152606490fd5b6315ae672760e01b8b5260048bfd5b60008051602061442d8339815191526060604051602081526016602082015275151a58dac81d985b1a59185d1a5bdb881c185cdcd95960521b6040820152a16105d2565b6333a3bdff60e21b8b5260048bfd5b50620d89e88960020b136105c8565b50620d89e7198960020b126105c1565b634db7e85160e01b8b5260048bfd5b7f0f5d2cd60f752ff8ca00b1fc30ea4d78c233eca72c1ed58d0d62424e09f0951e608060405160408152600b60408201526a7469636b53706163696e6760a81b60608201528c60020b6020820152a17f0f5d2cd60f752ff8ca00b1fc30ea4d78c233eca72c1ed58d0d62424e09f0951e608060405160408152600b60408201526a696e697469616c5469636b60a81b60608201528b60020b6020820152a16105a3565b9099506020813d60201161248c575b816124726020938361336e565b8101031261155757518060020b810361155757988061059c565b3d9150612465565b5062ffffff83166127101461055a565b50610bb862ffffff841614610553565b60405162461bcd60e51b815260206004820152601660248201527553796d626f6c2063616e6e6f7420626520656d70747960501b6044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152734e616d652063616e6e6f7420626520656d70747960601b6044820152606490fd5b60008051602061442d833981519152606060405160208152601460208201527329ba30b93a34b733903232b83637bcaa37b5b2b760611b6040820152a1610533565b63e6c4247b60e01b8952600489fd5b63ab35696f60e01b8952600489fd5b8780fd5b8680fd5b8580fd5b503461023b57602036600319011261023b576125b461325f565b6125bc61392a565b6001600160a01b038116156125e2576040516101cf816101c16020820194429086613815565b63e6c4247b60e01b8252600482fd5b503461023b578060031936011261023b576002546040516001600160a01b039091168152602090f35b503461023b57602036600319011261023b5760406020916004358152600783522054604051908152f35b503461023b578060031936011261023b57546040516001600160a01b039091168152602090f35b503461023b57602036600319011261023b5760043580151580910361138b5761269261392a565b60ff80196008541691161760085580f35b503461023b578060031936011261023b576005546040516001600160a01b039091168152602090f35b503461023b578060031936011261023b576126e561392a565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461023b57608036600319011261023b5761274061325f565b906024356001600160401b03811161138b57612760903690600401613275565b91604435906001600160401b03821161023b5760406127948686866127883660048901613275565b9290916064359461385c565b82519182526001600160a01b03166020820152f35b503461023b578060031936011261023b57602060ff60065460a01c166040519015158152f35b503461023b578060031936011261023b576004546040516001600160a01b039091168152602090f35b503461023b578060031936011261023b57602061ffff60015460e01c16604051908152f35b503461023b578060031936011261023b576020604051620151808152f35b503461023b57604036600319011261023b576004356024356001600160a01b0381169081810361139a5761286d61392a565b81156129a35782845260076020526040842054801561299457421061298557828452600760205260408420546201517f19810190811161297157906101c16128c36128cd93604051928391602083019586613815565b519020831461338f565b6002547f7878dffb4ada647885186a00ea129964d140835f125808ba48b1f3974b5f818960a060405160608152600f60608201526e3634b8bab4b234ba3ca637b1b5b2b960891b6080820152600180831b0384166020820152846040820152a16001600160a01b031916176002558082526007602052604082208290557f1277662f4b42b8a4069e99fb5e41ce8919d3c621156090ac08fb11adbcec66f98280a280f35b634e487b7160e01b85526011600452602485fd5b63333bd2cb60e11b8452600484fd5b630f046c7760e41b8552600485fd5b63e6c4247b60e01b8452600484fd5b503461023b578060031936011261023b576003546040516001600160a01b039091168152602090f35b503461023b57604036600319011261023b576129f561325f565b6129fd61392a565b6001600160a01b031680156125e257815460405163a9059cbb60e01b81526001600160a01b0390911660048201526024803590820152906020908290604490829086905af1801561131c57612a589183916120a657506137d1565b80f35b503461023b5760a036600319011261023b57612a7561325f565b6024356001600160401b03811161023757612a94903690600401613275565b9092604435906001600160401b03821161023b576020612acb868686612abd3660048901613275565b9160843594606435946136c6565b6040516001600160a01b039091168152f35b503461023b57604036600319011261023b5760043560243561ffff81169081810361139a57612b0a61392a565b82845260076020526040842054801561299457421061298557612b316103e88311156135ee565b828452600760205260408420546201517f19810190811161297157612b7090604051612b66816101c16020820194878661363a565b519020841461338f565b7f185daf617c465de5e0042f7aae1503b1a216ea8927cacf296e58b516e82afea860a060015493604051906060825260096060830152681b1c1199595cd0dd5d60ba1b608083015261ffff8660e01c1660208301526040820152a161ffff60e01b1990911660e09190911b61ffff60e01b16176001558082526007602052604082208290557f1277662f4b42b8a4069e99fb5e41ce8919d3c621156090ac08fb11adbcec66f98280a280f35b503461023b578060031936011261023b57612c3561392a565b8080808060018060a01b0381541647905af13d15612cd5573d6001600160401b038111612cc15760405190612c74601f8201601f19166020018361336e565b81528260203d92013e5b15612c865780f35b60405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b612c7e565b503461023b57602036600319011261023b57612cf461325f565b612cfc61392a565b6001600160a01b031680156125e2576001547f7878dffb4ada647885186a00ea129964d140835f125808ba48b1f3974b5f818960a060405160608152600c60608201526b3a30bc21b7b63632b1ba37b960a11b6080820152600180831b0384166020820152846040820152a16001600160a01b0319161760015580f35b503461023b57602036600319011261023b5760043580151580910361138b5760207f9077d36bc00859b5c3f320310707208543dd35092cb0a0fe117d0c6a558b148b91612dc461392a565b6006805460ff60a01b191660a083901b60ff60a01b16179055604051908152a180f35b50604036600319011261023b57612dfc61325f565b60243562ffffff81169182820361139a57612e1c600260095414156133db565b600260095560065460ff8160a01c166130fe576001600160a01b0382169283156130ef5734156130ba576020612eb8916101f4871480156130af575b80156130a4575b612e6890613427565b60048054600354604051630b4c774160e11b81526001600160a01b039889169381019390935287166024830181905262ffffff909316604483015291959093849290911690829081906064820190565b03915afa90811561309957869161307a575b506001600160a01b03161561303f57612f2b9360209360405193612eed8561333d565b84528484015260408301523360608301523460808301528460a08301528460c083015260405180809581946304e45aaf60e01b835260048301613485565b039134906001600160a01b03165af182918161300b575b50612fa457612f4f6134e3565b6308c379a014612f74575b604051634ecb9b6d60e01b81528061091a600482016135c6565b612f7c613501565b80612f875750612f5a565b604051634ecb9b6d60e01b815290819061091a906004830161359a565b60ff60085416612fb8575b50600160095580f35b608060008051602061440d833981519152916040519060408252602060408301527f53776170207375636365737366756c2c20726563656976656420746f6b656e7360608301526020820152a138612faf565b9091506020813d602011613037575b816130276020938361336e565b8101031261023757519038612f42565b3d915061301a565b60405162461bcd60e51b8152602060048201526013602482015272141bdbdb08191bd95cc81b9bdd08195e1a5cdd606a1b6044820152606490fd5b613093915060203d6020116118e2576118d3818361336e565b38612eca565b6040513d88823e3d90fd5b506127108714612e5f565b50610bb88714612e58565b60405162461bcd60e51b815260206004820152600d60248201526c09aeae6e840e6cadcc8408aa89609b1b6044820152606490fd5b63e6c4247b60e01b8652600486fd5b63ab35696f60e01b8552600485fd5b503461023b57604036600319011261023b576004356024356001600160401b0381169081810361139a5761313f61392a565b828452600760205260408420548015612994574210612985576131638215156132a2565b828452600760205260408420546201517f1981019081116129715761319890604051612b66816101c1602082019487866132ee565b7f185daf617c465de5e0042f7aae1503b1a216ea8927cacf296e58b516e82afea860a06001549360405190606082526014606083015273191959985d5b1d131bd8dada5b99d4195c9a5bd960621b60808301526001600160401b0386841c1660208301526040820152a167ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b16176001558082526007602052604082208290557f1277662f4b42b8a4069e99fb5e41ce8919d3c621156090ac08fb11adbcec66f98280a280f35b600435906001600160a01b038216820361126557565b9181601f84011215611265578235916001600160401b038311611265576020838186019501011161126557565b156132a957565b60405162461bcd60e51b815260206004820152601d60248201527f4c6f636b696e6720706572696f642063616e6e6f74206265207a65726f0000006044820152606490fd5b6040909392919360608152601a60608201527f75706461746544656661756c744c6f636b696e67506572696f6400000000000060808201526001600160401b0360a08201951660208201520152565b60e081019081106001600160401b0382111761335857604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761335857604052565b1561339657565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206f7065726174696f6e2064657461696c73000000000000006044820152606490fd5b156133e257565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b1561342e57565b60405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103332b2903a34b2b960811b6044820152606490fd5b9081602091031261126557516001600160a01b03811681036112655790565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0808401519083015260c092830151169181019190915260e00190565b60009060033d116134f057565b905060046000803e60005160e01c90565b600060443d10613566576040513d600319016004823e8051913d60248401116001600160401b0384111761357157828201928351916001600160401b038311613569573d8401600319018584016020011161356957506135669291016020019061336e565b90565b949350505050565b92915050565b60005b83811061358a5750506000910152565b818101518382015260200161357a565b604091602082526135ba8151809281602086015260208686019101613577565b601f01601f1916010190565b60609060208152600d60208201526c2ab735b737bbb71032b93937b960991b60408201520190565b156135f557565b60405162461bcd60e51b815260206004820152601b60248201527f4c502066656573206375742065786365656473206d6178696d756d00000000006044820152606490fd5b6040909392919360608152600f60608201526e1d5c19185d19531c1199595cd0dd5d608a1b608082015261ffff60a08201951660208201520152565b908060209392818452848401376000828201840152601f01601f1916010190565b9594936136b3604094926136c19460608a5260608a0191613676565b918783036020890152613676565b930152565b604080516001600160a01b039092166020838101918252918301989098529296613763956137739590949392909161373c9161370581606081016101c1565b519020986101c1610a999960405197613720888d018a61336e565b8b89528789019b6139548d396040519586948986019889613697565b604051958694613754858701998a9251928391613577565b85019151809385840190613577565b010103601f19810183528261336e565b5190209060405191602083019160ff60f81b83523060601b602185015260358401526055830152605582526137a960758361336e565b905190206001600160a01b031690565b90816020910312611265575180151581036112655790565b156137d857565b60405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606490fd5b6060808252601590820152743ab83230ba32a634b8bab4b234ba3ca637b1b5b2b960591b60808201526001600160a01b039091166020820152604081019190915260a00190565b6003546001600160a01b0316969295929491939092919060005b6103e881106138c45760405162461bcd60e51b815260206004820152601c60248201527f436f756c64206e6f742066696e64207375697461626c652073616c74000000006044820152606490fd5b6138d3818585858c8b8b6136c6565b6001600160a01b0381168a11806138fe575b6138f25750600101613876565b90985096505050505050565b50803b156138e5565b9190820180921161391457565b634e487b7160e01b600052601160045260246000fd5b6000546001600160a01b0316330361393e57565b63118cdaa760e01b6000523360045260246000fdfe6080604052346103af57610a9980380380610019816103b4565b9283398101906060818303126103af5780516001600160401b0381116103af57826100459183016103d9565b60208201519092906001600160401b0381116103af576040916100699184016103d9565b91015182516001600160401b0381116102b857600354600181811c911680156103a5575b602082101461029857601f8111610340575b506020601f82116001146102d957819293946000926102ce575b50508160011b916000199060031b1c1916176003555b81516001600160401b0381116102b857600454600181811c911680156102ae575b602082101461029857601f8111610233575b50602092601f82116001146101ce57928192936000926101c3575b50508160011b916000199060031b1c1916176004555b33156101ad5760025481810180911161019757600255600033815280602052604081208281540190556040519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a360405161065490816104458239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b01519050388061011d565b601f198216936004600052806000209160005b86811061021b5750836001959610610202575b505050811b01600455610133565b015160001960f88460031b161c191690553880806101f4565b919260206001819286850151815501940192016101e1565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061028e575b601f0160051c01905b8181106102825750610102565b60008155600101610275565b909150819061026c565b634e487b7160e01b600052602260045260246000fd5b90607f16906100f0565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b9565b601f198216906003600052806000209160005b8181106103285750958360019596971061030f575b505050811b016003556100cf565b015160001960f88460031b161c19169055388080610301565b9192602060018192868b0151815501940192016102ec565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061039b575b601f0160051c01905b81811061038f575061009f565b60008155600101610382565b9091508190610379565b90607f169061008d565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102b857604052565b81601f820112156103af578051906001600160401b0382116102b857610408601f8301601f19166020016103b4565b92828452602083830101116103af5760005b82811061042f57505060206000918301015290565b8060208092840101518282870101520161041a56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461041157508063095ea7b31461038b57806318160ddd1461036d57806323b872dd14610280578063313ce5671461026457806370a082311461022a57806395d89b4114610109578063a9059cbb146100d85763dd62ed3e1461008257600080fd5b346100d35760403660031901126100d35761009b61052d565b6100a3610543565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100d35760403660031901126100d3576100fe6100f461052d565b6024359033610559565b602060405160018152f35b346100d35760003660031901126100d35760405160006004548060011c90600181168015610220575b60208310811461020c578285529081156101f05750600114610199575b50819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106101da5750602091508201018261014f565b60018160209254838588010152019101906101c5565b90506020925060ff191682840152151560051b8201018261014f565b634e487b7160e01b84526022600452602484fd5b91607f1691610132565b346100d35760203660031901126100d3576001600160a01b0361024b61052d565b1660005260006020526020604060002054604051908152f35b346100d35760003660031901126100d357602060405160128152f35b346100d35760603660031901126100d35761029961052d565b6102a1610543565b6001600160a01b03821660008181526001602090815260408083203384529091529020549092604435929160001981106102e1575b506100fe9350610559565b83811061035057841561033a573315610324576100fe946000526001602052604060002060018060a01b03331660005260205283604060002091039055846102d6565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100d35760003660031901126100d3576020600254604051908152f35b346100d35760403660031901126100d3576103a461052d565b60243590331561033a576001600160a01b031690811561032457336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100d35760003660031901126100d35760006003548060011c906001811680156104da575b60208310811461020c578285529081156101f057506001146104835750819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b8282106104c45750602091508201018261014f565b60018160209254838588010152019101906104af565b91607f1691610437565b91909160208152825180602083015260005b818110610517575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104f6565b600435906001600160a01b03821682036100d357565b602435906001600160a01b03821682036100d357565b6001600160a01b0316908115610608576001600160a01b03169182156105f25760008281528060205260408120548281106105d85791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fdfea26469706673582212203295ddfce9d176e7fc7afc14d982aa682e09164da01555b78d1775870c19637c64736f6c634300081a0033b3f7d6c63a62ab0e6ae5263ef1deb9c5a64f4689288c380db949c116314a55405ecf02a05152036a1cb2b9f0494c73ec92a03bf28073c76dcb8530efc7194c1594ebca8d29d278a0288a52a710c11e928307b6f2e15fbaf4508cc4ceb3d21f8ba2646970667358221220ec05fd3988c7003fd9401b2f8f595115bdc6fc9efe95acd395de59d5c380d33e64736f6c634300081a0033000000000000000000000000e33be189b01388d8224f4b1933e085868d7cb6db0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000100000000000000000000000033128a8fc17869897dce68ed026d694621f6fdfd00000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f10000000000000000000000002626664c2603336e57b271c5c0b26f421741e481