[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAdded", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalAmountAccumulated", "type": "uint256" } ], "name": "BuyerReflection", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "buyers", "type": "address[]" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "BuyerReflectionTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "ChangeTradingStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LuckyReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAdded", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalAmountAccumulated", "type": "uint256" } ], "name": "Reflection", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAdded", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalAmountAccumulated", "type": "uint256" } ], "name": "TopHolderReflection", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "mode", "type": "uint8" } ], "name": "UpdateMode", "type": "event" }, { "inputs": [], "name": "UNISWAP_V2_PAIR", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNISWAP_V2_ROUTER", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "spender", "type": "address" } ], "name": "approveMax", "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": [], "name": "buyTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enableSwap", "type": "bool" } ], "name": "changeSwapStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "changeTradingStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableSwap", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "holders", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isAutoMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBalanceExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isFeeExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isHolder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isMode6Buyer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isReflectionExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityDebt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualSwapBack", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "mode_", "type": "uint8" } ], "name": "manualUpdateMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingDebt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode1BuyTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode1SellTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode2BuyTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode2SellTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode3BuyTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode3SellTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode4BuyTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode4SellTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode5BuyTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode5SellTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode6BuyTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "mode6Buyers", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode6ReflectionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mode6SellTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "modePeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "modeStartTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_topHolders", "type": "address[]" } ], "name": "rewardTopHolders", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTax", "outputs": [ { "internalType": "uint8", "name": "treasury", "type": "uint8" }, { "internalType": "uint8", "name": "reflection", "type": "uint8" }, { "internalType": "uint8", "name": "lucky", "type": "uint8" }, { "internalType": "uint8", "name": "burn", "type": "uint8" }, { "internalType": "uint8", "name": "total", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "session", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isAuto_", "type": "bool" } ], "name": "setAutoMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "treasury_", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsBalanceExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsReflectionExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "topHolderReflectionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalReflectionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasuryDebt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyMarketingFee_", "type": "uint256" }, { "internalType": "uint256", "name": "buyLiquidityFee_", "type": "uint256" }, { "internalType": "uint256", "name": "buyReflectionFee_", "type": "uint256" }, { "internalType": "uint256", "name": "buyTreasuryFee_", "type": "uint256" }, { "internalType": "uint256", "name": "sellMarketingFee_", "type": "uint256" }, { "internalType": "uint256", "name": "sellLiquidityFee_", "type": "uint256" }, { "internalType": "uint256", "name": "sellReflectionFee_", "type": "uint256" }, { "internalType": "uint256", "name": "sellTreasuryFee_", "type": "uint256" } ], "name": "updatePreFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_swapThreshold", "type": "uint256" } ], "name": "updateSwapThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405273de77ac95f80b18fc89c32fef18c3d71af690dd3560015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073de77ac95f80b18fc89c32fef18c3d71af690dd3560025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073de77ac95f80b18fc89c32fef18c3d71af690dd3560035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073efc9264d68d06502cdc785fc2aea84bf05a999f260045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f4d55544154450000000000000000000000000000000000000000000000000000815250600590816200019a9190620023a3565b506040518060400160405280600681526020017f4d5554415445000000000000000000000000000000000000000000000000000081525060069081620001e19190620023a3565b50601260075f6101000a81548160ff021916908360ff16021790555060075f9054906101000a900460ff16600a6200021a919062002610565b633b9aca006200022b919062002660565b6008556001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055506064600260085462000275919062002660565b620002819190620026d7565b600c556064600260085462000297919062002660565b620002a39190620026d7565b600d556127106004600854620002ba919062002660565b620002c69190620026d7565b600e55600c600f555f6010555f6011555f601255600c6013555f6014555f6015555f6016555f6017555f6018555f6019555f601a5f6101000a81548160ff021916908360ff1602179055505f601a60016101000a81548160ff0219169083151502179055505f601b55611c20601c556040518060a00160405280600260ff168152602001600360ff1681526020015f60ff1681526020015f60ff168152602001600560ff16815250601d5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a00160405280600260ff168152602001600360ff1681526020015f60ff1681526020015f60ff168152602001600560ff16815250601e5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff16815250601f5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a00160405280600260ff168152602001600260ff168152602001600260ff1681526020015f60ff168152602001600660ff1681525060205f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff168152602001600360ff1681526020015f60ff168152602001600160ff168152602001600460ff1681525060215f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a00160405280600260ff168152602001600360ff1681526020015f60ff1681526020015f60ff168152602001600560ff1681525060225f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681525060235f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681525060245f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff168152602001600560ff1681526020015f60ff1681526020015f60ff168152602001600560ff1681525060255f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff168152602001600560ff1681526020015f60ff1681526020015f60ff168152602001600560ff1681525060265f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681525060275f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050506040518060a001604052805f60ff168152602001600560ff1681526020015f60ff1681526020015f60ff168152602001600560ff1681525060285f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555050505f6029555f602a5534801562000d7f575f80fd5b5062000da062000d946200207760201b60201c565b6200207e60201b60201c565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160362000e32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e299062002792565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d602f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ef1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000f17919062002817565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000f9e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc4919062002817565b6040518363ffffffff1660e01b815260040162000fe392919062002858565b6020604051808303815f875af115801562001000573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001026919062002817565b60305f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600854600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600854600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160315f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160315f60305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160325f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160325f602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160325f60305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160325f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160325f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160325f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160335f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160335f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160335f602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160335f60305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160335f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160335f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160335f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550601d602d5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff160217905550905050601e602e5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff1602179055509050505f6064600560085462001d0e919062002660565b62001d1a9190620026d7565b90508060095f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001dff919062002894565b60405180910390a3600160345f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550603560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8160085462001f0f9190620028af565b90508060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001fb2919062002894565b60405180910390a3600160345f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550603533908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620028e9565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620021bb57607f821691505b602082108103620021d157620021d062002176565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620022357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620021f8565b620022418683620021f8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200228b620022856200227f8462002259565b62002262565b62002259565b9050919050565b5f819050919050565b620022a6836200226b565b620022be620022b58262002292565b84845462002204565b825550505050565b5f90565b620022d4620022c6565b620022e18184846200229b565b505050565b5b818110156200230857620022fc5f82620022ca565b600181019050620022e7565b5050565b601f82111562002357576200232181620021d7565b6200232c84620021e9565b810160208510156200233c578190505b620023546200234b85620021e9565b830182620022e6565b50505b505050565b5f82821c905092915050565b5f620023795f19846008026200235c565b1980831691505092915050565b5f62002393838362002368565b9150826002028217905092915050565b620023ae826200213f565b67ffffffffffffffff811115620023ca57620023c962002149565b5b620023d68254620021a3565b620023e38282856200230c565b5f60209050601f83116001811462002419575f841562002404578287015190505b62002410858262002386565b8655506200247f565b601f1984166200242986620021d7565b5f5b8281101562002452578489015182556001820191506020850194506020810190506200242b565b868310156200247257848901516200246e601f89168262002368565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200251157808604811115620024e957620024e862002487565b5b6001851615620024f95780820291505b80810290506200250985620024b4565b9450620024c9565b94509492505050565b5f826200252b5760019050620025fd565b816200253a575f9050620025fd565b81600181146200255357600281146200255e5762002594565b6001915050620025fd565b60ff84111562002573576200257262002487565b5b8360020a9150848211156200258d576200258c62002487565b5b50620025fd565b5060208310610133831016604e8410600b8410161715620025ce5782820a905083811115620025c857620025c762002487565b5b620025fd565b620025dd8484846001620024c0565b92509050818404811115620025f757620025f662002487565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200261c8262002259565b9150620026298362002604565b9250620026587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200251a565b905092915050565b5f6200266c8262002259565b9150620026798362002259565b9250828202620026898162002259565b91508282048414831517620026a357620026a262002487565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620026e38262002259565b9150620026f08362002259565b925082620027035762002702620026aa565b5b828204905092915050565b5f82825260208201905092915050565b7f506c6561736520736574206120646966666572656e742077616c6c657420666f5f8201527f7220646576416464726573730000000000000000000000000000000000000000602082015250565b5f6200277a602c836200270e565b915062002787826200271e565b604082019050919050565b5f6020820190508181035f830152620027ab816200276c565b9050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620027e182620027b6565b9050919050565b620027f381620027d5565b8114620027fe575f80fd5b50565b5f815190506200281181620027e8565b92915050565b5f602082840312156200282f576200282e620027b2565b5b5f6200283e8482850162002801565b91505092915050565b6200285281620027d5565b82525050565b5f6040820190506200286d5f83018562002847565b6200287c602083018462002847565b9392505050565b6200288e8162002259565b82525050565b5f602082019050620028a95f83018462002883565b92915050565b5f620028bb8262002259565b9150620028c88362002259565b9250828203905081811115620028e357620028e262002487565b5b92915050565b615cd580620028f75f395ff3fe6080604052600436106103c5575f3560e01c806370a08231116101f1578063b1bd37741161010c578063e01bb6881161009f578063f40acc3d1161006e578063f40acc3d14610e84578063f5db574214610eae578063f9c683c014610edc578063ff131b4e14610f04576103cc565b8063e01bb68814610dca578063e192d48514610df2578063e839363b14610e2e578063f2fde38b14610e5c576103cc565b8063cc274b29116100db578063cc274b2914610d00578063d4d7b19a14610d28578063d6db1d8214610d64578063dd62ed3e14610d8e576103cc565b8063b1bd377414610c3a578063b876e5e214610c76578063c15d854f14610ca4578063cc1776d314610cd2576103cc565b806393e6b04a11610184578063a2d2be8411610153578063a2d2be8414610b78578063a4d9ba2514610ba6578063a82ed9ec14610bd4578063a9059cbb14610bfe576103cc565b806393e6b04a14610aba57806394da5dbf14610ae457806395d89b4114610b205780639dee70dd14610b4a576103cc565b806376e88ddb116101c057806376e88ddb14610a16578063834a33cf14610a3e5780638a8c523c14610a665780638da5cb5b14610a90576103cc565b806370a0823114610970578063715018a6146109ac57806373ad468a146109c25780637437681e146109ec576103cc565b80632c957aa0116102e1578063571ac8b01161027457806364c653c11161024357806364c653c1146108de578063658d4b7f1461090857806366eb3785146109305780636cf3fdb914610946576103cc565b8063571ac8b014610824578063573d8cf9146108605780635e3568b81461088a578063615494be146108b4576103cc565b80634f7041a5116102b05780634f7041a51461077c57806351fdefc9146107aa5780635220179f146107d4578063526b13fd146107fc576103cc565b80632c957aa0146106c6578063313ce567146106ee5780633307d372146107185780633f4218e014610740576103cc565b8063166319eb11610359578063295a521211610328578063295a52121461060857806329691448146106325780632a11ced01461065c5780632c7c314914610698576103cc565b8063166319eb1461054c57806318160ddd14610574578063204a68361461059e57806323b872dd146105cc576103cc565b8063095ea7b311610395578063095ea7b31461047c5780631029ce90146104b8578063122eff2b146104f4578063142a271114610522576103cc565b8062adef68146103d05780630445b667146103fe578063057a2c0e1461042857806306fdde0314610452576103cc565b366103cc57005b5f80fd5b3480156103db575f80fd5b506103e4610f32565b6040516103f5959493929190614ce6565b60405180910390f35b348015610409575f80fd5b50610412610f91565b60405161041f9190614d4f565b60405180910390f35b348015610433575f80fd5b5061043c610f97565b6040516104499190614d4f565b60405180910390f35b34801561045d575f80fd5b50610466610f9d565b6040516104739190614df2565b60405180910390f35b348015610487575f80fd5b506104a2600480360381019061049d9190614e9e565b61102d565b6040516104af9190614ef6565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d99190614f0f565b61111a565b6040516104eb9190614f49565b60405180910390f35b3480156104ff575f80fd5b50610508611155565b604051610519959493929190614ce6565b60405180910390f35b34801561052d575f80fd5b506105366111b4565b6040516105439190614d4f565b60405180910390f35b348015610557575f80fd5b50610572600480360381019061056d9190614f62565b6111ba565b005b34801561057f575f80fd5b50610588611204565b6040516105959190614d4f565b60405180910390f35b3480156105a9575f80fd5b506105b261120d565b6040516105c3959493929190614ce6565b60405180910390f35b3480156105d7575f80fd5b506105f260048036038101906105ed9190615013565b61126c565b6040516105ff9190614ef6565b60405180910390f35b348015610613575f80fd5b5061061c6114dc565b6040516106299190615063565b60405180910390f35b34801561063d575f80fd5b506106466114ee565b6040516106539190614ef6565b60405180910390f35b348015610667575f80fd5b50610682600480360381019061067d9190614f0f565b611501565b60405161068f9190614f49565b60405180910390f35b3480156106a3575f80fd5b506106ac61153c565b6040516106bd959493929190614ce6565b60405180910390f35b3480156106d1575f80fd5b506106ec60048036038101906106e791906150a6565b61159b565b005b3480156106f9575f80fd5b506107026115fb565b60405161070f9190615063565b60405180910390f35b348015610723575f80fd5b5061073e600480360381019061073991906150a6565b611610565b005b34801561074b575f80fd5b50610766600480360381019061076191906150e4565b611670565b6040516107739190614ef6565b60405180910390f35b348015610787575f80fd5b5061079061168d565b6040516107a1959493929190614ce6565b60405180910390f35b3480156107b5575f80fd5b506107be6116ec565b6040516107cb9190614d4f565b60405180910390f35b3480156107df575f80fd5b506107fa60048036038101906107f59190615139565b6116f2565b005b348015610807575f80fd5b50610822600480360381019061081d9190615164565b611706565b005b34801561082f575f80fd5b5061084a600480360381019061084591906150e4565b611761565b6040516108579190614ef6565b60405180910390f35b34801561086b575f80fd5b50610874611775565b6040516108819190614d4f565b60405180910390f35b348015610895575f80fd5b5061089e61177b565b6040516108ab9190614d4f565b60405180910390f35b3480156108bf575f80fd5b506108c8611781565b6040516108d59190614d4f565b60405180910390f35b3480156108e9575f80fd5b506108f2611787565b6040516108ff9190614d4f565b60405180910390f35b348015610913575f80fd5b5061092e600480360381019061092991906150a6565b61178d565b005b34801561093b575f80fd5b506109446117ed565b005b348015610951575f80fd5b5061095a61180d565b6040516109679190614d4f565b60405180910390f35b34801561097b575f80fd5b50610996600480360381019061099191906150e4565b611813565b6040516109a39190614d4f565b60405180910390f35b3480156109b7575f80fd5b506109c06118eb565b005b3480156109cd575f80fd5b506109d66118fe565b6040516109e39190614d4f565b60405180910390f35b3480156109f7575f80fd5b50610a00611904565b604051610a0d9190614d4f565b60405180910390f35b348015610a21575f80fd5b50610a3c6004803603810190610a379190615164565b61190a565b005b348015610a49575f80fd5b50610a646004803603810190610a5f9190615164565b61192f565b005b348015610a71575f80fd5b50610a7a611954565b604051610a879190614ef6565b60405180910390f35b348015610a9b575f80fd5b50610aa4611966565b604051610ab19190614f49565b60405180910390f35b348015610ac5575f80fd5b50610ace61198d565b604051610adb9190614ef6565b60405180910390f35b348015610aef575f80fd5b50610b0a6004803603810190610b0591906150e4565b6119a0565b604051610b179190614ef6565b60405180910390f35b348015610b2b575f80fd5b50610b346119bd565b604051610b419190614df2565b60405180910390f35b348015610b55575f80fd5b50610b5e611a4d565b604051610b6f959493929190614ce6565b60405180910390f35b348015610b83575f80fd5b50610b8c611aac565b604051610b9d959493929190614ce6565b60405180910390f35b348015610bb1575f80fd5b50610bba611b0b565b604051610bcb959493929190614ce6565b60405180910390f35b348015610bdf575f80fd5b50610be8611b6a565b604051610bf591906151ea565b60405180910390f35b348015610c09575f80fd5b50610c246004803603810190610c1f9190614e9e565b611b8f565b604051610c319190614ef6565b60405180910390f35b348015610c45575f80fd5b50610c606004803603810190610c5b91906150e4565b611ba3565b604051610c6d9190614ef6565b60405180910390f35b348015610c81575f80fd5b50610c8a611bc0565b604051610c9b959493929190614ce6565b60405180910390f35b348015610caf575f80fd5b50610cb8611c1f565b604051610cc9959493929190614ce6565b60405180910390f35b348015610cdd575f80fd5b50610ce6611c7e565b604051610cf7959493929190614ce6565b60405180910390f35b348015610d0b575f80fd5b50610d266004803603810190610d219190614f0f565b611cdd565b005b348015610d33575f80fd5b50610d4e6004803603810190610d4991906150e4565b611cef565b604051610d5b9190614ef6565b60405180910390f35b348015610d6f575f80fd5b50610d78611d0c565b604051610d859190614d4f565b60405180910390f35b348015610d99575f80fd5b50610db46004803603810190610daf9190615203565b611d12565b604051610dc19190614d4f565b60405180910390f35b348015610dd5575f80fd5b50610df06004803603810190610deb91906150e4565b611d94565b005b348015610dfd575f80fd5b50610e186004803603810190610e139190615241565b611ddf565b604051610e259190614ef6565b60405180910390f35b348015610e39575f80fd5b50610e42611e09565b604051610e53959493929190614ce6565b60405180910390f35b348015610e67575f80fd5b50610e826004803603810190610e7d91906150e4565b611e68565b005b348015610e8f575f80fd5b50610e98611eea565b604051610ea59190614f49565b60405180910390f35b348015610eb9575f80fd5b50610ec2611f0f565b604051610ed3959493929190614ce6565b60405180910390f35b348015610ee7575f80fd5b50610f026004803603810190610efd91906152e0565b611f6e565b005b348015610f0f575f80fd5b50610f1861210a565b604051610f29959493929190614ce6565b60405180910390f35b601d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b600e5481565b601b5481565b606060058054610fac90615358565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd890615358565b80156110235780601f10610ffa57610100808354040283529160200191611023565b820191905f5260205f20905b81548152906001019060200180831161100657829003601f168201915b5050505050905090565b5f81600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516111089190614d4f565b60405180910390a36001905092915050565b602c8181548110611129575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6023805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b60375481565b6111c2612169565b87600f81905550866010819055508560118190555084601281905550836013819055508260148190555081601581905550806016819055505050505050505050565b5f600854905090565b601f805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146114c85781600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be906153d2565b60405180910390fd5b81600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461144b919061541d565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6114d38484846121e7565b90509392505050565b601a5f9054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b60358181548110611510575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6026805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b6115a3612169565b8060335f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60075f9054906101000a900460ff16905090565b611618612169565b8060325f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6031602052805f5260405f205f915054906101000a900460ff1681565b602d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b60175481565b6116fa612169565b611703816124ae565b50565b61170e612169565b80600b5f6101000a81548160ff0219169083151502179055507fa2974e0f27442edd60c8b32f67b3197c4da62252841bfed6068f393c853de223816040516117569190614ef6565b60405180910390a150565b5f61176e8260085461102d565b9050919050565b601c5481565b602a5481565b60365481565b60185481565b611795612169565b8060315f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6117f5612169565b6117fd61301d565b1561180b5761180a6130ba565b5b565b60195481565b5f8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905060325f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118ad57505f603654115b80156118be57506002603580549050115b156118e257603580549050816118d4919061547d565b816118df91906154ad565b90505b80915050919050565b6118f3612169565b6118fc5f61333e565b565b600c5481565b600d5481565b611912612169565b80600b60016101000a81548160ff02191690831515021790555050565b611937612169565b80601a60016101000a81548160ff02191690831515021790555050565b600b5f9054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a60019054906101000a900460ff1681565b6033602052805f5260405f205f915054906101000a900460ff1681565b6060600680546119cc90615358565b80601f01602080910402602001604051908101604052809291908181526020018280546119f890615358565b8015611a435780601f10611a1a57610100808354040283529160200191611a43565b820191905f5260205f20905b815481529060010190602001808311611a2657829003601f168201915b5050505050905090565b601e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b6027805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b6025805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611b9b3384846121e7565b905092915050565b6032602052805f5260405f205f915054906101000a900460ff1681565b6024805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b6020805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b602e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b611ce5612169565b80600e8190555050565b6034602052805f5260405f205f915054906101000a900460ff1681565b60295481565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611d9c612169565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602b602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b6022805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b611e70612169565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590615550565b60405180910390fd5b611ee78161333e565b50565b60305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6028805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b611f76612169565b5f60375411611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906155b8565b60405180910390fd5b5f82829050603754611fcc919061547d565b90505f6037819055505f5b838390508160ff161015612104578160095f86868560ff16818110611fff57611ffe6155d6565b5b905060200201602081019061201491906150e4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461205b91906154ad565b9250508190555083838260ff16818110612078576120776155d6565b5b905060200201602081019061208d91906150e4565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120e99190614d4f565b60405180910390a380806120fc90615603565b915050611fd7565b50505050565b6021805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff16905085565b6121716133ff565b73ffffffffffffffffffffffffffffffffffffffff1661218f611966565b73ffffffffffffffffffffffffffffffffffffffff16146121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90615675565b60405180910390fd5b565b5f6121f28484613406565b6121fc8383613507565b60385f9054906101000a900460ff16156122225761221b8484846135fc565b90506124a7565b61222a61301d565b15612238576122376130ba565b5b60325f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166122905761228f846137d8565b5b612317826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138689092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612361846138bc565b5f61236c8585613c0a565b6123765782612382565b612381858585613cb0565b5b90506123d48160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613cf090919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061241e846138bc565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161247b9190614d4f565b60405180910390a3601a60019054906101000a900460ff16156124a1576124a0613d05565b5b60019150505b9392505050565b6006601a5f9054906101000a900460ff1660ff161480156124d3575060068160ff1614155b156124e1576124e0613d77565b5b60028160ff16036126b357601f602d5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff1602179055509050506020602e5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff160217905550905050612fc2565b60038160ff1603612885576021602d5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff1602179055509050506022602e5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff160217905550905050612fc1565b60048160ff1603612a57576023602d5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff1602179055509050506024602e5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff160217905550905050612fc0565b60058160ff1603612c29576025602d5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff1602179055509050506026602e5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff160217905550905050612fbf565b60068160ff1603612dfb576027602d5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff1602179055509050506028602e5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff160217905550905050612fbe565b601d602d5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff160217905550905050601e602e5f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a900460ff16815f0160026101000a81548160ff021916908360ff1602179055505f820160039054906101000a900460ff16815f0160036101000a81548160ff021916908360ff1602179055505f820160049054906101000a900460ff16815f0160046101000a81548160ff021916908360ff1602179055509050505b5b5b5b5b80601a5f6101000a81548160ff021916908360ff16021790555042601b819055507f3767691dd0ddd9d4be17e4e8e94e164993de91ae51d4fad9ad16b3ff4b7b1e86816040516130129190615063565b60405180910390a150565b5f60305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156130875750600b60019054906101000a900460ff165b801561309f575060385f9054906101000a900460ff16155b80156130b55750600e546130b230611813565b10155b905090565b600160385f6101000a81548160ff0219169083151502179055505f6130de30611813565b905061310b602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261102d565b505f600267ffffffffffffffff81111561312857613127615693565b5b6040519080825280602002602001820160405280156131565781602001602082028036833780820191505090505b50905030815f8151811061316d5761316c6155d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613211573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061323591906156d4565b81600181518110613249576132486155d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016132e59594939291906157ef565b5f604051808303815f87803b1580156132fc575f80fd5b505af115801561330e573d5f803e3d5ffd5b505050505f4790506133208184613eb8565b5050505f60385f6101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b600b5f9054906101000a900460ff166135035760305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156134c3575060305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b613502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f990615891565b60405180910390fd5b5b5050565b60335f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166135f857600d5481111561359a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135919061591f565b60405180910390fd5b5f816135a584611813565b6135af91906154ad565b9050600c548111156135f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135ed90615987565b60405180910390fd5b505b5050565b5f613684826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138689092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506136ce846138bc565b61371e8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613cf090919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550613768836138bc565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516137c59190614d4f565b60405180910390a3600190509392505050565b5f6036541115613865575f6035805490506036546137f6919061547d565b90508060365f828254613809919061541d565b925050819055508060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461385c91906154ad565b92505081905550505b50565b5f8383111582906138af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138a69190614df2565b60405180910390fd5b5082840390509392505050565b5f6138c682611813565b90505f8111156139d95760345f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166139d457600160345f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550603582908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b613c06565b60345f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613c05575f60345f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f5b6001603580549050613a90919061541d565b811015613bbf578273ffffffffffffffffffffffffffffffffffffffff1660358281548110613ac257613ac16155d6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613bac5760356001603580549050613b19919061541d565b81548110613b2a57613b296155d6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660358281548110613b6657613b656155d6565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8080613bb7906159a5565b915050613a7e565b506035805480613bd257613bd16159ec565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590555b5b5050565b5f60315f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580613ca8575060315f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f80601a5f9054906101000a900460ff1660ff161115613cdc57613cd5848484614119565b9050613ce9565b613ce6848361476f565b90505b9392505050565b5f8183613cfd91906154ad565b905092915050565b5f601a5f9054906101000a900460ff1690505f8160ff1603613d275750613d75565b5f601b5442613d36919061541d565b9050601c54811015613d49575050613d75565b600182613d569190615a19565b915060068260ff161115613d6957600191505b613d72826124ae565b50505b565b6001602a5f828254613d8991906154ad565b925050819055505f6029540315613eb6575f602c8054905090505f81602954613db2919061547d565b90505f5b82811015613e64575f602c8281548110613dd357613dd26155d6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508260095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613e4991906154ad565b92505081905550508080613e5c906159a5565b915050613db6565b505f602981905550602c5f613e799190614c92565b7fde01858d260cb2aab5a7bfe1b02ccad5a0b083cdb1b4a8c642c7d4d7d85f2085602c82604051613eab929190615b2d565b60405180910390a150505b565b5f601954601854601754613ecc91906154ad565b613ed691906154ad565b90505f8160175485613ee89190615b5b565b613ef2919061547d565b90505f8260175485613f049190615b5b565b613f0e919061547d565b90505f8360185487613f209190615b5b565b613f2a919061547d565b90505f8460185487613f3c9190615b5b565b613f46919061547d565b90505f828589613f56919061541d565b613f60919061541d565b90505f828589613f70919061541d565b613f7a919061541d565b90505f8611156140025760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8790811502906040515f60405180830381858888f19350505050158015613fe8573d5f803e3d5ffd5b508460175f828254613ffa919061541d565b925050819055505b5f8411156140885760045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8590811502906040515f60405180830381858888f1935050505015801561406e573d5f803e3d5ffd5b508260185f828254614080919061541d565b925050819055505b5f82111561410e5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156140f4573d5f803e3d5ffd5b508060195f828254614106919061541d565b925050819055505b505050505050505050565b5f80602e6040518060a00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff168152505090505f60305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036142a957602d6040518060a00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff16815250509150600190505b5f6064836080015160ff16866142bf9190615b5b565b6142c9919061547d565b90505f835f015160ff16111561436d575f836080015160ff16845f015160ff16836142f49190615b5b565b6142fe919061547d565b90508060195f82825461431191906154ad565b925050819055508060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461436491906154ad565b92505081905550505b5f836020015160ff161115614619575f836080015160ff16846020015160ff16836143989190615b5b565b6143a2919061547d565b90506003601a5f9054906101000a900460ff1660ff1603614415578060375f8282546143ce91906154ad565b925050819055507fe67cffa4bbbf9dd312cee0b0eecb1a9ad54f728b39320b7a745389859bf59cae81603754604051614408929190615b9c565b60405180910390a1614617565b6006601a5f9054906101000a900460ff1660ff16036145c2578060295f82825461443f91906154ad565b925050819055508261448b577fbc105e9024dec52ec78803e23877e0b53040838469fd53247dae9c4a7828a2688160295460405161447e929190615b9c565b60405180910390a16145bd565b8280156144f05750602b5f602a5481526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156145bc576001602b5f602a5481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550602c87908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b614616565b8060365f8282546145d391906154ad565b925050819055507f0541e0aba34cd8c84288e3db56e060e69892cb7cedbcf6d9dee2b48d9c2453648160365460405161460d929190615b9c565b60405180910390a15b5b505b5f836040015160ff16111561465b575f836080015160ff16846040015160ff16836146449190615b5b565b61464e919061547d565b9050614659816149b3565b505b5f836060015160ff161115614750575f836080015160ff16846060015160ff16836146869190615b5b565b614690919061547d565b90508060095f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546146e091906154ad565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516147469190614d4f565b60405180910390a3505b6147638186614c1890919063ffffffff16565b93505050509392505050565b5f8060135490505f60145490505f60155490505f601654905060305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036147f157600f5493506010549250601154915060125490505b5f606485886148009190615b5b565b61480a919061547d565b90505f6064858961481b9190615b5b565b614825919061547d565b90505f6064848a6148369190615b5b565b614840919061547d565b90505f6064868b6148519190615b5b565b61485b919061547d565b90505f8611156148b9578060365f82825461487691906154ad565b925050819055507f0541e0aba34cd8c84288e3db56e060e69892cb7cedbcf6d9dee2b48d9c245364816036546040516148b0929190615b9c565b60405180910390a15b8360175f8282546148ca91906154ad565b925050819055508260185f8282546148e291906154ad565b925050819055508160195f8282546148fa91906154ad565b9250508190555081838561490e91906154ad565b61491891906154ad565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461496391906154ad565b925050819055505f8183858761497991906154ad565b61498391906154ad565b61498d91906154ad565b90506149a2818c614c1890919063ffffffff16565b995050505050505050505092915050565b5f6149bf600180614c2d565b90505f603582815481106149d6576149d56155d6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015614a6a575061dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015614ac35750602f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015614b1c575060305f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15614c13578260095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254614b6d91906154ad565b925050819055507fe4cbe3422132330d6356a5b83b4e8887027dcfada3b80fec7e557cf26431470d8184604051614ba5929190615bc3565b60405180910390a18073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051614c0a9190614d4f565b60405180910390a35b505050565b5f8183614c25919061541d565b905092915050565b5f80333a4342600143614c40919061541d565b408888604051602001614c599796959493929190615c02565b604051602081830303815290604052805190602001205f1c90505f60358054905082614c859190615c6f565b9050809250505092915050565b5080545f8255905f5260205f2090810190614cad9190614cb0565b50565b5b80821115614cc7575f815f905550600101614cb1565b5090565b5f60ff82169050919050565b614ce081614ccb565b82525050565b5f60a082019050614cf95f830188614cd7565b614d066020830187614cd7565b614d136040830186614cd7565b614d206060830185614cd7565b614d2d6080830184614cd7565b9695505050505050565b5f819050919050565b614d4981614d37565b82525050565b5f602082019050614d625f830184614d40565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015614d9f578082015181840152602081019050614d84565b5f8484015250505050565b5f601f19601f8301169050919050565b5f614dc482614d68565b614dce8185614d72565b9350614dde818560208601614d82565b614de781614daa565b840191505092915050565b5f6020820190508181035f830152614e0a8184614dba565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f614e4382614e1a565b9050919050565b614e5381614e39565b8114614e5d575f80fd5b50565b5f81359050614e6e81614e4a565b92915050565b614e7d81614d37565b8114614e87575f80fd5b50565b5f81359050614e9881614e74565b92915050565b5f8060408385031215614eb457614eb3614e12565b5b5f614ec185828601614e60565b9250506020614ed285828601614e8a565b9150509250929050565b5f8115159050919050565b614ef081614edc565b82525050565b5f602082019050614f095f830184614ee7565b92915050565b5f60208284031215614f2457614f23614e12565b5b5f614f3184828501614e8a565b91505092915050565b614f4381614e39565b82525050565b5f602082019050614f5c5f830184614f3a565b92915050565b5f805f805f805f80610100898b031215614f7f57614f7e614e12565b5b5f614f8c8b828c01614e8a565b9850506020614f9d8b828c01614e8a565b9750506040614fae8b828c01614e8a565b9650506060614fbf8b828c01614e8a565b9550506080614fd08b828c01614e8a565b94505060a0614fe18b828c01614e8a565b93505060c0614ff28b828c01614e8a565b92505060e06150038b828c01614e8a565b9150509295985092959890939650565b5f805f6060848603121561502a57615029614e12565b5b5f61503786828701614e60565b935050602061504886828701614e60565b925050604061505986828701614e8a565b9150509250925092565b5f6020820190506150765f830184614cd7565b92915050565b61508581614edc565b811461508f575f80fd5b50565b5f813590506150a08161507c565b92915050565b5f80604083850312156150bc576150bb614e12565b5b5f6150c985828601614e60565b92505060206150da85828601615092565b9150509250929050565b5f602082840312156150f9576150f8614e12565b5b5f61510684828501614e60565b91505092915050565b61511881614ccb565b8114615122575f80fd5b50565b5f813590506151338161510f565b92915050565b5f6020828403121561514e5761514d614e12565b5b5f61515b84828501615125565b91505092915050565b5f6020828403121561517957615178614e12565b5b5f61518684828501615092565b91505092915050565b5f819050919050565b5f6151b26151ad6151a884614e1a565b61518f565b614e1a565b9050919050565b5f6151c382615198565b9050919050565b5f6151d4826151b9565b9050919050565b6151e4816151ca565b82525050565b5f6020820190506151fd5f8301846151db565b92915050565b5f806040838503121561521957615218614e12565b5b5f61522685828601614e60565b925050602061523785828601614e60565b9150509250929050565b5f806040838503121561525757615256614e12565b5b5f61526485828601614e8a565b925050602061527585828601614e60565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126152a05761529f61527f565b5b8235905067ffffffffffffffff8111156152bd576152bc615283565b5b6020830191508360208202830111156152d9576152d8615287565b5b9250929050565b5f80602083850312156152f6576152f5614e12565b5b5f83013567ffffffffffffffff81111561531357615312614e16565b5b61531f8582860161528b565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061536f57607f821691505b6020821081036153825761538161532b565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6153bc601d83614d72565b91506153c782615388565b602082019050919050565b5f6020820190508181035f8301526153e9816153b0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61542782614d37565b915061543283614d37565b925082820390508181111561544a576154496153f0565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61548782614d37565b915061549283614d37565b9250826154a2576154a1615450565b5b828204905092915050565b5f6154b782614d37565b91506154c283614d37565b92508282019050808211156154da576154d96153f0565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61553a602683614d72565b9150615545826154e0565b604082019050919050565b5f6020820190508181035f8301526155678161552e565b9050919050565b7f5265776172642073686f756c6420626520617661696c61626c650000000000005f82015250565b5f6155a2601a83614d72565b91506155ad8261556e565b602082019050919050565b5f6020820190508181035f8301526155cf81615596565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61560d82614ccb565b915060ff82036156205761561f6153f0565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61565f602083614d72565b915061566a8261562b565b602082019050919050565b5f6020820190508181035f83015261568c81615653565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506156ce81614e4a565b92915050565b5f602082840312156156e9576156e8614e12565b5b5f6156f6848285016156c0565b91505092915050565b5f819050919050565b5f61572261571d615718846156ff565b61518f565b614d37565b9050919050565b61573281615708565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61576a81614e39565b82525050565b5f61577b8383615761565b60208301905092915050565b5f602082019050919050565b5f61579d82615738565b6157a78185615742565b93506157b283615752565b805f5b838110156157e25781516157c98882615770565b97506157d483615787565b9250506001810190506157b5565b5085935050505092915050565b5f60a0820190506158025f830188614d40565b61580f6020830187615729565b81810360408301526158218186615793565b90506158306060830185614f3a565b61583d6080830184614d40565b9695505050505050565b7f54726164696e672069732064697361626c6564210000000000000000000000005f82015250565b5f61587b601483614d72565b915061588682615847565b602082019050919050565b5f6020820190508181035f8301526158a88161586f565b9050919050565b7f4d6178207472616e73616374696f6e20616d6f756e74206973206c696d6974655f8201527f6421000000000000000000000000000000000000000000000000000000000000602082015250565b5f615909602283614d72565b9150615914826158af565b604082019050919050565b5f6020820190508181035f830152615936816158fd565b9050919050565b7f4d61782062616c616e6365206973206c696d69746564210000000000000000005f82015250565b5f615971601783614d72565b915061597c8261593d565b602082019050919050565b5f6020820190508181035f83015261599e81615965565b9050919050565b5f6159af82614d37565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036159e1576159e06153f0565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f615a2382614ccb565b9150615a2e83614ccb565b9250828201905060ff811115615a4757615a466153f0565b5b92915050565b5f81549050919050565b5f819050815f5260205f209050919050565b5f815f1c9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f615aa5615aa083615a69565b615a74565b9050919050565b5f615ab78254615a93565b9050919050565b5f600182019050919050565b5f615ad482615a4d565b615ade8185615742565b9350615ae983615a57565b805f5b83811015615b2057615afd82615aac565b615b078882615770565b9750615b1283615abe565b925050600181019050615aec565b5085935050505092915050565b5f6040820190508181035f830152615b458185615aca565b9050615b546020830184614d40565b9392505050565b5f615b6582614d37565b9150615b7083614d37565b9250828202615b7e81614d37565b91508282048414831517615b9557615b946153f0565b5b5092915050565b5f604082019050615baf5f830185614d40565b615bbc6020830184614d40565b9392505050565b5f604082019050615bd65f830185614f3a565b615be36020830184614d40565b9392505050565b5f819050919050565b615bfc81615bea565b82525050565b5f60e082019050615c155f83018a614f3a565b615c226020830189614d40565b615c2f6040830188614d40565b615c3c6060830187614d40565b615c496080830186615bf3565b615c5660a0830185614d40565b615c6360c0830184614d40565b98975050505050505050565b5f615c7982614d37565b9150615c8483614d37565b925082615c9457615c93615450565b5b82820690509291505056fea264697066735822122031468f289e98d627559b20438e37dcc0ef9259d47b10a4e65f5693ada7f86f1364736f6c63430008150033