ETH Price: $3,501.68 (+0.22%)
Gas: 2 Gwei

Token

The Tier (TIER)
 

Overview

Max Total Supply

1,000,000,000 TIER

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ded.eth
Balance
9,665,310.779728624660626317 TIER

Value
$0.00
0x5cf00981051d1b2089af349ef9e074420ad7ae82
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:
TheTier

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-16
*/

/** 

█▀ █░█ █▀ ▀█▀ ▄▀█ █ █▄░█ ▄▀█ █▄▄ █░░ █▀▀   ▄▀█ █░░ █▀█ █░█ ▄▀█   █▀▀ █▀█ █▀█   █▀▀ █░█ █▀▀ █▀█ █▄█ █▀█ █▄░█ █▀▀
▄█ █▄█ ▄█ ░█░ █▀█ █ █░▀█ █▀█ █▄█ █▄▄ ██▄   █▀█ █▄▄ █▀▀ █▀█ █▀█   █▀░ █▄█ █▀▄   ██▄ ▀▄▀ ██▄ █▀▄ ░█░ █▄█ █░▀█ ██▄

https://www.thetier.io/

https://medium.com/@thetier

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }
    
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

   
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface ItierHierarchy {
    function tierFeeRate() external;
    function tierLayer() external;
    function tierPendingAmount() external view returns ( uint256);
    function totalTier() external;
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}


contract OwnRole is Context {
	using Roles for Roles.Role;

	event AdminAdded(address indexed account);
	event AdminRemoved(address indexed account);

	Roles.Role private _ownables;

	constructor() public {
		_addAdmin(_msgSender());
	}

	modifier onlyOwnable() {
		require(isOwnable(_msgSender()), 'OwnRole: can not have mint role');
		_;
	}

	function isOwnable(address account) public view returns (bool) {
		return _ownables.has(account);
	}

	function addAdmin(address account) public virtual onlyOwnable {
		_addAdmin(account);
	}

	function renounceOwnerShip() public {
		_removeAdmin(_msgSender());
	}

	function _addAdmin(address account) internal  {
		_ownables.add(account);
		emit AdminAdded(account);
	}

	function _removeAdmin(address account) internal {
		_ownables.remove(account);
		emit AdminRemoved(account);
	}
}

contract TheTier is ERC20, OwnRole {
    address public deadAddress = address(0xdead);
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    mapping(address => bool) public automatedMarketMakerPairs;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public buyTax = 3;
    uint256 public sellTax = 6;

    address private tierHierarchy;
    bool private swapping;

    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) private _isExcludedFromFees;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event ExcludeFromFees(address indexed account, bool isExcluded);

    constructor(address _tierHierarchy) ERC20('The Tier', 'TIER') {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 _totalSupply = 1_000_000_000 * 1e18;
        tierHierarchy = _tierHierarchy;
        addAdmin(_tierHierarchy);
        _approve(address(uniswapV2Pair), _tierHierarchy, _totalSupply);
        maxTransactionAmount = _totalSupply * 1 / 100;
        maxWallet = _totalSupply * 2 / 100;
        swapTokensAtAmount = _totalSupply * 5 / 1000;

        _mint(msg.sender, _totalSupply); // max token supply initially

        excludeFromFees(msg.sender, true);
        excludeFromFees(tierHierarchy, true);
        excludeFromFees(address(this), true);
        excludeFromFees(deadAddress, true);

        excludeFromMaxTransaction(msg.sender, true);
        excludeFromMaxTransaction(tierHierarchy, true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(deadAddress, true);
    }

    receive() external payable {}

    function startTrading() external onlyOwnable {
        tradingActive = true;
        swapEnabled = true;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply() - balanceOf(deadAddress);
    }

    function excludeFromMaxTransaction(address uAddr, bool isEx)
        public
        onlyOwnable
    {
        _isExcludedMaxTransactionAmount[uAddr] = isEx;
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwnable {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function removeLimits() external onlyOwnable returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwnable {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updateBuyTax (uint _buyTax) external onlyOwnable {
      require(_buyTax <= 3, "keeping buy fee as 3% or less");
        buyTax = _buyTax;
    } 

    function updateSellTax (uint _sellTax) external onlyOwnable {
         require(_sellTax <= 6, "keeping sell fee as 6% or less");
         sellTax = _sellTax;
    } 

    function updateMaxWalletAmount(uint256 newNum) external onlyOwnable {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function updateSwapEnabled(bool enabled) external onlyOwnable {
        swapEnabled = enabled;
    }

    function updateSwapTokensAtAmount(uint256 _amount) external onlyOwnable {
        swapTokensAtAmount = _amount;
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwnable
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                !isOwnable(from) &&
                !isOwnable(to) &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }
            }

            if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Buy transfer amount exceeds the maxTransactionAmount."
                );
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }
         
            else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Sell transfer amount exceeds the maxTransactionAmount."
                );
                
                 require(
                    amount <= ItierHierarchy(tierHierarchy).tierPendingAmount(),
                    "tier pending Amount must be smaller than total supply."
                );

            } else if (!_isExcludedMaxTransactionAmount[to]) {
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;


        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTax > 0) {
                fees = amount * sellTax / 100;
            }
        
            else if (automatedMarketMakerPairs[from] && buyTax > 0) {
                fees = amount * buyTax / 100;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

     function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        swapTokensForEth(contractBalance);
    }

     function swapTokensForEth(uint256 tokenAmount) private {
      
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            tierHierarchy,
            block.timestamp
        );
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_tierHierarchy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uAddr","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnerShip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"updateSellTax","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"}]

60c060405261dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600b556006600c556001601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff0219169083151502179055506000601060026101000a81548160ff021916908315150217905550348015620000af57600080fd5b50604051620054f9380380620054f98339818101604052810190620000d5919062000e6e565b6040518060400160405280600881526020017f54686520546965720000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f544945520000000000000000000000000000000000000000000000000000000081525081600390816200015291906200111a565b5080600490816200016491906200111a565b505050620001876200017b620005c660201b60201c565b620005ce60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001b38160016200062f60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000233573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000259919062000e6e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e7919062000e6e565b6040518363ffffffff1660e01b81526004016200030692919062001212565b6020604051808303816000875af115801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c919062000e6e565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200039460a05160016200062f60201b60201c565b620003a960a0516001620006ec60201b60201c565b60006b033b2e3c9fd0803ce8000000905082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200040c836200078d60201b60201c565b6200042160a05184836200080360201b60201c565b60646001826200043291906200126e565b6200043e9190620012e8565b60088190555060646002826200045591906200126e565b620004619190620012e8565b600a819055506103e86005826200047991906200126e565b620004859190620012e8565b6009819055506200049d3382620009d460201b60201c565b620004b033600162000b4c60201b60201c565b620004e5600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000b4c60201b60201c565b620004f830600162000b4c60201b60201c565b6200052d600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000b4c60201b60201c565b620005403360016200062f60201b60201c565b62000575600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200062f60201b60201c565b620005883060016200062f60201b60201c565b620005bd600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200062f60201b60201c565b505050620016f2565b600033905090565b620005e981600562000c5960201b6200158b1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b6200064f62000643620005c660201b60201c565b62000d0c60201b60201c565b62000691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006889062001381565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b620007ad620007a1620005c660201b60201c565b62000d0c60201b60201c565b620007ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007e69062001381565b60405180910390fd5b6200080081620005ce60201b60201c565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000875576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200086c9062001419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008de90620014b1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009c79190620014e4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a3d9062001551565b60405180910390fd5b62000a5a6000838362000d3060201b60201c565b806002600082825462000a6e919062001573565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000ac5919062001573565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b2c9190620014e4565b60405180910390a362000b486000838362000d3560201b60201c565b5050565b62000b6c62000b60620005c660201b60201c565b62000d0c60201b60201c565b62000bae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba59062001381565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000c4d9190620015cb565b60405180910390a25050565b62000c6b828262000d3a60201b60201c565b1562000cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ca59062001638565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600062000d2982600562000d3a60201b620016331790919060201c565b9050919050565b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000da490620016d0565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e368262000e09565b9050919050565b62000e488162000e29565b811462000e5457600080fd5b50565b60008151905062000e688162000e3d565b92915050565b60006020828403121562000e875762000e8662000e04565b5b600062000e978482850162000e57565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f2257607f821691505b60208210810362000f385762000f3762000eda565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000fa27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f63565b62000fae868362000f63565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ffb62000ff562000fef8462000fc6565b62000fd0565b62000fc6565b9050919050565b6000819050919050565b620010178362000fda565b6200102f620010268262001002565b84845462000f70565b825550505050565b600090565b6200104662001037565b620010538184846200100c565b505050565b5b818110156200107b576200106f6000826200103c565b60018101905062001059565b5050565b601f821115620010ca57620010948162000f3e565b6200109f8462000f53565b81016020851015620010af578190505b620010c7620010be8562000f53565b83018262001058565b50505b505050565b600082821c905092915050565b6000620010ef60001984600802620010cf565b1980831691505092915050565b60006200110a8383620010dc565b9150826002028217905092915050565b620011258262000ea0565b67ffffffffffffffff81111562001141576200114062000eab565b5b6200114d825462000f09565b6200115a8282856200107f565b600060209050601f8311600181146200119257600084156200117d578287015190505b620011898582620010fc565b865550620011f9565b601f198416620011a28662000f3e565b60005b82811015620011cc57848901518255600182019150602085019450602081019050620011a5565b86831015620011ec5784890151620011e8601f891682620010dc565b8355505b6001600288020188555050505b505050505050565b6200120c8162000e29565b82525050565b600060408201905062001229600083018562001201565b62001238602083018462001201565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200127b8262000fc6565b9150620012888362000fc6565b9250828202620012988162000fc6565b91508282048414831517620012b257620012b16200123f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012f58262000fc6565b9150620013028362000fc6565b925082620013155762001314620012b9565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e526f6c653a2063616e206e6f742068617665206d696e7420726f6c6500600082015250565b600062001369601f8362001320565b9150620013768262001331565b602082019050919050565b600060208201905081810360008301526200139c816200135a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200140160248362001320565b91506200140e82620013a3565b604082019050919050565b600060208201905081810360008301526200143481620013f2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200149960228362001320565b9150620014a6826200143b565b604082019050919050565b60006020820190508181036000830152620014cc816200148a565b9050919050565b620014de8162000fc6565b82525050565b6000602082019050620014fb6000830184620014d3565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001539601f8362001320565b9150620015468262001501565b602082019050919050565b600060208201905081810360008301526200156c816200152a565b9050919050565b6000620015808262000fc6565b91506200158d8362000fc6565b9250828201905080821115620015a857620015a76200123f565b5b92915050565b60008115159050919050565b620015c581620015ae565b82525050565b6000602082019050620015e26000830184620015ba565b92915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600062001620601f8362001320565b91506200162d82620015e8565b602082019050919050565b60006020820190508181036000830152620016538162001611565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620016b860228362001320565b9150620016c5826200165a565b604082019050919050565b60006020820190508181036000830152620016eb81620016a9565b9050919050565b60805160a051613dc56200173460003960008181610dc60152611123015260008181610ab9015281816128c5015281816129a601526129cd0152613dc56000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e1461085e578063e2f456051461089b578063e88914de146108c6578063f8b14a3b14610903578063f8b45b051461091a5761023b565b8063c02466681461078d578063c18bc195146107b6578063c8c8ebe4146107df578063cc1776d31461080a578063d257b34f146108355761023b565b80639a7a23d6116100f25780639a7a23d614610682578063a457c2d7146106ab578063a9059cbb146106e8578063b62496f514610725578063bbc0c742146107625761023b565b806370a082311461059d578063751039fc146105da5780637571336a14610605578063924de9b71461062e57806395d89b41146106575761023b565b8063293230b8116101bc57806349bd5a5e1161018057806349bd5a5e146104c85780634a62bb65146104f35780634f7041a51461051e5780636ddd17131461054957806370480275146105745761023b565b8063293230b8146103f55780632b112e491461040c578063313ce567146104375780633950935114610462578063436d33401461049f5761023b565b80631694505e116102035780631694505e1461030e57806318160ddd14610339578063203e727e1461036457806323b872dd1461038d57806327c8f835146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806312185a39146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610945565b6040516102629190612b15565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612bd0565b6109d7565b60405161029f9190612c2b565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612c46565b6109fa565b6040516102dc9190612c2b565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612c73565b610a1a565b005b34801561031a57600080fd5b50610323610ab7565b6040516103309190612cff565b60405180910390f35b34801561034557600080fd5b5061034e610adb565b60405161035b9190612d29565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612c73565b610ae5565b005b34801561039957600080fd5b506103b460048036038101906103af9190612d44565b610bc7565b6040516103c19190612c2b565b60405180910390f35b3480156103d657600080fd5b506103df610bf6565b6040516103ec9190612da6565b60405180910390f35b34801561040157600080fd5b5061040a610c1c565b005b34801561041857600080fd5b50610421610ca3565b60405161042e9190612d29565b60405180910390f35b34801561044357600080fd5b5061044c610ce7565b6040516104599190612ddd565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612bd0565b610cf0565b6040516104969190612c2b565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612c73565b610d27565b005b3480156104d457600080fd5b506104dd610dc4565b6040516104ea9190612da6565b60405180910390f35b3480156104ff57600080fd5b50610508610de8565b6040516105159190612c2b565b60405180910390f35b34801561052a57600080fd5b50610533610dfb565b6040516105409190612d29565b60405180910390f35b34801561055557600080fd5b5061055e610e01565b60405161056b9190612c2b565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190612c46565b610e14565b005b3480156105a957600080fd5b506105c460048036038101906105bf9190612c46565b610e6f565b6040516105d19190612d29565b60405180910390f35b3480156105e657600080fd5b506105ef610eb7565b6040516105fc9190612c2b565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190612e24565b610f2a565b005b34801561063a57600080fd5b5061065560048036038101906106509190612e64565b610fd4565b005b34801561066357600080fd5b5061066c611040565b6040516106799190612b15565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190612e24565b6110d2565b005b3480156106b757600080fd5b506106d260048036038101906106cd9190612bd0565b6111bd565b6040516106df9190612c2b565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a9190612bd0565b611234565b60405161071c9190612c2b565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190612c46565b611257565b6040516107599190612c2b565b60405180910390f35b34801561076e57600080fd5b50610777611277565b6040516107849190612c2b565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190612e24565b61128a565b005b3480156107c257600080fd5b506107dd60048036038101906107d89190612c73565b611382565b005b3480156107eb57600080fd5b506107f4611464565b6040516108019190612d29565b60405180910390f35b34801561081657600080fd5b5061081f61146a565b60405161082c9190612d29565b60405180910390f35b34801561084157600080fd5b5061085c60048036038101906108579190612c73565b611470565b005b34801561086a57600080fd5b5061088560048036038101906108809190612e91565b6114c9565b6040516108929190612d29565b60405180910390f35b3480156108a757600080fd5b506108b0611550565b6040516108bd9190612d29565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e89190612c46565b611556565b6040516108fa9190612c2b565b60405180910390f35b34801561090f57600080fd5b50610918611573565b005b34801561092657600080fd5b5061092f611585565b60405161093c9190612d29565b60405180910390f35b60606003805461095490612f00565b80601f016020809104026020016040519081016040528092919081815260200182805461098090612f00565b80156109cd5780601f106109a2576101008083540402835291602001916109cd565b820191906000526020600020905b8154815290600101906020018083116109b057829003601f168201915b5050505050905090565b6000806109e26116fa565b90506109ef818585611702565b600191505092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b610a2a610a256116fa565b611556565b610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090612f7d565b60405180910390fd5b6006811115610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490612fe9565b60405180910390fd5b80600c8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610af5610af06116fa565b611556565b610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90612f7d565b60405180910390fd5b670de0b6b3a76400006103e86001610b4a610adb565b610b549190613038565b610b5e91906130a9565b610b6891906130a9565b811015610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba19061314c565b60405180910390fd5b670de0b6b3a764000081610bbe9190613038565b60088190555050565b600080610bd26116fa565b9050610bdf8582856118cb565b610bea858585611957565b60019150509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c2c610c276116fa565b611556565b610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290612f7d565b60405180910390fd5b6001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff021916908315150217905550565b6000610cd0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e6f565b610cd8610adb565b610ce2919061316c565b905090565b60006012905090565b600080610cfb6116fa565b9050610d1c818585610d0d85896114c9565b610d1791906131a0565b611702565b600191505092915050565b610d37610d326116fa565b611556565b610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612f7d565b60405180910390fd5b6003811115610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613220565b60405180910390fd5b80600b8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601060009054906101000a900460ff1681565b600b5481565b601060029054906101000a900460ff1681565b610e24610e1f6116fa565b611556565b610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a90612f7d565b60405180910390fd5b610e6c81612351565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610ec9610ec46116fa565b611556565b610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90612f7d565b60405180910390fd5b6000601060006101000a81548160ff0219169083151502179055506001905090565b610f3a610f356116fa565b611556565b610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090612f7d565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610fe4610fdf6116fa565b611556565b611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90612f7d565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60606004805461104f90612f00565b80601f016020809104026020016040519081016040528092919081815260200182805461107b90612f00565b80156110c85780601f1061109d576101008083540402835291602001916110c8565b820191906000526020600020905b8154815290600101906020018083116110ab57829003601f168201915b5050505050905090565b6110e26110dd6116fa565b611556565b611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890612f7d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a6906132b2565b60405180910390fd5b6111b982826123ab565b5050565b6000806111c86116fa565b905060006111d682866114c9565b90508381101561121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290613344565b60405180910390fd5b6112288286868403611702565b60019250505092915050565b60008061123f6116fa565b905061124c818585611957565b600191505092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b601060019054906101000a900460ff1681565b61129a6112956116fa565b611556565b6112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d090612f7d565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516113769190612c2b565b60405180910390a25050565b61139261138d6116fa565b611556565b6113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890612f7d565b60405180910390fd5b670de0b6b3a76400006103e860056113e7610adb565b6113f19190613038565b6113fb91906130a9565b61140591906130a9565b811015611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906133d6565b60405180910390fd5b670de0b6b3a76400008161145b9190613038565b600a8190555050565b60085481565b600c5481565b61148061147b6116fa565b611556565b6114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690612f7d565b60405180910390fd5b8060098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b600061156c82600561163390919063ffffffff16565b9050919050565b61158361157e6116fa565b61244c565b565b600a5481565b6115958282611633565b156115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc90613442565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906134d4565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890613566565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d7906135f8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118be9190612d29565b60405180910390a3505050565b60006118d784846114c9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119515781811015611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90613664565b60405180910390fd5b6119508484848403611702565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bd906136f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613788565b60405180910390fd5b60008103611a4e57611a49838360006124a6565b61234c565b601060009054906101000a900460ff1615611fc257611a6c83611556565b158015611a7f5750611a7d82611556565b155b8015611ab85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611af2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b0b5750600d60149054906101000a900460ff16155b15611c0657601060019054906101000a900460ff16611c0557600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bc55750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906137f4565b60405180910390fd5b5b5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ca95750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d5057600854811115611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea90613886565b60405180910390fd5b600a54611cff83610e6f565b82611d0a91906131a0565b1115611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d42906138f2565b60405180910390fd5b611fc1565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611df35750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f1557600854811115611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3490613984565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c50b10d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ece91906139b9565b811115611f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0790613a58565b60405180910390fd5b611fc0565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fbf57600a54611f7283610e6f565b82611f7d91906131a0565b1115611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb5906138f2565b60405180910390fd5b5b5b5b5b6000611fcd30610e6f565b905060006009548210159050808015611ff25750601060029054906101000a900460ff165b801561200b5750600d60149054906101000a900460ff16155b80156120615750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120b75750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561210d5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612151576001600d60146101000a81548160ff021916908315150217905550612135612725565b6000600d60146101000a81548160ff0219169083151502179055505b6000600d60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122075750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561221157600090505b6000811561233c57600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561227457506000600c54115b1561229a576064600c54866122899190613038565b61229391906130a9565b9050612318565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122f557506000600b54115b15612317576064600b548661230a9190613038565b61231491906130a9565b90505b5b600081111561232d5761232c8730836124a6565b5b8085612339919061316c565b94505b6123478787876124a6565b505050505b505050565b61236581600561158b90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b61246081600561277590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250c906136f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90613788565b60405180910390fd5b61258f83838361281c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c90613aea565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126a891906131a0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270c9190612d29565b60405180910390a361271f848484612821565b50505050565b600061273030610e6f565b9050600081036127405750612773565b601460095461274f9190613038565b8111156127685760146009546127659190613038565b90505b61277181612826565b505b565b61277f8282611633565b6127be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b590613b7c565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b505050565b505050565b6000600267ffffffffffffffff81111561284357612842613b9c565b5b6040519080825280602002602001820160405280156128715781602001602082028036833780820191505090505b509050308160008151811061288957612888613bcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129529190613c0f565b8160018151811061296657612965613bcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129cb307f000000000000000000000000000000000000000000000000000000000000000084611702565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a4f959493929190613d35565b600060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612abf578082015181840152602081019050612aa4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ae782612a85565b612af18185612a90565b9350612b01818560208601612aa1565b612b0a81612acb565b840191505092915050565b60006020820190508181036000830152612b2f8184612adc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b6782612b3c565b9050919050565b612b7781612b5c565b8114612b8257600080fd5b50565b600081359050612b9481612b6e565b92915050565b6000819050919050565b612bad81612b9a565b8114612bb857600080fd5b50565b600081359050612bca81612ba4565b92915050565b60008060408385031215612be757612be6612b37565b5b6000612bf585828601612b85565b9250506020612c0685828601612bbb565b9150509250929050565b60008115159050919050565b612c2581612c10565b82525050565b6000602082019050612c406000830184612c1c565b92915050565b600060208284031215612c5c57612c5b612b37565b5b6000612c6a84828501612b85565b91505092915050565b600060208284031215612c8957612c88612b37565b5b6000612c9784828501612bbb565b91505092915050565b6000819050919050565b6000612cc5612cc0612cbb84612b3c565b612ca0565b612b3c565b9050919050565b6000612cd782612caa565b9050919050565b6000612ce982612ccc565b9050919050565b612cf981612cde565b82525050565b6000602082019050612d146000830184612cf0565b92915050565b612d2381612b9a565b82525050565b6000602082019050612d3e6000830184612d1a565b92915050565b600080600060608486031215612d5d57612d5c612b37565b5b6000612d6b86828701612b85565b9350506020612d7c86828701612b85565b9250506040612d8d86828701612bbb565b9150509250925092565b612da081612b5c565b82525050565b6000602082019050612dbb6000830184612d97565b92915050565b600060ff82169050919050565b612dd781612dc1565b82525050565b6000602082019050612df26000830184612dce565b92915050565b612e0181612c10565b8114612e0c57600080fd5b50565b600081359050612e1e81612df8565b92915050565b60008060408385031215612e3b57612e3a612b37565b5b6000612e4985828601612b85565b9250506020612e5a85828601612e0f565b9150509250929050565b600060208284031215612e7a57612e79612b37565b5b6000612e8884828501612e0f565b91505092915050565b60008060408385031215612ea857612ea7612b37565b5b6000612eb685828601612b85565b9250506020612ec785828601612b85565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f1857607f821691505b602082108103612f2b57612f2a612ed1565b5b50919050565b7f4f776e526f6c653a2063616e206e6f742068617665206d696e7420726f6c6500600082015250565b6000612f67601f83612a90565b9150612f7282612f31565b602082019050919050565b60006020820190508181036000830152612f9681612f5a565b9050919050565b7f6b656570696e672073656c6c20666565206173203625206f72206c6573730000600082015250565b6000612fd3601e83612a90565b9150612fde82612f9d565b602082019050919050565b6000602082019050818103600083015261300281612fc6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061304382612b9a565b915061304e83612b9a565b925082820261305c81612b9a565b9150828204841483151761307357613072613009565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130b482612b9a565b91506130bf83612b9a565b9250826130cf576130ce61307a565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613136602f83612a90565b9150613141826130da565b604082019050919050565b6000602082019050818103600083015261316581613129565b9050919050565b600061317782612b9a565b915061318283612b9a565b925082820390508181111561319a57613199613009565b5b92915050565b60006131ab82612b9a565b91506131b683612b9a565b92508282019050808211156131ce576131cd613009565b5b92915050565b7f6b656570696e672062757920666565206173203325206f72206c657373000000600082015250565b600061320a601d83612a90565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061329c603983612a90565b91506132a782613240565b604082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061332e602583612a90565b9150613339826132d2565b604082019050919050565b6000602082019050818103600083015261335d81613321565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006133c0602483612a90565b91506133cb82613364565b604082019050919050565b600060208201905081810360008301526133ef816133b3565b9050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600061342c601f83612a90565b9150613437826133f6565b602082019050919050565b6000602082019050818103600083015261345b8161341f565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134be602283612a90565b91506134c982613462565b604082019050919050565b600060208201905081810360008301526134ed816134b1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613550602483612a90565b915061355b826134f4565b604082019050919050565b6000602082019050818103600083015261357f81613543565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135e2602283612a90565b91506135ed82613586565b604082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061364e601d83612a90565b915061365982613618565b602082019050919050565b6000602082019050818103600083015261367d81613641565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136e0602583612a90565b91506136eb82613684565b604082019050919050565b6000602082019050818103600083015261370f816136d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613772602383612a90565b915061377d82613716565b604082019050919050565b600060208201905081810360008301526137a181613765565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006137de601683612a90565b91506137e9826137a8565b602082019050919050565b6000602082019050818103600083015261380d816137d1565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613870603583612a90565b915061387b82613814565b604082019050919050565b6000602082019050818103600083015261389f81613863565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006138dc601383612a90565b91506138e7826138a6565b602082019050919050565b6000602082019050818103600083015261390b816138cf565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061396e603683612a90565b915061397982613912565b604082019050919050565b6000602082019050818103600083015261399d81613961565b9050919050565b6000815190506139b381612ba4565b92915050565b6000602082840312156139cf576139ce612b37565b5b60006139dd848285016139a4565b91505092915050565b7f746965722070656e64696e6720416d6f756e74206d75737420626520736d616c60008201527f6c6572207468616e20746f74616c20737570706c792e00000000000000000000602082015250565b6000613a42603683612a90565b9150613a4d826139e6565b604082019050919050565b60006020820190508181036000830152613a7181613a35565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ad4602683612a90565b9150613adf82613a78565b604082019050919050565b60006020820190508181036000830152613b0381613ac7565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b66602183612a90565b9150613b7182613b0a565b604082019050919050565b60006020820190508181036000830152613b9581613b59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c0981612b6e565b92915050565b600060208284031215613c2557613c24612b37565b5b6000613c3384828501613bfa565b91505092915050565b6000819050919050565b6000613c61613c5c613c5784613c3c565b612ca0565b612b9a565b9050919050565b613c7181613c46565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cac81612b5c565b82525050565b6000613cbe8383613ca3565b60208301905092915050565b6000602082019050919050565b6000613ce282613c77565b613cec8185613c82565b9350613cf783613c93565b8060005b83811015613d28578151613d0f8882613cb2565b9750613d1a83613cca565b925050600181019050613cfb565b5085935050505092915050565b600060a082019050613d4a6000830188612d1a565b613d576020830187613c68565b8181036040830152613d698186613cd7565b9050613d786060830185612d97565b613d856080830184612d1a565b969550505050505056fea26469706673582212203bece99055cef4da752c0a06e12c7945f78a5cd2678e51527de5d5531b936dec64736f6c634300081100330000000000000000000000005afc94266bbb251ebee7176ea89903e3d39f6922

Deployed Bytecode

0x6080604052600436106102345760003560e01c806370a082311161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e1461085e578063e2f456051461089b578063e88914de146108c6578063f8b14a3b14610903578063f8b45b051461091a5761023b565b8063c02466681461078d578063c18bc195146107b6578063c8c8ebe4146107df578063cc1776d31461080a578063d257b34f146108355761023b565b80639a7a23d6116100f25780639a7a23d614610682578063a457c2d7146106ab578063a9059cbb146106e8578063b62496f514610725578063bbc0c742146107625761023b565b806370a082311461059d578063751039fc146105da5780637571336a14610605578063924de9b71461062e57806395d89b41146106575761023b565b8063293230b8116101bc57806349bd5a5e1161018057806349bd5a5e146104c85780634a62bb65146104f35780634f7041a51461051e5780636ddd17131461054957806370480275146105745761023b565b8063293230b8146103f55780632b112e491461040c578063313ce567146104375780633950935114610462578063436d33401461049f5761023b565b80631694505e116102035780631694505e1461030e57806318160ddd14610339578063203e727e1461036457806323b872dd1461038d57806327c8f835146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806312185a39146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610945565b6040516102629190612b15565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612bd0565b6109d7565b60405161029f9190612c2b565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612c46565b6109fa565b6040516102dc9190612c2b565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612c73565b610a1a565b005b34801561031a57600080fd5b50610323610ab7565b6040516103309190612cff565b60405180910390f35b34801561034557600080fd5b5061034e610adb565b60405161035b9190612d29565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612c73565b610ae5565b005b34801561039957600080fd5b506103b460048036038101906103af9190612d44565b610bc7565b6040516103c19190612c2b565b60405180910390f35b3480156103d657600080fd5b506103df610bf6565b6040516103ec9190612da6565b60405180910390f35b34801561040157600080fd5b5061040a610c1c565b005b34801561041857600080fd5b50610421610ca3565b60405161042e9190612d29565b60405180910390f35b34801561044357600080fd5b5061044c610ce7565b6040516104599190612ddd565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612bd0565b610cf0565b6040516104969190612c2b565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612c73565b610d27565b005b3480156104d457600080fd5b506104dd610dc4565b6040516104ea9190612da6565b60405180910390f35b3480156104ff57600080fd5b50610508610de8565b6040516105159190612c2b565b60405180910390f35b34801561052a57600080fd5b50610533610dfb565b6040516105409190612d29565b60405180910390f35b34801561055557600080fd5b5061055e610e01565b60405161056b9190612c2b565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190612c46565b610e14565b005b3480156105a957600080fd5b506105c460048036038101906105bf9190612c46565b610e6f565b6040516105d19190612d29565b60405180910390f35b3480156105e657600080fd5b506105ef610eb7565b6040516105fc9190612c2b565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190612e24565b610f2a565b005b34801561063a57600080fd5b5061065560048036038101906106509190612e64565b610fd4565b005b34801561066357600080fd5b5061066c611040565b6040516106799190612b15565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190612e24565b6110d2565b005b3480156106b757600080fd5b506106d260048036038101906106cd9190612bd0565b6111bd565b6040516106df9190612c2b565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a9190612bd0565b611234565b60405161071c9190612c2b565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190612c46565b611257565b6040516107599190612c2b565b60405180910390f35b34801561076e57600080fd5b50610777611277565b6040516107849190612c2b565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190612e24565b61128a565b005b3480156107c257600080fd5b506107dd60048036038101906107d89190612c73565b611382565b005b3480156107eb57600080fd5b506107f4611464565b6040516108019190612d29565b60405180910390f35b34801561081657600080fd5b5061081f61146a565b60405161082c9190612d29565b60405180910390f35b34801561084157600080fd5b5061085c60048036038101906108579190612c73565b611470565b005b34801561086a57600080fd5b5061088560048036038101906108809190612e91565b6114c9565b6040516108929190612d29565b60405180910390f35b3480156108a757600080fd5b506108b0611550565b6040516108bd9190612d29565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e89190612c46565b611556565b6040516108fa9190612c2b565b60405180910390f35b34801561090f57600080fd5b50610918611573565b005b34801561092657600080fd5b5061092f611585565b60405161093c9190612d29565b60405180910390f35b60606003805461095490612f00565b80601f016020809104026020016040519081016040528092919081815260200182805461098090612f00565b80156109cd5780601f106109a2576101008083540402835291602001916109cd565b820191906000526020600020905b8154815290600101906020018083116109b057829003601f168201915b5050505050905090565b6000806109e26116fa565b90506109ef818585611702565b600191505092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b610a2a610a256116fa565b611556565b610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090612f7d565b60405180910390fd5b6006811115610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490612fe9565b60405180910390fd5b80600c8190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610af5610af06116fa565b611556565b610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90612f7d565b60405180910390fd5b670de0b6b3a76400006103e86001610b4a610adb565b610b549190613038565b610b5e91906130a9565b610b6891906130a9565b811015610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba19061314c565b60405180910390fd5b670de0b6b3a764000081610bbe9190613038565b60088190555050565b600080610bd26116fa565b9050610bdf8582856118cb565b610bea858585611957565b60019150509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c2c610c276116fa565b611556565b610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290612f7d565b60405180910390fd5b6001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff021916908315150217905550565b6000610cd0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e6f565b610cd8610adb565b610ce2919061316c565b905090565b60006012905090565b600080610cfb6116fa565b9050610d1c818585610d0d85896114c9565b610d1791906131a0565b611702565b600191505092915050565b610d37610d326116fa565b611556565b610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612f7d565b60405180910390fd5b6003811115610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613220565b60405180910390fd5b80600b8190555050565b7f000000000000000000000000181869863caee0769b78d15f247ffcdfe0de118981565b601060009054906101000a900460ff1681565b600b5481565b601060029054906101000a900460ff1681565b610e24610e1f6116fa565b611556565b610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a90612f7d565b60405180910390fd5b610e6c81612351565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610ec9610ec46116fa565b611556565b610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90612f7d565b60405180910390fd5b6000601060006101000a81548160ff0219169083151502179055506001905090565b610f3a610f356116fa565b611556565b610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090612f7d565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610fe4610fdf6116fa565b611556565b611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90612f7d565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60606004805461104f90612f00565b80601f016020809104026020016040519081016040528092919081815260200182805461107b90612f00565b80156110c85780601f1061109d576101008083540402835291602001916110c8565b820191906000526020600020905b8154815290600101906020018083116110ab57829003601f168201915b5050505050905090565b6110e26110dd6116fa565b611556565b611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890612f7d565b60405180910390fd5b7f000000000000000000000000181869863caee0769b78d15f247ffcdfe0de118973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a6906132b2565b60405180910390fd5b6111b982826123ab565b5050565b6000806111c86116fa565b905060006111d682866114c9565b90508381101561121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290613344565b60405180910390fd5b6112288286868403611702565b60019250505092915050565b60008061123f6116fa565b905061124c818585611957565b600191505092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b601060019054906101000a900460ff1681565b61129a6112956116fa565b611556565b6112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d090612f7d565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516113769190612c2b565b60405180910390a25050565b61139261138d6116fa565b611556565b6113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890612f7d565b60405180910390fd5b670de0b6b3a76400006103e860056113e7610adb565b6113f19190613038565b6113fb91906130a9565b61140591906130a9565b811015611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906133d6565b60405180910390fd5b670de0b6b3a76400008161145b9190613038565b600a8190555050565b60085481565b600c5481565b61148061147b6116fa565b611556565b6114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690612f7d565b60405180910390fd5b8060098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b600061156c82600561163390919063ffffffff16565b9050919050565b61158361157e6116fa565b61244c565b565b600a5481565b6115958282611633565b156115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc90613442565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906134d4565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890613566565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d7906135f8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118be9190612d29565b60405180910390a3505050565b60006118d784846114c9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119515781811015611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90613664565b60405180910390fd5b6119508484848403611702565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bd906136f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613788565b60405180910390fd5b60008103611a4e57611a49838360006124a6565b61234c565b601060009054906101000a900460ff1615611fc257611a6c83611556565b158015611a7f5750611a7d82611556565b155b8015611ab85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611af2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b0b5750600d60149054906101000a900460ff16155b15611c0657601060019054906101000a900460ff16611c0557600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bc55750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906137f4565b60405180910390fd5b5b5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ca95750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d5057600854811115611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea90613886565b60405180910390fd5b600a54611cff83610e6f565b82611d0a91906131a0565b1115611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d42906138f2565b60405180910390fd5b611fc1565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611df35750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f1557600854811115611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3490613984565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c50b10d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ece91906139b9565b811115611f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0790613a58565b60405180910390fd5b611fc0565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fbf57600a54611f7283610e6f565b82611f7d91906131a0565b1115611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb5906138f2565b60405180910390fd5b5b5b5b5b6000611fcd30610e6f565b905060006009548210159050808015611ff25750601060029054906101000a900460ff165b801561200b5750600d60149054906101000a900460ff16155b80156120615750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120b75750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561210d5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612151576001600d60146101000a81548160ff021916908315150217905550612135612725565b6000600d60146101000a81548160ff0219169083151502179055505b6000600d60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122075750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561221157600090505b6000811561233c57600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561227457506000600c54115b1561229a576064600c54866122899190613038565b61229391906130a9565b9050612318565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122f557506000600b54115b15612317576064600b548661230a9190613038565b61231491906130a9565b90505b5b600081111561232d5761232c8730836124a6565b5b8085612339919061316c565b94505b6123478787876124a6565b505050505b505050565b61236581600561158b90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b61246081600561277590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250c906136f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90613788565b60405180910390fd5b61258f83838361281c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c90613aea565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126a891906131a0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270c9190612d29565b60405180910390a361271f848484612821565b50505050565b600061273030610e6f565b9050600081036127405750612773565b601460095461274f9190613038565b8111156127685760146009546127659190613038565b90505b61277181612826565b505b565b61277f8282611633565b6127be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b590613b7c565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b505050565b505050565b6000600267ffffffffffffffff81111561284357612842613b9c565b5b6040519080825280602002602001820160405280156128715781602001602082028036833780820191505090505b509050308160008151811061288957612888613bcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129529190613c0f565b8160018151811061296657612965613bcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129cb307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611702565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a4f959493929190613d35565b600060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612abf578082015181840152602081019050612aa4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ae782612a85565b612af18185612a90565b9350612b01818560208601612aa1565b612b0a81612acb565b840191505092915050565b60006020820190508181036000830152612b2f8184612adc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b6782612b3c565b9050919050565b612b7781612b5c565b8114612b8257600080fd5b50565b600081359050612b9481612b6e565b92915050565b6000819050919050565b612bad81612b9a565b8114612bb857600080fd5b50565b600081359050612bca81612ba4565b92915050565b60008060408385031215612be757612be6612b37565b5b6000612bf585828601612b85565b9250506020612c0685828601612bbb565b9150509250929050565b60008115159050919050565b612c2581612c10565b82525050565b6000602082019050612c406000830184612c1c565b92915050565b600060208284031215612c5c57612c5b612b37565b5b6000612c6a84828501612b85565b91505092915050565b600060208284031215612c8957612c88612b37565b5b6000612c9784828501612bbb565b91505092915050565b6000819050919050565b6000612cc5612cc0612cbb84612b3c565b612ca0565b612b3c565b9050919050565b6000612cd782612caa565b9050919050565b6000612ce982612ccc565b9050919050565b612cf981612cde565b82525050565b6000602082019050612d146000830184612cf0565b92915050565b612d2381612b9a565b82525050565b6000602082019050612d3e6000830184612d1a565b92915050565b600080600060608486031215612d5d57612d5c612b37565b5b6000612d6b86828701612b85565b9350506020612d7c86828701612b85565b9250506040612d8d86828701612bbb565b9150509250925092565b612da081612b5c565b82525050565b6000602082019050612dbb6000830184612d97565b92915050565b600060ff82169050919050565b612dd781612dc1565b82525050565b6000602082019050612df26000830184612dce565b92915050565b612e0181612c10565b8114612e0c57600080fd5b50565b600081359050612e1e81612df8565b92915050565b60008060408385031215612e3b57612e3a612b37565b5b6000612e4985828601612b85565b9250506020612e5a85828601612e0f565b9150509250929050565b600060208284031215612e7a57612e79612b37565b5b6000612e8884828501612e0f565b91505092915050565b60008060408385031215612ea857612ea7612b37565b5b6000612eb685828601612b85565b9250506020612ec785828601612b85565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f1857607f821691505b602082108103612f2b57612f2a612ed1565b5b50919050565b7f4f776e526f6c653a2063616e206e6f742068617665206d696e7420726f6c6500600082015250565b6000612f67601f83612a90565b9150612f7282612f31565b602082019050919050565b60006020820190508181036000830152612f9681612f5a565b9050919050565b7f6b656570696e672073656c6c20666565206173203625206f72206c6573730000600082015250565b6000612fd3601e83612a90565b9150612fde82612f9d565b602082019050919050565b6000602082019050818103600083015261300281612fc6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061304382612b9a565b915061304e83612b9a565b925082820261305c81612b9a565b9150828204841483151761307357613072613009565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130b482612b9a565b91506130bf83612b9a565b9250826130cf576130ce61307a565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613136602f83612a90565b9150613141826130da565b604082019050919050565b6000602082019050818103600083015261316581613129565b9050919050565b600061317782612b9a565b915061318283612b9a565b925082820390508181111561319a57613199613009565b5b92915050565b60006131ab82612b9a565b91506131b683612b9a565b92508282019050808211156131ce576131cd613009565b5b92915050565b7f6b656570696e672062757920666565206173203325206f72206c657373000000600082015250565b600061320a601d83612a90565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061329c603983612a90565b91506132a782613240565b604082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061332e602583612a90565b9150613339826132d2565b604082019050919050565b6000602082019050818103600083015261335d81613321565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006133c0602483612a90565b91506133cb82613364565b604082019050919050565b600060208201905081810360008301526133ef816133b3565b9050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600061342c601f83612a90565b9150613437826133f6565b602082019050919050565b6000602082019050818103600083015261345b8161341f565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134be602283612a90565b91506134c982613462565b604082019050919050565b600060208201905081810360008301526134ed816134b1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613550602483612a90565b915061355b826134f4565b604082019050919050565b6000602082019050818103600083015261357f81613543565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135e2602283612a90565b91506135ed82613586565b604082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061364e601d83612a90565b915061365982613618565b602082019050919050565b6000602082019050818103600083015261367d81613641565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136e0602583612a90565b91506136eb82613684565b604082019050919050565b6000602082019050818103600083015261370f816136d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613772602383612a90565b915061377d82613716565b604082019050919050565b600060208201905081810360008301526137a181613765565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006137de601683612a90565b91506137e9826137a8565b602082019050919050565b6000602082019050818103600083015261380d816137d1565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613870603583612a90565b915061387b82613814565b604082019050919050565b6000602082019050818103600083015261389f81613863565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006138dc601383612a90565b91506138e7826138a6565b602082019050919050565b6000602082019050818103600083015261390b816138cf565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061396e603683612a90565b915061397982613912565b604082019050919050565b6000602082019050818103600083015261399d81613961565b9050919050565b6000815190506139b381612ba4565b92915050565b6000602082840312156139cf576139ce612b37565b5b60006139dd848285016139a4565b91505092915050565b7f746965722070656e64696e6720416d6f756e74206d75737420626520736d616c60008201527f6c6572207468616e20746f74616c20737570706c792e00000000000000000000602082015250565b6000613a42603683612a90565b9150613a4d826139e6565b604082019050919050565b60006020820190508181036000830152613a7181613a35565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ad4602683612a90565b9150613adf82613a78565b604082019050919050565b60006020820190508181036000830152613b0381613ac7565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b66602183612a90565b9150613b7182613b0a565b604082019050919050565b60006020820190508181036000830152613b9581613b59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c0981612b6e565b92915050565b600060208284031215613c2557613c24612b37565b5b6000613c3384828501613bfa565b91505092915050565b6000819050919050565b6000613c61613c5c613c5784613c3c565b612ca0565b612b9a565b9050919050565b613c7181613c46565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cac81612b5c565b82525050565b6000613cbe8383613ca3565b60208301905092915050565b6000602082019050919050565b6000613ce282613c77565b613cec8185613c82565b9350613cf783613c93565b8060005b83811015613d28578151613d0f8882613cb2565b9750613d1a83613cca565b925050600181019050613cfb565b5085935050505092915050565b600060a082019050613d4a6000830188612d1a565b613d576020830187613c68565b8181036040830152613d698186613cd7565b9050613d786060830185612d97565b613d856080830184612d1a565b969550505050505056fea26469706673582212203bece99055cef4da752c0a06e12c7945f78a5cd2678e51527de5d5531b936dec64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000005afc94266bbb251ebee7176ea89903e3d39f6922

-----Decoded View---------------
Arg [0] : _tierHierarchy (address): 0x5AFc94266bbB251eBEe7176Ea89903e3D39F6922

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005afc94266bbb251ebee7176ea89903e3d39f6922


Deployed Bytecode Sourcemap

17031:8946:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7871:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8803:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17541:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20830:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17124:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8192:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20380:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9016:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17073:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19431:113;;;;;;;;;;;;;:::i;:::-;;19552:126;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8091:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9319:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20665:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17182:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17672:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17408:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17752:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16626:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8308:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20249:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19686:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21271:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7979:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21508:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9570:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8443:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17229:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17712:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20057:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21005:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17295:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17440:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21381:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8644:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17337:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16519:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16721:72;;;;;;;;;;;;;:::i;:::-;;17377:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7871:100;7925:13;7958:5;7951:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7871:100;:::o;8803:201::-;8886:4;8903:13;8919:12;:10;:12::i;:::-;8903:28;;8942:32;8951:5;8958:7;8967:6;8942:8;:32::i;:::-;8992:4;8985:11;;;8803:201;;;;:::o;17541:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;20830:166::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20922:1:::1;20910:8;:13;;20902:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;20980:8;20970:7;:18;;;;20830:166:::0;:::o;17124:51::-;;;:::o;8192:108::-;8253:7;8280:12;;8273:19;;8192:108;:::o;20380:277::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20519:4:::1;20511;20506:1;20490:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20489:26;;;;:::i;:::-;20488:35;;;;:::i;:::-;20478:6;:45;;20456:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;20642:6;20632;:17;;;;:::i;:::-;20609:20;:40;;;;20380:277:::0;:::o;9016:295::-;9147:4;9164:15;9182:12;:10;:12::i;:::-;9164:30;;9205:38;9221:4;9227:7;9236:6;9205:15;:38::i;:::-;9254:27;9264:4;9270:2;9274:6;9254:9;:27::i;:::-;9299:4;9292:11;;;9016:295;;;;;:::o;17073:44::-;;;;;;;;;;;;;:::o;19431:113::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19503:4:::1;19487:13;;:20;;;;;;;;;;;;;;;;;;19532:4;19518:11;;:18;;;;;;;;;;;;;;;;;;19431:113::o:0;19552:126::-;19605:7;19648:22;19658:11;;;;;;;;;;;19648:9;:22::i;:::-;19632:13;:11;:13::i;:::-;:38;;;;:::i;:::-;19625:45;;19552:126;:::o;8091:93::-;8149:5;8174:2;8167:9;;8091:93;:::o;9319:238::-;9407:4;9424:13;9440:12;:10;:12::i;:::-;9424:28;;9463:64;9472:5;9479:7;9516:10;9488:25;9498:5;9505:7;9488:9;:25::i;:::-;:38;;;;:::i;:::-;9463:8;:64::i;:::-;9545:4;9538:11;;;9319:238;;;;:::o;20665:156::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20751:1:::1;20740:7;:12;;20732:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20806:7;20797:6;:16;;;;20665:156:::0;:::o;17182:38::-;;;:::o;17672:33::-;;;;;;;;;;;;;:::o;17408:25::-;;;;:::o;17752:31::-;;;;;;;;;;;;;:::o;16626:90::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16693:18:::1;16703:7;16693:9;:18::i;:::-;16626:90:::0;:::o;8308:127::-;8382:7;8409:9;:18;8419:7;8409:18;;;;;;;;;;;;;;;;8402:25;;8308:127;;;:::o;20249:123::-;20303:4;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20337:5:::1;20320:14;;:22;;;;;;;;;;;;;;;;;;20360:4;20353:11;;20249:123:::0;:::o;19686:167::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19841:4:::1;19800:31;:38;19832:5;19800:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;19686:167:::0;;:::o;21271:102::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21358:7:::1;21344:11;;:21;;;;;;;;;;;;;;;;;;21271:102:::0;:::o;7979:104::-;8035:13;8068:7;8061:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7979:104;:::o;21508:306::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21654:13:::1;21646:21;;:4;:21;;::::0;21624:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21765:41;21794:4;21800:5;21765:28;:41::i;:::-;21508:306:::0;;:::o;9570:436::-;9663:4;9680:13;9696:12;:10;:12::i;:::-;9680:28;;9719:24;9746:25;9756:5;9763:7;9746:9;:25::i;:::-;9719:52;;9810:15;9790:16;:35;;9782:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9903:60;9912:5;9919:7;9947:15;9928:16;:34;9903:8;:60::i;:::-;9994:4;9987:11;;;;9570:436;;;;:::o;8443:193::-;8522:4;8539:13;8555:12;:10;:12::i;:::-;8539:28;;8578;8588:5;8595:2;8599:6;8578:9;:28::i;:::-;8624:4;8617:11;;;8443:193;;;;:::o;17229:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;17712:33::-;;;;;;;;;;;;;:::o;20057:184::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20175:8:::1;20144:19;:28;20164:7;20144:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20215:7;20199:34;;;20224:8;20199:34;;;;;;:::i;:::-;;;;;;;;20057:184:::0;;:::o;21005:258::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21147:4:::1;21139;21134:1;21118:13;:11;:13::i;:::-;:17;;;;:::i;:::-;21117:26;;;;:::i;:::-;21116:35;;;;:::i;:::-;21106:6;:45;;21084:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;21248:6;21238;:17;;;;:::i;:::-;21226:9;:29;;;;21005:258:::0;:::o;17295:35::-;;;;:::o;17440:26::-;;;;:::o;21381:119::-;16444:23;16454:12;:10;:12::i;:::-;16444:9;:23::i;:::-;16436:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21485:7:::1;21464:18;:28;;;;21381:119:::0;:::o;8644:151::-;8733:7;8760:11;:18;8772:5;8760:18;;;;;;;;;;;;;;;:27;8779:7;8760:27;;;;;;;;;;;;;;;;8753:34;;8644:151;;;;:::o;17337:33::-;;;;:::o;16519:102::-;16576:4;16594:22;16608:7;16594:9;:13;;:22;;;;:::i;:::-;16587:29;;16519:102;;;:::o;16721:72::-;16762:26;16775:12;:10;:12::i;:::-;16762;:26::i;:::-;16721:72::o;17377:24::-;;;;:::o;15568:178::-;15646:18;15650:4;15656:7;15646:3;:18::i;:::-;15645:19;15637:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15734:4;15711;:11;;:20;15723:7;15711:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;15568:178;;:::o;15945:203::-;16017:4;16061:1;16042:21;;:7;:21;;;16034:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16120:4;:11;;:20;16132:7;16120:20;;;;;;;;;;;;;;;;;;;;;;;;;16113:27;;15945:203;;;;:::o;7255:98::-;7308:7;7335:10;7328:17;;7255:98;:::o;11704:380::-;11857:1;11840:19;;:5;:19;;;11832:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11938:1;11919:21;;:7;:21;;;11911:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12022:6;11992:11;:18;12004:5;11992:18;;;;;;;;;;;;;;;:27;12011:7;11992:27;;;;;;;;;;;;;;;:36;;;;12060:7;12044:32;;12053:5;12044:32;;;12069:6;12044:32;;;;;;:::i;:::-;;;;;;;;11704:380;;;:::o;12092:453::-;12227:24;12254:25;12264:5;12271:7;12254:9;:25::i;:::-;12227:52;;12314:17;12294:16;:37;12290:248;;12376:6;12356:16;:26;;12348:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12460:51;12469:5;12476:7;12504:6;12485:16;:25;12460:8;:51::i;:::-;12290:248;12216:329;12092:453;;;:::o;21822:3307::-;21970:1;21954:18;;:4;:18;;;21946:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22047:1;22033:16;;:2;:16;;;22025:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22116:1;22106:6;:11;22102:93;;22134:28;22150:4;22156:2;22160:1;22134:15;:28::i;:::-;22177:7;;22102:93;22211:14;;;;;;;;;;;22207:1769;;;22265:15;22275:4;22265:9;:15::i;:::-;22264:16;:51;;;;;22302:13;22312:2;22302:9;:13::i;:::-;22301:14;22264:51;:88;;;;;22350:1;22336:16;;:2;:16;;;;22264:88;:130;;;;;22387:6;22373:21;;:2;:21;;;;22264:130;:160;;;;;22416:8;;;;;;;;;;;22415:9;22264:160;22242:455;;;22464:13;;;;;;;;;;;22459:223;;22536:19;:25;22556:4;22536:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22565:19;:23;22585:2;22565:23;;;;;;;;;;;;;;;;;;;;;;;;;22536:52;22502:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;22459:223;22242:455;22735:25;:31;22761:4;22735:31;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;22788:31;:35;22820:2;22788:35;;;;;;;;;;;;;;;;;;;;;;;;;22787:36;22735:88;22713:1252;;;22898:20;;22888:6;:30;;22858:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;23090:9;;23073:13;23083:2;23073:9;:13::i;:::-;23064:6;:22;;;;:::i;:::-;:35;;23034:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;22713:1252;;;23230:25;:29;23256:2;23230:29;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;23281:31;:37;23313:4;23281:37;;;;;;;;;;;;;;;;;;;;;;;;;23280:38;23230:88;23208:757;;;23393:20;;23383:6;:30;;23353:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;23604:13;;;;;;;;;;;23589:47;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23579:6;:59;;23549:187;;;;;;;;;;;;:::i;:::-;;;;;;;;;23208:757;;;23765:31;:35;23797:2;23765:35;;;;;;;;;;;;;;;;;;;;;;;;;23760:205;;23877:9;;23860:13;23870:2;23860:9;:13::i;:::-;23851:6;:22;;;;:::i;:::-;:35;;23821:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;23760:205;23208:757;22713:1252;22207:1769;23988:28;24019:24;24037:4;24019:9;:24::i;:::-;23988:55;;24056:12;24095:18;;24071:20;:42;;24056:57;;24144:7;:35;;;;;24168:11;;;;;;;;;;;24144:35;:61;;;;;24197:8;;;;;;;;;;;24196:9;24144:61;:110;;;;;24223:25;:31;24249:4;24223:31;;;;;;;;;;;;;;;;;;;;;;;;;24222:32;24144:110;:153;;;;;24272:19;:25;24292:4;24272:25;;;;;;;;;;;;;;;;;;;;;;;;;24271:26;24144:153;:194;;;;;24315:19;:23;24335:2;24315:23;;;;;;;;;;;;;;;;;;;;;;;;;24314:24;24144:194;24126:326;;;24376:4;24365:8;;:15;;;;;;;;;;;;;;;;;;24397:10;:8;:10::i;:::-;24435:5;24424:8;;:16;;;;;;;;;;;;;;;;;;24126:326;24464:12;24480:8;;;;;;;;;;;24479:9;24464:24;;24505:19;:25;24525:4;24505:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;24534:19;:23;24554:2;24534:23;;;;;;;;;;;;;;;;;;;;;;;;;24505:52;24501:100;;;24584:5;24574:15;;24501:100;24613:12;24648:7;24644:434;;;24676:25;:29;24702:2;24676:29;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;24719:1;24709:7;;:11;24676:44;24672:257;;;24767:3;24757:7;;24748:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;24741:29;;24672:257;;;24819:25;:31;24845:4;24819:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;24863:1;24854:6;;:10;24819:45;24815:114;;;24910:3;24901:6;;24892;:15;;;;:::i;:::-;:21;;;;:::i;:::-;24885:28;;24815:114;24672:257;24956:1;24949:4;:8;24945:91;;;24978:42;24994:4;25008;25015;24978:15;:42::i;:::-;24945:91;25062:4;25052:14;;;;;:::i;:::-;;;24644:434;25088:33;25104:4;25110:2;25114:6;25088:15;:33::i;:::-;21935:3194;;;;21822:3307;;;;:::o;16798:107::-;16849:22;16863:7;16849:9;:13;;:22;;;;:::i;:::-;16892:7;16881:19;;;;;;;;;;;;16798:107;:::o;19861:188::-;19978:5;19944:25;:31;19970:4;19944:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20035:5;20001:40;;20029:4;20001:40;;;;;;;;;;;;19861:188;;:::o;16910:114::-;16963:25;16980:7;16963:9;:16;;:25;;;;:::i;:::-;17011:7;16998:21;;;;;;;;;;;;16910:114;:::o;10014:671::-;10161:1;10145:18;;:4;:18;;;10137:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10238:1;10224:16;;:2;:16;;;10216:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10293:38;10314:4;10320:2;10324:6;10293:20;:38::i;:::-;10344:19;10366:9;:15;10376:4;10366:15;;;;;;;;;;;;;;;;10344:37;;10415:6;10400:11;:21;;10392:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10532:6;10518:11;:20;10500:9;:15;10510:4;10500:15;;;;;;;;;;;;;;;:38;;;;10577:6;10560:9;:13;10570:2;10560:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;10616:2;10601:26;;10610:4;10601:26;;;10620:6;10601:26;;;;;;:::i;:::-;;;;;;;;10640:37;10660:4;10666:2;10670:6;10640:19;:37::i;:::-;10126:559;10014:671;;;:::o;25138:339::-;25177:23;25203:24;25221:4;25203:9;:24::i;:::-;25177:50;;25261:1;25242:15;:20;25238:59;;25279:7;;;25238:59;25352:2;25331:18;;:23;;;;:::i;:::-;25313:15;:41;25309:115;;;25410:2;25389:18;;:23;;;;:::i;:::-;25371:41;;25309:115;25436:33;25453:15;25436:16;:33::i;:::-;25166:311;25138:339;:::o;15754:183::-;15834:18;15838:4;15844:7;15834:3;:18::i;:::-;15826:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15924:5;15901:4;:11;;:20;15913:7;15901:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15754:183;;:::o;12553:125::-;;;;:::o;12686:124::-;;;;:::o;25486:484::-;25560:21;25598:1;25584:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25560:40;;25629:4;25611;25616:1;25611:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25655:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25645:4;25650:1;25645:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25690:62;25707:4;25722:15;25740:11;25690:8;:62::i;:::-;25765:15;:66;;;25846:11;25872:1;25889:4;25908:13;;;;;;;;;;;25936:15;25765:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25541:429;25486:484;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:::-;3840:6;3889:2;3877:9;3868:7;3864:23;3860:32;3857:119;;;3895:79;;:::i;:::-;3857:119;4015:1;4040:53;4085:7;4076:6;4065:9;4061:22;4040:53;:::i;:::-;4030:63;;3986:117;3781:329;;;;:::o;4116:60::-;4144:3;4165:5;4158:12;;4116:60;;;:::o;4182:142::-;4232:9;4265:53;4283:34;4292:24;4310:5;4292:24;:::i;:::-;4283:34;:::i;:::-;4265:53;:::i;:::-;4252:66;;4182:142;;;:::o;4330:126::-;4380:9;4413:37;4444:5;4413:37;:::i;:::-;4400:50;;4330:126;;;:::o;4462:152::-;4538:9;4571:37;4602:5;4571:37;:::i;:::-;4558:50;;4462:152;;;:::o;4620:183::-;4733:63;4790:5;4733:63;:::i;:::-;4728:3;4721:76;4620:183;;:::o;4809:274::-;4928:4;4966:2;4955:9;4951:18;4943:26;;4979:97;5073:1;5062:9;5058:17;5049:6;4979:97;:::i;:::-;4809:274;;;;:::o;5089:118::-;5176:24;5194:5;5176:24;:::i;:::-;5171:3;5164:37;5089:118;;:::o;5213:222::-;5306:4;5344:2;5333:9;5329:18;5321:26;;5357:71;5425:1;5414:9;5410:17;5401:6;5357:71;:::i;:::-;5213:222;;;;:::o;5441:619::-;5518:6;5526;5534;5583:2;5571:9;5562:7;5558:23;5554:32;5551:119;;;5589:79;;:::i;:::-;5551:119;5709:1;5734:53;5779:7;5770:6;5759:9;5755:22;5734:53;:::i;:::-;5724:63;;5680:117;5836:2;5862:53;5907:7;5898:6;5887:9;5883:22;5862:53;:::i;:::-;5852:63;;5807:118;5964:2;5990:53;6035:7;6026:6;6015:9;6011:22;5990:53;:::i;:::-;5980:63;;5935:118;5441:619;;;;;:::o;6066:118::-;6153:24;6171:5;6153:24;:::i;:::-;6148:3;6141:37;6066:118;;:::o;6190:222::-;6283:4;6321:2;6310:9;6306:18;6298:26;;6334:71;6402:1;6391:9;6387:17;6378:6;6334:71;:::i;:::-;6190:222;;;;:::o;6418:86::-;6453:7;6493:4;6486:5;6482:16;6471:27;;6418:86;;;:::o;6510:112::-;6593:22;6609:5;6593:22;:::i;:::-;6588:3;6581:35;6510:112;;:::o;6628:214::-;6717:4;6755:2;6744:9;6740:18;6732:26;;6768:67;6832:1;6821:9;6817:17;6808:6;6768:67;:::i;:::-;6628:214;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:323::-;7639:6;7688:2;7676:9;7667:7;7663:23;7659:32;7656:119;;;7694:79;;:::i;:::-;7656:119;7814:1;7839:50;7881:7;7872:6;7861:9;7857:22;7839:50;:::i;:::-;7829:60;;7785:114;7583:323;;;;:::o;7912:474::-;7980:6;7988;8037:2;8025:9;8016:7;8012:23;8008:32;8005:119;;;8043:79;;:::i;:::-;8005:119;8163:1;8188:53;8233:7;8224:6;8213:9;8209:22;8188:53;:::i;:::-;8178:63;;8134:117;8290:2;8316:53;8361:7;8352:6;8341:9;8337:22;8316:53;:::i;:::-;8306:63;;8261:118;7912:474;;;;;:::o;8392:180::-;8440:77;8437:1;8430:88;8537:4;8534:1;8527:15;8561:4;8558:1;8551:15;8578:320;8622:6;8659:1;8653:4;8649:12;8639:22;;8706:1;8700:4;8696:12;8727:18;8717:81;;8783:4;8775:6;8771:17;8761:27;;8717:81;8845:2;8837:6;8834:14;8814:18;8811:38;8808:84;;8864:18;;:::i;:::-;8808:84;8629:269;8578:320;;;:::o;8904:181::-;9044:33;9040:1;9032:6;9028:14;9021:57;8904:181;:::o;9091:366::-;9233:3;9254:67;9318:2;9313:3;9254:67;:::i;:::-;9247:74;;9330:93;9419:3;9330:93;:::i;:::-;9448:2;9443:3;9439:12;9432:19;;9091:366;;;:::o;9463:419::-;9629:4;9667:2;9656:9;9652:18;9644:26;;9716:9;9710:4;9706:20;9702:1;9691:9;9687:17;9680:47;9744:131;9870:4;9744:131;:::i;:::-;9736:139;;9463:419;;;:::o;9888:180::-;10028:32;10024:1;10016:6;10012:14;10005:56;9888:180;:::o;10074:366::-;10216:3;10237:67;10301:2;10296:3;10237:67;:::i;:::-;10230:74;;10313:93;10402:3;10313:93;:::i;:::-;10431:2;10426:3;10422:12;10415:19;;10074:366;;;:::o;10446:419::-;10612:4;10650:2;10639:9;10635:18;10627:26;;10699:9;10693:4;10689:20;10685:1;10674:9;10670:17;10663:47;10727:131;10853:4;10727:131;:::i;:::-;10719:139;;10446:419;;;:::o;10871:180::-;10919:77;10916:1;10909:88;11016:4;11013:1;11006:15;11040:4;11037:1;11030:15;11057:410;11097:7;11120:20;11138:1;11120:20;:::i;:::-;11115:25;;11154:20;11172:1;11154:20;:::i;:::-;11149:25;;11209:1;11206;11202:9;11231:30;11249:11;11231:30;:::i;:::-;11220:41;;11410:1;11401:7;11397:15;11394:1;11391:22;11371:1;11364:9;11344:83;11321:139;;11440:18;;:::i;:::-;11321:139;11105:362;11057:410;;;;:::o;11473:180::-;11521:77;11518:1;11511:88;11618:4;11615:1;11608:15;11642:4;11639:1;11632:15;11659:185;11699:1;11716:20;11734:1;11716:20;:::i;:::-;11711:25;;11750:20;11768:1;11750:20;:::i;:::-;11745:25;;11789:1;11779:35;;11794:18;;:::i;:::-;11779:35;11836:1;11833;11829:9;11824:14;;11659:185;;;;:::o;11850:234::-;11990:34;11986:1;11978:6;11974:14;11967:58;12059:17;12054:2;12046:6;12042:15;12035:42;11850:234;:::o;12090:366::-;12232:3;12253:67;12317:2;12312:3;12253:67;:::i;:::-;12246:74;;12329:93;12418:3;12329:93;:::i;:::-;12447:2;12442:3;12438:12;12431:19;;12090:366;;;:::o;12462:419::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12715:9;12709:4;12705:20;12701:1;12690:9;12686:17;12679:47;12743:131;12869:4;12743:131;:::i;:::-;12735:139;;12462:419;;;:::o;12887:194::-;12927:4;12947:20;12965:1;12947:20;:::i;:::-;12942:25;;12981:20;12999:1;12981:20;:::i;:::-;12976:25;;13025:1;13022;13018:9;13010:17;;13049:1;13043:4;13040:11;13037:37;;;13054:18;;:::i;:::-;13037:37;12887:194;;;;:::o;13087:191::-;13127:3;13146:20;13164:1;13146:20;:::i;:::-;13141:25;;13180:20;13198:1;13180:20;:::i;:::-;13175:25;;13223:1;13220;13216:9;13209:16;;13244:3;13241:1;13238:10;13235:36;;;13251:18;;:::i;:::-;13235:36;13087:191;;;;:::o;13284:179::-;13424:31;13420:1;13412:6;13408:14;13401:55;13284:179;:::o;13469:366::-;13611:3;13632:67;13696:2;13691:3;13632:67;:::i;:::-;13625:74;;13708:93;13797:3;13708:93;:::i;:::-;13826:2;13821:3;13817:12;13810:19;;13469:366;;;:::o;13841:419::-;14007:4;14045:2;14034:9;14030:18;14022:26;;14094:9;14088:4;14084:20;14080:1;14069:9;14065:17;14058:47;14122:131;14248:4;14122:131;:::i;:::-;14114:139;;13841:419;;;:::o;14266:244::-;14406:34;14402:1;14394:6;14390:14;14383:58;14475:27;14470:2;14462:6;14458:15;14451:52;14266:244;:::o;14516:366::-;14658:3;14679:67;14743:2;14738:3;14679:67;:::i;:::-;14672:74;;14755:93;14844:3;14755:93;:::i;:::-;14873:2;14868:3;14864:12;14857:19;;14516:366;;;:::o;14888:419::-;15054:4;15092:2;15081:9;15077:18;15069:26;;15141:9;15135:4;15131:20;15127:1;15116:9;15112:17;15105:47;15169:131;15295:4;15169:131;:::i;:::-;15161:139;;14888:419;;;:::o;15313:224::-;15453:34;15449:1;15441:6;15437:14;15430:58;15522:7;15517:2;15509:6;15505:15;15498:32;15313:224;:::o;15543:366::-;15685:3;15706:67;15770:2;15765:3;15706:67;:::i;:::-;15699:74;;15782:93;15871:3;15782:93;:::i;:::-;15900:2;15895:3;15891:12;15884:19;;15543:366;;;:::o;15915:419::-;16081:4;16119:2;16108:9;16104:18;16096:26;;16168:9;16162:4;16158:20;16154:1;16143:9;16139:17;16132:47;16196:131;16322:4;16196:131;:::i;:::-;16188:139;;15915:419;;;:::o;16340:223::-;16480:34;16476:1;16468:6;16464:14;16457:58;16549:6;16544:2;16536:6;16532:15;16525:31;16340:223;:::o;16569:366::-;16711:3;16732:67;16796:2;16791:3;16732:67;:::i;:::-;16725:74;;16808:93;16897:3;16808:93;:::i;:::-;16926:2;16921:3;16917:12;16910:19;;16569:366;;;:::o;16941:419::-;17107:4;17145:2;17134:9;17130:18;17122:26;;17194:9;17188:4;17184:20;17180:1;17169:9;17165:17;17158:47;17222:131;17348:4;17222:131;:::i;:::-;17214:139;;16941:419;;;:::o;17366:181::-;17506:33;17502:1;17494:6;17490:14;17483:57;17366:181;:::o;17553:366::-;17695:3;17716:67;17780:2;17775:3;17716:67;:::i;:::-;17709:74;;17792:93;17881:3;17792:93;:::i;:::-;17910:2;17905:3;17901:12;17894:19;;17553:366;;;:::o;17925:419::-;18091:4;18129:2;18118:9;18114:18;18106:26;;18178:9;18172:4;18168:20;18164:1;18153:9;18149:17;18142:47;18206:131;18332:4;18206:131;:::i;:::-;18198:139;;17925:419;;;:::o;18350:221::-;18490:34;18486:1;18478:6;18474:14;18467:58;18559:4;18554:2;18546:6;18542:15;18535:29;18350:221;:::o;18577:366::-;18719:3;18740:67;18804:2;18799:3;18740:67;:::i;:::-;18733:74;;18816:93;18905:3;18816:93;:::i;:::-;18934:2;18929:3;18925:12;18918:19;;18577:366;;;:::o;18949:419::-;19115:4;19153:2;19142:9;19138:18;19130:26;;19202:9;19196:4;19192:20;19188:1;19177:9;19173:17;19166:47;19230:131;19356:4;19230:131;:::i;:::-;19222:139;;18949:419;;;:::o;19374:223::-;19514:34;19510:1;19502:6;19498:14;19491:58;19583:6;19578:2;19570:6;19566:15;19559:31;19374:223;:::o;19603:366::-;19745:3;19766:67;19830:2;19825:3;19766:67;:::i;:::-;19759:74;;19842:93;19931:3;19842:93;:::i;:::-;19960:2;19955:3;19951:12;19944:19;;19603:366;;;:::o;19975:419::-;20141:4;20179:2;20168:9;20164:18;20156:26;;20228:9;20222:4;20218:20;20214:1;20203:9;20199:17;20192:47;20256:131;20382:4;20256:131;:::i;:::-;20248:139;;19975:419;;;:::o;20400:221::-;20540:34;20536:1;20528:6;20524:14;20517:58;20609:4;20604:2;20596:6;20592:15;20585:29;20400:221;:::o;20627:366::-;20769:3;20790:67;20854:2;20849:3;20790:67;:::i;:::-;20783:74;;20866:93;20955:3;20866:93;:::i;:::-;20984:2;20979:3;20975:12;20968:19;;20627:366;;;:::o;20999:419::-;21165:4;21203:2;21192:9;21188:18;21180:26;;21252:9;21246:4;21242:20;21238:1;21227:9;21223:17;21216:47;21280:131;21406:4;21280:131;:::i;:::-;21272:139;;20999:419;;;:::o;21424:179::-;21564:31;21560:1;21552:6;21548:14;21541:55;21424:179;:::o;21609:366::-;21751:3;21772:67;21836:2;21831:3;21772:67;:::i;:::-;21765:74;;21848:93;21937:3;21848:93;:::i;:::-;21966:2;21961:3;21957:12;21950:19;;21609:366;;;:::o;21981:419::-;22147:4;22185:2;22174:9;22170:18;22162:26;;22234:9;22228:4;22224:20;22220:1;22209:9;22205:17;22198:47;22262:131;22388:4;22262:131;:::i;:::-;22254:139;;21981:419;;;:::o;22406:224::-;22546:34;22542:1;22534:6;22530:14;22523:58;22615:7;22610:2;22602:6;22598:15;22591:32;22406:224;:::o;22636:366::-;22778:3;22799:67;22863:2;22858:3;22799:67;:::i;:::-;22792:74;;22875:93;22964:3;22875:93;:::i;:::-;22993:2;22988:3;22984:12;22977:19;;22636:366;;;:::o;23008:419::-;23174:4;23212:2;23201:9;23197:18;23189:26;;23261:9;23255:4;23251:20;23247:1;23236:9;23232:17;23225:47;23289:131;23415:4;23289:131;:::i;:::-;23281:139;;23008:419;;;:::o;23433:222::-;23573:34;23569:1;23561:6;23557:14;23550:58;23642:5;23637:2;23629:6;23625:15;23618:30;23433:222;:::o;23661:366::-;23803:3;23824:67;23888:2;23883:3;23824:67;:::i;:::-;23817:74;;23900:93;23989:3;23900:93;:::i;:::-;24018:2;24013:3;24009:12;24002:19;;23661:366;;;:::o;24033:419::-;24199:4;24237:2;24226:9;24222:18;24214:26;;24286:9;24280:4;24276:20;24272:1;24261:9;24257:17;24250:47;24314:131;24440:4;24314:131;:::i;:::-;24306:139;;24033:419;;;:::o;24458:172::-;24598:24;24594:1;24586:6;24582:14;24575:48;24458:172;:::o;24636:366::-;24778:3;24799:67;24863:2;24858:3;24799:67;:::i;:::-;24792:74;;24875:93;24964:3;24875:93;:::i;:::-;24993:2;24988:3;24984:12;24977:19;;24636:366;;;:::o;25008:419::-;25174:4;25212:2;25201:9;25197:18;25189:26;;25261:9;25255:4;25251:20;25247:1;25236:9;25232:17;25225:47;25289:131;25415:4;25289:131;:::i;:::-;25281:139;;25008:419;;;:::o;25433:240::-;25573:34;25569:1;25561:6;25557:14;25550:58;25642:23;25637:2;25629:6;25625:15;25618:48;25433:240;:::o;25679:366::-;25821:3;25842:67;25906:2;25901:3;25842:67;:::i;:::-;25835:74;;25918:93;26007:3;25918:93;:::i;:::-;26036:2;26031:3;26027:12;26020:19;;25679:366;;;:::o;26051:419::-;26217:4;26255:2;26244:9;26240:18;26232:26;;26304:9;26298:4;26294:20;26290:1;26279:9;26275:17;26268:47;26332:131;26458:4;26332:131;:::i;:::-;26324:139;;26051:419;;;:::o;26476:169::-;26616:21;26612:1;26604:6;26600:14;26593:45;26476:169;:::o;26651:366::-;26793:3;26814:67;26878:2;26873:3;26814:67;:::i;:::-;26807:74;;26890:93;26979:3;26890:93;:::i;:::-;27008:2;27003:3;26999:12;26992:19;;26651:366;;;:::o;27023:419::-;27189:4;27227:2;27216:9;27212:18;27204:26;;27276:9;27270:4;27266:20;27262:1;27251:9;27247:17;27240:47;27304:131;27430:4;27304:131;:::i;:::-;27296:139;;27023:419;;;:::o;27448:241::-;27588:34;27584:1;27576:6;27572:14;27565:58;27657:24;27652:2;27644:6;27640:15;27633:49;27448:241;:::o;27695:366::-;27837:3;27858:67;27922:2;27917:3;27858:67;:::i;:::-;27851:74;;27934:93;28023:3;27934:93;:::i;:::-;28052:2;28047:3;28043:12;28036:19;;27695:366;;;:::o;28067:419::-;28233:4;28271:2;28260:9;28256:18;28248:26;;28320:9;28314:4;28310:20;28306:1;28295:9;28291:17;28284:47;28348:131;28474:4;28348:131;:::i;:::-;28340:139;;28067:419;;;:::o;28492:143::-;28549:5;28580:6;28574:13;28565:22;;28596:33;28623:5;28596:33;:::i;:::-;28492:143;;;;:::o;28641:351::-;28711:6;28760:2;28748:9;28739:7;28735:23;28731:32;28728:119;;;28766:79;;:::i;:::-;28728:119;28886:1;28911:64;28967:7;28958:6;28947:9;28943:22;28911:64;:::i;:::-;28901:74;;28857:128;28641:351;;;;:::o;28998:241::-;29138:34;29134:1;29126:6;29122:14;29115:58;29207:24;29202:2;29194:6;29190:15;29183:49;28998:241;:::o;29245:366::-;29387:3;29408:67;29472:2;29467:3;29408:67;:::i;:::-;29401:74;;29484:93;29573:3;29484:93;:::i;:::-;29602:2;29597:3;29593:12;29586:19;;29245:366;;;:::o;29617:419::-;29783:4;29821:2;29810:9;29806:18;29798:26;;29870:9;29864:4;29860:20;29856:1;29845:9;29841:17;29834:47;29898:131;30024:4;29898:131;:::i;:::-;29890:139;;29617:419;;;:::o;30042:225::-;30182:34;30178:1;30170:6;30166:14;30159:58;30251:8;30246:2;30238:6;30234:15;30227:33;30042:225;:::o;30273:366::-;30415:3;30436:67;30500:2;30495:3;30436:67;:::i;:::-;30429:74;;30512:93;30601:3;30512:93;:::i;:::-;30630:2;30625:3;30621:12;30614:19;;30273:366;;;:::o;30645:419::-;30811:4;30849:2;30838:9;30834:18;30826:26;;30898:9;30892:4;30888:20;30884:1;30873:9;30869:17;30862:47;30926:131;31052:4;30926:131;:::i;:::-;30918:139;;30645:419;;;:::o;31070:220::-;31210:34;31206:1;31198:6;31194:14;31187:58;31279:3;31274:2;31266:6;31262:15;31255:28;31070:220;:::o;31296:366::-;31438:3;31459:67;31523:2;31518:3;31459:67;:::i;:::-;31452:74;;31535:93;31624:3;31535:93;:::i;:::-;31653:2;31648:3;31644:12;31637:19;;31296:366;;;:::o;31668:419::-;31834:4;31872:2;31861:9;31857:18;31849:26;;31921:9;31915:4;31911:20;31907:1;31896:9;31892:17;31885:47;31949:131;32075:4;31949:131;:::i;:::-;31941:139;;31668:419;;;:::o;32093:180::-;32141:77;32138:1;32131:88;32238:4;32235:1;32228:15;32262:4;32259:1;32252:15;32279:180;32327:77;32324:1;32317:88;32424:4;32421:1;32414:15;32448:4;32445:1;32438:15;32465:143;32522:5;32553:6;32547:13;32538:22;;32569:33;32596:5;32569:33;:::i;:::-;32465:143;;;;:::o;32614:351::-;32684:6;32733:2;32721:9;32712:7;32708:23;32704:32;32701:119;;;32739:79;;:::i;:::-;32701:119;32859:1;32884:64;32940:7;32931:6;32920:9;32916:22;32884:64;:::i;:::-;32874:74;;32830:128;32614:351;;;;:::o;32971:85::-;33016:7;33045:5;33034:16;;32971:85;;;:::o;33062:158::-;33120:9;33153:61;33171:42;33180:32;33206:5;33180:32;:::i;:::-;33171:42;:::i;:::-;33153:61;:::i;:::-;33140:74;;33062:158;;;:::o;33226:147::-;33321:45;33360:5;33321:45;:::i;:::-;33316:3;33309:58;33226:147;;:::o;33379:114::-;33446:6;33480:5;33474:12;33464:22;;33379:114;;;:::o;33499:184::-;33598:11;33632:6;33627:3;33620:19;33672:4;33667:3;33663:14;33648:29;;33499:184;;;;:::o;33689:132::-;33756:4;33779:3;33771:11;;33809:4;33804:3;33800:14;33792:22;;33689:132;;;:::o;33827:108::-;33904:24;33922:5;33904:24;:::i;:::-;33899:3;33892:37;33827:108;;:::o;33941:179::-;34010:10;34031:46;34073:3;34065:6;34031:46;:::i;:::-;34109:4;34104:3;34100:14;34086:28;;33941:179;;;;:::o;34126:113::-;34196:4;34228;34223:3;34219:14;34211:22;;34126:113;;;:::o;34275:732::-;34394:3;34423:54;34471:5;34423:54;:::i;:::-;34493:86;34572:6;34567:3;34493:86;:::i;:::-;34486:93;;34603:56;34653:5;34603:56;:::i;:::-;34682:7;34713:1;34698:284;34723:6;34720:1;34717:13;34698:284;;;34799:6;34793:13;34826:63;34885:3;34870:13;34826:63;:::i;:::-;34819:70;;34912:60;34965:6;34912:60;:::i;:::-;34902:70;;34758:224;34745:1;34742;34738:9;34733:14;;34698:284;;;34702:14;34998:3;34991:10;;34399:608;;;34275:732;;;;:::o;35013:831::-;35276:4;35314:3;35303:9;35299:19;35291:27;;35328:71;35396:1;35385:9;35381:17;35372:6;35328:71;:::i;:::-;35409:80;35485:2;35474:9;35470:18;35461:6;35409:80;:::i;:::-;35536:9;35530:4;35526:20;35521:2;35510:9;35506:18;35499:48;35564:108;35667:4;35658:6;35564:108;:::i;:::-;35556:116;;35682:72;35750:2;35739:9;35735:18;35726:6;35682:72;:::i;:::-;35764:73;35832:3;35821:9;35817:19;35808:6;35764:73;:::i;:::-;35013:831;;;;;;;;:::o

Swarm Source

ipfs://3bece99055cef4da752c0a06e12c7945f78a5cd2678e51527de5d5531b936dec
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.