ETH Price: $3,804.22 (+5.27%)

Token

ERC-20: Libra Inu (⚖️)
 

Overview

Max Total Supply

1,000,000,000 ⚖️

Holders

129

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,919,607.074121780127942827 ⚖️

Value
$0.00
0xece6f0edd246d43c1920f0f9e951292986ace544
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:
Libra

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
      
                   ██████                                        
   ██          ████  ██  ████          ██                        
     ██████████      ██      ██████████                          
       ██            ██            ██                            
     ██  ██          ██          ██  ██                          
   ██      ██        ██        ██      ██                        
 ██████████████      ██      ██████████████                      
   ██████████      ██████      ██████████                        
     ██████      ██████████      ██████                          
               ██████████████                                    
  
          __   _______  ___  ___ 
         / /  /  _/ _ )/ _ \/ _ |
        / /___/ // _  / , _/ __ |
       /____/___/____/_/|_/_/ |_|
                                 
TELEGRAM : https://t.me/librainu                                                                                                                      

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

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

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

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

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

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

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

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

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

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract Libra is Context, IERC20, Ownable {

    using SafeMath for uint256;

    address public developmentWallet;
    
    string private _name = "Libra Inu";
    string private _symbol = unicode"⚖️";
    uint8 private _decimals = 18; 
    uint256 private _totalSupply = 1000_000_000 * 10**_decimals;
    uint256 public _maxTxAmount =  _totalSupply.mul(2).div(100);     // 2%
    uint256 public _walletMax = _totalSupply.mul(2).div(100);        // 2%
    uint256 feedenominator = 100;

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

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

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

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

    uint public buyTax = 25;
    uint public sellTax = 25;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool public tradingEnable; 
    uint256 public launchedAt;

    bool inSwap;

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

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

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

    constructor() {

        developmentWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

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

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

        isMarketPair[address(dexPair)] = true;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        }

    }

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

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

        unchecked {

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

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

            return amount.sub(feeAmount);
        }
        
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

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

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

    }


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        tradingEnable = true;
        launchedAt = block.timestamp;
    }

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

}

Contract Security Audit

Contract ABI

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

