[ { "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" } ]
60806040526001600c5534801561001557600080fd5b50604080518082018252600681526525232c102b1960d11b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f0aa5abe42c453a012b8a1287f21008695ac9ee11b7ec2ffb337bfeedbe5e8a83918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152610dad60808201523060a082015260c00160408051601f198184030181529190528051602090910120600355600580546001600160a01b031916331790556122218061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610404578063d505accf14610417578063dd62ed3e1461042a578063fff6cae91461045557600080fd5b8063ba9a7a56146103d5578063bc25cf77146103de578063c45a0155146103f157600080fd5b80637ecebe00116100d35780637ecebe001461035557806389afcb441461037557806395d89b411461039d578063a9059cbb146103c257600080fd5b80636a6278421461031957806370a082311461032c5780637464fc3d1461034c57600080fd5b806323b872dd116101665780633644e515116101405780633644e515146102eb578063485cc955146102f45780635909c0d5146103075780635a3d54931461031057600080fd5b806323b872dd1461029757806330adf81f146102aa578063313ce567146102d157600080fd5b8063022c0d9f146101ae57806306fdde03146101c35780630902f1ac146101fe578063095ea7b3146102325780630dfe16811461025557806318160ddd14610280575b600080fd5b6101c16101bc366004611db3565b61045d565b005b6101e86040518060400160405280600681526020016525232c102b1960d11b81525081565b6040516101f59190611e6d565b60405180910390f35b610206610963565b604080516001600160701b03948516815293909216602084015263ffffffff16908201526060016101f5565b610245610240366004611ea0565b61098d565b60405190151581526020016101f5565b600654610268906001600160a01b031681565b6040516001600160a01b0390911681526020016101f5565b61028960005481565b6040519081526020016101f5565b6102456102a5366004611ecc565b6109a4565b6102897f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102d9601281565b60405160ff90911681526020016101f5565b61028960035481565b6101c1610302366004611f0d565b610a38565b61028960095481565b610289600a5481565b610289610327366004611f46565b610ab7565b61028961033a366004611f46565b60016020526000908152604090205481565b610289600b5481565b610289610363366004611f46565b60046020526000908152604090205481565b610388610383366004611f46565b610d7f565b604080519283526020830191909152016101f5565b6101e86040518060400160405280600681526020016525232c16ab1960d11b81525081565b6102456103d0366004611ea0565b6110e5565b6102896103e881565b6101c16103ec366004611f46565b6110f2565b600554610268906001600160a01b031681565b600754610268906001600160a01b031681565b6101c1610425366004611f63565b611206565b610289610438366004611f0d565b600260209081526000928352604080842090915290825290205481565b6101c161141a565b600c546001146104885760405162461bcd60e51b815260040161047f90611fda565b60405180910390fd5b6000600c558415158061049b5750600084115b6104f55760405162461bcd60e51b815260206004820152602560248201527f4c69717569645876323a20494e53554646494349454e545f4f55545055545f416044820152641353d5539560da1b606482015260840161047f565b600080610500610963565b5091509150816001600160701b0316871080156105255750806001600160701b031686105b61057b5760405162461bcd60e51b815260206004820152602160248201527f4c69717569645876323a20494e53554646494349454e545f4c495155494449546044820152605960f81b606482015260840161047f565b60065460075460009182916001600160a01b039182169190811690891682148015906105b95750806001600160a01b0316896001600160a01b031614155b6105fd5760405162461bcd60e51b81526020600482015260156024820152744c69717569645876323a20494e56414c49445f544f60581b604482015260640161047f565b8a1561060e5761060e828a8d61153e565b891561061f5761061f818a8c61153e565b861561068c5760405163623ab41560e01b81526001600160a01b038a169063623ab415906106599033908f908f908e908e90600401612005565b600060405180830381600087803b15801561067357600080fd5b505af1158015610687573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156106d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f49190612051565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f9190612051565b92505050600089856001600160701b031661077a9190612080565b83116107875760006107a4565b61079a8a6001600160701b038716612080565b6107a49084612080565b905060006107bb8a6001600160701b038716612080565b83116107c85760006107e5565b6107db8a6001600160701b038716612080565b6107e59084612080565b905060008211806107f65750600081115b61084e5760405162461bcd60e51b8152602060048201526024808201527f4c69717569645876323a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b606482015260840161047f565b600061087061085e846003611689565b61086a876103e8611689565b906116f0565b9050600061088261085e846003611689565b90506108a7620f42406108a16001600160701b038b8116908b16611689565b90611689565b6108b18383611689565b10156108ee5760405162461bcd60e51b815260206004820152600c60248201526b4c69717569645876323a204b60a01b604482015260640161047f565b50506108fc84848888611746565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600c55505050505050505050565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b600061099a338484611932565b5060015b92915050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610a23576001600160a01b03841660009081526002602090815260408083203384529091529020546109fe90836116f0565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610a2e848484611994565b5060019392505050565b6005546001600160a01b03163314610a895760405162461bcd60e51b81526020600482015260146024820152732634b8bab4b22c3b191d102327a92124a22222a760611b604482015260640161047f565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6000600c54600114610adb5760405162461bcd60e51b815260040161047f90611fda565b6000600c81905580610aeb610963565b506006546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612051565b6007546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190612051565b90506000610bea836001600160701b0387166116f0565b90506000610c01836001600160701b0387166116f0565b90506000610c0f8787611a3a565b60008054919250819003610c4957610c356103e861086a610c308787611689565b611b77565b9850610c4460006103e8611be7565b610c90565b610c8d6001600160701b038916610c608684611689565b610c6a91906120a9565b6001600160701b038916610c7e8685611689565b610c8891906120a9565b611c76565b98505b60008911610cf15760405162461bcd60e51b815260206004820152602860248201527f4c69717569645876323a20494e53554646494349454e545f4c495155494449546044820152671657d3525395115160c21b606482015260840161047f565b610cfb8a8a611be7565b610d0786868a8a611746565b8115610d3157600854610d2d906001600160701b0380821691600160701b900416611689565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600c5550949695505050505050565b600080600c54600114610da45760405162461bcd60e51b815260040161047f90611fda565b6000600c81905580610db4610963565b506006546007546040516370a0823160e01b81523060048201529395509193506001600160a01b039081169291169060009083906370a0823190602401602060405180830381865afa158015610e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e329190612051565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea09190612051565b30600090815260016020526040812054919250610ebd8888611a3a565b60005490915080610ece8487611689565b610ed891906120a9565b9a5080610ee58486611689565b610eef91906120a9565b995060008b118015610f01575060008a115b610f5e5760405162461bcd60e51b815260206004820152602860248201527f4c69717569645876323a20494e53554646494349454e545f4c495155494449546044820152671657d0955493915160c21b606482015260840161047f565b610f683084611c8e565b610f73878d8d61153e565b610f7e868d8c61153e565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190612051565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110519190612051565b935061105f85858b8b611746565b811561108957600854611085906001600160701b0380821691600160701b900416611689565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600c81905550915091565b600061099a338484611994565b600c546001146111145760405162461bcd60e51b815260040161047f90611fda565b6000600c556006546007546008546040516370a0823160e01b81523060048201526001600160a01b0393841693909216916111af91849186916111aa916001600160701b039091169084906370a08231906024015b602060405180830381865afa158015611186573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a9190612051565b61153e565b6008546040516370a0823160e01b81523060048201526111fc91839186916111aa91600160701b9091046001600160701b0316906001600160a01b038516906370a0823190602401611169565b50506001600c5550565b4284101561124b5760405162461bcd60e51b8152602060048201526012602482015271131a5c5d5a59161d8c8e881156141254915160721b604482015260640161047f565b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b91908761129e836120bd565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161131792919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611382573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906113b85750886001600160a01b0316816001600160a01b0316145b6114045760405162461bcd60e51b815260206004820152601c60248201527f4c69717569645876323a20494e56414c49445f5349474e415455524500000000604482015260640161047f565b61140f898989611932565b505050505050505050565b600c5460011461143c5760405162461bcd60e51b815260040161047f90611fda565b6000600c556006546040516370a0823160e01b8152306004820152611537916001600160a01b0316906370a0823190602401602060405180830381865afa15801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190612051565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156114f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151b9190612051565b6008546001600160701b0380821691600160701b900416611746565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b179052915160009283928716916115ca91906120d6565b6000604051808303816000865af19150503d8060008114611607576040519150601f19603f3d011682016040523d82523d6000602084013e61160c565b606091505b509150915081801561163657508051158061163657508080602001905181019061163691906120f2565b6116825760405162461bcd60e51b815260206004820152601a60248201527f4c69717569645876323a205452414e534645525f4641494c4544000000000000604482015260640161047f565b5050505050565b60008115806116ad5750828261169f8183612114565b92506116ab90836120a9565b145b61099e5760405162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015260640161047f565b6000826116fd8382612080565b915081111561099e5760405162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015260640161047f565b6001600160701b03841180159061176457506001600160701b038311155b6117a65760405162461bcd60e51b81526020600482015260136024820152724c69717569645876323a204f564552464c4f5760681b604482015260640161047f565b60006117b76401000000004261212b565b6008549091506000906117d790600160e01b900463ffffffff168361213f565b905060008163ffffffff161180156117f757506001600160701b03841615155b801561180b57506001600160701b03831615155b1561189a578063ffffffff166118338561182486611d18565b6001600160e01b031690611d31565b6001600160e01b03166118469190612114565b600960008282546118579190612163565b909155505063ffffffff81166118708461182487611d18565b6001600160e01b03166118839190612114565b600a60008282546118949190612163565b90915550505b6008805463ffffffff8416600160e01b026001600160e01b036001600160701b03898116600160701b9081026001600160e01b03199095168c83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505050505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600160205260409020546119b790826116f0565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546119e69082611d46565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119879085815260200190565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab49190612176565b600b546001600160a01b038216158015945091925090611b63578015611b5e576000611aef610c306001600160701b03888116908816611689565b90506000611afc83611b77565b905080821115611b5b576000611b1e611b1584846116f0565b60005490611689565b90506000611b3783611b31866005611689565b90611d46565b90506000611b4582846120a9565b90508015611b5757611b578782611be7565b5050505b50505b611b6f565b8015611b6f576000600b555b505092915050565b60006003821115611bd85750806000611b916002836120a9565b611b9c906001612163565b90505b81811015611bd257905080600281611bb781866120a9565b611bc19190612163565b611bcb91906120a9565b9050611b9f565b50919050565b8115611be2575060015b919050565b600054611bf49082611d46565b60009081556001600160a01b038316815260016020526040902054611c199082611d46565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6a9085815260200190565b60405180910390a35050565b6000818310611c855781611c87565b825b9392505050565b6001600160a01b038216600090815260016020526040902054611cb190826116f0565b6001600160a01b03831660009081526001602052604081209190915554611cd890826116f0565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611c6a565b600061099e600160701b6001600160701b038416612193565b6000611c876001600160701b038316846121c5565b600082611d538382612163565b915081101561099e5760405162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015260640161047f565b6001600160a01b0381168114611db057600080fd5b50565b600080600080600060808688031215611dcb57600080fd5b85359450602086013593506040860135611de481611d9b565b9250606086013567ffffffffffffffff80821115611e0157600080fd5b818801915088601f830112611e1557600080fd5b813581811115611e2457600080fd5b896020828501011115611e3657600080fd5b9699959850939650602001949392505050565b60005b83811015611e64578181015183820152602001611e4c565b50506000910152565b6020815260008251806020840152611e8c816040850160208701611e49565b601f01601f19169190910160400192915050565b60008060408385031215611eb357600080fd5b8235611ebe81611d9b565b946020939093013593505050565b600080600060608486031215611ee157600080fd5b8335611eec81611d9b565b92506020840135611efc81611d9b565b929592945050506040919091013590565b60008060408385031215611f2057600080fd5b8235611f2b81611d9b565b91506020830135611f3b81611d9b565b809150509250929050565b600060208284031215611f5857600080fd5b8135611c8781611d9b565b600080600080600080600060e0888a031215611f7e57600080fd5b8735611f8981611d9b565b96506020880135611f9981611d9b565b95506040880135945060608801359350608088013560ff81168114611fbd57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b602080825260119082015270131a5c5d5a59161d8c8e881313d0d2d151607a1b604082015260600190565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006020828403121561206357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561099e5761099e61206a565b634e487b7160e01b600052601260045260246000fd5b6000826120b8576120b8612093565b500490565b6000600182016120cf576120cf61206a565b5060010190565b600082516120e8818460208701611e49565b9190910192915050565b60006020828403121561210457600080fd5b81518015158114611c8757600080fd5b808202811582820484141761099e5761099e61206a565b60008261213a5761213a612093565b500690565b63ffffffff82811682821603908082111561215c5761215c61206a565b5092915050565b8082018082111561099e5761099e61206a565b60006020828403121561218857600080fd5b8151611c8781611d9b565b6001600160e01b038281168282168181028316929181158285048214176121bc576121bc61206a565b50505092915050565b60006001600160e01b03838116806121df576121df612093565b9216919091049291505056fea26469706673582212209d7629e63494de4124f09695b7a973c100cb7deb99d2dd6bacbccccc27e8264764736f6c63430008130033