[ { "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": "amountBNB", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "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": "_maxBuyTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxSellTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWalletToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoBuybackMultiplier", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "_address", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "blacklistAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyCooldownEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimDividend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" }, { "internalType": "uint8", "name": "_interval", "type": "uint8" } ], "name": "cooldownEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cooldownTimerInterval", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMultipliedFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "selling", "type": "bool" } ], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "shareholder", "type": "address" } ], "name": "getUnpaidEarnings", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" }, { "internalType": "bool", "name": "_autoBuybackMultiplier", "type": "bool" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_devFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxBuyTxPercent", "type": "uint256" } ], "name": "setBuyTxLimitInPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsDividendExempt", "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": "setIsTimelockExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxWallPercent", "type": "uint256" } ], "name": "setMaxWalletPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_devFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxSellTxPercent", "type": "uint256" } ], "name": "setSellTxLimitInPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "tradingStatus", "outputs": [], "stateMutability": "nonpayable", "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 payable", "name": "account", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "triggerBuybackMultiplier", "type": "bool" } ], "name": "triggerManualBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600280546001600160a01b031990811673c7198437980c041c805a1edcba50c1ce5db951181790915560038054821673b31f66aa3c1e785363f0875a1b74e27b85fd66c717905560048054821661dead1790556005805482169055600680549091167336d21592cba90d9ee862a55ce22b9770902eda521790556200008c6012600a6200056f565b6200009c906305f5e10062000630565b6009556127106009546103e8620000b4919062000630565b620000c0919062000503565b600a556127106009546064620000d7919062000630565b620000e3919062000503565b600b556127106009546107d0620000fb919062000630565b62000107919062000503565b600c5561012c60145560646015556102bc60165561012c601755606460185561057860195561012c601a556064601b556102bc601c5561012c601d556064601e55610578601f556127106026556001602755612710600954600a6200016d919062000630565b62000179919062000503565b60285560146029556064602a81905560c8602b55602c55610708602e55602f805461010061ffff19918216179091556207a120603655603780548216610500179055603c8054909116610101179055348015620001d557600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155603980547360ae616a2155ee3d9a68541ba4544862310933d4931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b1580156200025757600080fd5b505afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002929190620004d1565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002df57600080fd5b505af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a9190620004d1565b603a80546001600160a01b0319166001600160a01b03928316179055306000908152600e60209081526040808320603980548616855292529182902060001990555490519116906200036c90620004c3565b6001600160a01b039091168152602001604051809103906000f08015801562000399573d6000803e3d6000fd5b50603580546001600160a01b03199081166001600160a01b0393841617909155336000818152600f60209081526040808320805460ff199081166001908117909255601084528285208054821683179055601184528285208054821683179055600480548916865283862080548316841790553080875284872080548416851790556006548a1687528487208054841685179055603a548a1687526012865284872080548416851790558652838620805483168417905554909716845281842080549097161790955560078054851684179055600880549094168317909355600954828252600d84528482208190559351938452909283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000668565b61106880620035ba83390190565b600060208284031215620004e457600080fd5b81516001600160a01b0381168114620004fc57600080fd5b9392505050565b6000826200052157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620005675781600019048211156200054b576200054b62000652565b808516156200055957918102915b93841c93908002906200052b565b509250929050565b6000620004fc60ff8416836000826200058b575060016200062a565b816200059a575060006200062a565b8160018114620005b35760028114620005be57620005de565b60019150506200062a565b60ff841115620005d257620005d262000652565b50506001821b6200062a565b5060208310610133831016604e8410600b841016171562000603575081810a6200062a565b6200060f838362000526565b806000190482111562000626576200062662000652565b0290505b92915050565b60008160001904831182151516156200064d576200064d62000652565b500290565b634e487b7160e01b600052601160045260246000fd5b612f4280620006786000396000f3fe6080604052600436106103a65760003560e01c8063893d20e8116101e7578063df20fd491161010d578063f4293890116100a0578063f887ea401161006f578063f887ea4014610afe578063fe575a8714610b1e578063fe9fbb8014610b4e578063ffb54a9914610b6e57600080fd5b8063f429389014610a89578063f708a64f14610a9e578063f74c9f4714610abe578063f84ba65d14610ade57600080fd5b8063f0b37c04116100dc578063f0b37c0414610a14578063f0fc6bca14610a34578063f1f3bca314610a49578063f2fde38b14610a6957600080fd5b8063df20fd4914610995578063df4a76c5146109b5578063e1dcc71f146109d5578063e96fada2146109f457600080fd5b8063b6a5d7de11610185578063cf4be39411610154578063cf4be39414610904578063d51ed1c81461091a578063d806d12f1461093a578063dd62ed3e1461094f57600080fd5b8063b6a5d7de1461088e578063ba876bb9146108ae578063bf56b371146108ce578063ca33e64c146108e457600080fd5b8063a4b45c00116101c1578063a4b45c0014610819578063a8aa1b3114610839578063a9059cbb14610859578063b210b06d1461087957600080fd5b8063893d20e81461079a57806395d89b41146107cc5780639d1944f5146107f957600080fd5b8063313ce567116102cc578063658d4b7f1161026a57806378109e541161023957806378109e54146107245780637affa29b1461073a57806382334b941461075a57806382bf293c1461077a57600080fd5b8063658d4b7f146106905780636ddd1713146106b057806370a08231146106cf578063722b62ad1461070557600080fd5b8063455a4396116102a6578063455a43961461061657806350db71fb14610636578063571ac8b014610656578063617fe0ed1461067657600080fd5b8063313ce567146105c457806333477327146105e65780633bb8a8d4146105fc57600080fd5b80632375ce40116103445780632d48e896116103135780632d48e896146105355780632d594567146105555780632f54bf6e146105755780632f5620d1146105a457600080fd5b80632375ce40146104c057806323b872dd146104e057806328fd3198146105005780632b112e491461052057600080fd5b80630d295980116103805780630d295980146104495780631161ae391461046b57806318160ddd1461048b578063201e7991146104a057600080fd5b80630445b667146103b257806306fdde03146103db578063095ea7b31461041957600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c860285481565b6040519081526020015b60405180910390f35b3480156103e757600080fd5b5060408051808201909152600c81526b4675636b5072696e7465727360a01b60208201525b6040516103d29190612d85565b34801561042557600080fd5b50610439610434366004612b13565b610b88565b60405190151581526020016103d2565b34801561045557600080fd5b50610469610464366004612b3f565b610bf5565b005b34801561047757600080fd5b50610439610486366004612c4d565b610c40565b34801561049757600080fd5b506009546103c8565b3480156104ac57600080fd5b506104696104bb366004612c4d565b610c54565b3480156104cc57600080fd5b506104696104db366004612c6f565b610c84565b3480156104ec57600080fd5b506104396104fb366004612a9d565b610cd9565b34801561050c57600080fd5b506103c861051b366004612a47565b610d9b565b34801561052c57600080fd5b506103c8610e19565b34801561054157600080fd5b50610469610550366004612c4d565b610e6b565b34801561056157600080fd5b50610469610570366004612bc6565b610efa565b34801561058157600080fd5b50610439610590366004612a47565b6000546001600160a01b0391821691161490565b3480156105b057600080fd5b506104696105bf366004612b76565b610f46565b3480156105d057600080fd5b5060125b60405160ff90911681526020016103d2565b3480156105f257600080fd5b506103c8600a5481565b34801561060857600080fd5b50602f546104399060ff1681565b34801561062257600080fd5b50610469610631366004612ade565b610fac565b34801561064257600080fd5b50610469610651366004612ade565b610ffc565b34801561066257600080fd5b50610439610671366004612a47565b61104c565b34801561068257600080fd5b506037546104399060ff1681565b34801561069c57600080fd5b506104696106ab366004612ade565b61105a565b3480156106bc57600080fd5b50603c5461043990610100900460ff1681565b3480156106db57600080fd5b506103c86106ea366004612a47565b6001600160a01b03166000908152600d602052604090205490565b34801561071157600080fd5b506037546105d490610100900460ff1681565b34801561073057600080fd5b506103c8600c5481565b34801561074657600080fd5b50610469610755366004612bf8565b6110aa565b34801561076657600080fd5b50610469610775366004612c2a565b6110f6565b34801561078657600080fd5b50610469610795366004612bf8565b61119f565b3480156107a657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103d2565b3480156107d857600080fd5b506040805180820190915260048152634655434b60e01b602082015261040c565b34801561080557600080fd5b50610469610814366004612bf8565b6111ea565b34801561082557600080fd5b50610469610834366004612a64565b611223565b34801561084557600080fd5b50603a546107b4906001600160a01b031681565b34801561086557600080fd5b50610439610874366004612b13565b611276565b34801561088557600080fd5b50610469611283565b34801561089a57600080fd5b506104696108a9366004612a47565b6112af565b3480156108ba57600080fd5b506104696108c9366004612cc9565b611300565b3480156108da57600080fd5b506103c8603b5481565b3480156108f057600080fd5b506007546107b4906001600160a01b031681565b34801561091057600080fd5b506103c8600b5481565b34801561092657600080fd5b506103c8610935366004612bf8565b611363565b34801561094657600080fd5b506103c86113a1565b34801561095b57600080fd5b506103c861096a366004612a64565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b3480156109a157600080fd5b506104696109b0366004612b5a565b611414565b3480156109c157600080fd5b506104696109d0366004612bf8565b61146f565b3480156109e157600080fd5b50602f5461043990610100900460ff1681565b348015610a0057600080fd5b506008546107b4906001600160a01b031681565b348015610a2057600080fd5b50610469610a2f366004612a47565b6114b5565b348015610a4057600080fd5b50610469611500565b348015610a5557600080fd5b506103c8610a64366004612b3f565b611559565b348015610a7557600080fd5b50610469610a84366004612a47565b6115b6565b348015610a9557600080fd5b5061046961164c565b348015610aaa57600080fd5b50610469610ab9366004612ade565b6116af565b348015610aca57600080fd5b50610469610ad9366004612cc9565b6117b3565b348015610aea57600080fd5b50610469610af9366004612ade565b611810565b348015610b0a57600080fd5b506039546107b4906001600160a01b031681565b348015610b2a57600080fd5b50610439610b39366004612a47565b60136020526000908152604090205460ff1681565b348015610b5a57600080fd5b50610439610b69366004612a47565b611860565b348015610b7a57600080fd5b50603c546104399060ff1681565b336000818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610be39086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c285760405162461bcd60e51b8152600401610c1f90612dda565b60405180910390fd5b603c805460ff191682151517905543603b5550565b50565b600082610c4c83611363565b119392505050565b610c5d33611860565b610c795760405162461bcd60e51b8152600401610c1f90612dfa565b602991909155602a55565b610c8d33611860565b610ca95760405162461bcd60e51b8152600401610c1f90612dfa565b6002610cb58385612e73565b11158015610cc257508183115b610ccb57600080fd5b602b92909255602c55602e55565b6001600160a01b0383166000908152600e6020908152604080832033845290915281205460001914610d86576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600e82528381203382529091529190912054610d6191849061187e565b6001600160a01b0385166000908152600e602090815260408083203384529091529020555b610d918484846118b8565b90505b9392505050565b60355460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd31989060240160206040518083038186803b158015610de157600080fd5b505afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bef9190612c11565b6005546001600160a01b03166000908152600d6020526040812054610e66906004546001600160a01b03166000908152600d6020526040902054610e609060095490611cf7565b90611cf7565b905090565b610e7433611860565b610e905760405162461bcd60e51b8152600401610c1f90612dfa565b6035546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610ede57600080fd5b505af1158015610ef2573d6000803e3d6000fd5b505050505050565b610f0333611860565b610f1f5760405162461bcd60e51b8152600401610c1f90612dfa565b6037805461ffff191692151561ff0019169290921761010060ff9290921691909102179055565b610f4f33611860565b610f6b5760405162461bcd60e51b8152600401610c1f90612dfa565b602f805460309590955560006031556032939093556033919091554360345561ffff1990921692151561ff0019169290921761010091151591909102179055565b610fb533611860565b610fd15760405162461bcd60e51b8152600401610c1f90612dfa565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b61100533611860565b6110215760405162461bcd60e51b8152600401610c1f90612dfa565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000610bef82600019610b88565b61106333611860565b61107f5760405162461bcd60e51b8152600401610c1f90612dfa565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6110b333611860565b6110cf5760405162461bcd60e51b8152600401610c1f90612dfa565b6110f06127106110ea83600954611d3990919063ffffffff16565b90611db8565b600a5550565b6110ff33611860565b61111b5760405162461bcd60e51b8152600401610c1f90612dfa565b600061112f83670de0b6b3a7640000612e95565b9050600061113e826064611db8565b6004549091506111589082906001600160a01b0316611dfa565b82156111995742602d55602e546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b50505050565b6000546001600160a01b031633146111c95760405162461bcd60e51b8152600401610c1f90612dda565b6111e46127106110ea83600954611d3990919063ffffffff16565b600c5550565b6111f333611860565b61120f5760405162461bcd60e51b8152600401610c1f90612dfa565b620b71b0811061121e57600080fd5b603655565b61122c33611860565b6112485760405162461bcd60e51b8152600401610c1f90612dfa565b600780546001600160a01b039384166001600160a01b03199182161790915560088054929093169116179055565b6000610d943384846118b8565b61128c33611860565b6112a85760405162461bcd60e51b8152600401610c1f90612dfa565b6000602d55565b6000546001600160a01b031633146112d95760405162461bcd60e51b8152600401610c1f90612dda565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61130933611860565b6113255760405162461bcd60e51b8152600401610c1f90612dfa565b601a869055601b859055601c849055601d839055601e82905561135682611350858188818c8c611f09565b90611f09565b601f556026555050505050565b6000610bef611370610e19565b603a546001600160a01b03166000908152600d60205260409020546110ea9061139a906002611d39565b8590611d39565b6000806113bf42610e60602e54602d54611f0990919063ffffffff16565b905060006113e6602554610e60602c546110ea602b54602554611d3990919063ffffffff16565b905061140d611404602e546110ea8585611d3990919063ffffffff16565b60255490611f09565b9250505090565b61141d33611860565b6114395760405162461bcd60e51b8152600401610c1f90612dfa565b603c805461ff001916610100841515021790556009546127109061145e908390612e95565b6114689190612e73565b6028555050565b61147833611860565b6114945760405162461bcd60e51b8152600401610c1f90612dfa565b6114af6127106110ea83600954611d3990919063ffffffff16565b600b5550565b6000546001600160a01b031633146114df5760405162461bcd60e51b8152600401610c1f90612dda565b6001600160a01b03166000908152600160205260409020805460ff19169055565b603554604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b15801561154557600080fd5b505af1158015611199573d6000803e3d6000fd5b600043602754603b5461156c9190612e5b565b1061157f57602654610bef906001611cf7565b8180156115a157504261159f602e54602d54611f0990919063ffffffff16565b115b156115ae57610bef6113a1565b505060255490565b6000546001600160a01b031633146115e05760405162461bcd60e51b8152600401610c1f90612dda565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61165533611860565b6116715760405162461bcd60e51b8152600401610c1f90612dfa565b60085460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156116ab573d6000803e3d6000fd5b5050565b6116b833611860565b6116d45760405162461bcd60e51b8152600401610c1f90612dfa565b6001600160a01b03821630148015906116fb5750603a546001600160a01b03838116911614155b61170457600080fd5b6001600160a01b0382166000908152601260205260409020805460ff1916821580159190911790915561176a57603554604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610ec4565b6035546001600160a01b038381166000818152600d602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610ec4565b6117bc33611860565b6117d85760405162461bcd60e51b8152600401610c1f90612dfa565b6014869055601585905560168490556017839055601882905561180382611350858188818c8c611f09565b6019556026555050505050565b61181933611860565b6118355760405162461bcd60e51b8152600401610c1f90612dfa565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156118a25760405162461bcd60e51b8152600401610c1f9190612d85565b5060006118af8486612eb4565b95945050505050565b603c5460009062010000900460ff16156118de576118d7848484611f68565b9050610d94565b6001600160a01b03841660009081526001602052604090205460ff1615801561192057506001600160a01b03831660009081526001602052604090205460ff16155b1561197757603c5460ff166119775760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c6564207965740000000000000000006044820152606401610c1f565b6001600160a01b03831660009081526013602052604090205460ff161580156119b957506001600160a01b03841660009081526013602052604090205460ff16155b6119fe5760405162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b6044820152606401610c1f565b603a546001600160a01b03848116911614611a188161204e565b611a238585856120a2565b611a2d8585612214565b611a39858486846122f6565b611a4161242e565b15611a4e57611a4e612496565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388166000908152600d9091529190912054611aa091859061187e565b6001600160a01b0386166000908152600d6020908152604080832093909355600f90529081205460ff1615611ad55783611adf565b611adf868561295e565b6001600160a01b0386166000908152600d6020526040902054909150611b059082611f09565b6001600160a01b038087166000908152600d602090815260408083209490945591891681526012909152205460ff16611ba9576035546001600160a01b038781166000818152600d602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611b9657600080fd5b505af1925050508015611ba7575060015b505b6001600160a01b03851660009081526012602052604090205460ff16611c3a576035546001600160a01b038681166000818152600d602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611c2757600080fd5b505af1925050508015611c38575060015b505b6035546036546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c47991611c729160040190815260200190565b600060405180830381600087803b158015611c8c57600080fd5b505af1925050508015611c9d575060015b50846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ce391815260200190565b60405180910390a350600195945050505050565b6000610d9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187e565b600082611d4857506000610bef565b6000611d548385612e95565b905082611d618583612e73565b14610d945760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c1f565b6000610d9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a04565b603c805462ff0000191662010000179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090611e4c57611e4c612ee1565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611e8057611e80612ee1565b6001600160a01b03928316602091820292909201015260395460405163b6f9de9560e01b815291169063b6f9de95908590611ec690600090869088904290600401612d50565b6000604051808303818588803b158015611edf57600080fd5b505af1158015611ef3573d6000803e3d6000fd5b5050603c805462ff000019169055505050505050565b600080611f168385612e5b565b905083811015610d945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c1f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600d90915291822054611fb991849061187e565b6001600160a01b038086166000908152600d60205260408082209390935590851681522054611fe89083611f09565b6001600160a01b038085166000818152600d602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061203c9086815260200190565b60405180910390a35060019392505050565b801561207b57601a54602055601b54602155601c54602255601d54602355601e54602455601f5460255550565b60145460205560155460215560165460225560175460235560185460245560195460255550565b6001600160a01b03831660009081526001602052604090205460ff161580156120d957506000546001600160a01b03838116911614155b80156120ee57506001600160a01b0382163014155b801561210857506004546001600160a01b03838116911614155b80156121225750603a546001600160a01b03838116911614155b801561213c57506008546001600160a01b03838116911614155b801561215657506007546001600160a01b03838116911614155b801561217057506006546001600160a01b03838116911614155b1561220f576001600160a01b0382166000908152600d6020526040902054600c5461219b8383612e5b565b11156111995760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610c1f565b505050565b603a546001600160a01b038381169116148015612233575060375460ff165b801561225857506001600160a01b03811660009081526011602052604090205460ff16155b156116ab576001600160a01b03811660009081526038602052604090205442116122c45760405162461bcd60e51b815260206004820152601c60248201527f506c656173652077616974206265747765656e2074776f2062757973000000006044820152606401610c1f565b6037546122d990610100900460ff1642612e5b565b6001600160a01b0382166000908152603860205260409020555050565b6000546001600160a01b038381169116146111995780156123a257600b548311158061233a57506001600160a01b03841660009081526010602052604090205460ff165b8061235d57506001600160a01b03821660009081526010602052604090205460ff165b61239d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c1f565b611199565b600a54831115806123cb57506001600160a01b03841660009081526010602052604090205460ff165b806123ee57506001600160a01b03821660009081526010602052604090205460ff165b6111995760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c1f565b603a546000906001600160a01b031633148015906124555750603c5462010000900460ff16155b80156124635750603c5460ff165b80156124765750603c54610100900460ff165b8015610e66575050602854306000908152600d6020526040902054101590565b603c805462ff0000191662010000179055602954602a546000916124b991610c40565b6124c5576020546124c8565b60005b905060006124ec60026110ea6025546110ea86602854611d3990919063ffffffff16565b9050600061250582602854611cf790919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061253f5761253f612ee1565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061257057612570612ee1565b6001600160a01b03928316602091820292909201015260395460405163791ac94760e01b81524792919091169063791ac947906125ba908690600090879030904290600401612e1f565b600060405180830381600087803b1580156125d457600080fd5b505af11580156125e8573d6000803e3d6000fd5b5050505060006126018247611cf790919063ffffffff16565b9050600061261c612613886002611db8565b60255490611cf7565b9050600061263160026110ea8481878d611d39565b9050600061264e836110ea60225487611d3990919063ffffffff16565b9050600061266b846110ea60235488611d3990919063ffffffff16565b90506000612688856110ea60245489611d3990919063ffffffff16565b9050603560009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b1580156126da57600080fd5b505af1935050505080156126ec575060015b506008546040516000916001600160a01b03169061753090859084818181858888f193505050503d806000811461273f576040519150601f19603f3d011682016040523d82523d6000602084013e612744565b606091505b50506006546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d806000811461279d576040519150601f19603f3d011682016040523d82523d6000602084013e6127a2565b606091505b50509050816128045760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b6064820152608401610c1f565b8061285c5760405162461bcd60e51b815260206004820152602260248201527f6465762072656365697665722072656a656374656420455448207472616e736660448201526132b960f11b6064820152608401610c1f565b8b156129435760395460075460405163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990889060c4016060604051808303818588803b1580156128cd57600080fd5b505af11580156128e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129069190612c9b565b505060408051888152602081018f90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050603c805462ff0000191690555050505050505050505050565b60008061297c6026546110ea60255486611d3990919063ffffffff16565b306000908152600d60205260409020549091506129999082611f09565b306000818152600d6020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906129ea9085815260200190565b60405180910390a36129fc8382611cf7565b949350505050565b60008183612a255760405162461bcd60e51b8152600401610c1f9190612d85565b5060006118af8486612e73565b80358015158114612a4257600080fd5b919050565b600060208284031215612a5957600080fd5b8135610d9481612ef7565b60008060408385031215612a7757600080fd5b8235612a8281612ef7565b91506020830135612a9281612ef7565b809150509250929050565b600080600060608486031215612ab257600080fd5b8335612abd81612ef7565b92506020840135612acd81612ef7565b929592945050506040919091013590565b60008060408385031215612af157600080fd5b8235612afc81612ef7565b9150612b0a60208401612a32565b90509250929050565b60008060408385031215612b2657600080fd5b8235612b3181612ef7565b946020939093013593505050565b600060208284031215612b5157600080fd5b610d9482612a32565b60008060408385031215612b6d57600080fd5b612b3183612a32565b600080600080600060a08688031215612b8e57600080fd5b612b9786612a32565b9450602086013593506040860135925060608601359150612bba60808701612a32565b90509295509295909350565b60008060408385031215612bd957600080fd5b612be283612a32565b9150602083013560ff81168114612a9257600080fd5b600060208284031215612c0a57600080fd5b5035919050565b600060208284031215612c2357600080fd5b5051919050565b60008060408385031215612c3d57600080fd5b82359150612b0a60208401612a32565b60008060408385031215612c6057600080fd5b50508035926020909101359150565b600080600060608486031215612c8457600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612cb057600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215612ce257600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600081518084526020808501945080840160005b83811015612d455781516001600160a01b031687529582019590820190600101612d20565b509495945050505050565b848152608060208201526000612d696080830186612d0c565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b81811015612db257858101830151858201604001528201612d96565b81811115612dc4576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b85815284602082015260a060408201526000612e3e60a0830186612d0c565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612e6e57612e6e612ecb565b500190565b600082612e9057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612eaf57612eaf612ecb565b500290565b600082821015612ec657612ec6612ecb565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610c3d57600080fdfea2646970667358221220be549f23bfd92f7f04a55b128bd95eb06146543171293cdea75f1de56256c62c64736f6c634300080700336080604052600180546001600160a01b031990811673c7198437980c041c805a1edcba50c1ce5db95118179091556002805490911673b31f66aa3c1e785363f0875a1b74e27b85fd66c71790556ec097ce7bc90715b34b9f1000000000600c55610708600d5564e8d4a51000600e5534801561007a57600080fd5b50604051611068380380611068833981016040819052610099916100f3565b6001600160a01b0381166100c1577360ae616a2155ee3d9a68541ba4544862310933d46100c3565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610123565b60006020828403121561010557600080fd5b81516001600160a01b038116811461011c57600080fd5b9392505050565b610f36806101326000396000f3fe6080604052600436106100dd5760003560e01c8063997664d71161007f578063e2d2e21911610059578063e2d2e2191461022e578063efca2eed14610244578063ffb2c4791461025a578063ffd49c841461027a57600080fd5b8063997664d7146101b9578063ce7c2ac2146101cf578063d0e30db01461022657600080fd5b806328fd3198116100bb57806328fd31981461014d5780632d48e8961461016d5780633a98ef391461018d5780634fab0ae8146101a357600080fd5b806311ce023d146100e257806314b6ca961461010b57806315f7e05e1461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610cd4565b610290565b005b34801561013957600080fd5b5061012b610148366004610cb9565b610408565b34801561015957600080fd5b506100f8610168366004610cb9565b61042b565b34801561017957600080fd5b5061012b610188366004610d52565b6104b4565b34801561019957600080fd5b506100f860085481565b3480156101af57600080fd5b506100f8600e5481565b3480156101c557600080fd5b506100f860095481565b3480156101db57600080fd5b5061020b6101ea366004610cb9565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104d6565b34801561023a57600080fd5b506100f8600b5481565b34801561025057600080fd5b506100f8600a5481565b34801561026657600080fd5b5061012b610275366004610d20565b610723565b34801561028657600080fd5b506100f8600d5481565b6000546001600160a01b031633146102a757600080fd5b6001600160a01b038216600090815260076020526040902054156102ce576102ce82610823565b6000811180156102f457506001600160a01b038216600090815260076020526040902054155b1561035a57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561038d565b8015801561037f57506001600160a01b03821660009081526007602052604090205415155b1561038d5761038d8261094e565b6001600160a01b0382166000908152600760205260409020546008546103be9183916103b891610a63565b90610aae565b6008556001600160a01b03821660009081526007602052604090208190556103e581610b12565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6000546001600160a01b0316331461041f57600080fd5b61042881610823565b50565b6001600160a01b03811660009081526007602052604081205461045057506000919050565b6001600160a01b03821660009081526007602052604081205461047290610b12565b6001600160a01b0384166000908152600760205260409020600101549091508082116104a2575060009392505050565b6104ac8282610a63565b949350505050565b6000546001600160a01b031633146104cb57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104ed57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561053157600080fd5b505afa158015610545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105699190610d39565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906105af576105af610eea565b6001600160a01b03928316602091820292909201015260018054835192169183919081106105df576105df610eea565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061062590600090869030904290600401610d74565b6000604051808303818588803b15801561063e57600080fd5b505af1158015610652573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506106e193508692506001600160a01b03909116906370a082319060240160206040518083038186803b1580156106a357600080fd5b505afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db9190610d39565b90610a63565b6009549091506106f19082610aae565b600955600854600c5461071b916107129161070c9085610b2f565b90610bae565b600b5490610aae565b600b55505050565b6000546001600160a01b0316331461073a57600080fd5b60045480610746575050565b6000805a905060005b848310801561075d57508381105b1561081c5783600f5410610771576000600f555b6107a36004600f548154811061078957610789610eea565b6000918252602090912001546001600160a01b0316610bf0565b156107da576107da6004600f54815481106107c0576107c0610eea565b6000918252602090912001546001600160a01b0316610823565b6107ef6107e85a8490610a63565b8490610aae565b92505a600f8054919350600061080483610ea3565b9190505550808061081490610ea3565b91505061074f565b5050505050565b6001600160a01b0381166000908152600760205260409020546108435750565b600061084e8261042b565b9050801561094a57600a546108639082610aae565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190610cfe565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109209082610aae565b6001600160a01b03831660009081526007602052604090206002810191909155546103e590610b12565b5050565b6004805461095e90600190610e8c565b8154811061096e5761096e610eea565b60009182526020808320909101546001600160a01b03848116845260059092526040909220546004805492909316929181106109ac576109ac610eea565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916109f890600190610e8c565b81548110610a0857610a08610eea565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610a3e57610a3e610ed4565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610aa583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c35565b90505b92915050565b600080610abb8385610e33565b905083811015610aa55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000610aa8600c5461070c600b5485610b2f90919063ffffffff16565b600082610b3e57506000610aa8565b6000610b4a8385610e6d565b905082610b578583610e4b565b14610aa55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b09565b6000610aa583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c6f565b600d546001600160a01b03821660009081526006602052604081205490914291610c1a9190610e33565b108015610aa85750600e54610c2e8361042b565b1192915050565b60008184841115610c595760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e8c565b95945050505050565b60008183610c905760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e4b565b80356001600160a01b0381168114610cb457600080fd5b919050565b600060208284031215610ccb57600080fd5b610aa582610c9d565b60008060408385031215610ce757600080fd5b610cf083610c9d565b946020939093013593505050565b600060208284031215610d1057600080fd5b81518015158114610aa557600080fd5b600060208284031215610d3257600080fd5b5035919050565b600060208284031215610d4b57600080fd5b5051919050565b60008060408385031215610d6557600080fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610dbe5784516001600160a01b031683529383019391830191600101610d99565b50506001600160a01b039690961660408501525050506060015292915050565b600060208083528351808285015260005b81811015610e0b57858101830151858201604001528201610def565b81811115610e1d576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610e4657610e46610ebe565b500190565b600082610e6857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610e8757610e87610ebe565b500290565b600082821015610e9e57610e9e610ebe565b500390565b6000600019821415610eb757610eb7610ebe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212205bb434eb5dd41cddadc8bd31bedf2d7986628d7af097c648d6f206a792d26e2364736f6c63430008070033