60c06040526040518060400160405280600981526020017f4c6962726120496e750000000000000000000000000000000000000000000000815250600290816200004a9190620010af565b506040518060400160405280600681526020017fe29a96efb88f000000000000000000000000000000000000000000000000000081525060039081620000919190620010af565b50601260045f6101000a81548160ff021916908360ff16021790555060045f9054906101000a900460ff16600a620000ca91906200131c565b633b9aca00620000db91906200136c565b6005556200010b6064620000fc600260055462000c4c60201b90919060201c565b62000ccc60201b90919060201c565b6006556200013b60646200012c600260055462000c4c60201b90919060201c565b62000ccc60201b90919060201c565b600755606460085562000170606462000161600160055462000c4c60201b90919060201c565b62000ccc60201b90919060201c565b600f55600160105f6101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff0219169083151502179055506001601060036101000a81548160ff0219169083151502179055506019601155601960125561dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152503480156200025c575f80fd5b506200027d6200027162000d1d60201b60201c565b62000d2460201b60201c565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034591906200141b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d191906200141b565b6040518363ffffffff1660e01b8152600401620003f09291906200145c565b6020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200141b565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f19600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f19600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c3d919062001498565b60405180910390a35062001657565b5f80830362000c5e575f905062000cc6565b5f828462000c6d91906200136c565b905082848262000c7e9190620014e0565b1462000cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cb8906200159b565b60405180910390fd5b809150505b92915050565b5f62000d1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000de560201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e25919062001635565b60405180910390fd5b505f838562000e3e9190620014e0565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ec757607f821691505b60208210810362000edd5762000edc62000e82565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000f417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f04565b62000f4d868362000f04565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000f9762000f9162000f8b8462000f65565b62000f6e565b62000f65565b9050919050565b5f819050919050565b62000fb28362000f77565b62000fca62000fc18262000f9e565b84845462000f10565b825550505050565b5f90565b62000fe062000fd2565b62000fed81848462000fa7565b505050565b5b818110156200101457620010085f8262000fd6565b60018101905062000ff3565b5050565b601f82111562001063576200102d8162000ee3565b620010388462000ef5565b8101602085101562001048578190505b62001060620010578562000ef5565b83018262000ff2565b50505b505050565b5f82821c905092915050565b5f620010855f198460080262001068565b1980831691505092915050565b5f6200109f838362001074565b9150826002028217905092915050565b620010ba8262000e4b565b67ffffffffffffffff811115620010d657620010d562000e55565b5b620010e2825462000eaf565b620010ef82828562001018565b5f60209050601f83116001811462001125575f841562001110578287015190505b6200111c858262001092565b8655506200118b565b601f198416620011358662000ee3565b5f5b828110156200115e5784890151825560018201915060208501945060208101905062001137565b868310156200117e57848901516200117a601f89168262001074565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200121d57808604811115620011f557620011f462001193565b5b6001851615620012055780820291505b80810290506200121585620011c0565b9450620011d5565b94509492505050565b5f8262001237576001905062001309565b8162001246575f905062001309565b81600181146200125f57600281146200126a57620012a0565b600191505062001309565b60ff8411156200127f576200127e62001193565b5b8360020a91508482111562001299576200129862001193565b5b5062001309565b5060208310610133831016604e8410600b8410161715620012da5782820a905083811115620012d457620012d362001193565b5b62001309565b620012e98484846001620011cc565b9250905081840481111562001303576200130262001193565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620013288262000f65565b9150620013358362001310565b9250620013647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001226565b905092915050565b5f620013788262000f65565b9150620013858362000f65565b9250828202620013958162000f65565b91508282048414831517620013af57620013ae62001193565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620013e582620013ba565b9050919050565b620013f781620013d9565b811462001402575f80fd5b50565b5f815190506200141581620013ec565b92915050565b5f60208284031215620014335762001432620013b6565b5b5f620014428482850162001405565b91505092915050565b6200145681620013d9565b82525050565b5f604082019050620014715f8301856200144b565b6200148060208301846200144b565b9392505050565b620014928162000f65565b82525050565b5f602082019050620014ad5f83018462001487565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620014ec8262000f65565b9150620014f98362000f65565b9250826200150c576200150b620014b3565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200158360218362001517565b9150620015908262001527565b604082019050919050565b5f6020820190508181035f830152620015b48162001575565b9050919050565b5f5b83811015620015da578082015181840152602081019050620015bd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620016018262000e4b565b6200160d818562001517565b93506200161f818560208601620015bb565b6200162a81620015e5565b840191505092915050565b5f6020820190508181035f8301526200164f8184620015f5565b905092915050565b60805160a0516142e8620016795f395f610bdf01525f610d2c01526142e85ff3fe6080604052600436106102b1575f3560e01c80637d1db4a511610174578063c16dd4a4116100db578063e6b2603b11610094578063f242ab411161006e578063f242ab4114610a7e578063f2fde38b14610aa8578063f872858a14610ad0578063fb0ecfa414610afa576102b8565b8063e6b2603b14610a16578063e9fd339414610a2c578063ee828db314610a56576102b8565b8063c16dd4a4146108fc578063c867d60b14610924578063cc1776d314610960578063cea9d26f1461098a578063dd62ed3e146109b2578063df8408fe146109ee576102b8565b8063a457c2d71161012d578063a457c2d7146107e0578063a9059cbb1461081c578063ae85ade614610858578063b94b0aef14610880578063bf56b371146108a8578063c04a5414146108d2576102b8565b80637d1db4a5146106e6578063807c2d9c146107105780638a8c523c1461073a5780638b42507f146107505780638da5cb5b1461078c57806395d89b41146107b6576102b8565b80634974d88f116102185780636ddd1713116101d15780636ddd17131461060457806370a082311461062e578063715018a61461066a578063728d41c91461068057806372ac2486146106a8578063751039fc146106d0576102b8565b80634974d88f146104fc5780634f7041a5146105245780635342acb41461054e5780635c85974f1461058a5780635e42358c146105b2578063651a8987146105dc576102b8565b806318160ddd1161026a57806318160ddd146103ca57806323b872dd146103f457806327c8f83514610430578063313ce5671461045a57806339509351146104845780633ecad271146104c0576102b8565b80630445b667146102bc57806306fdde03146102e65780630758d924146103105780630930907b1461033a578063095ea7b3146103645780631693e8d4146103a0576102b8565b366102b857005b5f80fd5b3480156102c7575f80fd5b506102d0610b22565b6040516102dd91906133c7565b60405180910390f35b3480156102f1575f80fd5b506102fa610b28565b604051610307919061346a565b60405180910390f35b34801561031b575f80fd5b50610324610bb8565b6040516103319190613504565b60405180910390f35b348015610345575f80fd5b5061034e610bdd565b60405161035b919061353d565b60405180910390f35b34801561036f575f80fd5b5061038a600480360381019061038591906135ae565b610c01565b6040516103979190613606565b60405180910390f35b3480156103ab575f80fd5b506103b4610c1e565b6040516103c19190613606565b60405180910390f35b3480156103d5575f80fd5b506103de610c2f565b6040516103eb91906133c7565b60405180910390f35b3480156103ff575f80fd5b5061041a6004803603810190610415919061361f565b610c38565b6040516104279190613606565b60405180910390f35b34801561043b575f80fd5b50610444610d2a565b604051610451919061353d565b60405180910390f35b348015610465575f80fd5b5061046e610d4e565b60405161047b919061368a565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a591906135ae565b610d63565b6040516104b79190613606565b60405180910390f35b3480156104cb575f80fd5b506104e660048036038101906104e191906136a3565b610e11565b6040516104f39190613606565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906136f8565b610e2e565b005b34801561052f575f80fd5b50610538610ec7565b60405161054591906133c7565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f91906136a3565b610ecd565b6040516105819190613606565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190613723565b610eea565b005b3480156105bd575f80fd5b506105c6610f70565b6040516105d39190613606565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd919061374e565b610f83565b005b34801561060f575f80fd5b50610618611057565b6040516106259190613606565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906136a3565b611069565b60405161066191906133c7565b60405180910390f35b348015610675575f80fd5b5061067e6110af565b005b34801561068b575f80fd5b506106a660048036038101906106a19190613723565b611136565b005b3480156106b3575f80fd5b506106ce60048036038101906106c991906136a3565b6111bc565b005b3480156106db575f80fd5b506106e461127b565b005b3480156106f1575f80fd5b506106fa611340565b60405161070791906133c7565b60405180910390f35b34801561071b575f80fd5b50610724611346565b60405161073191906133c7565b60405180910390f35b348015610745575f80fd5b5061074e61134c565b005b34801561075b575f80fd5b50610776600480360381019061077191906136a3565b611439565b6040516107839190613606565b60405180910390f35b348015610797575f80fd5b506107a0611456565b6040516107ad919061353d565b60405180910390f35b3480156107c1575f80fd5b506107ca61147d565b6040516107d7919061346a565b60405180910390f35b3480156107eb575f80fd5b50610806600480360381019061080191906135ae565b61150d565b6040516108139190613606565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906135ae565b6115d5565b60405161084f9190613606565b60405180910390f35b348015610863575f80fd5b5061087e6004803603810190610879919061374e565b6115f3565b005b34801561088b575f80fd5b506108a660048036038101906108a1919061378c565b6116c7565b005b3480156108b3575f80fd5b506108bc611795565b6040516108c991906133c7565b60405180910390f35b3480156108dd575f80fd5b506108e661179b565b6040516108f3919061353d565b60405180910390f35b348015610907575f80fd5b50610922600480360381019061091d919061374e565b6117c0565b005b34801561092f575f80fd5b5061094a600480360381019061094591906136a3565b6118ef565b6040516109579190613606565b60405180910390f35b34801561096b575f80fd5b5061097461190c565b60405161098191906133c7565b60405180910390f35b348015610995575f80fd5b506109b060048036038101906109ab919061361f565b611912565b005b3480156109bd575f80fd5b506109d860048036038101906109d391906137dc565b611ade565b6040516109e591906133c7565b60405180910390f35b3480156109f9575f80fd5b50610a146004803603810190610a0f919061374e565b611b60565b005b348015610a21575f80fd5b50610a2a611c34565b005b348015610a37575f80fd5b50610a40611d6e565b604051610a4d9190613606565b60405180910390f35b348015610a61575f80fd5b50610a7c6004803603810190610a7791906136f8565b611d81565b005b348015610a89575f80fd5b50610a92611e1a565b604051610a9f919061353d565b60405180910390f35b348015610ab3575f80fd5b50610ace6004803603810190610ac991906136a3565b611e3f565b005b348015610adb575f80fd5b50610ae4611f35565b604051610af19190613606565b60405180910390f35b348015610b05575f80fd5b50610b206004803603810190610b1b919061381a565b611f48565b005b600f5481565b606060028054610b3790613885565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6390613885565b8015610bae5780601f10610b8557610100808354040283529160200191610bae565b820191905f5260205f20905b815481529060010190602001808311610b9157829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c14610c0d611fd6565b8484611fdd565b6001905092915050565b60148054906101000a900460ff1681565b5f600554905090565b5f610c448484846121a0565b50610d1f84610c51611fd6565b610d1a856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cd1611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60045f9054906101000a900460ff16905090565b5f610e07610d6f611fd6565b84610e0285600a5f610d7f611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b611fdd565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b610e36611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610e54611456565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea1906138ff565b60405180910390fd5b80601060036101000a81548160ff02191690831515021790555050565b60115481565b600b602052805f5260405f205f915054906101000a900460ff1681565b610ef2611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610f10611456565b73ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906138ff565b60405180910390fd5b8060068190555050565b601060029054906101000a900460ff1681565b610f8b611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610fa9611456565b73ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff6906138ff565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60105f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110b7611fd6565b73ffffffffffffffffffffffffffffffffffffffff166110d5611456565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611122906138ff565b60405180910390fd5b6111345f6128f2565b565b61113e611fd6565b73ffffffffffffffffffffffffffffffffffffffff1661115c611456565b73ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906138ff565b60405180910390fd5b8060078190555050565b6111c4611fd6565b73ffffffffffffffffffffffffffffffffffffffff166111e2611456565b73ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906138ff565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190613967565b60405180910390fd5b5f601060026101000a81548160ff0219169083151502179055505f601060036101000a81548160ff021916908315150217905550565b60065481565b60075481565b611354611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611372611456565b73ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906138ff565b60405180910390fd5b60148054906101000a900460ff1615611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d906139cf565b60405180910390fd5b60016014806101000a81548160ff02191690831515021790555042601581905550565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461148c90613885565b80601f01602080910402602001604051908101604052809291908181526020018280546114b890613885565b80156115035780601f106114da57610100808354040283529160200191611503565b820191905f5260205f20905b8154815290600101906020018083116114e657829003601f168201915b5050505050905090565b5f6115cb611519611fd6565b846115c68560405180606001604052806025815260200161428e60259139600a5f611542611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b6001905092915050565b5f6115e86115e1611fd6565b84846121a0565b506001905092915050565b6115fb611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611619611456565b73ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906138ff565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174d90613967565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff02191690831515021790555082600f81905550505050565b60155481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117c8611fd6565b73ffffffffffffffffffffffffffffffffffffffff166117e6611456565b73ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906138ff565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156118eb5780600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60125481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613967565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119cc9291906139ed565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a569190613a58565b5f604051808303815f865af19150503d805f8114611a8f576040519150601f19603f3d011682016040523d82523d5f602084013e611a94565b606091505b5050905080611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613ab8565b60405180910390fd5b50505050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b68611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611b86611456565b73ffffffffffffffffffffffffffffffffffffffff1614611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd3906138ff565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba90613967565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611ce890613af9565b5f6040518083038185875af1925050503d805f8114611d22576040519150601f19603f3d011682016040523d82523d5f602084013e611d27565b606091505b5050905080611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6290613b57565b60405180910390fd5b50565b601060019054906101000a900460ff1681565b611d89611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611da7611456565b73ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df4906138ff565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e47611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611e65611456565b73ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb2906138ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2090613be5565b60405180910390fd5b611f32816128f2565b50565b601060039054906101000a900460ff1681565b611f50611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611f6e611456565b73ffffffffffffffffffffffffffffffffffffffff1614611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb906138ff565b60405180910390fd5b81601181905550806012819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613c73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b090613d01565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161219391906133c7565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121d8575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361220f575f80fd5b5f821161221a575f80fd5b60165f9054906101000a900460ff1615612240576122398484846129b3565b905061282c565b60148054906101000a900460ff1661232d57600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122ed5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61232c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232390613d69565b60405180910390fd5b5b5f61233730611069565b90505f600f54821015905080801561235b575060165f9054906101000a900460ff16155b80156123ae5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123c5575060105f9054906101000a900460ff165b80156124185750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561246b5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561247a5761247982612b7d565b5b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125185750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125305750601060029054906101000a900460ff165b1561257b5760065484111561257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257190613dd1565b60405180910390fd5b5b612602846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61264e8787612c61565b6126625761265d878787612dbd565b612664565b845b9050601060039054906101000a900460ff1680156126c95750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561272e576007546126ec826126de89611069565b61289590919063ffffffff16565b111561272d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272490613e39565b60405180910390fd5b5b61277e8160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161281c91906133c7565b60405180910390a3600193505050505b9392505050565b5f83831115829061287a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612871919061346a565b60405180910390fd5b505f83856128889190613e84565b9050809150509392505050565b5f8082846128a39190613eb7565b9050838110156128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df90613f34565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612a3b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612acc8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b6a91906133c7565b60405180910390a3600190509392505050565b600160165f6101000a81548160ff021916908315150217905550601060019054906101000a900460ff1615612bb257600f5490505b5f479050612bbf82612fd6565b5f612bd3824761324590919063ffffffff16565b90505f811115612c435760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c41573d5f803e3d5ffd5b505b50505f60165f6101000a81548160ff02191690831515021790555050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612cfd5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d0b5760019050612db7565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612da65750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612db3575f9050612db7565b5f90505b92915050565b5f80600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e3e57612e37600854612e296011548661328e90919063ffffffff16565b61330590919063ffffffff16565b9050612eba565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612eb957612eb6600854612ea86012548661328e90919063ffffffff16565b61330590919063ffffffff16565b90505b5b5f811115612fb957612f128160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fb091906133c7565b60405180910390a35b612fcc818461324590919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ff257612ff1613f52565b5b6040519080825280602002602001820160405280156130205781602001602082028036833780820191505090505b50905030815f8151811061303757613036613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ff9190613fc0565b8160018151811061311357613112613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131793060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fdd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131db9594939291906140db565b5f604051808303815f87803b1580156131f2575f80fd5b505af1158015613204573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613239929190614133565b60405180910390a15050565b5f61328683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612833565b905092915050565b5f80830361329e575f90506132ff565b5f82846132ab9190614161565b90508284826132ba91906141cf565b146132fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f19061426f565b60405180910390fd5b809150505b92915050565b5f61334683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061334e565b905092915050565b5f8083118290613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338b919061346a565b60405180910390fd5b505f83856133a291906141cf565b9050809150509392505050565b5f819050919050565b6133c1816133af565b82525050565b5f6020820190506133da5f8301846133b8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134175780820151818401526020810190506133fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61343c826133e0565b61344681856133ea565b93506134568185602086016133fa565b61345f81613422565b840191505092915050565b5f6020820190508181035f8301526134828184613432565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6134cc6134c76134c28461348a565b6134a9565b61348a565b9050919050565b5f6134dd826134b2565b9050919050565b5f6134ee826134d3565b9050919050565b6134fe816134e4565b82525050565b5f6020820190506135175f8301846134f5565b92915050565b5f6135278261348a565b9050919050565b6135378161351d565b82525050565b5f6020820190506135505f83018461352e565b92915050565b5f80fd5b6135638161351d565b811461356d575f80fd5b50565b5f8135905061357e8161355a565b92915050565b61358d816133af565b8114613597575f80fd5b50565b5f813590506135a881613584565b92915050565b5f80604083850312156135c4576135c3613556565b5b5f6135d185828601613570565b92505060206135e28582860161359a565b9150509250929050565b5f8115159050919050565b613600816135ec565b82525050565b5f6020820190506136195f8301846135f7565b92915050565b5f805f6060848603121561363657613635613556565b5b5f61364386828701613570565b935050602061365486828701613570565b92505060406136658682870161359a565b9150509250925092565b5f60ff82169050919050565b6136848161366f565b82525050565b5f60208201905061369d5f83018461367b565b92915050565b5f602082840312156136b8576136b7613556565b5b5f6136c584828501613570565b91505092915050565b6136d7816135ec565b81146136e1575f80fd5b50565b5f813590506136f2816136ce565b92915050565b5f6020828403121561370d5761370c613556565b5b5f61371a848285016136e4565b91505092915050565b5f6020828403121561373857613737613556565b5b5f6137458482850161359a565b91505092915050565b5f806040838503121561376457613763613556565b5b5f61377185828601613570565b9250506020613782858286016136e4565b9150509250929050565b5f805f606084860312156137a3576137a2613556565b5b5f6137b08682870161359a565b93505060206137c1868287016136e4565b92505060406137d2868287016136e4565b9150509250925092565b5f80604083850312156137f2576137f1613556565b5b5f6137ff85828601613570565b925050602061381085828601613570565b9150509250929050565b5f80604083850312156138305761382f613556565b5b5f61383d8582860161359a565b925050602061384e8582860161359a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061389c57607f821691505b6020821081036138af576138ae613858565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138e96020836133ea565b91506138f4826138b5565b602082019050919050565b5f6020820190508181035f830152613916816138dd565b9050919050565b7f496e76616c69642043616c6c65720000000000000000000000000000000000005f82015250565b5f613951600e836133ea565b915061395c8261391d565b602082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f547261646520456e61626c6564210000000000000000000000000000000000005f82015250565b5f6139b9600e836133ea565b91506139c482613985565b602082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b5f604082019050613a005f83018561352e565b613a0d60208301846133b8565b9392505050565b5f81519050919050565b5f81905092915050565b5f613a3282613a14565b613a3c8185613a1e565b9350613a4c8185602086016133fa565b80840191505092915050565b5f613a638284613a28565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613aa26014836133ea565b9150613aad82613a6e565b602082019050919050565b5f6020820190508181035f830152613acf81613a96565b9050919050565b50565b5f613ae45f83613a1e565b9150613aef82613ad6565b5f82019050919050565b5f613b0382613ad9565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613b416014836133ea565b9150613b4c82613b0d565b602082019050919050565b5f6020820190508181035f830152613b6e81613b35565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bcf6026836133ea565b9150613bda82613b75565b604082019050919050565b5f6020820190508181035f830152613bfc81613bc3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613c5d6024836133ea565b9150613c6882613c03565b604082019050919050565b5f6020820190508181035f830152613c8a81613c51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ceb6022836133ea565b9150613cf682613c91565b604082019050919050565b5f6020820190508181035f830152613d1881613cdf565b9050919050565b7f54726164696e67205061757365640000000000000000000000000000000000005f82015250565b5f613d53600e836133ea565b9150613d5e82613d1f565b602082019050919050565b5f6020820190508181035f830152613d8081613d47565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613dbb6013836133ea565b9150613dc682613d87565b602082019050919050565b5f6020820190508181035f830152613de881613daf565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613e23600e836133ea565b9150613e2e82613def565b602082019050919050565b5f6020820190508181035f830152613e5081613e17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e8e826133af565b9150613e99836133af565b9250828203905081811115613eb157613eb0613e57565b5b92915050565b5f613ec1826133af565b9150613ecc836133af565b9250828201905080821115613ee457613ee3613e57565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f1e601b836133ea565b9150613f2982613eea565b602082019050919050565b5f6020820190508181035f830152613f4b81613f12565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613fba8161355a565b92915050565b5f60208284031215613fd557613fd4613556565b5b5f613fe284828501613fac565b91505092915050565b5f819050919050565b5f61400e61400961400484613feb565b6134a9565b6133af565b9050919050565b61401e81613ff4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140568161351d565b82525050565b5f614067838361404d565b60208301905092915050565b5f602082019050919050565b5f61408982614024565b614093818561402e565b935061409e8361403e565b805f5b838110156140ce5781516140b5888261405c565b97506140c083614073565b9250506001810190506140a1565b5085935050505092915050565b5f60a0820190506140ee5f8301886133b8565b6140fb6020830187614015565b818103604083015261410d818661407f565b905061411c606083018561352e565b61412960808301846133b8565b9695505050505050565b5f6040820190506141465f8301856133b8565b8181036020830152614158818461407f565b90509392505050565b5f61416b826133af565b9150614176836133af565b9250828202614184816133af565b9150828204841483151761419b5761419a613e57565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141d9826133af565b91506141e4836133af565b9250826141f4576141f36141a2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142596021836133ea565b9150614264826141ff565b604082019050919050565b5f6020820190508181035f8301526142868161424d565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d111076e51f92ec7986fa8cc11f913739fe7bc469cb50859ad20870c0adb8fba64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106102b1575f3560e01c80637d1db4a511610174578063c16dd4a4116100db578063e6b2603b11610094578063f242ab411161006e578063f242ab4114610a7e578063f2fde38b14610aa8578063f872858a14610ad0578063fb0ecfa414610afa576102b8565b8063e6b2603b14610a16578063e9fd339414610a2c578063ee828db314610a56576102b8565b8063c16dd4a4146108fc578063c867d60b14610924578063cc1776d314610960578063cea9d26f1461098a578063dd62ed3e146109b2578063df8408fe146109ee576102b8565b8063a457c2d71161012d578063a457c2d7146107e0578063a9059cbb1461081c578063ae85ade614610858578063b94b0aef14610880578063bf56b371146108a8578063c04a5414146108d2576102b8565b80637d1db4a5146106e6578063807c2d9c146107105780638a8c523c1461073a5780638b42507f146107505780638da5cb5b1461078c57806395d89b41146107b6576102b8565b80634974d88f116102185780636ddd1713116101d15780636ddd17131461060457806370a082311461062e578063715018a61461066a578063728d41c91461068057806372ac2486146106a8578063751039fc146106d0576102b8565b80634974d88f146104fc5780634f7041a5146105245780635342acb41461054e5780635c85974f1461058a5780635e42358c146105b2578063651a8987146105dc576102b8565b806318160ddd1161026a57806318160ddd146103ca57806323b872dd146103f457806327c8f83514610430578063313ce5671461045a57806339509351146104845780633ecad271146104c0576102b8565b80630445b667146102bc57806306fdde03146102e65780630758d924146103105780630930907b1461033a578063095ea7b3146103645780631693e8d4146103a0576102b8565b366102b857005b5f80fd5b3480156102c7575f80fd5b506102d0610b22565b6040516102dd91906133c7565b60405180910390f35b3480156102f1575f80fd5b506102fa610b28565b604051610307919061346a565b60405180910390f35b34801561031b575f80fd5b50610324610bb8565b6040516103319190613504565b60405180910390f35b348015610345575f80fd5b5061034e610bdd565b60405161035b919061353d565b60405180910390f35b34801561036f575f80fd5b5061038a600480360381019061038591906135ae565b610c01565b6040516103979190613606565b60405180910390f35b3480156103ab575f80fd5b506103b4610c1e565b6040516103c19190613606565b60405180910390f35b3480156103d5575f80fd5b506103de610c2f565b6040516103eb91906133c7565b60405180910390f35b3480156103ff575f80fd5b5061041a6004803603810190610415919061361f565b610c38565b6040516104279190613606565b60405180910390f35b34801561043b575f80fd5b50610444610d2a565b604051610451919061353d565b60405180910390f35b348015610465575f80fd5b5061046e610d4e565b60405161047b919061368a565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a591906135ae565b610d63565b6040516104b79190613606565b60405180910390f35b3480156104cb575f80fd5b506104e660048036038101906104e191906136a3565b610e11565b6040516104f39190613606565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906136f8565b610e2e565b005b34801561052f575f80fd5b50610538610ec7565b60405161054591906133c7565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f91906136a3565b610ecd565b6040516105819190613606565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190613723565b610eea565b005b3480156105bd575f80fd5b506105c6610f70565b6040516105d39190613606565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd919061374e565b610f83565b005b34801561060f575f80fd5b50610618611057565b6040516106259190613606565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906136a3565b611069565b60405161066191906133c7565b60405180910390f35b348015610675575f80fd5b5061067e6110af565b005b34801561068b575f80fd5b506106a660048036038101906106a19190613723565b611136565b005b3480156106b3575f80fd5b506106ce60048036038101906106c991906136a3565b6111bc565b005b3480156106db575f80fd5b506106e461127b565b005b3480156106f1575f80fd5b506106fa611340565b60405161070791906133c7565b60405180910390f35b34801561071b575f80fd5b50610724611346565b60405161073191906133c7565b60405180910390f35b348015610745575f80fd5b5061074e61134c565b005b34801561075b575f80fd5b50610776600480360381019061077191906136a3565b611439565b6040516107839190613606565b60405180910390f35b348015610797575f80fd5b506107a0611456565b6040516107ad919061353d565b60405180910390f35b3480156107c1575f80fd5b506107ca61147d565b6040516107d7919061346a565b60405180910390f35b3480156107eb575f80fd5b50610806600480360381019061080191906135ae565b61150d565b6040516108139190613606565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906135ae565b6115d5565b60405161084f9190613606565b60405180910390f35b348015610863575f80fd5b5061087e6004803603810190610879919061374e565b6115f3565b005b34801561088b575f80fd5b506108a660048036038101906108a1919061378c565b6116c7565b005b3480156108b3575f80fd5b506108bc611795565b6040516108c991906133c7565b60405180910390f35b3480156108dd575f80fd5b506108e661179b565b6040516108f3919061353d565b60405180910390f35b348015610907575f80fd5b50610922600480360381019061091d919061374e565b6117c0565b005b34801561092f575f80fd5b5061094a600480360381019061094591906136a3565b6118ef565b6040516109579190613606565b60405180910390f35b34801561096b575f80fd5b5061097461190c565b60405161098191906133c7565b60405180910390f35b348015610995575f80fd5b506109b060048036038101906109ab919061361f565b611912565b005b3480156109bd575f80fd5b506109d860048036038101906109d391906137dc565b611ade565b6040516109e591906133c7565b60405180910390f35b3480156109f9575f80fd5b50610a146004803603810190610a0f919061374e565b611b60565b005b348015610a21575f80fd5b50610a2a611c34565b005b348015610a37575f80fd5b50610a40611d6e565b604051610a4d9190613606565b60405180910390f35b348015610a61575f80fd5b50610a7c6004803603810190610a7791906136f8565b611d81565b005b348015610a89575f80fd5b50610a92611e1a565b604051610a9f919061353d565b60405180910390f35b348015610ab3575f80fd5b50610ace6004803603810190610ac991906136a3565b611e3f565b005b348015610adb575f80fd5b50610ae4611f35565b604051610af19190613606565b60405180910390f35b348015610b05575f80fd5b50610b206004803603810190610b1b919061381a565b611f48565b005b600f5481565b606060028054610b3790613885565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6390613885565b8015610bae5780601f10610b8557610100808354040283529160200191610bae565b820191905f5260205f20905b815481529060010190602001808311610b9157829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c14610c0d611fd6565b8484611fdd565b6001905092915050565b60148054906101000a900460ff1681565b5f600554905090565b5f610c448484846121a0565b50610d1f84610c51611fd6565b610d1a856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cd1611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f60045f9054906101000a900460ff16905090565b5f610e07610d6f611fd6565b84610e0285600a5f610d7f611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b611fdd565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b610e36611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610e54611456565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea1906138ff565b60405180910390fd5b80601060036101000a81548160ff02191690831515021790555050565b60115481565b600b602052805f5260405f205f915054906101000a900460ff1681565b610ef2611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610f10611456565b73ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906138ff565b60405180910390fd5b8060068190555050565b601060029054906101000a900460ff1681565b610f8b611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610fa9611456565b73ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff6906138ff565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60105f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110b7611fd6565b73ffffffffffffffffffffffffffffffffffffffff166110d5611456565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611122906138ff565b60405180910390fd5b6111345f6128f2565b565b61113e611fd6565b73ffffffffffffffffffffffffffffffffffffffff1661115c611456565b73ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906138ff565b60405180910390fd5b8060078190555050565b6111c4611fd6565b73ffffffffffffffffffffffffffffffffffffffff166111e2611456565b73ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906138ff565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190613967565b60405180910390fd5b5f601060026101000a81548160ff0219169083151502179055505f601060036101000a81548160ff021916908315150217905550565b60065481565b60075481565b611354611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611372611456565b73ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906138ff565b60405180910390fd5b60148054906101000a900460ff1615611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d906139cf565b60405180910390fd5b60016014806101000a81548160ff02191690831515021790555042601581905550565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461148c90613885565b80601f01602080910402602001604051908101604052809291908181526020018280546114b890613885565b80156115035780601f106114da57610100808354040283529160200191611503565b820191905f5260205f20905b8154815290600101906020018083116114e657829003601f168201915b5050505050905090565b5f6115cb611519611fd6565b846115c68560405180606001604052806025815260200161428e60259139600a5f611542611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b6001905092915050565b5f6115e86115e1611fd6565b84846121a0565b506001905092915050565b6115fb611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611619611456565b73ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906138ff565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174d90613967565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff02191690831515021790555082600f81905550505050565b60155481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117c8611fd6565b73ffffffffffffffffffffffffffffffffffffffff166117e6611456565b73ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906138ff565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156118eb5780600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60125481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613967565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119cc9291906139ed565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a569190613a58565b5f604051808303815f865af19150503d805f8114611a8f576040519150601f19603f3d011682016040523d82523d5f602084013e611a94565b606091505b5050905080611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613ab8565b60405180910390fd5b50505050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b68611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611b86611456565b73ffffffffffffffffffffffffffffffffffffffff1614611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd3906138ff565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba90613967565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611ce890613af9565b5f6040518083038185875af1925050503d805f8114611d22576040519150601f19603f3d011682016040523d82523d5f602084013e611d27565b606091505b5050905080611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6290613b57565b60405180910390fd5b50565b601060019054906101000a900460ff1681565b611d89611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611da7611456565b73ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df4906138ff565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e47611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611e65611456565b73ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb2906138ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2090613be5565b60405180910390fd5b611f32816128f2565b50565b601060039054906101000a900460ff1681565b611f50611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611f6e611456565b73ffffffffffffffffffffffffffffffffffffffff1614611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb906138ff565b60405180910390fd5b81601181905550806012819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613c73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b090613d01565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161219391906133c7565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121d8575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361220f575f80fd5b5f821161221a575f80fd5b60165f9054906101000a900460ff1615612240576122398484846129b3565b905061282c565b60148054906101000a900460ff1661232d57600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122ed5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61232c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232390613d69565b60405180910390fd5b5b5f61233730611069565b90505f600f54821015905080801561235b575060165f9054906101000a900460ff16155b80156123ae5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123c5575060105f9054906101000a900460ff165b80156124185750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561246b5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561247a5761247982612b7d565b5b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125185750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125305750601060029054906101000a900460ff165b1561257b5760065484111561257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257190613dd1565b60405180910390fd5b5b612602846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61264e8787612c61565b6126625761265d878787612dbd565b612664565b845b9050601060039054906101000a900460ff1680156126c95750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561272e576007546126ec826126de89611069565b61289590919063ffffffff16565b111561272d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272490613e39565b60405180910390fd5b5b61277e8160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161281c91906133c7565b60405180910390a3600193505050505b9392505050565b5f83831115829061287a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612871919061346a565b60405180910390fd5b505f83856128889190613e84565b9050809150509392505050565b5f8082846128a39190613eb7565b9050838110156128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df90613f34565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612a3b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612acc8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b6a91906133c7565b60405180910390a3600190509392505050565b600160165f6101000a81548160ff021916908315150217905550601060019054906101000a900460ff1615612bb257600f5490505b5f479050612bbf82612fd6565b5f612bd3824761324590919063ffffffff16565b90505f811115612c435760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c41573d5f803e3d5ffd5b505b50505f60165f6101000a81548160ff02191690831515021790555050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612cfd5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d0b5760019050612db7565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612da65750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612db3575f9050612db7565b5f90505b92915050565b5f80600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e3e57612e37600854612e296011548661328e90919063ffffffff16565b61330590919063ffffffff16565b9050612eba565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612eb957612eb6600854612ea86012548661328e90919063ffffffff16565b61330590919063ffffffff16565b90505b5b5f811115612fb957612f128160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fb091906133c7565b60405180910390a35b612fcc818461324590919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ff257612ff1613f52565b5b6040519080825280602002602001820160405280156130205781602001602082028036833780820191505090505b50905030815f8151811061303757613036613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ff9190613fc0565b8160018151811061311357613112613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131793060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fdd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131db9594939291906140db565b5f604051808303815f87803b1580156131f2575f80fd5b505af1158015613204573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613239929190614133565b60405180910390a15050565b5f61328683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612833565b905092915050565b5f80830361329e575f90506132ff565b5f82846132ab9190614161565b90508284826132ba91906141cf565b146132fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f19061426f565b60405180910390fd5b809150505b92915050565b5f61334683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061334e565b905092915050565b5f8083118290613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338b919061346a565b60405180910390fd5b505f83856133a291906141cf565b9050809150509392505050565b5f819050919050565b6133c1816133af565b82525050565b5f6020820190506133da5f8301846133b8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134175780820151818401526020810190506133fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61343c826133e0565b61344681856133ea565b93506134568185602086016133fa565b61345f81613422565b840191505092915050565b5f6020820190508181035f8301526134828184613432565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6134cc6134c76134c28461348a565b6134a9565b61348a565b9050919050565b5f6134dd826134b2565b9050919050565b5f6134ee826134d3565b9050919050565b6134fe816134e4565b82525050565b5f6020820190506135175f8301846134f5565b92915050565b5f6135278261348a565b9050919050565b6135378161351d565b82525050565b5f6020820190506135505f83018461352e565b92915050565b5f80fd5b6135638161351d565b811461356d575f80fd5b50565b5f8135905061357e8161355a565b92915050565b61358d816133af565b8114613597575f80fd5b50565b5f813590506135a881613584565b92915050565b5f80604083850312156135c4576135c3613556565b5b5f6135d185828601613570565b92505060206135e28582860161359a565b9150509250929050565b5f8115159050919050565b613600816135ec565b82525050565b5f6020820190506136195f8301846135f7565b92915050565b5f805f6060848603121561363657613635613556565b5b5f61364386828701613570565b935050602061365486828701613570565b92505060406136658682870161359a565b9150509250925092565b5f60ff82169050919050565b6136848161366f565b82525050565b5f60208201905061369d5f83018461367b565b92915050565b5f602082840312156136b8576136b7613556565b5b5f6136c584828501613570565b91505092915050565b6136d7816135ec565b81146136e1575f80fd5b50565b5f813590506136f2816136ce565b92915050565b5f6020828403121561370d5761370c613556565b5b5f61371a848285016136e4565b91505092915050565b5f6020828403121561373857613737613556565b5b5f6137458482850161359a565b91505092915050565b5f806040838503121561376457613763613556565b5b5f61377185828601613570565b9250506020613782858286016136e4565b9150509250929050565b5f805f606084860312156137a3576137a2613556565b5b5f6137b08682870161359a565b93505060206137c1868287016136e4565b92505060406137d2868287016136e4565b9150509250925092565b5f80604083850312156137f2576137f1613556565b5b5f6137ff85828601613570565b925050602061381085828601613570565b9150509250929050565b5f80604083850312156138305761382f613556565b5b5f61383d8582860161359a565b925050602061384e8582860161359a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061389c57607f821691505b6020821081036138af576138ae613858565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138e96020836133ea565b91506138f4826138b5565b602082019050919050565b5f6020820190508181035f830152613916816138dd565b9050919050565b7f496e76616c69642043616c6c65720000000000000000000000000000000000005f82015250565b5f613951600e836133ea565b915061395c8261391d565b602082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f547261646520456e61626c6564210000000000000000000000000000000000005f82015250565b5f6139b9600e836133ea565b91506139c482613985565b602082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b5f604082019050613a005f83018561352e565b613a0d60208301846133b8565b9392505050565b5f81519050919050565b5f81905092915050565b5f613a3282613a14565b613a3c8185613a1e565b9350613a4c8185602086016133fa565b80840191505092915050565b5f613a638284613a28565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613aa26014836133ea565b9150613aad82613a6e565b602082019050919050565b5f6020820190508181035f830152613acf81613a96565b9050919050565b50565b5f613ae45f83613a1e565b9150613aef82613ad6565b5f82019050919050565b5f613b0382613ad9565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613b416014836133ea565b9150613b4c82613b0d565b602082019050919050565b5f6020820190508181035f830152613b6e81613b35565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bcf6026836133ea565b9150613bda82613b75565b604082019050919050565b5f6020820190508181035f830152613bfc81613bc3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613c5d6024836133ea565b9150613c6882613c03565b604082019050919050565b5f6020820190508181035f830152613c8a81613c51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ceb6022836133ea565b9150613cf682613c91565b604082019050919050565b5f6020820190508181035f830152613d1881613cdf565b9050919050565b7f54726164696e67205061757365640000000000000000000000000000000000005f82015250565b5f613d53600e836133ea565b9150613d5e82613d1f565b602082019050919050565b5f6020820190508181035f830152613d8081613d47565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613dbb6013836133ea565b9150613dc682613d87565b602082019050919050565b5f6020820190508181035f830152613de881613daf565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613e23600e836133ea565b9150613e2e82613def565b602082019050919050565b5f6020820190508181035f830152613e5081613e17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e8e826133af565b9150613e99836133af565b9250828203905081811115613eb157613eb0613e57565b5b92915050565b5f613ec1826133af565b9150613ecc836133af565b9250828201905080821115613ee457613ee3613e57565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f1e601b836133ea565b9150613f2982613eea565b602082019050919050565b5f6020820190508181035f830152613f4b81613f12565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613fba8161355a565b92915050565b5f60208284031215613fd557613fd4613556565b5b5f613fe284828501613fac565b91505092915050565b5f819050919050565b5f61400e61400961400484613feb565b6134a9565b6133af565b9050919050565b61401e81613ff4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140568161351d565b82525050565b5f614067838361404d565b60208301905092915050565b5f602082019050919050565b5f61408982614024565b614093818561402e565b935061409e8361403e565b805f5b838110156140ce5781516140b5888261405c565b97506140c083614073565b9250506001810190506140a1565b5085935050505092915050565b5f60a0820190506140ee5f8301886133b8565b6140fb6020830187614015565b818103604083015261410d818661407f565b905061411c606083018561352e565b61412960808301846133b8565b9695505050505050565b5f6040820190506141465f8301856133b8565b8181036020830152614158818461407f565b90509392505050565b5f61416b826133af565b9150614176836133af565b9250828202614184816133af565b9150828204841483151761419b5761419a613e57565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141d9826133af565b91506141e4836133af565b9250826141f4576141f36141a2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142596021836133ea565b9150614264826141ff565b604082019050919050565b5f6020820190508181035f8301526142868161424d565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d111076e51f92ec7986fa8cc11f913739fe7bc469cb50859ad20870c0adb8fba64736f6c63430008150033

