ETH Price: $2,415.38 (-1.33%)

Token

ZOWU (ZOWU)
 

Overview

Max Total Supply

1,000,000,000 ZOWU

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,550,000 ZOWU

Value
$0.00
0xaCde339e236bdc7eaD6fA7Dfb7a20Fe5D273dc27
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:
ZOWU

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-08
*/

/**
 *WEB : https://www.zowu.info/
 *TELE : https://t.me/Zombiewakeup_ZOWU
 *TWITTER : https://twitter.com/ZOWU_ZOWU
*/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;

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

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

contract ZOWU is ERC20, Ownable {
    uint256 public buyFee = 5;
    uint256 public sellFee = 35;

    address public marketingWallet = 0x3adAaBEd1fEA34a12cCDF2535B2F320d04d58D9f;

    bool public walletToWalletTransferWithoutFee = true;

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

    bool    private swapping;
    uint256 public swapTokensAtAmount;

    bool    public  tradingEnabled;
    uint256 private launchedAt;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) private _isExcludedFromMaxTxLimit;

    bool    public maxTransactionLimitEnabled = true;
    uint256 private maxTransactionRateBuy  = 30; // 3%
    uint256 private maxTransactionRateSell = 30; // 3%

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event FeesUpdated(uint256 buyFee, uint256 sellFee);
    event MarketingWalletChanged(address marketingWallet);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event SwapAndSendMarketing(uint256 tokensSwapped, uint256 bnbSend);
    event ExcludedFromMaxTransactionLimit(address indexed account, bool isExcluded);
    event MaxTransactionLimitRatesChanged(uint256 maxTransferRateBuy, uint256 maxTransferRateSell);
    event MaxTransactionLimitStateChanged(bool maxTransactionLimit);

    constructor () ERC20("ZOWU", "ZOWU") 
    {       
        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(_uniswapV2Pair, true);

        _isExcludedFromMaxTxLimit[owner()] = true;
        _isExcludedFromMaxTxLimit[address(0)] = true;
        _isExcludedFromMaxTxLimit[address(this)] = true;
        _isExcludedFromMaxTxLimit[DEAD] = true;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        _isExcludedFromFees[address(this)] = true;
        
        _mint(owner(), 1e9 * (10 ** 9));
        swapTokensAtAmount = totalSupply() / 5000;
    }

    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 isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    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 _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    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 updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 50 && _sellFee <= 99);
        buyFee = _buyFee;
        sellFee = _sellFee;
        emit FeesUpdated(buyFee, sellFee);
    }

    function enableWalletToWalletTransferWithoutFee(bool enable) external onlyOwner {
        require(walletToWalletTransferWithoutFee != enable, "Wallet to wallet transfer without fee is already set to that value");
        walletToWalletTransferWithoutFee = enable;
    }

    function changeMarketingWallet(address _marketingWallet) external onlyOwner {
        require(_marketingWallet != marketingWallet, "Marketing wallet is already that address");
        require(!isContract(_marketingWallet), "Marketing wallet cannot be a contract");
        marketingWallet = _marketingWallet;
        emit MarketingWalletChanged(marketingWallet);
    }

    function enableTrading() external onlyOwner {
        require(launchedAt == 0, "Trading already enabled");
        launchedAt = block.timestamp;
        tradingEnabled = true;
    }

    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");

        require(
            tradingEnabled ||
            _isExcludedFromFees[from] || 
            _isExcludedFromFees[to],
            "Trading is not enabled yet"
        );

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

        if (maxTransactionLimitEnabled) {
            if (_isExcludedFromMaxTxLimit[from] == false
                && _isExcludedFromMaxTxLimit[to] == false
            ) {
                if (from == uniswapV2Pair) {
                    require(amount <= maxTransferAmountBuy(), "AntiWhale: Transfer amount exceeds the maxTransferAmount");
                }else{
                    require(amount <= maxTransferAmountSell(), "AntiWhale: Transfer amount exceeds the maxTransferAmount");
                }
            }
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( canSwap &&
            !swapping &&
            automatedMarketMakerPairs[to]
        ) {
            swapping = true;
            
            if(contractTokenBalance > swapTokensAtAmount * 10){
                contractTokenBalance = swapTokensAtAmount * 10;
            }
            
            swapAndSendMarketing(contractTokenBalance);

            swapping = false;
        }

        bool takeFee = !swapping;

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

        if(walletToWalletTransferWithoutFee && from != uniswapV2Pair && to != uniswapV2Pair) {
            takeFee = false;
        }

        if(takeFee) {
            uint256 _totalFees;
            if(from == uniswapV2Pair) {
                _totalFees = buyFee;
            } else {
                _totalFees = sellFee;
            }
        	uint256 fees = amount * _totalFees / 100;
        	
        	amount = amount - fees;

            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);

    }

    function swapAndSendMarketing(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(marketingWallet), newBalance);

        emit SwapAndSendMarketing(tokenAmount, newBalance);
    }

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{
        require(newAmount > totalSupply() / 100000, "SwapTokensAtAmount must be greater than 0.001% of total supply");
        swapTokensAtAmount = newAmount;
    }

    function setEnableMaxTransactionLimit(bool enable) external onlyOwner {
        require(enable != maxTransactionLimitEnabled, "Max transaction limit is already that state");
        maxTransactionLimitEnabled = enable;
        emit MaxTransactionLimitStateChanged(maxTransactionLimitEnabled);
    }

    function isExcludedFromMaxTransaction(address account) public view returns(bool) {
        return _isExcludedFromMaxTxLimit[account];
    }
    
    function maxTransferAmountBuy() public view returns (uint256) {
        return totalSupply() * maxTransactionRateBuy / 1000;
    }

    function maxTransferAmountSell() public view returns (uint256) {
        return totalSupply() * maxTransactionRateSell / 1000;
    }

    function setMaxTransactionRates_Denominator1000(uint256 _maxTransactionRateBuy, uint256 _maxTransactionRateSell) external onlyOwner {
        require(_maxTransactionRateSell >= 1 && _maxTransactionRateBuy >= 1, "Max Transaction limit cannot be lower than 0.1% of total supply"); 
        maxTransactionRateBuy  = _maxTransactionRateBuy;
        maxTransactionRateSell = _maxTransactionRateSell;
        emit MaxTransactionLimitRatesChanged(maxTransactionRateBuy, maxTransactionRateSell);
    }

    function setExcludeFromMaxTransactionLimit(address account, bool exclude) external onlyOwner {
        require(_isExcludedFromMaxTxLimit[account] != exclude, "Account is already set to that state");
        _isExcludedFromMaxTxLimit[account] = exclude;
        emit ExcludedFromMaxTransactionLimit(account, exclude);
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxTransactionLimit","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":false,"internalType":"address","name":"marketingWallet","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTransferRateBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxTransferRateSell","type":"uint256"}],"name":"MaxTransactionLimitRatesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxTransactionLimit","type":"bool"}],"name":"MaxTransactionLimitStateChanged","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":"bnbSend","type":"uint256"}],"name":"SwapAndSendMarketing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"enableWalletToWalletTransferWithoutFee","outputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmountBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmountSell","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":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionRateBuy","type":"uint256"},{"internalType":"uint256","name":"_maxTransactionRateSell","type":"uint256"}],"name":"setMaxTransactionRates_Denominator1000","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletToWalletTransferWithoutFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260056006556023600755733adaabed1fea34a12ccdf2535b2f320d04d58d9f600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff02191690831515021790555061dead600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260006101000a81548160ff021916908315150217905550601e601355601e601455348015620000f357600080fd5b506040518060400160405280600481526020017f5a4f5755000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5a4f575500000000000000000000000000000000000000000000000000000000815250816003908162000171919062000f02565b50806004908162000183919062000f02565b505050600062000198620007c360201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c4919062001053565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000352919062001053565b6040518363ffffffff1660e01b81526004016200037192919062001096565b6020604051808303816000875af115801562000391573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b7919062001053565b905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200049030600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620007cb60201b60201c565b620004a38160016200099c60201b60201c565b600160116000620004b962000ad260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60006200064a62000ad260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007966200078162000ad260201b60201c565b670de0b6b3a764000062000afc60201b60201c565b611388620007a962000c7460201b60201c565b620007b5919062001121565b600c8190555050506200140d565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200083d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083490620011e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a69062001278565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200098f9190620012ab565b60405180910390a3505050565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150362000a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a28906200133e565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b6590620013b0565b60405180910390fd5b62000b826000838362000c7e60201b60201c565b806002600082825462000b969190620013d2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000bed9190620013d2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c549190620012ab565b60405180910390a362000c706000838362000c8360201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d0a57607f821691505b60208210810362000d205762000d1f62000cc2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d4b565b62000d96868362000d4b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000de362000ddd62000dd78462000dae565b62000db8565b62000dae565b9050919050565b6000819050919050565b62000dff8362000dc2565b62000e1762000e0e8262000dea565b84845462000d58565b825550505050565b600090565b62000e2e62000e1f565b62000e3b81848462000df4565b505050565b5b8181101562000e635762000e5760008262000e24565b60018101905062000e41565b5050565b601f82111562000eb25762000e7c8162000d26565b62000e878462000d3b565b8101602085101562000e97578190505b62000eaf62000ea68562000d3b565b83018262000e40565b50505b505050565b600082821c905092915050565b600062000ed76000198460080262000eb7565b1980831691505092915050565b600062000ef2838362000ec4565b9150826002028217905092915050565b62000f0d8262000c88565b67ffffffffffffffff81111562000f295762000f2862000c93565b5b62000f35825462000cf1565b62000f4282828562000e67565b600060209050601f83116001811462000f7a576000841562000f65578287015190505b62000f71858262000ee4565b86555062000fe1565b601f19841662000f8a8662000d26565b60005b8281101562000fb45784890151825560018201915060208501945060208101905062000f8d565b8683101562000fd4578489015162000fd0601f89168262000ec4565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200101b8262000fee565b9050919050565b6200102d816200100e565b81146200103957600080fd5b50565b6000815190506200104d8162001022565b92915050565b6000602082840312156200106c576200106b62000fe9565b5b60006200107c848285016200103c565b91505092915050565b62001090816200100e565b82525050565b6000604082019050620010ad600083018562001085565b620010bc602083018462001085565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200112e8262000dae565b91506200113b8362000dae565b9250826200114e576200114d620010c3565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620011c860248362001159565b9150620011d5826200116a565b604082019050919050565b60006020820190508181036000830152620011fb81620011b9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200126060228362001159565b91506200126d8262001202565b604082019050919050565b60006020820190508181036000830152620012938162001251565b9050919050565b620012a58162000dae565b82525050565b6000602082019050620012c260008301846200129a565b92915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b60006200132660388362001159565b91506200133382620012c8565b604082019050919050565b60006020820190508181036000830152620013598162001317565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001398601f8362001159565b9150620013a58262001360565b602082019050919050565b60006020820190508181036000830152620013cb8162001389565b9050919050565b6000620013df8262000dae565b9150620013ec8362000dae565b9250828201905080821115620014075762001406620010f2565b5b92915050565b6146de806200141d6000396000f3fe6080604052600436106102295760003560e01c806356a6cabf11610123578063a457c2d7116100ab578063c02466681161006f578063c02466681461082c578063dd62ed3e14610855578063e2f4560514610892578063f2fde38b146108bd578063f9d0831a146108e657610230565b8063a457c2d714610723578063a9059cbb14610760578063afa4f3b21461079d578063b62496f5146107c6578063bb85c6d11461080357610230565b8063715018a6116100f2578063715018a61461067457806375f0a8741461068b5780638a8c523c146106b65780638da5cb5b146106cd57806395d89b41146106f857610230565b806356a6cabf146105bc5780635e8217e1146105e55780636db794371461060e57806370a082311461063757610230565b80632b14ca56116101b1578063470624021161017557806347062402146104d557806349bd5a5e146105005780634ada218b1461052b5780634fbee193146105565780635654d0b31461059357610230565b80632b14ca56146103ec5780632ba86bf214610417578063313ce56714610442578063395093511461046d5780633d161d0f146104aa57610230565b80631529fbbf116101f85780631529fbbf146102f15780631694505e1461031c57806318160ddd1461034757806318d9ceae1461037257806323b872dd146103af57610230565b806306fdde03146102355780630795895314610260578063095ea7b31461028b578063150c880c146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61090f565b6040516102579190613166565b60405180910390f35b34801561026c57600080fd5b506102756109a1565b60405161028291906131a1565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad919061324b565b6109ca565b6040516102bf91906132a6565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906132ed565b6109e8565b005b3480156102fd57600080fd5b50610306610bba565b60405161031391906132a6565b60405180910390f35b34801561032857600080fd5b50610331610bcd565b60405161033e919061338c565b60405180910390f35b34801561035357600080fd5b5061035c610bf3565b60405161036991906131a1565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906133a7565b610bfd565b6040516103a691906132a6565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d191906133d4565b610c53565b6040516103e391906132a6565b60405180910390f35b3480156103f857600080fd5b50610401610d72565b60405161040e91906131a1565b60405180910390f35b34801561042357600080fd5b5061042c610d78565b60405161043991906132a6565b60405180910390f35b34801561044e57600080fd5b50610457610d8b565b6040516104649190613443565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f919061324b565b610d94565b6040516104a191906132a6565b60405180910390f35b3480156104b657600080fd5b506104bf610e40565b6040516104cc91906131a1565b60405180910390f35b3480156104e157600080fd5b506104ea610e69565b6040516104f791906131a1565b60405180910390f35b34801561050c57600080fd5b50610515610e6f565b604051610522919061346d565b60405180910390f35b34801561053757600080fd5b50610540610e95565b60405161054d91906132a6565b60405180910390f35b34801561056257600080fd5b5061057d600480360381019061057891906133a7565b610ea8565b60405161058a91906132a6565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b59190613488565b610efe565b005b3480156105c857600080fd5b506105e360048036038101906105de9190613488565b611007565b005b3480156105f157600080fd5b5061060c600480360381019061060791906134b5565b611156565b005b34801561061a57600080fd5b50610635600480360381019061063091906134b5565b61128d565b005b34801561064357600080fd5b5061065e600480360381019061065991906133a7565b61138e565b60405161066b91906131a1565b60405180910390f35b34801561068057600080fd5b506106896113d6565b005b34801561069757600080fd5b506106a061152e565b6040516106ad919061346d565b60405180910390f35b3480156106c257600080fd5b506106cb611554565b005b3480156106d957600080fd5b506106e2611654565b6040516106ef919061346d565b60405180910390f35b34801561070457600080fd5b5061070d61167e565b60405161071a9190613166565b60405180910390f35b34801561072f57600080fd5b5061074a6004803603810190610745919061324b565b611710565b60405161075791906132a6565b60405180910390f35b34801561076c57600080fd5b506107876004803603810190610782919061324b565b6117fb565b60405161079491906132a6565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf91906134f5565b611819565b005b3480156107d257600080fd5b506107ed60048036038101906107e891906133a7565b611911565b6040516107fa91906132a6565b60405180910390f35b34801561080f57600080fd5b5061082a600480360381019061082591906133a7565b611931565b005b34801561083857600080fd5b50610853600480360381019061084e91906132ed565b611b3e565b005b34801561086157600080fd5b5061087c60048036038101906108779190613522565b611d10565b60405161088991906131a1565b60405180910390f35b34801561089e57600080fd5b506108a7611d97565b6040516108b491906131a1565b60405180910390f35b3480156108c957600080fd5b506108e460048036038101906108df91906133a7565b611d9d565b005b3480156108f257600080fd5b5061090d600480360381019061090891906133a7565b611f63565b005b60606003805461091e90613591565b80601f016020809104026020016040519081016040528092919081815260200182805461094a90613591565b80156109975780601f1061096c57610100808354040283529160200191610997565b820191906000526020600020905b81548152906001019060200180831161097a57829003601f168201915b5050505050905090565b60006103e86014546109b1610bf3565b6109bb91906135f1565b6109c5919061367a565b905090565b60006109de6109d76121f0565b84846121f8565b6001905092915050565b6109f06121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906136f7565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0890613789565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1082604051610bae91906132a6565b60405180910390a25050565b600860149054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9f6121f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d5b5782811015610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d9061381b565b60405180910390fd5b610d5a85610d526121f0565b8584036121f8565b5b610d668585856123c1565b60019150509392505050565b60075481565b601260009054906101000a900460ff1681565b60006009905090565b6000610e36610da16121f0565b848460016000610daf6121f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e31919061383b565b6121f8565b6001905092915050565b60006103e8601354610e50610bf3565b610e5a91906135f1565b610e64919061367a565b905090565b60065481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610f066121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c906136f7565b60405180910390fd5b801515600860149054906101000a900460ff16151503610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613907565b60405180910390fd5b80600860146101000a81548160ff02191690831515021790555050565b61100f6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611095906136f7565b60405180910390fd5b601260009054906101000a900460ff161515811515036110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90613999565b60405180910390fd5b80601260006101000a81548160ff0219169083151502179055507fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf601260009054906101000a900460ff1660405161114b91906132a6565b60405180910390a150565b61115e6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e4906136f7565b60405180910390fd5b600181101580156111ff575060018210155b61123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590613a2b565b60405180910390fd5b81601381905550806014819055507f2a88f79986e057b8152c19cea35cd214cf53364efbf95d5b22b37797c05be55f601354601454604051611281929190613a4b565b60405180910390a15050565b6112956121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b906136f7565b60405180910390fd5b60328211158015611336575060638111155b61133f57600080fd5b81600681905550806007819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600654600754604051611382929190613a4b565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113de6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611464906136f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61155c6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e2906136f7565b60405180910390fd5b6000600e5414611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790613ac0565b60405180910390fd5b42600e819055506001600d60006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461168d90613591565b80601f01602080910402602001604051908101604052809291908181526020018280546116b990613591565b80156117065780601f106116db57610100808354040283529160200191611706565b820191906000526020600020905b8154815290600101906020018083116116e957829003601f168201915b5050505050905090565b6000806001600061171f6121f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390613b52565b60405180910390fd5b6117f06117e76121f0565b858584036121f8565b600191505092915050565b600061180f6118086121f0565b84846123c1565b6001905092915050565b6118216121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a7906136f7565b60405180910390fd5b620186a06118bc610bf3565b6118c6919061367a565b8111611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90613be4565b60405180910390fd5b80600c8190555050565b60106020528060005260406000206000915054906101000a900460ff1681565b6119396121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf906136f7565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f90613c76565b60405180910390fd5b611a6181612aa4565b15611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9890613d08565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611b33919061346d565b60405180910390a150565b611b466121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc906136f7565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e90613d9a565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d0491906132a6565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b611da56121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b906136f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a90613e2c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f6b6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff1906136f7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205f90613e98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120e8573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156120e2573d6000803e3d6000fd5b506121ed565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612128919061346d565b602060405180830381865afa158015612145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121699190613ecd565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016121a6929190613efa565b6020604051808303816000875af11580156121c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e99190613f38565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e90613fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd90614069565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123b491906131a1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612427906140fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124969061418d565b60405180910390fd5b600d60009054906101000a900460ff16806125035750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125575750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d906141f9565b60405180910390fd5b600081036125af576125aa83836000612ac7565b612a9f565b601260009054906101000a900460ff161561276a5760001515601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612674575060001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561276957600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361271d576126d6610e40565b811115612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270f9061428b565b60405180910390fd5b612768565b6127256109a1565b811115612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275e9061428b565b60405180910390fd5b5b5b5b60006127753061138e565b90506000600c54821015905080801561279b5750600b60149054906101000a900460ff16155b80156127f05750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561285d576001600b60146101000a81548160ff021916908315150217905550600a600c5461281f91906135f1565b82111561283857600a600c5461283591906135f1565b91505b61284182612d46565b6000600b60146101000a81548160ff0219169083151502179055505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129135750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291d57600090505b600860149054906101000a900460ff1680156129875750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129e15750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156129eb57600090505b8015612a90576000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603612a52576006549050612a58565b60075490505b600060648287612a6891906135f1565b612a72919061367a565b90508086612a8091906142ab565b9550612a8d883083612ac7565b50505b612a9b868686612ac7565b5050505b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2d906140fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c9061418d565b60405180910390fd5b612bb0838383612fd8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2d90614351565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612cc9919061383b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d2d91906131a1565b60405180910390a3612d40848484612fdd565b50505050565b60004790506000600267ffffffffffffffff811115612d6857612d67614371565b5b604051908082528060200260200182016040528015612d965781602001602082028036833780820191505090505b5090503081600081518110612dae57612dad6143a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7991906143e4565b81600181518110612e8d57612e8c6143a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612f2b95949392919061450a565b600060405180830381600087803b158015612f4557600080fd5b505af1158015612f59573d6000803e3d6000fd5b5050505060008247612f6b91906142ab565b9050612f99600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612fe2565b7f957ad1fc6d4d41da6d1a8d37303289ef3c4b78e0285ff5df1e12070ef0e629998482604051612fca929190613a4b565b60405180910390a150505050565b505050565b505050565b80471015613025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301c906145b0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161304b90614601565b60006040518083038185875af1925050503d8060008114613088576040519150601f19603f3d011682016040523d82523d6000602084013e61308d565b606091505b50509050806130d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c890614688565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131105780820151818401526020810190506130f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000613138826130d6565b61314281856130e1565b93506131528185602086016130f2565b61315b8161311c565b840191505092915050565b60006020820190508181036000830152613180818461312d565b905092915050565b6000819050919050565b61319b81613188565b82525050565b60006020820190506131b66000830184613192565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ec826131c1565b9050919050565b6131fc816131e1565b811461320757600080fd5b50565b600081359050613219816131f3565b92915050565b61322881613188565b811461323357600080fd5b50565b6000813590506132458161321f565b92915050565b60008060408385031215613262576132616131bc565b5b60006132708582860161320a565b925050602061328185828601613236565b9150509250929050565b60008115159050919050565b6132a08161328b565b82525050565b60006020820190506132bb6000830184613297565b92915050565b6132ca8161328b565b81146132d557600080fd5b50565b6000813590506132e7816132c1565b92915050565b60008060408385031215613304576133036131bc565b5b60006133128582860161320a565b9250506020613323858286016132d8565b9150509250929050565b6000819050919050565b600061335261334d613348846131c1565b61332d565b6131c1565b9050919050565b600061336482613337565b9050919050565b600061337682613359565b9050919050565b6133868161336b565b82525050565b60006020820190506133a1600083018461337d565b92915050565b6000602082840312156133bd576133bc6131bc565b5b60006133cb8482850161320a565b91505092915050565b6000806000606084860312156133ed576133ec6131bc565b5b60006133fb8682870161320a565b935050602061340c8682870161320a565b925050604061341d86828701613236565b9150509250925092565b600060ff82169050919050565b61343d81613427565b82525050565b60006020820190506134586000830184613434565b92915050565b613467816131e1565b82525050565b6000602082019050613482600083018461345e565b92915050565b60006020828403121561349e5761349d6131bc565b5b60006134ac848285016132d8565b91505092915050565b600080604083850312156134cc576134cb6131bc565b5b60006134da85828601613236565b92505060206134eb85828601613236565b9150509250929050565b60006020828403121561350b5761350a6131bc565b5b600061351984828501613236565b91505092915050565b60008060408385031215613539576135386131bc565b5b60006135478582860161320a565b92505060206135588582860161320a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135a957607f821691505b6020821081036135bc576135bb613562565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135fc82613188565b915061360783613188565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136405761363f6135c2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061368582613188565b915061369083613188565b9250826136a05761369f61364b565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136e16020836130e1565b91506136ec826136ab565b602082019050919050565b60006020820190508181036000830152613710816136d4565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f2074686174207360008201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b60006137736024836130e1565b915061377e82613717565b604082019050919050565b600060208201905081810360008301526137a281613766565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138056028836130e1565b9150613810826137a9565b604082019050919050565b60006020820190508181036000830152613834816137f8565b9050919050565b600061384682613188565b915061385183613188565b9250828201905080821115613869576138686135c2565b5b92915050565b7f57616c6c657420746f2077616c6c6574207472616e7366657220776974686f7560008201527f742066656520697320616c72656164792073657420746f20746861742076616c60208201527f7565000000000000000000000000000000000000000000000000000000000000604082015250565b60006138f16042836130e1565b91506138fc8261386f565b606082019050919050565b60006020820190508181036000830152613920816138e4565b9050919050565b7f4d6178207472616e73616374696f6e206c696d697420697320616c726561647960008201527f2074686174207374617465000000000000000000000000000000000000000000602082015250565b6000613983602b836130e1565b915061398e82613927565b604082019050919050565b600060208201905081810360008301526139b281613976565b9050919050565b7f4d6178205472616e73616374696f6e206c696d69742063616e6e6f742062652060008201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c7900602082015250565b6000613a15603f836130e1565b9150613a20826139b9565b604082019050919050565b60006020820190508181036000830152613a4481613a08565b9050919050565b6000604082019050613a606000830185613192565b613a6d6020830184613192565b9392505050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000613aaa6017836130e1565b9150613ab582613a74565b602082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b3c6025836130e1565b9150613b4782613ae0565b604082019050919050565b60006020820190508181036000830152613b6b81613b2f565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e30303125206f6620746f74616c20737570706c790000602082015250565b6000613bce603e836130e1565b9150613bd982613b72565b604082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613c606028836130e1565b9150613c6b82613c04565b604082019050919050565b60006020820190508181036000830152613c8f81613c53565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f74206265206120636f6e60008201527f7472616374000000000000000000000000000000000000000000000000000000602082015250565b6000613cf26025836130e1565b9150613cfd82613c96565b604082019050919050565b60006020820190508181036000830152613d2181613ce5565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613d84602a836130e1565b9150613d8f82613d28565b604082019050919050565b60006020820190508181036000830152613db381613d77565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e166026836130e1565b9150613e2182613dba565b604082019050919050565b60006020820190508181036000830152613e4581613e09565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73600082015250565b6000613e826020836130e1565b9150613e8d82613e4c565b602082019050919050565b60006020820190508181036000830152613eb181613e75565b9050919050565b600081519050613ec78161321f565b92915050565b600060208284031215613ee357613ee26131bc565b5b6000613ef184828501613eb8565b91505092915050565b6000604082019050613f0f600083018561345e565b613f1c6020830184613192565b9392505050565b600081519050613f32816132c1565b92915050565b600060208284031215613f4e57613f4d6131bc565b5b6000613f5c84828501613f23565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fc16024836130e1565b9150613fcc82613f65565b604082019050919050565b60006020820190508181036000830152613ff081613fb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140536022836130e1565b915061405e82613ff7565b604082019050919050565b6000602082019050818103600083015261408281614046565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140e56025836130e1565b91506140f082614089565b604082019050919050565b60006020820190508181036000830152614114816140d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006141776023836130e1565b91506141828261411b565b604082019050919050565b600060208201905081810360008301526141a68161416a565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b60006141e3601a836130e1565b91506141ee826141ad565b602082019050919050565b60006020820190508181036000830152614212816141d6565b9050919050565b7f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560008201527f647320746865206d61785472616e73666572416d6f756e740000000000000000602082015250565b60006142756038836130e1565b915061428082614219565b604082019050919050565b600060208201905081810360008301526142a481614268565b9050919050565b60006142b682613188565b91506142c183613188565b92508282039050818111156142d9576142d86135c2565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061433b6026836130e1565b9150614346826142df565b604082019050919050565b6000602082019050818103600083015261436a8161432e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143de816131f3565b92915050565b6000602082840312156143fa576143f96131bc565b5b6000614408848285016143cf565b91505092915050565b6000819050919050565b600061443661443161442c84614411565b61332d565b613188565b9050919050565b6144468161441b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614481816131e1565b82525050565b60006144938383614478565b60208301905092915050565b6000602082019050919050565b60006144b78261444c565b6144c18185614457565b93506144cc83614468565b8060005b838110156144fd5781516144e48882614487565b97506144ef8361449f565b9250506001810190506144d0565b5085935050505092915050565b600060a08201905061451f6000830188613192565b61452c602083018761443d565b818103604083015261453e81866144ac565b905061454d606083018561345e565b61455a6080830184613192565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061459a601d836130e1565b91506145a582614564565b602082019050919050565b600060208201905081810360008301526145c98161458d565b9050919050565b600081905092915050565b50565b60006145eb6000836145d0565b91506145f6826145db565b600082019050919050565b600061460c826145de565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614672603a836130e1565b915061467d82614616565b604082019050919050565b600060208201905081810360008301526146a181614665565b905091905056fea264697066735822122012f9ba82fc6633b353d6e8c303fe0fb04d7c4d2cf25a08a795100cc5815003ed64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806356a6cabf11610123578063a457c2d7116100ab578063c02466681161006f578063c02466681461082c578063dd62ed3e14610855578063e2f4560514610892578063f2fde38b146108bd578063f9d0831a146108e657610230565b8063a457c2d714610723578063a9059cbb14610760578063afa4f3b21461079d578063b62496f5146107c6578063bb85c6d11461080357610230565b8063715018a6116100f2578063715018a61461067457806375f0a8741461068b5780638a8c523c146106b65780638da5cb5b146106cd57806395d89b41146106f857610230565b806356a6cabf146105bc5780635e8217e1146105e55780636db794371461060e57806370a082311461063757610230565b80632b14ca56116101b1578063470624021161017557806347062402146104d557806349bd5a5e146105005780634ada218b1461052b5780634fbee193146105565780635654d0b31461059357610230565b80632b14ca56146103ec5780632ba86bf214610417578063313ce56714610442578063395093511461046d5780633d161d0f146104aa57610230565b80631529fbbf116101f85780631529fbbf146102f15780631694505e1461031c57806318160ddd1461034757806318d9ceae1461037257806323b872dd146103af57610230565b806306fdde03146102355780630795895314610260578063095ea7b31461028b578063150c880c146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61090f565b6040516102579190613166565b60405180910390f35b34801561026c57600080fd5b506102756109a1565b60405161028291906131a1565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad919061324b565b6109ca565b6040516102bf91906132a6565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906132ed565b6109e8565b005b3480156102fd57600080fd5b50610306610bba565b60405161031391906132a6565b60405180910390f35b34801561032857600080fd5b50610331610bcd565b60405161033e919061338c565b60405180910390f35b34801561035357600080fd5b5061035c610bf3565b60405161036991906131a1565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906133a7565b610bfd565b6040516103a691906132a6565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d191906133d4565b610c53565b6040516103e391906132a6565b60405180910390f35b3480156103f857600080fd5b50610401610d72565b60405161040e91906131a1565b60405180910390f35b34801561042357600080fd5b5061042c610d78565b60405161043991906132a6565b60405180910390f35b34801561044e57600080fd5b50610457610d8b565b6040516104649190613443565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f919061324b565b610d94565b6040516104a191906132a6565b60405180910390f35b3480156104b657600080fd5b506104bf610e40565b6040516104cc91906131a1565b60405180910390f35b3480156104e157600080fd5b506104ea610e69565b6040516104f791906131a1565b60405180910390f35b34801561050c57600080fd5b50610515610e6f565b604051610522919061346d565b60405180910390f35b34801561053757600080fd5b50610540610e95565b60405161054d91906132a6565b60405180910390f35b34801561056257600080fd5b5061057d600480360381019061057891906133a7565b610ea8565b60405161058a91906132a6565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b59190613488565b610efe565b005b3480156105c857600080fd5b506105e360048036038101906105de9190613488565b611007565b005b3480156105f157600080fd5b5061060c600480360381019061060791906134b5565b611156565b005b34801561061a57600080fd5b50610635600480360381019061063091906134b5565b61128d565b005b34801561064357600080fd5b5061065e600480360381019061065991906133a7565b61138e565b60405161066b91906131a1565b60405180910390f35b34801561068057600080fd5b506106896113d6565b005b34801561069757600080fd5b506106a061152e565b6040516106ad919061346d565b60405180910390f35b3480156106c257600080fd5b506106cb611554565b005b3480156106d957600080fd5b506106e2611654565b6040516106ef919061346d565b60405180910390f35b34801561070457600080fd5b5061070d61167e565b60405161071a9190613166565b60405180910390f35b34801561072f57600080fd5b5061074a6004803603810190610745919061324b565b611710565b60405161075791906132a6565b60405180910390f35b34801561076c57600080fd5b506107876004803603810190610782919061324b565b6117fb565b60405161079491906132a6565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf91906134f5565b611819565b005b3480156107d257600080fd5b506107ed60048036038101906107e891906133a7565b611911565b6040516107fa91906132a6565b60405180910390f35b34801561080f57600080fd5b5061082a600480360381019061082591906133a7565b611931565b005b34801561083857600080fd5b50610853600480360381019061084e91906132ed565b611b3e565b005b34801561086157600080fd5b5061087c60048036038101906108779190613522565b611d10565b60405161088991906131a1565b60405180910390f35b34801561089e57600080fd5b506108a7611d97565b6040516108b491906131a1565b60405180910390f35b3480156108c957600080fd5b506108e460048036038101906108df91906133a7565b611d9d565b005b3480156108f257600080fd5b5061090d600480360381019061090891906133a7565b611f63565b005b60606003805461091e90613591565b80601f016020809104026020016040519081016040528092919081815260200182805461094a90613591565b80156109975780601f1061096c57610100808354040283529160200191610997565b820191906000526020600020905b81548152906001019060200180831161097a57829003601f168201915b5050505050905090565b60006103e86014546109b1610bf3565b6109bb91906135f1565b6109c5919061367a565b905090565b60006109de6109d76121f0565b84846121f8565b6001905092915050565b6109f06121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906136f7565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0890613789565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1082604051610bae91906132a6565b60405180910390a25050565b600860149054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9f6121f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d5b5782811015610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d9061381b565b60405180910390fd5b610d5a85610d526121f0565b8584036121f8565b5b610d668585856123c1565b60019150509392505050565b60075481565b601260009054906101000a900460ff1681565b60006009905090565b6000610e36610da16121f0565b848460016000610daf6121f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e31919061383b565b6121f8565b6001905092915050565b60006103e8601354610e50610bf3565b610e5a91906135f1565b610e64919061367a565b905090565b60065481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610f066121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c906136f7565b60405180910390fd5b801515600860149054906101000a900460ff16151503610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613907565b60405180910390fd5b80600860146101000a81548160ff02191690831515021790555050565b61100f6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611095906136f7565b60405180910390fd5b601260009054906101000a900460ff161515811515036110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90613999565b60405180910390fd5b80601260006101000a81548160ff0219169083151502179055507fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf601260009054906101000a900460ff1660405161114b91906132a6565b60405180910390a150565b61115e6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e4906136f7565b60405180910390fd5b600181101580156111ff575060018210155b61123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590613a2b565b60405180910390fd5b81601381905550806014819055507f2a88f79986e057b8152c19cea35cd214cf53364efbf95d5b22b37797c05be55f601354601454604051611281929190613a4b565b60405180910390a15050565b6112956121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b906136f7565b60405180910390fd5b60328211158015611336575060638111155b61133f57600080fd5b81600681905550806007819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600654600754604051611382929190613a4b565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113de6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611464906136f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61155c6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e2906136f7565b60405180910390fd5b6000600e5414611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790613ac0565b60405180910390fd5b42600e819055506001600d60006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461168d90613591565b80601f01602080910402602001604051908101604052809291908181526020018280546116b990613591565b80156117065780601f106116db57610100808354040283529160200191611706565b820191906000526020600020905b8154815290600101906020018083116116e957829003601f168201915b5050505050905090565b6000806001600061171f6121f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390613b52565b60405180910390fd5b6117f06117e76121f0565b858584036121f8565b600191505092915050565b600061180f6118086121f0565b84846123c1565b6001905092915050565b6118216121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a7906136f7565b60405180910390fd5b620186a06118bc610bf3565b6118c6919061367a565b8111611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90613be4565b60405180910390fd5b80600c8190555050565b60106020528060005260406000206000915054906101000a900460ff1681565b6119396121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf906136f7565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f90613c76565b60405180910390fd5b611a6181612aa4565b15611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9890613d08565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611b33919061346d565b60405180910390a150565b611b466121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc906136f7565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e90613d9a565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d0491906132a6565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b611da56121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b906136f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a90613e2c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f6b6121f0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff1906136f7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205f90613e98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120e8573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156120e2573d6000803e3d6000fd5b506121ed565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612128919061346d565b602060405180830381865afa158015612145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121699190613ecd565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016121a6929190613efa565b6020604051808303816000875af11580156121c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e99190613f38565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e90613fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd90614069565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123b491906131a1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612427906140fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124969061418d565b60405180910390fd5b600d60009054906101000a900460ff16806125035750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125575750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d906141f9565b60405180910390fd5b600081036125af576125aa83836000612ac7565b612a9f565b601260009054906101000a900460ff161561276a5760001515601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612674575060001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561276957600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361271d576126d6610e40565b811115612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270f9061428b565b60405180910390fd5b612768565b6127256109a1565b811115612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275e9061428b565b60405180910390fd5b5b5b5b60006127753061138e565b90506000600c54821015905080801561279b5750600b60149054906101000a900460ff16155b80156127f05750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561285d576001600b60146101000a81548160ff021916908315150217905550600a600c5461281f91906135f1565b82111561283857600a600c5461283591906135f1565b91505b61284182612d46565b6000600b60146101000a81548160ff0219169083151502179055505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129135750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291d57600090505b600860149054906101000a900460ff1680156129875750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129e15750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156129eb57600090505b8015612a90576000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603612a52576006549050612a58565b60075490505b600060648287612a6891906135f1565b612a72919061367a565b90508086612a8091906142ab565b9550612a8d883083612ac7565b50505b612a9b868686612ac7565b5050505b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2d906140fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c9061418d565b60405180910390fd5b612bb0838383612fd8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2d90614351565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612cc9919061383b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d2d91906131a1565b60405180910390a3612d40848484612fdd565b50505050565b60004790506000600267ffffffffffffffff811115612d6857612d67614371565b5b604051908082528060200260200182016040528015612d965781602001602082028036833780820191505090505b5090503081600081518110612dae57612dad6143a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7991906143e4565b81600181518110612e8d57612e8c6143a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612f2b95949392919061450a565b600060405180830381600087803b158015612f4557600080fd5b505af1158015612f59573d6000803e3d6000fd5b5050505060008247612f6b91906142ab565b9050612f99600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612fe2565b7f957ad1fc6d4d41da6d1a8d37303289ef3c4b78e0285ff5df1e12070ef0e629998482604051612fca929190613a4b565b60405180910390a150505050565b505050565b505050565b80471015613025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301c906145b0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161304b90614601565b60006040518083038185875af1925050503d8060008114613088576040519150601f19603f3d011682016040523d82523d6000602084013e61308d565b606091505b50509050806130d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c890614688565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131105780820151818401526020810190506130f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000613138826130d6565b61314281856130e1565b93506131528185602086016130f2565b61315b8161311c565b840191505092915050565b60006020820190508181036000830152613180818461312d565b905092915050565b6000819050919050565b61319b81613188565b82525050565b60006020820190506131b66000830184613192565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ec826131c1565b9050919050565b6131fc816131e1565b811461320757600080fd5b50565b600081359050613219816131f3565b92915050565b61322881613188565b811461323357600080fd5b50565b6000813590506132458161321f565b92915050565b60008060408385031215613262576132616131bc565b5b60006132708582860161320a565b925050602061328185828601613236565b9150509250929050565b60008115159050919050565b6132a08161328b565b82525050565b60006020820190506132bb6000830184613297565b92915050565b6132ca8161328b565b81146132d557600080fd5b50565b6000813590506132e7816132c1565b92915050565b60008060408385031215613304576133036131bc565b5b60006133128582860161320a565b9250506020613323858286016132d8565b9150509250929050565b6000819050919050565b600061335261334d613348846131c1565b61332d565b6131c1565b9050919050565b600061336482613337565b9050919050565b600061337682613359565b9050919050565b6133868161336b565b82525050565b60006020820190506133a1600083018461337d565b92915050565b6000602082840312156133bd576133bc6131bc565b5b60006133cb8482850161320a565b91505092915050565b6000806000606084860312156133ed576133ec6131bc565b5b60006133fb8682870161320a565b935050602061340c8682870161320a565b925050604061341d86828701613236565b9150509250925092565b600060ff82169050919050565b61343d81613427565b82525050565b60006020820190506134586000830184613434565b92915050565b613467816131e1565b82525050565b6000602082019050613482600083018461345e565b92915050565b60006020828403121561349e5761349d6131bc565b5b60006134ac848285016132d8565b91505092915050565b600080604083850312156134cc576134cb6131bc565b5b60006134da85828601613236565b92505060206134eb85828601613236565b9150509250929050565b60006020828403121561350b5761350a6131bc565b5b600061351984828501613236565b91505092915050565b60008060408385031215613539576135386131bc565b5b60006135478582860161320a565b92505060206135588582860161320a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135a957607f821691505b6020821081036135bc576135bb613562565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135fc82613188565b915061360783613188565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136405761363f6135c2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061368582613188565b915061369083613188565b9250826136a05761369f61364b565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136e16020836130e1565b91506136ec826136ab565b602082019050919050565b60006020820190508181036000830152613710816136d4565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f2074686174207360008201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b60006137736024836130e1565b915061377e82613717565b604082019050919050565b600060208201905081810360008301526137a281613766565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138056028836130e1565b9150613810826137a9565b604082019050919050565b60006020820190508181036000830152613834816137f8565b9050919050565b600061384682613188565b915061385183613188565b9250828201905080821115613869576138686135c2565b5b92915050565b7f57616c6c657420746f2077616c6c6574207472616e7366657220776974686f7560008201527f742066656520697320616c72656164792073657420746f20746861742076616c60208201527f7565000000000000000000000000000000000000000000000000000000000000604082015250565b60006138f16042836130e1565b91506138fc8261386f565b606082019050919050565b60006020820190508181036000830152613920816138e4565b9050919050565b7f4d6178207472616e73616374696f6e206c696d697420697320616c726561647960008201527f2074686174207374617465000000000000000000000000000000000000000000602082015250565b6000613983602b836130e1565b915061398e82613927565b604082019050919050565b600060208201905081810360008301526139b281613976565b9050919050565b7f4d6178205472616e73616374696f6e206c696d69742063616e6e6f742062652060008201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c7900602082015250565b6000613a15603f836130e1565b9150613a20826139b9565b604082019050919050565b60006020820190508181036000830152613a4481613a08565b9050919050565b6000604082019050613a606000830185613192565b613a6d6020830184613192565b9392505050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000613aaa6017836130e1565b9150613ab582613a74565b602082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b3c6025836130e1565b9150613b4782613ae0565b604082019050919050565b60006020820190508181036000830152613b6b81613b2f565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e30303125206f6620746f74616c20737570706c790000602082015250565b6000613bce603e836130e1565b9150613bd982613b72565b604082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613c606028836130e1565b9150613c6b82613c04565b604082019050919050565b60006020820190508181036000830152613c8f81613c53565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f74206265206120636f6e60008201527f7472616374000000000000000000000000000000000000000000000000000000602082015250565b6000613cf26025836130e1565b9150613cfd82613c96565b604082019050919050565b60006020820190508181036000830152613d2181613ce5565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613d84602a836130e1565b9150613d8f82613d28565b604082019050919050565b60006020820190508181036000830152613db381613d77565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e166026836130e1565b9150613e2182613dba565b604082019050919050565b60006020820190508181036000830152613e4581613e09565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73600082015250565b6000613e826020836130e1565b9150613e8d82613e4c565b602082019050919050565b60006020820190508181036000830152613eb181613e75565b9050919050565b600081519050613ec78161321f565b92915050565b600060208284031215613ee357613ee26131bc565b5b6000613ef184828501613eb8565b91505092915050565b6000604082019050613f0f600083018561345e565b613f1c6020830184613192565b9392505050565b600081519050613f32816132c1565b92915050565b600060208284031215613f4e57613f4d6131bc565b5b6000613f5c84828501613f23565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fc16024836130e1565b9150613fcc82613f65565b604082019050919050565b60006020820190508181036000830152613ff081613fb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140536022836130e1565b915061405e82613ff7565b604082019050919050565b6000602082019050818103600083015261408281614046565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140e56025836130e1565b91506140f082614089565b604082019050919050565b60006020820190508181036000830152614114816140d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006141776023836130e1565b91506141828261411b565b604082019050919050565b600060208201905081810360008301526141a68161416a565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b60006141e3601a836130e1565b91506141ee826141ad565b602082019050919050565b60006020820190508181036000830152614212816141d6565b9050919050565b7f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560008201527f647320746865206d61785472616e73666572416d6f756e740000000000000000602082015250565b60006142756038836130e1565b915061428082614219565b604082019050919050565b600060208201905081810360008301526142a481614268565b9050919050565b60006142b682613188565b91506142c183613188565b92508282039050818111156142d9576142d86135c2565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061433b6026836130e1565b9150614346826142df565b604082019050919050565b6000602082019050818103600083015261436a8161432e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143de816131f3565b92915050565b6000602082840312156143fa576143f96131bc565b5b6000614408848285016143cf565b91505092915050565b6000819050919050565b600061443661443161442c84614411565b61332d565b613188565b9050919050565b6144468161441b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614481816131e1565b82525050565b60006144938383614478565b60208301905092915050565b6000602082019050919050565b60006144b78261444c565b6144c18185614457565b93506144cc83614468565b8060005b838110156144fd5781516144e48882614487565b97506144ef8361449f565b9250506001810190506144d0565b5085935050505092915050565b600060a08201905061451f6000830188613192565b61452c602083018761443d565b818103604083015261453e81866144ac565b905061454d606083018561345e565b61455a6080830184613192565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061459a601d836130e1565b91506145a582614564565b602082019050919050565b600060208201905081810360008301526145c98161458d565b9050919050565b600081905092915050565b50565b60006145eb6000836145d0565b91506145f6826145db565b600082019050919050565b600061460c826145de565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614672603a836130e1565b915061467d82614616565b604082019050919050565b600060208201905081810360008301526146a181614665565b905091905056fea264697066735822122012f9ba82fc6633b353d6e8c303fe0fb04d7c4d2cf25a08a795100cc5815003ed64736f6c63430008100033

Deployed Bytecode Sourcemap

15536:10207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24766:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3778:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25414:326;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15727:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15787:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3185:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24473:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3955:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15607:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16289:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3085:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24626:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15575:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15835:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16024:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19632:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20006:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24163:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24908:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19765:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3301:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2052:148;;;;;;;;;;;;;:::i;:::-;;15643:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20667:185;;;;;;;;;;;;;:::i;:::-;;1838:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2973:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4759:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3436:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23918:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16156:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20286:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19332:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3619:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15982:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2208:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18121:441;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2865:100;2919:13;2952:5;2945:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:100;:::o;24766:134::-;24820:7;24888:4;24863:22;;24847:13;:11;:13::i;:::-;:38;;;;:::i;:::-;:45;;;;:::i;:::-;24840:52;;24766:134;:::o;3778:169::-;3861:4;3878:39;3887:12;:10;:12::i;:::-;3901:7;3910:6;3878:8;:39::i;:::-;3935:4;3928:11;;3778:169;;;;:::o;25414:326::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25564:7:::1;25526:45;;:25;:34;25552:7;25526:34;;;;;;;;;;;;;;;;;;;;;;;;;:45;;::::0;25518:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25660:7;25623:25;:34;25649:7;25623:34;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;25715:7;25683:49;;;25724:7;25683:49;;;;;;:::i;:::-;;;;;;;;25414:326:::0;;:::o;15727:51::-;;;;;;;;;;;;;:::o;15787:41::-;;;;;;;;;;;;;:::o;3185:108::-;3246:7;3273:12;;3266:19;;3185:108;:::o;24473:141::-;24548:4;24572:25;:34;24598:7;24572:34;;;;;;;;;;;;;;;;;;;;;;;;;24565:41;;24473:141;;;:::o;3955:573::-;4095:4;4112:24;4139:11;:19;4151:6;4139:19;;;;;;;;;;;;;;;:33;4159:12;:10;:12::i;:::-;4139:33;;;;;;;;;;;;;;;;4112:60;;4207:17;4187:16;:37;4183:265;;4269:6;4249:16;:26;;4241:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4364:57;4373:6;4381:12;:10;:12::i;:::-;4414:6;4395:16;:25;4364:8;:57::i;:::-;4183:265;4460:36;4470:6;4478:9;4489:6;4460:9;:36::i;:::-;4516:4;4509:11;;;3955:573;;;;;:::o;15607:27::-;;;;:::o;16289:48::-;;;;;;;;;;;;;:::o;3085:92::-;3143:5;3168:1;3161:8;;3085:92;:::o;4536:215::-;4624:4;4641:80;4650:12;:10;:12::i;:::-;4664:7;4710:10;4673:11;:25;4685:12;:10;:12::i;:::-;4673:25;;;;;;;;;;;;;;;:34;4699:7;4673:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4641:8;:80::i;:::-;4739:4;4732:11;;4536:215;;;;:::o;24626:132::-;24679:7;24746:4;24722:21;;24706:13;:11;:13::i;:::-;:37;;;;:::i;:::-;:44;;;;:::i;:::-;24699:51;;24626:132;:::o;15575:25::-;;;;:::o;15835:29::-;;;;;;;;;;;;;:::o;16024:30::-;;;;;;;;;;;;;:::o;19632:125::-;19697:4;19721:19;:28;19741:7;19721:28;;;;;;;;;;;;;;;;;;;;;;;;;19714:35;;19632:125;;;:::o;20006:272::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20141:6:::1;20105:42;;:32;;;;;;;;;;;:42;;::::0;20097:121:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20264:6;20229:32;;:41;;;;;;;;;;;;;;;;;;20006:272:::0;:::o;24163:302::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24262:26:::1;;;;;;;;;;;24252:36;;:6;:36;;::::0;24244:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24376:6;24347:26;;:35;;;;;;;;;;;;;;;;;;24398:59;24430:26;;;;;;;;;;;24398:59;;;;;;:::i;:::-;;;;;;;;24163:302:::0;:::o;24908:498::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25086:1:::1;25059:23;:28;;:59;;;;;25117:1;25091:22;:27;;25059:59;25051:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;25223:22;25198:21;:47;;;;25281:23;25256:22;:48;;;;25320:78;25352:21;;25375:22;;25320:78;;;;;;;:::i;:::-;;;;;;;;24908:498:::0;;:::o;19765:233::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19869:2:::1;19858:7;:13;;:31;;;;;19887:2;19875:8;:14;;19858:31;19850:40;;;::::0;::::1;;19910:7;19901:6;:16;;;;19938:8;19928:7;:18;;;;19962:28;19974:6;;19982:7;;19962:28;;;;;;;:::i;:::-;;;;;;;;19765:233:::0;;:::o;3301:127::-;3375:7;3402:9;:18;3412:7;3402:18;;;;;;;;;;;;;;;;3395:25;;3301:127;;;:::o;2052:148::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2159:1:::1;2122:40;;2143:6;;;;;;;;;;;2122:40;;;;;;;;;;;;2190:1;2173:6;;:19;;;;;;;;;;;;;;;;;;2052:148::o:0;15643:75::-;;;;;;;;;;;;;:::o;20667:185::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20744:1:::1;20730:10;;:15;20722:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;20797:15;20784:10;:28;;;;20840:4;20823:14;;:21;;;;;;;;;;;;;;;;;;20667:185::o:0;1838:79::-;1876:7;1903:6;;;;;;;;;;;1896:13;;1838:79;:::o;2973:104::-;3029:13;3062:7;3055:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:104;:::o;4759:413::-;4852:4;4869:24;4896:11;:25;4908:12;:10;:12::i;:::-;4896:25;;;;;;;;;;;;;;;:34;4922:7;4896:34;;;;;;;;;;;;;;;;4869:61;;4969:15;4949:16;:35;;4941:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5062:67;5071:12;:10;:12::i;:::-;5085:7;5113:15;5094:16;:34;5062:8;:67::i;:::-;5160:4;5153:11;;;4759:413;;;;:::o;3436:175::-;3522:4;3539:42;3549:12;:10;:12::i;:::-;3563:9;3574:6;3539:9;:42::i;:::-;3599:4;3592:11;;3436:175;;;;:::o;23918:237::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24033:6:::1;24017:13;:11;:13::i;:::-;:22;;;;:::i;:::-;24005:9;:34;23997:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;24138:9;24117:18;:30;;;;23918:237:::0;:::o;16156:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;20286:373::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20401:15:::1;;;;;;;;;;;20381:35;;:16;:35;;::::0;20373:88:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20481:28;20492:16;20481:10;:28::i;:::-;20480:29;20472:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;20580:16;20562:15;;:34;;;;;;;;;;;;;;;;;;20612:39;20635:15;;;;;;;;;;;20612:39;;;;;;:::i;:::-;;;;;;;;20286:373:::0;:::o;19332:292::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19459:8:::1;19427:40;;:19;:28;19447:7;19427:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;19419:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19556:8;19525:19;:28;19545:7;19525:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19598:7;19582:34;;;19607:8;19582:34;;;;;;:::i;:::-;;;;;;;;19332:292:::0;;:::o;3619:151::-;3708:7;3735:11;:18;3747:5;3735:18;;;;;;;;;;;;;;;:27;3754:7;3735:27;;;;;;;;;;;;;;;;3728:34;;3619:151;;;;:::o;15982:33::-;;;;:::o;2208:244::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2317:1:::1;2297:22;;:8;:22;;::::0;2289:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2407:8;2378:38;;2399:6;;;;;;;;;;;2378:38;;;;;;;;;;;;2436:8;2427:6;;:17;;;;;;;;;;;;;;;;;;2208:244:::0;:::o;18121:441::-;1975:12;:10;:12::i;:::-;1965:22;;:6;;;;;;;;;;;:22;;;1957:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18217:4:::1;18200:22;;:5;:22;;::::0;18192:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18291:3;18274:21;;:5;:21;;::::0;18270:126:::1;;18320:10;18312:28;;:51;18341:21;18312:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18378:7;;18270:126;18406:17;18433:5;18406:33;;18450:15;18468:10;:20;;;18497:4;18468:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18450:53;;18514:10;:19;;;18534:10;18546:7;18514:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18181:381;;2035:1;18121:441:::0;:::o;1161:98::-;1214:7;1241:10;1234:17;;1161:98;:::o;6927:380::-;7080:1;7063:19;;:5;:19;;;7055:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7161:1;7142:21;;:7;:21;;;7134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7245:6;7215:11;:18;7227:5;7215:18;;;;;;;;;;;;;;;:27;7234:7;7215:27;;;;;;;;;;;;;;;:36;;;;7283:7;7267:32;;7276:5;7267:32;;;7292:6;7267:32;;;;;;:::i;:::-;;;;;;;;6927:380;;;:::o;20860:2368::-;21009:1;20993:18;;:4;:18;;;20985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21086:1;21072:16;;:2;:16;;;21064:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21163:14;;;;;;;;;;;:56;;;;21194:19;:25;21214:4;21194:25;;;;;;;;;;;;;;;;;;;;;;;;;21163:56;:97;;;;21237:19;:23;21257:2;21237:23;;;;;;;;;;;;;;;;;;;;;;;;;21163:97;21141:173;;;;;;;;;;;;:::i;:::-;;;;;;;;;21340:1;21330:6;:11;21327:92;;21358:28;21374:4;21380:2;21384:1;21358:15;:28::i;:::-;21401:7;;21327:92;21435:26;;;;;;;;;;;21431:531;;;21517:5;21482:40;;:25;:31;21508:4;21482:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;:99;;;;;21576:5;21543:38;;:25;:29;21569:2;21543:29;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;21482:99;21478:473;;;21628:13;;;;;;;;;;;21620:21;;:4;:21;;;21616:320;;21684:22;:20;:22::i;:::-;21674:6;:32;;21666:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;21616:320;;;21832:23;:21;:23::i;:::-;21822:6;:33;;21814:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;21616:320;21478:473;21431:531;21968:28;21999:24;22017:4;21999:9;:24::i;:::-;21968:55;;22036:12;22075:18;;22051:20;:42;;22036:57;;22110:7;:33;;;;;22135:8;;;;;;;;;;;22134:9;22110:33;:79;;;;;22160:25;:29;22186:2;22160:29;;;;;;;;;;;;;;;;;;;;;;;;;22110:79;22106:400;;;22227:4;22216:8;;:15;;;;;;;;;;;;;;;;;;22307:2;22286:18;;:23;;;;:::i;:::-;22263:20;:46;22260:131;;;22373:2;22352:18;;:23;;;;:::i;:::-;22329:46;;22260:131;22419:42;22440:20;22419;:42::i;:::-;22489:5;22478:8;;:16;;;;;;;;;;;;;;;;;;22106:400;22518:12;22534:8;;;;;;;;;;;22533:9;22518:24;;22558:19;:25;22578:4;22558:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22587:19;:23;22607:2;22587:23;;;;;;;;;;;;;;;;;;;;;;;;;22558:52;22555:99;;;22637:5;22627:15;;22555:99;22669:32;;;;;;;;;;;:57;;;;;22713:13;;;;;;;;;;;22705:21;;:4;:21;;;;22669:57;:80;;;;;22736:13;;;;;;;;;;;22730:19;;:2;:19;;;;22669:80;22666:127;;;22776:5;22766:15;;22666:127;22808:7;22805:368;;;22832:18;22876:13;;;;;;;;;;;22868:21;;:4;:21;;;22865:141;;22923:6;;22910:19;;22865:141;;;22983:7;;22970:20;;22865:141;23017:12;23054:3;23041:10;23032:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23017:40;;23098:4;23089:6;:13;;;;:::i;:::-;23080:22;;23119:42;23135:4;23149;23156;23119:15;:42::i;:::-;22817:356;;22805:368;23185:33;23201:4;23207:2;23211:6;23185:15;:33::i;:::-;20974:2254;;;20860:2368;;;;:::o;18570:115::-;18630:4;18676:1;18654:7;:19;;;:23;18647:30;;18570:115;;;:::o;5180:733::-;5338:1;5320:20;;:6;:20;;;5312:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5422:1;5401:23;;:9;:23;;;5393:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5477:47;5498:6;5506:9;5517:6;5477:20;:47::i;:::-;5537:21;5561:9;:17;5571:6;5561:17;;;;;;;;;;;;;;;;5537:41;;5614:6;5597:13;:23;;5589:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5735:6;5719:13;:22;5699:9;:17;5709:6;5699:17;;;;;;;;;;;;;;;:42;;;;5787:6;5763:9;:20;5773:9;5763:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5828:9;5811:35;;5820:6;5811:35;;;5839:6;5811:35;;;;;;:::i;:::-;;;;;;;;5859:46;5879:6;5887:9;5898:6;5859:19;:46::i;:::-;5301:612;5180:733;;;:::o;23236:674::-;23306:22;23331:21;23306:46;;23365:21;23403:1;23389:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23365:40;;23434:4;23416;23421:1;23416:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23460:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23450:4;23455:1;23450:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23495:15;;;;;;;;;;;:66;;;23576:11;23602:1;23646:4;23673;23693:15;23495:214;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23722:18;23767:14;23743:21;:38;;;;:::i;:::-;23722:59;;23794:45;23810:15;;;;;;;;;;;23828:10;23794:7;:45::i;:::-;23857;23878:11;23891:10;23857:45;;;;;;;:::i;:::-;;;;;;;;23295:615;;;23236:674;:::o;7315:125::-;;;;:::o;7448:124::-;;;;:::o;18693:315::-;18806:6;18781:21;:31;;18773:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18860:12;18878:9;:14;;18900:6;18878:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18859:52;;;18930:7;18922:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;18762:246;18693: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;1349:77::-;1386:7;1415:5;1404:16;;1349:77;;;:::o;1432:118::-;1519:24;1537:5;1519:24;:::i;:::-;1514:3;1507:37;1432:118;;:::o;1556:222::-;1649:4;1687:2;1676:9;1672:18;1664:26;;1700:71;1768:1;1757:9;1753:17;1744:6;1700:71;:::i;:::-;1556:222;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:468::-;4124:6;4132;4181:2;4169:9;4160:7;4156:23;4152:32;4149:119;;;4187:79;;:::i;:::-;4149:119;4307:1;4332:53;4377:7;4368:6;4357:9;4353:22;4332:53;:::i;:::-;4322:63;;4278:117;4434:2;4460:50;4502:7;4493:6;4482:9;4478:22;4460:50;:::i;:::-;4450:60;;4405:115;4059:468;;;;;:::o;4533:60::-;4561:3;4582:5;4575:12;;4533:60;;;:::o;4599:142::-;4649:9;4682:53;4700:34;4709:24;4727:5;4709:24;:::i;:::-;4700:34;:::i;:::-;4682:53;:::i;:::-;4669:66;;4599:142;;;:::o;4747:126::-;4797:9;4830:37;4861:5;4830:37;:::i;:::-;4817:50;;4747:126;;;:::o;4879:153::-;4956:9;4989:37;5020:5;4989:37;:::i;:::-;4976:50;;4879:153;;;:::o;5038:185::-;5152:64;5210:5;5152:64;:::i;:::-;5147:3;5140:77;5038:185;;:::o;5229:276::-;5349:4;5387:2;5376:9;5372:18;5364:26;;5400:98;5495:1;5484:9;5480:17;5471:6;5400:98;:::i;:::-;5229:276;;;;:::o;5511:329::-;5570:6;5619:2;5607:9;5598:7;5594:23;5590:32;5587:119;;;5625:79;;:::i;:::-;5587:119;5745:1;5770:53;5815:7;5806:6;5795:9;5791:22;5770:53;:::i;:::-;5760:63;;5716:117;5511:329;;;;:::o;5846:619::-;5923:6;5931;5939;5988:2;5976:9;5967:7;5963:23;5959:32;5956:119;;;5994:79;;:::i;:::-;5956:119;6114:1;6139:53;6184:7;6175:6;6164:9;6160:22;6139:53;:::i;:::-;6129:63;;6085:117;6241:2;6267:53;6312:7;6303:6;6292:9;6288:22;6267:53;:::i;:::-;6257:63;;6212:118;6369:2;6395:53;6440:7;6431:6;6420:9;6416:22;6395:53;:::i;:::-;6385:63;;6340:118;5846:619;;;;;:::o;6471:86::-;6506:7;6546:4;6539:5;6535:16;6524:27;;6471:86;;;:::o;6563:112::-;6646:22;6662:5;6646:22;:::i;:::-;6641:3;6634:35;6563:112;;:::o;6681:214::-;6770:4;6808:2;6797:9;6793:18;6785:26;;6821:67;6885:1;6874:9;6870:17;6861:6;6821:67;:::i;:::-;6681:214;;;;:::o;6901:118::-;6988:24;7006:5;6988:24;:::i;:::-;6983:3;6976:37;6901:118;;:::o;7025:222::-;7118:4;7156:2;7145:9;7141:18;7133:26;;7169:71;7237:1;7226:9;7222:17;7213:6;7169:71;:::i;:::-;7025:222;;;;:::o;7253:323::-;7309:6;7358:2;7346:9;7337:7;7333:23;7329:32;7326:119;;;7364:79;;:::i;:::-;7326:119;7484:1;7509:50;7551:7;7542:6;7531:9;7527:22;7509:50;:::i;:::-;7499:60;;7455:114;7253:323;;;;:::o;7582:474::-;7650:6;7658;7707:2;7695:9;7686:7;7682:23;7678:32;7675:119;;;7713:79;;:::i;:::-;7675:119;7833:1;7858:53;7903:7;7894:6;7883:9;7879:22;7858:53;:::i;:::-;7848:63;;7804:117;7960:2;7986:53;8031:7;8022:6;8011:9;8007:22;7986:53;:::i;:::-;7976:63;;7931:118;7582:474;;;;;:::o;8062:329::-;8121:6;8170:2;8158:9;8149:7;8145:23;8141:32;8138:119;;;8176:79;;:::i;:::-;8138:119;8296:1;8321:53;8366:7;8357:6;8346:9;8342:22;8321:53;:::i;:::-;8311:63;;8267:117;8062:329;;;;:::o;8397:474::-;8465:6;8473;8522:2;8510:9;8501:7;8497:23;8493:32;8490:119;;;8528:79;;:::i;:::-;8490:119;8648:1;8673:53;8718:7;8709:6;8698:9;8694:22;8673:53;:::i;:::-;8663:63;;8619:117;8775:2;8801:53;8846:7;8837:6;8826:9;8822:22;8801:53;:::i;:::-;8791:63;;8746:118;8397:474;;;;;:::o;8877:180::-;8925:77;8922:1;8915:88;9022:4;9019:1;9012:15;9046:4;9043:1;9036:15;9063:320;9107:6;9144:1;9138:4;9134:12;9124:22;;9191:1;9185:4;9181:12;9212:18;9202:81;;9268:4;9260:6;9256:17;9246:27;;9202:81;9330:2;9322:6;9319:14;9299:18;9296:38;9293:84;;9349:18;;:::i;:::-;9293:84;9114:269;9063:320;;;:::o;9389:180::-;9437:77;9434:1;9427:88;9534:4;9531:1;9524:15;9558:4;9555:1;9548:15;9575:348;9615:7;9638:20;9656:1;9638:20;:::i;:::-;9633:25;;9672:20;9690:1;9672:20;:::i;:::-;9667:25;;9860:1;9792:66;9788:74;9785:1;9782:81;9777:1;9770:9;9763:17;9759:105;9756:131;;;9867:18;;:::i;:::-;9756:131;9915:1;9912;9908:9;9897:20;;9575:348;;;;:::o;9929:180::-;9977:77;9974:1;9967:88;10074:4;10071:1;10064:15;10098:4;10095:1;10088:15;10115:185;10155:1;10172:20;10190:1;10172:20;:::i;:::-;10167:25;;10206:20;10224:1;10206:20;:::i;:::-;10201:25;;10245:1;10235:35;;10250:18;;:::i;:::-;10235:35;10292:1;10289;10285:9;10280:14;;10115:185;;;;:::o;10306:182::-;10446:34;10442:1;10434:6;10430:14;10423:58;10306:182;:::o;10494:366::-;10636:3;10657:67;10721:2;10716:3;10657:67;:::i;:::-;10650:74;;10733:93;10822:3;10733:93;:::i;:::-;10851:2;10846:3;10842:12;10835:19;;10494:366;;;:::o;10866:419::-;11032:4;11070:2;11059:9;11055:18;11047:26;;11119:9;11113:4;11109:20;11105:1;11094:9;11090:17;11083:47;11147:131;11273:4;11147:131;:::i;:::-;11139:139;;10866:419;;;:::o;11291:223::-;11431:34;11427:1;11419:6;11415:14;11408:58;11500:6;11495:2;11487:6;11483:15;11476:31;11291:223;:::o;11520:366::-;11662:3;11683:67;11747:2;11742:3;11683:67;:::i;:::-;11676:74;;11759:93;11848:3;11759:93;:::i;:::-;11877:2;11872:3;11868:12;11861:19;;11520:366;;;:::o;11892:419::-;12058:4;12096:2;12085:9;12081:18;12073:26;;12145:9;12139:4;12135:20;12131:1;12120:9;12116:17;12109:47;12173:131;12299:4;12173:131;:::i;:::-;12165:139;;11892:419;;;:::o;12317:227::-;12457:34;12453:1;12445:6;12441:14;12434:58;12526:10;12521:2;12513:6;12509:15;12502:35;12317:227;:::o;12550:366::-;12692:3;12713:67;12777:2;12772:3;12713:67;:::i;:::-;12706:74;;12789:93;12878:3;12789:93;:::i;:::-;12907:2;12902:3;12898:12;12891:19;;12550:366;;;:::o;12922:419::-;13088:4;13126:2;13115:9;13111:18;13103:26;;13175:9;13169:4;13165:20;13161:1;13150:9;13146:17;13139:47;13203:131;13329:4;13203:131;:::i;:::-;13195:139;;12922:419;;;:::o;13347:191::-;13387:3;13406:20;13424:1;13406:20;:::i;:::-;13401:25;;13440:20;13458:1;13440:20;:::i;:::-;13435:25;;13483:1;13480;13476:9;13469:16;;13504:3;13501:1;13498:10;13495:36;;;13511:18;;:::i;:::-;13495:36;13347:191;;;;:::o;13544:290::-;13684:34;13680:1;13672:6;13668:14;13661:58;13753:34;13748:2;13740:6;13736:15;13729:59;13822:4;13817:2;13809:6;13805:15;13798:29;13544:290;:::o;13840:366::-;13982:3;14003:67;14067:2;14062:3;14003:67;:::i;:::-;13996:74;;14079:93;14168:3;14079:93;:::i;:::-;14197:2;14192:3;14188:12;14181:19;;13840:366;;;:::o;14212:419::-;14378:4;14416:2;14405:9;14401:18;14393:26;;14465:9;14459:4;14455:20;14451:1;14440:9;14436:17;14429:47;14493:131;14619:4;14493:131;:::i;:::-;14485:139;;14212:419;;;:::o;14637:230::-;14777:34;14773:1;14765:6;14761:14;14754:58;14846:13;14841:2;14833:6;14829:15;14822:38;14637:230;:::o;14873:366::-;15015:3;15036:67;15100:2;15095:3;15036:67;:::i;:::-;15029:74;;15112:93;15201:3;15112:93;:::i;:::-;15230:2;15225:3;15221:12;15214:19;;14873:366;;;:::o;15245:419::-;15411:4;15449:2;15438:9;15434:18;15426:26;;15498:9;15492:4;15488:20;15484:1;15473:9;15469:17;15462:47;15526:131;15652:4;15526:131;:::i;:::-;15518:139;;15245:419;;;:::o;15670:250::-;15810:34;15806:1;15798:6;15794:14;15787:58;15879:33;15874:2;15866:6;15862:15;15855:58;15670:250;:::o;15926:366::-;16068:3;16089:67;16153:2;16148:3;16089:67;:::i;:::-;16082:74;;16165:93;16254:3;16165:93;:::i;:::-;16283:2;16278:3;16274:12;16267:19;;15926:366;;;:::o;16298:419::-;16464:4;16502:2;16491:9;16487:18;16479:26;;16551:9;16545:4;16541:20;16537:1;16526:9;16522:17;16515:47;16579:131;16705:4;16579:131;:::i;:::-;16571:139;;16298:419;;;:::o;16723:332::-;16844:4;16882:2;16871:9;16867:18;16859:26;;16895:71;16963:1;16952:9;16948:17;16939:6;16895:71;:::i;:::-;16976:72;17044:2;17033:9;17029:18;17020:6;16976:72;:::i;:::-;16723:332;;;;;:::o;17061:173::-;17201:25;17197:1;17189:6;17185:14;17178:49;17061:173;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:224::-;18177:34;18173:1;18165:6;18161:14;18154:58;18246:7;18241:2;18233:6;18229:15;18222:32;18037:224;:::o;18267:366::-;18409:3;18430:67;18494:2;18489:3;18430:67;:::i;:::-;18423:74;;18506:93;18595:3;18506:93;:::i;:::-;18624:2;18619:3;18615:12;18608:19;;18267:366;;;:::o;18639:419::-;18805:4;18843:2;18832:9;18828:18;18820:26;;18892:9;18886:4;18882:20;18878:1;18867:9;18863:17;18856:47;18920:131;19046:4;18920:131;:::i;:::-;18912:139;;18639:419;;;:::o;19064:249::-;19204:34;19200:1;19192:6;19188:14;19181:58;19273:32;19268:2;19260:6;19256:15;19249:57;19064:249;:::o;19319:366::-;19461:3;19482:67;19546:2;19541:3;19482:67;:::i;:::-;19475:74;;19558:93;19647:3;19558:93;:::i;:::-;19676:2;19671:3;19667:12;19660:19;;19319:366;;;:::o;19691:419::-;19857:4;19895:2;19884:9;19880:18;19872:26;;19944:9;19938:4;19934:20;19930:1;19919:9;19915:17;19908:47;19972:131;20098:4;19972:131;:::i;:::-;19964:139;;19691:419;;;:::o;20116:227::-;20256:34;20252:1;20244:6;20240:14;20233:58;20325:10;20320:2;20312:6;20308:15;20301:35;20116:227;:::o;20349:366::-;20491:3;20512:67;20576:2;20571:3;20512:67;:::i;:::-;20505:74;;20588:93;20677:3;20588:93;:::i;:::-;20706:2;20701:3;20697:12;20690:19;;20349:366;;;:::o;20721:419::-;20887:4;20925:2;20914:9;20910:18;20902:26;;20974:9;20968:4;20964:20;20960:1;20949:9;20945:17;20938:47;21002:131;21128:4;21002:131;:::i;:::-;20994:139;;20721:419;;;:::o;21146:224::-;21286:34;21282:1;21274:6;21270:14;21263:58;21355:7;21350:2;21342:6;21338:15;21331:32;21146:224;:::o;21376:366::-;21518:3;21539:67;21603:2;21598:3;21539:67;:::i;:::-;21532:74;;21615:93;21704:3;21615:93;:::i;:::-;21733:2;21728:3;21724:12;21717:19;;21376:366;;;:::o;21748:419::-;21914:4;21952:2;21941:9;21937:18;21929:26;;22001:9;21995:4;21991:20;21987:1;21976:9;21972:17;21965:47;22029:131;22155:4;22029:131;:::i;:::-;22021:139;;21748:419;;;:::o;22173:229::-;22313:34;22309:1;22301:6;22297:14;22290:58;22382:12;22377:2;22369:6;22365:15;22358:37;22173:229;:::o;22408:366::-;22550:3;22571:67;22635:2;22630:3;22571:67;:::i;:::-;22564:74;;22647:93;22736:3;22647:93;:::i;:::-;22765:2;22760:3;22756:12;22749:19;;22408:366;;;:::o;22780:419::-;22946:4;22984:2;22973:9;22969:18;22961:26;;23033:9;23027:4;23023:20;23019:1;23008:9;23004:17;22997:47;23061:131;23187:4;23061:131;:::i;:::-;23053:139;;22780:419;;;:::o;23205:225::-;23345:34;23341:1;23333:6;23329:14;23322:58;23414:8;23409:2;23401:6;23397:15;23390:33;23205:225;:::o;23436:366::-;23578:3;23599:67;23663:2;23658:3;23599:67;:::i;:::-;23592:74;;23675:93;23764:3;23675:93;:::i;:::-;23793:2;23788:3;23784:12;23777:19;;23436:366;;;:::o;23808:419::-;23974:4;24012:2;24001:9;23997:18;23989:26;;24061:9;24055:4;24051:20;24047:1;24036:9;24032:17;24025:47;24089:131;24215:4;24089:131;:::i;:::-;24081:139;;23808:419;;;:::o;24233:182::-;24373:34;24369:1;24361:6;24357:14;24350:58;24233:182;:::o;24421:366::-;24563:3;24584:67;24648:2;24643:3;24584:67;:::i;:::-;24577:74;;24660:93;24749:3;24660:93;:::i;:::-;24778:2;24773:3;24769:12;24762:19;;24421:366;;;:::o;24793:419::-;24959:4;24997:2;24986:9;24982:18;24974:26;;25046:9;25040:4;25036:20;25032:1;25021:9;25017:17;25010:47;25074:131;25200:4;25074:131;:::i;:::-;25066:139;;24793:419;;;:::o;25218:143::-;25275:5;25306:6;25300:13;25291:22;;25322:33;25349:5;25322:33;:::i;:::-;25218:143;;;;:::o;25367:351::-;25437:6;25486:2;25474:9;25465:7;25461:23;25457:32;25454:119;;;25492:79;;:::i;:::-;25454:119;25612:1;25637:64;25693:7;25684:6;25673:9;25669:22;25637:64;:::i;:::-;25627:74;;25583:128;25367:351;;;;:::o;25724:332::-;25845:4;25883:2;25872:9;25868:18;25860:26;;25896:71;25964:1;25953:9;25949:17;25940:6;25896:71;:::i;:::-;25977:72;26045:2;26034:9;26030:18;26021:6;25977:72;:::i;:::-;25724:332;;;;;:::o;26062:137::-;26116:5;26147:6;26141:13;26132:22;;26163:30;26187:5;26163:30;:::i;:::-;26062:137;;;;:::o;26205:345::-;26272:6;26321:2;26309:9;26300:7;26296:23;26292:32;26289:119;;;26327:79;;:::i;:::-;26289:119;26447:1;26472:61;26525:7;26516:6;26505:9;26501:22;26472:61;:::i;:::-;26462:71;;26418:125;26205:345;;;;:::o;26556:223::-;26696:34;26692:1;26684:6;26680:14;26673:58;26765:6;26760:2;26752:6;26748:15;26741:31;26556:223;:::o;26785:366::-;26927:3;26948:67;27012:2;27007:3;26948:67;:::i;:::-;26941:74;;27024:93;27113:3;27024:93;:::i;:::-;27142:2;27137:3;27133:12;27126:19;;26785:366;;;:::o;27157:419::-;27323:4;27361:2;27350:9;27346:18;27338:26;;27410:9;27404:4;27400:20;27396:1;27385:9;27381:17;27374:47;27438:131;27564:4;27438:131;:::i;:::-;27430:139;;27157:419;;;:::o;27582:221::-;27722:34;27718:1;27710:6;27706:14;27699:58;27791:4;27786:2;27778:6;27774:15;27767:29;27582:221;:::o;27809:366::-;27951:3;27972:67;28036:2;28031:3;27972:67;:::i;:::-;27965:74;;28048:93;28137:3;28048:93;:::i;:::-;28166:2;28161:3;28157:12;28150:19;;27809:366;;;:::o;28181:419::-;28347:4;28385:2;28374:9;28370:18;28362:26;;28434:9;28428:4;28424:20;28420:1;28409:9;28405:17;28398:47;28462:131;28588:4;28462:131;:::i;:::-;28454:139;;28181:419;;;:::o;28606:224::-;28746:34;28742:1;28734:6;28730:14;28723:58;28815:7;28810:2;28802:6;28798:15;28791:32;28606:224;:::o;28836:366::-;28978:3;28999:67;29063:2;29058:3;28999:67;:::i;:::-;28992:74;;29075:93;29164:3;29075:93;:::i;:::-;29193:2;29188:3;29184:12;29177:19;;28836:366;;;:::o;29208:419::-;29374:4;29412:2;29401:9;29397:18;29389:26;;29461:9;29455:4;29451:20;29447:1;29436:9;29432:17;29425:47;29489:131;29615:4;29489:131;:::i;:::-;29481:139;;29208:419;;;:::o;29633:222::-;29773:34;29769:1;29761:6;29757:14;29750:58;29842:5;29837:2;29829:6;29825:15;29818:30;29633:222;:::o;29861:366::-;30003:3;30024:67;30088:2;30083:3;30024:67;:::i;:::-;30017:74;;30100:93;30189:3;30100:93;:::i;:::-;30218:2;30213:3;30209:12;30202:19;;29861:366;;;:::o;30233:419::-;30399:4;30437:2;30426:9;30422:18;30414:26;;30486:9;30480:4;30476:20;30472:1;30461:9;30457:17;30450:47;30514:131;30640:4;30514:131;:::i;:::-;30506:139;;30233:419;;;:::o;30658:176::-;30798:28;30794:1;30786:6;30782:14;30775:52;30658:176;:::o;30840:366::-;30982:3;31003:67;31067:2;31062:3;31003:67;:::i;:::-;30996:74;;31079:93;31168:3;31079:93;:::i;:::-;31197:2;31192:3;31188:12;31181:19;;30840:366;;;:::o;31212:419::-;31378:4;31416:2;31405:9;31401:18;31393:26;;31465:9;31459:4;31455:20;31451:1;31440:9;31436:17;31429:47;31493:131;31619:4;31493:131;:::i;:::-;31485:139;;31212:419;;;:::o;31637:243::-;31777:34;31773:1;31765:6;31761:14;31754:58;31846:26;31841:2;31833:6;31829:15;31822:51;31637:243;:::o;31886:366::-;32028:3;32049:67;32113:2;32108:3;32049:67;:::i;:::-;32042:74;;32125:93;32214:3;32125:93;:::i;:::-;32243:2;32238:3;32234:12;32227:19;;31886:366;;;:::o;32258:419::-;32424:4;32462:2;32451:9;32447:18;32439:26;;32511:9;32505:4;32501:20;32497:1;32486:9;32482:17;32475:47;32539:131;32665:4;32539:131;:::i;:::-;32531:139;;32258:419;;;:::o;32683:194::-;32723:4;32743:20;32761:1;32743:20;:::i;:::-;32738:25;;32777:20;32795:1;32777:20;:::i;:::-;32772:25;;32821:1;32818;32814:9;32806:17;;32845:1;32839:4;32836:11;32833:37;;;32850:18;;:::i;:::-;32833:37;32683:194;;;;:::o;32883:225::-;33023:34;33019:1;33011:6;33007:14;33000:58;33092:8;33087:2;33079:6;33075:15;33068:33;32883:225;:::o;33114:366::-;33256:3;33277:67;33341:2;33336:3;33277:67;:::i;:::-;33270:74;;33353:93;33442:3;33353:93;:::i;:::-;33471:2;33466:3;33462:12;33455:19;;33114:366;;;:::o;33486:419::-;33652:4;33690:2;33679:9;33675:18;33667:26;;33739:9;33733:4;33729:20;33725:1;33714:9;33710:17;33703:47;33767:131;33893:4;33767:131;:::i;:::-;33759:139;;33486:419;;;:::o;33911:180::-;33959:77;33956:1;33949:88;34056:4;34053:1;34046:15;34080:4;34077:1;34070:15;34097:180;34145:77;34142:1;34135:88;34242:4;34239:1;34232:15;34266:4;34263:1;34256:15;34283:143;34340:5;34371:6;34365:13;34356:22;;34387:33;34414:5;34387:33;:::i;:::-;34283:143;;;;:::o;34432:351::-;34502:6;34551:2;34539:9;34530:7;34526:23;34522:32;34519:119;;;34557:79;;:::i;:::-;34519:119;34677:1;34702:64;34758:7;34749:6;34738:9;34734:22;34702:64;:::i;:::-;34692:74;;34648:128;34432:351;;;;:::o;34789:85::-;34834:7;34863:5;34852:16;;34789:85;;;:::o;34880:158::-;34938:9;34971:61;34989:42;34998:32;35024:5;34998:32;:::i;:::-;34989:42;:::i;:::-;34971:61;:::i;:::-;34958:74;;34880:158;;;:::o;35044:147::-;35139:45;35178:5;35139:45;:::i;:::-;35134:3;35127:58;35044:147;;:::o;35197:114::-;35264:6;35298:5;35292:12;35282:22;;35197:114;;;:::o;35317:184::-;35416:11;35450:6;35445:3;35438:19;35490:4;35485:3;35481:14;35466:29;;35317:184;;;;:::o;35507:132::-;35574:4;35597:3;35589:11;;35627:4;35622:3;35618:14;35610:22;;35507:132;;;:::o;35645:108::-;35722:24;35740:5;35722:24;:::i;:::-;35717:3;35710:37;35645:108;;:::o;35759:179::-;35828:10;35849:46;35891:3;35883:6;35849:46;:::i;:::-;35927:4;35922:3;35918:14;35904:28;;35759:179;;;;:::o;35944:113::-;36014:4;36046;36041:3;36037:14;36029:22;;35944:113;;;:::o;36093:732::-;36212:3;36241:54;36289:5;36241:54;:::i;:::-;36311:86;36390:6;36385:3;36311:86;:::i;:::-;36304:93;;36421:56;36471:5;36421:56;:::i;:::-;36500:7;36531:1;36516:284;36541:6;36538:1;36535:13;36516:284;;;36617:6;36611:13;36644:63;36703:3;36688:13;36644:63;:::i;:::-;36637:70;;36730:60;36783:6;36730:60;:::i;:::-;36720:70;;36576:224;36563:1;36560;36556:9;36551:14;;36516:284;;;36520:14;36816:3;36809:10;;36217:608;;;36093:732;;;;:::o;36831:831::-;37094:4;37132:3;37121:9;37117:19;37109:27;;37146:71;37214:1;37203:9;37199:17;37190:6;37146:71;:::i;:::-;37227:80;37303:2;37292:9;37288:18;37279:6;37227:80;:::i;:::-;37354:9;37348:4;37344:20;37339:2;37328:9;37324:18;37317:48;37382:108;37485:4;37476:6;37382:108;:::i;:::-;37374:116;;37500:72;37568:2;37557:9;37553:18;37544:6;37500:72;:::i;:::-;37582:73;37650:3;37639:9;37635:19;37626:6;37582:73;:::i;:::-;36831:831;;;;;;;;:::o;37668:179::-;37808:31;37804:1;37796:6;37792:14;37785:55;37668:179;:::o;37853:366::-;37995:3;38016:67;38080:2;38075:3;38016:67;:::i;:::-;38009:74;;38092:93;38181:3;38092:93;:::i;:::-;38210:2;38205:3;38201:12;38194:19;;37853:366;;;:::o;38225:419::-;38391:4;38429:2;38418:9;38414:18;38406:26;;38478:9;38472:4;38468:20;38464:1;38453:9;38449:17;38442:47;38506:131;38632:4;38506:131;:::i;:::-;38498:139;;38225:419;;;:::o;38650:147::-;38751:11;38788:3;38773:18;;38650:147;;;;:::o;38803:114::-;;:::o;38923:398::-;39082:3;39103:83;39184:1;39179:3;39103:83;:::i;:::-;39096:90;;39195:93;39284:3;39195:93;:::i;:::-;39313:1;39308:3;39304:11;39297:18;;38923:398;;;:::o;39327:379::-;39511:3;39533:147;39676:3;39533:147;:::i;:::-;39526:154;;39697:3;39690:10;;39327:379;;;:::o;39712:245::-;39852:34;39848:1;39840:6;39836:14;39829:58;39921:28;39916:2;39908:6;39904:15;39897:53;39712:245;:::o;39963:366::-;40105:3;40126:67;40190:2;40185:3;40126:67;:::i;:::-;40119:74;;40202:93;40291:3;40202:93;:::i;:::-;40320:2;40315:3;40311:12;40304:19;;39963:366;;;:::o;40335:419::-;40501:4;40539:2;40528:9;40524:18;40516:26;;40588:9;40582:4;40578:20;40574:1;40563:9;40559:17;40552:47;40616:131;40742:4;40616:131;:::i;:::-;40608:139;;40335:419;;;:::o

Swarm Source

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