ETH Price: $3,475.38 (+7.06%)
Gas: 8 Gwei

Token

LARP (LARP)
 

Overview

Max Total Supply

1,000,000,000 LARP

Holders

407

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.95586237 LARP

Value
$0.00
0xd3d9383ab1fe55ed1f63c69583c4785e97ac191f
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:
LARP

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
                        ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣆⢳⡀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣾⣷⡀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠠⣄⠀⢠⣿⣿⣿⣿⡎⢻⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⢸⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣾⣿⣿⣿⣿⠃⠀⢸⣿⣿⣿⣿⣿⣿⠀⣄⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⠏⠀⠀⣸⣿⣿⣿⣿⣿⡿⢀⣿⡆⠀
                    ⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⣿⣿⣿⣿⣿⣿⠇⣼⣿⣿⡄
                    ⠀⢰⠀⠀⣴⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⢠⣿⣿⣿⣿⣿⡟⣼⣿⣿⣿⣧
                    ⠀⣿⡀⢸⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⣸⡿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿
                    ⠀⣿⣷⣼⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⢹⠃⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿
                    ⡄⢻⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⠇
                    ⢳⣌⢿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⣿⣿⣿⠏⠀
                    ⠀⢿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⠋⣠⠀
                    ⠀⠈⢻⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣵⣿⠃⠀
                    ⠀⠀⠀⠙⢿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⡿⠃⠀⠀
                    ⠀⠀⠀⠀⠀⠙⢿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⠋⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣦⣀⠀⠀⠀⠀⢀⣴⠿⠛⠁⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠓⠂⠀⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                        
                        ██       █████  ██████  ██████  
                        ██      ██   ██ ██   ██ ██   ██ 
                        ██      ███████ ██████  ██████  
                        ██      ██   ██ ██   ██ ██      
                        ███████ ██   ██ ██   ██ ██      
                                
                                
-> Telegram: https://t.me/LARPTokenERC
-> Twitter: https://Twitter.com/LarpTokenETH
-> Website: https://Larpcoin.wtf

