[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": 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": "uint112", "name": "reserve0", "type": "uint112" }, { "indexed": false, "internalType": "uint112", "name": "reserve1", "type": "uint112" } ], "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": [], "name": "MINIMUM_LIQUIDITY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "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": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint112", "name": "_reserve0", "type": "uint112" }, { "internalType": "uint112", "name": "_reserve1", "type": "uint112" }, { "internalType": "uint32", "name": "_blockTimestampLast", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "kLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "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": [], "name": "price0CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price1CumulativeLast", "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": "uint256", "name": "amount0Out", "type": "uint256" }, { "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "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": "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" } ]
60806040526001600c5534801561001557600080fd5b5060408051808201825260118152702b30b837b92222ac102628102a37b5b2b760791b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f796da4d814f4b02d6d37f63ad3b3bb91ee7d11457581931e0ce777318f661dab918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f198184030181529190528051602090910120600355600580546001600160a01b0319163317905561249b806101156000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a71461040c578063d505accf1461041f578063dd62ed3e14610432578063fff6cae91461045d57600080fd5b8063ba9a7a56146103dd578063bc25cf77146103e6578063c45a0155146103f957600080fd5b80637ecebe00116100d35780637ecebe001461036057806389afcb441461038057806395d89b41146103a8578063a9059cbb146103ca57600080fd5b80636a6278421461032457806370a08231146103375780637464fc3d1461035757600080fd5b806323b872dd116101665780633644e515116101405780633644e515146102f6578063485cc955146102ff5780635909c0d5146103125780635a3d54931461031b57600080fd5b806323b872dd146102a257806330adf81f146102b5578063313ce567146102dc57600080fd5b8063022c0d9f146101ae57806306fdde03146101c35780630902f1ac14610209578063095ea7b31461023d5780630dfe16811461026057806318160ddd1461028b575b600080fd5b6101c16101bc366004612011565b610465565b005b6101f3604051806040016040528060118152602001702b30b837b92222ac102628102a37b5b2b760791b81525081565b60405161020091906120d7565b60405180910390f35b610211610972565b604080516001600160701b03948516815293909216602084015263ffffffff1690820152606001610200565b61025061024b36600461210a565b61099c565b6040519015158152602001610200565b600654610273906001600160a01b031681565b6040516001600160a01b039091168152602001610200565b61029460005481565b604051908152602001610200565b6102506102b0366004612136565b6109b2565b6102947f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102e4601281565b60405160ff9091168152602001610200565b61029460035481565b6101c161030d366004612177565b610a47565b61029460095481565b610294600a5481565b6102946103323660046121b0565b610b1d565b6102946103453660046121b0565b60016020526000908152604090205481565b610294600b5481565b61029461036e3660046121b0565b60046020526000908152604090205481565b61039361038e3660046121b0565b610f78565b60408051928352602083019190915201610200565b6101f3604051806040016040528060038152602001620564c560ec1b81525081565b6102506103d836600461210a565b6112dc565b6102946103e881565b6101c16103f43660046121b0565b6112e9565b600554610273906001600160a01b031681565b600754610273906001600160a01b031681565b6101c161042d3660046121cd565b6113fc565b610294610440366004612177565b600260209081526000928352604080842090915290825290205481565b6101c16115bf565b600c546001146104905760405162461bcd60e51b815260040161048790612244565b60405180910390fd5b6000600c55841515806104a35750600084115b6104fb5760405162461bcd60e51b8152602060048201526024808201527f5661706f724445583a20494e53554646494349454e545f4f55545055545f414d60448201526313d5539560e21b6064820152608401610487565b600080610506610972565b5091509150816001600160701b03168710801561052b5750806001600160701b031686105b6105775760405162461bcd60e51b815260206004820181905260248201527f5661706f724445583a20494e53554646494349454e545f4c49515549444954596044820152606401610487565b60065460075460009182916001600160a01b039182169190811690891682148015906105b55750806001600160a01b0316896001600160a01b031614155b6105f85760405162461bcd60e51b81526020600482015260146024820152735661706f724445583a20494e56414c49445f544f60601b6044820152606401610487565b8a1561060957610609828a8d6116e3565b891561061a5761061a818a8c6116e3565b861561068757604051630783fdd360e31b81526001600160a01b038a1690633c1fee98906106549033908f908f908e908e9060040161226e565b600060405180830381600087803b15801561066e57600080fd5b505af1158015610682573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156106cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef91906122ba565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a91906122ba565b92505050600089856001600160701b031661077591906122e9565b831161078257600061079f565b6107958a6001600160701b0387166122e9565b61079f90846122e9565b905060006107b68a6001600160701b0387166122e9565b83116107c35760006107e0565b6107d68a6001600160701b0387166122e9565b6107e090846122e9565b905060008211806107f15750600081115b6108495760405162461bcd60e51b815260206004820152602360248201527f5661706f724445583a20494e53554646494349454e545f494e5055545f414d4f60448201526215539560ea1b6064820152608401610487565b600061085683601d612300565b61086286612710612300565b61086c91906122e9565b9050600061087b83601d612300565b61088786612710612300565b61089191906122e9565b90506108a96001600160701b03808916908a16612300565b6108b7906305f5e100612300565b6108c18284612300565b10156108fd5760405162461bcd60e51b815260206004820152600b60248201526a5661706f724445583a204b60a81b6044820152606401610487565b505061090b8484888861182e565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600c55505050505050505050565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b60006109a9338484611a19565b50600192915050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610a32576001600160a01b0384166000908152600260209081526040808320338452909152902054610a0d9083906122e9565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610a3d848484611a7b565b5060019392505050565b6005546001600160a01b03163314610a975760405162461bcd60e51b81526020600482015260136024820152722b30b837b92222ac1d102327a92124a22222a760691b6044820152606401610487565b6001600160a01b03821615801590610ab757506001600160a01b03811615155b610aef5760405162461bcd60e51b815260206004820152600960248201526804164647265737320360bc1b6044820152606401610487565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6000600c54600114610b415760405162461bcd60e51b815260040161048790612244565b6000600c81905580610b51610972565b506006546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc791906122ba565b6007546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3991906122ba565b90506000610c506001600160701b038616846122e9565b90506000610c676001600160701b038616846122e9565b90506000610c758787611b23565b60005490915080610e445760055460408051637cd07e4760e01b815290516000926001600160a01b031691637cd07e479160048083019260209291908290030181865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee919061231f565b9050336001600160a01b0382161415610dc057806001600160a01b03166340dc0e376040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6391906122ba565b995060008a118015610d7757506000198a14155b610dbb5760405162461bcd60e51b81526020600482015260156024820152744261642064657369726564206c697175696469747960581b6044820152606401610487565b610e3e565b6001600160a01b03811615610e105760405162461bcd60e51b815260206004820152601660248201527526bab9ba103737ba103430bb329036b4b3b930ba37b960511b6044820152606401610487565b6103e8610e25610e208688612300565b611c77565b610e2f91906122e9565b9950610e3e60006103e8611ce7565b50610e8b565b610e886001600160701b038916610e5b8387612300565b610e659190612352565b6001600160701b038916610e798487612300565b610e839190612352565b611d78565b98505b60008911610eeb5760405162461bcd60e51b815260206004820152602760248201527f5661706f724445583a20494e53554646494349454e545f4c495155494449545960448201526617d3525395115160ca1b6064820152608401610487565b610ef58a8a611ce7565b610f0186868a8a61182e565b8115610f2a57600854610f26906001600160701b03600160701b820481169116612300565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600c5550949695505050505050565b600080600c54600114610f9d5760405162461bcd60e51b815260040161048790612244565b6000600c81905580610fad610972565b506006546007546040516370a0823160e01b81523060048201529395509193506001600160a01b039081169291169060009083906370a0823190602401602060405180830381865afa158015611007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102b91906122ba565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109991906122ba565b306000908152600160205260408120549192506110b68888611b23565b600054909150806110c78685612300565b6110d19190612352565b9a50806110de8585612300565b6110e89190612352565b995060008b1180156110fa575060008a115b6111565760405162461bcd60e51b815260206004820152602760248201527f5661706f724445583a20494e53554646494349454e545f4c495155494449545960448201526617d0955493915160ca1b6064820152608401610487565b6111603084611d90565b61116b878d8d6116e3565b611176868d8c6116e3565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa1580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de91906122ba565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa158015611225573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124991906122ba565b935061125785858b8b61182e565b81156112805760085461127c906001600160701b03600160701b820481169116612300565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600c81905550915091565b60006109a9338484611a7b565b600c5460011461130b5760405162461bcd60e51b815260040161048790612244565b6000600c556006546007546008546040516370a0823160e01b81523060048201526001600160a01b0393841693909216916113aa91849186916001600160701b03169083906370a08231906024015b602060405180830381865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b91906122ba565b6113a591906122e9565b6116e3565b6008546040516370a0823160e01b81523060048201526113f29183918691600160701b90046001600160701b0316906001600160a01b038416906370a082319060240161135a565b50506001600c5550565b428410156114405760405162461bcd60e51b815260206004820152601160248201527015985c1bdc9111560e8811561412549151607a1b6044820152606401610487565b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b91908761149383612366565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161150c92919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050600061153282868686611e1c565b90506001600160a01b0381161580159061155d5750886001600160a01b0316816001600160a01b0316145b6115a95760405162461bcd60e51b815260206004820152601b60248201527f5661706f724445583a20494e56414c49445f5349474e415455524500000000006044820152606401610487565b6115b4898989611a19565b505050505050505050565b600c546001146115e15760405162461bcd60e51b815260040161048790612244565b6000600c556006546040516370a0823160e01b81523060048201526116dc916001600160a01b0316906370a0823190602401602060405180830381865afa158015611630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165491906122ba565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561169c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c091906122ba565b6008546001600160701b0380821691600160701b90041661182e565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1790529151600092839287169161176f9190612381565b6000604051808303816000865af19150503d80600081146117ac576040519150601f19603f3d011682016040523d82523d6000602084013e6117b1565b606091505b50915091508180156117db5750805115806117db5750808060200190518101906117db919061239d565b6118275760405162461bcd60e51b815260206004820152601960248201527f5661706f724445583a205452414e534645525f4641494c4544000000000000006044820152606401610487565b5050505050565b6001600160701b03841180159061184c57506001600160701b038311155b61188d5760405162461bcd60e51b81526020600482015260126024820152715661706f724445583a204f564552464c4f5760701b6044820152606401610487565b600061189e640100000000426123bf565b6008549091506000906118be90600160e01b900463ffffffff16836123d3565b905060008163ffffffff161180156118de57506001600160701b03841615155b80156118f257506001600160701b03831615155b15611981578063ffffffff1661191a8561190b86611fc5565b6001600160e01b031690611fe4565b6001600160e01b031661192d9190612300565b6009600082825461193e91906123f8565b909155505063ffffffff81166119578461190b87611fc5565b6001600160e01b031661196a9190612300565b600a600082825461197b91906123f8565b90915550505b6008805463ffffffff8416600160e01b026001600160e01b036001600160701b03898116600160701b9081026001600160e01b03199095168c83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505050505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316600090815260016020526040902054611a9f9082906122e9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611acf9082906123f8565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a6e9085815260200190565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663c415b95c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9d919061231f565b600b546001600160a01b038216158015945091925090611c63578015611c5e576000611bd8610e206001600160701b03808816908916612300565b90506000611be583611c77565b905080821115611c5b576000611bfb82846122e9565b600054611c089190612300565b611c13906004612300565b90506000611c22836004612300565b611c2d856019612300565b611c3791906123f8565b90506000611c458284612352565b90508015611c5757611c578782611ce7565b5050505b50505b611c6f565b8015611c6f576000600b555b505092915050565b60006003821115611cd85750806000611c91600283612352565b611c9c9060016123f8565b90505b81811015611cd257905080600281611cb78186612352565b611cc191906123f8565b611ccb9190612352565b9050611c9f565b50919050565b8115611ce2575060015b919050565b80600054611cf591906123f8565b60009081556001600160a01b038316815260016020526040902054611d1b9082906123f8565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d6c9085815260200190565b60405180910390a35050565b6000818310611d875781611d89565b825b9392505050565b6001600160a01b038216600090815260016020526040902054611db49082906122e9565b6001600160a01b03831660009081526001602052604081209190915554611ddc9082906122e9565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611d6c565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611e995760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610487565b8360ff16601b1480611eae57508360ff16601c145b611f055760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610487565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611f59573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611fbc5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610487565b95945050505050565b6000611fde600160701b6001600160701b038416612410565b92915050565b6000611d896001600160701b0383168461243f565b6001600160a01b038116811461200e57600080fd5b50565b60008060008060006080868803121561202957600080fd5b8535945060208601359350604086013561204281611ff9565b9250606086013567ffffffffffffffff8082111561205f57600080fd5b818801915088601f83011261207357600080fd5b81358181111561208257600080fd5b89602082850101111561209457600080fd5b9699959850939650602001949392505050565b60005b838110156120c25781810151838201526020016120aa565b838111156120d1576000848401525b50505050565b60208152600082518060208401526120f68160408501602087016120a7565b601f01601f19169190910160400192915050565b6000806040838503121561211d57600080fd5b823561212881611ff9565b946020939093013593505050565b60008060006060848603121561214b57600080fd5b833561215681611ff9565b9250602084013561216681611ff9565b929592945050506040919091013590565b6000806040838503121561218a57600080fd5b823561219581611ff9565b915060208301356121a581611ff9565b809150509250929050565b6000602082840312156121c257600080fd5b8135611d8981611ff9565b600080600080600080600060e0888a0312156121e857600080fd5b87356121f381611ff9565b9650602088013561220381611ff9565b95506040880135945060608801359350608088013560ff8116811461222757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60208082526010908201526f15985c1bdc9111560e881313d0d2d15160821b604082015260600190565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b6000602082840312156122cc57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156122fb576122fb6122d3565b500390565b600081600019048311821515161561231a5761231a6122d3565b500290565b60006020828403121561233157600080fd5b8151611d8981611ff9565b634e487b7160e01b600052601260045260246000fd5b6000826123615761236161233c565b500490565b600060001982141561237a5761237a6122d3565b5060010190565b600082516123938184602087016120a7565b9190910192915050565b6000602082840312156123af57600080fd5b81518015158114611d8957600080fd5b6000826123ce576123ce61233c565b500690565b600063ffffffff838116908316818110156123f0576123f06122d3565b039392505050565b6000821982111561240b5761240b6122d3565b500190565b60006001600160e01b0382811684821681151582840482111615612436576124366122d3565b02949350505050565b60006001600160e01b03838116806124595761245961233c565b9216919091049291505056fea264697066735822122000eb776c2009ea482087568ab648f79196d66d11a4b9f85316ef3f49381f140b64736f6c634300080c0033