ETH Price: $2,635.99 (+0.73%)

Token

FuckYou (Fuck)
 

Overview

Max Total Supply

100,000,000 Fuck

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 Fuck

Value
$0.00
0x6bd641a60e45a47581ea8c94bba057c5944f7337
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:
FuckYou

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-01
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
   
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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 recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
   

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

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 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 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;
}


//////TestToken.sol



contract FuckYou is ERC20, Ownable {
   

            
        uint256 public maxTransactionAmount;
         uint256 public maxWallet;


    address public walletAddress = 0x5156DB92D6f57512bBC2C095B1f7e7FFEDE6660C;
    uint256 public buyFee  = 2;
    uint256 public sellFee = 2;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;
    
    address private DEAD = 0x000000000000000000000000000000000000dEaD;

    bool    private swapping;
    uint256 public swapTokensAtAmount;

    mapping (address => bool) private _isExcludedFromFees;

            event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

        mapping (address => bool) public automatedMarketMakerPairs;



    event ExcludeFromFees(address indexed account, bool isExcluded);
    event FeesUpdated(uint256 buyFee, uint256 sellFee);
    event walletAddressChanged(address indexed newWallet);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 ethSend);
    event SwapTokensAtAmountChanged(uint256 newAmount);

    constructor () ERC20("FuckYou", "Fuck") 
    {   
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
            _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        
        _isExcludedFromFees[address(this)] = true;

        
        _isExcludedFromFees[walletAddress] = true;
        
        _mint(owner(), 100 * 1e6 * (10 ** 18));
        swapTokensAtAmount = totalSupply() / 5000;
         maxTransactionAmount = (totalSupply() * 3 / 100) + (1 * 1e18); // 1% maxTransactionAmountTxn
          maxWallet = (totalSupply() * 5 / 100) + (1 * 1e9); // 2% max wallet


    }

    receive() external payable {

  	}

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim native tokens");
        if (token == address(0x0)) {
            payable(msg.sender).transfer(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function sendETH(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromFees[account] != excluded, "Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
        function updateMaxTxAmount(uint256 newNum) external onlyOwner {
           
            maxTransactionAmount = (newNum * 1e18) + (1 * 1e18) ;
        }
        
        function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
          
            maxWallet = (newNum * 1e18) + (1 * 1e18);

        }

        function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {

            require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
            _setAutomatedMarketMakerPair(pair, value);
        }

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

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 20, "Marketing fee on buy cannot be more than 20%");
        require(_sellFee <= 20, "Marketing fee on sell cannot be more than 20%");
        buyFee  = _buyFee;
        sellFee = _sellFee;
        emit FeesUpdated(buyFee, sellFee);
    }

    function changeWalletAddress(address _walletAddress) external onlyOwner {
        walletAddress = _walletAddress;
        _isExcludedFromFees[walletAddress] = true;
        emit walletAddressChanged(walletAddress);
    }
   

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{
        swapTokensAtAmount = newAmount;
        emit SwapTokensAtAmountChanged(newAmount);
    }

    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 (
                    from != owner() &&

                    to != owner() &&
                    to != address(0) &&
                    to != address(0xdead) &&
                    !swapping
                ){
                    //when buy
                    if (automatedMarketMakerPairs[from] && !_isExcludedFromFees[to]) {
                            require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");

                    }
                    
                    //when sell
                    else if (automatedMarketMakerPairs[to] && !_isExcludedFromFees[from]) {
                            require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                    }
                }




        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( canSwap &&
            !swapping &&
            to == uniswapV2Pair
        ) {
            swapping = true;
            
            swapAndSendFee(contractTokenBalance);

            swapping = false;
        }

        bool takeFee = !swapping;

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

        if(takeFee) {
            uint256 fees;
            if(from == uniswapV2Pair) {
                fees = amount * buyFee / 100;
            } else if (to == uniswapV2Pair) {
                fees = amount * sellFee / 100;
            } else {
                fees = 0;
            }
            amount -= fees;
            if(fees > 0) {
                super._transfer(from, address(this), fees);
            }
        }

        super._transfer(from, to, amount);
    }

    function swapAndSendFee(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp);

        uint256 newBalance = address(this).balance - initialBalance;

        sendETH(payable(walletAddress), newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"SwapTokensAtAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"walletAddressChanged","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_walletAddress","type":"address"}],"name":"changeWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"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":"isExcludedFromFees","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","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":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"newNum","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052735156db92d6f57512bbc2c095b1f7e7ffede6660c600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026009556002600a5561dead600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000b357600080fd5b506040518060400160405280600781526020017f4675636b596f75000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4675636b00000000000000000000000000000000000000000000000000000000815250816003908162000131919062000dc5565b50806004908162000143919062000dc5565b5050506000620001586200071b60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000284919062000f16565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000312919062000f16565b6040518363ffffffff1660e01b81526004016200033192919062000f59565b6020604051808303816000875af115801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000f16565b905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200045030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200072360201b60201c565b62000485600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008f460201b60201c565b6001600f60006200049b6200099560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006646200064c6200099560201b60201c565b6a52b7d2dcc80cd2e4000000620009bf60201b60201c565b6113886200067762000b3760201b60201c565b62000683919062000fe4565b600e81905550670de0b6b3a764000060646003620006a662000b3760201b60201c565b620006b291906200101c565b620006be919062000fe4565b620006ca919062001067565b600681905550633b9aca0060646005620006e962000b3760201b60201c565b620006f591906200101c565b62000701919062000fe4565b6200070d919062001067565b600781905550505062001283565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000795576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078c9062001129565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000807576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007fe90620011c1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620008e79190620011f4565b60405180910390a3505050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a289062001261565b60405180910390fd5b62000a456000838362000b4160201b60201c565b806002600082825462000a59919062001067565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000ab0919062001067565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b179190620011f4565b60405180910390a362000b336000838362000b4660201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000bcd57607f821691505b60208210810362000be35762000be262000b85565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c4d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c0e565b62000c59868362000c0e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ca662000ca062000c9a8462000c71565b62000c7b565b62000c71565b9050919050565b6000819050919050565b62000cc28362000c85565b62000cda62000cd18262000cad565b84845462000c1b565b825550505050565b600090565b62000cf162000ce2565b62000cfe81848462000cb7565b505050565b5b8181101562000d265762000d1a60008262000ce7565b60018101905062000d04565b5050565b601f82111562000d755762000d3f8162000be9565b62000d4a8462000bfe565b8101602085101562000d5a578190505b62000d7262000d698562000bfe565b83018262000d03565b50505b505050565b600082821c905092915050565b600062000d9a6000198460080262000d7a565b1980831691505092915050565b600062000db5838362000d87565b9150826002028217905092915050565b62000dd08262000b4b565b67ffffffffffffffff81111562000dec5762000deb62000b56565b5b62000df8825462000bb4565b62000e0582828562000d2a565b600060209050601f83116001811462000e3d576000841562000e28578287015190505b62000e34858262000da7565b86555062000ea4565b601f19841662000e4d8662000be9565b60005b8281101562000e775784890151825560018201915060208501945060208101905062000e50565b8683101562000e97578489015162000e93601f89168262000d87565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ede8262000eb1565b9050919050565b62000ef08162000ed1565b811462000efc57600080fd5b50565b60008151905062000f108162000ee5565b92915050565b60006020828403121562000f2f5762000f2e62000eac565b5b600062000f3f8482850162000eff565b91505092915050565b62000f538162000ed1565b82525050565b600060408201905062000f70600083018562000f48565b62000f7f602083018462000f48565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ff18262000c71565b915062000ffe8362000c71565b92508262001011576200101062000f86565b5b828204905092915050565b6000620010298262000c71565b9150620010368362000c71565b9250828202620010468162000c71565b9150828204841483151762001060576200105f62000fb5565b5b5092915050565b6000620010748262000c71565b9150620010818362000c71565b92508282019050808211156200109c576200109b62000fb5565b5b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062001111602483620010a2565b91506200111e82620010b3565b604082019050919050565b60006020820190508181036000830152620011448162001102565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011a9602283620010a2565b9150620011b6826200114b565b604082019050919050565b60006020820190508181036000830152620011dc816200119a565b9050919050565b620011ee8162000c71565b82525050565b60006020820190506200120b6000830184620011e3565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001249601f83620010a2565b9150620012568262001211565b602082019050919050565b600060208201905081810360008301526200127c816200123a565b9050919050565b613f1d80620012936000396000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c18bc19511610095578063ec8edf7a11610064578063ec8edf7a14610729578063f2fde38b14610752578063f8b45b051461077b578063f9d0831a146107a6576101ee565b8063c18bc1951461066d578063c8c8ebe414610696578063dd62ed3e146106c1578063e2f45605146106fe576101ee565b8063a9059cbb116100d1578063a9059cbb146105a1578063afa4f3b2146105de578063b62496f514610607578063c024666814610644576101ee565b80638da5cb5b146104e557806395d89b41146105105780639a7a23d61461053b578063a457c2d714610564576101ee565b8063395093511161017a5780636256d181116101495780636256d1811461043d5780636ad5b3ea1461046657806370a0823114610491578063715018a6146104ce576101ee565b8063395093511461036d57806347062402146103aa57806349bd5a5e146103d55780634fbee19314610400576101ee565b806318160ddd116101b657806318160ddd146102af57806323b872dd146102da5780632b14ca5614610317578063313ce56714610342576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630b78f9c01461025b5780631694505e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107cf565b6040516102159190612c32565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612ced565b610861565b6040516102529190612d48565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612d63565b61087f565b005b34801561029057600080fd5b506102996109ed565b6040516102a69190612e02565b60405180910390f35b3480156102bb57600080fd5b506102c4610a13565b6040516102d19190612e2c565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612e47565b610a1d565b60405161030e9190612d48565b60405180910390f35b34801561032357600080fd5b5061032c610b3c565b6040516103399190612e2c565b60405180910390f35b34801561034e57600080fd5b50610357610b42565b6040516103649190612eb6565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190612ced565b610b4b565b6040516103a19190612d48565b60405180910390f35b3480156103b657600080fd5b506103bf610bf7565b6040516103cc9190612e2c565b60405180910390f35b3480156103e157600080fd5b506103ea610bfd565b6040516103f79190612ee0565b60405180910390f35b34801561040c57600080fd5b5061042760048036038101906104229190612efb565b610c23565b6040516104349190612d48565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190612f28565b610c79565b005b34801561047257600080fd5b5061047b610d38565b6040516104889190612ee0565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612efb565b610d5e565b6040516104c59190612e2c565b60405180910390f35b3480156104da57600080fd5b506104e3610da6565b005b3480156104f157600080fd5b506104fa610efe565b6040516105079190612ee0565b60405180910390f35b34801561051c57600080fd5b50610525610f28565b6040516105329190612c32565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190612f81565b610fba565b005b34801561057057600080fd5b5061058b60048036038101906105869190612ced565b6110ef565b6040516105989190612d48565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612ced565b6111da565b6040516105d59190612d48565b60405180910390f35b3480156105ea57600080fd5b5061060560048036038101906106009190612f28565b6111f8565b005b34801561061357600080fd5b5061062e60048036038101906106299190612efb565b6112d0565b60405161063b9190612d48565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612f81565b6112f0565b005b34801561067957600080fd5b50610694600480360381019061068f9190612f28565b6114c2565b005b3480156106a257600080fd5b506106ab611581565b6040516106b89190612e2c565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190612fc1565b611587565b6040516106f59190612e2c565b60405180910390f35b34801561070a57600080fd5b5061071361160e565b6040516107209190612e2c565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190612efb565b611614565b005b34801561075e57600080fd5b5061077960048036038101906107749190612efb565b6117ce565b005b34801561078757600080fd5b50610790611994565b60405161079d9190612e2c565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190612efb565b61199a565b005b6060600380546107de90613030565b80601f016020809104026020016040519081016040528092919081815260200182805461080a90613030565b80156108575780601f1061082c57610100808354040283529160200191610857565b820191906000526020600020905b81548152906001019060200180831161083a57829003601f168201915b5050505050905090565b600061087561086e611c27565b8484611c2f565b6001905092915050565b610887611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090d906130ad565b60405180910390fd5b601482111561095a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109519061313f565b60405180910390fd5b601481111561099e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610995906131d1565b60405180910390fd5b8160098190555080600a819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600954600a546040516109e19291906131f1565b60405180910390a15050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a69611c27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b255782811015610b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b079061328c565b60405180910390fd5b610b2485610b1c611c27565b858403611c2f565b5b610b30858585611df8565b60019150509392505050565b600a5481565b60006012905090565b6000610bed610b58611c27565b848460016000610b66611c27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be891906132db565b611c2f565b6001905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c81611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d07906130ad565b60405180910390fd5b670de0b6b3a76400008082610d25919061330f565b610d2f91906132db565b60068190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dae611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906130ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f3790613030565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6390613030565b8015610fb05780601f10610f8557610100808354040283529160200191610fb0565b820191906000526020600020905b815481529060010190602001808311610f9357829003601f168201915b5050505050905090565b610fc2611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906130ad565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906133c3565b60405180910390fd5b6110eb82826124f2565b5050565b600080600160006110fe611c27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613455565b60405180910390fd5b6111cf6111c6611c27565b85858403611c2f565b600191505092915050565b60006111ee6111e7611c27565b8484611df8565b6001905092915050565b611200611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611286906130ad565b60405180910390fd5b80600e819055507fcba17309eff0b14bb89cad72aef8b308a23d698dfff957e2255d17bbc03620bd816040516112c59190612e2c565b60405180910390a150565b60106020528060005260406000206000915054906101000a900460ff1681565b6112f8611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e906130ad565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611419576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611410906134e7565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114b69190612d48565b60405180910390a25050565b6114ca611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611559576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611550906130ad565b60405180910390fd5b670de0b6b3a7640000808261156e919061330f565b61157891906132db565b60078190555050565b60065481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b61161c611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a2906130ad565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f32895e0b3f5e157100e6e406dc0ffc886c17a975063d03ddbd0fe9629203f0c660405160405180910390a250565b6117d6611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c906130ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90613579565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6119a2611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a28906130ad565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a96906135e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b1f573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b19573d6000803e3d6000fd5b50611c24565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b5f9190612ee0565b602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba0919061361a565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611bdd929190613647565b6020604051808303816000875af1158015611bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c209190613685565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9590613724565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d04906137b6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611deb9190612e2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613848565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd906138da565b60405180910390fd5b60008103611eef57611eea83836000612593565b6124ed565b611ef7610efe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f655750611f35610efe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff15750600d60149054906101000a900460ff16155b1561223057601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120995750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612140576006548111156120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da9061396c565b60405180910390fd5b6007546120ef83610d5e565b826120fa91906132db565b111561213b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612132906139d8565b60405180910390fd5b61222f565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121e35750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561222e5760065481111561222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490613a6a565b60405180910390fd5b5b5b5b600061223b30610d5e565b90506000600e5482101590508080156122615750600d60149054906101000a900460ff16155b80156122ba5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156122ff576001600d60146101000a81548160ff0219169083151502179055506122e382612812565b6000600d60146101000a81548160ff0219169083151502179055505b6000600d60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123b55750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123bf57600090505b80156124de576000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361243d5760646009548661242c919061330f565b6124369190613ab9565b90506124b9565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124b3576064600a54866124a2919061330f565b6124ac9190613ab9565b90506124b8565b600090505b5b80856124c59190613aea565b945060008111156124dc576124db873083612593565b5b505b6124e9868686612593565b5050505b505050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f990613848565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612668906138da565b60405180910390fd5b61267c838383612aa4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f990613b90565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461279591906132db565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127f99190612e2c565b60405180910390a361280c848484612aa9565b50505050565b60004790506000600267ffffffffffffffff81111561283457612833613bb0565b5b6040519080825280602002602001820160405280156128625781602001602082028036833780820191505090505b509050308160008151811061287a57612879613bdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129459190613c23565b8160018151811061295957612958613bdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016129f7959493929190613d49565b600060405180830381600087803b158015612a1157600080fd5b505af1158015612a25573d6000803e3d6000fd5b5050505060008247612a379190613aea565b9050612a65600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612aae565b7f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b8482604051612a969291906131f1565b60405180910390a150505050565b505050565b505050565b80471015612af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae890613def565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b1790613e40565b60006040518083038185875af1925050503d8060008114612b54576040519150601f19603f3d011682016040523d82523d6000602084013e612b59565b606091505b5050905080612b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9490613ec7565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bdc578082015181840152602081019050612bc1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c0482612ba2565b612c0e8185612bad565b9350612c1e818560208601612bbe565b612c2781612be8565b840191505092915050565b60006020820190508181036000830152612c4c8184612bf9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c8482612c59565b9050919050565b612c9481612c79565b8114612c9f57600080fd5b50565b600081359050612cb181612c8b565b92915050565b6000819050919050565b612cca81612cb7565b8114612cd557600080fd5b50565b600081359050612ce781612cc1565b92915050565b60008060408385031215612d0457612d03612c54565b5b6000612d1285828601612ca2565b9250506020612d2385828601612cd8565b9150509250929050565b60008115159050919050565b612d4281612d2d565b82525050565b6000602082019050612d5d6000830184612d39565b92915050565b60008060408385031215612d7a57612d79612c54565b5b6000612d8885828601612cd8565b9250506020612d9985828601612cd8565b9150509250929050565b6000819050919050565b6000612dc8612dc3612dbe84612c59565b612da3565b612c59565b9050919050565b6000612dda82612dad565b9050919050565b6000612dec82612dcf565b9050919050565b612dfc81612de1565b82525050565b6000602082019050612e176000830184612df3565b92915050565b612e2681612cb7565b82525050565b6000602082019050612e416000830184612e1d565b92915050565b600080600060608486031215612e6057612e5f612c54565b5b6000612e6e86828701612ca2565b9350506020612e7f86828701612ca2565b9250506040612e9086828701612cd8565b9150509250925092565b600060ff82169050919050565b612eb081612e9a565b82525050565b6000602082019050612ecb6000830184612ea7565b92915050565b612eda81612c79565b82525050565b6000602082019050612ef56000830184612ed1565b92915050565b600060208284031215612f1157612f10612c54565b5b6000612f1f84828501612ca2565b91505092915050565b600060208284031215612f3e57612f3d612c54565b5b6000612f4c84828501612cd8565b91505092915050565b612f5e81612d2d565b8114612f6957600080fd5b50565b600081359050612f7b81612f55565b92915050565b60008060408385031215612f9857612f97612c54565b5b6000612fa685828601612ca2565b9250506020612fb785828601612f6c565b9150509250929050565b60008060408385031215612fd857612fd7612c54565b5b6000612fe685828601612ca2565b9250506020612ff785828601612ca2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061304857607f821691505b60208210810361305b5761305a613001565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613097602083612bad565b91506130a282613061565b602082019050919050565b600060208201905081810360008301526130c68161308a565b9050919050565b7f4d61726b6574696e6720666565206f6e206275792063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000613129602c83612bad565b9150613134826130cd565b604082019050919050565b600060208201905081810360008301526131588161311c565b9050919050565b7f4d61726b6574696e6720666565206f6e2073656c6c2063616e6e6f742062652060008201527f6d6f7265207468616e2032302500000000000000000000000000000000000000602082015250565b60006131bb602d83612bad565b91506131c68261315f565b604082019050919050565b600060208201905081810360008301526131ea816131ae565b9050919050565b60006040820190506132066000830185612e1d565b6132136020830184612e1d565b9392505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613276602883612bad565b91506132818261321a565b604082019050919050565b600060208201905081810360008301526132a581613269565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132e682612cb7565b91506132f183612cb7565b9250828201905080821115613309576133086132ac565b5b92915050565b600061331a82612cb7565b915061332583612cb7565b925082820261333381612cb7565b9150828204841483151761334a576133496132ac565b5b5092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006133ad603983612bad565b91506133b882613351565b604082019050919050565b600060208201905081810360008301526133dc816133a0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061343f602583612bad565b915061344a826133e3565b604082019050919050565b6000602082019050818103600083015261346e81613432565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006134d1602a83612bad565b91506134dc82613475565b604082019050919050565b60006020820190508181036000830152613500816134c4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613563602683612bad565b915061356e82613507565b604082019050919050565b6000602082019050818103600083015261359281613556565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73600082015250565b60006135cf602083612bad565b91506135da82613599565b602082019050919050565b600060208201905081810360008301526135fe816135c2565b9050919050565b60008151905061361481612cc1565b92915050565b6000602082840312156136305761362f612c54565b5b600061363e84828501613605565b91505092915050565b600060408201905061365c6000830185612ed1565b6136696020830184612e1d565b9392505050565b60008151905061367f81612f55565b92915050565b60006020828403121561369b5761369a612c54565b5b60006136a984828501613670565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061370e602483612bad565b9150613719826136b2565b604082019050919050565b6000602082019050818103600083015261373d81613701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a0602283612bad565b91506137ab82613744565b604082019050919050565b600060208201905081810360008301526137cf81613793565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613832602583612bad565b915061383d826137d6565b604082019050919050565b6000602082019050818103600083015261386181613825565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138c4602383612bad565b91506138cf82613868565b604082019050919050565b600060208201905081810360008301526138f3816138b7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613956603583612bad565b9150613961826138fa565b604082019050919050565b6000602082019050818103600083015261398581613949565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006139c2601383612bad565b91506139cd8261398c565b602082019050919050565b600060208201905081810360008301526139f1816139b5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613a54603683612bad565b9150613a5f826139f8565b604082019050919050565b60006020820190508181036000830152613a8381613a47565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ac482612cb7565b9150613acf83612cb7565b925082613adf57613ade613a8a565b5b828204905092915050565b6000613af582612cb7565b9150613b0083612cb7565b9250828203905081811115613b1857613b176132ac565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b7a602683612bad565b9150613b8582613b1e565b604082019050919050565b60006020820190508181036000830152613ba981613b6d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c1d81612c8b565b92915050565b600060208284031215613c3957613c38612c54565b5b6000613c4784828501613c0e565b91505092915050565b6000819050919050565b6000613c75613c70613c6b84613c50565b612da3565b612cb7565b9050919050565b613c8581613c5a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cc081612c79565b82525050565b6000613cd28383613cb7565b60208301905092915050565b6000602082019050919050565b6000613cf682613c8b565b613d008185613c96565b9350613d0b83613ca7565b8060005b83811015613d3c578151613d238882613cc6565b9750613d2e83613cde565b925050600181019050613d0f565b5085935050505092915050565b600060a082019050613d5e6000830188612e1d565b613d6b6020830187613c7c565b8181036040830152613d7d8186613ceb565b9050613d8c6060830185612ed1565b613d996080830184612e1d565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613dd9601d83612bad565b9150613de482613da3565b602082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b600081905092915050565b50565b6000613e2a600083613e0f565b9150613e3582613e1a565b600082019050919050565b6000613e4b82613e1d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613eb1603a83612bad565b9150613ebc82613e55565b604082019050919050565b60006020820190508181036000830152613ee081613ea4565b905091905056fea2646970667358221220f5aee220656ef2f459102cbd9b1d4e52d197e852928af5c1f9df64fc1252d08164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c18bc19511610095578063ec8edf7a11610064578063ec8edf7a14610729578063f2fde38b14610752578063f8b45b051461077b578063f9d0831a146107a6576101ee565b8063c18bc1951461066d578063c8c8ebe414610696578063dd62ed3e146106c1578063e2f45605146106fe576101ee565b8063a9059cbb116100d1578063a9059cbb146105a1578063afa4f3b2146105de578063b62496f514610607578063c024666814610644576101ee565b80638da5cb5b146104e557806395d89b41146105105780639a7a23d61461053b578063a457c2d714610564576101ee565b8063395093511161017a5780636256d181116101495780636256d1811461043d5780636ad5b3ea1461046657806370a0823114610491578063715018a6146104ce576101ee565b8063395093511461036d57806347062402146103aa57806349bd5a5e146103d55780634fbee19314610400576101ee565b806318160ddd116101b657806318160ddd146102af57806323b872dd146102da5780632b14ca5614610317578063313ce56714610342576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630b78f9c01461025b5780631694505e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107cf565b6040516102159190612c32565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612ced565b610861565b6040516102529190612d48565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612d63565b61087f565b005b34801561029057600080fd5b506102996109ed565b6040516102a69190612e02565b60405180910390f35b3480156102bb57600080fd5b506102c4610a13565b6040516102d19190612e2c565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612e47565b610a1d565b60405161030e9190612d48565b60405180910390f35b34801561032357600080fd5b5061032c610b3c565b6040516103399190612e2c565b60405180910390f35b34801561034e57600080fd5b50610357610b42565b6040516103649190612eb6565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190612ced565b610b4b565b6040516103a19190612d48565b60405180910390f35b3480156103b657600080fd5b506103bf610bf7565b6040516103cc9190612e2c565b60405180910390f35b3480156103e157600080fd5b506103ea610bfd565b6040516103f79190612ee0565b60405180910390f35b34801561040c57600080fd5b5061042760048036038101906104229190612efb565b610c23565b6040516104349190612d48565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190612f28565b610c79565b005b34801561047257600080fd5b5061047b610d38565b6040516104889190612ee0565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612efb565b610d5e565b6040516104c59190612e2c565b60405180910390f35b3480156104da57600080fd5b506104e3610da6565b005b3480156104f157600080fd5b506104fa610efe565b6040516105079190612ee0565b60405180910390f35b34801561051c57600080fd5b50610525610f28565b6040516105329190612c32565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190612f81565b610fba565b005b34801561057057600080fd5b5061058b60048036038101906105869190612ced565b6110ef565b6040516105989190612d48565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612ced565b6111da565b6040516105d59190612d48565b60405180910390f35b3480156105ea57600080fd5b5061060560048036038101906106009190612f28565b6111f8565b005b34801561061357600080fd5b5061062e60048036038101906106299190612efb565b6112d0565b60405161063b9190612d48565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612f81565b6112f0565b005b34801561067957600080fd5b50610694600480360381019061068f9190612f28565b6114c2565b005b3480156106a257600080fd5b506106ab611581565b6040516106b89190612e2c565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190612fc1565b611587565b6040516106f59190612e2c565b60405180910390f35b34801561070a57600080fd5b5061071361160e565b6040516107209190612e2c565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190612efb565b611614565b005b34801561075e57600080fd5b5061077960048036038101906107749190612efb565b6117ce565b005b34801561078757600080fd5b50610790611994565b60405161079d9190612e2c565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190612efb565b61199a565b005b6060600380546107de90613030565b80601f016020809104026020016040519081016040528092919081815260200182805461080a90613030565b80156108575780601f1061082c57610100808354040283529160200191610857565b820191906000526020600020905b81548152906001019060200180831161083a57829003601f168201915b5050505050905090565b600061087561086e611c27565b8484611c2f565b6001905092915050565b610887611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090d906130ad565b60405180910390fd5b601482111561095a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109519061313f565b60405180910390fd5b601481111561099e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610995906131d1565b60405180910390fd5b8160098190555080600a819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600954600a546040516109e19291906131f1565b60405180910390a15050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a69611c27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b255782811015610b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b079061328c565b60405180910390fd5b610b2485610b1c611c27565b858403611c2f565b5b610b30858585611df8565b60019150509392505050565b600a5481565b60006012905090565b6000610bed610b58611c27565b848460016000610b66611c27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be891906132db565b611c2f565b6001905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c81611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d07906130ad565b60405180910390fd5b670de0b6b3a76400008082610d25919061330f565b610d2f91906132db565b60068190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dae611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906130ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f3790613030565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6390613030565b8015610fb05780601f10610f8557610100808354040283529160200191610fb0565b820191906000526020600020905b815481529060010190602001808311610f9357829003601f168201915b5050505050905090565b610fc2611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906130ad565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906133c3565b60405180910390fd5b6110eb82826124f2565b5050565b600080600160006110fe611c27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613455565b60405180910390fd5b6111cf6111c6611c27565b85858403611c2f565b600191505092915050565b60006111ee6111e7611c27565b8484611df8565b6001905092915050565b611200611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611286906130ad565b60405180910390fd5b80600e819055507fcba17309eff0b14bb89cad72aef8b308a23d698dfff957e2255d17bbc03620bd816040516112c59190612e2c565b60405180910390a150565b60106020528060005260406000206000915054906101000a900460ff1681565b6112f8611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e906130ad565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611419576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611410906134e7565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114b69190612d48565b60405180910390a25050565b6114ca611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611559576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611550906130ad565b60405180910390fd5b670de0b6b3a7640000808261156e919061330f565b61157891906132db565b60078190555050565b60065481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b61161c611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a2906130ad565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f32895e0b3f5e157100e6e406dc0ffc886c17a975063d03ddbd0fe9629203f0c660405160405180910390a250565b6117d6611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c906130ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90613579565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6119a2611c27565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a28906130ad565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a96906135e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b1f573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b19573d6000803e3d6000fd5b50611c24565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b5f9190612ee0565b602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba0919061361a565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611bdd929190613647565b6020604051808303816000875af1158015611bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c209190613685565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9590613724565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d04906137b6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611deb9190612e2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613848565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd906138da565b60405180910390fd5b60008103611eef57611eea83836000612593565b6124ed565b611ef7610efe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f655750611f35610efe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff15750600d60149054906101000a900460ff16155b1561223057601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120995750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612140576006548111156120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da9061396c565b60405180910390fd5b6007546120ef83610d5e565b826120fa91906132db565b111561213b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612132906139d8565b60405180910390fd5b61222f565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121e35750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561222e5760065481111561222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490613a6a565b60405180910390fd5b5b5b5b600061223b30610d5e565b90506000600e5482101590508080156122615750600d60149054906101000a900460ff16155b80156122ba5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156122ff576001600d60146101000a81548160ff0219169083151502179055506122e382612812565b6000600d60146101000a81548160ff0219169083151502179055505b6000600d60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123b55750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123bf57600090505b80156124de576000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361243d5760646009548661242c919061330f565b6124369190613ab9565b90506124b9565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124b3576064600a54866124a2919061330f565b6124ac9190613ab9565b90506124b8565b600090505b5b80856124c59190613aea565b945060008111156124dc576124db873083612593565b5b505b6124e9868686612593565b5050505b505050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f990613848565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612668906138da565b60405180910390fd5b61267c838383612aa4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f990613b90565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461279591906132db565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127f99190612e2c565b60405180910390a361280c848484612aa9565b50505050565b60004790506000600267ffffffffffffffff81111561283457612833613bb0565b5b6040519080825280602002602001820160405280156128625781602001602082028036833780820191505090505b509050308160008151811061287a57612879613bdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129459190613c23565b8160018151811061295957612958613bdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016129f7959493929190613d49565b600060405180830381600087803b158015612a1157600080fd5b505af1158015612a25573d6000803e3d6000fd5b5050505060008247612a379190613aea565b9050612a65600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612aae565b7f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b8482604051612a969291906131f1565b60405180910390a150505050565b505050565b505050565b80471015612af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae890613def565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b1790613e40565b60006040518083038185875af1925050503d8060008114612b54576040519150601f19603f3d011682016040523d82523d6000602084013e612b59565b606091505b5050905080612b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9490613ec7565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bdc578082015181840152602081019050612bc1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c0482612ba2565b612c0e8185612bad565b9350612c1e818560208601612bbe565b612c2781612be8565b840191505092915050565b60006020820190508181036000830152612c4c8184612bf9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c8482612c59565b9050919050565b612c9481612c79565b8114612c9f57600080fd5b50565b600081359050612cb181612c8b565b92915050565b6000819050919050565b612cca81612cb7565b8114612cd557600080fd5b50565b600081359050612ce781612cc1565b92915050565b60008060408385031215612d0457612d03612c54565b5b6000612d1285828601612ca2565b9250506020612d2385828601612cd8565b9150509250929050565b60008115159050919050565b612d4281612d2d565b82525050565b6000602082019050612d5d6000830184612d39565b92915050565b60008060408385031215612d7a57612d79612c54565b5b6000612d8885828601612cd8565b9250506020612d9985828601612cd8565b9150509250929050565b6000819050919050565b6000612dc8612dc3612dbe84612c59565b612da3565b612c59565b9050919050565b6000612dda82612dad565b9050919050565b6000612dec82612dcf565b9050919050565b612dfc81612de1565b82525050565b6000602082019050612e176000830184612df3565b92915050565b612e2681612cb7565b82525050565b6000602082019050612e416000830184612e1d565b92915050565b600080600060608486031215612e6057612e5f612c54565b5b6000612e6e86828701612ca2565b9350506020612e7f86828701612ca2565b9250506040612e9086828701612cd8565b9150509250925092565b600060ff82169050919050565b612eb081612e9a565b82525050565b6000602082019050612ecb6000830184612ea7565b92915050565b612eda81612c79565b82525050565b6000602082019050612ef56000830184612ed1565b92915050565b600060208284031215612f1157612f10612c54565b5b6000612f1f84828501612ca2565b91505092915050565b600060208284031215612f3e57612f3d612c54565b5b6000612f4c84828501612cd8565b91505092915050565b612f5e81612d2d565b8114612f6957600080fd5b50565b600081359050612f7b81612f55565b92915050565b60008060408385031215612f9857612f97612c54565b5b6000612fa685828601612ca2565b9250506020612fb785828601612f6c565b9150509250929050565b60008060408385031215612fd857612fd7612c54565b5b6000612fe685828601612ca2565b9250506020612ff785828601612ca2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061304857607f821691505b60208210810361305b5761305a613001565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613097602083612bad565b91506130a282613061565b602082019050919050565b600060208201905081810360008301526130c68161308a565b9050919050565b7f4d61726b6574696e6720666565206f6e206275792063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000613129602c83612bad565b9150613134826130cd565b604082019050919050565b600060208201905081810360008301526131588161311c565b9050919050565b7f4d61726b6574696e6720666565206f6e2073656c6c2063616e6e6f742062652060008201527f6d6f7265207468616e2032302500000000000000000000000000000000000000602082015250565b60006131bb602d83612bad565b91506131c68261315f565b604082019050919050565b600060208201905081810360008301526131ea816131ae565b9050919050565b60006040820190506132066000830185612e1d565b6132136020830184612e1d565b9392505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613276602883612bad565b91506132818261321a565b604082019050919050565b600060208201905081810360008301526132a581613269565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132e682612cb7565b91506132f183612cb7565b9250828201905080821115613309576133086132ac565b5b92915050565b600061331a82612cb7565b915061332583612cb7565b925082820261333381612cb7565b9150828204841483151761334a576133496132ac565b5b5092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006133ad603983612bad565b91506133b882613351565b604082019050919050565b600060208201905081810360008301526133dc816133a0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061343f602583612bad565b915061344a826133e3565b604082019050919050565b6000602082019050818103600083015261346e81613432565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006134d1602a83612bad565b91506134dc82613475565b604082019050919050565b60006020820190508181036000830152613500816134c4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613563602683612bad565b915061356e82613507565b604082019050919050565b6000602082019050818103600083015261359281613556565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73600082015250565b60006135cf602083612bad565b91506135da82613599565b602082019050919050565b600060208201905081810360008301526135fe816135c2565b9050919050565b60008151905061361481612cc1565b92915050565b6000602082840312156136305761362f612c54565b5b600061363e84828501613605565b91505092915050565b600060408201905061365c6000830185612ed1565b6136696020830184612e1d565b9392505050565b60008151905061367f81612f55565b92915050565b60006020828403121561369b5761369a612c54565b5b60006136a984828501613670565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061370e602483612bad565b9150613719826136b2565b604082019050919050565b6000602082019050818103600083015261373d81613701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a0602283612bad565b91506137ab82613744565b604082019050919050565b600060208201905081810360008301526137cf81613793565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613832602583612bad565b915061383d826137d6565b604082019050919050565b6000602082019050818103600083015261386181613825565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138c4602383612bad565b91506138cf82613868565b604082019050919050565b600060208201905081810360008301526138f3816138b7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613956603583612bad565b9150613961826138fa565b604082019050919050565b6000602082019050818103600083015261398581613949565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006139c2601383612bad565b91506139cd8261398c565b602082019050919050565b600060208201905081810360008301526139f1816139b5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613a54603683612bad565b9150613a5f826139f8565b604082019050919050565b60006020820190508181036000830152613a8381613a47565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ac482612cb7565b9150613acf83612cb7565b925082613adf57613ade613a8a565b5b828204905092915050565b6000613af582612cb7565b9150613b0083612cb7565b9250828203905081811115613b1857613b176132ac565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b7a602683612bad565b9150613b8582613b1e565b604082019050919050565b60006020820190508181036000830152613ba981613b6d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c1d81612c8b565b92915050565b600060208284031215613c3957613c38612c54565b5b6000613c4784828501613c0e565b91505092915050565b6000819050919050565b6000613c75613c70613c6b84613c50565b612da3565b612cb7565b9050919050565b613c8581613c5a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cc081612c79565b82525050565b6000613cd28383613cb7565b60208301905092915050565b6000602082019050919050565b6000613cf682613c8b565b613d008185613c96565b9350613d0b83613ca7565b8060005b83811015613d3c578151613d238882613cc6565b9750613d2e83613cde565b925050600181019050613d0f565b5085935050505092915050565b600060a082019050613d5e6000830188612e1d565b613d6b6020830187613c7c565b8181036040830152613d7d8186613ceb565b9050613d8c6060830185612ed1565b613d996080830184612e1d565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613dd9601d83612bad565b9150613de482613da3565b602082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b600081905092915050565b50565b6000613e2a600083613e0f565b9150613e3582613e1a565b600082019050919050565b6000613e4b82613e1d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613eb1603a83612bad565b9150613ebc82613e55565b604082019050919050565b60006020820190508181036000830152613ee081613ea4565b905091905056fea2646970667358221220f5aee220656ef2f459102cbd9b1d4e52d197e852928af5c1f9df64fc1252d08164736f6c63430008130033

Deployed Bytecode Sourcemap

15446:7973:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2738:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3652:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19660:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15743:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3059:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3834:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15708:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2958:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4415:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15675:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15791:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18718:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18853:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15595:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3175:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1925:148;;;;;;;;;;;;;:::i;:::-;;1711:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2846:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19186:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4638:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3310:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20249:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16138:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18418:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19027:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15513:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3493:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15938:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20012:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2081:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15560:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17646:441;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2738:100;2792:13;2825:5;2818:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2738:100;:::o;3652:169::-;3735:4;3752:39;3761:12;:10;:12::i;:::-;3775:7;3784:6;3752:8;:39::i;:::-;3809:4;3802:11;;3652:169;;;;:::o;19660:344::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19761:2:::1;19750:7;:13;;19742:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19843:2;19831:8;:14;;19823:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19916:7;19906:6;:17;;;;19944:8;19934:7;:18;;;;19968:28;19980:6;;19988:7;;19968:28;;;;;;;:::i;:::-;;;;;;;;19660:344:::0;;:::o;15743:41::-;;;;;;;;;;;;;:::o;3059:108::-;3120:7;3147:12;;3140:19;;3059:108;:::o;3834:573::-;3974:4;3991:24;4018:11;:19;4030:6;4018:19;;;;;;;;;;;;;;;:33;4038:12;:10;:12::i;:::-;4018:33;;;;;;;;;;;;;;;;3991:60;;4086:17;4066:16;:37;4062:265;;4148:6;4128:16;:26;;4120:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4243:57;4252:6;4260:12;:10;:12::i;:::-;4293:6;4274:16;:25;4243:8;:57::i;:::-;4062:265;4339:36;4349:6;4357:9;4368:6;4339:9;:36::i;:::-;4395:4;4388:11;;;3834:573;;;;;:::o;15708:26::-;;;;:::o;2958:93::-;3016:5;3041:2;3034:9;;2958:93;:::o;4415:215::-;4503:4;4520:80;4529:12;:10;:12::i;:::-;4543:7;4589:10;4552:11;:25;4564:12;:10;:12::i;:::-;4552:25;;;;;;;;;;;;;;;:34;4578:7;4552:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4520:8;:80::i;:::-;4618:4;4611:11;;4415:215;;;;:::o;15675:26::-;;;;:::o;15791:29::-;;;;;;;;;;;;;:::o;18718:125::-;18783:4;18807:19;:28;18827:7;18807:28;;;;;;;;;;;;;;;;;;;;;;;;;18800:35;;18718:125;;;:::o;18853:154::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18985:8:::1;18976:4:::0;18967:6:::1;:13;;;;:::i;:::-;18966:28;;;;:::i;:::-;18943:20;:51;;;;18853:154:::0;:::o;15595:73::-;;;;;;;;;;;;;:::o;3175:127::-;3249:7;3276:9;:18;3286:7;3276:18;;;;;;;;;;;;;;;;3269:25;;3175:127;;;:::o;1925:148::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2032:1:::1;1995:40;;2016:6;;;;;;;;;;;1995:40;;;;;;;;;;;;2063:1;2046:6;;:19;;;;;;;;;;;;;;;;;;1925:148::o:0;1711:79::-;1749:7;1776:6;;;;;;;;;;;1769:13;;1711:79;:::o;2846:104::-;2902:13;2935:7;2928:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2846:104;:::o;19186:256::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19299:13:::1;;;;;;;;;;;19291:21;;:4;:21;;::::0;19283:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19389:41;19418:4;19424:5;19389:28;:41::i;:::-;19186:256:::0;;:::o;4638:413::-;4731:4;4748:24;4775:11;:25;4787:12;:10;:12::i;:::-;4775:25;;;;;;;;;;;;;;;:34;4801:7;4775:34;;;;;;;;;;;;;;;;4748:61;;4848:15;4828:16;:35;;4820:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4941:67;4950:12;:10;:12::i;:::-;4964:7;4992:15;4973:16;:34;4941:8;:67::i;:::-;5039:4;5032:11;;;4638:413;;;;:::o;3310:175::-;3396:4;3413:42;3423:12;:10;:12::i;:::-;3437:9;3448:6;3413:9;:42::i;:::-;3473:4;3466:11;;3310:175;;;;:::o;20249:169::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20349:9:::1;20328:18;:30;;;;20374:36;20400:9;20374:36;;;;;;:::i;:::-;;;;;;;;20249:169:::0;:::o;16138:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;18418:292::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18545:8:::1;18513:40;;:19;:28;18533:7;18513:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;18505:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18642:8;18611:19;:28;18631:7;18611:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18684:7;18668:34;;;18693:8;18668:34;;;;;;:::i;:::-;;;;;;;;18418:292:::0;;:::o;19027:147::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19151:8:::1;19142:4:::0;19133:6:::1;:13;;;;:::i;:::-;19132:28;;;;:::i;:::-;19120:9;:40;;;;19027:147:::0;:::o;15513:35::-;;;;:::o;3493:151::-;3582:7;3609:11;:18;3621:5;3609:18;;;;;;;;;;;;;;;:27;3628:7;3609:27;;;;;;;;;;;;;;;;3602:34;;3493:151;;;;:::o;15938:33::-;;;;:::o;20012:224::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20111:14:::1;20095:13;;:30;;;;;;;;;;;;;;;;;;20173:4;20136:19;:34;20156:13;;;;;;;;;;;20136:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20214:13;;;;;;;;;;;20193:35;;;;;;;;;;;;20012:224:::0;:::o;2081:244::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2190:1:::1;2170:22;;:8;:22;;::::0;2162:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2280:8;2251:38;;2272:6;;;;;;;;;;;2251:38;;;;;;;;;;;;2309:8;2300:6;;:17;;;;;;;;;;;;;;;;;;2081:244:::0;:::o;15560:24::-;;;;:::o;17646:441::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;;:22;;;1830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17742:4:::1;17725:22;;:5;:22;;::::0;17717:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17816:3;17799:21;;:5;:21;;::::0;17795:126:::1;;17845:10;17837:28;;:51;17866:21;17837:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17903:7;;17795:126;17931:17;17958:5;17931:33;;17975:15;17993:10;:20;;;18022:4;17993:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17975:53;;18039:10;:19;;;18059:10;18071:7;18039:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17706:381;;1908:1;17646:441:::0;:::o;1034:98::-;1087:7;1114:10;1107:17;;1034:98;:::o;6808:380::-;6961:1;6944:19;;:5;:19;;;6936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7042:1;7023:21;;:7;:21;;;7015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7126:6;7096:11;:18;7108:5;7096:18;;;;;;;;;;;;;;;:27;7115:7;7096:27;;;;;;;;;;;;;;;:36;;;;7164:7;7148:32;;7157:5;7148:32;;;7173:6;7148:32;;;;;;:::i;:::-;;;;;;;;6808:380;;;:::o;20426:2318::-;20575:1;20559:18;;:4;:18;;;20551:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20652:1;20638:16;;:2;:16;;;20630:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20727:1;20717:6;:11;20714:92;;20745:28;20761:4;20767:2;20771:1;20745:15;:28::i;:::-;20788:7;;20714:92;20844:7;:5;:7::i;:::-;20836:15;;:4;:15;;;;:55;;;;;20884:7;:5;:7::i;:::-;20878:13;;:2;:13;;;;20836:55;:96;;;;;20930:1;20916:16;;:2;:16;;;;20836:96;:142;;;;;20971:6;20957:21;;:2;:21;;;;20836:142;:176;;;;;21004:8;;;;;;;;;;;21003:9;20836:176;20810:910;;;21090:25;:31;21116:4;21090:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;21126:19;:23;21146:2;21126:23;;;;;;;;;;;;;;;;;;;;;;;;;21125:24;21090:59;21086:615;;;21200:20;;21190:6;:30;;21182:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21343:9;;21326:13;21336:2;21326:9;:13::i;:::-;21317:6;:22;;;;:::i;:::-;:35;;21309:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21086:615;;;21488:25;:29;21514:2;21488:29;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;21522:19;:25;21542:4;21522:25;;;;;;;;;;;;;;;;;;;;;;;;;21521:26;21488:59;21484:217;;;21598:20;;21588:6;:30;;21580:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21484:217;21086:615;20810:910;21738:28;21769:24;21787:4;21769:9;:24::i;:::-;21738:55;;21806:12;21845:18;;21821:20;:42;;21806:57;;21880:7;:33;;;;;21905:8;;;;;;;;;;;21904:9;21880:33;:69;;;;;21936:13;;;;;;;;;;;21930:19;;:2;:19;;;21880:69;21876:225;;;21987:4;21976:8;;:15;;;;;;;;;;;;;;;;;;22020:36;22035:20;22020:14;:36::i;:::-;22084:5;22073:8;;:16;;;;;;;;;;;;;;;;;;21876:225;22113:12;22129:8;;;;;;;;;;;22128:9;22113:24;;22153:19;:25;22173:4;22153:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22182:19;:23;22202:2;22182:23;;;;;;;;;;;;;;;;;;;;;;;;;22153:52;22150:98;;;22231:5;22221:15;;22150:98;22263:7;22260:431;;;22287:12;22325:13;;;;;;;;;;;22317:21;;:4;:21;;;22314:233;;22384:3;22375:6;;22366;:15;;;;:::i;:::-;:21;;;;:::i;:::-;22359:28;;22314:233;;;22419:13;;;;;;;;;;;22413:19;;:2;:19;;;22409:138;;22479:3;22469:7;;22460:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;22453:29;;22409:138;;;22530:1;22523:8;;22409:138;22314:233;22571:4;22561:14;;;;;:::i;:::-;;;22600:1;22593:4;:8;22590:90;;;22622:42;22638:4;22652;22659;22622:15;:42::i;:::-;22590:90;22272:419;22260:431;22703:33;22719:4;22725:2;22729:6;22703:15;:33::i;:::-;20540:2204;;;20426:2318;;;;:::o;19454:198::-;19575:5;19541:25;:31;19567:4;19541:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19634:5;19600:40;;19628:4;19600:40;;;;;;;;;;;;19454:198;;:::o;5059:733::-;5217:1;5199:20;;:6;:20;;;5191:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5301:1;5280:23;;:9;:23;;;5272:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5356:47;5377:6;5385:9;5396:6;5356:20;:47::i;:::-;5416:21;5440:9;:17;5450:6;5440:17;;;;;;;;;;;;;;;;5416:41;;5493:6;5476:13;:23;;5468:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5614:6;5598:13;:22;5578:9;:17;5588:6;5578:17;;;;;;;;;;;;;;;:42;;;;5666:6;5642:9;:20;5652:9;5642:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5707:9;5690:35;;5699:6;5690:35;;;5718:6;5690:35;;;;;;:::i;:::-;;;;;;;;5738:46;5758:6;5766:9;5777:6;5738:19;:46::i;:::-;5180:612;5059:733;;;:::o;22752:660::-;22816:22;22841:21;22816:46;;22875:21;22913:1;22899:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22875:40;;22944:4;22926;22931:1;22926:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22970:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22960:4;22965:1;22960:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23005:15;;;;;;;;;;;:66;;;23086:11;23112:1;23156:4;23183;23203:15;23005:214;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23232:18;23277:14;23253:21;:38;;;;:::i;:::-;23232:59;;23304:43;23320:13;;;;;;;;;;;23336:10;23304:7;:43::i;:::-;23365:39;23380:11;23393:10;23365:39;;;;;;;:::i;:::-;;;;;;;;22805:607;;;22752:660;:::o;7196:125::-;;;;:::o;7329:124::-;;;;:::o;18095:315::-;18208:6;18183:21;:31;;18175:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18262:12;18280:9;:14;;18302:6;18280:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18261:52;;;18332:7;18324:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;18164:246;18095:315;;:::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:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:153::-;4349:9;4382:37;4413:5;4382:37;:::i;:::-;4369:50;;4272:153;;;:::o;4431:185::-;4545:64;4603:5;4545:64;:::i;:::-;4540:3;4533:77;4431:185;;:::o;4622:276::-;4742:4;4780:2;4769:9;4765:18;4757:26;;4793:98;4888:1;4877:9;4873:17;4864:6;4793:98;:::i;:::-;4622:276;;;;:::o;4904:118::-;4991:24;5009:5;4991:24;:::i;:::-;4986:3;4979:37;4904:118;;:::o;5028:222::-;5121:4;5159:2;5148:9;5144:18;5136:26;;5172:71;5240:1;5229:9;5225:17;5216:6;5172:71;:::i;:::-;5028:222;;;;:::o;5256:619::-;5333:6;5341;5349;5398:2;5386:9;5377:7;5373:23;5369:32;5366:119;;;5404:79;;:::i;:::-;5366:119;5524:1;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5495:117;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5779:2;5805:53;5850:7;5841:6;5830:9;5826:22;5805:53;:::i;:::-;5795:63;;5750:118;5256:619;;;;;:::o;5881:86::-;5916:7;5956:4;5949:5;5945:16;5934:27;;5881:86;;;:::o;5973:112::-;6056:22;6072:5;6056:22;:::i;:::-;6051:3;6044:35;5973:112;;:::o;6091:214::-;6180:4;6218:2;6207:9;6203:18;6195:26;;6231:67;6295:1;6284:9;6280:17;6271:6;6231:67;:::i;:::-;6091:214;;;;:::o;6311:118::-;6398:24;6416:5;6398:24;:::i;:::-;6393:3;6386:37;6311:118;;:::o;6435:222::-;6528:4;6566:2;6555:9;6551:18;6543:26;;6579:71;6647:1;6636:9;6632:17;6623:6;6579:71;:::i;:::-;6435:222;;;;:::o;6663:329::-;6722:6;6771:2;6759:9;6750:7;6746:23;6742:32;6739:119;;;6777:79;;:::i;:::-;6739:119;6897:1;6922:53;6967:7;6958:6;6947:9;6943:22;6922:53;:::i;:::-;6912:63;;6868:117;6663:329;;;;:::o;6998:::-;7057:6;7106:2;7094:9;7085:7;7081:23;7077:32;7074:119;;;7112:79;;:::i;:::-;7074:119;7232:1;7257:53;7302:7;7293:6;7282:9;7278:22;7257:53;:::i;:::-;7247:63;;7203:117;6998:329;;;;:::o;7333:116::-;7403:21;7418:5;7403:21;:::i;:::-;7396:5;7393:32;7383:60;;7439:1;7436;7429:12;7383:60;7333:116;:::o;7455:133::-;7498:5;7536:6;7523:20;7514:29;;7552:30;7576:5;7552:30;:::i;:::-;7455:133;;;;:::o;7594:468::-;7659:6;7667;7716:2;7704:9;7695:7;7691:23;7687:32;7684:119;;;7722:79;;:::i;:::-;7684:119;7842:1;7867:53;7912:7;7903:6;7892:9;7888:22;7867:53;:::i;:::-;7857:63;;7813:117;7969:2;7995:50;8037:7;8028:6;8017:9;8013:22;7995:50;:::i;:::-;7985:60;;7940:115;7594:468;;;;;:::o;8068:474::-;8136:6;8144;8193:2;8181:9;8172:7;8168:23;8164:32;8161:119;;;8199:79;;:::i;:::-;8161:119;8319:1;8344:53;8389:7;8380:6;8369:9;8365:22;8344:53;:::i;:::-;8334:63;;8290:117;8446:2;8472:53;8517:7;8508:6;8497:9;8493:22;8472:53;:::i;:::-;8462:63;;8417:118;8068:474;;;;;:::o;8548:180::-;8596:77;8593:1;8586:88;8693:4;8690:1;8683:15;8717:4;8714:1;8707:15;8734:320;8778:6;8815:1;8809:4;8805:12;8795:22;;8862:1;8856:4;8852:12;8883:18;8873:81;;8939:4;8931:6;8927:17;8917:27;;8873:81;9001:2;8993:6;8990:14;8970:18;8967:38;8964:84;;9020:18;;:::i;:::-;8964:84;8785:269;8734:320;;;:::o;9060:182::-;9200:34;9196:1;9188:6;9184:14;9177:58;9060:182;:::o;9248:366::-;9390:3;9411:67;9475:2;9470:3;9411:67;:::i;:::-;9404:74;;9487:93;9576:3;9487:93;:::i;:::-;9605:2;9600:3;9596:12;9589:19;;9248:366;;;:::o;9620:419::-;9786:4;9824:2;9813:9;9809:18;9801:26;;9873:9;9867:4;9863:20;9859:1;9848:9;9844:17;9837:47;9901:131;10027:4;9901:131;:::i;:::-;9893:139;;9620:419;;;:::o;10045:231::-;10185:34;10181:1;10173:6;10169:14;10162:58;10254:14;10249:2;10241:6;10237:15;10230:39;10045:231;:::o;10282:366::-;10424:3;10445:67;10509:2;10504:3;10445:67;:::i;:::-;10438:74;;10521:93;10610:3;10521:93;:::i;:::-;10639:2;10634:3;10630:12;10623:19;;10282:366;;;:::o;10654:419::-;10820:4;10858:2;10847:9;10843:18;10835:26;;10907:9;10901:4;10897:20;10893:1;10882:9;10878:17;10871:47;10935:131;11061:4;10935:131;:::i;:::-;10927:139;;10654:419;;;:::o;11079:232::-;11219:34;11215:1;11207:6;11203:14;11196:58;11288:15;11283:2;11275:6;11271:15;11264:40;11079:232;:::o;11317:366::-;11459:3;11480:67;11544:2;11539:3;11480:67;:::i;:::-;11473:74;;11556:93;11645:3;11556:93;:::i;:::-;11674:2;11669:3;11665:12;11658:19;;11317:366;;;:::o;11689:419::-;11855:4;11893:2;11882:9;11878:18;11870:26;;11942:9;11936:4;11932:20;11928:1;11917:9;11913:17;11906:47;11970:131;12096:4;11970:131;:::i;:::-;11962:139;;11689:419;;;:::o;12114:332::-;12235:4;12273:2;12262:9;12258:18;12250:26;;12286:71;12354:1;12343:9;12339:17;12330:6;12286:71;:::i;:::-;12367:72;12435:2;12424:9;12420:18;12411:6;12367:72;:::i;:::-;12114:332;;;;;:::o;12452:227::-;12592:34;12588:1;12580:6;12576:14;12569:58;12661:10;12656:2;12648:6;12644:15;12637:35;12452:227;:::o;12685:366::-;12827:3;12848:67;12912:2;12907:3;12848:67;:::i;:::-;12841:74;;12924:93;13013:3;12924:93;:::i;:::-;13042:2;13037:3;13033:12;13026:19;;12685:366;;;:::o;13057:419::-;13223:4;13261:2;13250:9;13246:18;13238:26;;13310:9;13304:4;13300:20;13296:1;13285:9;13281:17;13274:47;13338:131;13464:4;13338:131;:::i;:::-;13330:139;;13057:419;;;:::o;13482:180::-;13530:77;13527:1;13520:88;13627:4;13624:1;13617:15;13651:4;13648:1;13641:15;13668:191;13708:3;13727:20;13745:1;13727:20;:::i;:::-;13722:25;;13761:20;13779:1;13761:20;:::i;:::-;13756:25;;13804:1;13801;13797:9;13790:16;;13825:3;13822:1;13819:10;13816:36;;;13832:18;;:::i;:::-;13816:36;13668:191;;;;:::o;13865:410::-;13905:7;13928:20;13946:1;13928:20;:::i;:::-;13923:25;;13962:20;13980:1;13962:20;:::i;:::-;13957:25;;14017:1;14014;14010:9;14039:30;14057:11;14039:30;:::i;:::-;14028:41;;14218:1;14209:7;14205:15;14202:1;14199:22;14179:1;14172:9;14152:83;14129:139;;14248:18;;:::i;:::-;14129:139;13913:362;13865:410;;;;:::o;14281:244::-;14421:34;14417:1;14409:6;14405:14;14398:58;14490:27;14485:2;14477:6;14473:15;14466:52;14281:244;:::o;14531:366::-;14673:3;14694:67;14758:2;14753:3;14694:67;:::i;:::-;14687:74;;14770:93;14859:3;14770:93;:::i;:::-;14888:2;14883:3;14879:12;14872:19;;14531:366;;;:::o;14903:419::-;15069:4;15107:2;15096:9;15092:18;15084:26;;15156:9;15150:4;15146:20;15142:1;15131:9;15127:17;15120:47;15184:131;15310:4;15184:131;:::i;:::-;15176:139;;14903:419;;;:::o;15328:224::-;15468:34;15464:1;15456:6;15452:14;15445:58;15537:7;15532:2;15524:6;15520:15;15513:32;15328:224;:::o;15558:366::-;15700:3;15721:67;15785:2;15780:3;15721:67;:::i;:::-;15714:74;;15797:93;15886:3;15797:93;:::i;:::-;15915:2;15910:3;15906:12;15899:19;;15558:366;;;:::o;15930:419::-;16096:4;16134:2;16123:9;16119:18;16111:26;;16183:9;16177:4;16173:20;16169:1;16158:9;16154:17;16147:47;16211:131;16337:4;16211:131;:::i;:::-;16203:139;;15930:419;;;:::o;16355:229::-;16495:34;16491:1;16483:6;16479:14;16472:58;16564:12;16559:2;16551:6;16547:15;16540:37;16355:229;:::o;16590:366::-;16732:3;16753:67;16817:2;16812:3;16753:67;:::i;:::-;16746:74;;16829:93;16918:3;16829:93;:::i;:::-;16947:2;16942:3;16938:12;16931:19;;16590:366;;;:::o;16962:419::-;17128:4;17166:2;17155:9;17151:18;17143:26;;17215:9;17209:4;17205:20;17201:1;17190:9;17186:17;17179:47;17243:131;17369:4;17243:131;:::i;:::-;17235:139;;16962:419;;;:::o;17387:225::-;17527:34;17523:1;17515:6;17511:14;17504:58;17596:8;17591:2;17583:6;17579:15;17572:33;17387:225;:::o;17618:366::-;17760:3;17781:67;17845:2;17840:3;17781:67;:::i;:::-;17774:74;;17857:93;17946:3;17857:93;:::i;:::-;17975:2;17970:3;17966:12;17959:19;;17618:366;;;:::o;17990:419::-;18156:4;18194:2;18183:9;18179:18;18171:26;;18243:9;18237:4;18233:20;18229:1;18218:9;18214:17;18207:47;18271:131;18397:4;18271:131;:::i;:::-;18263:139;;17990:419;;;:::o;18415:182::-;18555:34;18551:1;18543:6;18539:14;18532:58;18415:182;:::o;18603:366::-;18745:3;18766:67;18830:2;18825:3;18766:67;:::i;:::-;18759:74;;18842:93;18931:3;18842:93;:::i;:::-;18960:2;18955:3;18951:12;18944:19;;18603:366;;;:::o;18975:419::-;19141:4;19179:2;19168:9;19164:18;19156:26;;19228:9;19222:4;19218:20;19214:1;19203:9;19199:17;19192:47;19256:131;19382:4;19256:131;:::i;:::-;19248:139;;18975:419;;;:::o;19400:143::-;19457:5;19488:6;19482:13;19473:22;;19504:33;19531:5;19504:33;:::i;:::-;19400:143;;;;:::o;19549:351::-;19619:6;19668:2;19656:9;19647:7;19643:23;19639:32;19636:119;;;19674:79;;:::i;:::-;19636:119;19794:1;19819:64;19875:7;19866:6;19855:9;19851:22;19819:64;:::i;:::-;19809:74;;19765:128;19549:351;;;;:::o;19906:332::-;20027:4;20065:2;20054:9;20050:18;20042:26;;20078:71;20146:1;20135:9;20131:17;20122:6;20078:71;:::i;:::-;20159:72;20227:2;20216:9;20212:18;20203:6;20159:72;:::i;:::-;19906:332;;;;;:::o;20244:137::-;20298:5;20329:6;20323:13;20314:22;;20345:30;20369:5;20345:30;:::i;:::-;20244:137;;;;:::o;20387:345::-;20454:6;20503:2;20491:9;20482:7;20478:23;20474:32;20471:119;;;20509:79;;:::i;:::-;20471:119;20629:1;20654:61;20707:7;20698:6;20687:9;20683:22;20654:61;:::i;:::-;20644:71;;20600:125;20387:345;;;;:::o;20738:223::-;20878:34;20874:1;20866:6;20862:14;20855:58;20947:6;20942:2;20934:6;20930:15;20923:31;20738:223;:::o;20967:366::-;21109:3;21130:67;21194:2;21189:3;21130:67;:::i;:::-;21123:74;;21206:93;21295:3;21206:93;:::i;:::-;21324:2;21319:3;21315:12;21308:19;;20967:366;;;:::o;21339:419::-;21505:4;21543:2;21532:9;21528:18;21520:26;;21592:9;21586:4;21582:20;21578:1;21567:9;21563:17;21556:47;21620:131;21746:4;21620:131;:::i;:::-;21612:139;;21339:419;;;:::o;21764:221::-;21904:34;21900:1;21892:6;21888:14;21881:58;21973:4;21968:2;21960:6;21956:15;21949:29;21764:221;:::o;21991:366::-;22133:3;22154:67;22218:2;22213:3;22154:67;:::i;:::-;22147:74;;22230:93;22319:3;22230:93;:::i;:::-;22348:2;22343:3;22339:12;22332:19;;21991:366;;;:::o;22363:419::-;22529:4;22567:2;22556:9;22552:18;22544:26;;22616:9;22610:4;22606:20;22602:1;22591:9;22587:17;22580:47;22644:131;22770:4;22644:131;:::i;:::-;22636:139;;22363:419;;;:::o;22788:224::-;22928:34;22924:1;22916:6;22912:14;22905:58;22997:7;22992:2;22984:6;22980:15;22973:32;22788:224;:::o;23018:366::-;23160:3;23181:67;23245:2;23240:3;23181:67;:::i;:::-;23174:74;;23257:93;23346:3;23257:93;:::i;:::-;23375:2;23370:3;23366:12;23359:19;;23018:366;;;:::o;23390:419::-;23556:4;23594:2;23583:9;23579:18;23571:26;;23643:9;23637:4;23633:20;23629:1;23618:9;23614:17;23607:47;23671:131;23797:4;23671:131;:::i;:::-;23663:139;;23390:419;;;:::o;23815:222::-;23955:34;23951:1;23943:6;23939:14;23932:58;24024:5;24019:2;24011:6;24007:15;24000:30;23815:222;:::o;24043:366::-;24185:3;24206:67;24270:2;24265:3;24206:67;:::i;:::-;24199:74;;24282:93;24371:3;24282:93;:::i;:::-;24400:2;24395:3;24391:12;24384:19;;24043:366;;;:::o;24415:419::-;24581:4;24619:2;24608:9;24604:18;24596:26;;24668:9;24662:4;24658:20;24654:1;24643:9;24639:17;24632:47;24696:131;24822:4;24696:131;:::i;:::-;24688:139;;24415:419;;;:::o;24840:240::-;24980:34;24976:1;24968:6;24964:14;24957:58;25049:23;25044:2;25036:6;25032:15;25025:48;24840:240;:::o;25086:366::-;25228:3;25249:67;25313:2;25308:3;25249:67;:::i;:::-;25242:74;;25325:93;25414:3;25325:93;:::i;:::-;25443:2;25438:3;25434:12;25427:19;;25086:366;;;:::o;25458:419::-;25624:4;25662:2;25651:9;25647:18;25639:26;;25711:9;25705:4;25701:20;25697:1;25686:9;25682:17;25675:47;25739:131;25865:4;25739:131;:::i;:::-;25731:139;;25458:419;;;:::o;25883:169::-;26023:21;26019:1;26011:6;26007:14;26000:45;25883:169;:::o;26058:366::-;26200:3;26221:67;26285:2;26280:3;26221:67;:::i;:::-;26214:74;;26297:93;26386:3;26297:93;:::i;:::-;26415:2;26410:3;26406:12;26399:19;;26058:366;;;:::o;26430:419::-;26596:4;26634:2;26623:9;26619:18;26611:26;;26683:9;26677:4;26673:20;26669:1;26658:9;26654:17;26647:47;26711:131;26837:4;26711:131;:::i;:::-;26703:139;;26430:419;;;:::o;26855:241::-;26995:34;26991:1;26983:6;26979:14;26972:58;27064:24;27059:2;27051:6;27047:15;27040:49;26855:241;:::o;27102:366::-;27244:3;27265:67;27329:2;27324:3;27265:67;:::i;:::-;27258:74;;27341:93;27430:3;27341:93;:::i;:::-;27459:2;27454:3;27450:12;27443:19;;27102:366;;;:::o;27474:419::-;27640:4;27678:2;27667:9;27663:18;27655:26;;27727:9;27721:4;27717:20;27713:1;27702:9;27698:17;27691:47;27755:131;27881:4;27755:131;:::i;:::-;27747:139;;27474:419;;;:::o;27899:180::-;27947:77;27944:1;27937:88;28044:4;28041:1;28034:15;28068:4;28065:1;28058:15;28085:185;28125:1;28142:20;28160:1;28142:20;:::i;:::-;28137:25;;28176:20;28194:1;28176:20;:::i;:::-;28171:25;;28215:1;28205:35;;28220:18;;:::i;:::-;28205:35;28262:1;28259;28255:9;28250:14;;28085:185;;;;:::o;28276:194::-;28316:4;28336:20;28354:1;28336:20;:::i;:::-;28331:25;;28370:20;28388:1;28370:20;:::i;:::-;28365:25;;28414:1;28411;28407:9;28399:17;;28438:1;28432:4;28429:11;28426:37;;;28443:18;;:::i;:::-;28426:37;28276:194;;;;:::o;28476:225::-;28616:34;28612:1;28604:6;28600:14;28593:58;28685:8;28680:2;28672:6;28668:15;28661:33;28476:225;:::o;28707:366::-;28849:3;28870:67;28934:2;28929:3;28870:67;:::i;:::-;28863:74;;28946:93;29035:3;28946:93;:::i;:::-;29064:2;29059:3;29055:12;29048:19;;28707:366;;;:::o;29079:419::-;29245:4;29283:2;29272:9;29268:18;29260:26;;29332:9;29326:4;29322:20;29318:1;29307:9;29303:17;29296:47;29360:131;29486:4;29360:131;:::i;:::-;29352:139;;29079:419;;;:::o;29504:180::-;29552:77;29549:1;29542:88;29649:4;29646:1;29639:15;29673:4;29670:1;29663:15;29690:180;29738:77;29735:1;29728:88;29835:4;29832:1;29825:15;29859:4;29856:1;29849:15;29876:143;29933:5;29964:6;29958:13;29949:22;;29980:33;30007:5;29980:33;:::i;:::-;29876:143;;;;:::o;30025:351::-;30095:6;30144:2;30132:9;30123:7;30119:23;30115:32;30112:119;;;30150:79;;:::i;:::-;30112:119;30270:1;30295:64;30351:7;30342:6;30331:9;30327:22;30295:64;:::i;:::-;30285:74;;30241:128;30025:351;;;;:::o;30382:85::-;30427:7;30456:5;30445:16;;30382:85;;;:::o;30473:158::-;30531:9;30564:61;30582:42;30591:32;30617:5;30591:32;:::i;:::-;30582:42;:::i;:::-;30564:61;:::i;:::-;30551:74;;30473:158;;;:::o;30637:147::-;30732:45;30771:5;30732:45;:::i;:::-;30727:3;30720:58;30637:147;;:::o;30790:114::-;30857:6;30891:5;30885:12;30875:22;;30790:114;;;:::o;30910:184::-;31009:11;31043:6;31038:3;31031:19;31083:4;31078:3;31074:14;31059:29;;30910:184;;;;:::o;31100:132::-;31167:4;31190:3;31182:11;;31220:4;31215:3;31211:14;31203:22;;31100:132;;;:::o;31238:108::-;31315:24;31333:5;31315:24;:::i;:::-;31310:3;31303:37;31238:108;;:::o;31352:179::-;31421:10;31442:46;31484:3;31476:6;31442:46;:::i;:::-;31520:4;31515:3;31511:14;31497:28;;31352:179;;;;:::o;31537:113::-;31607:4;31639;31634:3;31630:14;31622:22;;31537:113;;;:::o;31686:732::-;31805:3;31834:54;31882:5;31834:54;:::i;:::-;31904:86;31983:6;31978:3;31904:86;:::i;:::-;31897:93;;32014:56;32064:5;32014:56;:::i;:::-;32093:7;32124:1;32109:284;32134:6;32131:1;32128:13;32109:284;;;32210:6;32204:13;32237:63;32296:3;32281:13;32237:63;:::i;:::-;32230:70;;32323:60;32376:6;32323:60;:::i;:::-;32313:70;;32169:224;32156:1;32153;32149:9;32144:14;;32109:284;;;32113:14;32409:3;32402:10;;31810:608;;;31686:732;;;;:::o;32424:831::-;32687:4;32725:3;32714:9;32710:19;32702:27;;32739:71;32807:1;32796:9;32792:17;32783:6;32739:71;:::i;:::-;32820:80;32896:2;32885:9;32881:18;32872:6;32820:80;:::i;:::-;32947:9;32941:4;32937:20;32932:2;32921:9;32917:18;32910:48;32975:108;33078:4;33069:6;32975:108;:::i;:::-;32967:116;;33093:72;33161:2;33150:9;33146:18;33137:6;33093:72;:::i;:::-;33175:73;33243:3;33232:9;33228:19;33219:6;33175:73;:::i;:::-;32424:831;;;;;;;;:::o;33261:179::-;33401:31;33397:1;33389:6;33385:14;33378:55;33261:179;:::o;33446:366::-;33588:3;33609:67;33673:2;33668:3;33609:67;:::i;:::-;33602:74;;33685:93;33774:3;33685:93;:::i;:::-;33803:2;33798:3;33794:12;33787:19;;33446:366;;;:::o;33818:419::-;33984:4;34022:2;34011:9;34007:18;33999:26;;34071:9;34065:4;34061:20;34057:1;34046:9;34042:17;34035:47;34099:131;34225:4;34099:131;:::i;:::-;34091:139;;33818:419;;;:::o;34243:147::-;34344:11;34381:3;34366:18;;34243:147;;;;:::o;34396:114::-;;:::o;34516:398::-;34675:3;34696:83;34777:1;34772:3;34696:83;:::i;:::-;34689:90;;34788:93;34877:3;34788:93;:::i;:::-;34906:1;34901:3;34897:11;34890:18;;34516:398;;;:::o;34920:379::-;35104:3;35126:147;35269:3;35126:147;:::i;:::-;35119:154;;35290:3;35283:10;;34920:379;;;:::o;35305:245::-;35445:34;35441:1;35433:6;35429:14;35422:58;35514:28;35509:2;35501:6;35497:15;35490:53;35305:245;:::o;35556:366::-;35698:3;35719:67;35783:2;35778:3;35719:67;:::i;:::-;35712:74;;35795:93;35884:3;35795:93;:::i;:::-;35913:2;35908:3;35904:12;35897:19;;35556:366;;;:::o;35928:419::-;36094:4;36132:2;36121:9;36117:18;36109:26;;36181:9;36175:4;36171:20;36167:1;36156:9;36152:17;36145:47;36209:131;36335:4;36209:131;:::i;:::-;36201:139;;35928:419;;;:::o

Swarm Source

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