Deployed Bytecode Sourcemap

8511:12014:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9370:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11678:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9658:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9902:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12848:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9727:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11955:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13622:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9814:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11864:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12345:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9202:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19035:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9595:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9145:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19656:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9512:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19278:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9438:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12063:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3179:94;;;;;;;;;;;;;:::i;:::-;;19542:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19769:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18802:119;;;;;;;;;;;;;:::i;:::-;;8833:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8909:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20132:176;;;;;;;;;;;;;:::i;:::-;;9313:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2870:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11769;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12571:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13447:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19414:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19895:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9760:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8598:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20316:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9254:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9625:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18375:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12194:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19148:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18189:178;;;;;;;;;;;;;:::i;:::-;;9475:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18929:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9696:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3281:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9551:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18655:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9370:59;;;;:::o;11678:83::-;11715:13;11748:5;11741:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11678:83;:::o;9658:31::-;;;;;;;;;;;;;:::o;9902:81::-;;;:::o;12848:161::-;12923:4;12940:39;12949:12;:10;:12::i;:::-;12963:7;12972:6;12940:8;:39::i;:::-;12997:4;12990:11;;12848:161;;;;:::o;9727:25::-;;;;;;;;;;;;:::o;11955:100::-;12008:7;12035:12;;12028:19;;11955:100;:::o;13622:297::-;13720:4;13737:36;13747:6;13755:9;13766:6;13737:9;:36::i;:::-;;13784:105;13793:6;13801:12;:10;:12::i;:::-;13815:73;13853:6;13815:73;;;;;;;;;;;;;;;;;:11;:19;13827:6;13815:19;;;;;;;;;;;;;;;:33;13835:12;:10;:12::i;:::-;13815:33;;;;;;;;;;;;;;;;:37;;:73;;;;;:::i;:::-;13784:8;:105::i;:::-;13907:4;13900:11;;13622:297;;;;;:::o;9814:81::-;;;:::o;11864:83::-;11905:5;11930:9;;;;;;;;;;;11923:16;;11864:83;:::o;12345:218::-;12433:4;12450:83;12459:12;:10;:12::i;:::-;12473:7;12482:50;12521:10;12482:11;:25;12494:12;:10;:12::i;:::-;12482:25;;;;;;;;;;;;;;;:34;12508:7;12482:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12450:8;:83::i;:::-;12551:4;12544:11;;12345:218;;;;:::o;9202:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19035:105::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19125:7:::1;19106:16;;:26;;;;;;;;;;;;;;;;;;19035:105:::0;:::o;9595:23::-;;;;:::o;9145:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;19656:101::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19741:8:::1;19726:12;:23;;;;19656:101:::0;:::o;9512:32::-;;;;;;;;;;;;;:::o;19278:128::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19391:7:::1;19363:19;:25;19383:4;19363:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19278:128:::0;;:::o;9438:30::-;;;;;;;;;;;;;:::o;12063:123::-;12129:7;12155:9;:18;12165:7;12155:18;;;;;;;;;;;;;;;;12148:25;;12063:123;;;:::o;3179:94::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3244:21:::1;3262:1;3244:9;:21::i;:::-;3179:94::o:0;19542:106::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19632:8:::1;19619:10;:21;;;;19542:106:::0;:::o;19769:118::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19869:10:::1;19849:17;;:30;;;;;;;;;;;;;;;;;;19769:118:::0;:::o;18802:119::-;10046:17;;;;;;;;;;;10032:31;;:10;:31;;;10024:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18872:5:::1;18856:13;;:21;;;;;;;;;;;;;;;;;;18908:5;18888:16;;:25;;;;;;;;;;;;;;;;;;18802:119::o:0;8833:59::-;;;;:::o;8909:56::-;;;;:::o;20132:176::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20196:13:::1;::::0;::::1;;;;;;;;20195:14;20187:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;20257:4;20241:13;::::0;:20:::1;;;;;;;;;;;;;;;;;;20285:15;20272:10;:28;;;;20132:176::o:0;9313:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2870:87::-;2916:7;2943:6;;;;;;;;;;;2936:13;;2870:87;:::o;11769:::-;11808:13;11841:7;11834:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11769:87;:::o;12571:269::-;12664:4;12681:129;12690:12;:10;:12::i;:::-;12704:7;12713:96;12752:15;12713:96;;;;;;;;;;;;;;;;;:11;:25;12725:12;:10;:12::i;:::-;12713:25;;;;;;;;;;;;;;;:34;12739:7;12713:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12681:8;:129::i;:::-;12828:4;12821:11;;12571:269;;;;:::o;13447:167::-;13525:4;13542:42;13552:12;:10;:12::i;:::-;13566:9;13577:6;13542:9;:42::i;:::-;;13602:4;13595:11;;13447:167;;;;:::o;19414:120::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19519:7:::1;19495:15;:21;19511:4;19495:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19414:120:::0;;:::o;19895:229::-;10046:17;;;;;;;;;;;10032:31;;:10;:31;;;10024:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20038:8:::1;20024:11;;:22;;;;;;;;;;;;;;;;;;20071:8;20057:11;;:22;;;;;;;;;;;;;;;;;;20106:10;20090:13;:26;;;;19895:229:::0;;;:::o;9760:25::-;;;;:::o;8598:32::-;;;;;;;;;;;;;:::o;20316:204::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20420:7:::1;20398:12;:19;20411:5;20398:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20441:7;20438:75;;;20494:7;20465:19;:26;20485:5;20465:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20438:75;20316:204:::0;;:::o;9254:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;9625:24::-;;;;:::o;18375:272::-;10046:17;;;;;;;;;;;10032:31;;:10;:31;;;10024:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18475:12:::1;18501:6;18493:20;;18568:9;18579:7;18514:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18493:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18474:114;;;18607:7;18599:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;18463:184;18375:272:::0;;;:::o;12194:143::-;12275:7;12302:11;:18;12314:5;12302:18;;;;;;;;;;;;;;;:27;12321:7;12302:27;;;;;;;;;;;;;;;;12295:34;;12194:143;;;;:::o;19148:122::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19255:7:::1;19229:17;:23;19247:4;19229:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19148:122:::0;;:::o;18189:178::-;10046:17;;;;;;;;;;;10032:31;;:10;:31;;;10024:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18244:7:::1;18264:10;18256:24;;18288:21;18256:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18243:71;;;18333:2;18325:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;18231:136;18189:178::o:0;9475:30::-;;;;;;;;;;;;;:::o;18929:98::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19012:7:::1;18996:13;;:23;;;;;;;;;;;;;;;;;;18929:98:::0;:::o;9696:22::-;;;;;;;;;;;;;:::o;3281:229::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3404:1:::1;3384:22;;:8;:22;;::::0;3362:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3483:19;3493:8;3483:9;:19::i;:::-;3281:229:::0;:::o;9551:35::-;;;;;;;;;;;;;:::o;18655:139::-;3102:12;:10;:12::i;:::-;3091:23;;:7;:5;:7::i;:::-;:23;;;3083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18748:8:::1;18739:6;:17;;;;18777:9;18767:7;:19;;;;18655:139:::0;;:::o;1437:98::-;1490:7;1517:10;1510:17;;1437:98;:::o;13017:337::-;13127:1;13110:19;;:5;:19;;;13102:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13208:1;13189:21;;:7;:21;;;13181:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13292:6;13262:11;:18;13274:5;13262:18;;;;;;;;;;;;;;;:27;13281:7;13262:27;;;;;;;;;;;;;;;:36;;;;13330:7;13314:32;;13323:5;13314:32;;;13339:6;13314:32;;;;;;:::i;:::-;;;;;;;;13017:337;;;:::o;13927:1761::-;14014:4;14059:1;14041:20;;:6;:20;;;14033:29;;;;;;14102:1;14081:23;;:9;:23;;;14073:32;;;;;;14133:1;14124:6;:10;14116:19;;;;;;14156:6;;;;;;;;;;;14152:1527;;;14186:41;14201:6;14209:9;14220:6;14186:14;:41::i;:::-;14179:48;;;;14152:1527;14275:13;;;;;;;;;;14271:139;;14317:17;:25;14335:6;14317:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14346:17;:28;14364:9;14346:28;;;;;;;;;;;;;;;;;;;;;;;;;14317:57;14309:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;14271:139;14426:28;14457:24;14475:4;14457:9;:24::i;:::-;14426:55;;14496:28;14551:13;;14527:20;:37;;14496:68;;14603:23;:52;;;;;14649:6;;;;;;;;;;;14648:7;14603:52;:95;;;;;14678:12;:20;14691:6;14678:20;;;;;;;;;;;;;;;;;;;;;;;;;14677:21;14603:95;:128;;;;;14720:11;;;;;;;;;;;14603:128;:175;;;;;14753:17;:25;14771:6;14753:25;;;;;;;;;;;;;;;;;;;;;;;;;14752:26;14603:175;:225;;;;;14800:17;:28;14818:9;14800:28;;;;;;;;;;;;;;;;;;;;;;;;;14799:29;14603:225;14581:332;;;14867:30;14876:20;14867:8;:30::i;:::-;14581:332;14933:15;:23;14949:6;14933:23;;;;;;;;;;;;;;;;;;;;;;;;;14932:24;:55;;;;;14961:15;:26;14977:9;14961:26;;;;;;;;;;;;;;;;;;;;;;;;;14960:27;14932:55;:72;;;;;14991:13;;;;;;;;;;;14932:72;14929:166;;;15043:12;;15033:6;:22;;15025:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14929:166;15144:53;15166:6;15144:53;;;;;;;;;;;;;;;;;:9;:17;15154:6;15144:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15124:9;:17;15134:6;15124:17;;;;;;;;;;;;;;;:73;;;;15214:19;15236:34;15253:6;15260:9;15236:16;:34::i;:::-;:80;;15282:34;15290:6;15298:9;15309:6;15282:7;:34::i;:::-;15236:80;;;15273:6;15236:80;15214:102;;15336:16;;;;;;;;;;;:51;;;;;15357:19;:30;15377:9;15357:30;;;;;;;;;;;;;;;;;;;;;;;;;15356:31;15336:51;15333:168;;;15457:10;;15416:37;15441:11;15416:20;15426:9;15416;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;15408:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;15333:168;15540:37;15565:11;15540:9;:20;15550:9;15540:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15517:9;:20;15527:9;15517:20;;;;;;;;;;;;;;;:60;;;;15616:9;15599:40;;15608:6;15599:40;;;15627:11;15599:40;;;;;;:::i;:::-;;;;;;;;15661:4;15654:11;;;;;13927:1761;;;;;;:::o;4057:192::-;4143:7;4176:1;4171;:6;;4179:12;4163:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4203:9;4219:1;4215;:5;;;;:::i;:::-;4203:17;;4240:1;4233:8;;;4057:192;;;;;:::o;3724:181::-;3782:7;3802:9;3818:1;3814;:5;;;;:::i;:::-;3802:17;;3843:1;3838;:6;;3830:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3896:1;3889:8;;;3724:181;;;;:::o;3518:173::-;3574:16;3593:6;;;;;;;;;;;3574:25;;3619:8;3610:6;;:17;;;;;;;;;;;;;;;;;;3674:8;3643:40;;3664:8;3643:40;;;;;;;;;;;;3563:128;3518:173;:::o;15696:330::-;15789:4;15826:53;15848:6;15826:53;;;;;;;;;;;;;;;;;:9;:17;15836:6;15826:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15806:9;:17;15816:6;15806:17;;;;;;;;;;;;;;;:73;;;;15913:32;15938:6;15913:9;:20;15923:9;15913:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15890:9;:20;15900:9;15890:20;;;;;;;;;;;;;;;:55;;;;15978:9;15961:35;;15970:6;15961:35;;;15989:6;15961:35;;;;;;:::i;:::-;;;;;;;;16014:4;16007:11;;15696:330;;;;;:::o;17115:408::-;10149:4;10140:6;;:13;;;;;;;;;;;;;;;;;;17189:11:::1;;;;;;;;;;;17186:47;;;17220:13;;17202:31;;17186:47;17246:22;17271:21;17246:46;;17303:33;17320:15;17303:16;:33::i;:::-;17347:22;17372:41;17398:14;17372:21;:25;;:41;;;;:::i;:::-;17347:66;;17446:1;17429:14;:18;17426:87;;;17470:17;;;;;;;;;;;17462:35;;:51;17498:14;17462:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17426:87;17173:350;;10185:5:::0;10176:6;;:14;;;;;;;;;;;;;;;;;;17115:408;:::o;16038:369::-;16122:4;16142:17;:25;16160:6;16142:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;16171:17;:28;16189:9;16171:28;;;;;;;;;;;;;;;;;;;;;;;;;16142:57;16139:261;;;16223:4;16216:11;;;;16139:261;16258:12;:20;16271:6;16258:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;16282:12;:23;16295:9;16282:23;;;;;;;;;;;;;;;;;;;;;;;;;16258:47;16254:146;;;16329:5;16322:12;;;;16254:146;16383:5;16376:12;;16038:369;;;;;:::o;16415:690::-;16501:7;16531:14;16588:12;:20;16601:6;16588:20;;;;;;;;;;;;;;;;;;;;;;;;;16585:246;;;16642:38;16665:14;;16642:18;16653:6;;16642;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;16630:50;;16585:246;;;16719:12;:23;16732:9;16719:23;;;;;;;;;;;;;;;;;;;;;;;;;16716:115;;;16776:39;16800:14;;16776:19;16787:7;;16776:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;16764:51;;16716:115;16585:246;16862:1;16850:9;:13;16847:185;;;16911:39;16940:9;16911;:24;16929:4;16911:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16884:9;:24;16902:4;16884:24;;;;;;;;;;;;;;;:66;;;;16999:4;16974:42;;16983:6;16974:42;;;17006:9;16974:42;;;;;;:::i;:::-;;;;;;;;16847:185;17055:21;17066:9;17055:6;:10;;:21;;;;:::i;:::-;17048:28;;;16415:690;;;;;:::o;17533:648::-;17659:21;17697:1;17683:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17659:40;;17728:4;17710;17715:1;17710:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17754:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17744:4;17749:1;17744:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;17783:56;17800:4;17815:9;;;;;;;;;;;17827:11;17783:8;:56::i;:::-;17878:9;;;;;;;;;;;:60;;;17953:11;17979:1;18023:4;18050;18086:15;17878:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18138:35;18155:11;18168:4;18138:35;;;;;;;:::i;:::-;;;;;;;;17588:593;17533:648;:::o;3913:136::-;3971:7;3998:43;4002:1;4005;3998:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3991:50;;3913:136;;;;:::o;4257:250::-;4315:7;4344:1;4339;:6;4335:47;;4369:1;4362:8;;;;4335:47;4394:9;4410:1;4406;:5;;;;:::i;:::-;4394:17;;4439:1;4434;4430;:5;;;;:::i;:::-;:10;4422:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4498:1;4491:8;;;4257:250;;;;;:::o;4515:132::-;4573:7;4600:39;4604:1;4607;4600:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4593:46;;4515:132;;;;:::o;4655:278::-;4741:7;4773:1;4769;:5;4776:12;4761:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4800:9;4816:1;4812;:5;;;;:::i;:::-;4800:17;;4924:1;4917:8;;;4655:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2869:96::-;2906:7;2935:24;2953:5;2935:24;:::i;:::-;2924:35;;2869:96;;;:::o;2971:118::-;3058:24;3076:5;3058:24;:::i;:::-;3053:3;3046:37;2971:118;;:::o;3095:222::-;3188:4;3226:2;3215:9;3211:18;3203:26;;3239:71;3307:1;3296:9;3292:17;3283:6;3239:71;:::i;:::-;3095:222;;;;:::o;3404:117::-;3513:1;3510;3503:12;3650:122;3723:24;3741:5;3723:24;:::i;:::-;3716:5;3713:35;3703:63;;3762:1;3759;3752:12;3703:63;3650:122;:::o;3778:139::-;3824:5;3862:6;3849:20;3840:29;;3878:33;3905:5;3878:33;:::i;:::-;3778:139;;;;:::o;3923:122::-;3996:24;4014:5;3996:24;:::i;:::-;3989:5;3986:35;3976:63;;4035:1;4032;4025:12;3976:63;3923:122;:::o;4051:139::-;4097:5;4135:6;4122:20;4113:29;;4151:33;4178:5;4151:33;:::i;:::-;4051:139;;;;:::o;4196:474::-;4264:6;4272;4321:2;4309:9;4300:7;4296:23;4292:32;4289:119;;;4327:79;;:::i;:::-;4289:119;4447:1;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4418:117;4574:2;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4545:118;4196:474;;;;;:::o;4676:90::-;4710:7;4753:5;4746:13;4739:21;4728:32;;4676:90;;;:::o;4772:109::-;4853:21;4868:5;4853:21;:::i;:::-;4848:3;4841:34;4772:109;;:::o;4887:210::-;4974:4;5012:2;5001:9;4997:18;4989:26;;5025:65;5087:1;5076:9;5072:17;5063:6;5025:65;:::i;:::-;4887:210;;;;:::o;5103:619::-;5180:6;5188;5196;5245:2;5233:9;5224:7;5220:23;5216:32;5213:119;;;5251:79;;:::i;:::-;5213:119;5371:1;5396:53;5441:7;5432:6;5421:9;5417:22;5396:53;:::i;:::-;5386:63;;5342:117;5498:2;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5469:118;5626:2;5652:53;5697:7;5688:6;5677:9;5673:22;5652:53;:::i;:::-;5642:63;;5597:118;5103:619;;;;;:::o;5728:86::-;5763:7;5803:4;5796:5;5792:16;5781:27;;5728:86;;;:::o;5820:112::-;5903:22;5919:5;5903:22;:::i;:::-;5898:3;5891:35;5820:112;;:::o;5938:214::-;6027:4;6065:2;6054:9;6050:18;6042:26;;6078:67;6142:1;6131:9;6127:17;6118:6;6078:67;:::i;:::-;5938:214;;;;:::o;6158:329::-;6217:6;6266:2;6254:9;6245:7;6241:23;6237:32;6234:119;;;6272:79;;:::i;:::-;6234:119;6392:1;6417:53;6462:7;6453:6;6442:9;6438:22;6417:53;:::i;:::-;6407:63;;6363:117;6158:329;;;;:::o;6493:116::-;6563:21;6578:5;6563:21;:::i;:::-;6556:5;6553:32;6543:60;;6599:1;6596;6589:12;6543:60;6493:116;:::o;6615:133::-;6658:5;6696:6;6683:20;6674:29;;6712:30;6736:5;6712:30;:::i;:::-;6615:133;;;;:::o;6754:323::-;6810:6;6859:2;6847:9;6838:7;6834:23;6830:32;6827:119;;;6865:79;;:::i;:::-;6827:119;6985:1;7010:50;7052:7;7043:6;7032:9;7028:22;7010:50;:::i;:::-;7000:60;;6956:114;6754:323;;;;:::o;7083:329::-;7142:6;7191:2;7179:9;7170:7;7166:23;7162:32;7159:119;;;7197:79;;:::i;:::-;7159:119;7317:1;7342:53;7387:7;7378:6;7367:9;7363:22;7342:53;:::i;:::-;7332:63;;7288:117;7083:329;;;;:::o;7418:468::-;7483:6;7491;7540:2;7528:9;7519:7;7515:23;7511:32;7508:119;;;7546:79;;:::i;:::-;7508:119;7666:1;7691:53;7736:7;7727:6;7716:9;7712:22;7691:53;:::i;:::-;7681:63;;7637:117;7793:2;7819:50;7861:7;7852:6;7841:9;7837:22;7819:50;:::i;:::-;7809:60;;7764:115;7418:468;;;;;:::o;7892:607::-;7963:6;7971;7979;8028:2;8016:9;8007:7;8003:23;7999:32;7996:119;;;8034:79;;:::i;:::-;7996:119;8154:1;8179:53;8224:7;8215:6;8204:9;8200:22;8179:53;:::i;:::-;8169:63;;8125:117;8281:2;8307:50;8349:7;8340:6;8329:9;8325:22;8307:50;:::i;:::-;8297:60;;8252:115;8406:2;8432:50;8474:7;8465:6;8454:9;8450:22;8432:50;:::i;:::-;8422:60;;8377:115;7892:607;;;;;:::o;8505:474::-;8573:6;8581;8630:2;8618:9;8609:7;8605:23;8601:32;8598:119;;;8636:79;;:::i;:::-;8598:119;8756:1;8781:53;8826:7;8817:6;8806:9;8802:22;8781:53;:::i;:::-;8771:63;;8727:117;8883:2;8909:53;8954:7;8945:6;8934:9;8930:22;8909:53;:::i;:::-;8899:63;;8854:118;8505:474;;;;;:::o;8985:::-;9053:6;9061;9110:2;9098:9;9089:7;9085:23;9081:32;9078:119;;;9116:79;;:::i;:::-;9078:119;9236:1;9261:53;9306:7;9297:6;9286:9;9282:22;9261:53;:::i;:::-;9251:63;;9207:117;9363:2;9389:53;9434:7;9425:6;9414:9;9410:22;9389:53;:::i;:::-;9379:63;;9334:118;8985:474;;;;;:::o;9465:180::-;9513:77;9510:1;9503:88;9610:4;9607:1;9600:15;9634:4;9631:1;9624:15;9651:320;9695:6;9732:1;9726:4;9722:12;9712:22;;9779:1;9773:4;9769:12;9800:18;9790:81;;9856:4;9848:6;9844:17;9834:27;;9790:81;9918:2;9910:6;9907:14;9887:18;9884:38;9881:84;;9937:18;;:::i;:::-;9881:84;9702:269;9651:320;;;:::o;9977:182::-;10117:34;10113:1;10105:6;10101:14;10094:58;9977:182;:::o;10165:366::-;10307:3;10328:67;10392:2;10387:3;10328:67;:::i;:::-;10321:74;;10404:93;10493:3;10404:93;:::i;:::-;10522:2;10517:3;10513:12;10506:19;;10165:366;;;:::o;10537:419::-;10703:4;10741:2;10730:9;10726:18;10718:26;;10790:9;10784:4;10780:20;10776:1;10765:9;10761:17;10754:47;10818:131;10944:4;10818:131;:::i;:::-;10810:139;;10537:419;;;:::o;10962:164::-;11102:16;11098:1;11090:6;11086:14;11079:40;10962:164;:::o;11132:366::-;11274:3;11295:67;11359:2;11354:3;11295:67;:::i;:::-;11288:74;;11371:93;11460:3;11371:93;:::i;:::-;11489:2;11484:3;11480:12;11473:19;;11132:366;;;:::o;11504:419::-;11670:4;11708:2;11697:9;11693:18;11685:26;;11757:9;11751:4;11747:20;11743:1;11732:9;11728:17;11721:47;11785:131;11911:4;11785:131;:::i;:::-;11777:139;;11504:419;;;:::o;11929:164::-;12069:16;12065:1;12057:6;12053:14;12046:40;11929:164;:::o;12099:366::-;12241:3;12262:67;12326:2;12321:3;12262:67;:::i;:::-;12255:74;;12338:93;12427:3;12338:93;:::i;:::-;12456:2;12451:3;12447:12;12440:19;;12099:366;;;:::o;12471:419::-;12637:4;12675:2;12664:9;12660:18;12652:26;;12724:9;12718:4;12714:20;12710:1;12699:9;12695:17;12688:47;12752:131;12878:4;12752:131;:::i;:::-;12744:139;;12471:419;;;:::o;12896:332::-;13017:4;13055:2;13044:9;13040:18;13032:26;;13068:71;13136:1;13125:9;13121:17;13112:6;13068:71;:::i;:::-;13149:72;13217:2;13206:9;13202:18;13193:6;13149:72;:::i;:::-;12896:332;;;;;:::o;13234:98::-;13285:6;13319:5;13313:12;13303:22;;13234:98;;;:::o;13338:147::-;13439:11;13476:3;13461:18;;13338:147;;;;:::o;13491:386::-;13595:3;13623:38;13655:5;13623:38;:::i;:::-;13677:88;13758:6;13753:3;13677:88;:::i;:::-;13670:95;;13774:65;13832:6;13827:3;13820:4;13813:5;13809:16;13774:65;:::i;:::-;13864:6;13859:3;13855:16;13848:23;;13599:278;13491:386;;;;:::o;13883:271::-;14013:3;14035:93;14124:3;14115:6;14035:93;:::i;:::-;14028:100;;14145:3;14138:10;;13883:271;;;;:::o;14160:170::-;14300:22;14296:1;14288:6;14284:14;14277:46;14160:170;:::o;14336:366::-;14478:3;14499:67;14563:2;14558:3;14499:67;:::i;:::-;14492:74;;14575:93;14664:3;14575:93;:::i;:::-;14693:2;14688:3;14684:12;14677:19;;14336:366;;;:::o;14708:419::-;14874:4;14912:2;14901:9;14897:18;14889:26;;14961:9;14955:4;14951:20;14947:1;14936:9;14932:17;14925:47;14989:131;15115:4;14989:131;:::i;:::-;14981:139;;14708:419;;;:::o;15133:114::-;;:::o;15253:398::-;15412:3;15433:83;15514:1;15509:3;15433:83;:::i;:::-;15426:90;;15525:93;15614:3;15525:93;:::i;:::-;15643:1;15638:3;15634:11;15627:18;;15253:398;;;:::o;15657:379::-;15841:3;15863:147;16006:3;15863:147;:::i;:::-;15856:154;;16027:3;16020:10;;15657:379;;;:::o;16042:170::-;16182:22;16178:1;16170:6;16166:14;16159:46;16042:170;:::o;16218:366::-;16360:3;16381:67;16445:2;16440:3;16381:67;:::i;:::-;16374:74;;16457:93;16546:3;16457:93;:::i;:::-;16575:2;16570:3;16566:12;16559:19;;16218:366;;;:::o;16590:419::-;16756:4;16794:2;16783:9;16779:18;16771:26;;16843:9;16837:4;16833:20;16829:1;16818:9;16814:17;16807:47;16871:131;16997:4;16871:131;:::i;:::-;16863:139;;16590:419;;;:::o;17015:225::-;17155:34;17151:1;17143:6;17139:14;17132:58;17224:8;17219:2;17211:6;17207:15;17200:33;17015:225;:::o;17246:366::-;17388:3;17409:67;17473:2;17468:3;17409:67;:::i;:::-;17402:74;;17485:93;17574:3;17485:93;:::i;:::-;17603:2;17598:3;17594:12;17587:19;;17246:366;;;:::o;17618:419::-;17784:4;17822:2;17811:9;17807:18;17799:26;;17871:9;17865:4;17861:20;17857:1;17846:9;17842:17;17835:47;17899:131;18025:4;17899:131;:::i;:::-;17891:139;;17618:419;;;:::o;18043:223::-;18183:34;18179:1;18171:6;18167:14;18160:58;18252:6;18247:2;18239:6;18235:15;18228:31;18043:223;:::o;18272:366::-;18414:3;18435:67;18499:2;18494:3;18435:67;:::i;:::-;18428:74;;18511:93;18600:3;18511:93;:::i;:::-;18629:2;18624:3;18620:12;18613:19;;18272:366;;;:::o;18644:419::-;18810:4;18848:2;18837:9;18833:18;18825:26;;18897:9;18891:4;18887:20;18883:1;18872:9;18868:17;18861:47;18925:131;19051:4;18925:131;:::i;:::-;18917:139;;18644:419;;;:::o;19069:221::-;19209:34;19205:1;19197:6;19193:14;19186:58;19278:4;19273:2;19265:6;19261:15;19254:29;19069:221;:::o;19296:366::-;19438:3;19459:67;19523:2;19518:3;19459:67;:::i;:::-;19452:74;;19535:93;19624:3;19535:93;:::i;:::-;19653:2;19648:3;19644:12;19637:19;;19296:366;;;:::o;19668:419::-;19834:4;19872:2;19861:9;19857:18;19849:26;;19921:9;19915:4;19911:20;19907:1;19896:9;19892:17;19885:47;19949:131;20075:4;19949:131;:::i;:::-;19941:139;;19668:419;;;:::o;20093:164::-;20233:16;20229:1;20221:6;20217:14;20210:40;20093:164;:::o;20263:366::-;20405:3;20426:67;20490:2;20485:3;20426:67;:::i;:::-;20419:74;;20502:93;20591:3;20502:93;:::i;:::-;20620:2;20615:3;20611:12;20604:19;;20263:366;;;:::o;20635:419::-;20801:4;20839:2;20828:9;20824:18;20816:26;;20888:9;20882:4;20878:20;20874:1;20863:9;20859:17;20852:47;20916:131;21042:4;20916:131;:::i;:::-;20908:139;;20635:419;;;:::o;21060:169::-;21200:21;21196:1;21188:6;21184:14;21177:45;21060:169;:::o;21235:366::-;21377:3;21398:67;21462:2;21457:3;21398:67;:::i;:::-;21391:74;;21474:93;21563:3;21474:93;:::i;:::-;21592:2;21587:3;21583:12;21576:19;;21235:366;;;:::o;21607:419::-;21773:4;21811:2;21800:9;21796:18;21788:26;;21860:9;21854:4;21850:20;21846:1;21835:9;21831:17;21824:47;21888:131;22014:4;21888:131;:::i;:::-;21880:139;;21607:419;;;:::o;22032:164::-;22172:16;22168:1;22160:6;22156:14;22149:40;22032:164;:::o;22202:366::-;22344:3;22365:67;22429:2;22424:3;22365:67;:::i;:::-;22358:74;;22441:93;22530:3;22441:93;:::i;:::-;22559:2;22554:3;22550:12;22543:19;;22202:366;;;:::o;22574:419::-;22740:4;22778:2;22767:9;22763:18;22755:26;;22827:9;22821:4;22817:20;22813:1;22802:9;22798:17;22791:47;22855:131;22981:4;22855:131;:::i;:::-;22847:139;;22574:419;;;:::o;22999:180::-;23047:77;23044:1;23037:88;23144:4;23141:1;23134:15;23168:4;23165:1;23158:15;23185:194;23225:4;23245:20;23263:1;23245:20;:::i;:::-;23240:25;;23279:20;23297:1;23279:20;:::i;:::-;23274:25;;23323:1;23320;23316:9;23308:17;;23347:1;23341:4;23338:11;23335:37;;;23352:18;;:::i;:::-;23335:37;23185:194;;;;:::o;23385:191::-;23425:3;23444:20;23462:1;23444:20;:::i;:::-;23439:25;;23478:20;23496:1;23478:20;:::i;:::-;23473:25;;23521:1;23518;23514:9;23507:16;;23542:3;23539:1;23536:10;23533:36;;;23549:18;;:::i;:::-;23533:36;23385:191;;;;:::o;23582:177::-;23722:29;23718:1;23710:6;23706:14;23699:53;23582:177;:::o;23765:366::-;23907:3;23928:67;23992:2;23987:3;23928:67;:::i;:::-;23921:74;;24004:93;24093:3;24004:93;:::i;:::-;24122:2;24117:3;24113:12;24106:19;;23765:366;;;:::o;24137:419::-;24303:4;24341:2;24330:9;24326:18;24318:26;;24390:9;24384:4;24380:20;24376:1;24365:9;24361:17;24354:47;24418:131;24544:4;24418:131;:::i;:::-;24410:139;;24137:419;;;:::o;24562:180::-;24610:77;24607:1;24600:88;24707:4;24704:1;24697:15;24731:4;24728:1;24721:15;24748:180;24796:77;24793:1;24786:88;24893:4;24890:1;24883:15;24917:4;24914:1;24907:15;24934:143;24991:5;25022:6;25016:13;25007:22;;25038:33;25065:5;25038:33;:::i;:::-;24934:143;;;;:::o;25083:351::-;25153:6;25202:2;25190:9;25181:7;25177:23;25173:32;25170:119;;;25208:79;;:::i;:::-;25170:119;25328:1;25353:64;25409:7;25400:6;25389:9;25385:22;25353:64;:::i;:::-;25343:74;;25299:128;25083:351;;;;:::o;25440:85::-;25485:7;25514:5;25503:16;;25440:85;;;:::o;25531:158::-;25589:9;25622:61;25640:42;25649:32;25675:5;25649:32;:::i;:::-;25640:42;:::i;:::-;25622:61;:::i;:::-;25609:74;;25531:158;;;:::o;25695:147::-;25790:45;25829:5;25790:45;:::i;:::-;25785:3;25778:58;25695:147;;:::o;25848:114::-;25915:6;25949:5;25943:12;25933:22;;25848:114;;;:::o;25968:184::-;26067:11;26101:6;26096:3;26089:19;26141:4;26136:3;26132:14;26117:29;;25968:184;;;;:::o;26158:132::-;26225:4;26248:3;26240:11;;26278:4;26273:3;26269:14;26261:22;;26158:132;;;:::o;26296:108::-;26373:24;26391:5;26373:24;:::i;:::-;26368:3;26361:37;26296:108;;:::o;26410:179::-;26479:10;26500:46;26542:3;26534:6;26500:46;:::i;:::-;26578:4;26573:3;26569:14;26555:28;;26410:179;;;;:::o;26595:113::-;26665:4;26697;26692:3;26688:14;26680:22;;26595:113;;;:::o;26744:732::-;26863:3;26892:54;26940:5;26892:54;:::i;:::-;26962:86;27041:6;27036:3;26962:86;:::i;:::-;26955:93;;27072:56;27122:5;27072:56;:::i;:::-;27151:7;27182:1;27167:284;27192:6;27189:1;27186:13;27167:284;;;27268:6;27262:13;27295:63;27354:3;27339:13;27295:63;:::i;:::-;27288:70;;27381:60;27434:6;27381:60;:::i;:::-;27371:70;;27227:224;27214:1;27211;27207:9;27202:14;;27167:284;;;27171:14;27467:3;27460:10;;26868:608;;;26744:732;;;;:::o;27482:831::-;27745:4;27783:3;27772:9;27768:19;27760:27;;27797:71;27865:1;27854:9;27850:17;27841:6;27797:71;:::i;:::-;27878:80;27954:2;27943:9;27939:18;27930:6;27878:80;:::i;:::-;28005:9;27999:4;27995:20;27990:2;27979:9;27975:18;27968:48;28033:108;28136:4;28127:6;28033:108;:::i;:::-;28025:116;;28151:72;28219:2;28208:9;28204:18;28195:6;28151:72;:::i;:::-;28233:73;28301:3;28290:9;28286:19;28277:6;28233:73;:::i;:::-;27482:831;;;;;;;;:::o;28319:483::-;28490:4;28528:2;28517:9;28513:18;28505:26;;28541:71;28609:1;28598:9;28594:17;28585:6;28541:71;:::i;:::-;28659:9;28653:4;28649:20;28644:2;28633:9;28629:18;28622:48;28687:108;28790:4;28781:6;28687:108;:::i;:::-;28679:116;;28319:483;;;;;:::o;28808:410::-;28848:7;28871:20;28889:1;28871:20;:::i;:::-;28866:25;;28905:20;28923:1;28905:20;:::i;:::-;28900:25;;28960:1;28957;28953:9;28982:30;29000:11;28982:30;:::i;:::-;28971:41;;29161:1;29152:7;29148:15;29145:1;29142:22;29122:1;29115:9;29095:83;29072:139;;29191:18;;:::i;:::-;29072:139;28856:362;28808:410;;;;:::o;29224:180::-;29272:77;29269:1;29262:88;29369:4;29366:1;29359:15;29393:4;29390:1;29383:15;29410:185;29450:1;29467:20;29485:1;29467:20;:::i;:::-;29462:25;;29501:20;29519:1;29501:20;:::i;:::-;29496:25;;29540:1;29530:35;;29545:18;;:::i;:::-;29530:35;29587:1;29584;29580:9;29575:14;;29410:185;;;;:::o;29601:220::-;29741:34;29737:1;29729:6;29725:14;29718:58;29810:3;29805:2;29797:6;29793:15;29786:28;29601:220;:::o;29827:366::-;29969:3;29990:67;30054:2;30049:3;29990:67;:::i;:::-;29983:74;;30066:93;30155:3;30066:93;:::i;:::-;30184:2;30179:3;30175:12;30168:19;;29827:366;;;:::o;30199:419::-;30365:4;30403:2;30392:9;30388:18;30380:26;;30452:9;30446:4;30442:20;30438:1;30427:9;30423:17;30416:47;30480:131;30606:4;30480:131;:::i;:::-;30472:139;;30199:419;;;:::o

Swarm Source

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