[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "feesLP", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "feesPool", "type": "uint256" } ], "name": "FeesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "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": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "int256", "name": "amount0", "type": "int256" }, { "indexed": false, "internalType": "int256", "name": "amount1", "type": "int256" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "reserve0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "reserve1", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fictiveReserve0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fictiveReserve1", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "priceAverage0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "priceAverage1", "type": "uint256" } ], "name": "Sync", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFeeToAmounts", "outputs": [ { "internalType": "uint256", "name": "fees0_", "type": "uint256" }, { "internalType": "uint256", "name": "fees1_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFictiveReserves", "outputs": [ { "internalType": "uint256", "name": "fictiveReserve0_", "type": "uint256" }, { "internalType": "uint256", "name": "fictiveReserve1_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPairFees", "outputs": [ { "internalType": "uint128", "name": "feesLP_", "type": "uint128" }, { "internalType": "uint128", "name": "feesPool_", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPriceAverage", "outputs": [ { "internalType": "uint256", "name": "priceAverage0_", "type": "uint256" }, { "internalType": "uint256", "name": "priceAverage1_", "type": "uint256" }, { "internalType": "uint256", "name": "priceAverageLastTimestamp_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint256", "name": "reserve0_", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fictiveReserveIn", "type": "uint256" }, { "internalType": "uint256", "name": "_fictiveReserveOut", "type": "uint256" }, { "internalType": "uint256", "name": "_priceAverageLastTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "_priceAverageIn", "type": "uint256" }, { "internalType": "uint256", "name": "_priceAverageOut", "type": "uint256" }, { "internalType": "uint256", "name": "_currentTimestamp", "type": "uint256" } ], "name": "getUpdatedPriceAverage", "outputs": [ { "internalType": "uint256", "name": "priceAverageIn_", "type": "uint256" }, { "internalType": "uint256", "name": "priceAverageOut_", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" }, { "internalType": "uint128", "name": "_feesLP", "type": "uint128" }, { "internalType": "uint128", "name": "_feesPool", "type": "uint128" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount0", "type": "uint256" }, { "internalType": "uint256", "name": "_amount1", "type": "uint256" }, { "internalType": "address", "name": "_payer", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "liquidity_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint128", "name": "_feesLP", "type": "uint128" }, { "internalType": "uint128", "name": "_feesPool", "type": "uint128" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "skim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "bool", "name": "_zeroForOne", "type": "bool" }, { "internalType": "int256", "name": "_amountSpecified", "type": "int256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "swap", "outputs": [ { "internalType": "int256", "name": "amount0_", "type": "int256" }, { "internalType": "int256", "name": "amount1_", "type": "int256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
610180604052600b80546001600160801b0319166001179055600e80546001600160f81b0316600160f81b1790553480156200003a57600080fd5b506040518060400160405280601081526020016f29b6b0b92232bc10262816aa37b5b2b760811b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280601081526020016f29b6b0b92232bc10262816aa37b5b2b760811b815250604051806040016040528060078152602001660534445582d4c560cc1b8152508160039081620000d991906200030a565b506004620000e882826200030a565b50505062000106600583620001c660201b62001a1e1790919060201c565b6101205262000123816006620001c6602090811b62001a1e17901c565b61014052815160208084019190912060e052815190820120610100524660a052620001b160e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0525033610160526200044b565b6000602083511015620001e657620001de8362000216565b905062000210565b82620001fd836200026260201b62001a4f1760201c565b906200020a90826200030a565b5060ff90505b92915050565b600080829050601f815111156200024d578260405163305a27a960e01b8152600401620002449190620003d6565b60405180910390fd5b80516200025a8262000426565b179392505050565b90565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029057607f821691505b602082108103620002b157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030557600081815260208120601f850160051c81016020861015620002e05750805b601f850160051c820191505b818110156200030157828155600101620002ec565b5050505b505050565b81516001600160401b0381111562000326576200032662000265565b6200033e816200033784546200027b565b84620002b7565b602080601f8311600181146200037657600084156200035d5750858301515b600019600386901b1c1916600185901b17855562000301565b600085815260208120601f198616915b82811015620003a75788860151825594840194600190910190840162000386565b5085821015620003c65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b818110156200040557858101830151858201604001528201620003e7565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620002b15760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051614daf620004d4600039600081816104050152818161069d015281816111d40152818161142701528181612f3e0152613e62015260006115920152600061156701526000612a7f01526000612a57015260006129b2015260006129dc01526000612a060152614daf6000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c806384b0196e11610104578063bc25cf77116100a2578063dd62ed3e11610071578063dd62ed3e1461044d578063ee2046c714610460578063f74bfe8e1461049c578063fb753b69146104af57600080fd5b8063bc25cf77146103ed578063c45a015514610400578063d21220a714610427578063d505accf1461043a57600080fd5b80639a20767b116100de5780639a20767b14610389578063a457c2d7146103a5578063a6706e14146103b8578063a9059cbb146103da57600080fd5b806384b0196e1461035357806389afcb441461036e57806395d89b411461038157600080fd5b80631f18b3711161017c5780633644e5151161014b5780633644e515146102fc578063395093511461030457806370a08231146103175780637ecebe001461034057600080fd5b80631f18b371146102b457806323b872dd146102c7578063313ce567146102da57806332760c7a146102e957600080fd5b8063095ea7b3116101b8578063095ea7b31461023f5780630dfe168114610262578063123a456a1461028d57806318160ddd146102a257600080fd5b80623b15fd146101de57806306fdde031461020d5780630902f1ac14610222575b600080fd5b600b54604080516001600160801b038084168252600160801b9093049092166020830152015b60405180910390f35b6102156104c2565b6040516102049190614608565b61022a610554565b60408051928352602083019190915201610204565b61025261024d366004614630565b610678565b6040519015158152602001610204565b600954610275906001600160a01b031681565b6040516001600160a01b039091168152602001610204565b6102a061029b366004614673565b610692565b005b6002545b604051908152602001610204565b61022a6102c23660046146d9565b610744565b6102526102d5366004614778565b611401565b60405160128152602001610204565b6102a06102f73660046147b9565b611425565b6102a661150a565b610252610312366004614630565b611519565b6102a66103253660046147ec565b6001600160a01b031660009081526020819052604090205490565b6102a661034e3660046147ec565b61153b565b61035b611559565b6040516102049796959493929190614809565b61022a61037c3660046147ec565b6115e2565b610215611600565b600c546001600160801b0380821691600160801b90041661022a565b6102526103b3366004614630565b61160f565b600e546001600160681b03600160281b8204811691600160901b90041661022a565b6102526103e8366004614630565b61168a565b6102a06103fb3660046147ec565b611698565b6102757f000000000000000000000000000000000000000000000000000000000000000081565b600a54610275906001600160a01b031681565b6102a061044836600461489f565b61184f565b6102a661045b366004614916565b6119b3565b600d54600e54604080516001600160801b038085168252600160801b909404909316602084015264ffffffffff90911690820152606001610204565b6102a66104aa36600461494f565b6119de565b61022a6104bd366004614999565b6119fe565b6060600380546104d1906149dc565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd906149dc565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050905090565b600e546009546040516370a0823160e01b81523060048201526000928392600160281b9091046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190614a10565b6105e49190614a3f565b600e54600a546040516370a0823160e01b8152306004820152929450600160901b9091046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106689190614a10565b6106729190614a3f565b90509091565b600033610686818585611a52565b60019150505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107045760405162461bcd60e51b815260206004820152601260248201527129b6b0b92232bc1d102327a92124a22222a760711b60448201526064015b60405180910390fd5b600980546001600160a01b038087166001600160a01b031992831617909255600a80549286169290911691909117905561073e8282611b76565b50505050565b600e546000908190600160f81b900460ff166001146107755760405162461bcd60e51b81526004016106fb90614a52565b600e80546001600160f81b0316600160f91b17905560008590036107d25760405162461bcd60e51b815260206004820152601460248201527314db585c91195e0e8816915493d7d05353d5539560621b60448201526064016106fb565b604080516101208101825260008082526020820181905291810182905260608101829052608081018290526009546001600160a01b0390811660a08301819052600a54821660c084015260e0830184905261010083019390935290919089161480159061085557508060c001516001600160a01b0316886001600160a01b031614155b6108975760405162461bcd60e51b8152602060048201526013602482015272536d61724465783a20494e56414c49445f544f60681b60448201526064016106fb565b866109de57600e5460c08201516040516370a0823160e01b8152306004820152600160901b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190614a10565b6109299190614a3f565b600e5460a08301516040516370a0823160e01b8152306004820152600160281b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190614a10565b6109b69190614a3f565b600c54600d546001600160801b03600160801b80840482169382169290810482169116610b1f565b600e5460a08201516040516370a0823160e01b8152306004820152600160281b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a619190614a10565b610a6b9190614a3f565b600e5460c08301516040516370a0823160e01b8152306004820152600160901b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190614a10565b610af89190614a3f565b600c54600d546001600160801b0380831692600160801b9081900482169280831692919004165b6001600160801b0390811660808801819052918116606088018190529281166040880181905293166020870181905261010087019490945260e0860194909452600e54610b779464ffffffffff909116919042611c72565b6080830152606082015286610ba657610b938160800151611d61565b610ba08260600151611d61565b42610bc2565b610bb38160600151611d61565b610bc08260800151611d61565b425b600e805464ffffffffff90921664ffffffffff199092169190911790556001600160801b03918216908216600160801b9081026fffffffffffffffffffffffffffffffff191691909117600d55600b5404166000871315610cd0576000610caf604051806101200160405280610c378b611dce565b81526020018560e001518152602001856101000151815260200185602001518152602001856040015181526020018560600151815260200185608001518152602001600b60009054906101000a90046001600160801b03166001600160801b03168152602001846001600160801b0316815250611e20565b6040880152602087015250909150610cc89050816121a1565b835250610d88565b6000610d6b604051806101200160405280610cf38b610cee90614a7b565b611dce565b81526020018560e001518152602001856101000151815260200185602001518152602001856040015181526020018560600151815260200185608001518152602001600b60009054906101000a90046001600160801b03166001600160801b03168152602001846001600160801b031681525061220b565b6040880152602087015250909150610d849050816121a1565b8352505b87610daf5760008713610d9e5781518790610dcc565b8151610da990614a7b565b87610dcc565b60008713610dbf57815187610dcc565b81518790610dcc90614a7b565b90945092508715610fd3576000831215610df857610df88260c001518a85610df390614a7b565b612480565b60405163a1dab4eb60e01b8152339063a1dab4eb90610e2190879087908b908b90600401614a97565b600060405180830381600087803b158015610e3b57600080fd5b505af1158015610e4f573d6000803e3d6000fd5b5050505060e08201516009546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190614a10565b60e08401819052610ed486611dce565b600e54610ef190600160281b90046001600160681b031684614ad4565b610efb9190614ad4565b1115610f5b5760405162461bcd60e51b815260206004820152602960248201527f536d61724465783a20494e53554646494349454e545f544f4b454e305f494e50604482015268155517d05353d5539560ba1b60648201526084016106fb565b600a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc79190614a10565b610100840152506111c6565b6000841215610fef57610fef8260a001518a86610df390614a7b565b60405163a1dab4eb60e01b8152339063a1dab4eb9061101890879087908b908b90600401614a97565b600060405180830381600087803b15801561103257600080fd5b505af1158015611046573d6000803e3d6000fd5b5050505060e0820151600a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190614a10565b60e084018190526110cb85611dce565b600e546110e890600160901b90046001600160681b031684614ad4565b6110f29190614ad4565b11156111525760405162461bcd60e51b815260206004820152602960248201527f536d61724465783a20494e53554646494349454e545f544f4b454e315f494e50604482015268155517d05353d5539560ba1b60648201526084016106fb565b6009546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561119a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111be9190614a10565b610100840152505b6000806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190614ae7565b6001600160a01b03161415905088156113095780156112dd57611296620f42406112876001600160801b03851688614b04565b6112919190614b31565b6125b1565b600e80546005906112b8908490600160281b90046001600160681b0316614b53565b92506101000a8154816001600160681b0302191690836001600160681b031602179055505b6113048360e00151846101000151856020015186604001518760600151886080015161261a565b611397565b801561137057611329620f42406112876001600160801b03851687614b04565b600e805460129061134b908490600160901b90046001600160681b0316614b53565b92506101000a8154816001600160681b0302191690836001600160681b031602179055505b6113978361010001518460e00151856040015186602001518760800151886060015161261a565b60408051868152602081018690526001600160a01b038c169133917fa4228e1eb11eb9b31069d9ed20e7af9a010ca1a02d4855cee54e08e188fcc32c910160405180910390a35050600e80546001600160f81b0316600160f81b1790555090969095509350505050565b60003361140f85828561278d565b61141a858585612801565b506001949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614ae7565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b815260206004820152601260248201527129b6b0b92232bc1d102727aa2fa7aba722a960711b60448201526064016106fb565b6115068282611b76565b5050565b60006115146129a5565b905090565b60003361068681858561152c83836119b3565b6115369190614ad4565b611a52565b6001600160a01b03811660009081526007602052604081205461068c565b60006060808280808361158d7f00000000000000000000000000000000000000000000000000000000000000006005612ad0565b6115b87f00000000000000000000000000000000000000000000000000000000000000006006612ad0565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000806115ee83612b74565b90925090506115fb612f3a565b915091565b6060600480546104d1906149dc565b6000338161161d82866119b3565b90508381101561167d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106fb565b61141a8286868403611a52565b600033610686818585612801565b600e54600160f81b900460ff166001146116c45760405162461bcd60e51b81526004016106fb90614a52565b600e80546001600160f81b0316600160f91b179055600254156117295760405162461bcd60e51b815260206004820152601860248201527f536d61724465783a204f4e4c595f454d5054595f50414952000000000000000060448201526064016106fb565b600954600a546040516370a0823160e01b81523060048201526001600160a01b03928316929091169060009083906370a0823190602401602060405180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a19190614a10565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156117eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180f9190614a10565b9050811561182257611822848684612480565b801561183357611833838683612480565b5050600e80546001600160f81b0316600160f81b179055505050565b8342111561189f5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106fb565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886118ce8c6130c5565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000611929826130ed565b905060006119398287878761311a565b9050896001600160a01b0316816001600160a01b03161461199c5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016106fb565b6119a78a8a8a611a52565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60006119ec85858585613142565b90506119f6612f3a565b949350505050565b600080611a0f888888888888611c72565b90999098509650505050505050565b6000602083511015611a3a57611a33836136ad565b905061068c565b81611a458482614bde565b5060ff905061068c565b90565b6001600160a01b038316611ab45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106fb565b6001600160a01b038216611b155760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106fb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b816001600160801b0316600003611bc75760405162461bcd60e51b81526020600482015260156024820152740536d61724465783a205a45524f5f464545535f4c5605c1b60448201526064016106fb565b611bd5600a620f4240614b31565b611bdf8284614c9e565b6001600160801b03161115611c2a5760405162461bcd60e51b81526020600482015260116024820152700a6dac2e488caf074408c8a8aa6be9a82b607b1b60448201526064016106fb565b6001600160801b03828116600160801b9183169182028117600b556040517f64f84976d9c917a44796104a59950fdbd9b3c16a5dd348b546d738301f6bd06890600090a35050565b60008085831015611cc55760405162461bcd60e51b815260206004820152601e60248201527f536d6172646578506169723a20494e56414c49445f54494d455354414d50000060448201526064016106fb565b85600003611cd7575086905085611d56565b828603611ce8575083905082611d56565b6000611cff611cf78886614a3f565b61012c6136eb565b899350905061012c611d118983614b04565b878588611d208661012c614a3f565b611d2a9190614b04565b611d349190614b04565b611d3e9190614b31565b611d489190614ad4565b611d529190614b31565b9150505b965096945050505050565b60006001600160801b03821115611dca5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016106fb565b5090565b600080821215611dca5760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016106fb565b60008060008060008560000151600003611e8e5760405162461bcd60e51b815260206004820152602960248201527f536d61724465784c6962726172793a20494e53554646494349454e545f494e50604482015268155517d05353d5539560ba1b60648201526084016106fb565b602086015115801590611ea45750604086015115155b8015611eb35750606086015115155b8015611ec25750608086015115155b611ede5760405162461bcd60e51b81526004016106fb90614cbe565b6000620f42408760e001516001600160801b03168861010001516001600160801b0316620f4240611f0f9190614a3f565b611f199190614a3f565b8851611f259190614b04565b611f2f9190614b31565b90506000611fae6040518061012001604052808481526020018a6020015181526020018a6040015181526020018a6060015181526020018a6080015181526020018a60a0015181526020018a60c0015181526020018a60e001516001600160801b031681526020018a61010001516001600160801b0316815250613703565b90508181148015611fd65750611fd6886060015189608001518a60a001518b60c00151613900565b1561200257611ff7886020015189604001518a606001518b60800151613927565b60808a015260608901525b60008860e001516001600160801b03168961010001516001600160801b0316620f424061202f9190614a3f565b6120399190614a3f565b612046620f424084614b04565b6120509190614b31565b90506120cd6040518061012001604052808381526020018b6020015181526020018b6040015181526020018b6060015181526020018b6080015181526020018b60a0015181526020018b60c0015181526020018b60e001516001600160801b031681526020018b61010001516001600160801b0316815250613a23565b8d51949c50929a509098509650945081908a906120eb908390614a3f565b90525050818110156121965761210386868686613927565b8094508195505050600061217c6040518061012001604052808b6000015181526020018981526020018881526020018781526020018681526020018b60a0015181526020018b60c0015181526020018b60e001516001600160801b031681526020018b61010001516001600160801b0316815250613a23565b929a509098509650945090506121928189614ad4565b9750505b505091939590929450565b60006001600160ff1b03821115611dca5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016106fb565b6000806000806000856000015160000361227a5760405162461bcd60e51b815260206004820152602a60248201527f536d61724465784c6962726172793a20494e53554646494349454e545f4f555460448201526914155517d05353d5539560b21b60648201526084016106fb565b608086015186511080156122915750602086015115155b80156122a05750604086015115155b80156122af5750606086015115155b80156122be5750608086015115155b6122da5760405162461bcd60e51b81526004016106fb90614cbe565b60006122e587613b3f565b87519091508114801561230f575061230f876060015188608001518960a001518a60c00151613900565b1561233b576123308760200151886040015189606001518a60800151613927565b608089015260608801525b6123b6604051806101200160405280838152602001896020015181526020018960400151815260200189606001518152602001896080015181526020018960a0015181526020018960c0015181526020018960e001516001600160801b031681526020018961010001516001600160801b0316815250613cf2565b8b51949a5092985090965094509250811015612476576123d885858585613927565b8093508194505050600061245c604051806101200160405280848b600001516124019190614a3f565b81526020018881526020018781526020018681526020018581526020018a60a0015181526020018a60c0015181526020018a60e001516001600160801b031681526020018a61010001516001600160801b0316815250613cf2565b9299509097509550935090506124728188614ad4565b9650505b5091939590929450565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916124dc9190614d04565b6000604051808303816000865af19150503d8060008114612519576040519150601f19603f3d011682016040523d82523d6000602084013e61251e565b606091505b50915091508180156125485750805115806125485750808060200190518101906125489190614d20565b6125aa5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016106fb565b5050505050565b60006001600160681b03821115611dca5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663034206269747360c81b60648201526084016106fb565b831580159061262857508215155b61267e5760405162461bcd60e51b815260206004820152602160248201527f536d61724465783a20464943544956455f52455345525645535f544f4f5f4c4f6044820152605760f81b60648201526084016106fb565b6001600160801b03841180159061269c57506001600160801b038311155b6126dc5760405162461bcd60e51b8152602060048201526011602482015270536d61724465783a204f564552464c4f5760781b60448201526064016106fb565b6001600160801b03838116600160801b0290851617600c55600e547f2a368c7f33bb86e2d999940a3989d849031aff29b750f67947e6b8e8c3d2ffd690612734906001600160681b03600160281b9091041688614a3f565b600e5461275190600160901b90046001600160681b031688614a3f565b6040805192835260208301919091528101869052606081018590526080810184905260a0810183905260c00160405180910390a1505050505050565b600061279984846119b3565b9050600019811461073e57818110156127f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106fb565b61073e8484848403611a52565b6001600160a01b0383166128655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106fb565b6001600160a01b0382166128c75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106fb565b6001600160a01b0383166000908152602081905260409020548181101561293f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106fb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361073e565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156129fe57507f000000000000000000000000000000000000000000000000000000000000000046145b15612a2857507f000000000000000000000000000000000000000000000000000000000000000090565b611514604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b606060ff8314612ae357611a3383613e1e565b818054612aef906149dc565b80601f0160208091040260200160405190810160405280929190818152602001828054612b1b906149dc565b8015612b685780601f10612b3d57610100808354040283529160200191612b68565b820191906000526020600020905b815481529060010190602001808311612b4b57829003601f168201915b5050505050905061068c565b600e546000908190600160f81b900460ff16600114612ba55760405162461bcd60e51b81526004016106fb90614a52565b600e80546001600160f81b0316600160f91b179055612bc2613e5d565b50600954600a546040516370a0823160e01b81523060048201526001600160a01b03928316929091169060009083906370a0823190602401602060405180830381865afa158015612c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3b9190614a10565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015612c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca99190614a10565b306000908152602081905260409020546002549192509080612ccb8584614b04565b612cd59190614b31565b975080612ce28484614b04565b612cec9190614b31565b96508715801590612cfc57508615155b612d575760405162461bcd60e51b815260206004820152602660248201527f536d61724465783a20494e53554646494349454e545f4c49515549444954595f60448201526510955493915160d21b60648201526084016106fb565b600c546001600160801b0380821691600160801b90041682612d798584614b04565b612d839190614b31565b612d8d9083614a3f565b915082612d9a8583614b04565b612da49190614b31565b612dae9082614a3f565b9050612dba3085613fa4565b612dc5888c8c612480565b612dd0878c8b612480565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015612e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e389190614a10565b6040516370a0823160e01b81523060048201529096506001600160a01b038816906370a0823190602401602060405180830381865afa158015612e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea39190614a10565b600d54909550612ece9087908790859085906001600160801b0380821691600160801b90041661261a565b604080518b8152602081018b90526001600160a01b038d169133917f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2910160405180910390a35050600e80546001600160f81b0316600160f81b17905550959794965093945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbe9190614ae7565b604080518082018252601c81527f65786563757465576f726b28616464726573732c616464726573732900000000602091820152600954600a5483516001600160a01b039283166024820152908216604480830191909152845180830390910181526064909101845291820180516001600160e01b0316633048c02960e01b1790529151929350908316916130539190614d04565b6000604051808303816000865af19150503d8060008114613090576040519150601f19603f3d011682016040523d82523d6000602084013e613095565b606091505b5050505a6000036130c25760405162461bcd60e51b815260206004820152600060248201526044016106fb565b50565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b600061068c6130fa6129a5565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600061312b878787876140d6565b915091506131388161419a565b5095945050505050565b600e54600090600160f81b900460ff166001146131715760405162461bcd60e51b81526004016106fb90614a52565b600e80546001600160f81b0316600160f91b17905561318e613e5d565b506009546040516370a0823160e01b8152306004820152600091829182916001600160a01b0316906370a0823190602401602060405180830381865afa1580156131dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132009190614a10565b600a546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561324e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132729190614a10565b9050600061327f60025490565b6040805160a0810182526009546001600160a01b039081168252600a548116602083019081528284018e8152606084018e81528d841660808601908152955163797c4a1360e01b815294518416600486015291518316602485015251604484015251606483015291519091166084820152909150339063797c4a139060a401600060405180830381600087803b15801561331857600080fd5b505af115801561332c573d6000803e3d6000fd5b50506009546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa15801561337b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339f9190614a10565b600a546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156133ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134119190614a10565b905061341d8b86614ad4565b82101561346c5760405162461bcd60e51b815260206004820152601e60248201527f536d61724465783a20494e53554646494349454e545f414d4f554e545f30000060448201526064016106fb565b6134768a85614ad4565b8110156134c55760405162461bcd60e51b815260206004820152601e60248201527f536d61724465783a20494e53554646494349454e545f414d4f554e545f31000060448201526064016106fb565b8260000361351b576103e86134e26134dd8c8e614b04565b6142e4565b6134ec9190614a3f565b97506134fc61dead6103e86143cc565b613507600283614b31565b9650613514600282614b31565b95506135b1565b61354d85613529858e614b04565b6135339190614b31565b8561353e868e614b04565b6135489190614b31565b6136eb565b97508261355a8982614ad4565b600c5461357091906001600160801b0316614b04565b61357a9190614b31565b9650826135878982614ad4565b600c546135a49190600160801b90046001600160801b0316614b04565b6135ae9190614b31565b95505b876000036136105760405162461bcd60e51b815260206004820152602660248201527f536d61724465783a20494e53554646494349454e545f4c49515549444954595f60448201526513525395115160d21b60648201526084016106fb565b61361a8c896143cc565b600d5461364290839083908a908a906001600160801b0380821691600160801b90041661261a565b604080518c8152602081018c90526001600160a01b038e169133917f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee910160405180910390a35050600e80546001600160f81b0316600160f81b179055509398975050505050505050565b600080829050601f815111156136d8578260405163305a27a960e01b81526004016106fb9190614608565b80516136e382614d3d565b179392505050565b60008183106136fa57816136fc565b825b9392505050565b805160c082015160608301516137199190614b04565b8260a00151836080015161372d9190614b04565b11156138fb5760008260e001516001600160801b031683610100015160026137559190614d61565b6001600160801b031661376c620f42406002614b04565b6137769190614a3f565b6137809190614a3f565b836060015161378f9190614b04565b905060008361010001516001600160801b0316620f42406137b09190614a3f565b6137bb906002614b04565b60e08501519091506000906137d09080614d61565b6001600160801b0316856060015186606001516137ed9190614b04565b6137f79190614b04565b610100860151613813906001600160801b0316620f4240614a3f565b8660e001516001600160801b03168761010001516001600160801b0316620f424061383e9190614a3f565b6138489190614a3f565b6138529190614b04565b8660a001518760c00151886080015189606001516138709190614b04565b61387b906004614b04565b6138859190614b31565b61388f9190614b04565b6138999190614b04565b6138a39190614ad4565b905060008286600001516138b79190614b04565b6138c19085614ad4565b90506138cd8180614b04565b8210156138f65782846138df846142e4565b6138e99190614a3f565b6138f39190614b31565b94505b505050505b919050565b600061391e61390f8387614b04565b6139198587614b04565b61448b565b95945050505050565b6000806139348387614b04565b61393e8587614b04565b10156139bb5760008685856139538980614b04565b61395d9190614b31565b6139679190614b04565b6139719190614b31565b90508361397e8688614b04565b6139889190614b31565b846139938784614b04565b61399d9190614b31565b6139a79190614ad4565b92506139b38187614ad4565b915050613a00565b85836139c78787614b04565b6139d19190614b31565b6139db9190614ad4565b915084846139e98589614b04565b6139f39190614b31565b6139fd9190614ad4565b90505b613a0b600483614b31565b9150613a18600482614b31565b905094509492505050565b6000806000806000808661010001516001600160801b03168760e001516001600160801b0316620f4240613a579190614a3f565b613a619190614a3f565b8751613a6d9190614b04565b90506000876080015182613a819190614b04565b9050600082620f42408a60600151613a999190614b04565b613aa39190614ad4565b9050613aaf8183614b31565b97506000620f42408a60e001516001600160801b03168b60000151613ad49190614b04565b613ade9086614ad4565b613ae89190614b31565b9050808a60200151613afa9190614ad4565b9750808a60600151613b0c9190614ad4565b9550888a60400151613b1e9190614a3f565b9650888a60800151613b309190614a3f565b94505050505091939590929450565b805160e08201516101008301516000916001600160801b0390811691613b699116620f4240614a3f565b613b739190614a3f565b90508260c001518360600151613b899190614b04565b8360a001518460800151613b9d9190614b04565b11156130e75760008360a001518460c001518560e001516001600160801b03168660600151613bcc9190614b04565b613bd69190614b04565b613be09190614b31565b9050600081838660800151613bf59190614b04565b613c00906002614b04565b613c0a9190614ad4565b90506000613c19846002614b04565b90506000613c278480614b04565b8760e001516001600160801b03168861010001516001600160801b0316620f4240613c529190614a3f565b613c5c9088614b04565b868a60800151613c6c9190614b04565b613c77906004614b04565b613c819190614b04565b613c8b9190614b31565b613c959190614ad4565b90506000828860000151613ca99190614b04565b613cb39085614a3f565b9050613cbf8180614b04565b821115613ce75782613cd0836142e4565b613cda9086614a3f565b613ce49190614b31565b96505b505050505050919050565b600080600080600080620f424087600001518860600151613d139190614b04565b613d1d9190614b04565b905060008760e001516001600160801b03168861010001516001600160801b0316620f4240613d4c9190614a3f565b613d569190614a3f565b885160808a0151613d679190614a3f565b613d719190614b04565b9050613d7d8183614b31565b613d88906001614ad4565b96506000620f42408961010001516001600160801b0316620f4240613dad9190614a3f565b613db7908a614b04565b613dc19190614b31565b9050808960200151613dd39190614ad4565b9650808960600151613de59190614ad4565b895160408b0151919650613df891614a3f565b895160808b0151919750613e0b91614a3f565b935050505091939590929450565b505050565b60606000613e2b836144fc565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee29190614ae7565b6001600160a01b0381161580159350909150613f8b57600e546001600160681b03600160281b8204811691600160901b9004168115613f4e57600954613f32906001600160a01b03168484612480565b600e805471ffffffffffffffffffffffffff0000000000191690555b8015613f8557600a54613f6b906001600160a01b03168483612480565b600e80546cffffffffffffffffffffffffff60901b191690555b50505090565b600e805465010000000000600160f81b03191690555090565b6001600160a01b0382166140045760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106fb565b6001600160a01b038216600090815260208190526040902054818110156140785760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106fb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561410d5750600090506003614191565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614161573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661418a57600060019250925050614191565b9150600090505b94509492505050565b60008160048111156141ae576141ae614d8c565b036141b65750565b60018160048111156141ca576141ca614d8c565b036142175760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106fb565b600281600481111561422b5761422b614d8c565b036142785760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106fb565b600381600481111561428c5761428c614d8c565b036130c25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106fb565b6000816000036142f657506000919050565b6000600161430384614524565b901c6001901b9050600181848161431c5761431c614b1b565b048201901c9050600181848161433457614334614b1b565b048201901c9050600181848161434c5761434c614b1b565b048201901c9050600181848161436457614364614b1b565b048201901c9050600181848161437c5761437c614b1b565b048201901c9050600181848161439457614394614b1b565b048201901c905060018184816143ac576143ac614b1b565b048201901c90506136fc818285816143c6576143c6614b1b565b046136eb565b6001600160a01b0382166144225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106fb565b80600260008282546144349190614ad4565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600081830361449c5750600161068c565b818311156144d057620f42406144b3600184614b04565b6144bd9190614b31565b6144c79083614ad4565b8310905061068c565b620f42406144df600185614b04565b6144e99190614b31565b6144f39084614ad4565b8210905061068c565b600060ff8216601f81111561068c57604051632cd44ac360e21b815260040160405180910390fd5b600080608083901c1561453957608092831c92015b604083901c1561454b57604092831c92015b602083901c1561455d57602092831c92015b601083901c1561456f57601092831c92015b600883901c1561458157600892831c92015b600483901c1561459357600492831c92015b600283901c156145a557600292831c92015b600183901c1561068c5760010192915050565b60005b838110156145d35781810151838201526020016145bb565b50506000910152565b600081518084526145f48160208601602086016145b8565b601f01601f19169290920160200192915050565b6020815260006136fc60208301846145dc565b6001600160a01b03811681146130c257600080fd5b6000806040838503121561464357600080fd5b823561464e8161461b565b946020939093013593505050565b80356001600160801b03811681146138fb57600080fd5b6000806000806080858703121561468957600080fd5b84356146948161461b565b935060208501356146a48161461b565b92506146b26040860161465c565b91506146c06060860161465c565b905092959194509250565b80151581146130c257600080fd5b6000806000806000608086880312156146f157600080fd5b85356146fc8161461b565b9450602086013561470c816146cb565b935060408601359250606086013567ffffffffffffffff8082111561473057600080fd5b818801915088601f83011261474457600080fd5b81358181111561475357600080fd5b89602082850101111561476557600080fd5b9699959850939650602001949392505050565b60008060006060848603121561478d57600080fd5b83356147988161461b565b925060208401356147a88161461b565b929592945050506040919091013590565b600080604083850312156147cc57600080fd5b6147d58361465c565b91506147e36020840161465c565b90509250929050565b6000602082840312156147fe57600080fd5b81356136fc8161461b565b60ff60f81b881681526000602060e08184015261482960e084018a6145dc565b838103604085015261483b818a6145dc565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561488d57835183529284019291840191600101614871565b50909c9b505050505050505050505050565b600080600080600080600060e0888a0312156148ba57600080fd5b87356148c58161461b565b965060208801356148d58161461b565b95506040880135945060608801359350608088013560ff811681146148f957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561492957600080fd5b82356149348161461b565b915060208301356149448161461b565b809150509250929050565b6000806000806080858703121561496557600080fd5b84356149708161461b565b93506020850135925060408501359150606085013561498e8161461b565b939692955090935050565b60008060008060008060c087890312156149b257600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600181811c908216806149f057607f821691505b6020821081036130e757634e487b7160e01b600052602260045260246000fd5b600060208284031215614a2257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561068c5761068c614a29565b6020808252600f908201526e14db585c91195e0e881313d0d2d151608a1b604082015260600190565b6000600160ff1b8201614a9057614a90614a29565b5060000390565b84815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b8082018082111561068c5761068c614a29565b600060208284031215614af957600080fd5b81516136fc8161461b565b808202811582820484141761068c5761068c614a29565b634e487b7160e01b600052601260045260246000fd5b600082614b4e57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160681b03818116838216019080821115614b7357614b73614a29565b5092915050565b634e487b7160e01b600052604160045260246000fd5b601f821115613e1957600081815260208120601f850160051c81016020861015614bb75750805b601f850160051c820191505b81811015614bd657828155600101614bc3565b505050505050565b815167ffffffffffffffff811115614bf857614bf8614b7a565b614c0c81614c0684546149dc565b84614b90565b602080601f831160018114614c415760008415614c295750858301515b600019600386901b1c1916600185901b178555614bd6565b600085815260208120601f198616915b82811015614c7057888601518255948401946001909101908401614c51565b5085821015614c8e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160801b03818116838216019080821115614b7357614b73614a29565b60208082526026908201527f536d61724465784c6962726172793a20494e53554646494349454e545f4c495160408201526555494449545960d01b606082015260800190565b60008251614d168184602087016145b8565b9190910192915050565b600060208284031215614d3257600080fd5b81516136fc816146cb565b805160208083015191908110156130e75760001960209190910360031b1b16919050565b6001600160801b03818116838216028082169190828114614d8457614d84614a29565b505092915050565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a