*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.16;

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 LARP is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "LARP";
    string private _symbol = "LARP";
    uint8 private _decimals = 8; 

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

    uint _buyTax = 1;     
    uint _sellTax = 1;     

    address public developmentWallet = address(0xA7014eE29D32A46cB9a5a184B7dbfB1e75526bEA);

    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 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(2).div(100);     // 2%
    uint256 public _walletMax = _totalSupply.mul(2).div(100);        // 2%

    uint256 public swapThreshold = 500_000 * 10**_decimals;

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

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

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

    constructor() {

        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;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;
        isWalletLimitExempt[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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    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 {

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

        (bool os,) = payable(developmentWallet).call{value: amountReceived}("");
        if(os) {}
    }

    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 onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

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

    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 setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setDevelopmentWallet(address _addr) external onlyOwner {
        developmentWallet = _addr;
    }

    function setFee(uint _buy, uint _sell) external onlyOwner {
        _buyTax = _buy;
        _sellTax = _sell;
    }
    
   
    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

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":"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":[{"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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","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":[{"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"}]

60c06040526040518060400160405280600481526020017f4c41525000000000000000000000000000000000000000000000000000000000815250600190816200004a919062001149565b506040518060400160405280600481526020017f4c415250000000000000000000000000000000000000000000000000000000008152506002908162000091919062001149565b506008600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506001600455600160055573a7014ee29d32a46cb9a5a184b7dbfb1e75526bea600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600755600360009054906101000a900460ff16600a620001999190620013c0565b633b9aca00620001aa919062001411565b600e55620001e46064620001d06002600e5462000cc660201b62001fb91790919060201c565b62000d4960201b620020331790919060201c565b600f556200021e60646200020a6002600e5462000cc660201b62001fb91790919060201c565b62000d4960201b620020331790919060201c565b601055600360009054906101000a900460ff16600a6200023f9190620013c0565b6207a1206200024f919062001411565b6011556001601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506001601260036101000a81548160ff021916908315150217905550348015620002cb57600080fd5b50620002ec620002e062000d9b60201b60201c565b62000da360201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000351573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003779190620014dc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004059190620014dc565b6040518363ffffffff1660e01b8152600401620004249291906200151f565b6020604051808303816000875af115801562000444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046a9190620014dc565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000cb791906200155d565b60405180910390a3506200172c565b600080830362000cda576000905062000d43565b6000828462000cea919062001411565b905082848262000cfb9190620015a9565b1462000d3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d359062001668565b60405180910390fd5b809150505b92915050565b600062000d9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e6760201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000eb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ea8919062001708565b60405180910390fd5b506000838562000ec29190620015a9565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f5157607f821691505b60208210810362000f675762000f6662000f09565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000fd17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f92565b62000fdd868362000f92565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200102a620010246200101e8462000ff5565b62000fff565b62000ff5565b9050919050565b6000819050919050565b620010468362001009565b6200105e620010558262001031565b84845462000f9f565b825550505050565b600090565b6200107562001066565b620010828184846200103b565b505050565b5b81811015620010aa576200109e6000826200106b565b60018101905062001088565b5050565b601f821115620010f957620010c38162000f6d565b620010ce8462000f82565b81016020851015620010de578190505b620010f6620010ed8562000f82565b83018262001087565b50505b505050565b600082821c905092915050565b60006200111e60001984600802620010fe565b1980831691505092915050565b60006200113983836200110b565b9150826002028217905092915050565b620011548262000ecf565b67ffffffffffffffff81111562001170576200116f62000eda565b5b6200117c825462000f38565b62001189828285620010ae565b600060209050601f831160018114620011c15760008415620011ac578287015190505b620011b885826200112b565b86555062001228565b601f198416620011d18662000f6d565b60005b82811015620011fb57848901518255600182019150602085019450602081019050620011d4565b868310156200121b578489015162001217601f8916826200110b565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620012be5780860481111562001296576200129562001230565b5b6001851615620012a65780820291505b8081029050620012b6856200125f565b945062001276565b94509492505050565b600082620012d95760019050620013ac565b81620012e95760009050620013ac565b81600181146200130257600281146200130d5762001343565b6001915050620013ac565b60ff84111562001322576200132162001230565b5b8360020a9150848211156200133c576200133b62001230565b5b50620013ac565b5060208310610133831016604e8410600b84101617156200137d5782820a90508381111562001377576200137662001230565b5b620013ac565b6200138c84848460016200126c565b92509050818404811115620013a657620013a562001230565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013cd8262000ff5565b9150620013da83620013b3565b9250620014097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620012c7565b905092915050565b60006200141e8262000ff5565b91506200142b8362000ff5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001467576200146662001230565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620014a48262001477565b9050919050565b620014b68162001497565b8114620014c257600080fd5b50565b600081519050620014d681620014ab565b92915050565b600060208284031215620014f557620014f462001472565b5b60006200150584828501620014c5565b91505092915050565b620015198162001497565b82525050565b60006040820190506200153660008301856200150e565b6200154560208301846200150e565b9392505050565b620015578162000ff5565b82525050565b60006020820190506200157460008301846200154c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015b68262000ff5565b9150620015c38362000ff5565b925082620015d657620015d56200157a565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062001650602183620015e1565b91506200165d82620015f2565b604082019050919050565b60006020820190508181036000830152620016838162001641565b9050919050565b60005b83811015620016aa5780820151818401526020810190506200168d565b60008484015250505050565b6000601f19601f8301169050919050565b6000620016d48262000ecf565b620016e08185620015e1565b9350620016f28185602086016200168a565b620016fd81620016b6565b840191505092915050565b60006020820190508181036000830152620017248184620016c7565b905092915050565b60805160a0516141d66200176060003960008181610b870152610cf6015260008181610cca0152610d2201526141d66000f3fe6080604052600436106102815760003560e01c806372ac24861161014f578063c16dd4a4116100c1578063e9fd33941161007a578063e9fd3394146109cb578063ee828db3146109f6578063f242ab4114610a1f578063f2fde38b14610a4a578063f71b9bbf14610a73578063f872858a14610a9c57610288565b8063c16dd4a4146108bf578063c867d60b146108e8578063cea9d26f14610925578063dd62ed3e1461094e578063df8408fe1461098b578063e6b2603b146109b457610288565b806395d89b411161011357806395d89b411461079d578063a457c2d7146107c8578063a9059cbb14610805578063ae85ade614610842578063b94b0aef1461086b578063c04a54141461089457610288565b806372ac2486146106b65780637d1db4a5146106df578063807c2d9c1461070a5780638b42507f146107355780638da5cb5b1461077257610288565b80633ecad271116101f35780635e42358c116101ac5780635e42358c146105ba578063651a8987146105e55780636ddd17131461060e57806370a0823114610639578063715018a614610676578063728d41c91461068d57610288565b80633ecad2711461049c5780634974d88f146104d957806352f7c988146105025780635342acb41461052b57806359fac517146105685780635c85974f1461059157610288565b806318160ddd1161024557806318160ddd1461037657806323b872dd146103a157806327c8f835146103de5780632b112e4914610409578063313ce56714610434578063395093511461045f57610288565b80630445b6671461028d57806306fdde03146102b85780630758d924146102e35780630930907b1461030e578063095ea7b31461033957610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610ac7565b6040516102af919061334f565b60405180910390f35b3480156102c457600080fd5b506102cd610acd565b6040516102da91906133fa565b60405180910390f35b3480156102ef57600080fd5b506102f8610b5f565b604051610305919061349b565b60405180910390f35b34801561031a57600080fd5b50610323610b85565b60405161033091906134d7565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b919061354f565b610ba9565b60405161036d91906135aa565b60405180910390f35b34801561038257600080fd5b5061038b610bc7565b604051610398919061334f565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c391906135c5565b610bd1565b6040516103d591906135aa565b60405180910390f35b3480156103ea57600080fd5b506103f3610cc8565b60405161040091906134d7565b60405180910390f35b34801561041557600080fd5b5061041e610cec565b60405161042b919061334f565b60405180910390f35b34801561044057600080fd5b50610449610d6a565b6040516104569190613634565b60405180910390f35b34801561046b57600080fd5b506104866004803603810190610481919061354f565b610d81565b60405161049391906135aa565b60405180910390f35b3480156104a857600080fd5b506104c360048036038101906104be919061364f565b610e34565b6040516104d091906135aa565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb91906136a8565b610e54565b005b34801561050e57600080fd5b50610529600480360381019061052491906136d5565b610eed565b005b34801561053757600080fd5b50610552600480360381019061054d919061364f565b610f7b565b60405161055f91906135aa565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a919061364f565b610f9b565b005b34801561059d57600080fd5b506105b860048036038101906105b39190613715565b61105b565b005b3480156105c657600080fd5b506105cf6110e1565b6040516105dc91906135aa565b60405180910390f35b3480156105f157600080fd5b5061060c60048036038101906106079190613742565b6110f4565b005b34801561061a57600080fd5b506106236111cb565b60405161063091906135aa565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b919061364f565b6111de565b60405161066d919061334f565b60405180910390f35b34801561068257600080fd5b5061068b611227565b005b34801561069957600080fd5b506106b460048036038101906106af9190613715565b6112af565b005b3480156106c257600080fd5b506106dd60048036038101906106d8919061364f565b611335565b005b3480156106eb57600080fd5b506106f46113f5565b604051610701919061334f565b60405180910390f35b34801561071657600080fd5b5061071f6113fb565b60405161072c919061334f565b60405180910390f35b34801561074157600080fd5b5061075c6004803603810190610757919061364f565b611401565b60405161076991906135aa565b60405180910390f35b34801561077e57600080fd5b50610787611421565b60405161079491906134d7565b60405180910390f35b3480156107a957600080fd5b506107b261144a565b6040516107bf91906133fa565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea919061354f565b6114dc565b6040516107fc91906135aa565b60405180910390f35b34801561081157600080fd5b5061082c6004803603810190610827919061354f565b6115a9565b60405161083991906135aa565b60405180910390f35b34801561084e57600080fd5b5061086960048036038101906108649190613742565b6115c8565b005b34801561087757600080fd5b50610892600480360381019061088d9190613782565b61169f565b005b3480156108a057600080fd5b506108a961175b565b6040516108b691906134d7565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e19190613742565b611781565b005b3480156108f457600080fd5b5061090f600480360381019061090a919061364f565b6118b6565b60405161091c91906135aa565b60405180910390f35b34801561093157600080fd5b5061094c600480360381019061094791906135c5565b6118d6565b005b34801561095a57600080fd5b50610975600480360381019061097091906137d5565b611a94565b604051610982919061334f565b60405180910390f35b34801561099757600080fd5b506109b260048036038101906109ad9190613742565b611b1b565b005b3480156109c057600080fd5b506109c9611bf2565b005b3480156109d757600080fd5b506109e0611d1d565b6040516109ed91906135aa565b60405180910390f35b348015610a0257600080fd5b50610a1d6004803603810190610a1891906136a8565b611d30565b005b348015610a2b57600080fd5b50610a34611dc9565b604051610a4191906134d7565b60405180910390f35b348015610a5657600080fd5b50610a716004803603810190610a6c919061364f565b611def565b005b348015610a7f57600080fd5b50610a9a6004803603810190610a95919061364f565b611ee6565b005b348015610aa857600080fd5b50610ab1611fa6565b604051610abe91906135aa565b60405180910390f35b60115481565b606060018054610adc90613844565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0890613844565b8015610b555780601f10610b2a57610100808354040283529160200191610b55565b820191906000526020600020905b815481529060010190602001808311610b3857829003601f168201915b5050505050905090565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610bbd610bb661207d565b8484612085565b6001905092915050565b6000600e54905090565b6000610bde84848461224e565b50610cbd84610beb61207d565b610cb8856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c6e61207d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b612085565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610d65610d1a7f00000000000000000000000000000000000000000000000000000000000000006111de565b610d57610d467f00000000000000000000000000000000000000000000000000000000000000006111de565b600e5461287e90919063ffffffff16565b61287e90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610e2a610d8e61207d565b84610e258560096000610d9f61207d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b612085565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610e5c61207d565b73ffffffffffffffffffffffffffffffffffffffff16610e7a611421565b73ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec7906138c1565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b610ef561207d565b73ffffffffffffffffffffffffffffffffffffffff16610f13611421565b73ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f60906138c1565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b610fa361207d565b73ffffffffffffffffffffffffffffffffffffffff16610fc1611421565b73ffffffffffffffffffffffffffffffffffffffff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e906138c1565b60405180910390fd5b80601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61106361207d565b73ffffffffffffffffffffffffffffffffffffffff16611081611421565b73ffffffffffffffffffffffffffffffffffffffff16146110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce906138c1565b60405180910390fd5b80600f8190555050565b601260029054906101000a900460ff1681565b6110fc61207d565b73ffffffffffffffffffffffffffffffffffffffff1661111a611421565b73ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611167906138c1565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61122f61207d565b73ffffffffffffffffffffffffffffffffffffffff1661124d611421565b73ffffffffffffffffffffffffffffffffffffffff16146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a906138c1565b60405180910390fd5b6112ad6000612926565b565b6112b761207d565b73ffffffffffffffffffffffffffffffffffffffff166112d5611421565b73ffffffffffffffffffffffffffffffffffffffff161461132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906138c1565b60405180910390fd5b8060108190555050565b61133d61207d565b73ffffffffffffffffffffffffffffffffffffffff1661135b611421565b73ffffffffffffffffffffffffffffffffffffffff16146113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a8906138c1565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461145990613844565b80601f016020809104026020016040519081016040528092919081815260200182805461148590613844565b80156114d25780601f106114a7576101008083540402835291602001916114d2565b820191906000526020600020905b8154815290600101906020018083116114b557829003601f168201915b5050505050905090565b600061159f6114e961207d565b8461159a8560405180606001604052806025815260200161417c602591396009600061151361207d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b612085565b6001905092915050565b60006115bd6115b661207d565b848461224e565b506001905092915050565b6115d061207d565b73ffffffffffffffffffffffffffffffffffffffff166115ee611421565b73ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b906138c1565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6116a761207d565b73ffffffffffffffffffffffffffffffffffffffff166116c5611421565b73ffffffffffffffffffffffffffffffffffffffff161461171b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611712906138c1565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff02191690831515021790555082601181905550505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61178961207d565b73ffffffffffffffffffffffffffffffffffffffff166117a7611421565b73ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f4906138c1565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156118b25780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6118de61207d565b73ffffffffffffffffffffffffffffffffffffffff166118fc611421565b73ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611949906138c1565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff16838360405160240161197e9291906138e1565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a089190613951565b6000604051808303816000865af19150503d8060008114611a45576040519150601f19603f3d011682016040523d82523d6000602084013e611a4a565b606091505b5050905080611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a85906139b4565b60405180910390fd5b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b2361207d565b73ffffffffffffffffffffffffffffffffffffffff16611b41611421565b73ffffffffffffffffffffffffffffffffffffffff1614611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e906138c1565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bfa61207d565b73ffffffffffffffffffffffffffffffffffffffff16611c18611421565b73ffffffffffffffffffffffffffffffffffffffff1614611c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c65906138c1565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611c94906139fa565b60006040518083038185875af1925050503d8060008114611cd1576040519150601f19603f3d011682016040523d82523d6000602084013e611cd6565b606091505b5050905080611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190613a5b565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611d3861207d565b73ffffffffffffffffffffffffffffffffffffffff16611d56611421565b73ffffffffffffffffffffffffffffffffffffffff1614611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da3906138c1565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611df761207d565b73ffffffffffffffffffffffffffffffffffffffff16611e15611421565b73ffffffffffffffffffffffffffffffffffffffff1614611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e62906138c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed190613aed565b60405180910390fd5b611ee381612926565b50565b611eee61207d565b73ffffffffffffffffffffffffffffffffffffffff16611f0c611421565b73ffffffffffffffffffffffffffffffffffffffff1614611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f59906138c1565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b6000808303611fcb576000905061202d565b60008284611fd99190613b3c565b9050828482611fe89190613bc5565b14612028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201f90613c68565b60405180910390fd5b809150505b92915050565b600061207583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129ea565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120eb90613cfa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a90613d8c565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612241919061334f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361228857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122c157600080fd5b600082116122ce57600080fd5b601360149054906101000a900460ff16156122f5576122ee848484612a4d565b9050612813565b6000612300306111de565b9050600060115482101590508080156123265750601360149054906101000a900460ff16155b801561237c5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123945750601260009054906101000a900460ff165b80156123ea5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124405750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244f5761244e82612c20565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124f35750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561250b5750601260029054906101000a900460ff165b1561255657600f54841115612555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254c90613df8565b60405180910390fd5b5b6125df846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061262e8787612d2a565b6126425761263d878787612e95565b612644565b845b9050601260039054906101000a900460ff1680156126ac5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612711576010546126cf826126c1896111de565b6128c890919063ffffffff16565b1115612710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270790613e64565b60405180910390fd5b5b61276381600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612803919061334f565b60405180910390a3600193505050505b9392505050565b6000838311158290612862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285991906133fa565b60405180910390fd5b50600083856128719190613e84565b9050809150509392505050565b60006128c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061281a565b905092915050565b60008082846128d79190613eb8565b90508381101561291c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291390613f38565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290612a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2891906133fa565b60405180910390fd5b5060008385612a409190613bc5565b9050809150509392505050565b6000612ad8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6d82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c0d919061334f565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612c565760115490505b6000479050612c64826130ba565b6000612c79824761287e90919063ffffffff16565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612cc3906139fa565b60006040518083038185875af1925050503d8060008114612d00576040519150601f19603f3d011682016040523d82523d6000602084013e612d05565b606091505b505090505050506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612dcd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ddb5760019050612e8f565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e7c5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e8a5760009050612e8f565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f1a57612f13600754612f0560045486611fb990919063ffffffff16565b61203390919063ffffffff16565b9050612f99565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f9857612f95600754612f8760055486611fb990919063ffffffff16565b61203390919063ffffffff16565b90505b5b600081111561309d57612ff481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613094919061334f565b60405180910390a35b6130b0818461287e90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156130d7576130d6613f58565b5b6040519080825280602002602001820160405280156131055781602001602082028036833780820191505090505b509050308160008151811061311d5761311c613f87565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e89190613fcb565b816001815181106131fc576131fb613f87565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061326330601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612085565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132c79594939291906140f1565b600060405180830381600087803b1580156132e157600080fd5b505af11580156132f5573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161332a92919061414b565b60405180910390a15050565b6000819050919050565b61334981613336565b82525050565b60006020820190506133646000830184613340565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133a4578082015181840152602081019050613389565b60008484015250505050565b6000601f19601f8301169050919050565b60006133cc8261336a565b6133d68185613375565b93506133e6818560208601613386565b6133ef816133b0565b840191505092915050565b6000602082019050818103600083015261341481846133c1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061346161345c6134578461341c565b61343c565b61341c565b9050919050565b600061347382613446565b9050919050565b600061348582613468565b9050919050565b6134958161347a565b82525050565b60006020820190506134b0600083018461348c565b92915050565b60006134c18261341c565b9050919050565b6134d1816134b6565b82525050565b60006020820190506134ec60008301846134c8565b92915050565b600080fd5b613500816134b6565b811461350b57600080fd5b50565b60008135905061351d816134f7565b92915050565b61352c81613336565b811461353757600080fd5b50565b60008135905061354981613523565b92915050565b60008060408385031215613566576135656134f2565b5b60006135748582860161350e565b92505060206135858582860161353a565b9150509250929050565b60008115159050919050565b6135a48161358f565b82525050565b60006020820190506135bf600083018461359b565b92915050565b6000806000606084860312156135de576135dd6134f2565b5b60006135ec8682870161350e565b93505060206135fd8682870161350e565b925050604061360e8682870161353a565b9150509250925092565b600060ff82169050919050565b61362e81613618565b82525050565b60006020820190506136496000830184613625565b92915050565b600060208284031215613665576136646134f2565b5b60006136738482850161350e565b91505092915050565b6136858161358f565b811461369057600080fd5b50565b6000813590506136a28161367c565b92915050565b6000602082840312156136be576136bd6134f2565b5b60006136cc84828501613693565b91505092915050565b600080604083850312156136ec576136eb6134f2565b5b60006136fa8582860161353a565b925050602061370b8582860161353a565b9150509250929050565b60006020828403121561372b5761372a6134f2565b5b60006137398482850161353a565b91505092915050565b60008060408385031215613759576137586134f2565b5b60006137678582860161350e565b925050602061377885828601613693565b9150509250929050565b60008060006060848603121561379b5761379a6134f2565b5b60006137a98682870161353a565b93505060206137ba86828701613693565b92505060406137cb86828701613693565b9150509250925092565b600080604083850312156137ec576137eb6134f2565b5b60006137fa8582860161350e565b925050602061380b8582860161350e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061385c57607f821691505b60208210810361386f5761386e613815565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138ab602083613375565b91506138b682613875565b602082019050919050565b600060208201905081810360008301526138da8161389e565b9050919050565b60006040820190506138f660008301856134c8565b6139036020830184613340565b9392505050565b600081519050919050565b600081905092915050565b600061392b8261390a565b6139358185613915565b9350613945818560208601613386565b80840191505092915050565b600061395d8284613920565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b600061399e601483613375565b91506139a982613968565b602082019050919050565b600060208201905081810360008301526139cd81613991565b9050919050565b50565b60006139e4600083613915565b91506139ef826139d4565b600082019050919050565b6000613a05826139d7565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613a45601483613375565b9150613a5082613a0f565b602082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ad7602683613375565b9150613ae282613a7b565b604082019050919050565b60006020820190508181036000830152613b0681613aca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b4782613336565b9150613b5283613336565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b8b57613b8a613b0d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bd082613336565b9150613bdb83613336565b925082613beb57613bea613b96565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c52602183613375565b9150613c5d82613bf6565b604082019050919050565b60006020820190508181036000830152613c8181613c45565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ce4602483613375565b9150613cef82613c88565b604082019050919050565b60006020820190508181036000830152613d1381613cd7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d76602283613375565b9150613d8182613d1a565b604082019050919050565b60006020820190508181036000830152613da581613d69565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b6000613de2601383613375565b9150613ded82613dac565b602082019050919050565b60006020820190508181036000830152613e1181613dd5565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b6000613e4e600e83613375565b9150613e5982613e18565b602082019050919050565b60006020820190508181036000830152613e7d81613e41565b9050919050565b6000613e8f82613336565b9150613e9a83613336565b9250828203905081811115613eb257613eb1613b0d565b5b92915050565b6000613ec382613336565b9150613ece83613336565b9250828201905080821115613ee657613ee5613b0d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f22601b83613375565b9150613f2d82613eec565b602082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fc5816134f7565b92915050565b600060208284031215613fe157613fe06134f2565b5b6000613fef84828501613fb6565b91505092915050565b6000819050919050565b600061401d61401861401384613ff8565b61343c565b613336565b9050919050565b61402d81614002565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614068816134b6565b82525050565b600061407a838361405f565b60208301905092915050565b6000602082019050919050565b600061409e82614033565b6140a8818561403e565b93506140b38361404f565b8060005b838110156140e45781516140cb888261406e565b97506140d683614086565b9250506001810190506140b7565b5085935050505092915050565b600060a0820190506141066000830188613340565b6141136020830187614024565b81810360408301526141258186614093565b905061413460608301856134c8565b6141416080830184613340565b9695505050505050565b60006040820190506141606000830185613340565b81810360208301526141728184614093565b9050939250505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d1517c106ddf4eb3992b3f93e122bef3558d043783c16c7ddf585c62ccc6e28c64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102815760003560e01c806372ac24861161014f578063c16dd4a4116100c1578063e9fd33941161007a578063e9fd3394146109cb578063ee828db3146109f6578063f242ab4114610a1f578063f2fde38b14610a4a578063f71b9bbf14610a73578063f872858a14610a9c57610288565b8063c16dd4a4146108bf578063c867d60b146108e8578063cea9d26f14610925578063dd62ed3e1461094e578063df8408fe1461098b578063e6b2603b146109b457610288565b806395d89b411161011357806395d89b411461079d578063a457c2d7146107c8578063a9059cbb14610805578063ae85ade614610842578063b94b0aef1461086b578063c04a54141461089457610288565b806372ac2486146106b65780637d1db4a5146106df578063807c2d9c1461070a5780638b42507f146107355780638da5cb5b1461077257610288565b80633ecad271116101f35780635e42358c116101ac5780635e42358c146105ba578063651a8987146105e55780636ddd17131461060e57806370a0823114610639578063715018a614610676578063728d41c91461068d57610288565b80633ecad2711461049c5780634974d88f146104d957806352f7c988146105025780635342acb41461052b57806359fac517146105685780635c85974f1461059157610288565b806318160ddd1161024557806318160ddd1461037657806323b872dd146103a157806327c8f835146103de5780632b112e4914610409578063313ce56714610434578063395093511461045f57610288565b80630445b6671461028d57806306fdde03146102b85780630758d924146102e35780630930907b1461030e578063095ea7b31461033957610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610ac7565b6040516102af919061334f565b60405180910390f35b3480156102c457600080fd5b506102cd610acd565b6040516102da91906133fa565b60405180910390f35b3480156102ef57600080fd5b506102f8610b5f565b604051610305919061349b565b60405180910390f35b34801561031a57600080fd5b50610323610b85565b60405161033091906134d7565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b919061354f565b610ba9565b60405161036d91906135aa565b60405180910390f35b34801561038257600080fd5b5061038b610bc7565b604051610398919061334f565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c391906135c5565b610bd1565b6040516103d591906135aa565b60405180910390f35b3480156103ea57600080fd5b506103f3610cc8565b60405161040091906134d7565b60405180910390f35b34801561041557600080fd5b5061041e610cec565b60405161042b919061334f565b60405180910390f35b34801561044057600080fd5b50610449610d6a565b6040516104569190613634565b60405180910390f35b34801561046b57600080fd5b506104866004803603810190610481919061354f565b610d81565b60405161049391906135aa565b60405180910390f35b3480156104a857600080fd5b506104c360048036038101906104be919061364f565b610e34565b6040516104d091906135aa565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb91906136a8565b610e54565b005b34801561050e57600080fd5b50610529600480360381019061052491906136d5565b610eed565b005b34801561053757600080fd5b50610552600480360381019061054d919061364f565b610f7b565b60405161055f91906135aa565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a919061364f565b610f9b565b005b34801561059d57600080fd5b506105b860048036038101906105b39190613715565b61105b565b005b3480156105c657600080fd5b506105cf6110e1565b6040516105dc91906135aa565b60405180910390f35b3480156105f157600080fd5b5061060c60048036038101906106079190613742565b6110f4565b005b34801561061a57600080fd5b506106236111cb565b60405161063091906135aa565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b919061364f565b6111de565b60405161066d919061334f565b60405180910390f35b34801561068257600080fd5b5061068b611227565b005b34801561069957600080fd5b506106b460048036038101906106af9190613715565b6112af565b005b3480156106c257600080fd5b506106dd60048036038101906106d8919061364f565b611335565b005b3480156106eb57600080fd5b506106f46113f5565b604051610701919061334f565b60405180910390f35b34801561071657600080fd5b5061071f6113fb565b60405161072c919061334f565b60405180910390f35b34801561074157600080fd5b5061075c6004803603810190610757919061364f565b611401565b60405161076991906135aa565b60405180910390f35b34801561077e57600080fd5b50610787611421565b60405161079491906134d7565b60405180910390f35b3480156107a957600080fd5b506107b261144a565b6040516107bf91906133fa565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea919061354f565b6114dc565b6040516107fc91906135aa565b60405180910390f35b34801561081157600080fd5b5061082c6004803603810190610827919061354f565b6115a9565b60405161083991906135aa565b60405180910390f35b34801561084e57600080fd5b5061086960048036038101906108649190613742565b6115c8565b005b34801561087757600080fd5b50610892600480360381019061088d9190613782565b61169f565b005b3480156108a057600080fd5b506108a961175b565b6040516108b691906134d7565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e19190613742565b611781565b005b3480156108f457600080fd5b5061090f600480360381019061090a919061364f565b6118b6565b60405161091c91906135aa565b60405180910390f35b34801561093157600080fd5b5061094c600480360381019061094791906135c5565b6118d6565b005b34801561095a57600080fd5b50610975600480360381019061097091906137d5565b611a94565b604051610982919061334f565b60405180910390f35b34801561099757600080fd5b506109b260048036038101906109ad9190613742565b611b1b565b005b3480156109c057600080fd5b506109c9611bf2565b005b3480156109d757600080fd5b506109e0611d1d565b6040516109ed91906135aa565b60405180910390f35b348015610a0257600080fd5b50610a1d6004803603810190610a1891906136a8565b611d30565b005b348015610a2b57600080fd5b50610a34611dc9565b604051610a4191906134d7565b60405180910390f35b348015610a5657600080fd5b50610a716004803603810190610a6c919061364f565b611def565b005b348015610a7f57600080fd5b50610a9a6004803603810190610a95919061364f565b611ee6565b005b348015610aa857600080fd5b50610ab1611fa6565b604051610abe91906135aa565b60405180910390f35b60115481565b606060018054610adc90613844565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0890613844565b8015610b555780601f10610b2a57610100808354040283529160200191610b55565b820191906000526020600020905b815481529060010190602001808311610b3857829003601f168201915b5050505050905090565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610bbd610bb661207d565b8484612085565b6001905092915050565b6000600e54905090565b6000610bde84848461224e565b50610cbd84610beb61207d565b610cb8856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c6e61207d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b612085565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610d65610d1a7f00000000000000000000000000000000000000000000000000000000000000006111de565b610d57610d467f000000000000000000000000000000000000000000000000000000000000dead6111de565b600e5461287e90919063ffffffff16565b61287e90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610e2a610d8e61207d565b84610e258560096000610d9f61207d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b612085565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610e5c61207d565b73ffffffffffffffffffffffffffffffffffffffff16610e7a611421565b73ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec7906138c1565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b610ef561207d565b73ffffffffffffffffffffffffffffffffffffffff16610f13611421565b73ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f60906138c1565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b610fa361207d565b73ffffffffffffffffffffffffffffffffffffffff16610fc1611421565b73ffffffffffffffffffffffffffffffffffffffff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e906138c1565b60405180910390fd5b80601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61106361207d565b73ffffffffffffffffffffffffffffffffffffffff16611081611421565b73ffffffffffffffffffffffffffffffffffffffff16146110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce906138c1565b60405180910390fd5b80600f8190555050565b601260029054906101000a900460ff1681565b6110fc61207d565b73ffffffffffffffffffffffffffffffffffffffff1661111a611421565b73ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611167906138c1565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61122f61207d565b73ffffffffffffffffffffffffffffffffffffffff1661124d611421565b73ffffffffffffffffffffffffffffffffffffffff16146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a906138c1565b60405180910390fd5b6112ad6000612926565b565b6112b761207d565b73ffffffffffffffffffffffffffffffffffffffff166112d5611421565b73ffffffffffffffffffffffffffffffffffffffff161461132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906138c1565b60405180910390fd5b8060108190555050565b61133d61207d565b73ffffffffffffffffffffffffffffffffffffffff1661135b611421565b73ffffffffffffffffffffffffffffffffffffffff16146113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a8906138c1565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461145990613844565b80601f016020809104026020016040519081016040528092919081815260200182805461148590613844565b80156114d25780601f106114a7576101008083540402835291602001916114d2565b820191906000526020600020905b8154815290600101906020018083116114b557829003601f168201915b5050505050905090565b600061159f6114e961207d565b8461159a8560405180606001604052806025815260200161417c602591396009600061151361207d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b612085565b6001905092915050565b60006115bd6115b661207d565b848461224e565b506001905092915050565b6115d061207d565b73ffffffffffffffffffffffffffffffffffffffff166115ee611421565b73ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b906138c1565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6116a761207d565b73ffffffffffffffffffffffffffffffffffffffff166116c5611421565b73ffffffffffffffffffffffffffffffffffffffff161461171b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611712906138c1565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff02191690831515021790555082601181905550505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61178961207d565b73ffffffffffffffffffffffffffffffffffffffff166117a7611421565b73ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f4906138c1565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156118b25780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6118de61207d565b73ffffffffffffffffffffffffffffffffffffffff166118fc611421565b73ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611949906138c1565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff16838360405160240161197e9291906138e1565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a089190613951565b6000604051808303816000865af19150503d8060008114611a45576040519150601f19603f3d011682016040523d82523d6000602084013e611a4a565b606091505b5050905080611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a85906139b4565b60405180910390fd5b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b2361207d565b73ffffffffffffffffffffffffffffffffffffffff16611b41611421565b73ffffffffffffffffffffffffffffffffffffffff1614611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e906138c1565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bfa61207d565b73ffffffffffffffffffffffffffffffffffffffff16611c18611421565b73ffffffffffffffffffffffffffffffffffffffff1614611c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c65906138c1565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611c94906139fa565b60006040518083038185875af1925050503d8060008114611cd1576040519150601f19603f3d011682016040523d82523d6000602084013e611cd6565b606091505b5050905080611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190613a5b565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611d3861207d565b73ffffffffffffffffffffffffffffffffffffffff16611d56611421565b73ffffffffffffffffffffffffffffffffffffffff1614611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da3906138c1565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611df761207d565b73ffffffffffffffffffffffffffffffffffffffff16611e15611421565b73ffffffffffffffffffffffffffffffffffffffff1614611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e62906138c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed190613aed565b60405180910390fd5b611ee381612926565b50565b611eee61207d565b73ffffffffffffffffffffffffffffffffffffffff16611f0c611421565b73ffffffffffffffffffffffffffffffffffffffff1614611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f59906138c1565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b6000808303611fcb576000905061202d565b60008284611fd99190613b3c565b9050828482611fe89190613bc5565b14612028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201f90613c68565b60405180910390fd5b809150505b92915050565b600061207583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129ea565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120eb90613cfa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a90613d8c565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612241919061334f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361228857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122c157600080fd5b600082116122ce57600080fd5b601360149054906101000a900460ff16156122f5576122ee848484612a4d565b9050612813565b6000612300306111de565b9050600060115482101590508080156123265750601360149054906101000a900460ff16155b801561237c5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123945750601260009054906101000a900460ff165b80156123ea5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124405750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244f5761244e82612c20565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124f35750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561250b5750601260029054906101000a900460ff165b1561255657600f54841115612555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254c90613df8565b60405180910390fd5b5b6125df846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061262e8787612d2a565b6126425761263d878787612e95565b612644565b845b9050601260039054906101000a900460ff1680156126ac5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612711576010546126cf826126c1896111de565b6128c890919063ffffffff16565b1115612710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270790613e64565b60405180910390fd5b5b61276381600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612803919061334f565b60405180910390a3600193505050505b9392505050565b6000838311158290612862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285991906133fa565b60405180910390fd5b50600083856128719190613e84565b9050809150509392505050565b60006128c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061281a565b905092915050565b60008082846128d79190613eb8565b90508381101561291c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291390613f38565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290612a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2891906133fa565b60405180910390fd5b5060008385612a409190613bc5565b9050809150509392505050565b6000612ad8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6d82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c0d919061334f565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612c565760115490505b6000479050612c64826130ba565b6000612c79824761287e90919063ffffffff16565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612cc3906139fa565b60006040518083038185875af1925050503d8060008114612d00576040519150601f19603f3d011682016040523d82523d6000602084013e612d05565b606091505b505090505050506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612dcd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ddb5760019050612e8f565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e7c5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e8a5760009050612e8f565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f1a57612f13600754612f0560045486611fb990919063ffffffff16565b61203390919063ffffffff16565b9050612f99565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f9857612f95600754612f8760055486611fb990919063ffffffff16565b61203390919063ffffffff16565b90505b5b600081111561309d57612ff481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c890919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613094919061334f565b60405180910390a35b6130b0818461287e90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156130d7576130d6613f58565b5b6040519080825280602002602001820160405280156131055781602001602082028036833780820191505090505b509050308160008151811061311d5761311c613f87565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e89190613fcb565b816001815181106131fc576131fb613f87565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061326330601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612085565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132c79594939291906140f1565b600060405180830381600087803b1580156132e157600080fd5b505af11580156132f5573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161332a92919061414b565b60405180910390a15050565b6000819050919050565b61334981613336565b82525050565b60006020820190506133646000830184613340565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133a4578082015181840152602081019050613389565b60008484015250505050565b6000601f19601f8301169050919050565b60006133cc8261336a565b6133d68185613375565b93506133e6818560208601613386565b6133ef816133b0565b840191505092915050565b6000602082019050818103600083015261341481846133c1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061346161345c6134578461341c565b61343c565b61341c565b9050919050565b600061347382613446565b9050919050565b600061348582613468565b9050919050565b6134958161347a565b82525050565b60006020820190506134b0600083018461348c565b92915050565b60006134c18261341c565b9050919050565b6134d1816134b6565b82525050565b60006020820190506134ec60008301846134c8565b92915050565b600080fd5b613500816134b6565b811461350b57600080fd5b50565b60008135905061351d816134f7565b92915050565b61352c81613336565b811461353757600080fd5b50565b60008135905061354981613523565b92915050565b60008060408385031215613566576135656134f2565b5b60006135748582860161350e565b92505060206135858582860161353a565b9150509250929050565b60008115159050919050565b6135a48161358f565b82525050565b60006020820190506135bf600083018461359b565b92915050565b6000806000606084860312156135de576135dd6134f2565b5b60006135ec8682870161350e565b93505060206135fd8682870161350e565b925050604061360e8682870161353a565b9150509250925092565b600060ff82169050919050565b61362e81613618565b82525050565b60006020820190506136496000830184613625565b92915050565b600060208284031215613665576136646134f2565b5b60006136738482850161350e565b91505092915050565b6136858161358f565b811461369057600080fd5b50565b6000813590506136a28161367c565b92915050565b6000602082840312156136be576136bd6134f2565b5b60006136cc84828501613693565b91505092915050565b600080604083850312156136ec576136eb6134f2565b5b60006136fa8582860161353a565b925050602061370b8582860161353a565b9150509250929050565b60006020828403121561372b5761372a6134f2565b5b60006137398482850161353a565b91505092915050565b60008060408385031215613759576137586134f2565b5b60006137678582860161350e565b925050602061377885828601613693565b9150509250929050565b60008060006060848603121561379b5761379a6134f2565b5b60006137a98682870161353a565b93505060206137ba86828701613693565b92505060406137cb86828701613693565b9150509250925092565b600080604083850312156137ec576137eb6134f2565b5b60006137fa8582860161350e565b925050602061380b8582860161350e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061385c57607f821691505b60208210810361386f5761386e613815565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138ab602083613375565b91506138b682613875565b602082019050919050565b600060208201905081810360008301526138da8161389e565b9050919050565b60006040820190506138f660008301856134c8565b6139036020830184613340565b9392505050565b600081519050919050565b600081905092915050565b600061392b8261390a565b6139358185613915565b9350613945818560208601613386565b80840191505092915050565b600061395d8284613920565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b600061399e601483613375565b91506139a982613968565b602082019050919050565b600060208201905081810360008301526139cd81613991565b9050919050565b50565b60006139e4600083613915565b91506139ef826139d4565b600082019050919050565b6000613a05826139d7565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613a45601483613375565b9150613a5082613a0f565b602082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ad7602683613375565b9150613ae282613a7b565b604082019050919050565b60006020820190508181036000830152613b0681613aca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b4782613336565b9150613b5283613336565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b8b57613b8a613b0d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bd082613336565b9150613bdb83613336565b925082613beb57613bea613b96565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c52602183613375565b9150613c5d82613bf6565b604082019050919050565b60006020820190508181036000830152613c8181613c45565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ce4602483613375565b9150613cef82613c88565b604082019050919050565b60006020820190508181036000830152613d1381613cd7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d76602283613375565b9150613d8182613d1a565b604082019050919050565b60006020820190508181036000830152613da581613d69565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b6000613de2601383613375565b9150613ded82613dac565b602082019050919050565b60006020820190508181036000830152613e1181613dd5565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b6000613e4e600e83613375565b9150613e5982613e18565b602082019050919050565b60006020820190508181036000830152613e7d81613e41565b9050919050565b6000613e8f82613336565b9150613e9a83613336565b9250828203905081811115613eb257613eb1613b0d565b5b92915050565b6000613ec382613336565b9150613ece83613336565b9250828201905080821115613ee657613ee5613b0d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f22601b83613375565b9150613f2d82613eec565b602082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fc5816134f7565b92915050565b600060208284031215613fe157613fe06134f2565b5b6000613fef84828501613fb6565b91505092915050565b6000819050919050565b600061401d61401861401384613ff8565b61343c565b613336565b9050919050565b61402d81614002565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614068816134b6565b82525050565b600061407a838361405f565b60208301905092915050565b6000602082019050919050565b600061409e82614033565b6140a8818561403e565b93506140b38361404f565b8060005b838110156140e45781516140cb888261406e565b97506140d683614086565b9250506001810190506140b7565b5085935050505092915050565b600060a0820190506141066000830188613340565b6141136020830187614024565b81810360408301526141258186614093565b905061413460608301856134c8565b6141416080830184613340565b9695505050505050565b60006040820190506141606000830185613340565b81810360208301526141728184614093565b9050939250505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d1517c106ddf4eb3992b3f93e122bef3558d043783c16c7ddf585c62ccc6e28c64736f6c63430008100033

Deployed Bytecode Sourcemap

10412:11719:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11549:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13385:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11770:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10697:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14723:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13662:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15497:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10609:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14056:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13571:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14220:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11158:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20480:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21538:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11101:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21910:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21101:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11687:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20723:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11612:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13770:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5080:94;;;;;;;;;;;;;:::i;:::-;;20987:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21422:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11395:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11471:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11269:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4771:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13476;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14446:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15322:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20859:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21673:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10846:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21210:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11210:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20094:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13901:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20593:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19908:178;;;;;;;;;;;;;:::i;:::-;;11649:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20374:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11808:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5182:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22033:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11726:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11549:54;;;;:::o;13385:83::-;13422:13;13455:5;13448:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13385:83;:::o;11770:31::-;;;;;;;;;;;;;:::o;10697:81::-;;;:::o;14723:161::-;14798:4;14815:39;14824:12;:10;:12::i;:::-;14838:7;14847:6;14815:8;:39::i;:::-;14872:4;14865:11;;14723:161;;;;:::o;13662:100::-;13715:7;13742:12;;13735:19;;13662:100;:::o;15497:297::-;15595:4;15612:36;15622:6;15630:9;15641:6;15612:9;:36::i;:::-;;15659:105;15668:6;15676:12;:10;:12::i;:::-;15690:73;15728:6;15690:73;;;;;;;;;;;;;;;;;:11;:19;15702:6;15690:19;;;;;;;;;;;;;;;:33;15710:12;:10;:12::i;:::-;15690:33;;;;;;;;;;;;;;;;:37;;:73;;;;;:::i;:::-;15659:8;:105::i;:::-;15782:4;15775:11;;15497:297;;;;;:::o;10609:81::-;;;:::o;14056:156::-;14109:7;14136:68;14181:22;14191:11;14181:9;:22::i;:::-;14136:40;14153:22;14163:11;14153:9;:22::i;:::-;14136:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;14129:75;;14056:156;:::o;13571:83::-;13612:5;13637:9;;;;;;;;;;;13630:16;;13571:83;:::o;14220:218::-;14308:4;14325:83;14334:12;:10;:12::i;:::-;14348:7;14357:50;14396:10;14357:11;:25;14369:12;:10;:12::i;:::-;14357:25;;;;;;;;;;;;;;;:34;14383:7;14357:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;14325:8;:83::i;:::-;14426:4;14419:11;;14220:218;;;;:::o;11158:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;20480:105::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20570:7:::1;20551:16;;:26;;;;;;;;;;;;;;;;;;20480:105:::0;:::o;21538:118::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21617:4:::1;21607:7;:14;;;;21643:5;21632:8;:16;;;;21538:118:::0;;:::o;11101:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;21910:115::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22009:7:::1;21982:9;;:35;;;;;;;;;;;;;;;;;;21910:115:::0;:::o;21101:101::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21186:8:::1;21171:12;:23;;;;21101:101:::0;:::o;11687:32::-;;;;;;;;;;;;;:::o;20723:128::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20836:7:::1;20808:19;:25;20828:4;20808:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20723:128:::0;;:::o;11612:30::-;;;;;;;;;;;;;:::o;13770:123::-;13836:7;13862:9;:18;13872:7;13862:18;;;;;;;;;;;;;;;;13855:25;;13770:123;;;:::o;5080:94::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5145:21:::1;5163:1;5145:9;:21::i;:::-;5080:94::o:0;20987:106::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21077:8:::1;21064:10;:21;;;;20987:106:::0;:::o;21422:108::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21517:5:::1;21497:17;;:25;;;;;;;;;;;;;;;;;;21422:108:::0;:::o;11395:59::-;;;;:::o;11471:56::-;;;;:::o;11269:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;4771:87::-;4817:7;4844:6;;;;;;;;;;;4837:13;;4771:87;:::o;13476:::-;13515:13;13548:7;13541:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13476:87;:::o;14446:269::-;14539:4;14556:129;14565:12;:10;:12::i;:::-;14579:7;14588:96;14627:15;14588:96;;;;;;;;;;;;;;;;;:11;:25;14600:12;:10;:12::i;:::-;14588:25;;;;;;;;;;;;;;;:34;14614:7;14588:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;14556:8;:129::i;:::-;14703:4;14696:11;;14446:269;;;;:::o;15322:167::-;15400:4;15417:42;15427:12;:10;:12::i;:::-;15441:9;15452:6;15417:9;:42::i;:::-;;15477:4;15470:11;;15322:167;;;;:::o;20859:120::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20964:7:::1;20940:15;:21;20956:4;20940:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;20859:120:::0;;:::o;21673:229::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21816:8:::1;21802:11;;:22;;;;;;;;;;;;;;;;;;21849:8;21835:11;;:22;;;;;;;;;;;;;;;;;;21884:10;21868:13;:26;;;;21673:229:::0;;;:::o;10846:86::-;;;;;;;;;;;;;:::o;21210:204::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21314:7:::1;21292:12;:19;21305:5;21292:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21335:7;21332:75;;;21388:7;21359:19;:26;21379:5;21359:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;21332:75;21210:204:::0;;:::o;11210:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;20094:272::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20194:12:::1;20220:6;20212:20;;20287:9;20298:7;20233:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20212:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20193:114;;;20326:7;20318:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;20182:184;20094:272:::0;;;:::o;13901:143::-;13982:7;14009:11;:18;14021:5;14009:18;;;;;;;;;;;;;;;:27;14028:7;14009:27;;;;;;;;;;;;;;;;14002:34;;13901:143;;;;:::o;20593:122::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20700:7:::1;20674:17;:23;20692:4;20674:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20593:122:::0;;:::o;19908:178::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19963:7:::1;19983:10;19975:24;;20007:21;19975:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19962:71;;;20052:2;20044:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;19950:136;19908:178::o:0;11649:31::-;;;;;;;;;;;;;:::o;20374:98::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20457:7:::1;20441:13;;:23;;;;;;;;;;;;;;;;;;20374:98:::0;:::o;11808:22::-;;;;;;;;;;;;;:::o;5182:229::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5305:1:::1;5285:22;;:8;:22;;::::0;5263:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5384:19;5394:8;5384:9;:19::i;:::-;5182:229:::0;:::o;22033:91::-;5003:12;:10;:12::i;:::-;4992:23;;:7;:5;:7::i;:::-;:23;;;4984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22111:5:::1;22101:7;;:15;;;;;;;;;;;;;;;;;;22033:91:::0;:::o;11726:35::-;;;;;;;;;;;;;:::o;6158:250::-;6216:7;6245:1;6240;:6;6236:47;;6270:1;6263:8;;;;6236:47;6295:9;6311:1;6307;:5;;;;:::i;:::-;6295:17;;6340:1;6335;6331;:5;;;;:::i;:::-;:10;6323:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6399:1;6392:8;;;6158:250;;;;;:::o;6416:132::-;6474:7;6501:39;6505:1;6508;6501:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6494:46;;6416:132;;;;:::o;3338:98::-;3391:7;3418:10;3411:17;;3338:98;:::o;14892:337::-;15002:1;14985:19;;:5;:19;;;14977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15083:1;15064:21;;:7;:21;;;15056:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15167:6;15137:11;:18;15149:5;15137:18;;;;;;;;;;;;;;;:27;15156:7;15137:27;;;;;;;;;;;;;;;:36;;;;15205:7;15189:32;;15198:5;15189:32;;;15214:6;15189:32;;;;;;:::i;:::-;;;;;;;;14892:337;;;:::o;15802:1606::-;15889:4;15934:1;15916:20;;:6;:20;;;15908:29;;;;;;15977:1;15956:23;;:9;:23;;;15948:32;;;;;;16008:1;15999:6;:10;15991:19;;;;;;16031:6;;;;;;;;;;;16027:1372;;;16061:41;16076:6;16084:9;16095:6;16061:14;:41::i;:::-;16054:48;;;;16027:1372;16146:28;16177:24;16195:4;16177:9;:24::i;:::-;16146:55;;16216:28;16271:13;;16247:20;:37;;16216:68;;16323:23;:52;;;;;16369:6;;;;;;;;;;;16368:7;16323:52;:95;;;;;16398:12;:20;16411:6;16398:20;;;;;;;;;;;;;;;;;;;;;;;;;16397:21;16323:95;:128;;;;;16440:11;;;;;;;;;;;16323:128;:175;;;;;16473:17;:25;16491:6;16473:25;;;;;;;;;;;;;;;;;;;;;;;;;16472:26;16323:175;:225;;;;;16520:17;:28;16538:9;16520:28;;;;;;;;;;;;;;;;;;;;;;;;;16519:29;16323:225;16301:332;;;16587:30;16596:20;16587:8;:30::i;:::-;16301:332;16653:15;:23;16669:6;16653:23;;;;;;;;;;;;;;;;;;;;;;;;;16652:24;:55;;;;;16681:15;:26;16697:9;16681:26;;;;;;;;;;;;;;;;;;;;;;;;;16680:27;16652:55;:72;;;;;16711:13;;;;;;;;;;;16652:72;16649:166;;;16763:12;;16753:6;:22;;16745:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16649:166;16864:53;16886:6;16864:53;;;;;;;;;;;;;;;;;:9;:17;16874:6;16864:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16844:9;:17;16854:6;16844:17;;;;;;;;;;;;;;;:73;;;;16934:19;16956:34;16973:6;16980:9;16956:16;:34::i;:::-;:80;;17002:34;17010:6;17018:9;17029:6;17002:7;:34::i;:::-;16956:80;;;16993:6;16956:80;16934:102;;17056:16;;;;;;;;;;;:51;;;;;17077:19;:30;17097:9;17077:30;;;;;;;;;;;;;;;;;;;;;;;;;17076:31;17056:51;17053:168;;;17177:10;;17136:37;17161:11;17136:20;17146:9;17136;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;17128:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;17053:168;17260:37;17285:11;17260:9;:20;17270:9;17260:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;17237:9;:20;17247:9;17237:20;;;;;;;;;;;;;;;:60;;;;17336:9;17319:40;;17328:6;17319:40;;;17347:11;17319:40;;;;;;:::i;:::-;;;;;;;;17381:4;17374:11;;;;;15802:1606;;;;;;:::o;5958:192::-;6044:7;6077:1;6072;:6;;6080:12;6064:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6104:9;6120:1;6116;:5;;;;:::i;:::-;6104:17;;6141:1;6134:8;;;5958:192;;;;;:::o;5814:136::-;5872:7;5899:43;5903:1;5906;5899:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5892:50;;5814:136;;;;:::o;5625:181::-;5683:7;5703:9;5719:1;5715;:5;;;;:::i;:::-;5703:17;;5744:1;5739;:6;;5731:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5797:1;5790:8;;;5625:181;;;;:::o;5419:173::-;5475:16;5494:6;;;;;;;;;;;5475:25;;5520:8;5511:6;;:17;;;;;;;;;;;;;;;;;;5575:8;5544:40;;5565:8;5544:40;;;;;;;;;;;;5464:128;5419:173;:::o;6556:278::-;6642:7;6674:1;6670;:5;6677:12;6662:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6701:9;6717:1;6713;:5;;;;:::i;:::-;6701:17;;6825:1;6818:8;;;6556:278;;;;;:::o;17416:330::-;17509:4;17546:53;17568:6;17546:53;;;;;;;;;;;;;;;;;:9;:17;17556:6;17546:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17526:9;:17;17536:6;17526:17;;;;;;;;;;;;;;;:73;;;;17633:32;17658:6;17633:9;:20;17643:9;17633:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17610:9;:20;17620:9;17610:20;;;;;;;;;;;;;;;:55;;;;17698:9;17681:35;;17690:6;17681:35;;;17709:6;17681:35;;;;;;:::i;:::-;;;;;;;;17734:4;17727:11;;17416:330;;;;;:::o;18835:409::-;11899:4;11890:6;;:13;;;;;;;;;;;;;;;;;;18909:11:::1;;;;;;;;;;;18906:47;;;18940:13;;18922:31;;18906:47;18966:22;18991:21;18966:46;;19023:33;19040:15;19023:16;:33::i;:::-;19067:22;19092:41;19118:14;19092:21;:25;;:41;;;;:::i;:::-;19067:66;;19147:7;19167:17;;;;;;;;;;;19159:31;;19198:14;19159:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19146:71;;;18893:351;;;11935:5:::0;11926:6;;:14;;;;;;;;;;;;;;;;;;18835:409;:::o;17758:369::-;17842:4;17862:17;:25;17880:6;17862:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;17891:17;:28;17909:9;17891:28;;;;;;;;;;;;;;;;;;;;;;;;;17862:57;17859:261;;;17943:4;17936:11;;;;17859:261;17978:12;:20;17991:6;17978:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;18002:12;:23;18015:9;18002:23;;;;;;;;;;;;;;;;;;;;;;;;;17978:47;17974:146;;;18049:5;18042:12;;;;17974:146;18103:5;18096:12;;17758:369;;;;;:::o;18135:692::-;18221:7;18251:14;18308:12;:20;18321:6;18308:20;;;;;;;;;;;;;;;;;;;;;;;;;18305:248;;;18362:39;18386:14;;18362:19;18373:7;;18362:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;18350:51;;18305:248;;;18440:12;:23;18453:9;18440:23;;;;;;;;;;;;;;;;;;;;;;;;;18437:116;;;18497:40;18522:14;;18497:20;18508:8;;18497:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;18485:52;;18437:116;18305:248;18584:1;18572:9;:13;18569:185;;;18633:39;18662:9;18633;:24;18651:4;18633:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18606:9;:24;18624:4;18606:24;;;;;;;;;;;;;;;:66;;;;18721:4;18696:42;;18705:6;18696:42;;;18728:9;18696:42;;;;;;:::i;:::-;;;;;;;;18569:185;18777:21;18788:9;18777:6;:10;;:21;;;;:::i;:::-;18770:28;;;18135:692;;;;;:::o;19252:648::-;19378:21;19416:1;19402:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19378:40;;19447:4;19429;19434:1;19429:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19473:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19463:4;19468:1;19463:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;19502:56;19519:4;19534:9;;;;;;;;;;;19546:11;19502:8;:56::i;:::-;19597:9;;;;;;;;;;;:60;;;19672:11;19698:1;19742:4;19769;19805:15;19597:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19857:35;19874:11;19887:4;19857:35;;;;;;;:::i;:::-;;;;;;;;19307:593;19252:648;:::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:474::-;7151:6;7159;7208:2;7196:9;7187:7;7183:23;7179:32;7176:119;;;7214:79;;:::i;:::-;7176:119;7334:1;7359:53;7404:7;7395:6;7384:9;7380:22;7359:53;:::i;:::-;7349:63;;7305:117;7461:2;7487:53;7532:7;7523:6;7512:9;7508:22;7487:53;:::i;:::-;7477:63;;7432:118;7083:474;;;;;:::o;7563:329::-;7622:6;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7563:329;;;;:::o;7898:468::-;7963:6;7971;8020:2;8008:9;7999:7;7995:23;7991:32;7988:119;;;8026:79;;:::i;:::-;7988:119;8146:1;8171:53;8216:7;8207:6;8196:9;8192:22;8171:53;:::i;:::-;8161:63;;8117:117;8273:2;8299:50;8341:7;8332:6;8321:9;8317:22;8299:50;:::i;:::-;8289:60;;8244:115;7898:468;;;;;:::o;8372:607::-;8443:6;8451;8459;8508:2;8496:9;8487:7;8483:23;8479:32;8476:119;;;8514:79;;:::i;:::-;8476:119;8634:1;8659:53;8704:7;8695:6;8684:9;8680:22;8659:53;:::i;:::-;8649:63;;8605:117;8761:2;8787:50;8829:7;8820:6;8809:9;8805:22;8787:50;:::i;:::-;8777:60;;8732:115;8886:2;8912:50;8954:7;8945:6;8934:9;8930:22;8912:50;:::i;:::-;8902:60;;8857:115;8372:607;;;;;:::o;8985:474::-;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:332::-;11083:4;11121:2;11110:9;11106:18;11098:26;;11134:71;11202:1;11191:9;11187:17;11178:6;11134:71;:::i;:::-;11215:72;11283:2;11272:9;11268:18;11259:6;11215:72;:::i;:::-;10962:332;;;;;:::o;11300:98::-;11351:6;11385:5;11379:12;11369:22;;11300:98;;;:::o;11404:147::-;11505:11;11542:3;11527:18;;11404:147;;;;:::o;11557:386::-;11661:3;11689:38;11721:5;11689:38;:::i;:::-;11743:88;11824:6;11819:3;11743:88;:::i;:::-;11736:95;;11840:65;11898:6;11893:3;11886:4;11879:5;11875:16;11840:65;:::i;:::-;11930:6;11925:3;11921:16;11914:23;;11665:278;11557:386;;;;:::o;11949:271::-;12079:3;12101:93;12190:3;12181:6;12101:93;:::i;:::-;12094:100;;12211:3;12204:10;;11949:271;;;;:::o;12226:170::-;12366:22;12362:1;12354:6;12350:14;12343:46;12226:170;:::o;12402:366::-;12544:3;12565:67;12629:2;12624:3;12565:67;:::i;:::-;12558:74;;12641:93;12730:3;12641:93;:::i;:::-;12759:2;12754:3;12750:12;12743:19;;12402:366;;;:::o;12774:419::-;12940:4;12978:2;12967:9;12963:18;12955:26;;13027:9;13021:4;13017:20;13013:1;13002:9;12998:17;12991:47;13055:131;13181:4;13055:131;:::i;:::-;13047:139;;12774:419;;;:::o;13199:114::-;;:::o;13319:398::-;13478:3;13499:83;13580:1;13575:3;13499:83;:::i;:::-;13492:90;;13591:93;13680:3;13591:93;:::i;:::-;13709:1;13704:3;13700:11;13693:18;;13319:398;;;:::o;13723:379::-;13907:3;13929:147;14072:3;13929:147;:::i;:::-;13922:154;;14093:3;14086:10;;13723:379;;;:::o;14108:170::-;14248:22;14244:1;14236:6;14232:14;14225:46;14108:170;:::o;14284:366::-;14426:3;14447:67;14511:2;14506:3;14447:67;:::i;:::-;14440:74;;14523:93;14612:3;14523:93;:::i;:::-;14641:2;14636:3;14632:12;14625:19;;14284:366;;;:::o;14656:419::-;14822:4;14860:2;14849:9;14845:18;14837:26;;14909:9;14903:4;14899:20;14895:1;14884:9;14880:17;14873:47;14937:131;15063:4;14937:131;:::i;:::-;14929:139;;14656:419;;;:::o;15081:225::-;15221:34;15217:1;15209:6;15205:14;15198:58;15290:8;15285:2;15277:6;15273:15;15266:33;15081:225;:::o;15312:366::-;15454:3;15475:67;15539:2;15534:3;15475:67;:::i;:::-;15468:74;;15551:93;15640:3;15551:93;:::i;:::-;15669:2;15664:3;15660:12;15653:19;;15312:366;;;:::o;15684:419::-;15850:4;15888:2;15877:9;15873:18;15865:26;;15937:9;15931:4;15927:20;15923:1;15912:9;15908:17;15901:47;15965:131;16091:4;15965:131;:::i;:::-;15957:139;;15684:419;;;:::o;16109:180::-;16157:77;16154:1;16147:88;16254:4;16251:1;16244:15;16278:4;16275:1;16268:15;16295:348;16335:7;16358:20;16376:1;16358:20;:::i;:::-;16353:25;;16392:20;16410:1;16392:20;:::i;:::-;16387:25;;16580:1;16512:66;16508:74;16505:1;16502:81;16497:1;16490:9;16483:17;16479:105;16476:131;;;16587:18;;:::i;:::-;16476:131;16635:1;16632;16628:9;16617:20;;16295:348;;;;:::o;16649:180::-;16697:77;16694:1;16687:88;16794:4;16791:1;16784:15;16818:4;16815:1;16808:15;16835:185;16875:1;16892:20;16910:1;16892:20;:::i;:::-;16887:25;;16926:20;16944:1;16926:20;:::i;:::-;16921:25;;16965:1;16955:35;;16970:18;;:::i;:::-;16955:35;17012:1;17009;17005:9;17000:14;;16835:185;;;;:::o;17026:220::-;17166:34;17162:1;17154:6;17150:14;17143:58;17235:3;17230:2;17222:6;17218:15;17211:28;17026:220;:::o;17252:366::-;17394:3;17415:67;17479:2;17474:3;17415:67;:::i;:::-;17408:74;;17491:93;17580:3;17491:93;:::i;:::-;17609:2;17604:3;17600:12;17593:19;;17252:366;;;:::o;17624:419::-;17790:4;17828:2;17817:9;17813:18;17805:26;;17877:9;17871:4;17867:20;17863:1;17852:9;17848:17;17841:47;17905:131;18031:4;17905:131;:::i;:::-;17897:139;;17624:419;;;:::o;18049:223::-;18189:34;18185:1;18177:6;18173:14;18166:58;18258:6;18253:2;18245:6;18241:15;18234:31;18049:223;:::o;18278:366::-;18420:3;18441:67;18505:2;18500:3;18441:67;:::i;:::-;18434:74;;18517:93;18606:3;18517:93;:::i;:::-;18635:2;18630:3;18626:12;18619:19;;18278:366;;;:::o;18650:419::-;18816:4;18854:2;18843:9;18839:18;18831:26;;18903:9;18897:4;18893:20;18889:1;18878:9;18874:17;18867:47;18931:131;19057:4;18931:131;:::i;:::-;18923:139;;18650:419;;;:::o;19075:221::-;19215:34;19211:1;19203:6;19199:14;19192:58;19284:4;19279:2;19271:6;19267:15;19260:29;19075:221;:::o;19302:366::-;19444:3;19465:67;19529:2;19524:3;19465:67;:::i;:::-;19458:74;;19541:93;19630:3;19541:93;:::i;:::-;19659:2;19654:3;19650:12;19643:19;;19302:366;;;:::o;19674:419::-;19840:4;19878:2;19867:9;19863:18;19855:26;;19927:9;19921:4;19917:20;19913:1;19902:9;19898:17;19891:47;19955:131;20081:4;19955:131;:::i;:::-;19947:139;;19674:419;;;:::o;20099:169::-;20239:21;20235:1;20227:6;20223:14;20216:45;20099:169;:::o;20274:366::-;20416:3;20437:67;20501:2;20496:3;20437:67;:::i;:::-;20430:74;;20513:93;20602:3;20513:93;:::i;:::-;20631:2;20626:3;20622:12;20615:19;;20274:366;;;:::o;20646:419::-;20812:4;20850:2;20839:9;20835:18;20827:26;;20899:9;20893:4;20889:20;20885:1;20874:9;20870:17;20863:47;20927:131;21053:4;20927:131;:::i;:::-;20919:139;;20646:419;;;:::o;21071:164::-;21211:16;21207:1;21199:6;21195:14;21188:40;21071:164;:::o;21241:366::-;21383:3;21404:67;21468:2;21463:3;21404:67;:::i;:::-;21397:74;;21480:93;21569:3;21480:93;:::i;:::-;21598:2;21593:3;21589:12;21582:19;;21241:366;;;:::o;21613:419::-;21779:4;21817:2;21806:9;21802:18;21794:26;;21866:9;21860:4;21856:20;21852:1;21841:9;21837:17;21830:47;21894:131;22020:4;21894:131;:::i;:::-;21886:139;;21613:419;;;:::o;22038:194::-;22078:4;22098:20;22116:1;22098:20;:::i;:::-;22093:25;;22132:20;22150:1;22132:20;:::i;:::-;22127:25;;22176:1;22173;22169:9;22161:17;;22200:1;22194:4;22191:11;22188:37;;;22205:18;;:::i;:::-;22188:37;22038:194;;;;:::o;22238:191::-;22278:3;22297:20;22315:1;22297:20;:::i;:::-;22292:25;;22331:20;22349:1;22331:20;:::i;:::-;22326:25;;22374:1;22371;22367:9;22360:16;;22395:3;22392:1;22389:10;22386:36;;;22402:18;;:::i;:::-;22386:36;22238:191;;;;:::o;22435:177::-;22575:29;22571:1;22563:6;22559:14;22552:53;22435:177;:::o;22618:366::-;22760:3;22781:67;22845:2;22840:3;22781:67;:::i;:::-;22774:74;;22857:93;22946:3;22857:93;:::i;:::-;22975:2;22970:3;22966:12;22959:19;;22618:366;;;:::o;22990:419::-;23156:4;23194:2;23183:9;23179:18;23171:26;;23243:9;23237:4;23233:20;23229:1;23218:9;23214:17;23207:47;23271:131;23397:4;23271:131;:::i;:::-;23263:139;;22990:419;;;:::o;23415:180::-;23463:77;23460:1;23453:88;23560:4;23557:1;23550:15;23584:4;23581:1;23574:15;23601:180;23649:77;23646:1;23639:88;23746:4;23743:1;23736:15;23770:4;23767:1;23760:15;23787:143;23844:5;23875:6;23869:13;23860:22;;23891:33;23918:5;23891:33;:::i;:::-;23787:143;;;;:::o;23936:351::-;24006:6;24055:2;24043:9;24034:7;24030:23;24026:32;24023:119;;;24061:79;;:::i;:::-;24023:119;24181:1;24206:64;24262:7;24253:6;24242:9;24238:22;24206:64;:::i;:::-;24196:74;;24152:128;23936:351;;;;:::o;24293:85::-;24338:7;24367:5;24356:16;;24293:85;;;:::o;24384:158::-;24442:9;24475:61;24493:42;24502:32;24528:5;24502:32;:::i;:::-;24493:42;:::i;:::-;24475:61;:::i;:::-;24462:74;;24384:158;;;:::o;24548:147::-;24643:45;24682:5;24643:45;:::i;:::-;24638:3;24631:58;24548:147;;:::o;24701:114::-;24768:6;24802:5;24796:12;24786:22;;24701:114;;;:::o;24821:184::-;24920:11;24954:6;24949:3;24942:19;24994:4;24989:3;24985:14;24970:29;;24821:184;;;;:::o;25011:132::-;25078:4;25101:3;25093:11;;25131:4;25126:3;25122:14;25114:22;;25011:132;;;:::o;25149:108::-;25226:24;25244:5;25226:24;:::i;:::-;25221:3;25214:37;25149:108;;:::o;25263:179::-;25332:10;25353:46;25395:3;25387:6;25353:46;:::i;:::-;25431:4;25426:3;25422:14;25408:28;;25263:179;;;;:::o;25448:113::-;25518:4;25550;25545:3;25541:14;25533:22;;25448:113;;;:::o;25597:732::-;25716:3;25745:54;25793:5;25745:54;:::i;:::-;25815:86;25894:6;25889:3;25815:86;:::i;:::-;25808:93;;25925:56;25975:5;25925:56;:::i;:::-;26004:7;26035:1;26020:284;26045:6;26042:1;26039:13;26020:284;;;26121:6;26115:13;26148:63;26207:3;26192:13;26148:63;:::i;:::-;26141:70;;26234:60;26287:6;26234:60;:::i;:::-;26224:70;;26080:224;26067:1;26064;26060:9;26055:14;;26020:284;;;26024:14;26320:3;26313:10;;25721:608;;;25597:732;;;;:::o;26335:831::-;26598:4;26636:3;26625:9;26621:19;26613:27;;26650:71;26718:1;26707:9;26703:17;26694:6;26650:71;:::i;:::-;26731:80;26807:2;26796:9;26792:18;26783:6;26731:80;:::i;:::-;26858:9;26852:4;26848:20;26843:2;26832:9;26828:18;26821:48;26886:108;26989:4;26980:6;26886:108;:::i;:::-;26878:116;;27004:72;27072:2;27061:9;27057:18;27048:6;27004:72;:::i;:::-;27086:73;27154:3;27143:9;27139:19;27130:6;27086:73;:::i;:::-;26335:831;;;;;;;;:::o;27172:483::-;27343:4;27381:2;27370:9;27366:18;27358:26;;27394:71;27462:1;27451:9;27447:17;27438:6;27394:71;:::i;:::-;27512:9;27506:4;27502:20;27497:2;27486:9;27482:18;27475:48;27540:108;27643:4;27634:6;27540:108;:::i;:::-;27532:116;;27172:483;;;;;:::o

Swarm Source

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