[ { "inputs": [], "payable": false, "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" }, { "constant": true, "inputs": [], "name": "BLAST", "outputs": [ { "internalType": "contract IBlast", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MINIMUM_LIQUIDITY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "USDB", "outputs": [ { "internalType": "contract IERC20Rebasing", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "WETHB", "outputs": [ { "internalType": "contract IERC20Rebasing", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_minClaimRateBips", "type": "uint256" } ], "name": "claimGas", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "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" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint112", "name": "_reserve0", "type": "uint112" }, { "internalType": "uint112", "name": "_reserve1", "type": "uint112" }, { "internalType": "uint32", "name": "_blockTimestampLast", "type": "uint32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" } ], "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "kLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "manager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "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": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "price0CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "price1CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_manager", "type": "address" } ], "name": "setManager", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "skim", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "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": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "sync", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "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" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ]
60806040526001600d553480156200001657600080fd5b50336001600160a01b031663094b74156040518163ffffffff1660e01b815260040160206040518083038186803b1580156200005157600080fd5b505afa15801562000066573d6000803e3d6000fd5b505050506040513d60208110156200007d57600080fd5b50516040514690806052620038518239604080519182900360520182208282018252600a8352694461636b6965204c507360b01b6020938401528151808301835260018152603160f81b908401528151808401919091527f8f24544f7414fd96074f865b6231c5a5aab24f1baec614de2d27d2e23041831f818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c0850180835281519190930120600355634e606c4760e01b9091525173430000000000000000000000000000000000000292634e606c47925060c48082019260009290919082900301818387803b1580156200019757600080fd5b505af1158015620001ac573d6000803e3d6000fd5b5050604051631a33757d60e01b81527343000000000000000000000000000000000000039250631a33757d9150600290600401808260ff168152602001915050602060405180830381600087803b1580156200020757600080fd5b505af11580156200021c573d6000803e3d6000fd5b505050506040513d60208110156200023357600080fd5b5050604051631a33757d60e01b815273430000000000000000000000000000000000000490631a33757d90600290600401808260ff168152602001915050602060405180830381600087803b1580156200028c57600080fd5b505af1158015620002a1573d6000803e3d6000fd5b505050506040513d6020811015620002b857600080fd5b5050600580546001600160a01b039092166001600160a01b0319928316179055600680549091163317905561355e80620002f36000396000f3fe608060405234801561001057600080fd5b50600436106102265760003560e01c80636a6278421161012a578063ad66aeb8116100bd578063d0ebdbe71161008c578063d505accf11610071578063d505accf14610738578063dd62ed3e14610796578063fff6cae9146107d157610226565b8063d0ebdbe7146106fd578063d21220a71461073057610226565b8063ad66aeb81461065d578063ba9a7a56146106ba578063bc25cf77146106c2578063c45a0155146106f557610226565b806389afcb44116100f957806389afcb44146105c857806395d89b411461061457806397d757761461061c578063a9059cbb1461062457610226565b80636a6278421461052757806370a082311461055a5780637464fc3d1461058d5780637ecebe001461059557610226565b806330adf81f116101bd578063481c6a751161018c5780635909c0d5116101715780635909c0d51461050f5780635a3d54931461051757806366759ad91461051f57610226565b8063481c6a75146104cc578063485cc955146104d457610226565b806330adf81f14610496578063313ce5671461049e57806331a0edec146104bc5780633644e515146104c457610226565b8063095ea7b3116101f9578063095ea7b3146103cd5780630dfe16811461041a57806318160ddd1461044b57806323b872dd1461045357610226565b8063022c0d9f1461022b57806305bafd92146102c657806306fdde03146103115780630902f1ac1461038e575b600080fd5b6102c46004803603608081101561024157600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460018302840111640100000000831117156102b957600080fd5b5090925090506107d9565b005b6102ff600480360360408110156102dc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ec4565b60408051918252519081900360200190f35b61031961111d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561035357818101518382015260200161033b565b50505050905090810190601f1680156103805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610396611156565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b610406600480360360408110156103e357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356111ab565b604080519115158252519081900360200190f35b6104226111c2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102ff6111de565b6104066004803603606081101561046957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356111e4565b6102ff6112c3565b6104a66112e7565b6040805160ff9092168252519081900360200190f35b6104226112ec565b6102ff611304565b61042261130a565b6102c4600480360360408110156104ea57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611326565b6102ff61154a565b6102ff611550565b610422611556565b6102ff6004803603602081101561053d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661156e565b6102ff6004803603602081101561057057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611928565b6102ff61193a565b6102ff600480360360208110156105ab57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611940565b6105fb600480360360208110156105de57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611952565b6040805192835260208301919091528051918290030190f35b610319611def565b610422611e28565b6104066004803603604081101561063a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611e40565b61069c6004803603606081101561067357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060400135611e4d565b60408051938452602084019290925282820152519081900360600190f35b6102ff612164565b6102c4600480360360208110156106d857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661216a565b610422612360565b6102c46004803603602081101561071357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661237c565b610422612449565b6102c4600480360360e081101561074e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135612465565b6102ff600480360360408110156107ac57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516612731565b6102c461274e565b600d5460011461084a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4461636b69653a204c4f434b4544000000000000000000000000000000000000604482015290519081900360640190fd5b6000600d558415158061085d5750600084115b6108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134be6022913960400191505060405180910390fd5b6000806108bd611156565b5091509150816dffffffffffffffffffffffffffff16871080156108f05750806dffffffffffffffffffffffffffff1686105b61095b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4461636b69653a20494e53554646494349454e545f4c49515549444954590000604482015290519081900360640190fd5b600754600854600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c057508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4461636b69653a20494e56414c49445f544f0000000000000000000000000000604482015290519081900360640190fd5b8a15610a3c57610a3c828a8d612934565b8915610a4d57610a4d818a8c612934565b8615610b2f578873ffffffffffffffffffffffffffffffffffffffff16630df794b9338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9b57600080fd5b505afa158015610baf573d6000803e3d6000fd5b505050506040513d6020811015610bc557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6020811015610c6157600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8b576000610ca1565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc5576000610cdb565b89856dffffffffffffffffffffffffffff160383035b90506000821180610cec5750600081115b610d41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061349d6021913960400191505060405180910390fd5b6000610d75610d5784601963ffffffff612b4116565b610d698761271063ffffffff612b4116565b9063ffffffff612bc716565b90506000610d8d610d5784601963ffffffff612b4116565b9050610dc66305f5e100610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff612b4116565b9063ffffffff612b4116565b610dd6838363ffffffff612b4116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4461636b69653a204b0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e5184848888612c39565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600d55505050505050505050565b60055460009073ffffffffffffffffffffffffffffffffffffffff163314610f4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f464f5242494444454e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8161100d57604080517f662aa11d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8516602482015290517343000000000000000000000000000000000000029163662aa11d9160448083019260209291908290030181600087803b158015610fda57600080fd5b505af1158015610fee573d6000803e3d6000fd5b505050506040513d602081101561100457600080fd5b505190506110cb565b604080517f0951888f00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8516602482015260448101849052905173430000000000000000000000000000000000000291630951888f9160648083019260209291908290030181600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050506040513d60208110156110c657600080fd5b505190505b60408051828152905173ffffffffffffffffffffffffffffffffffffffff8516917f5eadc4013530f38d8b7709b47915d0cef30eee941dad69669a5b45e0686879fa919081900360200190a292915050565b6040518060400160405280600a81526020017f4461636b6965204c50730000000000000000000000000000000000000000000081525081565b6009546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b60006111b8338484612ef5565b5060015b92915050565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146112ae5773ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832033845290915290205461127c908363ffffffff612bc716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6112b9848484612f64565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b73430000000000000000000000000000000000000381565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60065473ffffffffffffffffffffffffffffffffffffffff1633146113ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4461636b69653a20464f5242494444454e000000000000000000000000000000604482015290519081900360640190fd5b732536fe9ab3f511540f2f9e2ec2a805005c3dd80073ffffffffffffffffffffffffffffffffffffffff166336b91f2b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd454fae6040518163ffffffff1660e01b815260040160206040518083038186803b15801561144457600080fd5b505afa158015611458573d6000803e3d6000fd5b505050506040513d602081101561146e57600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015251602480830192600092919082900301818387803b1580156114db57600080fd5b505af11580156114ef573d6000803e3d6000fd5b50506007805473ffffffffffffffffffffffffffffffffffffffff9586167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560088054949095169316929092179092555050565b600a5481565b600b5481565b73430000000000000000000000000000000000000481565b6000600d546001146115e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4461636b69653a204c4f434b4544000000000000000000000000000000000000604482015290519081900360640190fd5b6000600d819055806115f1611156565b50600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561166b57600080fd5b505afa15801561167f573d6000803e3d6000fd5b505050506040513d602081101561169557600080fd5b5051600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561170e57600080fd5b505afa158015611722573d6000803e3d6000fd5b505050506040513d602081101561173857600080fd5b50519050600061175e836dffffffffffffffffffffffffffff871663ffffffff612bc716565b90506000611782836dffffffffffffffffffffffffffff871663ffffffff612bc716565b905060006117908787613045565b600054909150806117cd576117b96103e8610d696117b4878763ffffffff612b4116565b6131e6565b98506117c860006103e8613238565b61182a565b6118276dffffffffffffffffffffffffffff89166117f1868463ffffffff612b4116565b816117f857fe5b046dffffffffffffffffffffffffffff891661181a868563ffffffff612b4116565b8161182157fe5b046132e8565b98505b60008911611883576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806135056025913960400191505060405180910390fd5b61188d8a8a613238565b61189986868a8a612c39565b81156118db576009546118d7906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff612b4116565b600c555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600d5550949695505050505050565b60016020526000908152604090205481565b600c5481565b60046020526000908152604090205481565b600080600d546001146119c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4461636b69653a204c4f434b4544000000000000000000000000000000000000604482015290519081900360640190fd5b6000600d819055806119d6611156565b50600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b158015611a5857600080fd5b505afa158015611a6c573d6000803e3d6000fd5b505050506040513d6020811015611a8257600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b505130600090815260016020526040812054919250611b3f8888613045565b60005490915080611b56848763ffffffff612b4116565b81611b5d57fe5b049a5080611b71848663ffffffff612b4116565b81611b7857fe5b04995060008b118015611b8b575060008a115b611be0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134e06025913960400191505060405180910390fd5b611bea3084613300565b611bf5878d8d612934565b611c00868d8c612934565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b158015611c6c57600080fd5b505afa158015611c80573d6000803e3d6000fd5b505050506040513d6020811015611c9657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b158015611d0857600080fd5b505afa158015611d1c573d6000803e3d6000fd5b505050506040513d6020811015611d3257600080fd5b50519350611d4285858b8b612c39565b8115611d8457600954611d80906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff612b4116565b600c555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600d81905550915091565b6040518060400160405280600981526020017f4461636b69652d4c50000000000000000000000000000000000000000000000081525081565b73430000000000000000000000000000000000000281565b60006111b8338484612f64565b6005546000908190819073ffffffffffffffffffffffffffffffffffffffff163314611eda57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f464f5242494444454e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517faad3ec9600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024810187905290517343000000000000000000000000000000000000049163aad3ec969160448083019260209291908290030181600087803b158015611f6357600080fd5b505af1158015611f77573d6000803e3d6000fd5b505050506040513d6020811015611f8d57600080fd5b5051604080517faad3ec9600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff891660048201526024810187905290519194507343000000000000000000000000000000000000039163aad3ec96916044808201926020929091908290030181600087803b15801561201c57600080fd5b505af1158015612030573d6000803e3d6000fd5b505050506040513d602081101561204657600080fd5b5051604080517f662aa11d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8916602482015290519193507343000000000000000000000000000000000000029163662aa11d916044808201926020929091908290030181600087803b1580156120d457600080fd5b505af11580156120e8573d6000803e3d6000fd5b505050506040513d60208110156120fe57600080fd5b50516040805185815260208101859052808201839052905191925073ffffffffffffffffffffffffffffffffffffffff8816917f1943c53b7309df037b9077befdba52e1fd2c298ad0e91a0b4a4d163c7d095f189181900360600190a293509350939050565b6103e881565b600d546001146121db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4461636b69653a204c4f434b4544000000000000000000000000000000000000604482015290519081900360640190fd5b6000600d55600754600854600954604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926122b792859287926122b2926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561227a57600080fd5b505afa15801561228e573d6000803e3d6000fd5b505050506040513d60208110156122a457600080fd5b50519063ffffffff612bc716565b612934565b600954604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905161235692849287926122b2926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b15801561227a57600080fd5b50506001600d5550565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff16331461240257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f464f5242494444454e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b428410156124d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4461636b69653a20455850495245440000000000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612635573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906126b057508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61271b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4461636b69653a20494e56414c49445f5349474e415455524500000000000000604482015290519081900360640190fd5b612726898989612ef5565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600d546001146127bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4461636b69653a204c4f434b4544000000000000000000000000000000000000604482015290519081900360640190fd5b6000600d55600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905161292d9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561283657600080fd5b505afa15801561284a573d6000803e3d6000fd5b505050506040513d602081101561286057600080fd5b5051600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156128d357600080fd5b505afa1580156128e7573d6000803e3d6000fd5b505050506040513d60208110156128fd57600080fd5b50516009546dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612c39565b6001600d55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b60208310612a3a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016129fd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612a9c576040519150601f19603f3d011682016040523d82523d6000602084013e612aa1565b606091505b5091509150818015612acf575080511580612acf5750808060200190516020811015612acc57600080fd5b50515b612b3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4461636b69653a205452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b5050505050565b6000811580612b5c57505080820282828281612b5957fe5b04145b6111bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b808203828111156111bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff8411801590612c6557506dffffffffffffffffffffffffffff8311155b612cd057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4461636b69653a204f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff428116917c010000000000000000000000000000000000000000000000000000000090048116820390811615801590612d2057506dffffffffffffffffffffffffffff841615155b8015612d3b57506dffffffffffffffffffffffffffff831615155b15612deb578063ffffffff16612d7e85612d54866133c5565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff6133e916565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612dbe84612d54876133c5565b600b80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600980547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612f9a908263ffffffff612bc716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612fdc908263ffffffff61342a16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156130b057600080fd5b505afa1580156130c4573d6000803e3d6000fd5b505050506040513d60208110156130da57600080fd5b5051600c5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906131d25780156131cd5760006131316117b46dffffffffffffffffffffffffffff88811690881663ffffffff612b4116565b9050600061313e836131e6565b9050808211156131ca5760006131716008610dba613162868663ffffffff612bc716565b6000549063ffffffff612b4116565b905060006131a661318984600863ffffffff612b4116565b61319a86601163ffffffff612b4116565b9063ffffffff61342a16565b905060008183816131b357fe5b04905080156131c6576131c68782613238565b5050505b50505b6131de565b80156131de576000600c555b505092915050565b60006003821115613229575080600160028204015b818110156132235780915060028182858161321257fe5b04018161321b57fe5b0490506131fb565b50613233565b8115613233575060015b919050565b60005461324b908263ffffffff61342a16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054613283908263ffffffff61342a16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106132f757816132f9565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054613336908263ffffffff612bc716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554613370908263ffffffff612bc716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161342257fe5b049392505050565b808201828110156111bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe4461636b69653a20494e53554646494349454e545f494e5055545f414d4f554e544461636b69653a20494e53554646494349454e545f4f55545055545f414d4f554e544461636b69653a20494e53554646494349454e545f4c49515549444954595f4255524e45444461636b69653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820fdf803a9cbfea3d20ae2346811d2ef8a4bee2d08eba15e7d5bc7d066cec1da3c64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429