ETH Price: $3,459.59 (-1.62%)
Gas: 3 Gwei

Token

THIS CAT (CAT)
 

Overview

Max Total Supply

10,000,000 CAT

Holders

138

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
CAT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

$THIS -----------> THIS $CAT

Website: https://thiscat.vip/
Telegram: https://t.me/thiscatportal
Twitter: https://x.com/ThisCatEth

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    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 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 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 IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract CAT is Context, IERC20, Ownable {

    using SafeMath for uint256;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=35;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=18;
    uint256 private _reduceSellTaxAt=35;
    uint256 private _preventSwapBefore=37;
    uint256 private _buyCount=0;

    address public developmentWallet;
    
    string private _name = "THIS CAT";
    string private _symbol = "CAT";
    uint8 private _decimals = 18; 
    uint256 private _totalSupply = 10_000_000 * 10**_decimals;
    uint256 public _maxTxAmount =  _totalSupply.mul(2).div(100);     // 2%
    uint256 public _walletMax = _totalSupply.mul(2).div(100);        // 2%
    uint256 feedenominator = 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 public swapThreshold = _totalSupply.mul(2).div(100);

    bool public swapEnabled = true;
    bool public swapbylimit = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    uint public buyTax = _initialBuyTax;
    uint public sellTax = _initialSellTax;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool public tradingEnable; 
    uint256 public launchedAt;

    bool inSwap;

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    modifier onlyGuard() {
        require(msg.sender == developmentWallet,"Invalid Caller");
        _;
    }

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        developmentWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory())
            .createPair(address(this), _dexRouter.WETH());

        dexRouter = _dexRouter;
        
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexPair)] = ~uint256(0);
        _allowances[address(this)][address(dexRouter)] = ~uint256(0);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if(!tradingEnable) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient], "Trading Paused"); 
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(buyTax).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(sellTax).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0)
            payable(developmentWallet).transfer(amountReceived);

    }


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

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

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setBuyFee(uint _buySide, uint _sellSide) external onlyOwner {    
        buyTax = _buySide;
        sellTax = _sellSide;
    }

    function removeLimits() external onlyGuard {
        EnableTxLimit = false;
        checkWalletLimit =  false;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnable, "Trade Enabled!");

        tradingEnable = true;
        launchedAt = block.timestamp;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","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":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buySide","type":"uint256"},{"internalType":"uint256","name":"_sellSide","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"tradingEnable","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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260196001556023600255600160035560016004556012600555602360065560256007555f6008556040518060400160405280600881526020017f5448495320434154000000000000000000000000000000000000000000000000815250600a9081620000719190620010d7565b506040518060400160405280600381526020017f4341540000000000000000000000000000000000000000000000000000000000815250600b9081620000b89190620010d7565b506012600c5f6101000a81548160ff021916908360ff160217905550600c5f9054906101000a900460ff16600a620000f1919062001344565b6298968062000101919062001394565b600d55620001316064620001226002600d5462000c7460201b90919060201c565b62000cf460201b90919060201c565b600e55620001616064620001526002600d5462000c7460201b90919060201c565b62000cf460201b90919060201c565b600f556064601055620001966064620001876002600d5462000c7460201b90919060201c565b62000cf460201b90919060201c565b601755600160185f6101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff0219169083151502179055506001601860036101000a81548160ff021916908315150217905550600154601955600254601a5561dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525034801562000284575f80fd5b50620002a56200029962000d4560201b60201c565b62000d4c60201b60201c565b3360095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000347573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036d919062001443565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003f9919062001443565b6040518363ffffffff1660e01b81526004016200041892919062001484565b6020604051808303815f875af115801562000435573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200045b919062001443565b601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160135f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f1960125f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f1960125f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600d5460115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405162000c659190620014c0565b60405180910390a3506200167f565b5f80830362000c86575f905062000cee565b5f828462000c95919062001394565b905082848262000ca6919062001508565b1462000ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ce090620015c3565b60405180910390fd5b809150505b92915050565b5f62000d3d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e0d60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e4d91906200165d565b60405180910390fd5b505f838562000e66919062001508565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000eef57607f821691505b60208210810362000f055762000f0462000eaa565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000f697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f2c565b62000f75868362000f2c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000fbf62000fb962000fb38462000f8d565b62000f96565b62000f8d565b9050919050565b5f819050919050565b62000fda8362000f9f565b62000ff262000fe98262000fc6565b84845462000f38565b825550505050565b5f90565b6200100862000ffa565b6200101581848462000fcf565b505050565b5b818110156200103c57620010305f8262000ffe565b6001810190506200101b565b5050565b601f8211156200108b57620010558162000f0b565b620010608462000f1d565b8101602085101562001070578190505b620010886200107f8562000f1d565b8301826200101a565b50505b505050565b5f82821c905092915050565b5f620010ad5f198460080262001090565b1980831691505092915050565b5f620010c783836200109c565b9150826002028217905092915050565b620010e28262000e73565b67ffffffffffffffff811115620010fe57620010fd62000e7d565b5b6200110a825462000ed7565b6200111782828562001040565b5f60209050601f8311600181146200114d575f841562001138578287015190505b620011448582620010ba565b865550620011b3565b601f1984166200115d8662000f0b565b5f5b8281101562001186578489015182556001820191506020850194506020810190506200115f565b86831015620011a65784890151620011a2601f8916826200109c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562001245578086048111156200121d576200121c620011bb565b5b60018516156200122d5780820291505b80810290506200123d85620011e8565b9450620011fd565b94509492505050565b5f826200125f576001905062001331565b816200126e575f905062001331565b81600181146200128757600281146200129257620012c8565b600191505062001331565b60ff841115620012a757620012a6620011bb565b5b8360020a915084821115620012c157620012c0620011bb565b5b5062001331565b5060208310610133831016604e8410600b8410161715620013025782820a905083811115620012fc57620012fb620011bb565b5b62001331565b620013118484846001620011f4565b925090508184048111156200132b576200132a620011bb565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620013508262000f8d565b91506200135d8362001338565b92506200138c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200124e565b905092915050565b5f620013a08262000f8d565b9150620013ad8362000f8d565b9250828202620013bd8162000f8d565b91508282048414831517620013d757620013d6620011bb565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200140d82620013e2565b9050919050565b6200141f8162001401565b81146200142a575f80fd5b50565b5f815190506200143d8162001414565b92915050565b5f602082840312156200145b576200145a620013de565b5b5f6200146a848285016200142d565b91505092915050565b6200147e8162001401565b82525050565b5f604082019050620014995f83018562001473565b620014a8602083018462001473565b9392505050565b620014ba8162000f8d565b82525050565b5f602082019050620014d55f830184620014af565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620015148262000f8d565b9150620015218362000f8d565b925082620015345762001533620014db565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f620015ab6021836200153f565b9150620015b8826200154f565b604082019050919050565b5f6020820190508181035f830152620015dc816200159d565b9050919050565b5f5b8381101562001602578082015181840152602081019050620015e5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620016298262000e73565b6200163581856200153f565b935062001647818560208601620015e3565b62001652816200160d565b840191505092915050565b5f6020820190508181035f8301526200167781846200161d565b905092915050565b60805160a0516142ef620016a15f395f610bdf01525f610d2e01526142ef5ff3fe6080604052600436106102b1575f3560e01c80637d1db4a511610174578063c16dd4a4116100db578063e6b2603b11610094578063f242ab411161006e578063f242ab4114610a7e578063f2fde38b14610aa8578063f872858a14610ad0578063fb0ecfa414610afa576102b8565b8063e6b2603b14610a16578063e9fd339414610a2c578063ee828db314610a56576102b8565b8063c16dd4a4146108fc578063c867d60b14610924578063cc1776d314610960578063cea9d26f1461098a578063dd62ed3e146109b2578063df8408fe146109ee576102b8565b8063a457c2d71161012d578063a457c2d7146107e0578063a9059cbb1461081c578063ae85ade614610858578063b94b0aef14610880578063bf56b371146108a8578063c04a5414146108d2576102b8565b80637d1db4a5146106e6578063807c2d9c146107105780638a8c523c1461073a5780638b42507f146107505780638da5cb5b1461078c57806395d89b41146107b6576102b8565b80634974d88f116102185780636ddd1713116101d15780636ddd17131461060457806370a082311461062e578063715018a61461066a578063728d41c91461068057806372ac2486146106a8578063751039fc146106d0576102b8565b80634974d88f146104fc5780634f7041a5146105245780635342acb41461054e5780635c85974f1461058a5780635e42358c146105b2578063651a8987146105dc576102b8565b806318160ddd1161026a57806318160ddd146103ca57806323b872dd146103f457806327c8f83514610430578063313ce5671461045a57806339509351146104845780633ecad271146104c0576102b8565b80630445b667146102bc57806306fdde03146102e65780630758d924146103105780630930907b1461033a578063095ea7b3146103645780631693e8d4146103a0576102b8565b366102b857005b5f80fd5b3480156102c7575f80fd5b506102d0610b22565b6040516102dd91906133ce565b60405180910390f35b3480156102f1575f80fd5b506102fa610b28565b6040516103079190613471565b60405180910390f35b34801561031b575f80fd5b50610324610bb8565b604051610331919061350b565b60405180910390f35b348015610345575f80fd5b5061034e610bdd565b60405161035b9190613544565b60405180910390f35b34801561036f575f80fd5b5061038a600480360381019061038591906135b5565b610c01565b604051610397919061360d565b60405180910390f35b3480156103ab575f80fd5b506103b4610c1e565b6040516103c1919061360d565b60405180910390f35b3480156103d5575f80fd5b506103de610c31565b6040516103eb91906133ce565b60405180910390f35b3480156103ff575f80fd5b5061041a60048036038101906104159190613626565b610c3a565b604051610427919061360d565b60405180910390f35b34801561043b575f80fd5b50610444610d2c565b6040516104519190613544565b60405180910390f35b348015610465575f80fd5b5061046e610d50565b60405161047b9190613691565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a591906135b5565b610d65565b6040516104b7919061360d565b60405180910390f35b3480156104cb575f80fd5b506104e660048036038101906104e191906136aa565b610e13565b6040516104f3919061360d565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906136ff565b610e30565b005b34801561052f575f80fd5b50610538610ec9565b60405161054591906133ce565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f91906136aa565b610ecf565b604051610581919061360d565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab919061372a565b610eec565b005b3480156105bd575f80fd5b506105c6610f72565b6040516105d3919061360d565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd9190613755565b610f85565b005b34801561060f575f80fd5b50610618611059565b604051610625919061360d565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906136aa565b61106b565b60405161066191906133ce565b60405180910390f35b348015610675575f80fd5b5061067e6110b1565b005b34801561068b575f80fd5b506106a660048036038101906106a1919061372a565b611138565b005b3480156106b3575f80fd5b506106ce60048036038101906106c991906136aa565b6111be565b005b3480156106db575f80fd5b506106e461127d565b005b3480156106f1575f80fd5b506106fa611342565b60405161070791906133ce565b60405180910390f35b34801561071b575f80fd5b50610724611348565b60405161073191906133ce565b60405180910390f35b348015610745575f80fd5b5061074e61134e565b005b34801561075b575f80fd5b50610776600480360381019061077191906136aa565b61143e565b604051610783919061360d565b60405180910390f35b348015610797575f80fd5b506107a061145b565b6040516107ad9190613544565b60405180910390f35b3480156107c1575f80fd5b506107ca611482565b6040516107d79190613471565b60405180910390f35b3480156107eb575f80fd5b50610806600480360381019061080191906135b5565b611512565b604051610813919061360d565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906135b5565b6115da565b60405161084f919061360d565b60405180910390f35b348015610863575f80fd5b5061087e60048036038101906108799190613755565b6115f8565b005b34801561088b575f80fd5b506108a660048036038101906108a19190613793565b6116cc565b005b3480156108b3575f80fd5b506108bc61179a565b6040516108c991906133ce565b60405180910390f35b3480156108dd575f80fd5b506108e66117a0565b6040516108f39190613544565b60405180910390f35b348015610907575f80fd5b50610922600480360381019061091d9190613755565b6117c5565b005b34801561092f575f80fd5b5061094a600480360381019061094591906136aa565b6118f4565b604051610957919061360d565b60405180910390f35b34801561096b575f80fd5b50610974611911565b60405161098191906133ce565b60405180910390f35b348015610995575f80fd5b506109b060048036038101906109ab9190613626565b611917565b005b3480156109bd575f80fd5b506109d860048036038101906109d391906137e3565b611ae3565b6040516109e591906133ce565b60405180910390f35b3480156109f9575f80fd5b50610a146004803603810190610a0f9190613755565b611b65565b005b348015610a21575f80fd5b50610a2a611c39565b005b348015610a37575f80fd5b50610a40611d73565b604051610a4d919061360d565b60405180910390f35b348015610a61575f80fd5b50610a7c6004803603810190610a7791906136ff565b611d86565b005b348015610a89575f80fd5b50610a92611e1f565b604051610a9f9190613544565b60405180910390f35b348015610ab3575f80fd5b50610ace6004803603810190610ac991906136aa565b611e44565b005b348015610adb575f80fd5b50610ae4611f3a565b604051610af1919061360d565b60405180910390f35b348015610b05575f80fd5b50610b206004803603810190610b1b9190613821565b611f4d565b005b60175481565b6060600a8054610b379061388c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b639061388c565b8015610bae5780601f10610b8557610100808354040283529160200191610bae565b820191905f5260205f20905b815481529060010190602001808311610b9157829003601f168201915b5050505050905090565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c14610c0d611fdb565b8484611fe2565b6001905092915050565b601c60149054906101000a900460ff1681565b5f600d54905090565b5f610c468484846121a5565b50610d2184610c53611fdb565b610d1c856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060125f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cd3611fdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b611fe2565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600c5f9054906101000a900460ff16905090565b5f610e09610d71611fdb565b84610e048560125f610d81611fdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b611fe2565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b610e38611fdb565b73ffffffffffffffffffffffffffffffffffffffff16610e5661145b565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613906565b60405180910390fd5b80601860036101000a81548160ff02191690831515021790555050565b60195481565b6013602052805f5260405f205f915054906101000a900460ff1681565b610ef4611fdb565b73ffffffffffffffffffffffffffffffffffffffff16610f1261145b565b73ffffffffffffffffffffffffffffffffffffffff1614610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f90613906565b60405180910390fd5b80600e8190555050565b601860029054906101000a900460ff1681565b610f8d611fdb565b73ffffffffffffffffffffffffffffffffffffffff16610fab61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890613906565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60185f9054906101000a900460ff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110b9611fdb565b73ffffffffffffffffffffffffffffffffffffffff166110d761145b565b73ffffffffffffffffffffffffffffffffffffffff161461112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613906565b60405180910390fd5b6111365f6128f9565b565b611140611fdb565b73ffffffffffffffffffffffffffffffffffffffff1661115e61145b565b73ffffffffffffffffffffffffffffffffffffffff16146111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90613906565b60405180910390fd5b80600f8190555050565b6111c6611fdb565b73ffffffffffffffffffffffffffffffffffffffff166111e461145b565b73ffffffffffffffffffffffffffffffffffffffff161461123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190613906565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113039061396e565b60405180910390fd5b5f601860026101000a81548160ff0219169083151502179055505f601860036101000a81548160ff021916908315150217905550565b600e5481565b600f5481565b611356611fdb565b73ffffffffffffffffffffffffffffffffffffffff1661137461145b565b73ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190613906565b60405180910390fd5b601c60149054906101000a900460ff161561141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906139d6565b60405180910390fd5b6001601c60146101000a81548160ff02191690831515021790555042601d81905550565b6016602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600b80546114919061388c565b80601f01602080910402602001604051908101604052809291908181526020018280546114bd9061388c565b80156115085780601f106114df57610100808354040283529160200191611508565b820191905f5260205f20905b8154815290600101906020018083116114eb57829003601f168201915b5050505050905090565b5f6115d061151e611fdb565b846115cb856040518060600160405280602581526020016142956025913960125f611547611fdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b611fe2565b6001905092915050565b5f6115ed6115e6611fdb565b84846121a5565b506001905092915050565b611600611fdb565b73ffffffffffffffffffffffffffffffffffffffff1661161e61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90613906565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117529061396e565b60405180910390fd5b8160185f6101000a81548160ff02191690831515021790555080601860016101000a81548160ff02191690831515021790555082601781905550505050565b601d5481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117cd611fdb565b73ffffffffffffffffffffffffffffffffffffffff166117eb61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183890613906565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156118f0578060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b6015602052805f5260405f205f915054906101000a900460ff1681565b601a5481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d9061396e565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119d19291906139f4565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a5b9190613a5f565b5f604051808303815f865af19150503d805f8114611a94576040519150601f19603f3d011682016040523d82523d5f602084013e611a99565b606091505b5050905080611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad490613abf565b60405180910390fd5b50505050565b5f60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b6d611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611b8b61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613906565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf9061396e565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611ced90613b00565b5f6040518083038185875af1925050503d805f8114611d27576040519150601f19603f3d011682016040523d82523d5f602084013e611d2c565b606091505b5050905080611d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6790613b5e565b60405180910390fd5b50565b601860019054906101000a900460ff1681565b611d8e611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611dac61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990613906565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e4c611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611e6a61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb790613906565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590613bec565b60405180910390fd5b611f37816128f9565b50565b601860039054906101000a900460ff1681565b611f55611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611f7361145b565b73ffffffffffffffffffffffffffffffffffffffff1614611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc090613906565b60405180910390fd5b8160198190555080601a819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204790613c7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b590613d08565b60405180910390fd5b8060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161219891906133ce565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121dd575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612214575f80fd5b5f821161221f575f80fd5b601e5f9054906101000a900460ff16156122455761223e8484846129ba565b9050612833565b601c60149054906101000a900460ff166123345760135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122f4575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a90613d70565b60405180910390fd5b5b5f61233e3061106b565b90505f60175482101590508080156123625750601e5f9054906101000a900460ff16155b80156123b5575060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123cc575060185f9054906101000a900460ff165b801561241f575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612472575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156124815761248082612b84565b5b60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561251f575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125375750601860029054906101000a900460ff165b1561258257600e54841115612581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257890613dd8565b60405180910390fd5b5b612609846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060115f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6126558787612c68565b61266957612664878787612dc4565b61266b565b845b9050601860039054906101000a900460ff1680156126d0575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561273557600f546126f3826126e58961106b565b61289c90919063ffffffff16565b1115612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b90613e40565b60405180910390fd5b5b6127858160115f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161282391906133ce565b60405180910390a3600193505050505b9392505050565b5f838311158290612881576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128789190613471565b60405180910390fd5b505f838561288f9190613e8b565b9050809150509392505050565b5f8082846128aa9190613ebe565b9050838110156128ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e690613f3b565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612a42826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612ad38260115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b60115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b7191906133ce565b60405180910390a3600190509392505050565b6001601e5f6101000a81548160ff021916908315150217905550601860019054906101000a900460ff1615612bb95760175490505b5f479050612bc682612fdd565b5f612bda824761324c90919063ffffffff16565b90505f811115612c4a5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c48573d5f803e3d5ffd5b505b50505f601e5f6101000a81548160ff02191690831515021790555050565b5f60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d04575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d125760019050612dbe565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612dad575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612dba575f9050612dbe565b5f90505b92915050565b5f8060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e4557612e3e601054612e306019548661329590919063ffffffff16565b61330c90919063ffffffff16565b9050612ec1565b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612ec057612ebd601054612eaf601a548661329590919063ffffffff16565b61330c90919063ffffffff16565b90505b5b5f811115612fc057612f198160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b60115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fb791906133ce565b60405180910390a35b612fd3818461324c90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ff957612ff8613f59565b5b6040519080825280602002602001820160405280156130275781602001602082028036833780820191505090505b50905030815f8151811061303e5761303d613f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131069190613fc7565b8160018151811061311a57613119613f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061318030601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fe2565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131e29594939291906140e2565b5f604051808303815f87803b1580156131f9575f80fd5b505af115801561320b573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161324092919061413a565b60405180910390a15050565b5f61328d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061283a565b905092915050565b5f8083036132a5575f9050613306565b5f82846132b29190614168565b90508284826132c191906141d6565b14613301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f890614276565b60405180910390fd5b809150505b92915050565b5f61334d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613355565b905092915050565b5f808311829061339b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133929190613471565b60405180910390fd5b505f83856133a991906141d6565b9050809150509392505050565b5f819050919050565b6133c8816133b6565b82525050565b5f6020820190506133e15f8301846133bf565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561341e578082015181840152602081019050613403565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613443826133e7565b61344d81856133f1565b935061345d818560208601613401565b61346681613429565b840191505092915050565b5f6020820190508181035f8301526134898184613439565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6134d36134ce6134c984613491565b6134b0565b613491565b9050919050565b5f6134e4826134b9565b9050919050565b5f6134f5826134da565b9050919050565b613505816134eb565b82525050565b5f60208201905061351e5f8301846134fc565b92915050565b5f61352e82613491565b9050919050565b61353e81613524565b82525050565b5f6020820190506135575f830184613535565b92915050565b5f80fd5b61356a81613524565b8114613574575f80fd5b50565b5f8135905061358581613561565b92915050565b613594816133b6565b811461359e575f80fd5b50565b5f813590506135af8161358b565b92915050565b5f80604083850312156135cb576135ca61355d565b5b5f6135d885828601613577565b92505060206135e9858286016135a1565b9150509250929050565b5f8115159050919050565b613607816135f3565b82525050565b5f6020820190506136205f8301846135fe565b92915050565b5f805f6060848603121561363d5761363c61355d565b5b5f61364a86828701613577565b935050602061365b86828701613577565b925050604061366c868287016135a1565b9150509250925092565b5f60ff82169050919050565b61368b81613676565b82525050565b5f6020820190506136a45f830184613682565b92915050565b5f602082840312156136bf576136be61355d565b5b5f6136cc84828501613577565b91505092915050565b6136de816135f3565b81146136e8575f80fd5b50565b5f813590506136f9816136d5565b92915050565b5f602082840312156137145761371361355d565b5b5f613721848285016136eb565b91505092915050565b5f6020828403121561373f5761373e61355d565b5b5f61374c848285016135a1565b91505092915050565b5f806040838503121561376b5761376a61355d565b5b5f61377885828601613577565b9250506020613789858286016136eb565b9150509250929050565b5f805f606084860312156137aa576137a961355d565b5b5f6137b7868287016135a1565b93505060206137c8868287016136eb565b92505060406137d9868287016136eb565b9150509250925092565b5f80604083850312156137f9576137f861355d565b5b5f61380685828601613577565b925050602061381785828601613577565b9150509250929050565b5f80604083850312156138375761383661355d565b5b5f613844858286016135a1565b9250506020613855858286016135a1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806138a357607f821691505b6020821081036138b6576138b561385f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138f06020836133f1565b91506138fb826138bc565b602082019050919050565b5f6020820190508181035f83015261391d816138e4565b9050919050565b7f496e76616c69642043616c6c65720000000000000000000000000000000000005f82015250565b5f613958600e836133f1565b915061396382613924565b602082019050919050565b5f6020820190508181035f8301526139858161394c565b9050919050565b7f547261646520456e61626c6564210000000000000000000000000000000000005f82015250565b5f6139c0600e836133f1565b91506139cb8261398c565b602082019050919050565b5f6020820190508181035f8301526139ed816139b4565b9050919050565b5f604082019050613a075f830185613535565b613a1460208301846133bf565b9392505050565b5f81519050919050565b5f81905092915050565b5f613a3982613a1b565b613a438185613a25565b9350613a53818560208601613401565b80840191505092915050565b5f613a6a8284613a2f565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613aa96014836133f1565b9150613ab482613a75565b602082019050919050565b5f6020820190508181035f830152613ad681613a9d565b9050919050565b50565b5f613aeb5f83613a25565b9150613af682613add565b5f82019050919050565b5f613b0a82613ae0565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613b486014836133f1565b9150613b5382613b14565b602082019050919050565b5f6020820190508181035f830152613b7581613b3c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bd66026836133f1565b9150613be182613b7c565b604082019050919050565b5f6020820190508181035f830152613c0381613bca565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613c646024836133f1565b9150613c6f82613c0a565b604082019050919050565b5f6020820190508181035f830152613c9181613c58565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cf26022836133f1565b9150613cfd82613c98565b604082019050919050565b5f6020820190508181035f830152613d1f81613ce6565b9050919050565b7f54726164696e67205061757365640000000000000000000000000000000000005f82015250565b5f613d5a600e836133f1565b9150613d6582613d26565b602082019050919050565b5f6020820190508181035f830152613d8781613d4e565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613dc26013836133f1565b9150613dcd82613d8e565b602082019050919050565b5f6020820190508181035f830152613def81613db6565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613e2a600e836133f1565b9150613e3582613df6565b602082019050919050565b5f6020820190508181035f830152613e5781613e1e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e95826133b6565b9150613ea0836133b6565b9250828203905081811115613eb857613eb7613e5e565b5b92915050565b5f613ec8826133b6565b9150613ed3836133b6565b9250828201905080821115613eeb57613eea613e5e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f25601b836133f1565b9150613f3082613ef1565b602082019050919050565b5f6020820190508181035f830152613f5281613f19565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613fc181613561565b92915050565b5f60208284031215613fdc57613fdb61355d565b5b5f613fe984828501613fb3565b91505092915050565b5f819050919050565b5f61401561401061400b84613ff2565b6134b0565b6133b6565b9050919050565b61402581613ffb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61405d81613524565b82525050565b5f61406e8383614054565b60208301905092915050565b5f602082019050919050565b5f6140908261402b565b61409a8185614035565b93506140a583614045565b805f5b838110156140d55781516140bc8882614063565b97506140c78361407a565b9250506001810190506140a8565b5085935050505092915050565b5f60a0820190506140f55f8301886133bf565b614102602083018761401c565b81810360408301526141148186614086565b90506141236060830185613535565b61413060808301846133bf565b9695505050505050565b5f60408201905061414d5f8301856133bf565b818103602083015261415f8184614086565b90509392505050565b5f614172826133b6565b915061417d836133b6565b925082820261418b816133b6565b915082820484148315176141a2576141a1613e5e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141e0826133b6565b91506141eb836133b6565b9250826141fb576141fa6141a9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142606021836133f1565b915061426b82614206565b604082019050919050565b5f6020820190508181035f83015261428d81614254565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d41662b4f5a97818f30d0868106745fcd0460082f2a72e6a4cb1b44c4ce31a2064736f6c63430008140033

Deployed Bytecode

0x6080604052600436106102b1575f3560e01c80637d1db4a511610174578063c16dd4a4116100db578063e6b2603b11610094578063f242ab411161006e578063f242ab4114610a7e578063f2fde38b14610aa8578063f872858a14610ad0578063fb0ecfa414610afa576102b8565b8063e6b2603b14610a16578063e9fd339414610a2c578063ee828db314610a56576102b8565b8063c16dd4a4146108fc578063c867d60b14610924578063cc1776d314610960578063cea9d26f1461098a578063dd62ed3e146109b2578063df8408fe146109ee576102b8565b8063a457c2d71161012d578063a457c2d7146107e0578063a9059cbb1461081c578063ae85ade614610858578063b94b0aef14610880578063bf56b371146108a8578063c04a5414146108d2576102b8565b80637d1db4a5146106e6578063807c2d9c146107105780638a8c523c1461073a5780638b42507f146107505780638da5cb5b1461078c57806395d89b41146107b6576102b8565b80634974d88f116102185780636ddd1713116101d15780636ddd17131461060457806370a082311461062e578063715018a61461066a578063728d41c91461068057806372ac2486146106a8578063751039fc146106d0576102b8565b80634974d88f146104fc5780634f7041a5146105245780635342acb41461054e5780635c85974f1461058a5780635e42358c146105b2578063651a8987146105dc576102b8565b806318160ddd1161026a57806318160ddd146103ca57806323b872dd146103f457806327c8f83514610430578063313ce5671461045a57806339509351146104845780633ecad271146104c0576102b8565b80630445b667146102bc57806306fdde03146102e65780630758d924146103105780630930907b1461033a578063095ea7b3146103645780631693e8d4146103a0576102b8565b366102b857005b5f80fd5b3480156102c7575f80fd5b506102d0610b22565b6040516102dd91906133ce565b60405180910390f35b3480156102f1575f80fd5b506102fa610b28565b6040516103079190613471565b60405180910390f35b34801561031b575f80fd5b50610324610bb8565b604051610331919061350b565b60405180910390f35b348015610345575f80fd5b5061034e610bdd565b60405161035b9190613544565b60405180910390f35b34801561036f575f80fd5b5061038a600480360381019061038591906135b5565b610c01565b604051610397919061360d565b60405180910390f35b3480156103ab575f80fd5b506103b4610c1e565b6040516103c1919061360d565b60405180910390f35b3480156103d5575f80fd5b506103de610c31565b6040516103eb91906133ce565b60405180910390f35b3480156103ff575f80fd5b5061041a60048036038101906104159190613626565b610c3a565b604051610427919061360d565b60405180910390f35b34801561043b575f80fd5b50610444610d2c565b6040516104519190613544565b60405180910390f35b348015610465575f80fd5b5061046e610d50565b60405161047b9190613691565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a591906135b5565b610d65565b6040516104b7919061360d565b60405180910390f35b3480156104cb575f80fd5b506104e660048036038101906104e191906136aa565b610e13565b6040516104f3919061360d565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906136ff565b610e30565b005b34801561052f575f80fd5b50610538610ec9565b60405161054591906133ce565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f91906136aa565b610ecf565b604051610581919061360d565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab919061372a565b610eec565b005b3480156105bd575f80fd5b506105c6610f72565b6040516105d3919061360d565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd9190613755565b610f85565b005b34801561060f575f80fd5b50610618611059565b604051610625919061360d565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906136aa565b61106b565b60405161066191906133ce565b60405180910390f35b348015610675575f80fd5b5061067e6110b1565b005b34801561068b575f80fd5b506106a660048036038101906106a1919061372a565b611138565b005b3480156106b3575f80fd5b506106ce60048036038101906106c991906136aa565b6111be565b005b3480156106db575f80fd5b506106e461127d565b005b3480156106f1575f80fd5b506106fa611342565b60405161070791906133ce565b60405180910390f35b34801561071b575f80fd5b50610724611348565b60405161073191906133ce565b60405180910390f35b348015610745575f80fd5b5061074e61134e565b005b34801561075b575f80fd5b50610776600480360381019061077191906136aa565b61143e565b604051610783919061360d565b60405180910390f35b348015610797575f80fd5b506107a061145b565b6040516107ad9190613544565b60405180910390f35b3480156107c1575f80fd5b506107ca611482565b6040516107d79190613471565b60405180910390f35b3480156107eb575f80fd5b50610806600480360381019061080191906135b5565b611512565b604051610813919061360d565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906135b5565b6115da565b60405161084f919061360d565b60405180910390f35b348015610863575f80fd5b5061087e60048036038101906108799190613755565b6115f8565b005b34801561088b575f80fd5b506108a660048036038101906108a19190613793565b6116cc565b005b3480156108b3575f80fd5b506108bc61179a565b6040516108c991906133ce565b60405180910390f35b3480156108dd575f80fd5b506108e66117a0565b6040516108f39190613544565b60405180910390f35b348015610907575f80fd5b50610922600480360381019061091d9190613755565b6117c5565b005b34801561092f575f80fd5b5061094a600480360381019061094591906136aa565b6118f4565b604051610957919061360d565b60405180910390f35b34801561096b575f80fd5b50610974611911565b60405161098191906133ce565b60405180910390f35b348015610995575f80fd5b506109b060048036038101906109ab9190613626565b611917565b005b3480156109bd575f80fd5b506109d860048036038101906109d391906137e3565b611ae3565b6040516109e591906133ce565b60405180910390f35b3480156109f9575f80fd5b50610a146004803603810190610a0f9190613755565b611b65565b005b348015610a21575f80fd5b50610a2a611c39565b005b348015610a37575f80fd5b50610a40611d73565b604051610a4d919061360d565b60405180910390f35b348015610a61575f80fd5b50610a7c6004803603810190610a7791906136ff565b611d86565b005b348015610a89575f80fd5b50610a92611e1f565b604051610a9f9190613544565b60405180910390f35b348015610ab3575f80fd5b50610ace6004803603810190610ac991906136aa565b611e44565b005b348015610adb575f80fd5b50610ae4611f3a565b604051610af1919061360d565b60405180910390f35b348015610b05575f80fd5b50610b206004803603810190610b1b9190613821565b611f4d565b005b60175481565b6060600a8054610b379061388c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b639061388c565b8015610bae5780601f10610b8557610100808354040283529160200191610bae565b820191905f5260205f20905b815481529060010190602001808311610b9157829003601f168201915b5050505050905090565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c14610c0d611fdb565b8484611fe2565b6001905092915050565b601c60149054906101000a900460ff1681565b5f600d54905090565b5f610c468484846121a5565b50610d2184610c53611fdb565b610d1c856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060125f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cd3611fdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b611fe2565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f600c5f9054906101000a900460ff16905090565b5f610e09610d71611fdb565b84610e048560125f610d81611fdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b611fe2565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b610e38611fdb565b73ffffffffffffffffffffffffffffffffffffffff16610e5661145b565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613906565b60405180910390fd5b80601860036101000a81548160ff02191690831515021790555050565b60195481565b6013602052805f5260405f205f915054906101000a900460ff1681565b610ef4611fdb565b73ffffffffffffffffffffffffffffffffffffffff16610f1261145b565b73ffffffffffffffffffffffffffffffffffffffff1614610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f90613906565b60405180910390fd5b80600e8190555050565b601860029054906101000a900460ff1681565b610f8d611fdb565b73ffffffffffffffffffffffffffffffffffffffff16610fab61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890613906565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60185f9054906101000a900460ff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110b9611fdb565b73ffffffffffffffffffffffffffffffffffffffff166110d761145b565b73ffffffffffffffffffffffffffffffffffffffff161461112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613906565b60405180910390fd5b6111365f6128f9565b565b611140611fdb565b73ffffffffffffffffffffffffffffffffffffffff1661115e61145b565b73ffffffffffffffffffffffffffffffffffffffff16146111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90613906565b60405180910390fd5b80600f8190555050565b6111c6611fdb565b73ffffffffffffffffffffffffffffffffffffffff166111e461145b565b73ffffffffffffffffffffffffffffffffffffffff161461123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190613906565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113039061396e565b60405180910390fd5b5f601860026101000a81548160ff0219169083151502179055505f601860036101000a81548160ff021916908315150217905550565b600e5481565b600f5481565b611356611fdb565b73ffffffffffffffffffffffffffffffffffffffff1661137461145b565b73ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190613906565b60405180910390fd5b601c60149054906101000a900460ff161561141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906139d6565b60405180910390fd5b6001601c60146101000a81548160ff02191690831515021790555042601d81905550565b6016602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600b80546114919061388c565b80601f01602080910402602001604051908101604052809291908181526020018280546114bd9061388c565b80156115085780601f106114df57610100808354040283529160200191611508565b820191905f5260205f20905b8154815290600101906020018083116114eb57829003601f168201915b5050505050905090565b5f6115d061151e611fdb565b846115cb856040518060600160405280602581526020016142956025913960125f611547611fdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b611fe2565b6001905092915050565b5f6115ed6115e6611fdb565b84846121a5565b506001905092915050565b611600611fdb565b73ffffffffffffffffffffffffffffffffffffffff1661161e61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90613906565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117529061396e565b60405180910390fd5b8160185f6101000a81548160ff02191690831515021790555080601860016101000a81548160ff02191690831515021790555082601781905550505050565b601d5481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117cd611fdb565b73ffffffffffffffffffffffffffffffffffffffff166117eb61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183890613906565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156118f0578060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b6015602052805f5260405f205f915054906101000a900460ff1681565b601a5481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d9061396e565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119d19291906139f4565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a5b9190613a5f565b5f604051808303815f865af19150503d805f8114611a94576040519150601f19603f3d011682016040523d82523d5f602084013e611a99565b606091505b5050905080611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad490613abf565b60405180910390fd5b50505050565b5f60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b6d611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611b8b61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613906565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf9061396e565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611ced90613b00565b5f6040518083038185875af1925050503d805f8114611d27576040519150601f19603f3d011682016040523d82523d5f602084013e611d2c565b606091505b5050905080611d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6790613b5e565b60405180910390fd5b50565b601860019054906101000a900460ff1681565b611d8e611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611dac61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990613906565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e4c611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611e6a61145b565b73ffffffffffffffffffffffffffffffffffffffff1614611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb790613906565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590613bec565b60405180910390fd5b611f37816128f9565b50565b601860039054906101000a900460ff1681565b611f55611fdb565b73ffffffffffffffffffffffffffffffffffffffff16611f7361145b565b73ffffffffffffffffffffffffffffffffffffffff1614611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc090613906565b60405180910390fd5b8160198190555080601a819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204790613c7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b590613d08565b60405180910390fd5b8060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161219891906133ce565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121dd575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612214575f80fd5b5f821161221f575f80fd5b601e5f9054906101000a900460ff16156122455761223e8484846129ba565b9050612833565b601c60149054906101000a900460ff166123345760135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122f4575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a90613d70565b60405180910390fd5b5b5f61233e3061106b565b90505f60175482101590508080156123625750601e5f9054906101000a900460ff16155b80156123b5575060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123cc575060185f9054906101000a900460ff165b801561241f575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612472575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156124815761248082612b84565b5b60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561251f575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125375750601860029054906101000a900460ff165b1561258257600e54841115612581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257890613dd8565b60405180910390fd5b5b612609846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060115f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6126558787612c68565b61266957612664878787612dc4565b61266b565b845b9050601860039054906101000a900460ff1680156126d0575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561273557600f546126f3826126e58961106b565b61289c90919063ffffffff16565b1115612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b90613e40565b60405180910390fd5b5b6127858160115f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161282391906133ce565b60405180910390a3600193505050505b9392505050565b5f838311158290612881576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128789190613471565b60405180910390fd5b505f838561288f9190613e8b565b9050809150509392505050565b5f8082846128aa9190613ebe565b9050838110156128ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e690613f3b565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612a42826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283a9092919063ffffffff16565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612ad38260115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b60115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b7191906133ce565b60405180910390a3600190509392505050565b6001601e5f6101000a81548160ff021916908315150217905550601860019054906101000a900460ff1615612bb95760175490505b5f479050612bc682612fdd565b5f612bda824761324c90919063ffffffff16565b90505f811115612c4a5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c48573d5f803e3d5ffd5b505b50505f601e5f6101000a81548160ff02191690831515021790555050565b5f60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d04575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d125760019050612dbe565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612dad575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612dba575f9050612dbe565b5f90505b92915050565b5f8060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e4557612e3e601054612e306019548661329590919063ffffffff16565b61330c90919063ffffffff16565b9050612ec1565b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612ec057612ebd601054612eaf601a548661329590919063ffffffff16565b61330c90919063ffffffff16565b90505b5b5f811115612fc057612f198160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289c90919063ffffffff16565b60115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fb791906133ce565b60405180910390a35b612fd3818461324c90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ff957612ff8613f59565b5b6040519080825280602002602001820160405280156130275781602001602082028036833780820191505090505b50905030815f8151811061303e5761303d613f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131069190613fc7565b8160018151811061311a57613119613f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061318030601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fe2565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131e29594939291906140e2565b5f604051808303815f87803b1580156131f9575f80fd5b505af115801561320b573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161324092919061413a565b60405180910390a15050565b5f61328d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061283a565b905092915050565b5f8083036132a5575f9050613306565b5f82846132b29190614168565b90508284826132c191906141d6565b14613301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f890614276565b60405180910390fd5b809150505b92915050565b5f61334d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613355565b905092915050565b5f808311829061339b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133929190613471565b60405180910390fd5b505f83856133a991906141d6565b9050809150509392505050565b5f819050919050565b6133c8816133b6565b82525050565b5f6020820190506133e15f8301846133bf565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561341e578082015181840152602081019050613403565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613443826133e7565b61344d81856133f1565b935061345d818560208601613401565b61346681613429565b840191505092915050565b5f6020820190508181035f8301526134898184613439565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6134d36134ce6134c984613491565b6134b0565b613491565b9050919050565b5f6134e4826134b9565b9050919050565b5f6134f5826134da565b9050919050565b613505816134eb565b82525050565b5f60208201905061351e5f8301846134fc565b92915050565b5f61352e82613491565b9050919050565b61353e81613524565b82525050565b5f6020820190506135575f830184613535565b92915050565b5f80fd5b61356a81613524565b8114613574575f80fd5b50565b5f8135905061358581613561565b92915050565b613594816133b6565b811461359e575f80fd5b50565b5f813590506135af8161358b565b92915050565b5f80604083850312156135cb576135ca61355d565b5b5f6135d885828601613577565b92505060206135e9858286016135a1565b9150509250929050565b5f8115159050919050565b613607816135f3565b82525050565b5f6020820190506136205f8301846135fe565b92915050565b5f805f6060848603121561363d5761363c61355d565b5b5f61364a86828701613577565b935050602061365b86828701613577565b925050604061366c868287016135a1565b9150509250925092565b5f60ff82169050919050565b61368b81613676565b82525050565b5f6020820190506136a45f830184613682565b92915050565b5f602082840312156136bf576136be61355d565b5b5f6136cc84828501613577565b91505092915050565b6136de816135f3565b81146136e8575f80fd5b50565b5f813590506136f9816136d5565b92915050565b5f602082840312156137145761371361355d565b5b5f613721848285016136eb565b91505092915050565b5f6020828403121561373f5761373e61355d565b5b5f61374c848285016135a1565b91505092915050565b5f806040838503121561376b5761376a61355d565b5b5f61377885828601613577565b9250506020613789858286016136eb565b9150509250929050565b5f805f606084860312156137aa576137a961355d565b5b5f6137b7868287016135a1565b93505060206137c8868287016136eb565b92505060406137d9868287016136eb565b9150509250925092565b5f80604083850312156137f9576137f861355d565b5b5f61380685828601613577565b925050602061381785828601613577565b9150509250929050565b5f80604083850312156138375761383661355d565b5b5f613844858286016135a1565b9250506020613855858286016135a1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806138a357607f821691505b6020821081036138b6576138b561385f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138f06020836133f1565b91506138fb826138bc565b602082019050919050565b5f6020820190508181035f83015261391d816138e4565b9050919050565b7f496e76616c69642043616c6c65720000000000000000000000000000000000005f82015250565b5f613958600e836133f1565b915061396382613924565b602082019050919050565b5f6020820190508181035f8301526139858161394c565b9050919050565b7f547261646520456e61626c6564210000000000000000000000000000000000005f82015250565b5f6139c0600e836133f1565b91506139cb8261398c565b602082019050919050565b5f6020820190508181035f8301526139ed816139b4565b9050919050565b5f604082019050613a075f830185613535565b613a1460208301846133bf565b9392505050565b5f81519050919050565b5f81905092915050565b5f613a3982613a1b565b613a438185613a25565b9350613a53818560208601613401565b80840191505092915050565b5f613a6a8284613a2f565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613aa96014836133f1565b9150613ab482613a75565b602082019050919050565b5f6020820190508181035f830152613ad681613a9d565b9050919050565b50565b5f613aeb5f83613a25565b9150613af682613add565b5f82019050919050565b5f613b0a82613ae0565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613b486014836133f1565b9150613b5382613b14565b602082019050919050565b5f6020820190508181035f830152613b7581613b3c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bd66026836133f1565b9150613be182613b7c565b604082019050919050565b5f6020820190508181035f830152613c0381613bca565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613c646024836133f1565b9150613c6f82613c0a565b604082019050919050565b5f6020820190508181035f830152613c9181613c58565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cf26022836133f1565b9150613cfd82613c98565b604082019050919050565b5f6020820190508181035f830152613d1f81613ce6565b9050919050565b7f54726164696e67205061757365640000000000000000000000000000000000005f82015250565b5f613d5a600e836133f1565b9150613d6582613d26565b602082019050919050565b5f6020820190508181035f830152613d8781613d4e565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613dc26013836133f1565b9150613dcd82613d8e565b602082019050919050565b5f6020820190508181035f830152613def81613db6565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613e2a600e836133f1565b9150613e3582613df6565b602082019050919050565b5f6020820190508181035f830152613e5781613e1e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e95826133b6565b9150613ea0836133b6565b9250828203905081811115613eb857613eb7613e5e565b5b92915050565b5f613ec8826133b6565b9150613ed3836133b6565b9250828201905080821115613eeb57613eea613e5e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f25601b836133f1565b9150613f3082613ef1565b602082019050919050565b5f6020820190508181035f830152613f5281613f19565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613fc181613561565b92915050565b5f60208284031215613fdc57613fdb61355d565b5b5f613fe984828501613fb3565b91505092915050565b5f819050919050565b5f61401561401061400b84613ff2565b6134b0565b6133b6565b9050919050565b61402581613ffb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61405d81613524565b82525050565b5f61406e8383614054565b60208301905092915050565b5f602082019050919050565b5f6140908261402b565b61409a8185614035565b93506140a583614045565b805f5b838110156140d55781516140bc8882614063565b97506140c78361407a565b9250506001810190506140a8565b5085935050505092915050565b5f60a0820190506140f55f8301886133bf565b614102602083018761401c565b81810360408301526141148186614086565b90506141236060830185613535565b61413060808301846133bf565b9695505050505050565b5f60408201905061414d5f8301856133bf565b818103602083015261415f8184614086565b90509392505050565b5f614172826133b6565b915061417d836133b6565b925082820261418b816133b6565b915082820484148315176141a2576141a1613e5e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141e0826133b6565b91506141eb836133b6565b9250826141fb576141fa6141a9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142606021836133f1565b915061426b82614206565b604082019050919050565b5f6020820190508181035f83015261428d81614254565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d41662b4f5a97818f30d0868106745fcd0460082f2a72e6a4cb1b44c4ce31a2064736f6c63430008140033

Deployed Bytecode Sourcemap

7320:12343:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8483:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10816:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8796:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9040:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11986:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8865:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11093:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12760:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8952:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11002:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11483:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8315:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18173:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8708:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8258:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18794:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8625:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18416:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8551:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11201:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1988:94;;;;;;;;;;;;;:::i;:::-;;18680:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18907:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17940:119;;;;;;;;;;;;;:::i;:::-;;7946:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8022:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19270:176;;;;;;;;;;;;;:::i;:::-;;8426:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1679:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10907;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11709:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12585:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18552:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19033:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8898:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7724:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19454:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8367:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8750:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17513:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11332:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18286:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17327:178;;;;;;;;;;;;;:::i;:::-;;8588:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18067:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8834:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2090:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8664:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17793:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8483:59;;;;:::o;10816:83::-;10853:13;10886:5;10879:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10816:83;:::o;8796:31::-;;;;;;;;;;;;;:::o;9040:81::-;;;:::o;11986:161::-;12061:4;12078:39;12087:12;:10;:12::i;:::-;12101:7;12110:6;12078:8;:39::i;:::-;12135:4;12128:11;;11986:161;;;;:::o;8865:25::-;;;;;;;;;;;;;:::o;11093:100::-;11146:7;11173:12;;11166:19;;11093:100;:::o;12760:297::-;12858:4;12875:36;12885:6;12893:9;12904:6;12875:9;:36::i;:::-;;12922:105;12931:6;12939:12;:10;:12::i;:::-;12953:73;12991:6;12953:73;;;;;;;;;;;;;;;;;:11;:19;12965:6;12953:19;;;;;;;;;;;;;;;:33;12973:12;:10;:12::i;:::-;12953:33;;;;;;;;;;;;;;;;:37;;:73;;;;;:::i;:::-;12922:8;:105::i;:::-;13045:4;13038:11;;12760:297;;;;;:::o;8952:81::-;;;:::o;11002:83::-;11043:5;11068:9;;;;;;;;;;;11061:16;;11002:83;:::o;11483:218::-;11571:4;11588:83;11597:12;:10;:12::i;:::-;11611:7;11620:50;11659:10;11620:11;:25;11632:12;:10;:12::i;:::-;11620:25;;;;;;;;;;;;;;;:34;11646:7;11620:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11588:8;:83::i;:::-;11689:4;11682:11;;11483:218;;;;:::o;8315:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;18173:105::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18263:7:::1;18244:16;;:26;;;;;;;;;;;;;;;;;;18173:105:::0;:::o;8708:35::-;;;;:::o;8258:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;18794:101::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18879:8:::1;18864:12;:23;;;;18794:101:::0;:::o;8625:32::-;;;;;;;;;;;;;:::o;18416:128::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18529:7:::1;18501:19;:25;18521:4;18501:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18416:128:::0;;:::o;8551:30::-;;;;;;;;;;;;;:::o;11201:123::-;11267:7;11293:9;:18;11303:7;11293:18;;;;;;;;;;;;;;;;11286:25;;11201:123;;;:::o;1988:94::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2053:21:::1;2071:1;2053:9;:21::i;:::-;1988:94::o:0;18680:106::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18770:8:::1;18757:10;:21;;;;18680:106:::0;:::o;18907:118::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19007:10:::1;18987:17;;:30;;;;;;;;;;;;;;;;;;18907:118:::0;:::o;17940:119::-;9184:17;;;;;;;;;;;9170:31;;:10;:31;;;9162:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18010:5:::1;17994:13;;:21;;;;;;;;;;;;;;;;;;18046:5;18026:16;;:25;;;;;;;;;;;;;;;;;;17940:119::o:0;7946:59::-;;;;:::o;8022:56::-;;;;:::o;19270:176::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19334:13:::1;;;;;;;;;;;19333:14;19325:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;19395:4;19379:13;;:20;;;;;;;;;;;;;;;;;;19423:15;19410:10;:28;;;;19270:176::o:0;8426:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1679:87::-;1725:7;1752:6;;;;;;;;;;;1745:13;;1679:87;:::o;10907:::-;10946:13;10979:7;10972:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10907:87;:::o;11709:269::-;11802:4;11819:129;11828:12;:10;:12::i;:::-;11842:7;11851:96;11890:15;11851:96;;;;;;;;;;;;;;;;;:11;:25;11863:12;:10;:12::i;:::-;11851:25;;;;;;;;;;;;;;;:34;11877:7;11851:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11819:8;:129::i;:::-;11966:4;11959:11;;11709:269;;;;:::o;12585:167::-;12663:4;12680:42;12690:12;:10;:12::i;:::-;12704:9;12715:6;12680:9;:42::i;:::-;;12740:4;12733:11;;12585:167;;;;:::o;18552:120::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18657:7:::1;18633:15;:21;18649:4;18633:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18552:120:::0;;:::o;19033:229::-;9184:17;;;;;;;;;;;9170:31;;:10;:31;;;9162:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;19176:8:::1;19162:11;;:22;;;;;;;;;;;;;;;;;;19209:8;19195:11;;:22;;;;;;;;;;;;;;;;;;19244:10;19228:13;:26;;;;19033:229:::0;;;:::o;8898:25::-;;;;:::o;7724:32::-;;;;;;;;;;;;;:::o;19454:204::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19558:7:::1;19536:12;:19;19549:5;19536:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19579:7;19576:75;;;19632:7;19603:19;:26;19623:5;19603:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19576:75;19454:204:::0;;:::o;8367:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;8750:37::-;;;;:::o;17513:272::-;9184:17;;;;;;;;;;;9170:31;;:10;:31;;;9162:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;17613:12:::1;17639:6;17631:20;;17706:9;17717:7;17652:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17631:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17612:114;;;17745:7;17737:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;17601:184;17513:272:::0;;;:::o;11332:143::-;11413:7;11440:11;:18;11452:5;11440:18;;;;;;;;;;;;;;;:27;11459:7;11440:27;;;;;;;;;;;;;;;;11433:34;;11332:143;;;;:::o;18286:122::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18393:7:::1;18367:17;:23;18385:4;18367:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18286:122:::0;;:::o;17327:178::-;9184:17;;;;;;;;;;;9170:31;;:10;:31;;;9162:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;17382:7:::1;17402:10;17394:24;;17426:21;17394:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:71;;;17471:2;17463:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;17369:136;17327:178::o:0;8588:30::-;;;;;;;;;;;;;:::o;18067:98::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18150:7:::1;18134:13;;:23;;;;;;;;;;;;;;;;;;18067:98:::0;:::o;8834:22::-;;;;;;;;;;;;;:::o;2090:229::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2213:1:::1;2193:22;;:8;:22;;::::0;2171:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2292:19;2302:8;2292:9;:19::i;:::-;2090:229:::0;:::o;8664:35::-;;;;;;;;;;;;;:::o;17793:139::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17886:8:::1;17877:6;:17;;;;17915:9;17905:7;:19;;;;17793:139:::0;;:::o;246:98::-;299:7;326:10;319:17;;246:98;:::o;12155:337::-;12265:1;12248:19;;:5;:19;;;12240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12346:1;12327:21;;:7;:21;;;12319:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12430:6;12400:11;:18;12412:5;12400:18;;;;;;;;;;;;;;;:27;12419:7;12400:27;;;;;;;;;;;;;;;:36;;;;12468:7;12452:32;;12461:5;12452:32;;;12477:6;12452:32;;;;;;:::i;:::-;;;;;;;;12155:337;;;:::o;13065:1761::-;13152:4;13197:1;13179:20;;:6;:20;;;13171:29;;;;;;13240:1;13219:23;;:9;:23;;;13211:32;;;;;;13271:1;13262:6;:10;13254:19;;;;;;13294:6;;;;;;;;;;;13290:1527;;;13324:41;13339:6;13347:9;13358:6;13324:14;:41::i;:::-;13317:48;;;;13290:1527;13413:13;;;;;;;;;;;13409:139;;13455:17;:25;13473:6;13455:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;13484:17;:28;13502:9;13484:28;;;;;;;;;;;;;;;;;;;;;;;;;13455:57;13447:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;13409:139;13564:28;13595:24;13613:4;13595:9;:24::i;:::-;13564:55;;13634:28;13689:13;;13665:20;:37;;13634:68;;13741:23;:52;;;;;13787:6;;;;;;;;;;;13786:7;13741:52;:95;;;;;13816:12;:20;13829:6;13816:20;;;;;;;;;;;;;;;;;;;;;;;;;13815:21;13741:95;:128;;;;;13858:11;;;;;;;;;;;13741:128;:175;;;;;13891:17;:25;13909:6;13891:25;;;;;;;;;;;;;;;;;;;;;;;;;13890:26;13741:175;:225;;;;;13938:17;:28;13956:9;13938:28;;;;;;;;;;;;;;;;;;;;;;;;;13937:29;13741:225;13719:332;;;14005:30;14014:20;14005:8;:30::i;:::-;13719:332;14071:15;:23;14087:6;14071:23;;;;;;;;;;;;;;;;;;;;;;;;;14070:24;:55;;;;;14099:15;:26;14115:9;14099:26;;;;;;;;;;;;;;;;;;;;;;;;;14098:27;14070:55;:72;;;;;14129:13;;;;;;;;;;;14070:72;14067:166;;;14181:12;;14171:6;:22;;14163:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14067:166;14282:53;14304:6;14282:53;;;;;;;;;;;;;;;;;:9;:17;14292:6;14282:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14262:9;:17;14272:6;14262:17;;;;;;;;;;;;;;;:73;;;;14352:19;14374:34;14391:6;14398:9;14374:16;:34::i;:::-;:80;;14420:34;14428:6;14436:9;14447:6;14420:7;:34::i;:::-;14374:80;;;14411:6;14374:80;14352:102;;14474:16;;;;;;;;;;;:51;;;;;14495:19;:30;14515:9;14495:30;;;;;;;;;;;;;;;;;;;;;;;;;14494:31;14474:51;14471:168;;;14595:10;;14554:37;14579:11;14554:20;14564:9;14554;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;14546:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;14471:168;14678:37;14703:11;14678:9;:20;14688:9;14678:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14655:9;:20;14665:9;14655:20;;;;;;;;;;;;;;;:60;;;;14754:9;14737:40;;14746:6;14737:40;;;14765:11;14737:40;;;;;;:::i;:::-;;;;;;;;14799:4;14792:11;;;;;13065:1761;;;;;;:::o;2866:192::-;2952:7;2985:1;2980;:6;;2988:12;2972:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3012:9;3028:1;3024;:5;;;;:::i;:::-;3012:17;;3049:1;3042:8;;;2866:192;;;;;:::o;2533:181::-;2591:7;2611:9;2627:1;2623;:5;;;;:::i;:::-;2611:17;;2652:1;2647;:6;;2639:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:1;2698:8;;;2533:181;;;;:::o;2327:173::-;2383:16;2402:6;;;;;;;;;;;2383:25;;2428:8;2419:6;;:17;;;;;;;;;;;;;;;;;;2483:8;2452:40;;2473:8;2452:40;;;;;;;;;;;;2372:128;2327:173;:::o;14834:330::-;14927:4;14964:53;14986:6;14964:53;;;;;;;;;;;;;;;;;:9;:17;14974:6;14964:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14944:9;:17;14954:6;14944:17;;;;;;;;;;;;;;;:73;;;;15051:32;15076:6;15051:9;:20;15061:9;15051:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15028:9;:20;15038:9;15028:20;;;;;;;;;;;;;;;:55;;;;15116:9;15099:35;;15108:6;15099:35;;;15127:6;15099:35;;;;;;:::i;:::-;;;;;;;;15152:4;15145:11;;14834:330;;;;;:::o;16253:408::-;9287:4;9278:6;;:13;;;;;;;;;;;;;;;;;;16327:11:::1;;;;;;;;;;;16324:47;;;16358:13;;16340:31;;16324:47;16384:22;16409:21;16384:46;;16441:33;16458:15;16441:16;:33::i;:::-;16485:22;16510:41;16536:14;16510:21;:25;;:41;;;;:::i;:::-;16485:66;;16584:1;16567:14;:18;16564:87;;;16608:17;;;;;;;;;;;16600:35;;:51;16636:14;16600:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16564:87;16311:350;;9323:5:::0;9314:6;;:14;;;;;;;;;;;;;;;;;;16253:408;:::o;15176:369::-;15260:4;15280:17;:25;15298:6;15280:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15309:17;:28;15327:9;15309:28;;;;;;;;;;;;;;;;;;;;;;;;;15280:57;15277:261;;;15361:4;15354:11;;;;15277:261;15396:12;:20;15409:6;15396:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15420:12;:23;15433:9;15420:23;;;;;;;;;;;;;;;;;;;;;;;;;15396:47;15392:146;;;15467:5;15460:12;;;;15392:146;15521:5;15514:12;;15176:369;;;;;:::o;15553:690::-;15639:7;15669:14;15726:12;:20;15739:6;15726:20;;;;;;;;;;;;;;;;;;;;;;;;;15723:246;;;15780:38;15803:14;;15780:18;15791:6;;15780;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;15768:50;;15723:246;;;15857:12;:23;15870:9;15857:23;;;;;;;;;;;;;;;;;;;;;;;;;15854:115;;;15914:39;15938:14;;15914:19;15925:7;;15914:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;15902:51;;15854:115;15723:246;16000:1;15988:9;:13;15985:185;;;16049:39;16078:9;16049;:24;16067:4;16049:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16022:9;:24;16040:4;16022:24;;;;;;;;;;;;;;;:66;;;;16137:4;16112:42;;16121:6;16112:42;;;16144:9;16112:42;;;;;;:::i;:::-;;;;;;;;15985:185;16193:21;16204:9;16193:6;:10;;:21;;;;:::i;:::-;16186:28;;;15553:690;;;;;:::o;16671:648::-;16797:21;16835:1;16821:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16797:40;;16866:4;16848;16853:1;16848:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16892:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16882:4;16887:1;16882:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;16921:56;16938:4;16953:9;;;;;;;;;;;16965:11;16921:8;:56::i;:::-;17016:9;;;;;;;;;;;:60;;;17091:11;17117:1;17161:4;17188;17224:15;17016:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17276:35;17293:11;17306:4;17276:35;;;;;;;:::i;:::-;;;;;;;;16726:593;16671:648;:::o;2722:136::-;2780:7;2807:43;2811:1;2814;2807:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2800:50;;2722:136;;;;:::o;3066:250::-;3124:7;3153:1;3148;:6;3144:47;;3178:1;3171:8;;;;3144:47;3203:9;3219:1;3215;:5;;;;:::i;:::-;3203:17;;3248:1;3243;3239;:5;;;;:::i;:::-;:10;3231:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3307:1;3300:8;;;3066:250;;;;;:::o;3324:132::-;3382:7;3409:39;3413:1;3416;3409:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3402:46;;3324:132;;;;:::o;3464:278::-;3550:7;3582:1;3578;:5;3585:12;3570:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3609:9;3625:1;3621;:5;;;;:::i;:::-;3609:17;;3733:1;3726:8;;;3464:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2869:96::-;2906:7;2935:24;2953:5;2935:24;:::i;:::-;2924:35;;2869:96;;;:::o;2971:118::-;3058:24;3076:5;3058:24;:::i;:::-;3053:3;3046:37;2971:118;;:::o;3095:222::-;3188:4;3226:2;3215:9;3211:18;3203:26;;3239:71;3307:1;3296:9;3292:17;3283:6;3239:71;:::i;:::-;3095:222;;;;:::o;3404:117::-;3513:1;3510;3503:12;3650:122;3723:24;3741:5;3723:24;:::i;:::-;3716:5;3713:35;3703:63;;3762:1;3759;3752:12;3703:63;3650:122;:::o;3778:139::-;3824:5;3862:6;3849:20;3840:29;;3878:33;3905:5;3878:33;:::i;:::-;3778:139;;;;:::o;3923:122::-;3996:24;4014:5;3996:24;:::i;:::-;3989:5;3986:35;3976:63;;4035:1;4032;4025:12;3976:63;3923:122;:::o;4051:139::-;4097:5;4135:6;4122:20;4113:29;;4151:33;4178:5;4151:33;:::i;:::-;4051:139;;;;:::o;4196:474::-;4264:6;4272;4321:2;4309:9;4300:7;4296:23;4292:32;4289:119;;;4327:79;;:::i;:::-;4289:119;4447:1;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4418:117;4574:2;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4545:118;4196:474;;;;;:::o;4676:90::-;4710:7;4753:5;4746:13;4739:21;4728:32;;4676:90;;;:::o;4772:109::-;4853:21;4868:5;4853:21;:::i;:::-;4848:3;4841:34;4772:109;;:::o;4887:210::-;4974:4;5012:2;5001:9;4997:18;4989:26;;5025:65;5087:1;5076:9;5072:17;5063:6;5025:65;:::i;:::-;4887:210;;;;:::o;5103:619::-;5180:6;5188;5196;5245:2;5233:9;5224:7;5220:23;5216:32;5213:119;;;5251:79;;:::i;:::-;5213:119;5371:1;5396:53;5441:7;5432:6;5421:9;5417:22;5396:53;:::i;:::-;5386:63;;5342:117;5498:2;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5469:118;5626:2;5652:53;5697:7;5688:6;5677:9;5673:22;5652:53;:::i;:::-;5642:63;;5597:118;5103:619;;;;;:::o;5728:86::-;5763:7;5803:4;5796:5;5792:16;5781:27;;5728:86;;;:::o;5820:112::-;5903:22;5919:5;5903:22;:::i;:::-;5898:3;5891:35;5820:112;;:::o;5938:214::-;6027:4;6065:2;6054:9;6050:18;6042:26;;6078:67;6142:1;6131:9;6127:17;6118:6;6078:67;:::i;:::-;5938:214;;;;:::o;6158:329::-;6217:6;6266:2;6254:9;6245:7;6241:23;6237:32;6234:119;;;6272:79;;:::i;:::-;6234:119;6392:1;6417:53;6462:7;6453:6;6442:9;6438:22;6417:53;:::i;:::-;6407:63;;6363:117;6158:329;;;;:::o;6493:116::-;6563:21;6578:5;6563:21;:::i;:::-;6556:5;6553:32;6543:60;;6599:1;6596;6589:12;6543:60;6493:116;:::o;6615:133::-;6658:5;6696:6;6683:20;6674:29;;6712:30;6736:5;6712:30;:::i;:::-;6615:133;;;;:::o;6754:323::-;6810:6;6859:2;6847:9;6838:7;6834:23;6830:32;6827:119;;;6865:79;;:::i;:::-;6827:119;6985:1;7010:50;7052:7;7043:6;7032:9;7028:22;7010:50;:::i;:::-;7000:60;;6956:114;6754:323;;;;:::o;7083:329::-;7142:6;7191:2;7179:9;7170:7;7166:23;7162:32;7159:119;;;7197:79;;:::i;:::-;7159:119;7317:1;7342:53;7387:7;7378:6;7367:9;7363:22;7342:53;:::i;:::-;7332:63;;7288:117;7083:329;;;;:::o;7418:468::-;7483:6;7491;7540:2;7528:9;7519:7;7515:23;7511:32;7508:119;;;7546:79;;:::i;:::-;7508:119;7666:1;7691:53;7736:7;7727:6;7716:9;7712:22;7691:53;:::i;:::-;7681:63;;7637:117;7793:2;7819:50;7861:7;7852:6;7841:9;7837:22;7819:50;:::i;:::-;7809:60;;7764:115;7418:468;;;;;:::o;7892:607::-;7963:6;7971;7979;8028:2;8016:9;8007:7;8003:23;7999:32;7996:119;;;8034:79;;:::i;:::-;7996:119;8154:1;8179:53;8224:7;8215:6;8204:9;8200:22;8179:53;:::i;:::-;8169:63;;8125:117;8281:2;8307:50;8349:7;8340:6;8329:9;8325:22;8307:50;:::i;:::-;8297:60;;8252:115;8406:2;8432:50;8474:7;8465:6;8454:9;8450:22;8432:50;:::i;:::-;8422:60;;8377:115;7892:607;;;;;:::o;8505:474::-;8573:6;8581;8630:2;8618:9;8609:7;8605:23;8601:32;8598:119;;;8636:79;;:::i;:::-;8598:119;8756:1;8781:53;8826:7;8817:6;8806:9;8802:22;8781:53;:::i;:::-;8771:63;;8727:117;8883:2;8909:53;8954:7;8945:6;8934:9;8930:22;8909:53;:::i;:::-;8899:63;;8854:118;8505:474;;;;;:::o;8985:::-;9053:6;9061;9110:2;9098:9;9089:7;9085:23;9081:32;9078:119;;;9116:79;;:::i;:::-;9078:119;9236:1;9261:53;9306:7;9297:6;9286:9;9282:22;9261:53;:::i;:::-;9251:63;;9207:117;9363:2;9389:53;9434:7;9425:6;9414:9;9410:22;9389:53;:::i;:::-;9379:63;;9334:118;8985:474;;;;;:::o;9465:180::-;9513:77;9510:1;9503:88;9610:4;9607:1;9600:15;9634:4;9631:1;9624:15;9651:320;9695:6;9732:1;9726:4;9722:12;9712:22;;9779:1;9773:4;9769:12;9800:18;9790:81;;9856:4;9848:6;9844:17;9834:27;;9790:81;9918:2;9910:6;9907:14;9887:18;9884:38;9881:84;;9937:18;;:::i;:::-;9881:84;9702:269;9651:320;;;:::o;9977:182::-;10117:34;10113:1;10105:6;10101:14;10094:58;9977:182;:::o;10165:366::-;10307:3;10328:67;10392:2;10387:3;10328:67;:::i;:::-;10321:74;;10404:93;10493:3;10404:93;:::i;:::-;10522:2;10517:3;10513:12;10506:19;;10165:366;;;:::o;10537:419::-;10703:4;10741:2;10730:9;10726:18;10718:26;;10790:9;10784:4;10780:20;10776:1;10765:9;10761:17;10754:47;10818:131;10944:4;10818:131;:::i;:::-;10810:139;;10537:419;;;:::o;10962:164::-;11102:16;11098:1;11090:6;11086:14;11079:40;10962:164;:::o;11132:366::-;11274:3;11295:67;11359:2;11354:3;11295:67;:::i;:::-;11288:74;;11371:93;11460:3;11371:93;:::i;:::-;11489:2;11484:3;11480:12;11473:19;;11132:366;;;:::o;11504:419::-;11670:4;11708:2;11697:9;11693:18;11685:26;;11757:9;11751:4;11747:20;11743:1;11732:9;11728:17;11721:47;11785:131;11911:4;11785:131;:::i;:::-;11777:139;;11504:419;;;:::o;11929:164::-;12069:16;12065:1;12057:6;12053:14;12046:40;11929:164;:::o;12099:366::-;12241:3;12262:67;12326:2;12321:3;12262:67;:::i;:::-;12255:74;;12338:93;12427:3;12338:93;:::i;:::-;12456:2;12451:3;12447:12;12440:19;;12099:366;;;:::o;12471:419::-;12637:4;12675:2;12664:9;12660:18;12652:26;;12724:9;12718:4;12714:20;12710:1;12699:9;12695:17;12688:47;12752:131;12878:4;12752:131;:::i;:::-;12744:139;;12471:419;;;:::o;12896:332::-;13017:4;13055:2;13044:9;13040:18;13032:26;;13068:71;13136:1;13125:9;13121:17;13112:6;13068:71;:::i;:::-;13149:72;13217:2;13206:9;13202:18;13193:6;13149:72;:::i;:::-;12896:332;;;;;:::o;13234:98::-;13285:6;13319:5;13313:12;13303:22;;13234:98;;;:::o;13338:147::-;13439:11;13476:3;13461:18;;13338:147;;;;:::o;13491:386::-;13595:3;13623:38;13655:5;13623:38;:::i;:::-;13677:88;13758:6;13753:3;13677:88;:::i;:::-;13670:95;;13774:65;13832:6;13827:3;13820:4;13813:5;13809:16;13774:65;:::i;:::-;13864:6;13859:3;13855:16;13848:23;;13599:278;13491:386;;;;:::o;13883:271::-;14013:3;14035:93;14124:3;14115:6;14035:93;:::i;:::-;14028:100;;14145:3;14138:10;;13883:271;;;;:::o;14160:170::-;14300:22;14296:1;14288:6;14284:14;14277:46;14160:170;:::o;14336:366::-;14478:3;14499:67;14563:2;14558:3;14499:67;:::i;:::-;14492:74;;14575:93;14664:3;14575:93;:::i;:::-;14693:2;14688:3;14684:12;14677:19;;14336:366;;;:::o;14708:419::-;14874:4;14912:2;14901:9;14897:18;14889:26;;14961:9;14955:4;14951:20;14947:1;14936:9;14932:17;14925:47;14989:131;15115:4;14989:131;:::i;:::-;14981:139;;14708:419;;;:::o;15133:114::-;;:::o;15253:398::-;15412:3;15433:83;15514:1;15509:3;15433:83;:::i;:::-;15426:90;;15525:93;15614:3;15525:93;:::i;:::-;15643:1;15638:3;15634:11;15627:18;;15253:398;;;:::o;15657:379::-;15841:3;15863:147;16006:3;15863:147;:::i;:::-;15856:154;;16027:3;16020:10;;15657:379;;;:::o;16042:170::-;16182:22;16178:1;16170:6;16166:14;16159:46;16042:170;:::o;16218:366::-;16360:3;16381:67;16445:2;16440:3;16381:67;:::i;:::-;16374:74;;16457:93;16546:3;16457:93;:::i;:::-;16575:2;16570:3;16566:12;16559:19;;16218:366;;;:::o;16590:419::-;16756:4;16794:2;16783:9;16779:18;16771:26;;16843:9;16837:4;16833:20;16829:1;16818:9;16814:17;16807:47;16871:131;16997:4;16871:131;:::i;:::-;16863:139;;16590:419;;;:::o;17015:225::-;17155:34;17151:1;17143:6;17139:14;17132:58;17224:8;17219:2;17211:6;17207:15;17200:33;17015:225;:::o;17246:366::-;17388:3;17409:67;17473:2;17468:3;17409:67;:::i;:::-;17402:74;;17485:93;17574:3;17485:93;:::i;:::-;17603:2;17598:3;17594:12;17587:19;;17246:366;;;:::o;17618:419::-;17784:4;17822:2;17811:9;17807:18;17799:26;;17871:9;17865:4;17861:20;17857:1;17846:9;17842:17;17835:47;17899:131;18025:4;17899:131;:::i;:::-;17891:139;;17618:419;;;:::o;18043:223::-;18183:34;18179:1;18171:6;18167:14;18160:58;18252:6;18247:2;18239:6;18235:15;18228:31;18043:223;:::o;18272:366::-;18414:3;18435:67;18499:2;18494:3;18435:67;:::i;:::-;18428:74;;18511:93;18600:3;18511:93;:::i;:::-;18629:2;18624:3;18620:12;18613:19;;18272:366;;;:::o;18644:419::-;18810:4;18848:2;18837:9;18833:18;18825:26;;18897:9;18891:4;18887:20;18883:1;18872:9;18868:17;18861:47;18925:131;19051:4;18925:131;:::i;:::-;18917:139;;18644:419;;;:::o;19069:221::-;19209:34;19205:1;19197:6;19193:14;19186:58;19278:4;19273:2;19265:6;19261:15;19254:29;19069:221;:::o;19296:366::-;19438:3;19459:67;19523:2;19518:3;19459:67;:::i;:::-;19452:74;;19535:93;19624:3;19535:93;:::i;:::-;19653:2;19648:3;19644:12;19637:19;;19296:366;;;:::o;19668:419::-;19834:4;19872:2;19861:9;19857:18;19849:26;;19921:9;19915:4;19911:20;19907:1;19896:9;19892:17;19885:47;19949:131;20075:4;19949:131;:::i;:::-;19941:139;;19668:419;;;:::o;20093:164::-;20233:16;20229:1;20221:6;20217:14;20210:40;20093:164;:::o;20263:366::-;20405:3;20426:67;20490:2;20485:3;20426:67;:::i;:::-;20419:74;;20502:93;20591:3;20502:93;:::i;:::-;20620:2;20615:3;20611:12;20604:19;;20263:366;;;:::o;20635:419::-;20801:4;20839:2;20828:9;20824:18;20816:26;;20888:9;20882:4;20878:20;20874:1;20863:9;20859:17;20852:47;20916:131;21042:4;20916:131;:::i;:::-;20908:139;;20635:419;;;:::o;21060:169::-;21200:21;21196:1;21188:6;21184:14;21177:45;21060:169;:::o;21235:366::-;21377:3;21398:67;21462:2;21457:3;21398:67;:::i;:::-;21391:74;;21474:93;21563:3;21474:93;:::i;:::-;21592:2;21587:3;21583:12;21576:19;;21235:366;;;:::o;21607:419::-;21773:4;21811:2;21800:9;21796:18;21788:26;;21860:9;21854:4;21850:20;21846:1;21835:9;21831:17;21824:47;21888:131;22014:4;21888:131;:::i;:::-;21880:139;;21607:419;;;:::o;22032:164::-;22172:16;22168:1;22160:6;22156:14;22149:40;22032:164;:::o;22202:366::-;22344:3;22365:67;22429:2;22424:3;22365:67;:::i;:::-;22358:74;;22441:93;22530:3;22441:93;:::i;:::-;22559:2;22554:3;22550:12;22543:19;;22202:366;;;:::o;22574:419::-;22740:4;22778:2;22767:9;22763:18;22755:26;;22827:9;22821:4;22817:20;22813:1;22802:9;22798:17;22791:47;22855:131;22981:4;22855:131;:::i;:::-;22847:139;;22574:419;;;:::o;22999:180::-;23047:77;23044:1;23037:88;23144:4;23141:1;23134:15;23168:4;23165:1;23158:15;23185:194;23225:4;23245:20;23263:1;23245:20;:::i;:::-;23240:25;;23279:20;23297:1;23279:20;:::i;:::-;23274:25;;23323:1;23320;23316:9;23308:17;;23347:1;23341:4;23338:11;23335:37;;;23352:18;;:::i;:::-;23335:37;23185:194;;;;:::o;23385:191::-;23425:3;23444:20;23462:1;23444:20;:::i;:::-;23439:25;;23478:20;23496:1;23478:20;:::i;:::-;23473:25;;23521:1;23518;23514:9;23507:16;;23542:3;23539:1;23536:10;23533:36;;;23549:18;;:::i;:::-;23533:36;23385:191;;;;:::o;23582:177::-;23722:29;23718:1;23710:6;23706:14;23699:53;23582:177;:::o;23765:366::-;23907:3;23928:67;23992:2;23987:3;23928:67;:::i;:::-;23921:74;;24004:93;24093:3;24004:93;:::i;:::-;24122:2;24117:3;24113:12;24106:19;;23765:366;;;:::o;24137:419::-;24303:4;24341:2;24330:9;24326:18;24318:26;;24390:9;24384:4;24380:20;24376:1;24365:9;24361:17;24354:47;24418:131;24544:4;24418:131;:::i;:::-;24410:139;;24137:419;;;:::o;24562:180::-;24610:77;24607:1;24600:88;24707:4;24704:1;24697:15;24731:4;24728:1;24721:15;24748:180;24796:77;24793:1;24786:88;24893:4;24890:1;24883:15;24917:4;24914:1;24907:15;24934:143;24991:5;25022:6;25016:13;25007:22;;25038:33;25065:5;25038:33;:::i;:::-;24934:143;;;;:::o;25083:351::-;25153:6;25202:2;25190:9;25181:7;25177:23;25173:32;25170:119;;;25208:79;;:::i;:::-;25170:119;25328:1;25353:64;25409:7;25400:6;25389:9;25385:22;25353:64;:::i;:::-;25343:74;;25299:128;25083:351;;;;:::o;25440:85::-;25485:7;25514:5;25503:16;;25440:85;;;:::o;25531:158::-;25589:9;25622:61;25640:42;25649:32;25675:5;25649:32;:::i;:::-;25640:42;:::i;:::-;25622:61;:::i;:::-;25609:74;;25531:158;;;:::o;25695:147::-;25790:45;25829:5;25790:45;:::i;:::-;25785:3;25778:58;25695:147;;:::o;25848:114::-;25915:6;25949:5;25943:12;25933:22;;25848:114;;;:::o;25968:184::-;26067:11;26101:6;26096:3;26089:19;26141:4;26136:3;26132:14;26117:29;;25968:184;;;;:::o;26158:132::-;26225:4;26248:3;26240:11;;26278:4;26273:3;26269:14;26261:22;;26158:132;;;:::o;26296:108::-;26373:24;26391:5;26373:24;:::i;:::-;26368:3;26361:37;26296:108;;:::o;26410:179::-;26479:10;26500:46;26542:3;26534:6;26500:46;:::i;:::-;26578:4;26573:3;26569:14;26555:28;;26410:179;;;;:::o;26595:113::-;26665:4;26697;26692:3;26688:14;26680:22;;26595:113;;;:::o;26744:732::-;26863:3;26892:54;26940:5;26892:54;:::i;:::-;26962:86;27041:6;27036:3;26962:86;:::i;:::-;26955:93;;27072:56;27122:5;27072:56;:::i;:::-;27151:7;27182:1;27167:284;27192:6;27189:1;27186:13;27167:284;;;27268:6;27262:13;27295:63;27354:3;27339:13;27295:63;:::i;:::-;27288:70;;27381:60;27434:6;27381:60;:::i;:::-;27371:70;;27227:224;27214:1;27211;27207:9;27202:14;;27167:284;;;27171:14;27467:3;27460:10;;26868:608;;;26744:732;;;;:::o;27482:831::-;27745:4;27783:3;27772:9;27768:19;27760:27;;27797:71;27865:1;27854:9;27850:17;27841:6;27797:71;:::i;:::-;27878:80;27954:2;27943:9;27939:18;27930:6;27878:80;:::i;:::-;28005:9;27999:4;27995:20;27990:2;27979:9;27975:18;27968:48;28033:108;28136:4;28127:6;28033:108;:::i;:::-;28025:116;;28151:72;28219:2;28208:9;28204:18;28195:6;28151:72;:::i;:::-;28233:73;28301:3;28290:9;28286:19;28277:6;28233:73;:::i;:::-;27482:831;;;;;;;;:::o;28319:483::-;28490:4;28528:2;28517:9;28513:18;28505:26;;28541:71;28609:1;28598:9;28594:17;28585:6;28541:71;:::i;:::-;28659:9;28653:4;28649:20;28644:2;28633:9;28629:18;28622:48;28687:108;28790:4;28781:6;28687:108;:::i;:::-;28679:116;;28319:483;;;;;:::o;28808:410::-;28848:7;28871:20;28889:1;28871:20;:::i;:::-;28866:25;;28905:20;28923:1;28905:20;:::i;:::-;28900:25;;28960:1;28957;28953:9;28982:30;29000:11;28982:30;:::i;:::-;28971:41;;29161:1;29152:7;29148:15;29145:1;29142:22;29122:1;29115:9;29095:83;29072:139;;29191:18;;:::i;:::-;29072:139;28856:362;28808:410;;;;:::o;29224:180::-;29272:77;29269:1;29262:88;29369:4;29366:1;29359:15;29393:4;29390:1;29383:15;29410:185;29450:1;29467:20;29485:1;29467:20;:::i;:::-;29462:25;;29501:20;29519:1;29501:20;:::i;:::-;29496:25;;29540:1;29530:35;;29545:18;;:::i;:::-;29530:35;29587:1;29584;29580:9;29575:14;;29410:185;;;;:::o;29601:220::-;29741:34;29737:1;29729:6;29725:14;29718:58;29810:3;29805:2;29797:6;29793:15;29786:28;29601:220;:::o;29827:366::-;29969:3;29990:67;30054:2;30049:3;29990:67;:::i;:::-;29983:74;;30066:93;30155:3;30066:93;:::i;:::-;30184:2;30179:3;30175:12;30168:19;;29827:366;;;:::o;30199:419::-;30365:4;30403:2;30392:9;30388:18;30380:26;;30452:9;30446:4;30442:20;30438:1;30427:9;30423:17;30416:47;30480:131;30606:4;30480:131;:::i;:::-;30472:139;;30199:419;;;:::o

Swarm Source

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