Overview ERC20
PRICE
$0.01105871

ON-CHAIN MARKET CAP n/a

Total Supply:
10,000,000.00 GUISE

Holders:
1,113
Profile Summary
Blockchain:
Ethereum (1)


Decimals:
18
Contract Source Code Verified (Partial Match)
Contract Name:
GUISE

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Created At:
Mon, 14 Aug 2023 06:22:35 GMT
GUISE.sol
contracts
GUISE.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "payable",
    "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": "minTokensBeforeSwap",
        "type": "uint256"
      }
    ],
    "name": "MinTokensBeforeSwapUpdated",
    "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": "address",
        "name": "sniperAddress",
        "type": "address"
      }
    ],
    "name": "SniperCaught",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensSwapped",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "ethReceived",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensIntoLiqudity",
        "type": "uint256"
      }
    ],
    "name": "SwapAndLiquify",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      }
    ],
    "name": "SwapAndLiquifyEnabledUpdated",
    "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": "DEAD",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "DevShare",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address payable",
        "name": "setMarketWallet",
        "type": "address"
      },
      {
        "internalType": "address payable",
        "name": "setDevWallet",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_tokenname",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_tokensymbol",
        "type": "string"
      }
    ],
    "name": "LaunchToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MarketShare",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ValueDivisor",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ZERO",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_buyLiquidityFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_buyMarketingFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_buyReflectFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_hasLiqBeenAdded",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_liquidityFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_liquidityRatio",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_marketingFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_marketingRatio",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_reflectFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_routerAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_sellLiquidityFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_sellMarketingFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_sellReflectFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_transferLiquidityFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_transferMarketingFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_transferReflectFee",
    "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": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "subtractedValue",
        "type": "uint256"
      }
    ],
    "name": "decreaseAllowance",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "dexRouter",
    "outputs": [
      {
        "internalType": "contract IUniswapV2Router02",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "enableTrade",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getOwner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "addedValue",
        "type": "uint256"
      }
    ],
    "name": "increaseAllowance",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isExcludedFromFee",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isExcludedFromReward",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lpPair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxTxAmountUI",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxWalletSizeUI",
    "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": "recoverETH",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address payable",
        "name": "newWallet",
        "type": "address"
      }
    ],
    "name": "setDevWalletNew",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      }
    ],
    "name": "setExcludedFromFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      }
    ],
    "name": "setExcludedFromReward",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "liquidity",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "marketing",
        "type": "uint256"
      }
    ],
    "name": "setLiqandMarketRatios",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pair",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      }
    ],
    "name": "setLpPair",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address payable",
        "name": "newWallet",
        "type": "address"
      }
    ],
    "name": "setMarketWalletNew",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "percent",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "divisor",
        "type": "uint256"
      }
    ],
    "name": "setMaxTxPercent",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "percent",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "divisor",
        "type": "uint256"
      }
    ],
    "name": "setMaxWalletSize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newRouter",
        "type": "address"
      }
    ],
    "name": "setNewRouter",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "ms",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "ds",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "vd",
        "type": "uint256"
      }
    ],
    "name": "setShareValues",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      }
    ],
    "name": "setSwapAndLiquifyEnabled",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "thresholdPercent",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "thresholdDivisor",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "amountPercent",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "amountDivisor",
        "type": "uint256"
      }
    ],
    "name": "setSwapSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "reflect",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "liquidity",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "marketing",
        "type": "uint256"
      }
    ],
    "name": "setTaxBuy",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "reflect",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "liquidity",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "marketing",
        "type": "uint256"
      }
    ],
    "name": "setTaxSell",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "reflect",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "liquidity",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "marketing",
        "type": "uint256"
      }
    ],
    "name": "setTaxesTransfer",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapAndLiquifyEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "rAmount",
        "type": "uint256"
      }
    ],
    "name": "tokenFromReflection",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalFees",
    "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": "transferOwner",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
