ETH Price: $2,482.69 (-1.52%)

Token

SquidGrok (SQUIDG)
 

Overview

Max Total Supply

100,000,000,000 SQUIDG

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.395908977 SQUIDG

Value
$0.00
0x13e6dc437458290efa0f285ba934460b3df69577
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SQUIDG

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-17
*/

// SPDX-License-Identifier: NOLICENSE

/**

Telegram: https://t.me/SquidGrokERC
Twitter: https://twitter.com/SquidGrokERC

*/

pragma solidity ^0.8.10;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract SQUIDG is Context, IERC20, Ownable {

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    

    address[] private _excluded;

    bool public swapEnabled = true;
    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 100e9 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    
    uint256 public swapTokensAtAmount = 1_000_000_000 * 10**_decimals;
    
    uint256 public maxSellAmount = 100_000_000_000 * 10**_decimals;
    uint256 public maxBuyAmount = 100_000_000_000 * 10**_decimals;
    uint256 public maxWalletBalance = 100_000_000_000 * 10**_decimals;

    address public marketingAddress = 0xB357BaDb9585504f5bF70F31d0280cC99E188266;
    address public devAddress = 0x884ba04f760c06e66e3A00487764A4193DD14330;

    address public rescue;

    string private constant _name = "SquidGrok";
    string private constant _symbol = "SQUIDG";


    struct Taxes {
      uint256 rfi;
      uint256 dev;
      uint256 marketing;
      uint256 liquidity;
    }

    Taxes public taxes = Taxes(0,0,0,0);
    Taxes public sellTaxes = Taxes(0,0,0,0);

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 marketing;
        uint256 dev;
        uint256 liquidity;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rMarketing;
      uint256 rDev;
      uint256 rLiquidity;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tMarketing;
      uint256 tDev;
      uint256 tLiquidity;
    }

    event FeesChanged();

    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor () {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        excludeFromReward(pair);

        _rOwned[owner()] = _rTotal;
         rescue = payable(_msgSender());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingAddress]=true;
        _isExcludedFromFee[devAddress] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi, bool isSell) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, false, isSell);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, isSell);
            return s.rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/currentRate;
    }

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }


    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }


    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner {
        taxes.rfi = _rfi;
        taxes.marketing = _marketing;
        taxes.dev = _dev;
        taxes.liquidity = _liquidity;
        emit FeesChanged();
    }
    
    function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner {
        sellTaxes.rfi = _rfi;
        sellTaxes.marketing = _marketing;
        sellTaxes.dev = _dev;
        sellTaxes.liquidity = _liquidity;
        emit FeesChanged();
    }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tLiquidity;
        }
        _rOwned[address(this)] +=rLiquidity;
    }

    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing +=tMarketing;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tMarketing;
        }
        _rOwned[address(this)] +=rMarketing;
    }
    
    function _takeDev(uint256 rDev, uint256 tDev) private {
        totFeesPaid.dev += tDev;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+= tDev;
        }
        _rOwned[address(this)] += rDev;
    }

    function _getValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee, isSell);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rDev, to_return.rLiquidity) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        Taxes memory temp;
        if(isSell) temp = sellTaxes;
        else temp = taxes;
        
        s.tRfi = tAmount*temp.rfi/100;
        s.tMarketing = tAmount*temp.marketing/100;
        s.tLiquidity = tAmount*temp.liquidity/100;
        s.tDev = tAmount*temp.dev/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tDev-s.tLiquidity;
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rMarketing, uint256 rDev, uint256 rLiquidity) {
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0,0,0);
        }

        rRfi = s.tRfi*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rDev = s.tDev*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rTransferAmount =  rAmount-rRfi-rMarketing-rDev-rLiquidity;
        return (rAmount, rTransferAmount, rRfi,rMarketing,rDev,rLiquidity);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-_rOwned[_excluded[i]];
            tSupply = tSupply-_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        
                
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping){
            if(from == pair){
                require(amount <= maxBuyAmount, "You are exceeding maxBuyAmount");
            }
            if(to == pair){
                require(amount <= maxSellAmount, "You are exceeding maxSellAmount");
            }
            if(to != pair){
                require(balanceOf(to) + amount <= maxWalletBalance, "You are exceeding maxWalletBalance");
            }
        }
        
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            swapAndLiquify(swapTokensAtAmount);
        }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]), to == pair);
    }


    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private {
        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        
        if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if(s.rLiquidity > 0 || s.tLiquidity > 0) {
            _takeLiquidity(s.rLiquidity,s.tLiquidity);
        }
        if(s.rMarketing > 0 || s.tMarketing > 0){
            _takeMarketing(s.rMarketing, s.tMarketing);
        }
        if(s.rDev > 0 || s.tDev > 0){
            _takeDev(s.rDev, s.tDev);
        }
        
        emit Transfer(sender, recipient, s.tTransferAmount);
        emit Transfer(sender, address(this), s.tLiquidity + s.tDev + s.tMarketing);
        
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
       // Split the contract balance into halves
        uint256 denominator = (sellTaxes.liquidity + sellTaxes.marketing + sellTaxes.dev) * 2;
        uint256 tokensToAddLiquidityWith = tokens * sellTaxes.liquidity / denominator;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForBNB(toSwap);

        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
        uint256 bnbToAddLiquidityWith = unitBalance * sellTaxes.liquidity;

        if(bnbToAddLiquidityWith > 0){
            // Add liquidity to pancake
            addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
        }

        uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
        if(marketingAmt > 0){
            payable(marketingAddress).transfer(marketingAmt);
        }
        
        uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
        if(devAmt > 0){
            payable(devAddress).transfer(devAmt);
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0),
            block.timestamp
        );
    }

    function swapTokensForBNB(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingAddress = newWallet;
    }
    
    function updateDevWallet(address newDevWallet) external onlyOwner{
        devAddress = newDevWallet;
    }
    
    function updateMaxWalletBalance(uint256 amount) external onlyOwner{
        maxWalletBalance = amount * 10**_decimals;
    }

    function updatMaxBuyAmt(uint256 amount) external onlyOwner{
        maxBuyAmount = amount * 10**_decimals;
    }
    
    function updatMaxSellAmt(uint256 amount) external onlyOwner{
        maxSellAmount = amount * 10**_decimals;
    }
    
    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }

    
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    

    //Use this in case BNB are sent to the contract by mistake SQUIDG
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(msg.sender == rescue, "not SQUIDG");
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake)
    // Owner cannot transfer out SQUIDG from this smart contract  SQUIDG
    function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public  {
        require(msg.sender == rescue, "not SQUIDG");
        require(_tokenAddr != address(this), "Cannot transfer out SQUIDG!");
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"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":[],"name":"FeesChanged","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":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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","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":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"},{"internalType":"bool","name":"isSell","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"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":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxBuyAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxSellAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805460ff191660011790556200001f6009600a62000979565b620000309064174876e8006200098a565b60098190556200004390600019620009c2565b6200005190600019620009d9565b600a556009600a62000064919062000979565b6200007490633b9aca006200098a565b600b55620000856009600a62000979565b620000969064174876e8006200098a565b600c55620000a76009600a62000979565b620000b89064174876e8006200098a565b600d55620000c96009600a62000979565b620000da9064174876e8006200098a565b600e55600f80546001600160a01b031990811673b357badb9585504f5bf70f31d0280cc99e188266179091556010805490911673884ba04f760c06e66e3a00487764a4193dd1433017905560408051608080820183526000808352602080840182905283850182905260609384018290526012829055601382905560148290556015829055845192830185528183528201819052928101839052018190526016819055601781905560188190556019553480156200019757600080fd5b50620001a3336200043a565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002239190620009f3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002979190620009f3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b9190620009f3565b600780546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600880549183166001600160a01b03199092168217905590915062000359906200048a565b600a5460016000620003736000546001600160a01b031690565b6001600160a01b0390811682526020808301939093526040918201600090812094909455601180546001600160a01b0319163317905583548116845260048352818420805460ff1990811660019081179092553086528386208054821683179055600f548316865283862080548216831790556010548316865283862080549091169091179055835460095492519283521692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000a69565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620005555760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620004e1565b6001600160a01b03811660009081526001602052604090205415620005b2576001600160a01b038116600090815260016020526040902054620005989062000618565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000600a54821115620006815760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401620004e1565b60006200068d620006a2565b90506200069b818462000a1e565b9392505050565b60008080620006b0620006c8565b9092509050620006c1818362000a1e565b9250505090565b600a546009546000918291825b6006548110156200083057826001600060068481548110620006fb57620006fb62000a35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200076a575081600260006006848154811062000743576200074362000a35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200078157600a54600954945094505050509091565b60016000600683815481106200079b576200079b62000a35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007cc9084620009d9565b92506002600060068381548110620007e857620007e862000a35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008199083620009d9565b915080620008278162000a4b565b915050620006d5565b50600954600a5462000843919062000a1e565b8210156200085b57600a546009549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008bb5781600019048211156200089f576200089f62000864565b80851615620008ad57918102915b93841c93908002906200087f565b509250929050565b600082620008d45750600162000973565b81620008e35750600062000973565b8160018114620008fc5760028114620009075762000927565b600191505062000973565b60ff8411156200091b576200091b62000864565b50506001821b62000973565b5060208310610133831016604e8410600b84101617156200094c575081810a62000973565b6200095883836200087a565b80600019048211156200096f576200096f62000864565b0290505b92915050565b60006200069b60ff841683620008c3565b6000816000190483118215151615620009a757620009a762000864565b500290565b634e487b7160e01b600052601260045260246000fd5b600082620009d457620009d4620009ac565b500690565b600082821015620009ee57620009ee62000864565b500390565b60006020828403121562000a0657600080fd5b81516001600160a01b03811681146200069b57600080fd5b60008262000a305762000a30620009ac565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000a625762000a6262000864565b5060010190565b612c718062000a796000396000f3fe60806040526004361061028c5760003560e01c8063715018a61161015a578063a9059cbb116100c1578063e2f456051161007a578063e2f456051461085d578063ea2f0b3714610873578063f2fde38b14610893578063f480fec2146108b3578063f66895a3146108d3578063f887ea40146108f657600080fd5b8063a9059cbb14610781578063aacebbe3146107a1578063bbde77c1146107c1578063c4fd856b146107d7578063d257b34f146107f7578063dd62ed3e1461081757600080fd5b806395d89b411161011357806395d89b41146106af5780639ba5e4d5146106de578063a12a7d6114610701578063a457c2d714610721578063a5ece94114610741578063a8aa1b311461076157600080fd5b8063715018a6146105ca578063728f8eea146105df57806388e765ff1461062257806388f82020146106385780638da5cb5b14610671578063924de9b71461068f57600080fd5b806339509351116101fe57806347c23092116101b757806347c230921461050157806352390c02146105215780635342acb41461054157806366d602ae1461057a5780636ddd17131461059057806370a08231146105aa57600080fd5b806339509351146104415780633ad10ef6146104615780633f63d40f1461048157806340b28c2f146104a1578063437823ec146104c1578063441b1d30146104e157600080fd5b80631fbe1979116102505780631fbe19791461036d57806323b872dd146103a557806327563c8c146103c55780632d838119146103e5578063313ce567146104055780633685d4191461042157600080fd5b806306fdde0314610298578063095ea7b3146102dc57806318160ddd1461030c5780631816467f1461032b578063188b1bf11461034d57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b50604080518082019091526009815268537175696447726f6b60b81b60208201525b6040516102d39190612788565b60405180910390f35b3480156102e857600080fd5b506102fc6102f73660046127f2565b61091c565b60405190151581526020016102d3565b34801561031857600080fd5b506009545b6040519081526020016102d3565b34801561033757600080fd5b5061034b61034636600461281e565b610933565b005b34801561035957600080fd5b5061034b61036836600461283b565b610988565b34801561037957600080fd5b5060115461038d906001600160a01b031681565b6040516001600160a01b0390911681526020016102d3565b3480156103b157600080fd5b506102fc6103c0366004612854565b6109ce565b3480156103d157600080fd5b5061034b6103e036600461283b565b610a81565b3480156103f157600080fd5b5061031d61040036600461283b565b610ac7565b34801561041157600080fd5b50604051600981526020016102d3565b34801561042d57600080fd5b5061034b61043c36600461281e565b610b44565b34801561044d57600080fd5b506102fc61045c3660046127f2565b610cfb565b34801561046d57600080fd5b5060105461038d906001600160a01b031681565b34801561048d57600080fd5b5061031d61049c3660046128a3565b610d32565b3480156104ad57600080fd5b5061034b6104bc3660046128e5565b610dbe565b3480156104cd57600080fd5b5061034b6104dc36600461281e565b610e22565b3480156104ed57600080fd5b5061034b6104fc36600461283b565b610e70565b34801561050d57600080fd5b5061034b61051c366004612854565b610f5e565b34801561052d57600080fd5b5061034b61053c36600461281e565b611077565b34801561054d57600080fd5b506102fc61055c36600461281e565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058657600080fd5b5061031d600c5481565b34801561059c57600080fd5b506007546102fc9060ff1681565b3480156105b657600080fd5b5061031d6105c536600461281e565b6111ca565b3480156105d657600080fd5b5061034b611229565b3480156105eb57600080fd5b506012546013546014546015546106029392919084565b6040805194855260208501939093529183015260608201526080016102d3565b34801561062e57600080fd5b5061031d600d5481565b34801561064457600080fd5b506102fc61065336600461281e565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561067d57600080fd5b506000546001600160a01b031661038d565b34801561069b57600080fd5b5061034b6106aa36600461291e565b61125f565b3480156106bb57600080fd5b5060408051808201909152600681526553515549444760d01b60208201526102c6565b3480156106ea57600080fd5b50601a54601b54601c54601d546106029392919084565b34801561070d57600080fd5b5061034b61071c36600461293b565b61129c565b34801561072d57600080fd5b506102fc61073c3660046127f2565b611309565b34801561074d57600080fd5b50600f5461038d906001600160a01b031681565b34801561076d57600080fd5b5060085461038d906001600160a01b031681565b34801561078d57600080fd5b506102fc61079c3660046127f2565b6113a4565b3480156107ad57600080fd5b5061034b6107bc36600461281e565b6113b1565b3480156107cd57600080fd5b5061031d600e5481565b3480156107e357600080fd5b5061034b6107f236600461283b565b6113fd565b34801561080357600080fd5b5061034b61081236600461283b565b611443565b34801561082357600080fd5b5061031d6108323660046128e5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561086957600080fd5b5061031d600b5481565b34801561087f57600080fd5b5061034b61088e36600461281e565b611489565b34801561089f57600080fd5b5061034b6108ae36600461281e565b6114d4565b3480156108bf57600080fd5b5061034b6108ce36600461293b565b61156f565b3480156108df57600080fd5b506016546017546018546019546106029392919084565b34801561090257600080fd5b5060075461038d906201000090046001600160a01b031681565b60006109293384846115dc565b5060015b92915050565b6000546001600160a01b031633146109665760405162461bcd60e51b815260040161095d9061296d565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109b25760405162461bcd60e51b815260040161095d9061296d565b6109be6009600a612a9c565b6109c89082612aab565b600e5550565b60006109db848484611700565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a605760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161095d565b610a748533610a6f8685612aca565b6115dc565b60019150505b9392505050565b6000546001600160a01b03163314610aab5760405162461bcd60e51b815260040161095d9061296d565b610ab76009600a612a9c565b610ac19082612aab565b600d5550565b6000600a54821115610b2e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161095d565b6000610b38611b56565b9050610a7a8184612ae1565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03811660009081526005602052604090205460ff16610bd65760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015260640161095d565b60005b600654811015610cf757816001600160a01b031660068281548110610c0057610c00612b03565b6000918252602090912001546001600160a01b03161415610ce55760068054610c2b90600190612aca565b81548110610c3b57610c3b612b03565b600091825260209091200154600680546001600160a01b039092169183908110610c6757610c67612b03565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610cbf57610cbf612b19565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cef81612b2f565b915050610bd9565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610929918590610a6f908690612b4a565b6000600954841115610d865760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161095d565b82610da3576000610d9985600085611b79565b519150610a7a9050565b6000610db185600185611b79565b602001519150610a7a9050565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040161095d9061296d565b6007805462010000600160b01b031916620100006001600160a01b0394851602179055600880546001600160a01b03191691909216179055565b6000546001600160a01b03163314610e4c5760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e9a5760405162461bcd60e51b815260040161095d9061296d565b6011546001600160a01b03163314610ee15760405162461bcd60e51b815260206004820152600a6024820152696e6f742053515549444760b01b604482015260640161095d565b80471015610f315760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e63650000000000000000604482015260640161095d565b604051339082156108fc029083906000818181858888f19350505050158015610cf7573d6000803e3d6000fd5b6011546001600160a01b03163314610fa55760405162461bcd60e51b815260206004820152600a6024820152696e6f742053515549444760b01b604482015260640161095d565b6001600160a01b038316301415610ffe5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207472616e73666572206f757420535155494447210000000000604482015260640161095d565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af115801561104d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110719190612b62565b50505050565b6000546001600160a01b031633146110a15760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03811660009081526005602052604090205460ff161561110a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161095d565b6001600160a01b03811660009081526001602052604090205415611164576001600160a01b03811660009081526001602052604090205461114a90610ac7565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561120757506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461092d90610ac7565b6000546001600160a01b031633146112535760405162461bcd60e51b815260040161095d9061296d565b61125d6000611bc3565b565b6000546001600160a01b031633146112895760405162461bcd60e51b815260040161095d9061296d565b6007805460ff1916911515919091179055565b6000546001600160a01b031633146112c65760405162461bcd60e51b815260040161095d9061296d565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561138b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161095d565b61139a3385610a6f8685612aca565b5060019392505050565b6000610929338484611700565b6000546001600160a01b031633146113db5760405162461bcd60e51b815260040161095d9061296d565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114275760405162461bcd60e51b815260040161095d9061296d565b6114336009600a612a9c565b61143d9082612aab565b600c5550565b6000546001600160a01b0316331461146d5760405162461bcd60e51b815260040161095d9061296d565b6114796009600a612a9c565b6114839082612aab565b600b5550565b6000546001600160a01b031633146114b35760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146114fe5760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b0381166115635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095d565b61156c81611bc3565b50565b6000546001600160a01b031633146115995760405162461bcd60e51b815260040161095d9061296d565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b03831661163e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161095d565b6001600160a01b03821661169f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161095d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161095d565b6001600160a01b0382166117c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161095d565b600081116118285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161095d565b611831836111ca565b81111561189a5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161095d565b6001600160a01b03831660009081526004602052604090205460ff161580156118dc57506001600160a01b03821660009081526004602052604090205460ff16155b80156118f05750600754610100900460ff16155b15611a4a576008546001600160a01b038481169116141561195d57600d5481111561195d5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e740000604482015260640161095d565b6008546001600160a01b03838116911614156119c557600c548111156119c55760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e7400604482015260640161095d565b6008546001600160a01b03838116911614611a4a57600e54816119e7846111ca565b6119f19190612b4a565b1115611a4a5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b606482015260840161095d565b6000600b54611a58306111ca565b6007549111159150610100900460ff16158015611a77575060075460ff165b8015611a805750805b8015611a9a57506008546001600160a01b03858116911614155b8015611abf57506001600160a01b03841660009081526004602052604090205460ff16155b8015611ae457506001600160a01b03831660009081526004602052604090205460ff16155b15611af457611af4600b54611c13565b6001600160a01b0384166000908152600460205260409020546110719085908590859060ff1680611b3d57506001600160a01b03871660009081526004602052604090205460ff165b6008549015906001600160a01b03898116911614611daa565b6000806000611b63612076565b9092509050611b728183612ae1565b9250505090565b611b8161272e565b611b8c8484846121f9565b9050611ba1818585611b9c611b56565b61236c565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805461ff00191661010017905560175460185460195460009291611c3891612b4a565b611c429190612b4a565b611c4d906002612aab565b905060008160166003015484611c639190612aab565b611c6d9190612ae1565b90506000611c7b8285612aca565b905047611c878261241e565b6000611c938247612aca565b601954909150600090611ca69087612aca565b611cb09083612ae1565b601954909150600090611cc39083612aab565b90508015611cd557611cd5868261259d565b601854600090611ce6846002612aab565b611cf09190612aab565b90508015611d3457600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d32573d6000803e3d6000fd5b505b601754600090611d45856002612aab565b611d4f9190612aab565b90508015611d93576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d91573d6000803e3d6000fd5b505b50506007805461ff00191690555050505050505050565b6000611db7848484611b79565b6001600160a01b03871660009081526005602052604090205490915060ff1615611e19576001600160a01b038616600090815260026020526040902054611dff908590612aca565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e7c5760c08101516001600160a01b038616600090815260026020526040902054611e629190612b4a565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611ea19190612aca565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611ed89190612b4a565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611f0a575060008160e00151115b15611f2157611f2181604001518260e00151612659565b60008160a001511180611f3957506000816101400151115b15611f5157611f518160a0015182610140015161268e565b600081606001511180611f6957506000816101000151115b15611f8157611f818160600151826101000151612704565b600081608001511180611f9957506000816101200151115b15611fb157611fb18160800151826101200151612719565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c00151604051611ffa91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516120539190612b4a565b61205d9190612b4a565b60405190815260200160405180910390a3505050505050565b600a546009546000918291825b6006548110156121c8578260016000600684815481106120a5576120a5612b03565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061211057508160026000600684815481106120e9576120e9612b03565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561212657600a54600954945094505050509091565b600160006006838154811061213d5761213d612b03565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461216c9084612aca565b9250600260006006838154811061218557612185612b03565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121b49083612aca565b9150806121c081612b2f565b915050612083565b50600954600a546121d99190612ae1565b8210156121f057600a546009549350935050509091565b90939092509050565b61220161272e565b826122125760c08101849052610a7a565b61223d6040518060800160405280600081526020016000815260200160008152602001600081525090565b82156122725750604080516080810182526016548152601754602082015260185491810191909152601954606082015261229d565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122ac9087612aab565b6122b69190612ae1565b60e083015260408101516064906122cd9087612aab565b6122d79190612ae1565b61010083015260608101516064906122ef9087612aab565b6122f99190612ae1565b61014083015260208101516064906123119087612aab565b61231b9190612ae1565b610120830181905261014083015161010084015160e08501519192916123419089612aca565b61234b9190612aca565b6123559190612aca565b61235f9190612aca565b60c0830152509392505050565b6000808080808061237d878a612aab565b95508761239857508493506000925082915081905080612411565b868a60e001516123a89190612aab565b9350868a61010001516123bb9190612aab565b9250868a61012001516123ce9190612aab565b9150868a61014001516123e19190612aab565b90508082846123f0878a612aca565b6123fa9190612aca565b6124049190612aca565b61240e9190612aca565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061245357612453612b03565b60200260200101906001600160a01b031690816001600160a01b031681525050600760029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ea9190612b7f565b816001815181106124fd576124fd612b03565b6001600160a01b03928316602091820292909201015260075461252991309162010000900416846115dc565b60075460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612567908590600090869030904290600401612b9c565b600060405180830381600087803b15801561258157600080fd5b505af1158015612595573d6000803e3d6000fd5b505050505050565b6007546125bb9030906201000090046001600160a01b0316846115dc565b60075460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af115801561262d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126529190612c0d565b5050505050565b81600a600082825461266b9190612aca565b9091555050601a8054829190600090612685908490612b4a565b90915550505050565b80601a60030160008282546126a39190612b4a565b90915550503060009081526005602052604090205460ff16156126e55730600090815260026020526040812080548392906126df908490612b4a565b90915550505b3060009081526001602052604081208054849290612685908490612b4a565b80601a60010160008282546126a39190612b4a565b80601a60020160008282546126a39190612b4a565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156127b557858101830151858201604001528201612799565b818111156127c7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461156c57600080fd5b6000806040838503121561280557600080fd5b8235612810816127dd565b946020939093013593505050565b60006020828403121561283057600080fd5b8135610a7a816127dd565b60006020828403121561284d57600080fd5b5035919050565b60008060006060848603121561286957600080fd5b8335612874816127dd565b92506020840135612884816127dd565b929592945050506040919091013590565b801515811461156c57600080fd5b6000806000606084860312156128b857600080fd5b8335925060208401356128ca81612895565b915060408401356128da81612895565b809150509250925092565b600080604083850312156128f857600080fd5b8235612903816127dd565b91506020830135612913816127dd565b809150509250929050565b60006020828403121561293057600080fd5b8135610a7a81612895565b6000806000806080858703121561295157600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156129f35781600019048211156129d9576129d96129a2565b808516156129e657918102915b93841c93908002906129bd565b509250929050565b600082612a0a5750600161092d565b81612a175750600061092d565b8160018114612a2d5760028114612a3757612a53565b600191505061092d565b60ff841115612a4857612a486129a2565b50506001821b61092d565b5060208310610133831016604e8410600b8410161715612a76575081810a61092d565b612a8083836129b8565b8060001904821115612a9457612a946129a2565b029392505050565b6000610a7a60ff8416836129fb565b6000816000190483118215151615612ac557612ac56129a2565b500290565b600082821015612adc57612adc6129a2565b500390565b600082612afe57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612b4357612b436129a2565b5060010190565b60008219821115612b5d57612b5d6129a2565b500190565b600060208284031215612b7457600080fd5b8151610a7a81612895565b600060208284031215612b9157600080fd5b8151610a7a816127dd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bec5784516001600160a01b031683529383019391830191600101612bc7565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612c2257600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122015ccc449b49025df03fee213e3fc6247a4a4e427b64d18f24ae4389542037d8b64736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c8063715018a61161015a578063a9059cbb116100c1578063e2f456051161007a578063e2f456051461085d578063ea2f0b3714610873578063f2fde38b14610893578063f480fec2146108b3578063f66895a3146108d3578063f887ea40146108f657600080fd5b8063a9059cbb14610781578063aacebbe3146107a1578063bbde77c1146107c1578063c4fd856b146107d7578063d257b34f146107f7578063dd62ed3e1461081757600080fd5b806395d89b411161011357806395d89b41146106af5780639ba5e4d5146106de578063a12a7d6114610701578063a457c2d714610721578063a5ece94114610741578063a8aa1b311461076157600080fd5b8063715018a6146105ca578063728f8eea146105df57806388e765ff1461062257806388f82020146106385780638da5cb5b14610671578063924de9b71461068f57600080fd5b806339509351116101fe57806347c23092116101b757806347c230921461050157806352390c02146105215780635342acb41461054157806366d602ae1461057a5780636ddd17131461059057806370a08231146105aa57600080fd5b806339509351146104415780633ad10ef6146104615780633f63d40f1461048157806340b28c2f146104a1578063437823ec146104c1578063441b1d30146104e157600080fd5b80631fbe1979116102505780631fbe19791461036d57806323b872dd146103a557806327563c8c146103c55780632d838119146103e5578063313ce567146104055780633685d4191461042157600080fd5b806306fdde0314610298578063095ea7b3146102dc57806318160ddd1461030c5780631816467f1461032b578063188b1bf11461034d57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b50604080518082019091526009815268537175696447726f6b60b81b60208201525b6040516102d39190612788565b60405180910390f35b3480156102e857600080fd5b506102fc6102f73660046127f2565b61091c565b60405190151581526020016102d3565b34801561031857600080fd5b506009545b6040519081526020016102d3565b34801561033757600080fd5b5061034b61034636600461281e565b610933565b005b34801561035957600080fd5b5061034b61036836600461283b565b610988565b34801561037957600080fd5b5060115461038d906001600160a01b031681565b6040516001600160a01b0390911681526020016102d3565b3480156103b157600080fd5b506102fc6103c0366004612854565b6109ce565b3480156103d157600080fd5b5061034b6103e036600461283b565b610a81565b3480156103f157600080fd5b5061031d61040036600461283b565b610ac7565b34801561041157600080fd5b50604051600981526020016102d3565b34801561042d57600080fd5b5061034b61043c36600461281e565b610b44565b34801561044d57600080fd5b506102fc61045c3660046127f2565b610cfb565b34801561046d57600080fd5b5060105461038d906001600160a01b031681565b34801561048d57600080fd5b5061031d61049c3660046128a3565b610d32565b3480156104ad57600080fd5b5061034b6104bc3660046128e5565b610dbe565b3480156104cd57600080fd5b5061034b6104dc36600461281e565b610e22565b3480156104ed57600080fd5b5061034b6104fc36600461283b565b610e70565b34801561050d57600080fd5b5061034b61051c366004612854565b610f5e565b34801561052d57600080fd5b5061034b61053c36600461281e565b611077565b34801561054d57600080fd5b506102fc61055c36600461281e565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058657600080fd5b5061031d600c5481565b34801561059c57600080fd5b506007546102fc9060ff1681565b3480156105b657600080fd5b5061031d6105c536600461281e565b6111ca565b3480156105d657600080fd5b5061034b611229565b3480156105eb57600080fd5b506012546013546014546015546106029392919084565b6040805194855260208501939093529183015260608201526080016102d3565b34801561062e57600080fd5b5061031d600d5481565b34801561064457600080fd5b506102fc61065336600461281e565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561067d57600080fd5b506000546001600160a01b031661038d565b34801561069b57600080fd5b5061034b6106aa36600461291e565b61125f565b3480156106bb57600080fd5b5060408051808201909152600681526553515549444760d01b60208201526102c6565b3480156106ea57600080fd5b50601a54601b54601c54601d546106029392919084565b34801561070d57600080fd5b5061034b61071c36600461293b565b61129c565b34801561072d57600080fd5b506102fc61073c3660046127f2565b611309565b34801561074d57600080fd5b50600f5461038d906001600160a01b031681565b34801561076d57600080fd5b5060085461038d906001600160a01b031681565b34801561078d57600080fd5b506102fc61079c3660046127f2565b6113a4565b3480156107ad57600080fd5b5061034b6107bc36600461281e565b6113b1565b3480156107cd57600080fd5b5061031d600e5481565b3480156107e357600080fd5b5061034b6107f236600461283b565b6113fd565b34801561080357600080fd5b5061034b61081236600461283b565b611443565b34801561082357600080fd5b5061031d6108323660046128e5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561086957600080fd5b5061031d600b5481565b34801561087f57600080fd5b5061034b61088e36600461281e565b611489565b34801561089f57600080fd5b5061034b6108ae36600461281e565b6114d4565b3480156108bf57600080fd5b5061034b6108ce36600461293b565b61156f565b3480156108df57600080fd5b506016546017546018546019546106029392919084565b34801561090257600080fd5b5060075461038d906201000090046001600160a01b031681565b60006109293384846115dc565b5060015b92915050565b6000546001600160a01b031633146109665760405162461bcd60e51b815260040161095d9061296d565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109b25760405162461bcd60e51b815260040161095d9061296d565b6109be6009600a612a9c565b6109c89082612aab565b600e5550565b60006109db848484611700565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a605760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161095d565b610a748533610a6f8685612aca565b6115dc565b60019150505b9392505050565b6000546001600160a01b03163314610aab5760405162461bcd60e51b815260040161095d9061296d565b610ab76009600a612a9c565b610ac19082612aab565b600d5550565b6000600a54821115610b2e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161095d565b6000610b38611b56565b9050610a7a8184612ae1565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03811660009081526005602052604090205460ff16610bd65760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015260640161095d565b60005b600654811015610cf757816001600160a01b031660068281548110610c0057610c00612b03565b6000918252602090912001546001600160a01b03161415610ce55760068054610c2b90600190612aca565b81548110610c3b57610c3b612b03565b600091825260209091200154600680546001600160a01b039092169183908110610c6757610c67612b03565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610cbf57610cbf612b19565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cef81612b2f565b915050610bd9565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610929918590610a6f908690612b4a565b6000600954841115610d865760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161095d565b82610da3576000610d9985600085611b79565b519150610a7a9050565b6000610db185600185611b79565b602001519150610a7a9050565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040161095d9061296d565b6007805462010000600160b01b031916620100006001600160a01b0394851602179055600880546001600160a01b03191691909216179055565b6000546001600160a01b03163314610e4c5760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e9a5760405162461bcd60e51b815260040161095d9061296d565b6011546001600160a01b03163314610ee15760405162461bcd60e51b815260206004820152600a6024820152696e6f742053515549444760b01b604482015260640161095d565b80471015610f315760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e63650000000000000000604482015260640161095d565b604051339082156108fc029083906000818181858888f19350505050158015610cf7573d6000803e3d6000fd5b6011546001600160a01b03163314610fa55760405162461bcd60e51b815260206004820152600a6024820152696e6f742053515549444760b01b604482015260640161095d565b6001600160a01b038316301415610ffe5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207472616e73666572206f757420535155494447210000000000604482015260640161095d565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af115801561104d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110719190612b62565b50505050565b6000546001600160a01b031633146110a15760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03811660009081526005602052604090205460ff161561110a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161095d565b6001600160a01b03811660009081526001602052604090205415611164576001600160a01b03811660009081526001602052604090205461114a90610ac7565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561120757506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461092d90610ac7565b6000546001600160a01b031633146112535760405162461bcd60e51b815260040161095d9061296d565b61125d6000611bc3565b565b6000546001600160a01b031633146112895760405162461bcd60e51b815260040161095d9061296d565b6007805460ff1916911515919091179055565b6000546001600160a01b031633146112c65760405162461bcd60e51b815260040161095d9061296d565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561138b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161095d565b61139a3385610a6f8685612aca565b5060019392505050565b6000610929338484611700565b6000546001600160a01b031633146113db5760405162461bcd60e51b815260040161095d9061296d565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114275760405162461bcd60e51b815260040161095d9061296d565b6114336009600a612a9c565b61143d9082612aab565b600c5550565b6000546001600160a01b0316331461146d5760405162461bcd60e51b815260040161095d9061296d565b6114796009600a612a9c565b6114839082612aab565b600b5550565b6000546001600160a01b031633146114b35760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146114fe5760405162461bcd60e51b815260040161095d9061296d565b6001600160a01b0381166115635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095d565b61156c81611bc3565b50565b6000546001600160a01b031633146115995760405162461bcd60e51b815260040161095d9061296d565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b03831661163e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161095d565b6001600160a01b03821661169f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161095d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161095d565b6001600160a01b0382166117c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161095d565b600081116118285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161095d565b611831836111ca565b81111561189a5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161095d565b6001600160a01b03831660009081526004602052604090205460ff161580156118dc57506001600160a01b03821660009081526004602052604090205460ff16155b80156118f05750600754610100900460ff16155b15611a4a576008546001600160a01b038481169116141561195d57600d5481111561195d5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e740000604482015260640161095d565b6008546001600160a01b03838116911614156119c557600c548111156119c55760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e7400604482015260640161095d565b6008546001600160a01b03838116911614611a4a57600e54816119e7846111ca565b6119f19190612b4a565b1115611a4a5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b606482015260840161095d565b6000600b54611a58306111ca565b6007549111159150610100900460ff16158015611a77575060075460ff165b8015611a805750805b8015611a9a57506008546001600160a01b03858116911614155b8015611abf57506001600160a01b03841660009081526004602052604090205460ff16155b8015611ae457506001600160a01b03831660009081526004602052604090205460ff16155b15611af457611af4600b54611c13565b6001600160a01b0384166000908152600460205260409020546110719085908590859060ff1680611b3d57506001600160a01b03871660009081526004602052604090205460ff165b6008549015906001600160a01b03898116911614611daa565b6000806000611b63612076565b9092509050611b728183612ae1565b9250505090565b611b8161272e565b611b8c8484846121f9565b9050611ba1818585611b9c611b56565b61236c565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805461ff00191661010017905560175460185460195460009291611c3891612b4a565b611c429190612b4a565b611c4d906002612aab565b905060008160166003015484611c639190612aab565b611c6d9190612ae1565b90506000611c7b8285612aca565b905047611c878261241e565b6000611c938247612aca565b601954909150600090611ca69087612aca565b611cb09083612ae1565b601954909150600090611cc39083612aab565b90508015611cd557611cd5868261259d565b601854600090611ce6846002612aab565b611cf09190612aab565b90508015611d3457600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d32573d6000803e3d6000fd5b505b601754600090611d45856002612aab565b611d4f9190612aab565b90508015611d93576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d91573d6000803e3d6000fd5b505b50506007805461ff00191690555050505050505050565b6000611db7848484611b79565b6001600160a01b03871660009081526005602052604090205490915060ff1615611e19576001600160a01b038616600090815260026020526040902054611dff908590612aca565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e7c5760c08101516001600160a01b038616600090815260026020526040902054611e629190612b4a565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611ea19190612aca565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611ed89190612b4a565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611f0a575060008160e00151115b15611f2157611f2181604001518260e00151612659565b60008160a001511180611f3957506000816101400151115b15611f5157611f518160a0015182610140015161268e565b600081606001511180611f6957506000816101000151115b15611f8157611f818160600151826101000151612704565b600081608001511180611f9957506000816101200151115b15611fb157611fb18160800151826101200151612719565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c00151604051611ffa91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516120539190612b4a565b61205d9190612b4a565b60405190815260200160405180910390a3505050505050565b600a546009546000918291825b6006548110156121c8578260016000600684815481106120a5576120a5612b03565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061211057508160026000600684815481106120e9576120e9612b03565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561212657600a54600954945094505050509091565b600160006006838154811061213d5761213d612b03565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461216c9084612aca565b9250600260006006838154811061218557612185612b03565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121b49083612aca565b9150806121c081612b2f565b915050612083565b50600954600a546121d99190612ae1565b8210156121f057600a546009549350935050509091565b90939092509050565b61220161272e565b826122125760c08101849052610a7a565b61223d6040518060800160405280600081526020016000815260200160008152602001600081525090565b82156122725750604080516080810182526016548152601754602082015260185491810191909152601954606082015261229d565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122ac9087612aab565b6122b69190612ae1565b60e083015260408101516064906122cd9087612aab565b6122d79190612ae1565b61010083015260608101516064906122ef9087612aab565b6122f99190612ae1565b61014083015260208101516064906123119087612aab565b61231b9190612ae1565b610120830181905261014083015161010084015160e08501519192916123419089612aca565b61234b9190612aca565b6123559190612aca565b61235f9190612aca565b60c0830152509392505050565b6000808080808061237d878a612aab565b95508761239857508493506000925082915081905080612411565b868a60e001516123a89190612aab565b9350868a61010001516123bb9190612aab565b9250868a61012001516123ce9190612aab565b9150868a61014001516123e19190612aab565b90508082846123f0878a612aca565b6123fa9190612aca565b6124049190612aca565b61240e9190612aca565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061245357612453612b03565b60200260200101906001600160a01b031690816001600160a01b031681525050600760029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ea9190612b7f565b816001815181106124fd576124fd612b03565b6001600160a01b03928316602091820292909201015260075461252991309162010000900416846115dc565b60075460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612567908590600090869030904290600401612b9c565b600060405180830381600087803b15801561258157600080fd5b505af1158015612595573d6000803e3d6000fd5b505050505050565b6007546125bb9030906201000090046001600160a01b0316846115dc565b60075460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af115801561262d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126529190612c0d565b5050505050565b81600a600082825461266b9190612aca565b9091555050601a8054829190600090612685908490612b4a565b90915550505050565b80601a60030160008282546126a39190612b4a565b90915550503060009081526005602052604090205460ff16156126e55730600090815260026020526040812080548392906126df908490612b4a565b90915550505b3060009081526001602052604081208054849290612685908490612b4a565b80601a60010160008282546126a39190612b4a565b80601a60020160008282546126a39190612b4a565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156127b557858101830151858201604001528201612799565b818111156127c7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461156c57600080fd5b6000806040838503121561280557600080fd5b8235612810816127dd565b946020939093013593505050565b60006020828403121561283057600080fd5b8135610a7a816127dd565b60006020828403121561284d57600080fd5b5035919050565b60008060006060848603121561286957600080fd5b8335612874816127dd565b92506020840135612884816127dd565b929592945050506040919091013590565b801515811461156c57600080fd5b6000806000606084860312156128b857600080fd5b8335925060208401356128ca81612895565b915060408401356128da81612895565b809150509250925092565b600080604083850312156128f857600080fd5b8235612903816127dd565b91506020830135612913816127dd565b809150509250929050565b60006020828403121561293057600080fd5b8135610a7a81612895565b6000806000806080858703121561295157600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156129f35781600019048211156129d9576129d96129a2565b808516156129e657918102915b93841c93908002906129bd565b509250929050565b600082612a0a5750600161092d565b81612a175750600061092d565b8160018114612a2d5760028114612a3757612a53565b600191505061092d565b60ff841115612a4857612a486129a2565b50506001821b61092d565b5060208310610133831016604e8410600b8410161715612a76575081810a61092d565b612a8083836129b8565b8060001904821115612a9457612a946129a2565b029392505050565b6000610a7a60ff8416836129fb565b6000816000190483118215151615612ac557612ac56129a2565b500290565b600082821015612adc57612adc6129a2565b500390565b600082612afe57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612b4357612b436129a2565b5060010190565b60008219821115612b5d57612b5d6129a2565b500190565b600060208284031215612b7457600080fd5b8151610a7a81612895565b600060208284031215612b9157600080fd5b8151610a7a816127dd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bec5784516001600160a01b031683529383019391830191600101612bc7565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612c2257600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122015ccc449b49025df03fee213e3fc6247a4a4e427b64d18f24ae4389542037d8b64736f6c634300080a0033

Deployed Bytecode Sourcemap

2947:18056:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5748:83;;;;;;;;;;-1:-1:-1;5818:5:0;;;;;;;;;;;;-1:-1:-1;;;5818:5:0;;;;5748:83;;;;;;;:::i;:::-;;;;;;;;6656:161;;;;;;;;;;-1:-1:-1;6656:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;6656:161:0;1072:187:1;6021:95:0;;;;;;;;;;-1:-1:-1;6101:7:0;;6021:95;;;1410:25:1;;;1398:2;1383:18;6021:95:0;1264:177:1;19235:109:0;;;;;;;;;;-1:-1:-1;19235:109:0;;;;;:::i;:::-;;:::i;:::-;;19356:126;;;;;;;;;;-1:-1:-1;19356:126:0;;;;;:::i;:::-;;:::i;4119:21::-;;;;;;;;;;-1:-1:-1;4119:21:0;;;;-1:-1:-1;;;;;4119:21:0;;;;;;-1:-1:-1;;;;;2047:32:1;;;2029:51;;2017:2;2002:18;4119:21:0;1883:203:1;6825:422:0;;;;;;;;;;-1:-1:-1;6825:422:0;;;;;:::i;:::-;;:::i;19490:114::-;;;;;;;;;;-1:-1:-1;19490:114:0;;;;;:::i;:::-;;:::i;8485:248::-;;;;;;;;;;-1:-1:-1;8485:248:0;;;;;:::i;:::-;;:::i;5930:83::-;;;;;;;;;;-1:-1:-1;5930:83:0;;3491:1;2694:36:1;;2682:2;2667:18;5930:83:0;2552:184:1;9082:475:0;;;;;;;;;;-1:-1:-1;9082:475:0;;;;;:::i;:::-;;:::i;7255:215::-;;;;;;;;;;-1:-1:-1;7255:215:0;;;;;:::i;:::-;;:::i;4040:70::-;;;;;;;;;;-1:-1:-1;4040:70:0;;;;-1:-1:-1;;;;;4040:70:0;;;7991:486;;;;;;;;;;-1:-1:-1;7991:486:0;;;;;:::i;:::-;;:::i;20003:154::-;;;;;;;;;;-1:-1:-1;20003:154:0;;;;;:::i;:::-;;:::i;9567:111::-;;;;;;;;;;-1:-1:-1;9567:111:0;;;;;:::i;:::-;;:::i;20248:250::-;;;;;;;;;;-1:-1:-1;20248:250:0;;;;;:::i;:::-;;:::i;20681:277::-;;;;;;;;;;-1:-1:-1;20681:277:0;;;;;:::i;:::-;;:::i;8741:333::-;;;;;;;;;;-1:-1:-1;8741:333:0;;;;;:::i;:::-;;:::i;9806:123::-;;;;;;;;;;-1:-1:-1;9806:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9894:27:0;9870:4;9894:27;;;:18;:27;;;;;;;;;9806:123;3746:62;;;;;;;;;;;;;;;;3333:30;;;;;;;;;;-1:-1:-1;3333:30:0;;;;;;;;6124:198;;;;;;;;;;-1:-1:-1;6124:198:0;;;;;:::i;:::-;;:::i;1724:94::-;;;;;;;;;;;;;:::i;4373:35::-;;;;;;;;;;-1:-1:-1;4373:35:0;;;;;;;;;;;;;;;;;;;3937:25:1;;;3993:2;3978:18;;3971:34;;;;4021:18;;;4014:34;4079:2;4064:18;;4057:34;3924:3;3909:19;4373:35:0;3706:391:1;3815:61:0;;;;;;;;;;;;;;;;7863:120;;;;;;;;;;-1:-1:-1;7863:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7955:20:0;7931:4;7955:20;;;:11;:20;;;;;;;;;7863:120;1501:87;;;;;;;;;;-1:-1:-1;1547:7:0;1574:6;-1:-1:-1;;;;;1574:6:0;1501:87;;19882:101;;;;;;;;;;-1:-1:-1;19882:101:0;;;;;:::i;:::-;;:::i;5837:87::-;;;;;;;;;;-1:-1:-1;5909:7:0;;;;;;;;;;;;-1:-1:-1;;;5909:7:0;;;;5837:87;;4601:36;;;;;;;;;;-1:-1:-1;4601:36:0;;;;;;;;;;;;;;;9937:272;;;;;;;;;;-1:-1:-1;9937:272:0;;;;;:::i;:::-;;:::i;7478:377::-;;;;;;;;;;-1:-1:-1;7478:377:0;;;;;:::i;:::-;;:::i;3957:76::-;;;;;;;;;;-1:-1:-1;3957:76:0;;;;-1:-1:-1;;;;;3957:76:0;;;3428:19;;;;;;;;;;-1:-1:-1;3428:19:0;;;;-1:-1:-1;;;;;3428:19:0;;;6330:167;;;;;;;;;;-1:-1:-1;6330:167:0;;;;;:::i;:::-;;:::i;19108:115::-;;;;;;;;;;-1:-1:-1;19108:115:0;;;;;:::i;:::-;;:::i;3883:65::-;;;;;;;;;;;;;;;;19616:116;;;;;;;;;;-1:-1:-1;19616:116:0;;;;;:::i;:::-;;:::i;19744:130::-;;;;;;;;;;-1:-1:-1;19744:130:0;;;;;:::i;:::-;;:::i;6505:143::-;;;;;;;;;;-1:-1:-1;6505:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6613:18:0;;;6586:7;6613:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6505:143;3668:65;;;;;;;;;;;;;;;;9686:110;;;;;;;;;;-1:-1:-1;9686:110:0;;;;;:::i;:::-;;:::i;1826:192::-;;;;;;;;;;-1:-1:-1;1826:192:0;;;;;:::i;:::-;;:::i;10221:292::-;;;;;;;;;;-1:-1:-1;10221:292:0;;;;;:::i;:::-;;:::i;4415:39::-;;;;;;;;;;-1:-1:-1;4415:39:0;;;;;;;;;;;;;;;3400:21;;;;;;;;;;-1:-1:-1;3400:21:0;;;;;;;-1:-1:-1;;;;;3400:21:0;;;6656:161;6731:4;6748:39;1002:10;6771:7;6780:6;6748:8;:39::i;:::-;-1:-1:-1;6805:4:0;6656:161;;;;;:::o;19235:109::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;;;;;;;;;19311:10:::1;:25:::0;;-1:-1:-1;;;;;;19311:25:0::1;-1:-1:-1::0;;;;;19311:25:0;;;::::1;::::0;;;::::1;::::0;;19235:109::o;19356:126::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;19461:13:::1;3491:1;19461:2;:13;:::i;:::-;19452:22;::::0;:6;:22:::1;:::i;:::-;19433:16;:41:::0;-1:-1:-1;19356:126:0:o;6825:422::-;6931:4;6948:36;6958:6;6966:9;6977:6;6948:9;:36::i;:::-;-1:-1:-1;;;;;7024:19:0;;6997:24;7024:19;;;:11;:19;;;;;;;;1002:10;7024:33;;;;;;;;7076:26;;;;7068:79;;;;-1:-1:-1;;;7068:79:0;;7212:2:1;7068:79:0;;;7194:21:1;7251:2;7231:18;;;7224:30;7290:34;7270:18;;;7263:62;-1:-1:-1;;;7341:18:1;;;7334:38;7389:19;;7068:79:0;7010:404:1;7068:79:0;7158:57;7167:6;1002:10;7189:25;7208:6;7189:16;:25;:::i;:::-;7158:8;:57::i;:::-;7235:4;7228:11;;;6825:422;;;;;;:::o;19490:114::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;19583:13:::1;3491:1;19583:2;:13;:::i;:::-;19574:22;::::0;:6;:22:::1;:::i;:::-;19559:12;:37:::0;-1:-1:-1;19490:114:0:o;8485:248::-;8551:7;8590;;8579;:18;;8571:73;;;;-1:-1:-1;;;8571:73:0;;7751:2:1;8571:73:0;;;7733:21:1;7790:2;7770:18;;;7763:30;7829:34;7809:18;;;7802:62;-1:-1:-1;;;7880:18:1;;;7873:40;7930:19;;8571:73:0;7549:406:1;8571:73:0;8655:19;8678:10;:8;:10::i;:::-;8655:33;-1:-1:-1;8706:19:0;8655:33;8706:7;:19;:::i;9082:475::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9164:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9156:56;;;::::0;-1:-1:-1;;;9156:56:0;;8384:2:1;9156:56:0::1;::::0;::::1;8366:21:1::0;8423:2;8403:18;;;8396:30;8462:25;8442:18;;;8435:53;8505:18;;9156:56:0::1;8182:347:1::0;9156:56:0::1;9228:9;9223:327;9247:9;:16:::0;9243:20;::::1;9223:327;;;9305:7;-1:-1:-1::0;;;;;9289:23:0::1;:9;9299:1;9289:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9289:12:0::1;:23;9285:254;;;9348:9;9358:16:::0;;:20:::1;::::0;9377:1:::1;::::0;9358:20:::1;:::i;:::-;9348:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9333:9:::1;:12:::0;;-1:-1:-1;;;;;9348:31:0;;::::1;::::0;9343:1;;9333:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9333:46:0::1;-1:-1:-1::0;;;;;9333:46:0;;::::1;;::::0;;9398:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9437:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9437:28:0::1;::::0;;9484:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9484:15:0;;;;;-1:-1:-1;;;;;;9484:15:0::1;::::0;;;;;9223:327:::1;9082:475:::0;:::o;9285:254::-:1;9265:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9223:327;;;;9082:475:::0;:::o;7255:215::-;1002:10;7343:4;7392:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7392:34:0;;;;;;;;;;7343:4;;7360:80;;7383:7;;7392:47;;7429:10;;7392:47;:::i;7991:486::-;8094:7;8133;;8122;:18;;8114:62;;;;-1:-1:-1;;;8114:62:0;;9273:2:1;8114:62:0;;;9255:21:1;9312:2;9292:18;;;9285:30;9351:33;9331:18;;;9324:61;9402:18;;8114:62:0;9071:355:1;8114:62:0;8192:17;8187:283;;8226:28;8257:34;8268:7;8277:5;8284:6;8257:10;:34::i;:::-;8313:9;;-1:-1:-1;8306:16:0;;-1:-1:-1;8306:16:0;8187:283;8355:28;8386:33;8397:7;8406:4;8412:6;8386:10;:33::i;:::-;8441:17;;;;-1:-1:-1;8434:24:0;;-1:-1:-1;8434:24:0;20003:154;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;20097:6:::1;:27:::0;;-1:-1:-1;;;;;;20097:27:0::1;::::0;-1:-1:-1;;;;;20097:27:0;;::::1;;;::::0;;20135:4:::1;:14:::0;;-1:-1:-1;;;;;;20135:14:0::1;::::0;;;::::1;;::::0;;20003:154::o;9567:111::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9636:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9636:34:0::1;9666:4;9636:34;::::0;;9567:111::o;20248:250::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;20337:6:::1;::::0;-1:-1:-1;;;;;20337:6:0::1;20323:10;:20;20315:43;;;::::0;-1:-1:-1;;;20315:43:0;;9633:2:1;20315:43:0::1;::::0;::::1;9615:21:1::0;9672:2;9652:18;;;9645:30;-1:-1:-1;;;9691:18:1;;;9684:40;9741:18;;20315:43:0::1;9431:334:1::0;20315:43:0::1;20402:9;20377:21;:34;;20369:71;;;::::0;-1:-1:-1;;;20369:71:0;;9972:2:1;20369:71:0::1;::::0;::::1;9954:21:1::0;10011:2;9991:18;;;9984:30;10050:26;10030:18;;;10023:54;10094:18;;20369:71:0::1;9770:348:1::0;20369:71:0::1;20451:39;::::0;20459:10:::1;::::0;20451:39;::::1;;;::::0;20480:9;;20451:39:::1;::::0;;;20480:9;20459:10;20451:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;20681:277:::0;20799:6;;-1:-1:-1;;;;;20799:6:0;20785:10;:20;20777:43;;;;-1:-1:-1;;;20777:43:0;;9633:2:1;20777:43:0;;;9615:21:1;9672:2;9652:18;;;9645:30;-1:-1:-1;;;9691:18:1;;;9684:40;9741:18;;20777:43:0;9431:334:1;20777:43:0;-1:-1:-1;;;;;20839:27:0;;20861:4;20839:27;;20831:67;;;;-1:-1:-1;;;20831:67:0;;10325:2:1;20831:67:0;;;10307:21:1;10364:2;10344:18;;;10337:30;10403:29;10383:18;;;10376:57;10450:18;;20831:67:0;10123:351:1;20831:67:0;20909:41;;-1:-1:-1;;;20909:41:0;;-1:-1:-1;;;;;10671:32:1;;;20909:41:0;;;10653:51:1;10720:18;;;10713:34;;;20909:27:0;;;;;10626:18:1;;20909:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20681:277;;;:::o;8741:333::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8824:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8823:21;8815:61;;;::::0;-1:-1:-1;;;8815:61:0;;11210:2:1;8815:61:0::1;::::0;::::1;11192:21:1::0;11249:2;11229:18;;;11222:30;11288:29;11268:18;;;11261:57;11335:18;;8815:61:0::1;11008:351:1::0;8815:61:0::1;-1:-1:-1::0;;;;;8890:16:0;::::1;8909:1;8890:16:::0;;;:7:::1;:16;::::0;;;;;:20;8887:108:::1;;-1:-1:-1::0;;;;;8966:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8946:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8927:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8887:108:::1;-1:-1:-1::0;;;;;9005:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9005:27:0::1;9028:4;9005:27:::0;;::::1;::::0;;;9043:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9043:23:0::1;::::0;;::::1;::::0;;8741:333::o;6124:198::-;-1:-1:-1;;;;;6214:20:0;;6190:7;6214:20;;;:11;:20;;;;;;;;6210:49;;;-1:-1:-1;;;;;;6243:16:0;;;;;:7;:16;;;;;;;6124:198::o;6210:49::-;-1:-1:-1;;;;;6297:16:0;;;;;;:7;:16;;;;;;6277:37;;:19;:37::i;1724:94::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;1789:21:::1;1807:1;1789:9;:21::i;:::-;1724:94::o:0;19882:101::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;19953:11:::1;:22:::0;;-1:-1:-1;;19953:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19882:101::o;9937:272::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;10051:5:::1;:16:::0;;;10078:15;:28;;;10117:9;:16;;;10144:15;:28;;;10188:13:::1;::::0;::::1;::::0;10051:9:::1;::::0;10188:13:::1;9937:272:::0;;;;:::o;7478:377::-;1002:10;7571:4;7615:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7615:34:0;;;;;;;;;;7668:35;;;;7660:85;;;;-1:-1:-1;;;7660:85:0;;11566:2:1;7660:85:0;;;11548:21:1;11605:2;11585:18;;;11578:30;11644:34;11624:18;;;11617:62;-1:-1:-1;;;11695:18:1;;;11688:35;11740:19;;7660:85:0;11364:401:1;7660:85:0;7756:67;1002:10;7779:7;7788:34;7807:15;7788:16;:34;:::i;7756:67::-;-1:-1:-1;7843:4:0;;7478:377;-1:-1:-1;;;7478:377:0:o;6330:167::-;6408:4;6425:42;1002:10;6449:9;6460:6;6425:9;:42::i;19108:115::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;19187:16:::1;:28:::0;;-1:-1:-1;;;;;;19187:28:0::1;-1:-1:-1::0;;;;;19187:28:0;;;::::1;::::0;;;::::1;::::0;;19108:115::o;19616:116::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;19711:13:::1;3491:1;19711:2;:13;:::i;:::-;19702:22;::::0;:6;:22:::1;:::i;:::-;19686:13;:38:::0;-1:-1:-1;19616:116:0:o;19744:130::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;19853:13:::1;3491:1;19853:2;:13;:::i;:::-;19844:22;::::0;:6;:22:::1;:::i;:::-;19823:18;:43:::0;-1:-1:-1;19744:130:0:o;9686:110::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9753:27:0::1;9783:5;9753:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9753:35:0::1;::::0;;9686:110::o;1826:192::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1915:22:0;::::1;1907:73;;;::::0;-1:-1:-1;;;1907:73:0;;11972:2:1;1907:73:0::1;::::0;::::1;11954:21:1::0;12011:2;11991:18;;;11984:30;12050:34;12030:18;;;12023:62;-1:-1:-1;;;12101:18:1;;;12094:36;12147:19;;1907:73:0::1;11770:402:1::0;1907:73:0::1;1991:19;2001:8;1991:9;:19::i;:::-;1826:192:::0;:::o;10221:292::-;1547:7;1574:6;-1:-1:-1;;;;;1574:6:0;1002:10;1636:23;1628:68;;;;-1:-1:-1;;;1628:68:0;;;;;;;:::i;:::-;10339:9:::1;:20:::0;;;10370:19;:32;;;10413:13;:20;;;10444:19;:32;;;10492:13:::1;::::0;::::1;::::0;10339::::1;::::0;10492::::1;10221:292:::0;;;;:::o;13927:335::-;-1:-1:-1;;;;;14020:19:0;;14012:68;;;;-1:-1:-1;;;14012:68:0;;12379:2:1;14012:68:0;;;12361:21:1;12418:2;12398:18;;;12391:30;12457:34;12437:18;;;12430:62;-1:-1:-1;;;12508:18:1;;;12501:34;12552:19;;14012:68:0;12177:400:1;14012:68:0;-1:-1:-1;;;;;14099:21:0;;14091:68;;;;-1:-1:-1;;;14091:68:0;;12784:2:1;14091:68:0;;;12766:21:1;12823:2;12803:18;;;12796:30;12862:34;12842:18;;;12835:62;-1:-1:-1;;;12913:18:1;;;12906:32;12955:19;;14091:68:0;12582:398:1;14091:68:0;-1:-1:-1;;;;;14170:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14222:32;;1410:25:1;;;14222:32:0;;1383:18:1;14222:32:0;;;;;;;13927:335;;;:::o;14270:1310::-;-1:-1:-1;;;;;14358:18:0;;14350:68;;;;-1:-1:-1;;;14350:68:0;;13187:2:1;14350:68:0;;;13169:21:1;13226:2;13206:18;;;13199:30;13265:34;13245:18;;;13238:62;-1:-1:-1;;;13316:18:1;;;13309:35;13361:19;;14350:68:0;12985:401:1;14350:68:0;-1:-1:-1;;;;;14437:16:0;;14429:64;;;;-1:-1:-1;;;14429:64:0;;13593:2:1;14429:64:0;;;13575:21:1;13632:2;13612:18;;;13605:30;13671:34;13651:18;;;13644:62;-1:-1:-1;;;13722:18:1;;;13715:33;13765:19;;14429:64:0;13391:399:1;14429:64:0;14521:1;14512:6;:10;14504:64;;;;-1:-1:-1;;;14504:64:0;;13997:2:1;14504:64:0;;;13979:21:1;14036:2;14016:18;;;14009:30;14075:34;14055:18;;;14048:62;-1:-1:-1;;;14126:18:1;;;14119:39;14175:19;;14504:64:0;13795:405:1;14504:64:0;14597:15;14607:4;14597:9;:15::i;:::-;14587:6;:25;;14579:86;;;;-1:-1:-1;;;14579:86:0;;14407:2:1;14579:86:0;;;14389:21:1;14446:2;14426:18;;;14419:30;14485:34;14465:18;;;14458:62;-1:-1:-1;;;14536:18:1;;;14529:47;14593:19;;14579:86:0;14205:413:1;14579:86:0;-1:-1:-1;;;;;14708:24:0;;;;;;:18;:24;;;;;;;;14707:25;:52;;;;-1:-1:-1;;;;;;14737:22:0;;;;;;:18;:22;;;;;;;;14736:23;14707:52;:65;;;;-1:-1:-1;14764:8:0;;;;;;;14763:9;14707:65;14704:493;;;14799:4;;-1:-1:-1;;;;;14791:12:0;;;14799:4;;14791:12;14788:116;;;14841:12;;14831:6;:22;;14823:65;;;;-1:-1:-1;;;14823:65:0;;14825:2:1;14823:65:0;;;14807:21:1;14864:2;14844:18;;;14837:30;14903:32;14883:18;;;14876:60;14953:18;;14823:65:0;14623:354:1;14823:65:0;14927:4;;-1:-1:-1;;;;;14921:10:0;;;14927:4;;14921:10;14918:116;;;14969:13;;14959:6;:23;;14951:67;;;;-1:-1:-1;;;14951:67:0;;15184:2:1;14951:67:0;;;15166:21:1;15223:2;15203:18;;;15196:30;15262:33;15242:18;;;15235:61;15313:18;;14951:67:0;14982:355:1;14951:67:0;15057:4;;-1:-1:-1;;;;;15051:10:0;;;15057:4;;15051:10;15048:138;;15115:16;;15105:6;15089:13;15099:2;15089:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;15081:89;;;;-1:-1:-1;;;15081:89:0;;15544:2:1;15081:89:0;;;15526:21:1;15583:2;15563:18;;;15556:30;15622:34;15602:18;;;15595:62;-1:-1:-1;;;15673:18:1;;;15666:32;15715:19;;15081:89:0;15342:398:1;15081:89:0;15217:12;15260:18;;15232:24;15250:4;15232:9;:24::i;:::-;15293:8;;-1:-1:-1;;15232:46:0;;-1:-1:-1;15293:8:0;;;;;15292:9;:24;;;;-1:-1:-1;15305:11:0;;;;15292:24;:35;;;;;15320:7;15292:35;:51;;;;-1:-1:-1;15339:4:0;;-1:-1:-1;;;;;15331:12:0;;;15339:4;;15331:12;;15292:51;:80;;;;-1:-1:-1;;;;;;15348:24:0;;;;;;:18;:24;;;;;;;;15347:25;15292:80;:107;;;;-1:-1:-1;;;;;;15377:22:0;;;;;;:18;:22;;;;;;;;15376:23;15292:107;15289:172;;;15415:34;15430:18;;15415:14;:34::i;:::-;-1:-1:-1;;;;;15508:24:0;;;;;;:18;:24;;;;;;15473:99;;15488:4;;15494:2;;15498:6;;15508:24;;;:50;;-1:-1:-1;;;;;;15536:22:0;;;;;;:18;:22;;;;;;;;15508:50;15567:4;;15506:53;;;-1:-1:-1;;;;;15561:10:0;;;15567:4;;15561:10;15473:14;:99::i;13213:158::-;13254:7;13275:15;13292;13311:19;:17;:19::i;:::-;13274:56;;-1:-1:-1;13274:56:0;-1:-1:-1;13348:15:0;13274:56;;13348:15;:::i;:::-;13341:22;;;;13213:158;:::o;11493:407::-;11579:36;;:::i;:::-;11640:37;11652:7;11661;11670:6;11640:11;:37::i;:::-;11628:49;;11813:52;11825:9;11836:7;11845;11854:10;:8;:10::i;:::-;11813:11;:52::i;:::-;11789:20;;;11688:177;11773:14;;;11688:177;11751:20;;;11688:177;11735:14;;;11688:177;11708:25;;;11688:177;;;11493:407;;;;;:::o;2026:173::-;2082:16;2101:6;;-1:-1:-1;;;;;2118:17:0;;;-1:-1:-1;;;;;;2118:17:0;;;;;;2151:40;;2101:6;;;;;;;2151:40;;2082:16;2151:40;2071:128;2026:173;:::o;16830:1194::-;5028:8;:15;;-1:-1:-1;;5028:15:0;;;;;17017:13;;16995:19;;16973;;5028:15;;17017:13;16973:41:::1;::::0;::::1;:::i;:::-;:57;;;;:::i;:::-;16972:63;::::0;17034:1:::1;16972:63;:::i;:::-;16950:85;;17046:32;17112:11;17090:9;:19;;;17081:6;:28;;;;:::i;:::-;:42;;;;:::i;:::-;17046:77:::0;-1:-1:-1;17134:14:0::1;17151:33;17046:77:::0;17151:6;:33:::1;:::i;:::-;17134:50:::0;-1:-1:-1;17222:21:0::1;17256:24;17134:50:::0;17256:16:::1;:24::i;:::-;17293:20;17316:38;17340:14:::0;17316:21:::1;:38;:::i;:::-;17416:19:::0;;17293:61;;-1:-1:-1;17365:19:0::1;::::0;17402:33:::1;::::0;:11;:33:::1;:::i;:::-;17386:50;::::0;:12;:50:::1;:::i;:::-;17493:19:::0;;17365:71;;-1:-1:-1;17447:29:0::1;::::0;17479:33:::1;::::0;17365:71;17479:33:::1;:::i;:::-;17447:65:::0;-1:-1:-1;17528:25:0;;17525:158:::1;;17610:61;17623:24;17649:21;17610:12;:61::i;:::-;17736:19:::0;;17695:20:::1;::::0;17718:15:::1;:11:::0;17736:19:::1;17718:15;:::i;:::-;:37;;;;:::i;:::-;17695:60:::0;-1:-1:-1;17769:16:0;;17766:95:::1;;17809:16;::::0;17801:48:::1;::::0;-1:-1:-1;;;;;17809:16:0;;::::1;::::0;17801:48;::::1;;;::::0;17836:12;;17809:16:::1;17801:48:::0;17809:16;17801:48;17836:12;17809:16;17801:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17766:95;17916:13:::0;;17881:14:::1;::::0;17898:15:::1;:11:::0;17912:1:::1;17898:15;:::i;:::-;:31;;;;:::i;:::-;17881:48:::0;-1:-1:-1;17943:10:0;;17940:77:::1;;17977:10;::::0;17969:36:::1;::::0;-1:-1:-1;;;;;17977:10:0;;::::1;::::0;17969:36;::::1;;;::::0;17998:6;;17977:10:::1;17969:36:::0;17977:10;17969:36;17998:6;17977:10;17969:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17940:77;-1:-1:-1::0;;5066:8:0;:16;;-1:-1:-1;;5066:16:0;;;-1:-1:-1;;;;;;;;16830:1194:0:o;15663:1159::-;15785:28;15816:36;15827:7;15836;15845:6;15816:10;:36::i;:::-;-1:-1:-1;;;;;15869:19:0;;;;;;:11;:19;;;;;;15785:67;;-1:-1:-1;15869:19:0;;15865:115;;;-1:-1:-1;;;;;15945:15:0;;;;;;:7;:15;;;;;;:23;;15961:7;;15945:23;:::i;:::-;-1:-1:-1;;;;;15927:15:0;;;;;;:7;:15;;;;;:41;15865:115;-1:-1:-1;;;;;15994:22:0;;;;;;:11;:22;;;;;;;;15990:130;;;16091:17;;;;-1:-1:-1;;;;;16072:18:0;;;;;;:7;:18;;;;;;:36;;16091:17;16072:36;:::i;:::-;-1:-1:-1;;;;;16051:18:0;;;;;;:7;:18;;;;;:57;15990:130;16166:9;;-1:-1:-1;;;;;16150:15:0;;16166:9;16150:15;;;:7;:15;;;;;;:25;;16166:9;16150:25;:::i;:::-;-1:-1:-1;;;;;16132:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;16226:17;;;16207:18;;;;;;;;;;:36;;16226:17;16207:36;:::i;:::-;-1:-1:-1;;;;;16186:18:0;;;;;;:7;:18;;;;;;;:57;;;;16267:6;;;:10;;;:24;;;16290:1;16281;:6;;;:10;16267:24;16264:56;;;16293:27;16305:1;:6;;;16313:1;:6;;;16293:11;:27::i;:::-;16349:1;16334;:12;;;:16;:36;;;;16369:1;16354;:12;;;:16;16334:36;16331:109;;;16387:41;16402:1;:12;;;16415:1;:12;;;16387:14;:41::i;:::-;16468:1;16453;:12;;;:16;:36;;;;16488:1;16473;:12;;;:16;16453:36;16450:109;;;16505:42;16520:1;:12;;;16534:1;:12;;;16505:14;:42::i;:::-;16581:1;16572;:6;;;:10;:24;;;;16595:1;16586;:6;;;:10;16572:24;16569:79;;;16612:24;16621:1;:6;;;16629:1;:6;;;16612:8;:24::i;:::-;16690:9;-1:-1:-1;;;;;16673:46:0;16682:6;-1:-1:-1;;;;;16673:46:0;;16701:1;:17;;;16673:46;;;;1410:25:1;;1398:2;1383:18;;1264:177;16673:46:0;;;;;;;;16760:4;-1:-1:-1;;;;;16735:69:0;16744:6;-1:-1:-1;;;;;16735:69:0;;16791:1;:12;;;16782:1;:6;;;16767:1;:12;;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;16735:69;;1410:25:1;;;1398:2;1383:18;16735:69:0;;;;;;;15774:1048;15663:1159;;;;;:::o;13379:540::-;13476:7;;13512;;13429;;;;;13530:279;13554:9;:16;13550:20;;13530:279;;;13620:7;13596;:21;13604:9;13614:1;13604:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13604:12:0;13596:21;;;;;;;;;;;;;:31;;:66;;;13655:7;13631;:21;13639:9;13649:1;13639:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13639:12:0;13631:21;;;;;;;;;;;;;:31;13596:66;13592:97;;;13672:7;;13681;;13664:25;;;;;;;13379:540;;:::o;13592:97::-;13722:7;:21;13730:9;13740:1;13730:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13730:12:0;13722:21;;;;;;;;;;;;;13714:29;;:7;:29;:::i;:::-;13704:39;;13776:7;:21;13784:9;13794:1;13784:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13784:12:0;13776:21;;;;;;;;;;;;;13768:29;;:7;:29;:::i;:::-;13758:39;-1:-1:-1;13572:3:0;;;;:::i;:::-;;;;13530:279;;;;13841:7;;13833;;:15;;;;:::i;:::-;13823:7;:25;13819:56;;;13858:7;;13867;;13850:25;;;;;;13379:540;;:::o;13819:56::-;13894:7;;13903;;-1:-1:-1;13379:540:0;-1:-1:-1;13379:540:0:o;11908:608::-;11995:28;;:::i;:::-;12042:7;12038:86;;12064:17;;;:27;;;12104:8;;12038:86;12134:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:17:0;12165:6;12162:55;;;-1:-1:-1;12173:16:0;;;;;;;;12180:9;12173:16;;;;;;;;;;;;;;;;;;;;;;;;12162:55;;;-1:-1:-1;12205:12:0;;;;;;;;12212:5;12205:12;;;;;;;;;;;;;;;;;;;;;;;;12162:55;12255:8;;12264:3;;12247:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12238:6;;;:29;12301:14;;;;12316:3;;12293:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12278:12;;;:41;12353:14;;;;12368:3;;12345:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12330:12;;;:41;12399:8;;;;12408:3;;12391:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12382:6;;;:29;;;12477:12;;;;12457;;;;12450:6;;;;12477:12;;12382:29;12442:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;12422:17;;;:67;-1:-1:-1;11908:608:0;;;;;:::o;12524:681::-;12649:15;;;;;;12779:19;12787:11;12779:7;:19;:::i;:::-;12769:29;;12815:7;12811:71;;-1:-1:-1;12844:7:0;;-1:-1:-1;12862:1:0;;-1:-1:-1;12862:1:0;;-1:-1:-1;12862:1:0;;-1:-1:-1;12862:1:0;12837:33;;12811:71;12908:11;12901:1;:6;;;:18;;;;:::i;:::-;12894:25;;12956:11;12943:1;:12;;;:24;;;;:::i;:::-;12930:37;;12992:11;12985:1;:6;;;:18;;;;:::i;:::-;12978:25;;13040:11;13027:1;:12;;;:24;;;;:::i;:::-;13014:37;-1:-1:-1;13014:37:0;13105:4;13094:10;13081:12;13089:4;13081:7;:12;:::i;:::-;:23;;;;:::i;:::-;:28;;;;:::i;:::-;:39;;;;:::i;:::-;13062:58;;12524:681;;;;;;;;;;;;:::o;18538:562::-;18688:16;;;18702:1;18688:16;;;;;;;;18664:21;;18688:16;;;;;;;;;;-1:-1:-1;18688:16:0;18664:40;;18733:4;18715;18720:1;18715:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18715:23:0;;;-1:-1:-1;;;;;18715:23:0;;;;;18759:6;;;;;;;;;-1:-1:-1;;;;;18759:6:0;-1:-1:-1;;;;;18759:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18749:4;18754:1;18749:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18749:23:0;;;:7;;;;;;;;;:23;18817:6;;18785:53;;18802:4;;18817:6;;;;18826:11;18785:8;:53::i;:::-;18877:6;;:215;;-1:-1:-1;;;18877:215:0;;:6;;;;-1:-1:-1;;;;;18877:6:0;;:57;;:215;;18949:11;;18975:1;;19019:4;;19046;;19066:15;;18877:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18593:507;18538:562;:::o;18032:498::-;18212:6;;18180:53;;18197:4;;18212:6;;;-1:-1:-1;;;;;18212:6:0;18221:11;18180:8;:53::i;:::-;18276:6;;:246;;-1:-1:-1;;;18276:246:0;;18339:4;18276:246;;;17459:34:1;17509:18;;;17502:34;;;18385:1:0;17552:18:1;;;17545:34;;;17595:18;;;17588:34;;;17638:19;;;17631:44;18496:15:0;17691:19:1;;;17684:35;18276:6:0;;;;-1:-1:-1;;;;;18276:6:0;;:22;;18306:9;;17393:19:1;;18276:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18032:498;;:::o;10521:123::-;10599:4;10589:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10614:11:0;:22;;10632:4;;10614:11;:15;;:22;;10632:4;;10614:22;:::i;:::-;;;;-1:-1:-1;;;;10521:123:0:o;10652:284::-;10759:10;10735:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10805:4:0;10785:26;;;;:11;:26;;;;;;;;10782:101;;;10853:4;10837:22;;;;:7;:22;;;;;:34;;10861:10;;10837:22;:34;;10861:10;;10837:34;:::i;:::-;;;;-1:-1:-1;;10782:101:0;10909:4;10893:22;;;;:7;:22;;;;;:35;;10918:10;;10893:22;:35;;10918:10;;10893:35;:::i;10944:284::-;11051:10;11027:11;:21;;;:34;;;;;;;:::i;11240:245::-;11324:4;11305:11;:15;;;:23;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:247::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;1613:9;1600:23;1632:31;1657:5;1632:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;2091:456::-;2168:6;2176;2184;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;2292:9;2279:23;2311:31;2336:5;2311:31;:::i;:::-;2361:5;-1:-1:-1;2418:2:1;2403:18;;2390:32;2431:33;2390:32;2431:33;:::i;:::-;2091:456;;2483:7;;-1:-1:-1;;;2537:2:1;2522:18;;;;2509:32;;2091:456::o;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:444;2935:6;2943;2951;3004:2;2992:9;2983:7;2979:23;2975:32;2972:52;;;3020:1;3017;3010:12;2972:52;3056:9;3043:23;3033:33;;3116:2;3105:9;3101:18;3088:32;3129:28;3151:5;3129:28;:::i;:::-;3176:5;-1:-1:-1;3233:2:1;3218:18;;3205:32;3246:30;3205:32;3246:30;:::i;:::-;3295:7;3285:17;;;2864:444;;;;;:::o;3313:388::-;3381:6;3389;3442:2;3430:9;3421:7;3417:23;3413:32;3410:52;;;3458:1;3455;3448:12;3410:52;3497:9;3484:23;3516:31;3541:5;3516:31;:::i;:::-;3566:5;-1:-1:-1;3623:2:1;3608:18;;3595:32;3636:33;3595:32;3636:33;:::i;:::-;3688:7;3678:17;;;3313:388;;;;;:::o;4102:241::-;4158:6;4211:2;4199:9;4190:7;4186:23;4182:32;4179:52;;;4227:1;4224;4217:12;4179:52;4266:9;4253:23;4285:28;4307:5;4285:28;:::i;4348:385::-;4434:6;4442;4450;4458;4511:3;4499:9;4490:7;4486:23;4482:33;4479:53;;;4528:1;4525;4518:12;4479:53;-1:-1:-1;;4551:23:1;;;4621:2;4606:18;;4593:32;;-1:-1:-1;4672:2:1;4657:18;;4644:32;;4723:2;4708:18;4695:32;;-1:-1:-1;4348:385:1;-1:-1:-1;4348:385:1:o;4961:356::-;5163:2;5145:21;;;5182:18;;;5175:30;5241:34;5236:2;5221:18;;5214:62;5308:2;5293:18;;4961:356::o;5322:127::-;5383:10;5378:3;5374:20;5371:1;5364:31;5414:4;5411:1;5404:15;5438:4;5435:1;5428:15;5454:422;5543:1;5586:5;5543:1;5600:270;5621:7;5611:8;5608:21;5600:270;;;5680:4;5676:1;5672:6;5668:17;5662:4;5659:27;5656:53;;;5689:18;;:::i;:::-;5739:7;5729:8;5725:22;5722:55;;;5759:16;;;;5722:55;5838:22;;;;5798:15;;;;5600:270;;;5604:3;5454:422;;;;;:::o;5881:806::-;5930:5;5960:8;5950:80;;-1:-1:-1;6001:1:1;6015:5;;5950:80;6049:4;6039:76;;-1:-1:-1;6086:1:1;6100:5;;6039:76;6131:4;6149:1;6144:59;;;;6217:1;6212:130;;;;6124:218;;6144:59;6174:1;6165:10;;6188:5;;;6212:130;6249:3;6239:8;6236:17;6233:43;;;6256:18;;:::i;:::-;-1:-1:-1;;6312:1:1;6298:16;;6327:5;;6124:218;;6426:2;6416:8;6413:16;6407:3;6401:4;6398:13;6394:36;6388:2;6378:8;6375:16;6370:2;6364:4;6361:12;6357:35;6354:77;6351:159;;;-1:-1:-1;6463:19:1;;;6495:5;;6351:159;6542:34;6567:8;6561:4;6542:34;:::i;:::-;6612:6;6608:1;6604:6;6600:19;6591:7;6588:32;6585:58;;;6623:18;;:::i;:::-;6661:20;;5881:806;-1:-1:-1;;;5881:806:1:o;6692:140::-;6750:5;6779:47;6820:4;6810:8;6806:19;6800:4;6779:47;:::i;6837:168::-;6877:7;6943:1;6939;6935:6;6931:14;6928:1;6925:21;6920:1;6913:9;6906:17;6902:45;6899:71;;;6950:18;;:::i;:::-;-1:-1:-1;6990:9:1;;6837:168::o;7419:125::-;7459:4;7487:1;7484;7481:8;7478:34;;;7492:18;;:::i;:::-;-1:-1:-1;7529:9:1;;7419:125::o;7960:217::-;8000:1;8026;8016:132;;8070:10;8065:3;8061:20;8058:1;8051:31;8105:4;8102:1;8095:15;8133:4;8130:1;8123:15;8016:132;-1:-1:-1;8162:9:1;;7960:217::o;8534:127::-;8595:10;8590:3;8586:20;8583:1;8576:31;8626:4;8623:1;8616:15;8650:4;8647:1;8640:15;8666:127;8727:10;8722:3;8718:20;8715:1;8708:31;8758:4;8755:1;8748:15;8782:4;8779:1;8772:15;8798:135;8837:3;-1:-1:-1;;8858:17:1;;8855:43;;;8878:18;;:::i;:::-;-1:-1:-1;8925:1:1;8914:13;;8798:135::o;8938:128::-;8978:3;9009:1;9005:6;9002:1;8999:13;8996:39;;;9015:18;;:::i;:::-;-1:-1:-1;9051:9:1;;8938:128::o;10758:245::-;10825:6;10878:2;10866:9;10857:7;10853:23;10849:32;10846:52;;;10894:1;10891;10884:12;10846:52;10926:9;10920:16;10945:28;10967:5;10945:28;:::i;15877:251::-;15947:6;16000:2;15988:9;15979:7;15975:23;15971:32;15968:52;;;16016:1;16013;16006:12;15968:52;16048:9;16042:16;16067:31;16092:5;16067:31;:::i;16133:980::-;16395:4;16443:3;16432:9;16428:19;16474:6;16463:9;16456:25;16500:2;16538:6;16533:2;16522:9;16518:18;16511:34;16581:3;16576:2;16565:9;16561:18;16554:31;16605:6;16640;16634:13;16671:6;16663;16656:22;16709:3;16698:9;16694:19;16687:26;;16748:2;16740:6;16736:15;16722:29;;16769:1;16779:195;16793:6;16790:1;16787:13;16779:195;;;16858:13;;-1:-1:-1;;;;;16854:39:1;16842:52;;16949:15;;;;16914:12;;;;16890:1;16808:9;16779:195;;;-1:-1:-1;;;;;;;17030:32:1;;;;17025:2;17010:18;;17003:60;-1:-1:-1;;;17094:3:1;17079:19;17072:35;16991:3;16133:980;-1:-1:-1;;;16133:980:1:o;17730:306::-;17818:6;17826;17834;17887:2;17875:9;17866:7;17862:23;17858:32;17855:52;;;17903:1;17900;17893:12;17855:52;17932:9;17926:16;17916:26;;17982:2;17971:9;17967:18;17961:25;17951:35;;18026:2;18015:9;18011:18;18005:25;17995:35;;17730:306;;;;;:::o

Swarm Source

ipfs://15ccc449b49025df03fee213e3fc6247a4a4e427b64d18f24ae4389542037d8b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.