0 txs
96 calls
constructor
constructor(uint16 _protocolId, address _factory, address _WETH)
functions
factory
viewfunction factory() view returns (address)
getOrigin
viewfunction getOrigin(address tokenA, address tokenB, uint24 fee) view returns (address pair, address origin)
pairFor
viewfunction pairFor(address tokenA, address tokenB, uint24 fee) view returns (address pair, address token0, address token1)
protocolId
viewfunction protocolId() view returns (uint16)
quote
viewfunction quote(uint256 amountIn, address tokenIn, address tokenOut, uint24 fee) view returns (uint256 amountOut)
WETH
viewfunction WETH() view returns (address)
clearToken
nonpayablefunction clearToken(address token, address to, uint256 minAmt)
getAmountIn
nonpayablefunction getAmountIn(uint256 amountOut, address tokenIn, address tokenOut, uint256 fee) returns (uint256 amountIn, address pair, uint24 swapFee)
getAmountOut
nonpayablefunction getAmountOut(uint256 amountIn, address tokenIn, address tokenOut, uint256 fee) returns (uint256 amountOut, address pair, uint24 swapFee)
refundETH
payablefunction refundETH() payable
sendTokensCallback
nonpayablefunction sendTokensCallback(address[] tokens, uint256[] amounts, address payee, bytes data)
swap
nonpayablefunction swap(address from, address to, uint24 fee, address dest)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes _data)
unwrapWETH
payablefunction unwrapWETH(uint256 minAmt, address to) payable
events
No events.
errors
NotEnoughTokens
error NotEnoughTokens()
NotEnoughWETH
error NotEnoughWETH()
NotGammaPool
error NotGammaPool()
NotWETH
error NotWETH()
ST_Fail
error ST_Fail()
STE_Fail
error STE_Fail()
STF_Fail
error STF_Fail()
creation bytecode
0x60e06040523480156200001157600080fd5b5060405162002d8938038062002d89833981016040819052620000349162000072565b6001600160a01b0390811660805261ffff90921660a0521660c052620000c4565b80516001600160a01b03811681146200006d57600080fd5b919050565b6000806000606084860312156200008857600080fd5b835161ffff811681146200009b57600080fd5b9250620000ab6020850162000055565b9150620000bb6040850162000055565b90509250925092565b60805160a05160c051612c4962000140600039600081816102c501528181610566015261093601526000818161031901528181610cd401528181610e75015261129801526000818160f101528181610279015281816107a701528181610859015281816115010152818161154701526115be0152612c496000f3fe6080604052600436106100e15760003560e01c8063ad5c46481161007f578063da1f12ab11610059578063da1f12ab14610307578063e16d9ce51461034e578063e84c215614610361578063fa461e33146103a157600080fd5b8063ad5c464814610267578063c45a0155146102b3578063ccbe764a146102e757600080fd5b80636464a1eb116100bb5780636464a1eb146101b95780638fb64308146101dd5780639459e5aa146101fd5780639eb82f6a1461024757600080fd5b806312210e8a146101365780631d21451b1461013e57806358bc781e1461017157600080fd5b3661013157336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461012f57604051635724f38560e01b815260040160405180910390fd5b005b600080fd5b61012f6103c1565b34801561014a57600080fd5b5061015e610159366004612170565b6103d3565b6040519081526020015b60405180910390f35b34801561017d57600080fd5b5061019161018c3660046121c1565b610502565b604080519384526001600160a01b03909216602084015262ffffff1690820152606001610168565b3480156101c557600080fd5b5061012f6101d4366004612255565b50505050505050565b3480156101e957600080fd5b506101916101f83660046121c1565b610521565b34801561020957600080fd5b5061021d610218366004612331565b610531565b604080516001600160a01b0394851681529284166020840152921691810191909152606001610168565b34801561025357600080fd5b5061012f610262366004612378565b610647565b34801561027357600080fd5b5061029b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610168565b3480156102bf57600080fd5b5061029b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f357600080fd5b5061012f6103023660046123d2565b6106ea565b34801561031357600080fd5b5061033b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff9091168152602001610168565b61012f61035c366004612413565b61078f565b34801561036d57600080fd5b5061038161037c366004612331565b6108cc565b604080516001600160a01b03938416815292909116602083015201610168565b3480156103ad57600080fd5b5061012f6103bc3660046124b2565b6108e8565b47156103d1576103d13347610ad1565b565b6000806103e1858585610531565b505090506000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610425573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610449919061258a565b5050505050506001600160a01b03169050846001600160a01b0316866001600160a01b031610156104b857600061047f87610b45565b61048a90600a61270c565b905060006104988383610c04565b9050816104a5828b61271b565b6104af9190612748565b945050506104f8565b60006104c386610b45565b6104ce90600a61270c565b905060006104dc8383610c04565b9050806104e9838b61271b565b6104f39190612748565b945050505b5050949350505050565b6000808261051287878784610c35565b90989097509095509350505050565b6000808261051287878784610df2565b6000806000846001600160a01b0316866001600160a01b031610610556578486610559565b85855b80925081935050506105e07f00000000000000000000000000000000000000000000000000000000000000007fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460001b6040518060600160405280866001600160a01b03168152602001856001600160a01b031681526020018862ffffff16815250610f90565b92506001600160a01b0383163b61063e5760405162461bcd60e51b815260206004820152601d60248201527f556e697377617056333a20414d4d5f444f45535f4e4f545f455849535400000060448201526064015b60405180910390fd5b93509350939050565b60006106538530611093565b9050600081116106935760405162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b6044820152606401610635565b6106e26040518060a00160405280876001600160a01b03168152602001866001600160a01b031681526020018562ffffff168152602001838152602001846001600160a01b0316815250611165565b505050505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610755919061275c565b905081811015610778576040516308aeed0f60e21b815260040160405180910390fd5b80156107895761078984848361137b565b50505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061275c565b90508281101561083d5760405163d666767760e01b815260040160405180910390fd5b80156108c757604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506108c78282610ad1565b505050565b6000806108da858585610531565b509096309650945050505050565b60008313806108f75750600082135b61090057600080fd5b60008180602001905181019061091691906127c9565b9050600080600061092a8460000151611465565b935050925092506109817f00000000000000000000000000000000000000000000000000000000000000008484847fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460001b6114c6565b506000806000808a136109b357856001600160a01b0316856001600160a01b031610898b6109ae90612878565b6109d3565b846001600160a01b0316866001600160a01b0316108a8a6109d390612878565b9250925092506000806109e78888886114e7565b6001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a48919061258a565b5050505050915091508415610a965760208901516001600160a01b031615610a7f57610a7a888a6020015133876114ff565b610ac3565b604051838152826020820152816040820152606081fd5b60005415610aac576000548314610aac57600080fd5b604051848152826020820152816040820152606081fd5b505050505050505050505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610b1e576040519150601f19603f3d011682016040523d82523d6000602084013e610b23565b606091505b50509050806108c7576040516325e5592160e21b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b1790529051600091829182916001600160a01b03861691610b8b9190612894565b600060405180830381855afa9150503d8060008114610bc6576040519150601f19603f3d011682016040523d82523d6000602084013e610bcb565b606091505b5091509150818015610bdf57506001815110155b610be857600080fd5b80806020019051810190610bfc91906128b0565b949350505050565b600080600160601b610c1584611610565b610c1f908661271b565b610c299190612748565b9050610bfc818061271b565b600080610c43858585610531565b5050600087905590506001600160a01b038082169063128acb0890309087811690891610610c708a6116af565b610c7990612878565b886001600160a01b03168a6001600160a01b031610610cb657610cb1600173fffd8963efd1fc6a506488495d951d5263988d266128cb565b610cc6565b610cc66401000276a360016128f2565b60405180604001604052808b7f00000000000000000000000000000000000000000000000000000000000000008c8f604051602001610d089493929190612912565b60408051601f19818403018152918152908252600060209283015251610d2f92910161298f565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610d5e9594939291906129cc565b60408051808303816000875af1925050508015610d98575060408051601f3d908101601f19168201909252610d9591810190612a12565b60015b610de6573d808015610dc6576040519150601f19603f3d011682016040523d82523d6000602084013e610dcb565b606091505b5060008055610dda81836116c5565b50909350610de9915050565b50505b94509492505050565b6000806001600160a01b0380851690861610610e0f868686610531565b50909250506001600160a01b03821663128acb083083610e2e8b6116af565b85610e5757610e52600173fffd8963efd1fc6a506488495d951d5263988d266128cb565b610e67565b610e676401000276a360016128f2565b60405180604001604052808d7f00000000000000000000000000000000000000000000000000000000000000008d8f604051602001610ea99493929190612912565b60408051601f19818403018152918152908252600060209283015251610ed092910161298f565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610eff9594939291906129cc565b60408051808303816000875af1925050508015610f39575060408051601f3d908101601f19168201909252610f3691810190612a12565b60015b610f83573d808015610f67576040519150601f19603f3d011682016040523d82523d6000602084013e610f6c565b606091505b50610f7781846116c5565b50909450610f86915050565b50505b5094509492505050565b600081602001516001600160a01b031682600001516001600160a01b031610610ffb5760405162461bcd60e51b815260206004820152601a60248201527f506f6f6c416464726573733a20494e56414c49445f4f524445520000000000006044820152606401610635565b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301206001600160f81b031960a085015295901b6bffffffffffffffffffffffff191660a183015260b582019490945260d5808201939093528151808203909301835260f5019052805191012090565b6040516001600160a01b038281166024830152600091829182919086169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b179052516110e99190612894565b600060405180830381855afa9150503d8060008114611124576040519150601f19603f3d011682016040523d82523d6000602084013e611129565b606091505b509150915081801561113d57506020815110155b61114657600080fd5b8080602001905181019061115a919061275c565b925050505b92915050565b6000600160ff1b8260600151106111af5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610635565b60808201516001600160a01b03166111fd5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610635565b6020820151825160408401516001600160a01b038084169083161092600092839261122892906114e7565b6001600160a01b031663128acb0886608001518588606001518761126a57611265600173fffd8963efd1fc6a506488495d951d5263988d266128cb565b61127a565b61127a6401000276a360016128f2565b6040805180820182528c51918d015160208e0151919283926112c1927f00000000000000000000000000000000000000000000000000000000000000009160608601612912565b60408051601f1981840301815291815290825230602092830152516112e792910161298f565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016113169594939291906129cc565b60408051808303816000875af1158015611334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113589190612a12565b91509150826113675781611369565b805b61137290612878565b95945050505050565b6040516001600160a01b03838116602483015260448201839052600091829186169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516113d59190612894565b6000604051808303816000865af19150503d8060008114611412576040519150601f19603f3d011682016040523d82523d6000602084013e611417565b606091505b50915091508180156114415750805115806114415750808060200190518101906114419190612a36565b61145e5760405163847ea61d60e01b815260040160405180910390fd5b5050505050565b6000808080611474858261176a565b935061148185601461181e565b915061149961149260026014612a51565b86906118c9565b90506114bd60036114ac60026014612a51565b6114b69190612a51565b869061176a565b92509193509193565b60006114dd86836114d8888888611974565b6119eb565b9695505050505050565b60006114f4848484610531565b509095945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161480156115405750804710155b156115e9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156115a057600080fd5b505af11580156115b4573d6000803e3d6000fd5b50505050506115e47f0000000000000000000000000000000000000000000000000000000000000000838361137b565b610789565b306001600160a01b03841603611604576115e484838361137b565b61078984848484611a0f565b60008160000361162257506000919050565b5070ffffffffffffffffffffffffffffffffff811160071b81811c68ffffffffffffffffff1060061b1781811c64ffffffffff1060051b1781811c62ffffff1060041b1781811c620100000160b5600192831c1b0260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b6000600160ff1b82106116c157600080fd5b5090565b6000806000806000856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561170b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172f919061258a565b5093965061174494508b9350611afa92505050565b9196509450905061175f6001600160a01b0387168383611ba1565b925050509250925092565b600081611778816014612a51565b10156117bb5760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610635565b6117c6826014612a51565b8351101561180e5760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610635565b500160200151600160601b900490565b60008161182c816002612a51565b101561186e5760405162461bcd60e51b8152602060048201526011602482015270746f55696e7431365f6f766572666c6f7760781b6044820152606401610635565b611879826002612a51565b835110156118c05760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610635565b50016002015190565b6000816118d7816003612a51565b10156119195760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401610635565b611924826003612a51565b8351101561196b5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401610635565b50016003015190565b6040805160608101825260008082526020820181905291810191909152826001600160a01b0316846001600160a01b031611156119af579192915b6040518060600160405280856001600160a01b03168152602001846001600160a01b031681526020018362ffffff1681525090505b9392505050565b60006119f8848484610f90565b9050336001600160a01b038216146119e457600080fd5b6040516001600160a01b038481166024830152838116604483015260648201839052600091829187169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251611a719190612894565b6000604051808303816000865af19150503d8060008114611aae576040519150601f19603f3d011682016040523d82523d6000602084013e611ab3565b606091505b5091509150818015611add575080511580611add575080806020019051810190611add9190612a36565b6106e25760405163e5c4a34160e01b815260040160405180910390fd5b60008060008351606014611b8057604484511015611b4d5760405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21032b93937b960811b6044820152606401610635565b60048401935083806020019051810190611b679190612a64565b60405162461bcd60e51b81526004016106359190612aad565b83806020019051810190611b949190612ac0565b9250925092509193909250565b60008060008060008060008060088b6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c119190612af5565b611c1b908c612b10565b60020b901d905060006101008c6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c899190612af5565b611c93908d612b10565b611c9d9190612b4a565b9050600060088d6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d059190612af5565b611d0f908d612b10565b60020b901d905060006101008e6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7d9190612af5565b611d87908e612b10565b611d919190612b4a565b905060008160ff166001901b8f6001600160a01b0316635339c296856040518263ffffffff1660e01b8152600401611dd2919060019190910b815260200190565b602060405180830381865afa158015611def573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e13919061275c565b16118015611e8d57508d6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7e9190612af5565b611e88908d612b4a565b60020b155b8015611e9e57508b60020b8d60020b135b945060008360ff166001901b8f6001600160a01b0316635339c296876040518263ffffffff1660e01b8152600401611edf919060019190910b815260200190565b602060405180830381865afa158015611efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f20919061275c565b16118015611f9a57508d6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190612af5565b611f95908e612b4a565b60020b155b8015611fab57508b60020b8d60020b125b95508160010b8460010b1280611fd757508160010b8460010b148015611fd757508060ff168360ff1611155b15611fed57839950829750819850809650611ffa565b8199508097508398508296505b505060001960ff87161b9150505b8560010b8760010b136120de578560010b8760010b036120395761202d8460ff612b6c565b60001960ff919091161c165b60405163299ce14b60e11b8152600188900b600482015260009082906001600160a01b038e1690635339c29690602401602060405180830381865afa158015612086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120aa919061275c565b1690506120b681612114565b6120c49061ffff168a612b85565b9850876120d081612ba2565b985050600019915050612008565b81156120f2576120ef600189612bc2565b97505b821561210657612103600189612bc2565b97505b505050505050509392505050565b6000805b821561115f578061212881612bdf565b91506121379050600184612c00565b83169250612118565b6001600160a01b038116811461215557600080fd5b50565b803562ffffff8116811461216b57600080fd5b919050565b6000806000806080858703121561218657600080fd5b84359350602085013561219881612140565b925060408501356121a881612140565b91506121b660608601612158565b905092959194509250565b600080600080608085870312156121d757600080fd5b8435935060208501356121e981612140565b925060408501356121f981612140565b9396929550929360600135925050565b60008083601f84011261221b57600080fd5b50813567ffffffffffffffff81111561223357600080fd5b6020830191508360208260051b850101111561224e57600080fd5b9250929050565b60008060008060008060006080888a03121561227057600080fd5b873567ffffffffffffffff8082111561228857600080fd5b6122948b838c01612209565b909950975060208a01359150808211156122ad57600080fd5b6122b98b838c01612209565b909750955060408a013591506122ce82612140565b909350606089013590808211156122e457600080fd5b818a0191508a601f8301126122f857600080fd5b81358181111561230757600080fd5b8b602082850101111561231957600080fd5b60208301945080935050505092959891949750929550565b60008060006060848603121561234657600080fd5b833561235181612140565b9250602084013561236181612140565b915061236f60408501612158565b90509250925092565b6000806000806080858703121561238e57600080fd5b843561239981612140565b935060208501356123a981612140565b92506123b760408601612158565b915060608501356123c781612140565b939692955090935050565b6000806000606084860312156123e757600080fd5b83356123f281612140565b9250602084013561240281612140565b929592945050506040919091013590565b6000806040838503121561242657600080fd5b82359150602083013561243881612140565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561248257612482612443565b604052919050565b600067ffffffffffffffff8211156124a4576124a4612443565b50601f01601f191660200190565b6000806000606084860312156124c757600080fd5b8335925060208401359150604084013567ffffffffffffffff8111156124ec57600080fd5b8401601f810186136124fd57600080fd5b803561251061250b8261248a565b612459565b81815287602083850101111561252557600080fd5b816020840160208301376000602083830101528093505050509250925092565b8051600281900b811461216b57600080fd5b805161ffff8116811461216b57600080fd5b805160ff8116811461216b57600080fd5b8051801515811461216b57600080fd5b600080600080600080600060e0888a0312156125a557600080fd5b87516125b081612140565b96506125be60208901612545565b95506125cc60408901612557565b94506125da60608901612557565b93506125e860808901612557565b92506125f660a08901612569565b915061260460c0890161257a565b905092959891949750929550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561266357816000190482111561264957612649612612565b8085161561265657918102915b93841c939080029061262d565b509250929050565b60008261267a5750600161115f565b816126875750600061115f565b816001811461269d57600281146126a7576126c3565b600191505061115f565b60ff8411156126b8576126b8612612565b50506001821b61115f565b5060208310610133831016604e8410600b84101617156126e6575081810a61115f565b6126f08383612628565b806000190482111561270457612704612612565b029392505050565b60006119e460ff84168361266b565b808202811582820484141761115f5761115f612612565b634e487b7160e01b600052601260045260246000fd5b60008261275757612757612732565b500490565b60006020828403121561276e57600080fd5b5051919050565b60005b83811015612790578181015183820152602001612778565b50506000910152565b60006127a761250b8461248a565b90508281528383830111156127bb57600080fd5b6119e4836020830184612775565b6000602082840312156127db57600080fd5b815167ffffffffffffffff808211156127f357600080fd5b908301906040828603121561280757600080fd5b60405160408101818110838211171561282257612822612443565b60405282518281111561283457600080fd5b83019150601f8201861361284757600080fd5b61285686835160208501612799565b81526020830151925061286883612140565b6020810192909252509392505050565b6000600160ff1b820161288d5761288d612612565b5060000390565b600082516128a6818460208701612775565b9190910192915050565b6000602082840312156128c257600080fd5b6119e482612569565b6001600160a01b038281168282160390808211156128eb576128eb612612565b5092915050565b6001600160a01b038181168382160190808211156128eb576128eb612612565b606094851b6bffffffffffffffffffffffff19908116825260f09490941b6001600160f01b031916601482015260e89290921b6001600160e81b031916601683015290921b166019820152602d0190565b6000815180845261297b816020860160208601612775565b601f01601f19169290920160200192915050565b6020815260008251604060208401526129ab6060840182612963565b602094909401516001600160a01b0316604093909301929092525090919050565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a060808201819052600090612a0790830184612963565b979650505050505050565b60008060408385031215612a2557600080fd5b505080516020909101519092909150565b600060208284031215612a4857600080fd5b6119e48261257a565b8082018082111561115f5761115f612612565b600060208284031215612a7657600080fd5b815167ffffffffffffffff811115612a8d57600080fd5b8201601f81018413612a9e57600080fd5b610bfc84825160208401612799565b6020815260006119e46020830184612963565b600080600060608486031215612ad557600080fd5b835192506020840151612ae781612140565b915061236f60408501612545565b600060208284031215612b0757600080fd5b6119e482612545565b60008160020b8360020b80612b2757612b27612732565b627fffff19821460001982141615612b4157612b41612612565b90059392505050565b60008260020b80612b5d57612b5d612732565b808360020b0791505092915050565b60ff828116828216039081111561115f5761115f612612565b63ffffffff8181168382160190808211156128eb576128eb612612565b60008160010b617fff8103612bb957612bb9612612565b60010192915050565b63ffffffff8281168282160390808211156128eb576128eb612612565b600061ffff808316818103612bf657612bf6612612565b6001019392505050565b8181038181111561115f5761115f61261256fea264697066735822122061506aff8d84ecf027f704fd4e02c12a06146cc43071d0e876b8766043cfa8ce64736f6c6343000815003300000000000000000000000000000000000000000000000000000000000000060000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2