608060405260006004819055600d819055600e8190556103e8600f8190556010829055601182905560128190556013829055601482905561177060158190556016839055601783905560188390556019829055601a91909155611838601b55601c829055601d55612710601e556003601f8190556020556006602155602a80546001600160a01b031990811661dead17909155602b805482169055602d805460ff60a81b191690556034805461ffff19169055603582905560368290556037805460ff19908116600117909155603a8054909116905581541633179055466038036200011157602980546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000199565b466061036200014657602980546001600160a01b031916739ac64cc6e4415144c455bd8e4837fea55603e5c317905562000199565b4660011480620001565750466004145b80620001625750466003145b156200019457602980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000199565b600080fd5b600160066000620001b26000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260069092528120805490921660019081179092556009906200020b6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620002546200023f3390565b6029546001600160a01b031660001962000276565b602954620002709030906001600160a01b031660001962000276565b620003a2565b6001600160a01b038316620002de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620002d5565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b613ee180620003b26000396000f3fe6080604052600436106103c65760003560e01c806364038409116101f2578063a9059cbb1161010d578063d9e66460116100a0578063eafb5a3c1161006f578063eafb5a3c14610ad3578063f6540ec714610af3578063f749cee214610b09578063fb78680d14610b2957600080fd5b8063d9e6646014610a41578063dc44b6a014610a61578063dd62ed3e14610a77578063ea08d30b14610abd57600080fd5b8063c49b9a80116100dc578063c49b9a80146109df578063c5d24189146109ff578063c860795214610a15578063d038b07e14610a2b57600080fd5b8063a9059cbb14610969578063b17b945a14610989578063bbcea6bf146109a9578063bf9e1464146109bf57600080fd5b806388790a681161018557806395d89b411161015457806395d89b41146108f45780639616aa321461090957806398dada8714610929578063a457c2d71461094957600080fd5b806388790a681461088757806388f820201461089d578063893d20e8146108d65780638da5cb5b146108d657600080fd5b806370a08231116101c157806370a082311461081c578063715018a61461083c57806371e078d51461085157806380c581d11461086757600080fd5b806364038409146107ba5780636612e66f146107d05780636bc87c3a146107f05780636cbdd5e31461080657600080fd5b8063313ce567116102e25780634eeaf458116102755780635342acb4116102445780635342acb414610721578063571ac8b01461075a578063575f18e51461077a57806358fa63ca1461079a57600080fd5b80634eeaf458146106ac5780634ef3cce5146106cc5780634fb2e45d146106e257806350a8e0161461070257600080fd5b806343b127a6116102b157806343b127a614610635578063452ed4f11461065557806345e8c85c146106755780634a74bb021461068b57600080fd5b8063313ce567146105bd578063384f6b51146105df57806339509351146105f55780633f3cf56c1461061557600080fd5b806313e461921161035a57806322976e0d1161032957806322976e0d1461054757806323b872dd1461055d578063260039571461057d5780632d8381191461059d57600080fd5b806313e46192146104e657806315639c1b1461050657806317eade331461051c57806318160ddd1461053257600080fd5b80630758d924116103965780630758d9241461045d578063095ea7b31461047d5780630e954d8e146104ad57806313114a9d146104d157600080fd5b806299d386146103d257806303fd2a45146103e95780630614117a1461042657806306fdde031461043b57600080fd5b366103cd57005b600080fd5b3480156103de57600080fd5b506103e7610b49565b005b3480156103f557600080fd5b50602a54610409906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561043257600080fd5b506103e7610c0e565b34801561044757600080fd5b50610450610c75565b60405161041d91906136c4565b34801561046957600080fd5b50602754610409906001600160a01b031681565b34801561048957600080fd5b5061049d610498366004613727565b610d07565b604051901515815260200161041d565b3480156104b957600080fd5b506104c360205481565b60405190815260200161041d565b3480156104dd57600080fd5b506026546104c3565b3480156104f257600080fd5b506103e7610501366004613768565b610d1e565b34801561051257600080fd5b506104c3600d5481565b34801561052857600080fd5b506104c360215481565b34801561053e57600080fd5b506024546104c3565b34801561055357600080fd5b506104c3600f5481565b34801561056957600080fd5b5061049d61057836600461379d565b611015565b34801561058957600080fd5b506103e76105983660046137de565b611068565b3480156105a957600080fd5b506104c36105b8366004613800565b611150565b3480156105c957600080fd5b5060225460405160ff909116815260200161041d565b3480156105eb57600080fd5b506104c3601c5481565b34801561060157600080fd5b5061049d610610366004613727565b6111d4565b34801561062157600080fd5b506103e76106303660046137de565b61120b565b34801561064157600080fd5b506103e7610650366004613819565b6112fe565b34801561066157600080fd5b50602854610409906001600160a01b031681565b34801561068157600080fd5b506104c360165481565b34801561069757600080fd5b50602d5461049d90600160a81b900460ff1681565b3480156106b857600080fd5b506103e76106c7366004613819565b611384565b3480156106d857600080fd5b506104c3601d5481565b3480156106ee57600080fd5b506103e76106fd366004613845565b61140a565b34801561070e57600080fd5b5060345461049d90610100900460ff1681565b34801561072d57600080fd5b5061049d61073c366004613845565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561076657600080fd5b5061049d610775366004613845565b6115ab565b34801561078657600080fd5b506103e7610795366004613819565b6115b9565b3480156107a657600080fd5b50602b54610409906001600160a01b031681565b3480156107c657600080fd5b506104c3602f5481565b3480156107dc57600080fd5b506103e76107eb366004613768565b61163f565b3480156107fc57600080fd5b506104c3600e5481565b34801561081257600080fd5b506104c360185481565b34801561082857600080fd5b506104c3610837366004613845565b611694565b34801561084857600080fd5b506103e76116f3565b34801561085d57600080fd5b506104c3601f5481565b34801561087357600080fd5b506103e7610882366004613768565b611772565b34801561089357600080fd5b506104c360145481565b3480156108a957600080fd5b5061049d6108b8366004613845565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108e257600080fd5b506000546001600160a01b0316610409565b34801561090057600080fd5b5061045061185a565b34801561091557600080fd5b506103e7610924366004613845565b611869565b34801561093557600080fd5b506103e7610944366004613819565b611908565b34801561095557600080fd5b5061049d610964366004613727565b611940565b34801561097557600080fd5b5061049d610984366004613727565b611977565b34801561099557600080fd5b506103e76109a4366004613905565b611984565b3480156109b557600080fd5b506104c360135481565b3480156109cb57600080fd5b506103e76109da3660046137de565b611f12565b3480156109eb57600080fd5b506103e76109fa36600461398e565b611f47565b348015610a0b57600080fd5b506104c360125481565b348015610a2157600080fd5b506104c360155481565b348015610a3757600080fd5b506104c360105481565b348015610a4d57600080fd5b50602954610409906001600160a01b031681565b348015610a6d57600080fd5b506104c360115481565b348015610a8357600080fd5b506104c3610a923660046139a9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610ac957600080fd5b506104c360175481565b348015610adf57600080fd5b506103e7610aee366004613845565b611fc9565b348015610aff57600080fd5b506104c360315481565b348015610b1557600080fd5b506103e7610b24366004613845565b6122f9565b348015610b3557600080fd5b506103e7610b443660046139e2565b612398565b6000546001600160a01b03163314610b7c5760405162461bcd60e51b8152600401610b7390613a14565b60405180910390fd5b60345460ff1615610bca5760405162461bcd60e51b815260206004820152601860248201527754726164696e6720616c726561647920656e61626c65642160401b6044820152606401610b73565b610bd5306001610d1e565b602854610bec906001600160a01b03166001610d1e565b6034805460ff19166001179055602d805460ff60a81b1916600160a81b179055565b6000546001600160a01b03163314610c385760405162461bcd60e51b8152600401610b7390613a14565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610c72573d6000803e3d6000fd5b50565b6060600b8054610c8490613a49565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb090613a49565b8015610cfd5780601f10610cd257610100808354040283529160200191610cfd565b820191906000526020600020905b815481529060010190602001808311610ce057829003601f168201915b5050505050905090565b6000610d14338484612401565b5060015b92915050565b6000546001600160a01b03163314610d485760405162461bcd60e51b8152600401610b7390613a14565b801515600103610e7c576001600160a01b03821660009081526007602052604090205460ff1615610dbb5760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610b73565b6001600160a01b03821660009081526001602052604090205415610e15576001600160a01b038216600090815260016020526040902054610dfb90611150565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b801515600003611011576001600160a01b03821660009081526007602052604090205460ff16610eee5760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610b73565b60005b60085481101561100f57826001600160a01b031660088281548110610f1857610f18613a83565b6000918252602090912001546001600160a01b031603610ffd5760088054610f4290600190613aaf565b81548110610f5257610f52613a83565b600091825260209091200154600880546001600160a01b039092169183908110610f7e57610f7e613a83565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff191690556008805480610fd657610fd6613ac2565b600082815260209020810160001990810180546001600160a01b031916905501905561100f565b8061100781613ad8565b915050610ef1565b505b5050565b6000611022848484612525565b506001600160a01b03841660009081526005602090815260408083203380855292529091205461105e918691611059908690613aaf565b612401565b5060019392505050565b6000546001600160a01b031633146110925760405162461bcd60e51b8152600401610b7390613a14565b600081836024546110a39190613af1565b6110ad9190613b1e565b90506103e86024546110bf9190613b1e565b8110156111295760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e31604482015271129037b3103a37ba30b61039bab838363c9760711b6064820152608401610b73565b6030819055600a54829061113e908590613af1565b6111489190613b1e565b603155505050565b60006025548211156111b75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b73565b60006111c1612951565b90506111cd8184613b1e565b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d14918590611059908690613b32565b6000546001600160a01b031633146112355760405162461bcd60e51b8152600401610b7390613a14565b600081836024546112469190613af1565b6112509190613b1e565b90506103e86024546112629190613b1e565b8110156112d75760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b73565b602e819055600a5482906112ec908590613af1565b6112f69190613b1e565b602f55505050565b6000546001600160a01b031633146113285760405162461bcd60e51b8152600401610b7390613a14565b601954831115801561133c5750601a548211155b801561134a5750601b548111155b61135357600080fd5b611324816113618486613b32565b61136b9190613b32565b111561137657600080fd5b601092909255601155601255565b6000546001600160a01b031633146113ae5760405162461bcd60e51b8152600401610b7390613a14565b60195483111580156113c25750601a548211155b80156113d05750601b548111155b6113d957600080fd5b611af4816113e78486613b32565b6113f19190613b32565b11156113fc57600080fd5b601392909255601455601555565b6000546001600160a01b031633146114345760405162461bcd60e51b8152600401610b7390613a14565b6001600160a01b03811661145a5760405162461bcd60e51b8152600401610b7390613b45565b602a546001600160a01b03908116908216036114885760405162461bcd60e51b8152600401610b7390613b45565b600080546114a1916001600160a01b039091169061163f565b6114ac81600161163f565b6114b7816001610d1e565b600054602c546001600160a01b039182169116036114eb57602c80546001600160a01b0319166001600160a01b0383161790555b600054611500906001600160a01b0316611694565b600080546001600160a01b0390811682526005602090815260408084208684168552909152822092909255805490916115399116611694565b11156115605760005461155e906001600160a01b03168261155982611694565b612525565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610d1882600019610d07565b6000546001600160a01b031633146115e35760405162461bcd60e51b8152600401610b7390613a14565b60195483111580156115f75750601a548211155b80156116055750601b548111155b61160e57600080fd5b6113248161161c8486613b32565b6116269190613b32565b111561163157600080fd5b601692909255601755601855565b6000546001600160a01b031633146116695760405162461bcd60e51b8152600401610b7390613a14565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526007602052604081205460ff16156116d157506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610d1890611150565b6000546001600160a01b0316331461171d5760405162461bcd60e51b8152600401610b7390613a14565b60008054611736916001600160a01b039091169061163f565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b0316331461179c5760405162461bcd60e51b8152600401610b7390613a14565b8015156000036117c857506001600160a01b03166000908152600360205260409020805460ff19169055565b6004541561182f5762093a80600454426117e29190613aaf565b1161182f5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610b73565b6001600160a01b0382166000908152600360205260409020805460ff19166001179055426004555050565b6060600c8054610c8490613a49565b6000546001600160a01b031633146118935760405162461bcd60e51b8152600401610b7390613a14565b602c546001600160a01b038083169116036118e65760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b73565b602c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146119325760405162461bcd60e51b8152600401610b7390613a14565b601f92909255602055602155565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d14918590611059908690613aaf565b600061105e338484612525565b6000546001600160a01b031633146119ae5760405162461bcd60e51b8152600401610b7390613a14565b603a5460ff16156119be57600080fd5b602d80546001600160a01b038087166001600160a01b031992831617909255602c805492861692909116919091179055600b6119fa8382613bf0565b50600c611a078282613bf0565b5062989680600a556022805460ff19166012908117909155602355602354611a3090600a613d94565b600a54611a3d9190613af1565b6024819055611a4e90600019613da0565b611a5a90600019613aaf565b602555602954602780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611add9190613db4565b6001600160a01b031663c9c65396602760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b629190613db4565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015611bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd29190613db4565b602880546001600160a01b0319166001600160a01b039283169081179091556000908152600360209081526040808320805460ff191660011790553083526005825280832060275490941683529290522060001990556024546103e890611c3a90600a613af1565b611c449190613b1e565b602e55600a80546103e891611c599190613af1565b611c639190613b1e565b602f556024546103e890611c7890600a613af1565b611c829190613b1e565b603055600a80546103e891611c979190613af1565b611ca19190613b1e565b603155602454620186a090611cb7906005613af1565b611cc19190613b1e565b60325560245461271090611cd6906005613af1565b611ce09190613b1e565b603355602954611cfb906001600160a01b0316600019610d07565b50603a805460ff19166001908117909155602554906000611d246000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055611d506000546001600160a01b031690565b602b546024546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3602754611db39030906001600160a01b0316600019612401565b611dde611dc86000546001600160a01b031690565b306115596108376000546001600160a01b031690565b506027546001600160a01b031663f305d7194730611dfb81611694565b600080611e106000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611e3296959493929190613dd1565b60606040518083038185885af1158015611e50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e759190613e0c565b5050436039555060345460ff1615611eca5760405162461bcd60e51b815260206004820152601860248201527754726164696e6720616c726561647920656e61626c65642160401b6044820152606401610b73565b611ed5306001610d1e565b602854611eec906001600160a01b03166001610d1e565b50506034805460ff191660011790555050602d805460ff60a81b1916600160a81b179055565b6000546001600160a01b03163314611f3c5760405162461bcd60e51b8152600401610b7390613a14565b601c91909155601d55565b6000546001600160a01b03163314611f715760405162461bcd60e51b8152600401610b7390613a14565b602d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611fbe90831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611ff35760405162461bcd60e51b8152600401610b7390613a14565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612038573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205c9190613db4565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cd9190613db4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213c9190613db4565b90506001600160a01b0381166122b557816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561218a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ae9190613db4565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221f9190613db4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561226c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122909190613db4565b602880546001600160a01b0319166001600160a01b03929092169190911790556122d1565b602880546001600160a01b0319166001600160a01b0383161790555b602780546001600160a01b0319166001600160a01b03841617905561100f3084600019612401565b6000546001600160a01b031633146123235760405162461bcd60e51b8152600401610b7390613a14565b602d546001600160a01b038083169116036123765760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b73565b602d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146123c25760405162461bcd60e51b8152600401610b7390613a14565b82846024546123d19190613af1565b6123db9190613b1e565b60325560245481906123ee908490613af1565b6123f89190613b1e565b60335550505050565b6001600160a01b0383166124635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b73565b6001600160a01b0382166124c45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b73565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661258b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b73565b6001600160a01b0383166125ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b73565b6000821161264f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b73565b6126598484612974565b156128795760345460ff166126b05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b73565b60375460ff1615612762576001600160a01b03841660009081526003602052604090205460ff1615612721576001600160a01b03831660009081526038602052604090205443900361270157600080fd5b6001600160a01b0383166000908152603860205260409020439055612762565b6001600160a01b03841660009081526038602052604090205443900361274657600080fd5b6001600160a01b03841660009081526038602052604090204390555b602e548211156127c55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b73565b6029546001600160a01b038481169116148015906127fc57506001600160a01b03831660009081526003602052604090205460ff16155b15612879576030548261280e85611694565b6128189190613b32565b11156128795760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610b73565b6001600160a01b03841660009081526006602052604090205460019060ff16806128bb57506001600160a01b03841660009081526006602052604090205460ff165b156128c4575060005b6001600160a01b03841660009081526003602052604090205460ff161561293c57602d54600160a01b900460ff161580156129085750602d54600160a81b900460ff165b1561293c57600061291830611694565b9050603254811061293a57603354811061293157506033545b61293a81612a34565b505b61294885858584612dc6565b95945050505050565b600080600061295e613147565b909250905061296d8183613b1e565b9250505090565b600080546001600160a01b038481169116148015906129a157506000546001600160a01b03838116911614155b80156129c657506001600160a01b03821660009081526009602052604090205460ff16155b80156129eb57506001600160a01b03831660009081526009602052604090205460ff16155b8015612a055750602a546001600160a01b03838116911614155b8015612a1957506001600160a01b03821615155b80156111cd57506001600160a01b0383163014159392505050565b602d805460ff60a01b1916600160a01b179055601d54601c54612a579190613b32565b15612db65760006002601d54601c54612a709190613b32565b601c54612a7d9085613af1565b612a879190613b1e565b612a919190613b1e565b90506000612a9f8284613aaf565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612ad957612ad9613a83565b6001600160a01b03928316602091820292909201810191909152602754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b569190613db4565b81600181518110612b6957612b69613a83565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b815291169063791ac94790612baf908590600090869030904290600401613e3a565b600060405180830381600087803b158015612bc957600080fd5b505af1158015612bdd573d6000803e3d6000fd5b5050505060006002601d54601c54612bf59190613b32565b601c54612c029047613af1565b612c0c9190613b1e565b612c169190613b1e565b90508315612ce657602754602a5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592612c5e9230928b92600092839216904290600401613dd1565b60606040518083038185885af1158015612c7c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ca19190613e0c565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b6000612cf28587613aaf565b1115612db157601f546021544791600091612d0d9084613b1e565b612d179190613af1565b9050600060205460215484612d2c9190613b1e565b612d369190613af1565b602d546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015612d71573d6000803e3d6000fd5b50602c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612dac573d6000803e3d6000fd5b505050505b505050505b50602d805460ff60a01b19169055565b603454600090610100900460ff16612e5a57612de285856132ca565b603454610100900460ff16158015612dff5750612dff8585612974565b15612e5a5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610b73565b6000612e68868686866133e4565b60808101516001600160a01b038816600090815260016020526040902054919250612e9291613aaf565b6001600160a01b0380881660009081526001602052604080822093909355606084015191881681529190912054612ec99190613b32565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff168015612f1d57506001600160a01b03851660009081526007602052604090205460ff16155b15612f64576001600160a01b038616600090815260026020526040902054612f46908590613aaf565b6001600160a01b0387166000908152600260205260409020556130a4565b6001600160a01b03861660009081526007602052604090205460ff16158015612fa557506001600160a01b03851660009081526007602052604090205460ff165b15612fed5780516001600160a01b038616600090815260026020526040902054612fcf9190613b32565b6001600160a01b0386166000908152600260205260409020556130a4565b6001600160a01b03861660009081526007602052604090205460ff16801561302d57506001600160a01b03851660009081526007602052604090205460ff165b156130a4576001600160a01b038616600090815260026020526040902054613056908590613aaf565b6001600160a01b038088166000908152600260205260408082209390935583519188168152919091205461308a9190613b32565b6001600160a01b0386166000908152600260205260409020555b6040810151156130bc576130bc8682604001516135d2565b60008160a0015111806130d3575060008160200151115b156130ea576130ea8160a00151826020015161369e565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836000015160405161313391815260200190565b60405180910390a350600195945050505050565b6025546024546000918291825b6008548110156132995782600160006008848154811061317657613176613a83565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806131e157508160026000600884815481106131ba576131ba613a83565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156131f757602554602454945094505050509091565b600160006008838154811061320e5761320e613a83565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461323d9084613aaf565b9250600260006008838154811061325657613256613a83565b60009182526020808320909101546001600160a01b031683528201929092526040019020546132859083613aaf565b91508061329181613ad8565b915050613154565b506024546025546132aa9190613b1e565b8210156132c1576025546024549350935050509091565b90939092509050565b603454610100900460ff161561332e5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610b73565b6133388282612974565b15801561335257506028546001600160a01b038281169116145b15611011576001600160a01b03821660009081526009602052604090819020805460ff191660019081179091556034805461ff00191661010017905542603655602d805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159916133d891901515815260200190565b60405180910390a15050565b61341d6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6134566040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000613460612951565b905061346c8186613af1565b6080830152831561357c576001600160a01b03861660009081526003602052604090205460ff16156134af57601354600d55601454600e55601554600f556134fa565b6001600160a01b03871660009081526003602052604090205460ff16156134e757601054600d55601154600e55601254600f556134fa565b601654600d55601754600e55601854600f555b601e54600d5461350a9087613af1565b6135149190613b1e565b6020830152601e54600f54600e5461352c9190613b32565b6135369087613af1565b6135409190613b1e565b6040830181905260208301516135569190613b32565b6135609086613aaf565b82526020820151613572908290613af1565b60a0830152613595565b6000602083018190526040830181905285835260a08301525b8082604001516135a59190613af1565b8260a001516135b49190613b32565b82608001516135c39190613aaf565b60608301525095945050505050565b60006135dc612951565b905060006135ea8284613af1565b30600090815260016020526040902054909150613608908290613b32565b3060009081526001602090815260408083209390935560079052205460ff16156136585730600090815260026020526040902054613647908490613b32565b306000908152600260205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b816025546136ac9190613aaf565b6025556026546136bd908290613b32565b6026555050565b600060208083528351808285015260005b818110156136f1578581018301518582016040015282016136d5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c7257600080fd5b6000806040838503121561373a57600080fd5b823561374581613712565b946020939093013593505050565b8035801515811461376357600080fd5b919050565b6000806040838503121561377b57600080fd5b823561378681613712565b915061379460208401613753565b90509250929050565b6000806000606084860312156137b257600080fd5b83356137bd81613712565b925060208401356137cd81613712565b929592945050506040919091013590565b600080604083850312156137f157600080fd5b50508035926020909101359150565b60006020828403121561381257600080fd5b5035919050565b60008060006060848603121561382e57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561385757600080fd5b81356111cd81613712565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261388957600080fd5b813567ffffffffffffffff808211156138a4576138a4613862565b604051601f8301601f19908116603f011681019082821181831017156138cc576138cc613862565b816040528381528660208588010111156138e557600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561391b57600080fd5b843561392681613712565b9350602085013561393681613712565b9250604085013567ffffffffffffffff8082111561395357600080fd5b61395f88838901613878565b9350606087013591508082111561397557600080fd5b5061398287828801613878565b91505092959194509250565b6000602082840312156139a057600080fd5b6111cd82613753565b600080604083850312156139bc57600080fd5b82356139c781613712565b915060208301356139d781613712565b809150509250929050565b600080600080608085870312156139f857600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680613a5d57607f821691505b602082108103613a7d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610d1857610d18613a99565b634e487b7160e01b600052603160045260246000fd5b600060018201613aea57613aea613a99565b5060010190565b8082028115828204841417610d1857610d18613a99565b634e487b7160e01b600052601260045260246000fd5b600082613b2d57613b2d613b08565b500490565b80820180821115610d1857610d18613a99565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b601f82111561100f57600081815260208120601f850160051c81016020861015613bc95750805b601f850160051c820191505b81811015613be857828155600101613bd5565b505050505050565b815167ffffffffffffffff811115613c0a57613c0a613862565b613c1e81613c188454613a49565b84613ba2565b602080601f831160018114613c535760008415613c3b5750858301515b600019600386901b1c1916600185901b178555613be8565b600085815260208120601f198616915b82811015613c8257888601518255948401946001909101908401613c63565b5085821015613ca05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b80851115613ceb578160001904821115613cd157613cd1613a99565b80851615613cde57918102915b93841c9390800290613cb5565b509250929050565b600082613d0257506001610d18565b81613d0f57506000610d18565b8160018114613d255760028114613d2f57613d4b565b6001915050610d18565b60ff841115613d4057613d40613a99565b50506001821b610d18565b5060208310610133831016604e8410600b8410161715613d6e575081810a610d18565b613d788383613cb0565b8060001904821115613d8c57613d8c613a99565b029392505050565b60006111cd8383613cf3565b600082613daf57613daf613b08565b500690565b600060208284031215613dc657600080fd5b81516111cd81613712565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215613e2157600080fd5b8351925060208401519150604084015190509250925092565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613e8a5784516001600160a01b031683529383019391830191600101613e65565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122013deaa4c6cead0dbfee445e697402f7a39b4ca117ef8e1f239bd2420c92db41664736f6c63430008120033