Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InsufficientInputAmount", "type": "error" }, { "inputs": [], "name": "InsufficientLiquidity", "type": "error" }, { "inputs": [], "name": "InsufficientLiquidityBurned", "type": "error" }, { "inputs": [], "name": "InsufficientLiquidityMinted", "type": "error" }, { "inputs": [], "name": "InsufficientOutputAmount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidReceiver", "type": "error" }, { "inputs": [], "name": "Invariant", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Fees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "reserve0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "reserve1", "type": "uint256" } ], "name": "Sync", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "atomicRouter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blockTimestampLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimFees", "outputs": [ { "internalType": "uint256", "name": "claimed0", "type": "uint256" }, { "internalType": "uint256", "name": "claimed1", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimable0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimable1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fees", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountOut_", "type": "uint256" }, { "internalType": "address", "name": "tokenOut_", "type": "address" } ], "name": "getAmountIn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountIn_", "type": "uint256" }, { "internalType": "address", "name": "tokenIn_", "type": "address" } ], "name": "getAmountOut", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint256", "name": "_reserve0", "type": "uint256" }, { "internalType": "uint256", "name": "_reserve1", "type": "uint256" }, { "internalType": "uint256", "name": "_blockTimestampLast", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "index0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "index1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token0_", "type": "address" }, { "internalType": "address", "name": "token1_", "type": "address" }, { "internalType": "address", "name": "pairFeesFactory_", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lastObservation", "outputs": [ { "components": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" } ], "internalType": "struct IPair.Observation", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "observations", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenIn_", "type": "address" }, { "internalType": "uint256", "name": "amountIn_", "type": "uint256" }, { "internalType": "uint256", "name": "points_", "type": "uint256" } ], "name": "prices", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve0CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve1CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenIn_", "type": "address" }, { "internalType": "uint256", "name": "amountIn_", "type": "uint256" }, { "internalType": "uint256", "name": "points_", "type": "uint256" }, { "internalType": "uint256", "name": "window_", "type": "uint256" } ], "name": "sample", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" } ], "name": "skim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "supplyIndex0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "supplyIndex1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount0Out_", "type": "uint256" }, { "internalType": "uint256", "name": "amount1Out_", "type": "uint256" }, { "internalType": "address", "name": "to_", "type": "address" } ], "name": "swap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokens", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040526000600d556000600e553480156200001b57600080fd5b50620000266200002c565b620000e0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156200007d5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000dd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613bfd80620000f06000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806384b0196e11610151578063bf944dbc116100c3578063d21220a711610087578063d21220a7146105ca578063d294f093146105dd578063d505accf146105e5578063dd62ed3e146105f8578063f140a35a1461060b578063fff6cae91461061e57600080fd5b8063bf944dbc14610589578063c0c53b8b14610592578063c245febc146105a5578063c45a0155146105ae578063c5700a02146105c157600080fd5b80639d63848a116101155780639d63848a146104f45780639f767c881461051a578063a1ac4d131461053a578063a9059cbb1461055a578063bc25cf771461056d578063bda39cad1461058057600080fd5b806384b0196e1461046c57806389afcb44146104875780638a7b8cf2146104af57806395d89b41146104d95780639af1d35a146104e157600080fd5b8063313ce567116101ea5780635881c475116101ae5780635881c475146104025780635a76f25e146104155780636a6278421461041e5780636d9a640a1461043157806370a08231146104465780637ecebe001461045957600080fd5b8063313ce567146103b957806332c0defd146103c85780633644e515146103d1578063443cb4bc146103d95780634d5a9f8a146103e257600080fd5b806313345fe11161023c57806313345fe11461032b57806318160ddd1461034b57806318aa6e8c14610360578063205aabf11461037357806323b872dd14610393578063252c09d7146103a657600080fd5b806306fdde03146102795780630902f1ac14610297578063095ea7b3146102bc5780630dfe1681146102df5780631125f13f1461030a575b600080fd5b610281610626565b60405161028e9190613380565b60405180910390f35b600854600954600a545b6040805193845260208401929092529082015260600161028e565b6102cf6102ca3660046133a8565b6106cf565b604051901515815260200161028e565b6000546102f2906001600160a01b031681565b6040516001600160a01b03909116815260200161028e565b61031d6103183660046133d4565b6106e9565b60405190815260200161028e565b61033e610339366004613404565b6107a2565b60405161028e919061347a565b600080516020613b688339815191525461031d565b6004546102f2906001600160a01b031681565b61031d61038136600461348d565b60106020526000908152604090205481565b6102cf6103a13660046134aa565b6109a8565b6102a16103b43660046134eb565b6109ce565b6040516012815260200161028e565b61031d600d5481565b61031d610a01565b61031d60085481565b61031d6103f036600461348d565b60116020526000908152604090205481565b61033e610410366004613504565b610a10565b61031d60095481565b61031d61042c36600461348d565b610a27565b61044461043f366004613539565b610c70565b005b61031d61045436600461348d565b6111ad565b61031d61046736600461348d565b6111e0565b6104746111eb565b60405161028e9796959493929190613572565b61049a61049536600461348d565b61129c565b6040805192835260208301919091520161028e565b6104b76115a9565b604080518251815260208084015190820152918101519082015260600161028e565b610281611629565b6002546102f2906001600160a01b031681565b600054600154604080516001600160a01b0393841681529290911660208301520161028e565b61031d61052836600461348d565b600f6020526000908152604090205481565b61031d61054836600461348d565b60126020526000908152604090205481565b6102cf6105683660046133a8565b611668565b61044461057b36600461348d565b611676565b61031d600e5481565b61031d600b5481565b6104446105a03660046135e2565b6117bf565b61031d600c5481565b6003546102f2906001600160a01b031681565b61031d600a5481565b6001546102f2906001600160a01b031681565b61049a611df9565b6104446105f3366004613631565b611f03565b61031d6106063660046136a2565b61205c565b61031d6106193660046133d4565b6120a6565b61044461214f565b60606000600080516020613b488339815191525b905080600301805461064b906136d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610677906136d0565b80156106c45780601f10610699576101008083540402835291602001916106c4565b820191906000526020600020905b8154815290600101906020018083116106a757829003601f168201915b505050505091505090565b6000336106dd818585612255565b60019150505b92915050565b6008546009546003546040805163ddca3f4360e01b8152905160009493926001600160a01b03169163ddca3f439160048083019260209291908290030181865afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f919061370a565b61076b90612710613739565b61271061077a87878686612262565b610784919061374c565b61078e9190613779565b61079990600161379b565b95945050505050565b606060008367ffffffffffffffff8111156107bf576107bf6137ae565b6040519080825280602002602001820160405280156107e8578160200160208202803683370190505b506005549091506000906107fe90600190613739565b9050600061080c858761374c565b6108169083613739565b90506000805b8383101561099a5761082e878461379b565b9150600060058481548110610845576108456137c4565b9060005260206000209060030201600001546005848154811061086a5761086a6137c4565b9060005260206000209060030201600001546108869190613739565b90506000816005868154811061089e5761089e6137c4565b906000526020600020906003020160010154600586815481106108c3576108c36137c4565b9060005260206000209060030201600101546108df9190613739565b6108e99190613779565b905060008260058781548110610901576109016137c4565b90600052602060002090600302016002015460058781548110610926576109266137c4565b9060005260206000209060030201600201546109429190613739565b61094c9190613779565b905061095a8c8e84846122b4565b88858151811061096c5761096c6137c4565b602090810291909101015261098284600161379b565b93505050508683610993919061379b565b925061081c565b509298975050505050505050565b6000336109b68582856122f1565b6109c1858585612357565b60019150505b9392505050565b600581815481106109de57600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b6000610a0b6123b6565b905090565b6060610a1f84848460016107a2565b949350505050565b6000610a316123c0565b600480546001600160a01b03191633178155600854600954600080546040516370a0823160e01b815230958101959095529293919290916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abe919061370a565b6001546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b30919061370a565b90506000610b3e8584613739565b90506000610b4c8584613739565b90506000610b66600080516020613b688339815191525490565b905080600003610ba3576103e8610b85610b80848661374c565b6123f8565b610b8f9190613739565b9750610b9e60016103e86124e0565b610bd8565b610bd587610bb1838661374c565b610bbb9190613779565b87610bc6848661374c565b610bd09190613779565b61251a565b97505b87600003610bf957604051633489be7560e21b815260040160405180910390fd5b610c0389896124e0565b610c0f85858989612530565b604080518481526020810184905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a25050600480546001600160a01b031916905550610c6b93506126c492505050565b919050565b610c786123c0565b600480546001600160a01b0319163317905582158015610c96575081155b15610cb4576040516342301c2360e01b815260040160405180910390fd5b6008546009548185101580610cc95750808410155b15610ce75760405163bb55fd2760e01b815260040160405180910390fd5b6000805460015482916001600160a01b03908116918116908716821480610d1f5750806001600160a01b0316876001600160a01b0316145b15610d3d57604051631e4ec46b60e01b815260040160405180910390fd5b8815610d5757610d576001600160a01b038316888b6126d8565b8715610d7157610d716001600160a01b038216888a6126d8565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd9919061370a565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa158015610e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e44919061370a565b9250505060008785610e569190613739565b8311610e63576000610e77565b610e6d8886613739565b610e779084613739565b90506000610e858886613739565b8311610e92576000610ea6565b610e9c8886613739565b610ea69084613739565b905081158015610eb4575080155b15610ed25760405163098fb56160e01b815260040160405180910390fd5b6000546001546001600160a01b0391821691168315610f8157610f81612710600360009054906101000a90046001600160a01b03166001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f68919061370a565b610f72908761374c565b610f7c9190613779565b61272a565b821561101d5761101d612710600360009054906101000a90046001600160a01b03166001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611004919061370a565b61100e908661374c565b6110189190613779565b6127db565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015611061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611085919061370a565b6040516370a0823160e01b81523060048201529096506001600160a01b038216906370a0823190602401602060405180830381865afa1580156110cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f0919061370a565b94506110fc8888612885565b6111068787612885565b101561112557604051633876c51d60e11b815260040160405180910390fd5b505061113384848888612530565b60408051838152602081018390529081018a9052606081018990526001600160a01b0388169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a35050600480546001600160a01b0319169055506111a892506126c4915050565b505050565b600080600080516020613b488339815191525b6001600160a01b0390931660009081526020939093525050604090205490565b60006106e382612891565b60006060808280808381600080516020613b88833981519152805490915015801561121857506001810154155b6112615760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064015b60405180910390fd5b6112696128ba565b6112716128f9565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806112a76123c0565b600480546001600160a01b03191633178155600854600954600080546001546040516370a0823160e01b81523096810196909652939492936001600160a01b03918216939116919083906370a0823190602401602060405180830381865afa158015611317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133b919061370a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a9919061370a565b905060006113b6306111ad565b905060006113d0600080516020613b688339815191525490565b9050806113dd858461374c565b6113e79190613779565b9950806113f4848461374c565b6113fe9190613779565b985089158061140b575088155b156114295760405163749383ad60e01b815260040160405180910390fd5b6114333083612911565b6114476001600160a01b0387168c8c6126d8565b61145b6001600160a01b0386168c8b6126d8565b6040516370a0823160e01b81523060048201526001600160a01b038716906370a0823190602401602060405180830381865afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c3919061370a565b6040516370a0823160e01b81523060048201529094506001600160a01b038616906370a0823190602401602060405180830381865afa15801561150a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e919061370a565b925061153c84848a8a612530565b604080518b8152602081018b90526001600160a01b038d169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050600480546001600160a01b0319169055506115a494506126c49350505050565b915091565b6115cd60405180606001604052806000815260200160008152602001600081525090565b600580546115dd90600190613739565b815481106115ed576115ed6137c4565b90600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace048054606091600080516020613b488339815191529161064b906136d0565b6000336106dd818585612357565b61167e6123c0565b6000546001546008546040516370a0823160e01b81523060048201526001600160a01b03938416939092169161171791859185906370a0823190602401602060405180830381865afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fc919061370a565b6117069190613739565b6001600160a01b03851691906126d8565b6009546040516370a0823160e01b81523060048201526117a39185916001600160a01b038516906370a0823190602401602060405180830381865afa158015611764573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611788919061370a565b6117929190613739565b6001600160a01b03841691906126d8565b50506117bc6001600080516020613ba883398151915255565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156118055750825b905060008267ffffffffffffffff1660011480156118225750303b155b905081158015611830575080155b1561184e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561187857845460ff60401b1916600160401b1785555b611880612947565b611a60886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156118c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118e991908101906137da565b886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611927573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261194f91908101906137da565b60405160200161196092919061387c565b604051602081830303815290604052896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156119ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119d591908101906137da565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611a13573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a3b91908101906137da565b604051602001611a4c92919061387c565b604051602081830303815290604052612957565b611b54886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ac991908101906137da565b886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611b07573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b2f91908101906137da565b604051602001611b4092919061387c565b604051602081830303815290604052612969565b6040516317e0bab960e11b81526001600160a01b0389811660048301528881166024830152871690632fc17572906044016020604051808303816000875af1158015611ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc891906138b8565b600260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5091906138d5565b611c5b90600a6139d6565b600681905550866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc391906138d5565b611cce90600a6139d6565b600755600080546001600160a01b03808b166001600160a01b031992831617835560018054918b169183169190911781556003805490921633178255604080516060810182524281526020810185815291810185815260058054948501815590955251919092027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019190915590517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db182015590517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2909101558315611def57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b600080611e0533612994565b50503360009081526011602090815260408083205460129092529091205481151580611e315750600081115b15611eff57336000818152601160209081526040808320839055601290915280822091909155600254905163299e7ae760e11b8152600481019290925260248201849052604482018390526001600160a01b03169063533cf5ce90606401600060405180830381600087803b158015611ea957600080fd5b505af1158015611ebd573d6000803e3d6000fd5b505060408051858152602081018590523393508392507f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e94645910160405180910390a35b9091565b83421115611f275760405163313c898160e11b815260048101859052602401611258565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888611f938c6001600160a01b031660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000611fee82612ae7565b90506000611ffe82878787612b14565b9050896001600160a01b0316816001600160a01b031614612045576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401611258565b6120508a8a8a612255565b50505050505050505050565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6008546009546003546040805163ddca3f4360e01b815290516000949392612710926001600160a01b039091169163ddca3f43916004808201926020929091908290030181865afa1580156120ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612123919061370a565b61212d908761374c565b6121379190613779565b6121419086613739565b9450610799858584846122b4565b6121576123c0565b6000546040516370a0823160e01b815230600482015261223c916001600160a01b0316906370a0823190602401602060405180830381865afa1580156121a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c5919061370a565b6001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561220d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612231919061370a565b600854600954612530565b6122536001600080516020613ba883398151915255565b565b6111a88383836001612b42565b60008054819081906001600160a01b03878116911614612283578385612286565b84845b90925090506122958783613739565b61229f888361374c565b6122a99190613779565b979650505050505050565b60008054819081906001600160a01b038781169116146122d55783856122d8565b84845b90925090506122e7878361379b565b61229f828961374c565b60006122fd848461205c565b90506000198114612351578181101561234257604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401611258565b61235184848484036000612b42565b50505050565b6001600160a01b03831661238157604051634b637e8f60e11b815260006004820152602401611258565b6001600160a01b0382166123ab5760405163ec442f0560e01b815260006004820152602401611258565b6111a8838383612c2a565b6000610a0b612c47565b600080516020613ba88339815191528054600119016123f257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60008160000361240a57506000919050565b6000600161241784612cbb565b901c6001901b9050600181848161243057612430613763565b048201901c9050600181848161244857612448613763565b048201901c9050600181848161246057612460613763565b048201901c9050600181848161247857612478613763565b048201901c9050600181848161249057612490613763565b048201901c905060018184816124a8576124a8613763565b048201901c905060018184816124c0576124c0613763565b048201901c90506109c7818285816124da576124da613763565b0461251a565b6001600160a01b03821661250a5760405163ec442f0560e01b815260006004820152602401611258565b61251660008383612c2a565b5050565b600081831061252957816109c7565b5090919050565b600a5442906000906125429083613739565b905060008111801561255357508315155b801561255e57508215155b156125a55761256d818561374c565b600b600082825461257e919061379b565b9091555061258e9050818461374c565b600c600082825461259f919061379b565b90915550505b60006125af6115a9565b80519091506125be9084613739565b91506107088211156126735760408051606081018252848152600b5460208201908152600c549282019283526005805460018101825560009190915291517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0600390930292830155517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db182015590517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2909101555b60088790556009869055600a83905560408051888152602081018890527fcf2aa50876cdfbb541206f89af0ee78d44a2abf8d328e37fa4917f982149848a910160405180910390a150505050505050565b6001600080516020613ba883398151915255565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526111a8908490612d4f565b600254600054612747916001600160a01b039182169116836126d8565b600061275f600080516020613b688339815191525490565b61277183670de0b6b3a764000061374c565b61277b9190613779565b9050801561279b5780600d6000828254612795919061379b565b90915550505b604080518381526000602082015233917f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a860291015b60405180910390a25050565b6002546001546127f8916001600160a01b039182169116836126d8565b6000612810600080516020613b688339815191525490565b61282283670de0b6b3a764000061374c565b61282c9190613779565b9050801561284c5780600e6000828254612846919061379b565b90915550505b60408051600081526020810184905233917f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a860291016127cf565b60006109c7828461374c565b6000807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006111c0565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1028054606091600080516020613b888339815191529161064b906136d0565b60606000600080516020613b8883398151915261063a565b6001600160a01b03821661293b57604051634b637e8f60e11b815260006004820152602401611258565b61251682600083612c2a565b61294f612db2565b612253612dfb565b61295f612db2565b6125168282612e03565b612971612db2565b6117bc81604051806040016040528060018152602001603160f81b815250612e54565b600061299f826111ad565b90508015612ab5576001600160a01b0382166000908152600f60209081526040808320805460108085529285208054600d54600e549481905594909552829055936129ea8584613739565b905060006129f88584613739565b90508115612a53576000670de0b6b3a7640000612a15848a61374c565b612a1f9190613779565b6001600160a01b038a16600090815260116020526040812080549293508392909190612a4c90849061379b565b9091555050505b8015611def576000670de0b6b3a7640000612a6e838a61374c565b612a789190613779565b6001600160a01b038a16600090815260126020526040812080549293508392909190612aa590849061379b565b9091555050505050505050505050565b600d546001600160a01b0383166000908152600f6020908152604080832093909355600e546010909152919020555050565b60006106e3612af46123b6565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080612b2688888888612eb5565b925092509250612b368282612f84565b50909695505050505050565b600080516020613b488339815191526001600160a01b038516612b7b5760405163e602df0560e01b815260006004820152602401611258565b6001600160a01b038416612ba557604051634a1406b160e11b815260006004820152602401611258565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115612c2357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051612c1a91815260200190565b60405180910390a35b5050505050565b612c3383612994565b612c3c82612994565b6111a883838361303d565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612c7261317b565b612c7a6131e5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600080608083901c15612cd057608092831c92015b604083901c15612ce257604092831c92015b602083901c15612cf457602092831c92015b601083901c15612d0657601092831c92015b600883901c15612d1857600892831c92015b600483901c15612d2a57600492831c92015b600283901c15612d3c57600292831c92015b600183901c156106e35760010192915050565b6000612d646001600160a01b03841683613229565b90508051600014158015612d89575080806020019051810190612d8791906139e5565b155b156111a857604051635274afe760e01b81526001600160a01b0384166004820152602401611258565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661225357604051631afcd79f60e31b815260040160405180910390fd5b6126c4612db2565b612e0b612db2565b600080516020613b488339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612e458482613a55565b50600481016123518382613a55565b612e5c612db2565b600080516020613b888339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102612e968482613a55565b5060038101612ea58382613a55565b5060008082556001909101555050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612ef05750600091506003905082612f7a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612f44573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612f7057506000925060019150829050612f7a565b9250600091508190505b9450945094915050565b6000826003811115612f9857612f98613b15565b03612fa1575050565b6001826003811115612fb557612fb5613b15565b03612fd35760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612fe757612fe7613b15565b036130085760405163fce698f760e01b815260048101829052602401611258565b600382600381111561301c5761301c613b15565b03612516576040516335e2f38360e21b815260048101829052602401611258565b600080516020613b488339815191526001600160a01b038416613079578181600201600082825461306e919061379b565b909155506130eb9050565b6001600160a01b038416600090815260208290526040902054828110156130cc5760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401611258565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316613109576002810180548390039055613128565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161316d91815260200190565b60405180910390a350505050565b6000600080516020613b88833981519152816131956128ba565b8051909150156131ad57805160209091012092915050565b815480156131bc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b6000600080516020613b88833981519152816131ff6128f9565b80519091501561321757805160209091012092915050565b600182015480156131bc579392505050565b60606109c78383600084600080856001600160a01b0316848660405161324f9190613b2b565b60006040518083038185875af1925050503d806000811461328c576040519150601f19603f3d011682016040523d82523d6000602084013e613291565b606091505b50915091506132a18683836132ab565b9695505050505050565b6060826132c0576132bb82613307565b6109c7565b81511580156132d757506001600160a01b0384163b155b1561330057604051639996b31560e01b81526001600160a01b0385166004820152602401611258565b50806109c7565b8051156133175780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b8381101561334b578181015183820152602001613333565b50506000910152565b6000815180845261336c816020860160208601613330565b601f01601f19169290920160200192915050565b6020815260006109c76020830184613354565b6001600160a01b03811681146117bc57600080fd5b600080604083850312156133bb57600080fd5b82356133c681613393565b946020939093013593505050565b600080604083850312156133e757600080fd5b8235915060208301356133f981613393565b809150509250929050565b6000806000806080858703121561341a57600080fd5b843561342581613393565b966020860135965060408601359560600135945092505050565b600081518084526020808501945080840160005b8381101561346f57815187529582019590820190600101613453565b509495945050505050565b6020815260006109c7602083018461343f565b60006020828403121561349f57600080fd5b81356109c781613393565b6000806000606084860312156134bf57600080fd5b83356134ca81613393565b925060208401356134da81613393565b929592945050506040919091013590565b6000602082840312156134fd57600080fd5b5035919050565b60008060006060848603121561351957600080fd5b833561352481613393565b95602085013595506040909401359392505050565b60008060006060848603121561354e57600080fd5b8335925060208401359150604084013561356781613393565b809150509250925092565b60ff60f81b8816815260e06020820152600061359160e0830189613354565b82810360408401526135a38189613354565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506135d4818561343f565b9a9950505050505050505050565b6000806000606084860312156135f757600080fd5b833561360281613393565b9250602084013561361281613393565b9150604084013561356781613393565b60ff811681146117bc57600080fd5b600080600080600080600060e0888a03121561364c57600080fd5b873561365781613393565b9650602088013561366781613393565b95506040880135945060608801359350608088013561368581613622565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156136b557600080fd5b82356136c081613393565b915060208301356133f981613393565b600181811c908216806136e457607f821691505b60208210810361370457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561371c57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106e3576106e3613723565b80820281158282048414176106e3576106e3613723565b634e487b7160e01b600052601260045260246000fd5b60008261379657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106e3576106e3613723565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156137ec57600080fd5b815167ffffffffffffffff8082111561380457600080fd5b818401915084601f83011261381857600080fd5b81518181111561382a5761382a6137ae565b604051601f8201601f19908116603f01168101908382118183101715613852576138526137ae565b8160405282815287602084870101111561386b57600080fd5b6122a9836020830160208801613330565b6000835161388e818460208801613330565b602f60f81b90830190815283516138ac816001840160208801613330565b01600101949350505050565b6000602082840312156138ca57600080fd5b81516109c781613393565b6000602082840312156138e757600080fd5b81516109c781613622565b600181815b8085111561392d57816000190482111561391357613913613723565b8085161561392057918102915b93841c93908002906138f7565b509250929050565b600082613944575060016106e3565b81613951575060006106e3565b816001811461396757600281146139715761398d565b60019150506106e3565b60ff84111561398257613982613723565b50506001821b6106e3565b5060208310610133831016604e8410600b84101617156139b0575081810a6106e3565b6139ba83836138f2565b80600019048211156139ce576139ce613723565b029392505050565b60006109c760ff841683613935565b6000602082840312156139f757600080fd5b815180151581146109c757600080fd5b601f8211156111a857600081815260208120601f850160051c81016020861015613a2e5750805b601f850160051c820191505b81811015613a4d57828155600101613a3a565b505050505050565b815167ffffffffffffffff811115613a6f57613a6f6137ae565b613a8381613a7d84546136d0565b84613a07565b602080601f831160018114613ab85760008415613aa05750858301515b600019600386901b1c1916600185901b178555613a4d565b600085815260208120601f198616915b82811015613ae757888601518255948401946001909101908401613ac8565b5085821015613b055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60008251613b3d818460208701613330565b919091019291505056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220731bd122dc5fa0440bac191389608d174dd3fb257817a5c155c8caed64868caf64736f6c63430008140033