[ { "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": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountWETH", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountUSDB", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountGas", "type": "uint256" } ], "name": "ClaimYieldAll", "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": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_minClaimRateBips", "type": "uint256" } ], "name": "claimGas", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amountWETH", "type": "uint256" }, { "internalType": "uint256", "name": "_amountUSDB", "type": "uint256" } ], "name": "claimYieldAll", "outputs": [ { "internalType": "uint256", "name": "amountWETH", "type": "uint256" }, { "internalType": "uint256", "name": "amountUSDB", "type": "uint256" }, { "internalType": "uint256", "name": "amountGas", "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": [], "name": "manager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "pointsOperator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "_manager", "type": "address" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "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" } ]
60806040526001600c55600d805473b0ef30c3635289ed71a37d7aee5b2551322ac8286001600160a01b03199182168117909255600e805490911690911790553480156200004c57600080fd5b5060408051808201825260098152685371756164204c507360b81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ee46cc88967f6e54ff5c9a678c02db834ef98e8fd5363cfff791534d82ff970818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0820180855281519190930120600355600580546001600160a01b03191633179055634e606c4760e01b909152905173430000000000000000000000000000000000000291634e606c479160c480830192600092919082900301818387803b1580156200017957600080fd5b505af11580156200018e573d6000803e3d6000fd5b5050604051631a33757d60e01b81527343000000000000000000000000000000000000039250631a33757d9150620001cc906002906004016200030d565b6020604051808303816000875af1158015620001ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000212919062000336565b50604051631a33757d60e01b815273430000000000000000000000000000000000000490631a33757d906200024d906002906004016200030d565b6020604051808303816000875af11580156200026d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000293919062000336565b50600d546040516336b91f2b60e01b81526001600160a01b039091166004820152732536fe9ab3f511540f2f9e2ec2a805005c3dd800906336b91f2b90602401600060405180830381600087803b158015620002ee57600080fd5b505af115801562000303573d6000803e3d6000fd5b5050505062000350565b60208101600383106200033057634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156200034957600080fd5b5051919050565b61262f80620003606000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80636a6278421161010f578063ba9a7a56116100a2578063d21220a711610071578063d21220a7146104c6578063d505accf146104d9578063dd62ed3e146104ec578063fff6cae91461051757600080fd5b8063ba9a7a5614610484578063bc25cf771461048d578063c45a0155146104a0578063d0ebdbe7146104b357600080fd5b806389afcb44116100de57806389afcb44146103f457806395d89b411461041c578063a9059cbb14610443578063ad66aeb81461045657600080fd5b80636a6278421461039857806370a08231146103ab5780637464fc3d146103cb5780637ecebe00146103d457600080fd5b806330adf81f11610187578063481c6a7511610156578063481c6a7514610360578063485cc955146103735780635909c0d5146103865780635a3d54931461038f57600080fd5b806330adf81f14610303578063313ce5671461032a5780633644e5151461034457806347fb45531461034d57600080fd5b8063095ea7b3116101c3578063095ea7b3146102995780630dfe1681146102bc57806318160ddd146102e757806323b872dd146102f057600080fd5b8063022c0d9f146101f557806305bafd921461020a57806306fdde03146102305780630902f1ac14610265575b600080fd5b61020861020336600461214c565b61051f565b005b61021d6102183660046121e2565b610a39565b6040519081526020015b60405180910390f35b610258604051806040016040528060098152602001685371756164204c507360b81b81525081565b604051610227919061223e565b61026d610bb3565b604080516001600160701b03948516815293909216602084015263ffffffff1690820152606001610227565b6102ac6102a73660046121e2565b610bdd565b6040519015158152602001610227565b6006546102cf906001600160a01b031681565b6040516001600160a01b039091168152602001610227565b61021d60005481565b6102ac6102fe366004612271565b610bf3565b61021d7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610332601281565b60405160ff9091168152602001610227565b61021d60035481565b600d546102cf906001600160a01b031681565b600e546102cf906001600160a01b031681565b6102086103813660046122b2565b610c88565b61021d60095481565b61021d600a5481565b61021d6103a63660046122eb565b610d07565b61021d6103b93660046122eb565b60016020526000908152604090205481565b61021d600b5481565b61021d6103e23660046122eb565b60046020526000908152604090205481565b6104076104023660046122eb565b610fd2565b60408051928352602083019190915201610227565b61025860405180604001604052806008815260200167053717561642d4c560c41b81525081565b6102ac6104513660046121e2565b611337565b610469610464366004612308565b611344565b60408051938452602084019290925290820152606001610227565b61021d6103e881565b61020861049b3660046122eb565b61153a565b6005546102cf906001600160a01b031681565b6102086104c13660046122eb565b61164d565b6007546102cf906001600160a01b031681565b6102086104e736600461233d565b611699565b61021d6104fa3660046122b2565b600260209081526000928352604080842090915290825290205481565b6102086118ad565b600c5460011461054a5760405162461bcd60e51b8152600401610541906123b4565b60405180910390fd5b6000600c558415158061055d5750600084115b6105b75760405162461bcd60e51b815260206004820152602560248201527f5371756164737761703a20494e53554646494349454e545f4f55545055545f416044820152641353d5539560da1b6064820152608401610541565b6000806105c2610bb3565b5091509150816001600160701b0316871080156105e75750806001600160701b031686105b61063d5760405162461bcd60e51b815260206004820152602160248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152605960f81b6064820152608401610541565b60065460075460009182916001600160a01b0391821691908116908916821480159061067b5750806001600160a01b0316896001600160a01b031614155b6106bf5760405162461bcd60e51b81526020600482015260156024820152745371756164737761703a20494e56414c49445f544f60581b6044820152606401610541565b8a156106d0576106d0828a8d6119d1565b89156106e1576106e1818a8c6119d1565b861561074e5760405163a691a9c960e01b81526001600160a01b038a169063a691a9c99061071b9033908f908f908e908e906004016123df565b600060405180830381600087803b15801561073557600080fd5b505af1158015610749573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610792573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b6919061242b565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610821919061242b565b92505050600089856001600160701b031661083c919061245a565b8311610849576000610866565b61085c8a6001600160701b03871661245a565b610866908461245a565b9050600061087d8a6001600160701b03871661245a565b831161088a5760006108a7565b61089d8a6001600160701b03871661245a565b6108a7908461245a565b905060008211806108b85750600081115b6109105760405162461bcd60e51b8152602060048201526024808201527f5371756164737761703a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b6064820152608401610541565b600061091d836002612471565b610929866103e8612471565b610933919061245a565b90506000610942836002612471565b61094e866103e8612471565b610958919061245a565b90506109706001600160701b03808916908a16612471565b61097d90620f4240612471565b6109878284612471565b10156109c45760405162461bcd60e51b815260206004820152600c60248201526b5371756164737761703a204b60a01b6044820152606401610541565b50506109d284848888611b1c565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600c55505050505050505050565b600e546000906001600160a01b03163314610a665760405162461bcd60e51b815260040161054190612490565b81610ae95760405163662aa11d60e01b81523060048201526001600160a01b03841660248201526002604360981b019063662aa11d906044016020604051808303816000875af1158015610abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae2919061242b565b9050610b6a565b604051630951888f60e01b81523060048201526001600160a01b0384166024820152604481018390526002604360981b0190630951888f906064016020604051808303816000875af1158015610b43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b67919061242b565b90505b826001600160a01b03167f5eadc4013530f38d8b7709b47915d0cef30eee941dad69669a5b45e0686879fa82604051610ba591815260200190565b60405180910390a292915050565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610bea338484611d08565b50600192915050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610c73576001600160a01b0384166000908152600260209081526040808320338452909152902054610c4e90839061245a565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610c7e848484611d6a565b5060019392505050565b6005546001600160a01b03163314610cd95760405162461bcd60e51b815260206004820152601460248201527329b8bab0b239bbb0b81d102327a92124a22222a760611b6044820152606401610541565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6000600c54600114610d2b5760405162461bcd60e51b8152600401610541906123b4565b6000600c81905580610d3b610bb3565b506006546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db1919061242b565b6007546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610dff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e23919061242b565b90506000610e3a6001600160701b0386168461245a565b90506000610e516001600160701b0386168461245a565b90506000610e5f8787611e12565b60005490915080610e9d576103e8610e7f610e7a8587612471565b611f5b565b610e89919061245a565b9850610e9860006103e8611fcb565b610ee4565b610ee16001600160701b038916610eb48387612471565b610ebe91906124c9565b6001600160701b038916610ed28487612471565b610edc91906124c9565b61205c565b98505b60008911610f455760405162461bcd60e51b815260206004820152602860248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152671657d3525395115160c21b6064820152608401610541565b610f4f8a8a611fcb565b610f5b86868a8a611b1c565b8115610f8457600854610f80906001600160701b03600160701b820481169116612471565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600c5550949695505050505050565b600080600c54600114610ff75760405162461bcd60e51b8152600401610541906123b4565b6000600c81905580611007610bb3565b506006546007546040516370a0823160e01b81523060048201529395509193506001600160a01b039081169291169060009083906370a0823190602401602060405180830381865afa158015611061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611085919061242b565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f3919061242b565b306000908152600160205260408120549192506111108888611e12565b600054909150806111218685612471565b61112b91906124c9565b9a50806111388585612471565b61114291906124c9565b995060008b118015611154575060008a115b6111b15760405162461bcd60e51b815260206004820152602860248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152671657d0955493915160c21b6064820152608401610541565b6111bb3084612074565b6111c6878d8d6119d1565b6111d1868d8c6119d1565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611239919061242b565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a4919061242b565b93506112b285858b8b611b1c565b81156112db576008546112d7906001600160701b03600160701b820481169116612471565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600c81905550915091565b6000610bea338484611d6a565b600e54600090819081906001600160a01b031633146113755760405162461bcd60e51b815260040161054190612490565b604051635569f64b60e11b81526001600160a01b0387166004820152602481018690526004604360981b019063aad3ec96906044016020604051808303816000875af11580156113c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ed919061242b565b604051635569f64b60e11b81526001600160a01b0388166004820152602481018690529093506003604360981b019063aad3ec96906044016020604051808303816000875af1158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061242b565b60405163662aa11d60e01b81523060048201526001600160a01b03881660248201529092506002604360981b019063662aa11d906044016020604051808303816000875af11580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e2919061242b565b60408051858152602081018590529081018290529091506001600160a01b038716907f1943c53b7309df037b9077befdba52e1fd2c298ad0e91a0b4a4d163c7d095f189060600160405180910390a293509350939050565b600c5460011461155c5760405162461bcd60e51b8152600401610541906123b4565b6000600c556006546007546008546040516370a0823160e01b81523060048201526001600160a01b0393841693909216916115fb91849186916001600160701b03169083906370a08231906024015b602060405180830381865afa1580156115c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ec919061242b565b6115f6919061245a565b6119d1565b6008546040516370a0823160e01b81523060048201526116439183918691600160701b90046001600160701b0316906001600160a01b038416906370a08231906024016115ab565b50506001600c5550565b600e546001600160a01b031633146116775760405162461bcd60e51b815260040161054190612490565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b428410156116de5760405162461bcd60e51b815260206004820152601260248201527114dc5d58591cddd85c0e881156141254915160721b6044820152606401610541565b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b919087611731836124dd565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e001604051602081830303815290604052805190602001206040516020016117aa92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611815573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061184b5750886001600160a01b0316816001600160a01b0316145b6118975760405162461bcd60e51b815260206004820152601c60248201527f5371756164737761703a20494e56414c49445f5349474e4154555245000000006044820152606401610541565b6118a2898989611d08565b505050505050505050565b600c546001146118cf5760405162461bcd60e51b8152600401610541906123b4565b6000600c556006546040516370a0823160e01b81523060048201526119ca916001600160a01b0316906370a0823190602401602060405180830381865afa15801561191e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611942919061242b565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561198a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ae919061242b565b6008546001600160701b0380821691600160701b900416611b1c565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291516000928392871691611a5d91906124f8565b6000604051808303816000865af19150503d8060008114611a9a576040519150601f19603f3d011682016040523d82523d6000602084013e611a9f565b606091505b5091509150818015611ac9575080511580611ac9575080806020019051810190611ac99190612514565b611b155760405162461bcd60e51b815260206004820152601a60248201527f5371756164737761703a205452414e534645525f4641494c45440000000000006044820152606401610541565b5050505050565b6001600160701b038411801590611b3a57506001600160701b038311155b611b7c5760405162461bcd60e51b81526020600482015260136024820152725371756164737761703a204f564552464c4f5760681b6044820152606401610541565b6000611b8d64010000000042612536565b600854909150600090611bad90600160e01b900463ffffffff168361254a565b905060008163ffffffff16118015611bcd57506001600160701b03841615155b8015611be157506001600160701b03831615155b15611c70578063ffffffff16611c0985611bfa86612100565b6001600160e01b03169061211f565b6001600160e01b0316611c1c9190612471565b60096000828254611c2d919061256f565b909155505063ffffffff8116611c4684611bfa87612100565b6001600160e01b0316611c599190612471565b600a6000828254611c6a919061256f565b90915550505b6008805463ffffffff8416600160e01b026001600160e01b036001600160701b03898116600160701b9081026001600160e01b03199095168c83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505050505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316600090815260016020526040902054611d8e90829061245a565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611dbe90829061256f565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d5d9085815260200190565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8c9190612587565b600b546001600160a01b038216158015945091925090611f47578015611f42576000611ec7610e7a6001600160701b03808816908916612471565b90506000611ed483611f5b565b905080821115611f3f576000611eea828461245a565b600054611ef79190612471565b611f02906004612471565b90506000611f11836004612471565b611f1b908561256f565b90506000611f2982846124c9565b90508015611f3b57611f3b8782611fcb565b5050505b50505b611f53565b8015611f53576000600b555b505092915050565b60006003821115611fbc5750806000611f756002836124c9565b611f8090600161256f565b90505b81811015611fb657905080600281611f9b81866124c9565b611fa5919061256f565b611faf91906124c9565b9050611f83565b50919050565b8115611fc6575060015b919050565b80600054611fd9919061256f565b60009081556001600160a01b038316815260016020526040902054611fff90829061256f565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120509085815260200190565b60405180910390a35050565b600081831061206b578161206d565b825b9392505050565b6001600160a01b03821660009081526001602052604090205461209890829061245a565b6001600160a01b038316600090815260016020526040812091909155546120c090829061245a565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612050565b6000612119600160701b6001600160701b0384166125a4565b92915050565b600061206d6001600160701b038316846125d3565b6001600160a01b038116811461214957600080fd5b50565b60008060008060006080868803121561216457600080fd5b8535945060208601359350604086013561217d81612134565b9250606086013567ffffffffffffffff8082111561219a57600080fd5b818801915088601f8301126121ae57600080fd5b8135818111156121bd57600080fd5b8960208285010111156121cf57600080fd5b9699959850939650602001949392505050565b600080604083850312156121f557600080fd5b823561220081612134565b946020939093013593505050565b60005b83811015612229578181015183820152602001612211565b83811115612238576000848401525b50505050565b602081526000825180602084015261225d81604085016020870161220e565b601f01601f19169190910160400192915050565b60008060006060848603121561228657600080fd5b833561229181612134565b925060208401356122a181612134565b929592945050506040919091013590565b600080604083850312156122c557600080fd5b82356122d081612134565b915060208301356122e081612134565b809150509250929050565b6000602082840312156122fd57600080fd5b813561206d81612134565b60008060006060848603121561231d57600080fd5b833561232881612134565b95602085013595506040909401359392505050565b600080600080600080600060e0888a03121561235857600080fd5b873561236381612134565b9650602088013561237381612134565b95506040880135945060608801359350608088013560ff8116811461239757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60208082526011908201527014dc5d58591cddd85c0e881313d0d2d151607a1b604082015260600190565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006020828403121561243d57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561246c5761246c612444565b500390565b600081600019048311821515161561248b5761248b612444565b500290565b6020808252600990820152682327a92124a22222a760b91b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b6000826124d8576124d86124b3565b500490565b60006000198214156124f1576124f1612444565b5060010190565b6000825161250a81846020870161220e565b9190910192915050565b60006020828403121561252657600080fd5b8151801515811461206d57600080fd5b600082612545576125456124b3565b500690565b600063ffffffff8381169083168181101561256757612567612444565b039392505050565b6000821982111561258257612582612444565b500190565b60006020828403121561259957600080fd5b815161206d81612134565b60006001600160e01b03828116848216811515828404821116156125ca576125ca612444565b02949350505050565b60006001600160e01b03838116806125ed576125ed6124b3565b9216919091049291505056fea2646970667358221220ffdc3488f1876dc80d244b7ace43b06104397ef0981f2208a8a0fa85df50bbdd64736f6c634300080c0033