0 txs
0 calls
constructor
No constructor.
functions
factory
viewfunction factory() view returns (address)
fee
viewfunction fee() view returns (uint16)
feeChargePercent
viewfunction feeChargePercent() view returns (uint24)
feeScaleX_128
viewfunction feeScaleX_128() view returns (uint256)
feeScaleY_128
viewfunction feeScaleY_128() view returns (uint256)
leftMostPt
viewfunction leftMostPt() view returns (int24)
limitOrderData
viewfunction limitOrderData(int24) view returns (uint128 sellingX, uint128 earnY, uint256 accEarnY, uint256 legacyAccEarnY, uint128 legacyEarnY, uint128 sellingY, uint128 earnX, uint128 legacyEarnX, uint256 accEarnX, uint256 legacyAccEarnX)
liquidities
viewfunction liquidities(bytes32) view returns (uint16 feeVote, uint128 liquidity, uint256 lastFeeScaleX_128, uint256 lastFeeScaleY_128, uint256 tokenOwedX, uint256 tokenOwedY)
maxLiquidPt
viewfunction maxLiquidPt() view returns (uint128)
observations
viewfunction observations(uint256) view returns (uint32 timestamp, int56 accPoint, bool init)
orderOrEndpoint
viewfunction orderOrEndpoint(int24) view returns (int24)
pointBitmap
viewfunction pointBitmap(int16) view returns (uint256)
pointDelta
viewfunction pointDelta() view returns (int24)
points
viewfunction points(int24) view returns (uint128 liquidSum, int128 liquidDelta, uint256 accFeeXOut_128, uint256 accFeeYOut_128, bool isEndpt, uint240 feeTimesL)
rightMostPt
viewfunction rightMostPt() view returns (int24)
state
viewfunction state() view returns (uint160 sqrtPrice_96, int24 currentPoint, uint16 observationCurrentIndex, uint16 observationQueueLen, uint16 observationNextQueueLen, bool locked, uint240 feeTimesL, uint16 fee, uint128 liquidity, uint128 liquidityX)
tokenX
viewfunction tokenX() view returns (address)
tokenY
viewfunction tokenY() view returns (address)
totalFeeXCharged
viewfunction totalFeeXCharged() view returns (uint256)
totalFeeYCharged
viewfunction totalFeeYCharged() view returns (uint256)
userEarnX
viewfunction userEarnX(bytes32) view returns (uint256 lastAccEarn, uint128 sellingRemain, uint128 sellingDec, uint128 earn, uint128 legacyEarn, uint128 earnAssign)
userEarnY
viewfunction userEarnY(bytes32) view returns (uint256 lastAccEarn, uint128 sellingRemain, uint128 sellingDec, uint128 earn, uint128 legacyEarn, uint128 earnAssign)
burn
nonpayablefunction burn(int24 leftPt, int24 rightPt, uint128 liquidDelta) returns (uint256 amountX, uint256 amountY)
changeFeeVote
nonpayablefunction changeFeeVote(int24 leftPt, int24 rightPt, uint16 newFeeVote)
collect
nonpayablefunction collect(address recipient, int24 leftPt, int24 rightPt, uint256 amountXLim, uint256 amountYLim) returns (uint256 actualAmountX, uint256 actualAmountY)
mint
nonpayablefunction mint(address recipient, int24 leftPt, int24 rightPt, uint128 liquidDelta, bytes data) returns (uint256 amountX, uint256 amountY)
mint
nonpayablefunction mint(address recipient, int24 leftPt, int24 rightPt, uint128 liquidDelta, uint16 feeToVote, bytes data) returns (uint256 amountX, uint256 amountY)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b506134dc806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806381794fba116100f9578063b7d19fc411610097578063d3b1686411610071578063d3b1686414610764578063ddca3f4314610778578063e556289f146107a0578063edcba3b2146107ab57600080fd5b8063b7d19fc414610648578063c19d93fb1461065b578063c45a01551461075157600080fd5b806387e7d5fe116100d357806387e7d5fe1461057a57806398a0f72e14610602578063a34123a714610622578063ac1d48fb1461063557600080fd5b806381794fba1461046d578063872d1f15146104995780638790aca3146104ac57600080fd5b8063537c2d8e1161016657806358c51ce61161014057806358c51ce61461033257806362ccaafd146103465780636d01843b1461039a57806375c0e0d5146103cc57600080fd5b8063537c2d8e146102f4578063550d0f1314610314578063588e59ae1461032957600080fd5b80631621835f146101ae57806316dc165b146102455780631aae2e5514610270578063252c09d71461028757806333005cd5146102c15780633c8a7d8d146102cc575b600080fd5b6102026101bc366004612f78565b601060205260009081526040902080546001820154600283015460039093015491926001600160801b0380831693600160801b9384900482169383831693048216911686565b604080519687526001600160801b039586166020880152938516938601939093529083166060850152821660808401521660a082015260c0015b60405180910390f35b600254610258906001600160a01b031681565b6040516001600160a01b03909116815260200161023c565b61027960045481565b60405190815260200161023c565b61029a610295366004612f78565b6107ce565b6040805163ffffffff909416845260069290920b602084015215159082015260600161023c565b610279620100115481565b6102df6102da366004612deb565b610803565b6040805192835260208301919091520161023c565b6000546103019060020b81565b60405160029190910b815260200161023c565b61032761032236600461300d565b610835565b005b61027960055481565b60035461030190600160b01b900460020b81565b610202610354366004612f78565b600f60205260009081526040902080546001820154600283015460039093015491926001600160801b0380831693600160801b9384900482169383831693048216911686565b6000546103b490600160301b90046001600160801b031681565b6040516001600160801b03909116815260200161023c565b6104286103da366004612fb1565b600c6020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b929060ff81169061010090046001600160f01b031686565b604080516001600160801b039097168752600f9590950b6020870152938501929092526060840152151560808301526001600160f01b031660a082015260c00161023c565b620100175461048590600160a01b900462ffffff1681565b60405162ffffff909116815260200161023c565b6102df6104a7366004612f04565b610ad0565b6105196104ba366004612fb1565b600e6020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160801b0380871697600160801b978890048216978583169581900483169480841694919004909216918a565b604080516001600160801b039b8c168152998b1660208b01528901979097526060880195909552928716608087015290861660a0860152851660c085015290931660e08301526101008201929092526101208101919091526101400161023c565b6105c8610588366004612f78565b600a602052600090815260409020805460018201546002830154600384015460049094015461ffff841694620100009094046001600160801b0316939086565b6040805161ffff90971687526001600160801b039095166020870152938501929092526060840152608083015260a082015260c00161023c565b610279610610366004612f90565b600b6020526000908152604090205481565b6102df610630366004612fcb565b610bf0565b6102df610643366004612e6f565b610fa5565b600354610258906001600160a01b031681565b6007546008546009546106d8926001600160a01b03811692600160a01b820460020b92600160b81b830461ffff90811693600160c81b8104821693600160d81b8204831693600160e81b90920460ff16926001600160f01b03821692600160f01b90920416906001600160801b0380821691600160801b9004168a565b604080516001600160a01b03909b168b5260029990990b60208b015261ffff978816988a01989098529486166060890152928516608088015290151560a08701526001600160f01b031660c08601529190911660e08401526001600160801b03908116610100840152166101208201526101400161023c565b600154610258906001600160a01b031681565b600054610301906301000000900460020b81565b60035461078d90600160a01b900461ffff1681565b60405161ffff909116815260200161023c565b610279620100105481565b6103016107b9366004612fb1565b600d6020526000908152604090205460020b81565b60118161ffff81106107df57600080fd5b015463ffffffff81169150640100000000810460060b90600160581b900460ff1683565b6008546000908190600160f01b900461ffff1661082589898989858a8a610fa5565b909a909950975050505050505050565b600154600354604051630a23533d60e21b815261ffff8085166004830152600160a01b90920490911660248201526001600160a01b039091169063288d4cf49060440160206040518083038186803b15801561089057600080fd5b505afa1580156108a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c89190612f58565b6108ff5760405162461bcd60e51b81526020600482015260036024820152622327a960e91b60448201526064015b60405180910390fd5b600061090e600a338686611556565b80549091506201000090046001600160801b031661094b33868661093185613421565b6007548754600160a01b90910460020b9061ffff166115ba565b60075461096a903390879087908590600160a01b900460020b886115ba565b60078054600160a01b9004600290810b810b9087900b138015906109a057508054600160a01b9004600290810b810b9086900b12155b15610ac85782546109b59061ffff1683613238565b6001820180546001600160801b0392909216916000906109df9084906001600160f01b0316613399565b92506101000a8154816001600160f01b0302191690836001600160f01b031602179055508361ffff1682610a139190613238565b6001820180546001600160801b039290921691600090610a3d9084906001600160f01b031661318a565b82546001600160f01b039182166101009390930a92830291909202199091161790555060028101546001600160801b031615610a9a57600954600854610a95916001600160801b0316906001600160f01b03166131fe565b610aa9565b600354600160a01b900461ffff165b81600101601e6101000a81548161ffff021916908361ffff1602179055505b505050505050565b6000806000841180610ae25750600083115b610b165760405162461bcd60e51b81526020600482015260056024820152640582b593e360dc1b60448201526064016108f6565b6000610b25600a338989611556565b90508492508060030154831115610b3e57806003015492505b8391508060040154821115610b5557806004015491505b82816003016000828254610b6991906133b9565b9250508190555081816004016000828254610b8491906133b9565b90915550610b9b905083610b966117f5565b6118d5565b9250610ba982610b966118ef565b91508215610bc857600254610bc8906001600160a01b0316898561191d565b8115610be557600354610be5906001600160a01b0316898461191d565b509550959350505050565b6000808360020b8560020b12610c2d5760405162461bcd60e51b8152602060048201526002602482015261262960f11b60448201526064016108f6565b600354600160b01b900460020b610c4481876133eb565b60020b15610c7a5760405162461bcd60e51b815260206004820152600360248201526213141160ea1b60448201526064016108f6565b610c8481866133eb565b60020b15610cba5760405162461bcd60e51b815260206004820152600360248201526214941160ea1b60448201526064016108f6565b60408051610140810182526007546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b81048316608083015260ff600160e81b90910416151560a08201526008546001600160f01b03811660c0830152600160f01b900490911660e08201526009546001600160801b038082166101008401819052600160801b909204811661012084015260016001607f1b039087161115610db25760405162461bcd60e51b81526020600482015260056024820152644c5131323760d81b60448201526064016108f6565b6000610dc66001600160801b038816613460565b90508081600f0b14610dff5760405162461bcd60e51b8152602060048201526002602482015261444f60f01b60448201526064016108f6565b610e12338a8a84876020015160006115ba565b6000610e20888b8b87611a1e565b90506000610e31600a338d8d611556565b9050600082606001511180610e4a575060008260400151115b15610f3a57610e598985613351565b60808301516001600160801b03908116600160801b029116176009558054610e859061ffff168a613238565b600880546001600160801b039290921691600090610ead9084906001600160f01b0316613399565b82546001600160f01b039182166101009390930a9283029190920219909116179055506009546001600160801b031615610f0857600954600854610f03916001600160801b0316906001600160f01b03166131fe565b610f17565b600354600160a01b900461ffff165b6008805461ffff92909216600160f01b026001600160f01b039092169190911790555b8151151580610f4d575060008260200151115b15610f8c578151600382018054600090610f689084906131ac565b90915550506020820151600482018054600090610f869084906131ac565b90915550505b508051602090910151909a909950975050505050505050565b6000808660020b8860020b12610fe25760405162461bcd60e51b8152602060048201526002602482015261262960f11b60448201526064016108f6565b600054600290810b810b9089900b12156110235760405162461bcd60e51b81526020600482015260026024820152614c4f60f01b60448201526064016108f6565b60005463010000009004600290810b810b9088900b131561106b5760405162461bcd60e51b8152602060048201526002602482015261484f60f01b60448201526064016108f6565b620c350061108060028a810b908a900b613312565b126110b25760405162461bcd60e51b8152602060048201526002602482015261151360f21b60448201526064016108f6565b600354600160b01b900460020b6110c9818a6133eb565b60020b156110ff5760405162461bcd60e51b815260206004820152600360248201526213141160ea1b60448201526064016108f6565b61110981896133eb565b60020b1561113f5760405162461bcd60e51b815260206004820152600360248201526214941160ea1b60448201526064016108f6565b866000600f82900b136111795760405162461bcd60e51b815260206004820152600260248201526104c560f41b60448201526064016108f6565b6001600160a01b038b1661118b57339a505b60408051610140810182526007546001600160a01b038082168352600160a01b808304600290810b810b900b6020850152600160b81b830461ffff90811685870152600160c81b840481166060860152600160d81b840481166080860152600160e81b90930460ff16151560a08501526008546001600160f01b03811660c0860152600160f01b9004831660e08501526009546001600160801b03808216610100870152600160801b909104166101208501526001546003549551630a23533d60e21b81528d8516600482015291909504909216602483015291929091169063288d4cf49060440160206040518083038186803b15801561128b57600080fd5b505afa15801561129f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c39190612f58565b6112f55760405162461bcd60e51b81526020600482015260036024820152622327a960e91b60448201526064016108f6565b6113078c8c8c8585602001518d6115ba565b60008060006113188c8f8f87611cfc565b6001600160801b031692506001600160801b031692506001600160801b031692506000811115611409578b846101000151611353919061315f565b600980546001600160801b0319166001600160801b039290921691909117905561138161ffff8c168d613238565b600880546001600160801b0392909216916000906113a99084906001600160f01b031661318a565b82546101009290920a6001600160f01b038181021990931691831602179091556009546008546113e693506001600160801b0390911691166131fe565b6008805461ffff92909216600160f01b026001600160f01b039092169190911790555b600080841561141d5761141a6117f5565b91505b831561142e5761142b6118ef565b90505b600085118061143d5750600084115b156114a757336001600160a01b03166384fe2b3d86868f8f6040518563ffffffff1660e01b81526004016114749493929190613097565b600060405180830381600087803b15801561148e57600080fd5b505af11580156114a2573d6000803e3d6000fd5b505050505b84156114f3576114b56117f5565b6114bf86846131ac565b11156114f35760405162461bcd60e51b815260206004820152600360248201526209c8ab60eb1b60448201526064016108f6565b831561153f576115016118ef565b61150b85836131ac565b111561153f5760405162461bcd60e51b81526020600482015260036024820152624e455960e81b60448201526064016108f6565b50929f919e50909c50505050505050505050505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051601a818503018152603a90930181528251928201929092206000908152929052902090565b600354600160b01b900460020b60006115d6600a898989611556565b6004546005549192509060008061ffff8716156115f357866115fa565b845461ffff165b965088600f0b6000146116615760005461163290600c908d906001908c908e90600160301b90046001600160801b03168a8a8f611eaf565b6000805491935061165e91600c918d918c908e90600160301b90046001600160801b03168a8a8f611eaf565b90505b600080611673600c8e8e8d8a8a612203565b9092509050611685878c84848d612296565b5050811561173757600061169b600d8d89612463565b905060008a600f0b13156116d6576116b9600d8d89600185176124b0565b8060020b600014156116d1576116d1600b8d896124f7565b611735565b600281166116e7600d8e8a846124b0565b8060020b600014156116ff576116ff600b8e8a61255f565b5060028c810b810b6000908152600c60205260408120818155600181018290559182015560030180546001600160f81b03191690555b505b80156117e757600061174b600d8c89612463565b905060008a600f0b131561178657611769600d8c89600185176124b0565b8060020b6000141561178157611781600b8c896124f7565b6117e5565b60028116611797600d8d8a846124b0565b8060020b600014156117af576117af600b8d8a61255f565b5060028b810b810b6000908152600c60205260408120818155600181018290559182015560030180546001600160f81b03191690555b505b505050505050505050505050565b600254604051306024820152600091829182916001600160a01b0316906370a0823160e01b906044015b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161185d919061305e565b600060405180830381855afa9150503d8060008114611898576040519150601f19603f3d011682016040523d82523d6000602084013e61189d565b606091505b50915091508180156118b157506020815110155b6118ba57600080fd5b808060200190518101906118ce9190613046565b9250505090565b6000818310156118e65750816118e9565b50805b92915050565b600354604051306024820152600091829182916001600160a01b0316906370a0823160e01b9060440161181f565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611979919061305e565b6000604051808303816000865af19150503d80600081146119b6576040519150601f19603f3d011682016040523d82523d6000602084013e6119bb565b606091505b50915091508180156119e55750805115806119e55750808060200190518101906119e59190612f58565b611a175760405162461bcd60e51b8152602060048201526003602482015262544e5360e81b60448201526064016108f6565b5050505050565b611a596040518060a001604052806000815260200160008152602001600081526020016000815260200160006001600160801b031681525090565b60208201518251600091829182611a6f886125c8565b6006549091506001600160a01b0316600284810b908b900b1215611adf576000611a988b6125c8565b905060008560020b8b60020b1215611abf57611ab88d83868660006129e5565b9050611ad0565b611acd8d83878660006129e5565b90505b611ada81896131ac565b975050505b8360020b8960020b1315611b325760008460020b8b60020b13611b0c57611b07856001613122565b611b0e565b8a5b90506000611b218d838d87876000612a6c565b9050611b2d81886131ac565b965050505b8360020b8a60020b13158015611b4d57508360020b8960020b135b15611c3f576000886101200151896101000151611b6a9190613351565b905060008c6001600160801b0316826001600160801b031610611b8d578c611b8f565b815b90506000611b9d828f613351565b9050611bc0826001600160801b0316876001600160a01b0316600160601b612b3d565b60608b01526001600160a01b038616611be6600160601b6001600160801b038416613267565b611bf09190613224565b60408b01526101208b0151611c06908290613351565b6001600160801b031660808b015260608a0151611c23908a6131ac565b9850896040015188611c3591906131ac565b9750505050611c62565b60006060880181905260408801526101208801516001600160801b031660808801525b6001600160801b038616602088018190528614611caa5760405162461bcd60e51b81526004016108f6906020808252600490820152631653d19360e21b604082015260600190565b6001600160801b0385168088528514611cee5760405162461bcd60e51b81526004016108f6906020808252600490820152631613d19360e21b604082015260600190565b505050505050949350505050565b6020810151815160009182918291829182611d16896125c8565b6006549091506001600160a01b0316600284810b908c900b1215611d86576000611d3f8c6125c8565b905060008560020b8c60020b1215611d6657611d5f8e83868660016129e5565b9050611d77565b611d748e83878660016129e5565b90505b611d8181886131ac565b965050505b8360020b8a60020b1315611e115760008460020b8c60020b13611db357611dae856001613122565b611db5565b8b5b90506000611dc88e838e87876001612a6c565b9050809950808a6001600160801b031614611e0e5760405162461bcd60e51b81526004016108f6906020808252600490820152631613d19360e21b604082015260600190565b50505b8360020b8b60020b13158015611e2c57508360020b8a60020b135b15611e5757611e3b8c84612bea565b9550611e506001600160801b038716866131ac565b9450611e5c565b600095505b84965084876001600160801b031614611ea05760405162461bcd60e51b81526004016108f6906020808252600490820152631653d19360e21b604082015260600190565b50505050509450945094915050565b600288810b900b600090815260208a90526040812080546001600160801b0316600f88900b611f055760405162461bcd60e51b8152602060048201526002602482015261044360f41b60448201526064016108f6565b60008060008a600f0b1315611f8857611f1e8a8461315f565b9150611f2e8a61ffff8816613238565b6001600160801b03169050826001600160801b0316826001600160801b031611611f835760405162461bcd60e51b81526004016108f6906020808252600490820152634c41414f60e01b604082015260600190565b612009565b611f918a613421565b611f9b9084613351565b9150611fa68a613421565b611fb49061ffff8816613238565b6001600160801b03169050826001600160801b0316826001600160801b0316106120095760405162461bcd60e51b81526004016108f6906020808252600490820152634c41534f60e01b604082015260600190565b886001600160801b0316826001600160801b031611156120565760405162461bcd60e51b8152602060048201526008602482015267130813125348141560c21b60448201526064016108f6565b83546001600160801b0319166001600160801b03831617808555600160801b9004600f0b8c61209b578454612096908c90600160801b9004600f0b613286565b6120b2565b84546120b2908c90600160801b9004600f0b6130d4565b8554600f91820b6001600160801b03908116600160801b029116178655600082820b81138f1515928e900b9190911291909114151461213a57818560030160018282829054906101000a90046001600160f01b0316612111919061318a565b92506101000a8154816001600160f01b0302191690836001600160f01b03160217905550612180565b60038501546121579061010090046001600160f01b031683612c5b565b8560030160016101000a8154816001600160f01b0302191690836001600160f01b031602179055505b60006001600160801b0385166121d2576001905060018660030160006101000a81548160ff0219169083151502179055508c60020b8f60020b126121cd57600186018a9055600286018990555b6121f0565b6001600160801b0384166121f0575060038501805460ff1916905560015b9f9e505050505050505050505050505050565b600285810b810b60009081526020889052604080822087840b90930b825281206001830154919283929091908390612240908b908a908a90612c8f565b905060006122548a8a8a8660010154612cae565b905060006122688c8b8a8860020154612c8f565b9050600061227c8c8c8b8860020154612cae565b93909903919091039c960303995093975050505050505050565b6040805160c081018252865461ffff8082168352620100009091046001600160801b031660208301526001880154928201929092526002870154606082015260038701546080820152600487015460a0820152906000908316156122fa57826122fd565b81515b875461ffff191661ffff91909116178755600f86900b61236557600082602001516001600160801b03161161235a5760405162461bcd60e51b815260206004820152600360248201526204c3e360ec1b60448201526064016108f6565b506020810151612376565b612373826020015187612cc5565b90505b60408201516060830151602084015191870391908603906000906123a99084906001600160801b0316600160801b612b3d565b905060006123c98387602001516001600160801b0316600160801b612b3d565b905089600f0b600014612400578a5471ffffffffffffffffffffffffffffffff00001916620100006001600160801b03871602178b555b60018b0189905560028b018890558115158061241c5750600081115b1561245657818b600301600082825461243591906131ac565b92505081905550808b600401600082825461245091906131ac565b90915550505b5050505050505050505050565b600061246f82846133eb565b60020b1561247f575060006124a9565b83600061248c84866131c4565b600290810b810b8252602082019290925260400160002054900b90505b9392505050565b808460006124be85876131c4565b60020b60020b815260200190815260200160002060006101000a81548162ffffff021916908360020b62ffffff16021790555050505050565b61250181836133eb565b60020b1561250e57600080fd5b600061251a82846131c4565b9050600281900b60081d6000612532610100846133eb565b600192830b830b60009081526020979097526040909620805460ff9097169290921b909517905550505050565b61256981836133eb565b60020b1561257657600080fd5b600061258282846131c4565b9050600281900b60081d600061259a610100846133eb565b600192830b830b60009081526020979097526040909620805460ff9097169290921b19909516905550505050565b60008060008360020b126125df578260020b6125ec565b8260020b6125ec90613460565b90506125fb620d89e719613446565b60020b8111156126315760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016108f6565b60006001821661264557600160801b612657565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612696576080612691826ffff97272373d413259a46990580e213a613267565b901c90505b60048216156126c05760806126bb826ffff2e50f5f656932ef12357cf3c7fdcc613267565b901c90505b60088216156126ea5760806126e5826fffe5caca7e10e4e61c3624eaa0941cd0613267565b901c90505b601082161561271457608061270f826fffcb9843d60f6159c9db58835c926644613267565b901c90505b602082161561273e576080612739826fff973b41fa98c081472e6896dfb254c0613267565b901c90505b6040821615612768576080612763826fff2ea16466c96a3843ec78b326b52861613267565b901c90505b608082161561279257608061278d826ffe5dee046a99a2a811c461f1969c3053613267565b901c90505b6101008216156127bd5760806127b8826ffcbe86c7900a88aedcffc83b479aa3a4613267565b901c90505b6102008216156127e85760806127e3826ff987a7253ac413176f2b074cf7815e54613267565b901c90505b61040082161561281357608061280e826ff3392b0822b70005940c7a398e4b70f3613267565b901c90505b61080082161561283e576080612839826fe7159475a2c29b7443b29c7fa6e889d9613267565b901c90505b611000821615612869576080612864826fd097f3bdfd2022b8845ad8f792aa5825613267565b901c90505b61200082161561289457608061288f826fa9f746462d870fdf8a65dc1f90e061e5613267565b901c90505b6140008216156128bf5760806128ba826f70d869a156d2a1b890bb3df62baf32f7613267565b901c90505b6180008216156128ea5760806128e5826f31be135f97d08fd981231505542fcfa6613267565b901c90505b62010000821615612916576080612911826f09aa508b5b7a84e1c677de54f3e99bc9613267565b901c90505b6202000082161561294157608061293c826e5d6af8dedb81196699c329225ee604613267565b901c90505b6204000082161561296b576080612966826d2216e584f5fa1ea926041bedfe98613267565b901c90505b6208000082161561299357608061298e826b048a170391f7dc42444e8fa2613267565b901c90505b60008460020b13156129ae576129ab81600019613224565b90505b6129bd6401000000008261340d565b156129c95760016129cc565b60005b6129dd9060ff16602083901c6131ac565b949350505050565b6000806129f28686613379565b90506000612a04600160601b86613379565b905083612a3857612a31886001600160801b0316836001600160a01b0316836001600160a01b0316612b3d565b9250612a61565b612a5e886001600160801b0316836001600160a01b0316836001600160a01b0316612cf6565b92505b505095945050505050565b600080612a81612a7c88886132d5565b6125c8565b90506000846001600160a01b0316600160601b876001600160a01b0316612aa89190613267565b612ab29190613224565b90506000612ac4600160601b84613379565b90506000612ad28389613379565b905085612b0657612aff8b6001600160801b0316836001600160a01b0316836001600160a01b0316612b3d565b9450612b2f565b612b2c8b6001600160801b0316836001600160a01b0316836001600160a01b0316612cf6565b94505b505050509695505050505050565b600080806000198587098587029250828110838203039150508060001415612b775760008411612b6c57600080fd5b5082900490506124a9565b808411612b8357600080fd5b6000848688096001861981018716968790046003810260029081188083028203028083028203028083028203028083028203028083028203029182029003026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080612c0e846001600160801b0316846001600160a01b0316600160601b612cf6565b905080915080826001600160801b031614612c545760405162461bcd60e51b81526020600482015260066024820152651650c813d19360d21b60448201526064016108f6565b5092915050565b6000816001600160f01b0316836001600160f01b031611612c8557612c808383613399565b6124a9565b6124a98284613399565b60008360020b8560020b13612ca55750806129dd565b50900392915050565b60008360020b8560020b1315612ca55750806129dd565b60008082600f0b1215612cec57612cdb82613421565b612ce59084613351565b90506118e9565b6124a9828461315f565b6000612d03848484612b3d565b905060008280612d2357634e487b7160e01b600052601260045260246000fd5b84860911156124a9576000198110612d3a57600080fd5b80612d44816133d0565b95945050505050565b80356001600160a01b0381168114612d6457600080fd5b919050565b60008083601f840112612d7a578182fd5b50813567ffffffffffffffff811115612d91578182fd5b602083019150836020828501011115612da957600080fd5b9250929050565b8035600281900b8114612d6457600080fd5b80356001600160801b0381168114612d6457600080fd5b803561ffff81168114612d6457600080fd5b60008060008060008060a08789031215612e03578182fd5b612e0c87612d4d565b9550612e1a60208801612db0565b9450612e2860408801612db0565b9350612e3660608801612dc2565b9250608087013567ffffffffffffffff811115612e51578283fd5b612e5d89828a01612d69565b979a9699509497509295939492505050565b600080600080600080600060c0888a031215612e89578081fd5b612e9288612d4d565b9650612ea060208901612db0565b9550612eae60408901612db0565b9450612ebc60608901612dc2565b9350612eca60808901612dd9565b925060a088013567ffffffffffffffff811115612ee5578182fd5b612ef18a828b01612d69565b989b979a50959850939692959293505050565b600080600080600060a08688031215612f1b578081fd5b612f2486612d4d565b9450612f3260208701612db0565b9350612f4060408701612db0565b94979396509394606081013594506080013592915050565b600060208284031215612f69578081fd5b815180151581146124a9578182fd5b600060208284031215612f89578081fd5b5035919050565b600060208284031215612fa1578081fd5b81358060010b81146124a9578182fd5b600060208284031215612fc2578081fd5b6124a982612db0565b600080600060608486031215612fdf578283fd5b612fe884612db0565b9250612ff660208501612db0565b915061300460408501612dc2565b90509250925092565b600080600060608486031215613021578283fd5b61302a84612db0565b925061303860208501612db0565b915061300460408501612dd9565b600060208284031215613057578081fd5b5051919050565b60008251815b8181101561307e5760208186018101518583015201613064565b8181111561308c5782828501525b509190910192915050565b84815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b600081600f0b83600f0b8282128260016001607f1b03038213811516156130fd576130fd61347a565b8260016001607f1b03190382128116156131195761311961347a565b50019392505050565b60008160020b8360020b82821282627fffff038213811516156131475761314761347a565b82627fffff190382128116156131195761311961347a565b60006001600160801b038083168185168083038211156131815761318161347a565b01949350505050565b60006001600160f01b038281168482168083038211156131815761318161347a565b600082198211156131bf576131bf61347a565b500190565b60008160020b8360020b806131db576131db613490565b627fffff198214600019821416156131f5576131f561347a565b90059392505050565b60006001600160f01b038381168061321857613218613490565b92169190910492915050565b60008261323357613233613490565b500490565b60006001600160801b038083168185168183048111821515161561325e5761325e61347a565b02949350505050565b60008160001904831182151516156132815761328161347a565b500290565b600081600f0b83600f0b8281128160016001607f1b0319018312811516156132b0576132b061347a565b8160016001607f1b030183138116156132cb576132cb61347a565b5090039392505050565b60008160020b8360020b82811281627fffff19018312811516156132fb576132fb61347a565b81627fffff0183138116156132cb576132cb61347a565b60008083128015600160ff1b8501841216156133305761333061347a565b6001600160ff1b038401831381161561334b5761334b61347a565b50500390565b60006001600160801b03838116908316818110156133715761337161347a565b039392505050565b60006001600160a01b03838116908316818110156133715761337161347a565b60006001600160f01b03838116908316818110156133715761337161347a565b6000828210156133cb576133cb61347a565b500390565b60006000198214156133e4576133e461347a565b5060010190565b60008260020b806133fe576133fe613490565b808360020b0791505092915050565b60008261341c5761341c613490565b500690565b600081600f0b60016001607f1b031981141561343f5761343f61347a565b9003919050565b60008160020b627fffff1981141561343f5761343f61347a565b6000600160ff1b8214156134765761347661347a565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfea2646970667358221220f712d8ea3026ef63e43a9ff37a4f4fba3b7e0d3a446e4690838be7726559f16a64736f6c63430008040033