ETH Price: $3,271.43 (-1.31%)

Token

HarryPotterObamaSonicNaughtiusMaximus10Inu (XDOGECoin)
 

Overview

Max Total Supply

1,000,000,000 XDOGECoin

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,053,996.842017267 XDOGECoin

Value
$0.00
0x29cddf69f8aa3cf55752ffafcced4581f9b24dca
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:
XDOGECoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// https://t.me/hposnm10i

// https://hposnm10i.com/

// https://x.com/hposnm10inu

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

    using SafeMath for uint256;

    string private _name = "HarryPotterObamaSonicNaughtiusMaximus10Inu";
    string private _symbol = "XDOGECoin"; 
    uint8 private _decimals = 9; 

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

    uint256 public totalBuyFee = 150;
    uint256 public totalSellFee = 150;

    address public MarketingWallet = address(0x3Bdb0F025F08640B60957a869E99996302c2886c);
    
    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;
    mapping (address => bool) public isBot;

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 feedenominator = 1000;

    uint256 public _maxTxAmount =  _totalSupply.mul(10).div(1000);    
    uint256 public _walletMax = _totalSupply.mul(10).div(1000);    
    uint256 public swapThreshold = 20_100 * 10**_decimals;

    bool public trading; 

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

    mapping (address => bool) public isTokenWL;

    IDexSwapRouter public DexRouter;
    address public DexPair;

    bool inSwap;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        DexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(DexRouter)] = true;
        isExcludedFromFee[address(MarketingWallet)] = true;

        isTokenWL[address(msg.sender)] = true;
        isTokenWL[address(this)] = true;
        isTokenWL[address(DexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(DexPair)] = true;
        isWalletLimitExempt[address(DexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[address(MarketingWallet)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(DexRouter)] = true;
        isTxLimitExempt[address(MarketingWallet)] = true;

        isMarketPair[address(DexPair)] = true;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);
        _allowances[address(this)][address(DexPair)] = ~uint256(0);

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

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

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

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

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

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

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

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

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

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

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

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

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

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        require(!isBot[sender], "ERC20: Bot detected");
        require(!isBot[msg.sender], "ERC20: Bot detected");
        require(!isBot[tx.origin], "ERC20: Bot detected");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!isTokenWL[sender] && !isTokenWL[recipient]) {
                require(trading, "ERC20: trading not enable yet");
            }

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

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }
            
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the 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,"Max Wallet Limit Exceeded!!");
            }

            _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]) { //buy
                feeAmount = amount.mul(totalBuyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { //sell
                feeAmount = amount.mul(totalSellFee).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 {

        uint256 totalShares = totalBuyFee.add(totalSellFee);

        if(totalShares == 0) return;

        if(swapByLimit) {
            contractBalance =  swapThreshold;
        }

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

        if(amountReceived > 0) payable(MarketingWallet).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 startTrading() external onlyOwner {
        require(!trading, "ERC20: Already Enabled");
        trading = true;
    }

    //To Rescue Stucked Balance
    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyOwner {
        adr.transfer(recipient,amount);
    }

    function updateSetting(address[] calldata _adr, bool _status) external onlyOwner {
        for(uint i = 0; i < _adr.length; i++){
            isTokenWL[_adr[i]] = _status;
        }
    }

    function addOrRemoveBots(address[] calldata accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; i++) {
            isBot[accounts[i]] = value;
        }
    }

    function setBuyFee(uint _newBuy, uint _newSell) external onlyOwner {
        totalBuyFee = _newBuy;
        totalSellFee = _newSell;
    }

    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 setMarketingWallet(address _newWallet) external onlyOwner {
        MarketingWallet = _newWallet;
    }

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

    function setSwapBackSettings(bool _enabled, uint256 _amount, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        swapByLimit = _limited;
    }

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

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


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","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":"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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemoveBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"isTokenWL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"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":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapByLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","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":[{"internalType":"address[]","name":"_adr","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060600160405280602a8152602001620064e0602a9139600190816200002e91906200132c565b506040518060400160405280600981526020017f58444f4745436f696e0000000000000000000000000000000000000000000000815250600290816200007591906200132c565b50600960035f6101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525060966004556096600555733bdb0f025f08640b60957a869e99996302c2886c60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900460ff16600a62000174919062001599565b633b9aca00620001859190620015e9565b600e556103e8600f55620001bc6103e8620001ad600a600e5462000ec960201b90919060201c565b62000f4960201b90919060201c565b601055620001ed6103e8620001de600a600e5462000ec960201b90919060201c565b62000f4960201b90919060201c565b60115560035f9054906101000a900460ff16600a6200020d919062001599565b614e846200021c9190620015e9565b6012556001601360016101000a81548160ff0219169083151502179055506001601360026101000a81548160ff0219169083151502179055506001601360036101000a81548160ff0219169083151502179055506001601360046101000a81548160ff02191690831515021790555034801562000297575f80fd5b50620002b8620002ac62000f9a60201b60201c565b62000fa160201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000340919062001698565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003cc919062001698565b6040518363ffffffff1660e01b8152600401620003eb929190620016d9565b6020604051808303815f875af115801562000408573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042e919062001698565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f1960085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f1960085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600e5460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000eba919062001715565b60405180910390a350620018d4565b5f80830362000edb575f905062000f43565b5f828462000eea9190620015e9565b905082848262000efb91906200175d565b1462000f3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f359062001818565b60405180910390fd5b809150505b92915050565b5f62000f9283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200106260201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083118290620010ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010a29190620018b2565b60405180910390fd5b505f8385620010bb91906200175d565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200114457607f821691505b6020821081036200115a5762001159620010ff565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620011be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001181565b620011ca868362001181565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620012146200120e6200120884620011e2565b620011eb565b620011e2565b9050919050565b5f819050919050565b6200122f83620011f4565b620012476200123e826200121b565b8484546200118d565b825550505050565b5f90565b6200125d6200124f565b6200126a81848462001224565b505050565b5b818110156200129157620012855f8262001253565b60018101905062001270565b5050565b601f821115620012e057620012aa8162001160565b620012b58462001172565b81016020851015620012c5578190505b620012dd620012d48562001172565b8301826200126f565b50505b505050565b5f82821c905092915050565b5f620013025f1984600802620012e5565b1980831691505092915050565b5f6200131c8383620012f1565b9150826002028217905092915050565b6200133782620010c8565b67ffffffffffffffff811115620013535762001352620010d2565b5b6200135f82546200112c565b6200136c82828562001295565b5f60209050601f831160018114620013a2575f84156200138d578287015190505b6200139985826200130f565b86555062001408565b601f198416620013b28662001160565b5f5b82811015620013db57848901518255600182019150602085019450602081019050620013b4565b86831015620013fb5784890151620013f7601f891682620012f1565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200149a5780860481111562001472576200147162001410565b5b6001851615620014825780820291505b808102905062001492856200143d565b945062001452565b94509492505050565b5f82620014b4576001905062001586565b81620014c3575f905062001586565b8160018114620014dc5760028114620014e7576200151d565b600191505062001586565b60ff841115620014fc57620014fb62001410565b5b8360020a91508482111562001516576200151562001410565b5b5062001586565b5060208310610133831016604e8410600b8410161715620015575782820a90508381111562001551576200155062001410565b5b62001586565b62001566848484600162001449565b9250905081840481111562001580576200157f62001410565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620015a582620011e2565b9150620015b2836200158d565b9250620015e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620014a3565b905092915050565b5f620015f582620011e2565b91506200160283620011e2565b92508282026200161281620011e2565b915082820484148315176200162c576200162b62001410565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620016628262001637565b9050919050565b620016748162001656565b81146200167f575f80fd5b50565b5f81519050620016928162001669565b92915050565b5f60208284031215620016b057620016af62001633565b5b5f620016bf8482850162001682565b91505092915050565b620016d38162001656565b82525050565b5f604082019050620016ee5f830185620016c8565b620016fd6020830184620016c8565b9392505050565b6200170f81620011e2565b82525050565b5f6020820190506200172a5f83018462001704565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200176982620011e2565b91506200177683620011e2565b92508262001789576200178862001730565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200180060218362001794565b91506200180d82620017a4565b604082019050919050565b5f6020820190508181035f8301526200183181620017f2565b9050919050565b5f5b83811015620018575780820151818401526020810190506200183a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200187e82620010c8565b6200188a818562001794565b93506200189c81856020860162001838565b620018a78162001862565b840191505092915050565b5f6020820190508181035f830152620018cc818462001872565b905092915050565b60805160a051614bdc620019045f395f8181610d5601526110e601525f8181610fd401526111120152614bdc5ff3fe608060405260043610610338575f3560e01c8063715018a6116101aa578063a9059cbb116100f6578063e6b2603b11610094578063f2fde38b1161006e578063f2fde38b14610c09578063f71b9bbf14610c31578063f872858a14610c59578063fb0ecfa414610c835761033f565b8063e6b2603b14610ba1578063ec44acf214610bb7578063ee828db314610be15761033f565b8063c867d60b116100d0578063c867d60b14610ad9578063cea9d26f14610b15578063dd62ed3e14610b3d578063df8408fe14610b795761033f565b8063a9059cbb14610a4d578063ae85ade614610a89578063c16dd4a414610ab15761033f565b8063807c2d9c1161016357806395d89b411161013d57806395d89b411461099557806395fc8fdf146109bf5780639d9241ec146109e7578063a457c2d714610a115761033f565b8063807c2d9c146109055780638b42507f1461092f5780638da5cb5b1461096b5761033f565b8063715018a61461082157806372460e7f14610837578063728d41c914610861578063736ce0d4146108895780637d1db4a5146108b35780637daf4b2b146108dd5761033f565b8063313ce5671161028457806359fac517116102225780635e42358c116101fc5780635e42358c14610769578063651a8987146107935780636ddd1713146107bb57806370a08231146107e55761033f565b806359fac517146106f15780635c85974f146107195780635d098b38146107415761033f565b80633ecad2711161025e5780633ecad271146106275780634974d88f146106635780635342acb41461068b57806359b107b9146106c75761033f565b8063313ce5671461058557806339509351146105af5780633bbac579146105eb5761033f565b806310a60f02116102f15780632598cdb2116102cb5780632598cdb2146104f157806327c8f8351461051b578063293230b8146105455780632b112e491461055b5761033f565b806310a60f021461046357806318160ddd1461048b57806323b872dd146104b55761033f565b80630445b667146103435780630634f4381461036d57806306fdde03146103975780630930907b146103c1578063095ea7b3146103eb5780630f3fc431146104275761033f565b3661033f57005b5f80fd5b34801561034e575f80fd5b50610357610cab565b60405161036491906139a8565b60405180910390f35b348015610378575f80fd5b50610381610cb1565b60405161038e91906139db565b60405180910390f35b3480156103a2575f80fd5b506103ab610cc4565b6040516103b89190613a7e565b60405180910390f35b3480156103cc575f80fd5b506103d5610d54565b6040516103e29190613add565b60405180910390f35b3480156103f6575f80fd5b50610411600480360381019061040c9190613b52565b610d78565b60405161041e91906139db565b60405180910390f35b348015610432575f80fd5b5061044d60048036038101906104489190613b90565b610d95565b60405161045a91906139db565b60405180910390f35b34801561046e575f80fd5b5061048960048036038101906104849190613c46565b610db2565b005b348015610496575f80fd5b5061049f610ecf565b6040516104ac91906139a8565b60405180910390f35b3480156104c0575f80fd5b506104db60048036038101906104d69190613ca3565b610ed8565b6040516104e891906139db565b60405180910390f35b3480156104fc575f80fd5b50610505610fad565b6040516105129190613add565b60405180910390f35b348015610526575f80fd5b5061052f610fd2565b60405161053c9190613add565b60405180910390f35b348015610550575f80fd5b50610559610ff6565b005b348015610566575f80fd5b5061056f6110dd565b60405161057c91906139a8565b60405180910390f35b348015610590575f80fd5b5061059961115a565b6040516105a69190613d0e565b60405180910390f35b3480156105ba575f80fd5b506105d560048036038101906105d09190613b52565b61116f565b6040516105e291906139db565b60405180910390f35b3480156105f6575f80fd5b50610611600480360381019061060c9190613b90565b61121d565b60405161061e91906139db565b60405180910390f35b348015610632575f80fd5b5061064d60048036038101906106489190613b90565b61123a565b60405161065a91906139db565b60405180910390f35b34801561066e575f80fd5b5061068960048036038101906106849190613d27565b611257565b005b348015610696575f80fd5b506106b160048036038101906106ac9190613b90565b6112f0565b6040516106be91906139db565b60405180910390f35b3480156106d2575f80fd5b506106db61130d565b6040516106e891906139a8565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190613b90565b611313565b005b348015610724575f80fd5b5061073f600480360381019061073a9190613d52565b6113d2565b005b34801561074c575f80fd5b5061076760048036038101906107629190613b90565b611458565b005b348015610774575f80fd5b5061077d611517565b60405161078a91906139db565b60405180910390f35b34801561079e575f80fd5b506107b960048036038101906107b49190613d7d565b61152a565b005b3480156107c6575f80fd5b506107cf6115fe565b6040516107dc91906139db565b60405180910390f35b3480156107f0575f80fd5b5061080b60048036038101906108069190613b90565b611611565b60405161081891906139a8565b60405180910390f35b34801561082c575f80fd5b50610835611657565b005b348015610842575f80fd5b5061084b6116de565b6040516108589190613add565b60405180910390f35b34801561086c575f80fd5b5061088760048036038101906108829190613d52565b611703565b005b348015610894575f80fd5b5061089d611789565b6040516108aa9190613e16565b60405180910390f35b3480156108be575f80fd5b506108c76117ae565b6040516108d491906139a8565b60405180910390f35b3480156108e8575f80fd5b5061090360048036038101906108fe9190613e2f565b6117b4565b005b348015610910575f80fd5b50610919611870565b60405161092691906139a8565b60405180910390f35b34801561093a575f80fd5b5061095560048036038101906109509190613b90565b611876565b60405161096291906139db565b60405180910390f35b348015610976575f80fd5b5061097f611893565b60405161098c9190613add565b60405180910390f35b3480156109a0575f80fd5b506109a96118ba565b6040516109b69190613a7e565b60405180910390f35b3480156109ca575f80fd5b506109e560048036038101906109e09190613c46565b61194a565b005b3480156109f2575f80fd5b506109fb611a67565b604051610a0891906139a8565b60405180910390f35b348015610a1c575f80fd5b50610a376004803603810190610a329190613b52565b611a6d565b604051610a4491906139db565b60405180910390f35b348015610a58575f80fd5b50610a736004803603810190610a6e9190613b52565b611b35565b604051610a8091906139db565b60405180910390f35b348015610a94575f80fd5b50610aaf6004803603810190610aaa9190613d7d565b611b53565b005b348015610abc575f80fd5b50610ad76004803603810190610ad29190613d7d565b611c27565b005b348015610ae4575f80fd5b50610aff6004803603810190610afa9190613b90565b611d4f565b604051610b0c91906139db565b60405180910390f35b348015610b20575f80fd5b50610b3b6004803603810190610b369190613eba565b611d6c565b005b348015610b48575f80fd5b50610b636004803603810190610b5e9190613f0a565b611e69565b604051610b7091906139a8565b60405180910390f35b348015610b84575f80fd5b50610b9f6004803603810190610b9a9190613d7d565b611eeb565b005b348015610bac575f80fd5b50610bb5611fbf565b005b348015610bc2575f80fd5b50610bcb6120e6565b604051610bd891906139db565b60405180910390f35b348015610bec575f80fd5b50610c076004803603810190610c029190613d27565b6120f8565b005b348015610c14575f80fd5b50610c2f6004803603810190610c2a9190613b90565b612191565b005b348015610c3c575f80fd5b50610c576004803603810190610c529190613b90565b612287565b005b348015610c64575f80fd5b50610c6d612346565b604051610c7a91906139db565b60405180910390f35b348015610c8e575f80fd5b50610ca96004803603810190610ca49190613f48565b612359565b005b60125481565b601360029054906101000a900460ff1681565b606060018054610cd390613fb3565b80601f0160208091040260200160405190810160405280929190818152602001828054610cff90613fb3565b8015610d4a5780601f10610d2157610100808354040283529160200191610d4a565b820191905f5260205f20905b815481529060010190602001808311610d2d57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610d8b610d846123e7565b84846123ee565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b610dba6123e7565b73ffffffffffffffffffffffffffffffffffffffff16610dd8611893565b73ffffffffffffffffffffffffffffffffffffffff1614610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e259061402d565b60405180910390fd5b5f5b83839050811015610ec95781600d5f868685818110610e5257610e5161404b565b5b9050602002016020810190610e679190613b90565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ec1906140a5565b915050610e30565b50505050565b5f600e54905090565b5f610ee48484846125b1565b50610fa284610ef16123e7565b610f9d85604051806060016040528060288152602001614b5a6028913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f546123e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b6123ee565b600190509392505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b610ffe6123e7565b73ffffffffffffffffffffffffffffffffffffffff1661101c611893565b73ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110699061402d565b60405180910390fd5b60135f9054906101000a900460ff16156110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890614136565b60405180910390fd5b600160135f6101000a81548160ff021916908315150217905550565b5f61115561110a7f0000000000000000000000000000000000000000000000000000000000000000611611565b6111476111367f0000000000000000000000000000000000000000000000000000000000000000611611565b600e54612e4b90919063ffffffff16565b612e4b90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f61121361117b6123e7565b8461120e8560085f61118b6123e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b6123ee565b6001905092915050565b600d602052805f5260405f205f915054906101000a900460ff1681565b600a602052805f5260405f205f915054906101000a900460ff1681565b61125f6123e7565b73ffffffffffffffffffffffffffffffffffffffff1661127d611893565b73ffffffffffffffffffffffffffffffffffffffff16146112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca9061402d565b60405180910390fd5b80601360046101000a81548160ff02191690831515021790555050565b6009602052805f5260405f205f915054906101000a900460ff1681565b60045481565b61131b6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611339611893565b73ffffffffffffffffffffffffffffffffffffffff161461138f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113869061402d565b60405180910390fd5b8060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113da6123e7565b73ffffffffffffffffffffffffffffffffffffffff166113f8611893565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114459061402d565b60405180910390fd5b8060108190555050565b6114606123e7565b73ffffffffffffffffffffffffffffffffffffffff1661147e611893565b73ffffffffffffffffffffffffffffffffffffffff16146114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb9061402d565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360039054906101000a900460ff1681565b6115326123e7565b73ffffffffffffffffffffffffffffffffffffffff16611550611893565b73ffffffffffffffffffffffffffffffffffffffff16146115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d9061402d565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b601360019054906101000a900460ff1681565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61165f6123e7565b73ffffffffffffffffffffffffffffffffffffffff1661167d611893565b73ffffffffffffffffffffffffffffffffffffffff16146116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca9061402d565b60405180910390fd5b6116dc5f612ef1565b565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61170b6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611729611893565b73ffffffffffffffffffffffffffffffffffffffff161461177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117769061402d565b60405180910390fd5b8060118190555050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6117bc6123e7565b73ffffffffffffffffffffffffffffffffffffffff166117da611893565b73ffffffffffffffffffffffffffffffffffffffff1614611830576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118279061402d565b60405180910390fd5b82601360016101000a81548160ff0219169083151502179055508160128190555080601360026101000a81548160ff021916908315150217905550505050565b60115481565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546118c990613fb3565b80601f01602080910402602001604051908101604052809291908181526020018280546118f590613fb3565b80156119405780601f1061191757610100808354040283529160200191611940565b820191905f5260205f20905b81548152906001019060200180831161192357829003601f168201915b5050505050905090565b6119526123e7565b73ffffffffffffffffffffffffffffffffffffffff16611970611893565b73ffffffffffffffffffffffffffffffffffffffff16146119c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bd9061402d565b60405180910390fd5b5f5b83839050811015611a61578160145f8686858181106119ea576119e961404b565b5b90506020020160208101906119ff9190613b90565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611a59906140a5565b9150506119c8565b50505050565b60055481565b5f611b2b611a796123e7565b84611b2685604051806060016040528060258152602001614b826025913960085f611aa26123e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b6123ee565b6001905092915050565b5f611b48611b416123e7565b84846125b1565b506001905092915050565b611b5b6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611b79611893565b73ffffffffffffffffffffffffffffffffffffffff1614611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc69061402d565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611c2f6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611c4d611893565b73ffffffffffffffffffffffffffffffffffffffff1614611ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9a9061402d565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600b602052805f5260405f205f915054906101000a900460ff1681565b611d746123e7565b73ffffffffffffffffffffffffffffffffffffffff16611d92611893565b73ffffffffffffffffffffffffffffffffffffffff1614611de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddf9061402d565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611e23929190614154565b6020604051808303815f875af1158015611e3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e63919061418f565b50505050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611ef36123e7565b73ffffffffffffffffffffffffffffffffffffffff16611f11611893565b73ffffffffffffffffffffffffffffffffffffffff1614611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e9061402d565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611fc76123e7565b73ffffffffffffffffffffffffffffffffffffffff16611fe5611893565b73ffffffffffffffffffffffffffffffffffffffff161461203b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120329061402d565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051612060906141e7565b5f6040518083038185875af1925050503d805f811461209a576040519150601f19603f3d011682016040523d82523d5f602084013e61209f565b606091505b50509050806120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da90614245565b60405180910390fd5b50565b60135f9054906101000a900460ff1681565b6121006123e7565b73ffffffffffffffffffffffffffffffffffffffff1661211e611893565b73ffffffffffffffffffffffffffffffffffffffff1614612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b9061402d565b60405180910390fd5b80601360036101000a81548160ff02191690831515021790555050565b6121996123e7565b73ffffffffffffffffffffffffffffffffffffffff166121b7611893565b73ffffffffffffffffffffffffffffffffffffffff161461220d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122049061402d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361227b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612272906142d3565b60405180910390fd5b61228481612ef1565b50565b61228f6123e7565b73ffffffffffffffffffffffffffffffffffffffff166122ad611893565b73ffffffffffffffffffffffffffffffffffffffff1614612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa9061402d565b60405180910390fd5b8060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360049054906101000a900460ff1681565b6123616123e7565b73ffffffffffffffffffffffffffffffffffffffff1661237f611893565b73ffffffffffffffffffffffffffffffffffffffff16146123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc9061402d565b60405180910390fd5b81600481905550806005819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390614361565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c1906143ef565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125a491906139a8565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179061447d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361268e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126859061450b565b60405180910390fd5b5f82116126d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c790614599565b60405180910390fd5b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561275a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275190614601565b60405180910390fd5b600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156127e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127db90614601565b60405180910390fd5b600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561286e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286590614601565b60405180910390fd5b601660149054906101000a900460ff16156128955761288e848484612fb2565b9050612de2565b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612933575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129875760135f9054906101000a900460ff16612986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297d90614669565b60405180910390fd5b5b5f61299130611611565b90505f60125482101590508080156129b65750601660149054906101000a900460ff16155b8015612a095750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a215750601360019054906101000a900460ff165b15612a3057612a2f8261317c565b5b600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612ace5750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ae65750601360039054906101000a900460ff165b15612b3157601054841115612b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b27906146f7565b60405180910390fd5b5b612bb8846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f612c04878761328b565b612c1857612c138787876133e7565b612c1a565b845b9050601360049054906101000a900460ff168015612c7f5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ce457601154612ca282612c9489611611565b612e9490919063ffffffff16565b1115612ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cda9061475f565b60405180910390fd5b5b612d348160075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd291906139a8565b60405180910390a3600193505050505b9392505050565b5f838311158290612e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e279190613a7e565b60405180910390fd5b505f8385612e3e919061477d565b9050809150509392505050565b5f612e8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de9565b905092915050565b5f808284612ea291906147b0565b905083811015612ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ede9061482d565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61303a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506130cb8260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161316991906139a8565b60405180910390a3600190509392505050565b6001601660146101000a81548160ff0219169083151502179055505f6131af600554600454612e9490919063ffffffff16565b90505f81036131be575061326e565b601360029054906101000a900460ff16156131d95760125491505b5f4790506131e683613600565b5f6131fa8247612e4b90919063ffffffff16565b90505f81111561326a5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613268573d5f803e3d5ffd5b505b5050505b5f601660146101000a81548160ff02191690831515021790555050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613327575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561333557600190506133e1565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806133d05750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156133dd575f90506133e1565b5f90505b92915050565b5f80600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561346857613461600f546134536004548661386f90919063ffffffff16565b6138e690919063ffffffff16565b90506134e4565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156134e3576134e0600f546134d26005548661386f90919063ffffffff16565b6138e690919063ffffffff16565b90505b5b5f8111156135e35761353c8160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135da91906139a8565b60405180910390a35b6135f68184612e4b90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff81111561361c5761361b61484b565b5b60405190808252806020026020018201604052801561364a5781602001602082028036833780820191505090505b50905030815f815181106136615761366061404b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613705573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613729919061488c565b8160018151811061373d5761373c61404b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137a33060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123ee565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016138059594939291906149a7565b5f604051808303815f87803b15801561381c575f80fd5b505af115801561382e573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516138639291906149ff565b60405180910390a15050565b5f80830361387f575f90506138e0565b5f828461388c9190614a2d565b905082848261389b9190614a9b565b146138db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138d290614b3b565b60405180910390fd5b809150505b92915050565b5f61392783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061392f565b905092915050565b5f8083118290613975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161396c9190613a7e565b60405180910390fd5b505f83856139839190614a9b565b9050809150509392505050565b5f819050919050565b6139a281613990565b82525050565b5f6020820190506139bb5f830184613999565b92915050565b5f8115159050919050565b6139d5816139c1565b82525050565b5f6020820190506139ee5f8301846139cc565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613a2b578082015181840152602081019050613a10565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613a50826139f4565b613a5a81856139fe565b9350613a6a818560208601613a0e565b613a7381613a36565b840191505092915050565b5f6020820190508181035f830152613a968184613a46565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613ac782613a9e565b9050919050565b613ad781613abd565b82525050565b5f602082019050613af05f830184613ace565b92915050565b5f80fd5b5f80fd5b613b0781613abd565b8114613b11575f80fd5b50565b5f81359050613b2281613afe565b92915050565b613b3181613990565b8114613b3b575f80fd5b50565b5f81359050613b4c81613b28565b92915050565b5f8060408385031215613b6857613b67613af6565b5b5f613b7585828601613b14565b9250506020613b8685828601613b3e565b9150509250929050565b5f60208284031215613ba557613ba4613af6565b5b5f613bb284828501613b14565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613bdc57613bdb613bbb565b5b8235905067ffffffffffffffff811115613bf957613bf8613bbf565b5b602083019150836020820283011115613c1557613c14613bc3565b5b9250929050565b613c25816139c1565b8114613c2f575f80fd5b50565b5f81359050613c4081613c1c565b92915050565b5f805f60408486031215613c5d57613c5c613af6565b5b5f84013567ffffffffffffffff811115613c7a57613c79613afa565b5b613c8686828701613bc7565b93509350506020613c9986828701613c32565b9150509250925092565b5f805f60608486031215613cba57613cb9613af6565b5b5f613cc786828701613b14565b9350506020613cd886828701613b14565b9250506040613ce986828701613b3e565b9150509250925092565b5f60ff82169050919050565b613d0881613cf3565b82525050565b5f602082019050613d215f830184613cff565b92915050565b5f60208284031215613d3c57613d3b613af6565b5b5f613d4984828501613c32565b91505092915050565b5f60208284031215613d6757613d66613af6565b5b5f613d7484828501613b3e565b91505092915050565b5f8060408385031215613d9357613d92613af6565b5b5f613da085828601613b14565b9250506020613db185828601613c32565b9150509250929050565b5f819050919050565b5f613dde613dd9613dd484613a9e565b613dbb565b613a9e565b9050919050565b5f613def82613dc4565b9050919050565b5f613e0082613de5565b9050919050565b613e1081613df6565b82525050565b5f602082019050613e295f830184613e07565b92915050565b5f805f60608486031215613e4657613e45613af6565b5b5f613e5386828701613c32565b9350506020613e6486828701613b3e565b9250506040613e7586828701613c32565b9150509250925092565b5f613e8982613abd565b9050919050565b613e9981613e7f565b8114613ea3575f80fd5b50565b5f81359050613eb481613e90565b92915050565b5f805f60608486031215613ed157613ed0613af6565b5b5f613ede86828701613ea6565b9350506020613eef86828701613b14565b9250506040613f0086828701613b3e565b9150509250925092565b5f8060408385031215613f2057613f1f613af6565b5b5f613f2d85828601613b14565b9250506020613f3e85828601613b14565b9150509250929050565b5f8060408385031215613f5e57613f5d613af6565b5b5f613f6b85828601613b3e565b9250506020613f7c85828601613b3e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fca57607f821691505b602082108103613fdd57613fdc613f86565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6140176020836139fe565b915061402282613fe3565b602082019050919050565b5f6020820190508181035f8301526140448161400b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6140af82613990565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140e1576140e0614078565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c6564000000000000000000005f82015250565b5f6141206016836139fe565b915061412b826140ec565b602082019050919050565b5f6020820190508181035f83015261414d81614114565b9050919050565b5f6040820190506141675f830185613ace565b6141746020830184613999565b9392505050565b5f8151905061418981613c1c565b92915050565b5f602082840312156141a4576141a3613af6565b5b5f6141b18482850161417b565b91505092915050565b5f81905092915050565b50565b5f6141d25f836141ba565b91506141dd826141c4565b5f82019050919050565b5f6141f1826141c7565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f61422f6014836139fe565b915061423a826141fb565b602082019050919050565b5f6020820190508181035f83015261425c81614223565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6142bd6026836139fe565b91506142c882614263565b604082019050919050565b5f6020820190508181035f8301526142ea816142b1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61434b6024836139fe565b9150614356826142f1565b604082019050919050565b5f6020820190508181035f8301526143788161433f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6143d96022836139fe565b91506143e48261437f565b604082019050919050565b5f6020820190508181035f830152614406816143cd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6144676025836139fe565b91506144728261440d565b604082019050919050565b5f6020820190508181035f8301526144948161445b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6144f56023836139fe565b91506145008261449b565b604082019050919050565b5f6020820190508181035f830152614522816144e9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6145836029836139fe565b915061458e82614529565b604082019050919050565b5f6020820190508181035f8301526145b081614577565b9050919050565b7f45524332303a20426f74206465746563746564000000000000000000000000005f82015250565b5f6145eb6013836139fe565b91506145f6826145b7565b602082019050919050565b5f6020820190508181035f830152614618816145df565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c65207965740000005f82015250565b5f614653601d836139fe565b915061465e8261461f565b602082019050919050565b5f6020820190508181035f83015261468081614647565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6146e16028836139fe565b91506146ec82614687565b604082019050919050565b5f6020820190508181035f83015261470e816146d5565b9050919050565b7f4d61782057616c6c6574204c696d6974204578636565646564212100000000005f82015250565b5f614749601b836139fe565b915061475482614715565b602082019050919050565b5f6020820190508181035f8301526147768161473d565b9050919050565b5f61478782613990565b915061479283613990565b92508282039050818111156147aa576147a9614078565b5b92915050565b5f6147ba82613990565b91506147c583613990565b92508282019050808211156147dd576147dc614078565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614817601b836139fe565b9150614822826147e3565b602082019050919050565b5f6020820190508181035f8301526148448161480b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061488681613afe565b92915050565b5f602082840312156148a1576148a0613af6565b5b5f6148ae84828501614878565b91505092915050565b5f819050919050565b5f6148da6148d56148d0846148b7565b613dbb565b613990565b9050919050565b6148ea816148c0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61492281613abd565b82525050565b5f6149338383614919565b60208301905092915050565b5f602082019050919050565b5f614955826148f0565b61495f81856148fa565b935061496a8361490a565b805f5b8381101561499a5781516149818882614928565b975061498c8361493f565b92505060018101905061496d565b5085935050505092915050565b5f60a0820190506149ba5f830188613999565b6149c760208301876148e1565b81810360408301526149d9818661494b565b90506149e86060830185613ace565b6149f56080830184613999565b9695505050505050565b5f604082019050614a125f830185613999565b8181036020830152614a24818461494b565b90509392505050565b5f614a3782613990565b9150614a4283613990565b9250828202614a5081613990565b91508282048414831517614a6757614a66614078565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614aa582613990565b9150614ab083613990565b925082614ac057614abf614a6e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b256021836139fe565b9150614b3082614acb565b604082019050919050565b5f6020820190508181035f830152614b5281614b19565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220336d79e8f3ed1df7b3d53d524611b187ca377ee4da16181bae3c3508c040677f64736f6c634300081400334861727279506f747465724f62616d61536f6e69634e61756768746975734d6178696d75733130496e75

Deployed Bytecode

0x608060405260043610610338575f3560e01c8063715018a6116101aa578063a9059cbb116100f6578063e6b2603b11610094578063f2fde38b1161006e578063f2fde38b14610c09578063f71b9bbf14610c31578063f872858a14610c59578063fb0ecfa414610c835761033f565b8063e6b2603b14610ba1578063ec44acf214610bb7578063ee828db314610be15761033f565b8063c867d60b116100d0578063c867d60b14610ad9578063cea9d26f14610b15578063dd62ed3e14610b3d578063df8408fe14610b795761033f565b8063a9059cbb14610a4d578063ae85ade614610a89578063c16dd4a414610ab15761033f565b8063807c2d9c1161016357806395d89b411161013d57806395d89b411461099557806395fc8fdf146109bf5780639d9241ec146109e7578063a457c2d714610a115761033f565b8063807c2d9c146109055780638b42507f1461092f5780638da5cb5b1461096b5761033f565b8063715018a61461082157806372460e7f14610837578063728d41c914610861578063736ce0d4146108895780637d1db4a5146108b35780637daf4b2b146108dd5761033f565b8063313ce5671161028457806359fac517116102225780635e42358c116101fc5780635e42358c14610769578063651a8987146107935780636ddd1713146107bb57806370a08231146107e55761033f565b806359fac517146106f15780635c85974f146107195780635d098b38146107415761033f565b80633ecad2711161025e5780633ecad271146106275780634974d88f146106635780635342acb41461068b57806359b107b9146106c75761033f565b8063313ce5671461058557806339509351146105af5780633bbac579146105eb5761033f565b806310a60f02116102f15780632598cdb2116102cb5780632598cdb2146104f157806327c8f8351461051b578063293230b8146105455780632b112e491461055b5761033f565b806310a60f021461046357806318160ddd1461048b57806323b872dd146104b55761033f565b80630445b667146103435780630634f4381461036d57806306fdde03146103975780630930907b146103c1578063095ea7b3146103eb5780630f3fc431146104275761033f565b3661033f57005b5f80fd5b34801561034e575f80fd5b50610357610cab565b60405161036491906139a8565b60405180910390f35b348015610378575f80fd5b50610381610cb1565b60405161038e91906139db565b60405180910390f35b3480156103a2575f80fd5b506103ab610cc4565b6040516103b89190613a7e565b60405180910390f35b3480156103cc575f80fd5b506103d5610d54565b6040516103e29190613add565b60405180910390f35b3480156103f6575f80fd5b50610411600480360381019061040c9190613b52565b610d78565b60405161041e91906139db565b60405180910390f35b348015610432575f80fd5b5061044d60048036038101906104489190613b90565b610d95565b60405161045a91906139db565b60405180910390f35b34801561046e575f80fd5b5061048960048036038101906104849190613c46565b610db2565b005b348015610496575f80fd5b5061049f610ecf565b6040516104ac91906139a8565b60405180910390f35b3480156104c0575f80fd5b506104db60048036038101906104d69190613ca3565b610ed8565b6040516104e891906139db565b60405180910390f35b3480156104fc575f80fd5b50610505610fad565b6040516105129190613add565b60405180910390f35b348015610526575f80fd5b5061052f610fd2565b60405161053c9190613add565b60405180910390f35b348015610550575f80fd5b50610559610ff6565b005b348015610566575f80fd5b5061056f6110dd565b60405161057c91906139a8565b60405180910390f35b348015610590575f80fd5b5061059961115a565b6040516105a69190613d0e565b60405180910390f35b3480156105ba575f80fd5b506105d560048036038101906105d09190613b52565b61116f565b6040516105e291906139db565b60405180910390f35b3480156105f6575f80fd5b50610611600480360381019061060c9190613b90565b61121d565b60405161061e91906139db565b60405180910390f35b348015610632575f80fd5b5061064d60048036038101906106489190613b90565b61123a565b60405161065a91906139db565b60405180910390f35b34801561066e575f80fd5b5061068960048036038101906106849190613d27565b611257565b005b348015610696575f80fd5b506106b160048036038101906106ac9190613b90565b6112f0565b6040516106be91906139db565b60405180910390f35b3480156106d2575f80fd5b506106db61130d565b6040516106e891906139a8565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190613b90565b611313565b005b348015610724575f80fd5b5061073f600480360381019061073a9190613d52565b6113d2565b005b34801561074c575f80fd5b5061076760048036038101906107629190613b90565b611458565b005b348015610774575f80fd5b5061077d611517565b60405161078a91906139db565b60405180910390f35b34801561079e575f80fd5b506107b960048036038101906107b49190613d7d565b61152a565b005b3480156107c6575f80fd5b506107cf6115fe565b6040516107dc91906139db565b60405180910390f35b3480156107f0575f80fd5b5061080b60048036038101906108069190613b90565b611611565b60405161081891906139a8565b60405180910390f35b34801561082c575f80fd5b50610835611657565b005b348015610842575f80fd5b5061084b6116de565b6040516108589190613add565b60405180910390f35b34801561086c575f80fd5b5061088760048036038101906108829190613d52565b611703565b005b348015610894575f80fd5b5061089d611789565b6040516108aa9190613e16565b60405180910390f35b3480156108be575f80fd5b506108c76117ae565b6040516108d491906139a8565b60405180910390f35b3480156108e8575f80fd5b5061090360048036038101906108fe9190613e2f565b6117b4565b005b348015610910575f80fd5b50610919611870565b60405161092691906139a8565b60405180910390f35b34801561093a575f80fd5b5061095560048036038101906109509190613b90565b611876565b60405161096291906139db565b60405180910390f35b348015610976575f80fd5b5061097f611893565b60405161098c9190613add565b60405180910390f35b3480156109a0575f80fd5b506109a96118ba565b6040516109b69190613a7e565b60405180910390f35b3480156109ca575f80fd5b506109e560048036038101906109e09190613c46565b61194a565b005b3480156109f2575f80fd5b506109fb611a67565b604051610a0891906139a8565b60405180910390f35b348015610a1c575f80fd5b50610a376004803603810190610a329190613b52565b611a6d565b604051610a4491906139db565b60405180910390f35b348015610a58575f80fd5b50610a736004803603810190610a6e9190613b52565b611b35565b604051610a8091906139db565b60405180910390f35b348015610a94575f80fd5b50610aaf6004803603810190610aaa9190613d7d565b611b53565b005b348015610abc575f80fd5b50610ad76004803603810190610ad29190613d7d565b611c27565b005b348015610ae4575f80fd5b50610aff6004803603810190610afa9190613b90565b611d4f565b604051610b0c91906139db565b60405180910390f35b348015610b20575f80fd5b50610b3b6004803603810190610b369190613eba565b611d6c565b005b348015610b48575f80fd5b50610b636004803603810190610b5e9190613f0a565b611e69565b604051610b7091906139a8565b60405180910390f35b348015610b84575f80fd5b50610b9f6004803603810190610b9a9190613d7d565b611eeb565b005b348015610bac575f80fd5b50610bb5611fbf565b005b348015610bc2575f80fd5b50610bcb6120e6565b604051610bd891906139db565b60405180910390f35b348015610bec575f80fd5b50610c076004803603810190610c029190613d27565b6120f8565b005b348015610c14575f80fd5b50610c2f6004803603810190610c2a9190613b90565b612191565b005b348015610c3c575f80fd5b50610c576004803603810190610c529190613b90565b612287565b005b348015610c64575f80fd5b50610c6d612346565b604051610c7a91906139db565b60405180910390f35b348015610c8e575f80fd5b50610ca96004803603810190610ca49190613f48565b612359565b005b60125481565b601360029054906101000a900460ff1681565b606060018054610cd390613fb3565b80601f0160208091040260200160405190810160405280929190818152602001828054610cff90613fb3565b8015610d4a5780601f10610d2157610100808354040283529160200191610d4a565b820191905f5260205f20905b815481529060010190602001808311610d2d57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610d8b610d846123e7565b84846123ee565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b610dba6123e7565b73ffffffffffffffffffffffffffffffffffffffff16610dd8611893565b73ffffffffffffffffffffffffffffffffffffffff1614610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e259061402d565b60405180910390fd5b5f5b83839050811015610ec95781600d5f868685818110610e5257610e5161404b565b5b9050602002016020810190610e679190613b90565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ec1906140a5565b915050610e30565b50505050565b5f600e54905090565b5f610ee48484846125b1565b50610fa284610ef16123e7565b610f9d85604051806060016040528060288152602001614b5a6028913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f546123e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b6123ee565b600190509392505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610ffe6123e7565b73ffffffffffffffffffffffffffffffffffffffff1661101c611893565b73ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110699061402d565b60405180910390fd5b60135f9054906101000a900460ff16156110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890614136565b60405180910390fd5b600160135f6101000a81548160ff021916908315150217905550565b5f61115561110a7f0000000000000000000000000000000000000000000000000000000000000000611611565b6111476111367f000000000000000000000000000000000000000000000000000000000000dead611611565b600e54612e4b90919063ffffffff16565b612e4b90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f61121361117b6123e7565b8461120e8560085f61118b6123e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b6123ee565b6001905092915050565b600d602052805f5260405f205f915054906101000a900460ff1681565b600a602052805f5260405f205f915054906101000a900460ff1681565b61125f6123e7565b73ffffffffffffffffffffffffffffffffffffffff1661127d611893565b73ffffffffffffffffffffffffffffffffffffffff16146112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca9061402d565b60405180910390fd5b80601360046101000a81548160ff02191690831515021790555050565b6009602052805f5260405f205f915054906101000a900460ff1681565b60045481565b61131b6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611339611893565b73ffffffffffffffffffffffffffffffffffffffff161461138f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113869061402d565b60405180910390fd5b8060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113da6123e7565b73ffffffffffffffffffffffffffffffffffffffff166113f8611893565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114459061402d565b60405180910390fd5b8060108190555050565b6114606123e7565b73ffffffffffffffffffffffffffffffffffffffff1661147e611893565b73ffffffffffffffffffffffffffffffffffffffff16146114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb9061402d565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360039054906101000a900460ff1681565b6115326123e7565b73ffffffffffffffffffffffffffffffffffffffff16611550611893565b73ffffffffffffffffffffffffffffffffffffffff16146115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d9061402d565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b601360019054906101000a900460ff1681565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61165f6123e7565b73ffffffffffffffffffffffffffffffffffffffff1661167d611893565b73ffffffffffffffffffffffffffffffffffffffff16146116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca9061402d565b60405180910390fd5b6116dc5f612ef1565b565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61170b6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611729611893565b73ffffffffffffffffffffffffffffffffffffffff161461177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117769061402d565b60405180910390fd5b8060118190555050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6117bc6123e7565b73ffffffffffffffffffffffffffffffffffffffff166117da611893565b73ffffffffffffffffffffffffffffffffffffffff1614611830576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118279061402d565b60405180910390fd5b82601360016101000a81548160ff0219169083151502179055508160128190555080601360026101000a81548160ff021916908315150217905550505050565b60115481565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546118c990613fb3565b80601f01602080910402602001604051908101604052809291908181526020018280546118f590613fb3565b80156119405780601f1061191757610100808354040283529160200191611940565b820191905f5260205f20905b81548152906001019060200180831161192357829003601f168201915b5050505050905090565b6119526123e7565b73ffffffffffffffffffffffffffffffffffffffff16611970611893565b73ffffffffffffffffffffffffffffffffffffffff16146119c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bd9061402d565b60405180910390fd5b5f5b83839050811015611a61578160145f8686858181106119ea576119e961404b565b5b90506020020160208101906119ff9190613b90565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611a59906140a5565b9150506119c8565b50505050565b60055481565b5f611b2b611a796123e7565b84611b2685604051806060016040528060258152602001614b826025913960085f611aa26123e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b6123ee565b6001905092915050565b5f611b48611b416123e7565b84846125b1565b506001905092915050565b611b5b6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611b79611893565b73ffffffffffffffffffffffffffffffffffffffff1614611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc69061402d565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611c2f6123e7565b73ffffffffffffffffffffffffffffffffffffffff16611c4d611893565b73ffffffffffffffffffffffffffffffffffffffff1614611ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9a9061402d565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600b602052805f5260405f205f915054906101000a900460ff1681565b611d746123e7565b73ffffffffffffffffffffffffffffffffffffffff16611d92611893565b73ffffffffffffffffffffffffffffffffffffffff1614611de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddf9061402d565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611e23929190614154565b6020604051808303815f875af1158015611e3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e63919061418f565b50505050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611ef36123e7565b73ffffffffffffffffffffffffffffffffffffffff16611f11611893565b73ffffffffffffffffffffffffffffffffffffffff1614611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e9061402d565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611fc76123e7565b73ffffffffffffffffffffffffffffffffffffffff16611fe5611893565b73ffffffffffffffffffffffffffffffffffffffff161461203b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120329061402d565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051612060906141e7565b5f6040518083038185875af1925050503d805f811461209a576040519150601f19603f3d011682016040523d82523d5f602084013e61209f565b606091505b50509050806120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da90614245565b60405180910390fd5b50565b60135f9054906101000a900460ff1681565b6121006123e7565b73ffffffffffffffffffffffffffffffffffffffff1661211e611893565b73ffffffffffffffffffffffffffffffffffffffff1614612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b9061402d565b60405180910390fd5b80601360036101000a81548160ff02191690831515021790555050565b6121996123e7565b73ffffffffffffffffffffffffffffffffffffffff166121b7611893565b73ffffffffffffffffffffffffffffffffffffffff161461220d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122049061402d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361227b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612272906142d3565b60405180910390fd5b61228481612ef1565b50565b61228f6123e7565b73ffffffffffffffffffffffffffffffffffffffff166122ad611893565b73ffffffffffffffffffffffffffffffffffffffff1614612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa9061402d565b60405180910390fd5b8060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360049054906101000a900460ff1681565b6123616123e7565b73ffffffffffffffffffffffffffffffffffffffff1661237f611893565b73ffffffffffffffffffffffffffffffffffffffff16146123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc9061402d565b60405180910390fd5b81600481905550806005819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390614361565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c1906143ef565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125a491906139a8565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179061447d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361268e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126859061450b565b60405180910390fd5b5f82116126d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c790614599565b60405180910390fd5b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561275a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275190614601565b60405180910390fd5b600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156127e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127db90614601565b60405180910390fd5b600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561286e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286590614601565b60405180910390fd5b601660149054906101000a900460ff16156128955761288e848484612fb2565b9050612de2565b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612933575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129875760135f9054906101000a900460ff16612986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297d90614669565b60405180910390fd5b5b5f61299130611611565b90505f60125482101590508080156129b65750601660149054906101000a900460ff16155b8015612a095750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a215750601360019054906101000a900460ff165b15612a3057612a2f8261317c565b5b600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612ace5750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ae65750601360039054906101000a900460ff165b15612b3157601054841115612b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b27906146f7565b60405180910390fd5b5b612bb8846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f612c04878761328b565b612c1857612c138787876133e7565b612c1a565b845b9050601360049054906101000a900460ff168015612c7f5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ce457601154612ca282612c9489611611565b612e9490919063ffffffff16565b1115612ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cda9061475f565b60405180910390fd5b5b612d348160075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd291906139a8565b60405180910390a3600193505050505b9392505050565b5f838311158290612e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e279190613a7e565b60405180910390fd5b505f8385612e3e919061477d565b9050809150509392505050565b5f612e8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de9565b905092915050565b5f808284612ea291906147b0565b905083811015612ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ede9061482d565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61303a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612de99092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506130cb8260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161316991906139a8565b60405180910390a3600190509392505050565b6001601660146101000a81548160ff0219169083151502179055505f6131af600554600454612e9490919063ffffffff16565b90505f81036131be575061326e565b601360029054906101000a900460ff16156131d95760125491505b5f4790506131e683613600565b5f6131fa8247612e4b90919063ffffffff16565b90505f81111561326a5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613268573d5f803e3d5ffd5b505b5050505b5f601660146101000a81548160ff02191690831515021790555050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613327575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561333557600190506133e1565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806133d05750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156133dd575f90506133e1565b5f90505b92915050565b5f80600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561346857613461600f546134536004548661386f90919063ffffffff16565b6138e690919063ffffffff16565b90506134e4565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156134e3576134e0600f546134d26005548661386f90919063ffffffff16565b6138e690919063ffffffff16565b90505b5b5f8111156135e35761353c8160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e9490919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135da91906139a8565b60405180910390a35b6135f68184612e4b90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff81111561361c5761361b61484b565b5b60405190808252806020026020018201604052801561364a5781602001602082028036833780820191505090505b50905030815f815181106136615761366061404b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613705573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613729919061488c565b8160018151811061373d5761373c61404b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137a33060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123ee565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016138059594939291906149a7565b5f604051808303815f87803b15801561381c575f80fd5b505af115801561382e573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516138639291906149ff565b60405180910390a15050565b5f80830361387f575f90506138e0565b5f828461388c9190614a2d565b905082848261389b9190614a9b565b146138db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138d290614b3b565b60405180910390fd5b809150505b92915050565b5f61392783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061392f565b905092915050565b5f8083118290613975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161396c9190613a7e565b60405180910390fd5b505f83856139839190614a9b565b9050809150509392505050565b5f819050919050565b6139a281613990565b82525050565b5f6020820190506139bb5f830184613999565b92915050565b5f8115159050919050565b6139d5816139c1565b82525050565b5f6020820190506139ee5f8301846139cc565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613a2b578082015181840152602081019050613a10565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613a50826139f4565b613a5a81856139fe565b9350613a6a818560208601613a0e565b613a7381613a36565b840191505092915050565b5f6020820190508181035f830152613a968184613a46565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613ac782613a9e565b9050919050565b613ad781613abd565b82525050565b5f602082019050613af05f830184613ace565b92915050565b5f80fd5b5f80fd5b613b0781613abd565b8114613b11575f80fd5b50565b5f81359050613b2281613afe565b92915050565b613b3181613990565b8114613b3b575f80fd5b50565b5f81359050613b4c81613b28565b92915050565b5f8060408385031215613b6857613b67613af6565b5b5f613b7585828601613b14565b9250506020613b8685828601613b3e565b9150509250929050565b5f60208284031215613ba557613ba4613af6565b5b5f613bb284828501613b14565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613bdc57613bdb613bbb565b5b8235905067ffffffffffffffff811115613bf957613bf8613bbf565b5b602083019150836020820283011115613c1557613c14613bc3565b5b9250929050565b613c25816139c1565b8114613c2f575f80fd5b50565b5f81359050613c4081613c1c565b92915050565b5f805f60408486031215613c5d57613c5c613af6565b5b5f84013567ffffffffffffffff811115613c7a57613c79613afa565b5b613c8686828701613bc7565b93509350506020613c9986828701613c32565b9150509250925092565b5f805f60608486031215613cba57613cb9613af6565b5b5f613cc786828701613b14565b9350506020613cd886828701613b14565b9250506040613ce986828701613b3e565b9150509250925092565b5f60ff82169050919050565b613d0881613cf3565b82525050565b5f602082019050613d215f830184613cff565b92915050565b5f60208284031215613d3c57613d3b613af6565b5b5f613d4984828501613c32565b91505092915050565b5f60208284031215613d6757613d66613af6565b5b5f613d7484828501613b3e565b91505092915050565b5f8060408385031215613d9357613d92613af6565b5b5f613da085828601613b14565b9250506020613db185828601613c32565b9150509250929050565b5f819050919050565b5f613dde613dd9613dd484613a9e565b613dbb565b613a9e565b9050919050565b5f613def82613dc4565b9050919050565b5f613e0082613de5565b9050919050565b613e1081613df6565b82525050565b5f602082019050613e295f830184613e07565b92915050565b5f805f60608486031215613e4657613e45613af6565b5b5f613e5386828701613c32565b9350506020613e6486828701613b3e565b9250506040613e7586828701613c32565b9150509250925092565b5f613e8982613abd565b9050919050565b613e9981613e7f565b8114613ea3575f80fd5b50565b5f81359050613eb481613e90565b92915050565b5f805f60608486031215613ed157613ed0613af6565b5b5f613ede86828701613ea6565b9350506020613eef86828701613b14565b9250506040613f0086828701613b3e565b9150509250925092565b5f8060408385031215613f2057613f1f613af6565b5b5f613f2d85828601613b14565b9250506020613f3e85828601613b14565b9150509250929050565b5f8060408385031215613f5e57613f5d613af6565b5b5f613f6b85828601613b3e565b9250506020613f7c85828601613b3e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fca57607f821691505b602082108103613fdd57613fdc613f86565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6140176020836139fe565b915061402282613fe3565b602082019050919050565b5f6020820190508181035f8301526140448161400b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6140af82613990565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140e1576140e0614078565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c6564000000000000000000005f82015250565b5f6141206016836139fe565b915061412b826140ec565b602082019050919050565b5f6020820190508181035f83015261414d81614114565b9050919050565b5f6040820190506141675f830185613ace565b6141746020830184613999565b9392505050565b5f8151905061418981613c1c565b92915050565b5f602082840312156141a4576141a3613af6565b5b5f6141b18482850161417b565b91505092915050565b5f81905092915050565b50565b5f6141d25f836141ba565b91506141dd826141c4565b5f82019050919050565b5f6141f1826141c7565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f61422f6014836139fe565b915061423a826141fb565b602082019050919050565b5f6020820190508181035f83015261425c81614223565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6142bd6026836139fe565b91506142c882614263565b604082019050919050565b5f6020820190508181035f8301526142ea816142b1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61434b6024836139fe565b9150614356826142f1565b604082019050919050565b5f6020820190508181035f8301526143788161433f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6143d96022836139fe565b91506143e48261437f565b604082019050919050565b5f6020820190508181035f830152614406816143cd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6144676025836139fe565b91506144728261440d565b604082019050919050565b5f6020820190508181035f8301526144948161445b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6144f56023836139fe565b91506145008261449b565b604082019050919050565b5f6020820190508181035f830152614522816144e9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6145836029836139fe565b915061458e82614529565b604082019050919050565b5f6020820190508181035f8301526145b081614577565b9050919050565b7f45524332303a20426f74206465746563746564000000000000000000000000005f82015250565b5f6145eb6013836139fe565b91506145f6826145b7565b602082019050919050565b5f6020820190508181035f830152614618816145df565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c65207965740000005f82015250565b5f614653601d836139fe565b915061465e8261461f565b602082019050919050565b5f6020820190508181035f83015261468081614647565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6146e16028836139fe565b91506146ec82614687565b604082019050919050565b5f6020820190508181035f83015261470e816146d5565b9050919050565b7f4d61782057616c6c6574204c696d6974204578636565646564212100000000005f82015250565b5f614749601b836139fe565b915061475482614715565b602082019050919050565b5f6020820190508181035f8301526147768161473d565b9050919050565b5f61478782613990565b915061479283613990565b92508282039050818111156147aa576147a9614078565b5b92915050565b5f6147ba82613990565b91506147c583613990565b92508282019050808211156147dd576147dc614078565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614817601b836139fe565b9150614822826147e3565b602082019050919050565b5f6020820190508181035f8301526148448161480b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061488681613afe565b92915050565b5f602082840312156148a1576148a0613af6565b5b5f6148ae84828501614878565b91505092915050565b5f819050919050565b5f6148da6148d56148d0846148b7565b613dbb565b613990565b9050919050565b6148ea816148c0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61492281613abd565b82525050565b5f6149338383614919565b60208301905092915050565b5f602082019050919050565b5f614955826148f0565b61495f81856148fa565b935061496a8361490a565b805f5b8381101561499a5781516149818882614928565b975061498c8361493f565b92505060018101905061496d565b5085935050505092915050565b5f60a0820190506149ba5f830188613999565b6149c760208301876148e1565b81810360408301526149d9818661494b565b90506149e86060830185613ace565b6149f56080830184613999565b9695505050505050565b5f604082019050614a125f830185613999565b8181036020830152614a24818461494b565b90509392505050565b5f614a3782613990565b9150614a4283613990565b9250828202614a5081613990565b91508282048414831517614a6757614a66614078565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614aa582613990565b9150614ab083613990565b925082614ac057614abf614a6e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b256021836139fe565b9150614b3082614acb565b604082019050919050565b5f6020820190508181035f830152614b5281614b19565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220336d79e8f3ed1df7b3d53d524611b187ca377ee4da16181bae3c3508c040677f64736f6c63430008140033

Deployed Bytecode Sourcemap

7167:13420:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8410:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8538:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10898:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7501:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12236:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8658:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18614:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11175:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13010:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7672:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7413:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17886:130;;;;;;;;;;;;;:::i;:::-;;11569:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11084:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11733:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8115:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7949:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19102:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7892:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7591:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20366:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19723:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19836:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8575:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19345:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8501:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11283:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1927:94;;;;;;;;;;;;;:::i;:::-;;8747:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19609:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8709:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8269:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20132:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8341:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8060:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1618:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10989;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18415:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7630:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11959:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12835:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19481:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19958:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8001:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18275:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11414:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19215:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18057:178;;;;;;;;;;;;;:::i;:::-;;8472:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18996:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2029:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20489:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8614:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18847:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8410:53;;;;:::o;8538:30::-;;;;;;;;;;;;;:::o;10898:83::-;10935:13;10968:5;10961:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10898:83;:::o;7501:81::-;;;:::o;12236:161::-;12311:4;12328:39;12337:12;:10;:12::i;:::-;12351:7;12360:6;12328:8;:39::i;:::-;12385:4;12378:11;;12236:161;;;;:::o;8658:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;18614:225::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18738:9:::1;18733:99;18757:8;;:15;;18753:1;:19;18733:99;;;18815:5;18794;:18;18800:8;;18809:1;18800:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18794:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;18774:3;;;;;:::i;:::-;;;;18733:99;;;;18614:225:::0;;;:::o;11175:100::-;11228:7;11255:12;;11248:19;;11175:100;:::o;13010:313::-;13108:4;13125:36;13135:6;13143:9;13154:6;13125:9;:36::i;:::-;;13172:121;13181:6;13189:12;:10;:12::i;:::-;13203:89;13241:6;13203:89;;;;;;;;;;;;;;;;;:11;:19;13215:6;13203:19;;;;;;;;;;;;;;;:33;13223:12;:10;:12::i;:::-;13203:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13172:8;:121::i;:::-;13311:4;13304:11;;13010:313;;;;;:::o;7672:84::-;;;;;;;;;;;;;:::o;7413:81::-;;;:::o;17886:130::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17949:7:::1;;;;;;;;;;;17948:8;17940:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18004:4;17994:7;;:14;;;;;;;;;;;;;;;;;;17886:130::o:0;11569:156::-;11622:7;11649:68;11694:22;11704:11;11694:9;:22::i;:::-;11649:40;11666:22;11676:11;11666:9;:22::i;:::-;11649:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;11642:75;;11569:156;:::o;11084:83::-;11125:5;11150:9;;;;;;;;;;;11143:16;;11084:83;:::o;11733:218::-;11821:4;11838:83;11847:12;:10;:12::i;:::-;11861:7;11870:50;11909:10;11870:11;:25;11882:12;:10;:12::i;:::-;11870:25;;;;;;;;;;;;;;;:34;11896:7;11870:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11838:8;:83::i;:::-;11939:4;11932:11;;11733:218;;;;:::o;8115:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;7949:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19102:105::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19192:7:::1;19173:16;;:26;;;;;;;;;;;;;;;;;;19102:105:::0;:::o;7892:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;7591:32::-;;;;:::o;20366:115::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20465:7:::1;20438:9;;:35;;;;;;;;;;;;;;;;;;20366:115:::0;:::o;19723:101::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19808:8:::1;19793:12;:23;;;;19723:101:::0;:::o;19836:114::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19932:10:::1;19914:15;;:28;;;;;;;;;;;;;;;;;;19836:114:::0;:::o;8575:32::-;;;;;;;;;;;;;:::o;19345:128::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19458:7:::1;19430:19;:25;19450:4;19430:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19345:128:::0;;:::o;8501:30::-;;;;;;;;;;;;;:::o;11283:123::-;11349:7;11375:9;:18;11385:7;11375:18;;;;;;;;;;;;;;;;11368:25;;11283:123;;;:::o;1927:94::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1992:21:::1;2010:1;1992:9;:21::i;:::-;1927:94::o:0;8747:22::-;;;;;;;;;;;;;:::o;19609:106::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19699:8:::1;19686:10;:21;;;;19609:106:::0;:::o;8709:31::-;;;;;;;;;;;;;:::o;8269:61::-;;;;:::o;20132:226::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20275:8:::1;20261:11;;:22;;;;;;;;;;;;;;;;;;20310:7;20294:13;:23;;;;20342:8;20328:11;;:22;;;;;;;;;;;;;;;;;;20132:226:::0;;;:::o;8341:58::-;;;;:::o;8060:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1618:87::-;1664:7;1691:6;;;;;;;;;;;1684:13;;1618:87;:::o;10989:::-;11028:13;11061:7;11054:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10989:87;:::o;18415:191::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18511:6:::1;18507:92;18527:4;;:11;;18523:1;:15;18507:92;;;18580:7;18559:9;:18;18569:4;;18574:1;18569:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18559:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18540:3;;;;;:::i;:::-;;;;18507:92;;;;18415:191:::0;;;:::o;7630:33::-;;;;:::o;11959:269::-;12052:4;12069:129;12078:12;:10;:12::i;:::-;12092:7;12101:96;12140:15;12101:96;;;;;;;;;;;;;;;;;:11;:25;12113:12;:10;:12::i;:::-;12101:25;;;;;;;;;;;;;;;:34;12127:7;12101:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12069:8;:129::i;:::-;12216:4;12209:11;;11959:269;;;;:::o;12835:167::-;12913:4;12930:42;12940:12;:10;:12::i;:::-;12954:9;12965:6;12930:9;:42::i;:::-;;12990:4;12983:11;;12835:167;;;;:::o;19481:120::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19586:7:::1;19562:15;:21;19578:4;19562:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19481:120:::0;;:::o;19958:166::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20062:7:::1;20040:12;:19;20053:5;20040:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20109:7;20080:19;:26;20100:5;20080:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19958:166:::0;;:::o;8001:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18275:132::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18369:3:::1;:12;;;18382:9;18392:6;18369:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18275:132:::0;;;:::o;11414:143::-;11495:7;11522:11;:18;11534:5;11522:18;;;;;;;;;;;;;;;:27;11541:7;11522:27;;;;;;;;;;;;;;;;11515:34;;11414:143;;;;:::o;19215:122::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19322:7:::1;19296:17;:23;19314:4;19296:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19215:122:::0;;:::o;18057:178::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18112:7:::1;18132:10;18124:24;;18156:21;18124:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18111:71;;;18201:2;18193:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;18099:136;18057:178::o:0;8472:19::-;;;;;;;;;;;;;:::o;18996:98::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19079:7:::1;19063:13;;:23;;;;;;;;;;;;;;;;;;18996:98:::0;:::o;2029:229::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2152:1:::1;2132:22;;:8;:22;;::::0;2110:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2231:19;2241:8;2231:9;:19::i;:::-;2029:229:::0;:::o;20489:91::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20567:5:::1;20557:7;;:15;;;;;;;;;;;;;;;;;;20489:91:::0;:::o;8614:35::-;;;;;;;;;;;;;:::o;18847:141::-;1850:12;:10;:12::i;:::-;1839:23;;:7;:5;:7::i;:::-;:23;;;1831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18939:7:::1;18925:11;:21;;;;18972:8;18957:12;:23;;;;18847:141:::0;;:::o;185:98::-;238:7;265:10;258:17;;185:98;:::o;12405:337::-;12515:1;12498:19;;:5;:19;;;12490:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12596:1;12577:21;;:7;:21;;;12569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12680:6;12650:11;:18;12662:5;12650:18;;;;;;;;;;;;;;;:27;12669:7;12650:27;;;;;;;;;;;;;;;:36;;;;12718:7;12702:32;;12711:5;12702:32;;;12727:6;12702:32;;;;;;:::i;:::-;;;;;;;;12405:337;;;:::o;13331:1923::-;13418:4;13463:1;13445:20;;:6;:20;;;13437:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13547:1;13526:23;;:9;:23;;;13518:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13617:1;13608:6;:10;13600:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13694:5;:13;13700:6;13694:13;;;;;;;;;;;;;;;;;;;;;;;;;13693:14;13685:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13751:5;:17;13757:10;13751:17;;;;;;;;;;;;;;;;;;;;;;;;;13750:18;13742:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13812:5;:16;13818:9;13812:16;;;;;;;;;;;;;;;;;;;;;;;;;13811:17;13803:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;13869:6;;;;;;;;;;;13865:1380;;;13899:41;13914:6;13922:9;13933:6;13899:14;:41::i;:::-;13892:48;;;;13865:1380;13989:9;:17;13999:6;13989:17;;;;;;;;;;;;;;;;;;;;;;;;;13988:18;:43;;;;;14011:9;:20;14021:9;14011:20;;;;;;;;;;;;;;;;;;;;;;;;;14010:21;13988:43;13984:133;;;14060:7;;;;;;;;;;;14052:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;13984:133;14133:28;14164:24;14182:4;14164:9;:24::i;:::-;14133:55;;14203:28;14258:13;;14234:20;:37;;14203:68;;14292:23;:34;;;;;14320:6;;;;;;;;;;;14319:7;14292:34;:59;;;;;14331:12;:20;14344:6;14331:20;;;;;;;;;;;;;;;;;;;;;;;;;14330:21;14292:59;:74;;;;;14355:11;;;;;;;;;;;14292:74;14288:145;;;14387:30;14396:20;14387:8;:30::i;:::-;14288:145;14465:15;:23;14481:6;14465:23;;;;;;;;;;;;;;;;;;;;;;;;;14464:24;:55;;;;;14493:15;:26;14509:9;14493:26;;;;;;;;;;;;;;;;;;;;;;;;;14492:27;14464:55;:72;;;;;14523:13;;;;;;;;;;;14464:72;14461:187;;;14575:12;;14565:6;:22;;14557:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14461:187;14697:53;14719:6;14697:53;;;;;;;;;;;;;;;;;:9;:17;14707:6;14697:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14677:9;:17;14687:6;14677:17;;;;;;;;;;;;;;;:73;;;;14767:19;14789:34;14806:6;14813:9;14789:16;:34::i;:::-;:80;;14835:34;14843:6;14851:9;14862:6;14835:7;:34::i;:::-;14789:80;;;14826:6;14789:80;14767:102;;14889:16;;;;;;;;;;;:51;;;;;14910:19;:30;14930:9;14910:30;;;;;;;;;;;;;;;;;;;;;;;;;14909:31;14889:51;14886:181;;;15010:10;;14969:37;14994:11;14969:20;14979:9;14969;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;14961:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14886:181;15106:37;15131:11;15106:9;:20;15116:9;15106:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15083:9;:20;15093:9;15083:20;;;;;;;;;;;;;;;:60;;;;15182:9;15165:40;;15174:6;15165:40;;;15193:11;15165:40;;;;;;:::i;:::-;;;;;;;;15227:4;15220:11;;;;;13331:1923;;;;;;:::o;2805:192::-;2891:7;2924:1;2919;:6;;2927:12;2911:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2951:9;2967:1;2963;:5;;;;:::i;:::-;2951:17;;2988:1;2981:8;;;2805:192;;;;;:::o;2661:136::-;2719:7;2746:43;2750:1;2753;2746:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2739:50;;2661:136;;;;:::o;2472:181::-;2530:7;2550:9;2566:1;2562;:5;;;;:::i;:::-;2550:17;;2591:1;2586;:6;;2578:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2644:1;2637:8;;;2472:181;;;;:::o;2266:173::-;2322:16;2341:6;;;;;;;;;;;2322:25;;2367:8;2358:6;;:17;;;;;;;;;;;;;;;;;;2422:8;2391:40;;2412:8;2391:40;;;;;;;;;;;;2311:128;2266:173;:::o;15262:330::-;15355:4;15392:53;15414:6;15392:53;;;;;;;;;;;;;;;;;:9;:17;15402:6;15392:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15372:9;:17;15382:6;15372:17;;;;;;;;;;;;;;;:73;;;;15479:32;15504:6;15479:9;:20;15489:9;15479:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15456:9;:20;15466:9;15456:20;;;;;;;;;;;;;;;:55;;;;15544:9;15527:35;;15536:6;15527:35;;;15555:6;15527:35;;;;;;:::i;:::-;;;;;;;;15580:4;15573:11;;15262:330;;;;;:::o;16700:522::-;8842:4;8833:6;;:13;;;;;;;;;;;;;;;;;;16771:19:::1;16793:29;16809:12;;16793:11;;:15;;:29;;;;:::i;:::-;16771:51;;16853:1;16838:11;:16:::0;16835:28:::1;;16856:7;;;16835:28;16878:11;;;;;;;;;;;16875:75;;;16925:13;;16906:32;;16875:75;16962:22;16987:21;16962:46;;17019:33;17036:15;17019:16;:33::i;:::-;17063:22;17088:41;17114:14;17088:21;:25;;:41;;;;:::i;:::-;17063:66;;17162:1;17145:14;:18;17142:72;;;17173:15;;;;;;;;;;;17165:33;;:49;17199:14;17165:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17142:72;16758:464;;;8857:1;8878:5:::0;8869:6;;:14;;;;;;;;;;;;;;;;;;16700:522;:::o;15604:369::-;15688:4;15708:17;:25;15726:6;15708:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15737:17;:28;15755:9;15737:28;;;;;;;;;;;;;;;;;;;;;;;;;15708:57;15705:261;;;15789:4;15782:11;;;;15705:261;15824:12;:20;15837:6;15824:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15848:12;:23;15861:9;15848:23;;;;;;;;;;;;;;;;;;;;;;;;;15824:47;15820:146;;;15895:5;15888:12;;;;15820:146;15949:5;15942:12;;15604:369;;;;;:::o;15981:711::-;16067:7;16097:14;16154:12;:20;16167:6;16154:20;;;;;;;;;;;;;;;;;;;;;;;;;16151:267;;;16213:43;16241:14;;16213:23;16224:11;;16213:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;16201:55;;16151:267;;;16295:12;:23;16308:9;16295:23;;;;;;;;;;;;;;;;;;;;;;;;;16292:126;;;16358:44;16387:14;;16358:24;16369:12;;16358:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;16346:56;;16292:126;16151:267;16449:1;16437:9;:13;16434:185;;;16498:39;16527:9;16498;:24;16516:4;16498:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16471:9;:24;16489:4;16471:24;;;;;;;;;;;;;;;:66;;;;16586:4;16561:42;;16570:6;16561:42;;;16593:9;16561:42;;;;;;:::i;:::-;;;;;;;;16434:185;16642:21;16653:9;16642:6;:10;;:21;;;;:::i;:::-;16635:28;;;15981:711;;;;;:::o;17230:648::-;17356:21;17394:1;17380:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17356:40;;17425:4;17407;17412:1;17407:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17451:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17441:4;17446:1;17441:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;17480:56;17497:4;17512:9;;;;;;;;;;;17524:11;17480:8;:56::i;:::-;17575:9;;;;;;;;;;;:60;;;17650:11;17676:1;17720:4;17747;17783:15;17575:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17835:35;17852:11;17865:4;17835:35;;;;;;;:::i;:::-;;;;;;;;17285:593;17230:648;:::o;3005:250::-;3063:7;3092:1;3087;:6;3083:47;;3117:1;3110:8;;;;3083:47;3142:9;3158:1;3154;:5;;;;:::i;:::-;3142:17;;3187:1;3182;3178;:5;;;;:::i;:::-;:10;3170:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3246:1;3239:8;;;3005:250;;;;;:::o;3263:132::-;3321:7;3348:39;3352:1;3355;3348:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3341:46;;3263:132;;;;:::o;3403:278::-;3489:7;3521:1;3517;:5;3524:12;3509:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3548:9;3564:1;3560;:5;;;;:::i;:::-;3548:17;;3672:1;3665:8;;;3403: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:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;869:99::-;921:6;955:5;949:12;939:22;;869:99;;;:::o;974:169::-;1058:11;1092:6;1087:3;1080:19;1132:4;1127:3;1123:14;1108:29;;974:169;;;;:::o;1149:246::-;1230:1;1240:113;1254:6;1251:1;1248:13;1240:113;;;1339:1;1334:3;1330:11;1324:18;1320:1;1315:3;1311:11;1304:39;1276:2;1273:1;1269:10;1264:15;;1240:113;;;1387:1;1378:6;1373:3;1369:16;1362:27;1211:184;1149:246;;;:::o;1401:102::-;1442:6;1493:2;1489:7;1484:2;1477:5;1473:14;1469:28;1459:38;;1401:102;;;:::o;1509:377::-;1597:3;1625:39;1658:5;1625:39;:::i;:::-;1680:71;1744:6;1739:3;1680:71;:::i;:::-;1673:78;;1760:65;1818:6;1813:3;1806:4;1799:5;1795:16;1760:65;:::i;:::-;1850:29;1872:6;1850:29;:::i;:::-;1845:3;1841:39;1834:46;;1601:285;1509:377;;;;:::o;1892:313::-;2005:4;2043:2;2032:9;2028:18;2020:26;;2092:9;2086:4;2082:20;2078:1;2067:9;2063:17;2056:47;2120:78;2193:4;2184:6;2120:78;:::i;:::-;2112:86;;1892:313;;;;:::o;2211:126::-;2248:7;2288:42;2281:5;2277:54;2266:65;;2211:126;;;:::o;2343:96::-;2380:7;2409:24;2427:5;2409:24;:::i;:::-;2398:35;;2343:96;;;:::o;2445:118::-;2532:24;2550:5;2532:24;:::i;:::-;2527:3;2520:37;2445:118;;:::o;2569:222::-;2662:4;2700:2;2689:9;2685:18;2677:26;;2713:71;2781:1;2770:9;2766:17;2757:6;2713:71;:::i;:::-;2569:222;;;;:::o;2878:117::-;2987:1;2984;2977:12;3001:117;3110:1;3107;3100:12;3124:122;3197:24;3215:5;3197:24;:::i;:::-;3190:5;3187:35;3177:63;;3236:1;3233;3226:12;3177:63;3124:122;:::o;3252:139::-;3298:5;3336:6;3323:20;3314:29;;3352:33;3379:5;3352:33;:::i;:::-;3252:139;;;;:::o;3397:122::-;3470:24;3488:5;3470:24;:::i;:::-;3463:5;3460:35;3450:63;;3509:1;3506;3499:12;3450:63;3397:122;:::o;3525:139::-;3571:5;3609:6;3596:20;3587:29;;3625:33;3652:5;3625:33;:::i;:::-;3525:139;;;;:::o;3670:474::-;3738:6;3746;3795:2;3783:9;3774:7;3770:23;3766:32;3763:119;;;3801:79;;:::i;:::-;3763:119;3921:1;3946:53;3991:7;3982:6;3971:9;3967:22;3946:53;:::i;:::-;3936:63;;3892:117;4048:2;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4019:118;3670:474;;;;;:::o;4150:329::-;4209:6;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4150:329;;;;:::o;4485:117::-;4594:1;4591;4584:12;4608:117;4717:1;4714;4707:12;4731:117;4840:1;4837;4830:12;4871:568;4944:8;4954:6;5004:3;4997:4;4989:6;4985:17;4981:27;4971:122;;5012:79;;:::i;:::-;4971:122;5125:6;5112:20;5102:30;;5155:18;5147:6;5144:30;5141:117;;;5177:79;;:::i;:::-;5141:117;5291:4;5283:6;5279:17;5267:29;;5345:3;5337:4;5329:6;5325:17;5315:8;5311:32;5308:41;5305:128;;;5352:79;;:::i;:::-;5305:128;4871:568;;;;;:::o;5445:116::-;5515:21;5530:5;5515:21;:::i;:::-;5508:5;5505:32;5495:60;;5551:1;5548;5541:12;5495:60;5445:116;:::o;5567:133::-;5610:5;5648:6;5635:20;5626:29;;5664:30;5688:5;5664:30;:::i;:::-;5567:133;;;;:::o;5706:698::-;5798:6;5806;5814;5863:2;5851:9;5842:7;5838:23;5834:32;5831:119;;;5869:79;;:::i;:::-;5831:119;6017:1;6006:9;6002:17;5989:31;6047:18;6039:6;6036:30;6033:117;;;6069:79;;:::i;:::-;6033:117;6182:80;6254:7;6245:6;6234:9;6230:22;6182:80;:::i;:::-;6164:98;;;;5960:312;6311:2;6337:50;6379:7;6370:6;6359:9;6355:22;6337:50;:::i;:::-;6327:60;;6282:115;5706:698;;;;;:::o;6410:619::-;6487:6;6495;6503;6552:2;6540:9;6531:7;6527:23;6523:32;6520:119;;;6558:79;;:::i;:::-;6520:119;6678:1;6703:53;6748:7;6739:6;6728:9;6724:22;6703:53;:::i;:::-;6693:63;;6649:117;6805:2;6831:53;6876:7;6867:6;6856:9;6852:22;6831:53;:::i;:::-;6821:63;;6776:118;6933:2;6959:53;7004:7;6995:6;6984:9;6980:22;6959:53;:::i;:::-;6949:63;;6904:118;6410:619;;;;;:::o;7035:86::-;7070:7;7110:4;7103:5;7099:16;7088:27;;7035:86;;;:::o;7127:112::-;7210:22;7226:5;7210:22;:::i;:::-;7205:3;7198:35;7127:112;;:::o;7245:214::-;7334:4;7372:2;7361:9;7357:18;7349:26;;7385:67;7449:1;7438:9;7434:17;7425:6;7385:67;:::i;:::-;7245:214;;;;:::o;7465:323::-;7521:6;7570:2;7558:9;7549:7;7545:23;7541:32;7538:119;;;7576:79;;:::i;:::-;7538:119;7696:1;7721:50;7763:7;7754:6;7743:9;7739:22;7721:50;:::i;:::-;7711:60;;7667:114;7465:323;;;;:::o;7794:329::-;7853:6;7902:2;7890:9;7881:7;7877:23;7873:32;7870:119;;;7908:79;;:::i;:::-;7870:119;8028:1;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7999:117;7794:329;;;;:::o;8129:468::-;8194:6;8202;8251:2;8239:9;8230:7;8226:23;8222:32;8219:119;;;8257:79;;:::i;:::-;8219:119;8377:1;8402:53;8447:7;8438:6;8427:9;8423:22;8402:53;:::i;:::-;8392:63;;8348:117;8504:2;8530:50;8572:7;8563:6;8552:9;8548:22;8530:50;:::i;:::-;8520:60;;8475:115;8129:468;;;;;:::o;8603:60::-;8631:3;8652:5;8645:12;;8603:60;;;:::o;8669:142::-;8719:9;8752:53;8770:34;8779:24;8797:5;8779:24;:::i;:::-;8770:34;:::i;:::-;8752:53;:::i;:::-;8739:66;;8669:142;;;:::o;8817:126::-;8867:9;8900:37;8931:5;8900:37;:::i;:::-;8887:50;;8817:126;;;:::o;8949:148::-;9021:9;9054:37;9085:5;9054:37;:::i;:::-;9041:50;;8949:148;;;:::o;9103:175::-;9212:59;9265:5;9212:59;:::i;:::-;9207:3;9200:72;9103:175;;:::o;9284:266::-;9399:4;9437:2;9426:9;9422:18;9414:26;;9450:93;9540:1;9529:9;9525:17;9516:6;9450:93;:::i;:::-;9284:266;;;;:::o;9556:607::-;9627:6;9635;9643;9692:2;9680:9;9671:7;9667:23;9663:32;9660:119;;;9698:79;;:::i;:::-;9660:119;9818:1;9843:50;9885:7;9876:6;9865:9;9861:22;9843:50;:::i;:::-;9833:60;;9789:114;9942:2;9968:53;10013:7;10004:6;9993:9;9989:22;9968:53;:::i;:::-;9958:63;;9913:118;10070:2;10096:50;10138:7;10129:6;10118:9;10114:22;10096:50;:::i;:::-;10086:60;;10041:115;9556:607;;;;;:::o;10169:109::-;10219:7;10248:24;10266:5;10248:24;:::i;:::-;10237:35;;10169:109;;;:::o;10284:148::-;10370:37;10401:5;10370:37;:::i;:::-;10363:5;10360:48;10350:76;;10422:1;10419;10412:12;10350:76;10284:148;:::o;10438:165::-;10497:5;10535:6;10522:20;10513:29;;10551:46;10591:5;10551:46;:::i;:::-;10438:165;;;;:::o;10609:645::-;10699:6;10707;10715;10764:2;10752:9;10743:7;10739:23;10735:32;10732:119;;;10770:79;;:::i;:::-;10732:119;10890:1;10915:66;10973:7;10964:6;10953:9;10949:22;10915:66;:::i;:::-;10905:76;;10861:130;11030:2;11056:53;11101:7;11092:6;11081:9;11077:22;11056:53;:::i;:::-;11046:63;;11001:118;11158:2;11184:53;11229:7;11220:6;11209:9;11205:22;11184:53;:::i;:::-;11174:63;;11129:118;10609:645;;;;;:::o;11260:474::-;11328:6;11336;11385:2;11373:9;11364:7;11360:23;11356:32;11353:119;;;11391:79;;:::i;:::-;11353:119;11511:1;11536:53;11581:7;11572:6;11561:9;11557:22;11536:53;:::i;:::-;11526:63;;11482:117;11638:2;11664:53;11709:7;11700:6;11689:9;11685:22;11664:53;:::i;:::-;11654:63;;11609:118;11260:474;;;;;:::o;11740:::-;11808:6;11816;11865:2;11853:9;11844:7;11840:23;11836:32;11833:119;;;11871:79;;:::i;:::-;11833:119;11991:1;12016:53;12061:7;12052:6;12041:9;12037:22;12016:53;:::i;:::-;12006:63;;11962:117;12118:2;12144:53;12189:7;12180:6;12169:9;12165:22;12144:53;:::i;:::-;12134:63;;12089:118;11740:474;;;;;:::o;12220:180::-;12268:77;12265:1;12258:88;12365:4;12362:1;12355:15;12389:4;12386:1;12379:15;12406:320;12450:6;12487:1;12481:4;12477:12;12467:22;;12534:1;12528:4;12524:12;12555:18;12545:81;;12611:4;12603:6;12599:17;12589:27;;12545:81;12673:2;12665:6;12662:14;12642:18;12639:38;12636:84;;12692:18;;:::i;:::-;12636:84;12457:269;12406:320;;;:::o;12732:182::-;12872:34;12868:1;12860:6;12856:14;12849:58;12732:182;:::o;12920:366::-;13062:3;13083:67;13147:2;13142:3;13083:67;:::i;:::-;13076:74;;13159:93;13248:3;13159:93;:::i;:::-;13277:2;13272:3;13268:12;13261:19;;12920:366;;;:::o;13292:419::-;13458:4;13496:2;13485:9;13481:18;13473:26;;13545:9;13539:4;13535:20;13531:1;13520:9;13516:17;13509:47;13573:131;13699:4;13573:131;:::i;:::-;13565:139;;13292:419;;;:::o;13717:180::-;13765:77;13762:1;13755:88;13862:4;13859:1;13852:15;13886:4;13883:1;13876:15;13903:180;13951:77;13948:1;13941:88;14048:4;14045:1;14038:15;14072:4;14069:1;14062:15;14089:233;14128:3;14151:24;14169:5;14151:24;:::i;:::-;14142:33;;14197:66;14190:5;14187:77;14184:103;;14267:18;;:::i;:::-;14184:103;14314:1;14307:5;14303:13;14296:20;;14089:233;;;:::o;14328:172::-;14468:24;14464:1;14456:6;14452:14;14445:48;14328:172;:::o;14506:366::-;14648:3;14669:67;14733:2;14728:3;14669:67;:::i;:::-;14662:74;;14745:93;14834:3;14745:93;:::i;:::-;14863:2;14858:3;14854:12;14847:19;;14506:366;;;:::o;14878:419::-;15044:4;15082:2;15071:9;15067:18;15059:26;;15131:9;15125:4;15121:20;15117:1;15106:9;15102:17;15095:47;15159:131;15285:4;15159:131;:::i;:::-;15151:139;;14878:419;;;:::o;15303:332::-;15424:4;15462:2;15451:9;15447:18;15439:26;;15475:71;15543:1;15532:9;15528:17;15519:6;15475:71;:::i;:::-;15556:72;15624:2;15613:9;15609:18;15600:6;15556:72;:::i;:::-;15303:332;;;;;:::o;15641:137::-;15695:5;15726:6;15720:13;15711:22;;15742:30;15766:5;15742:30;:::i;:::-;15641:137;;;;:::o;15784:345::-;15851:6;15900:2;15888:9;15879:7;15875:23;15871:32;15868:119;;;15906:79;;:::i;:::-;15868:119;16026:1;16051:61;16104:7;16095:6;16084:9;16080:22;16051:61;:::i;:::-;16041:71;;15997:125;15784:345;;;;:::o;16135:147::-;16236:11;16273:3;16258:18;;16135:147;;;;:::o;16288:114::-;;:::o;16408:398::-;16567:3;16588:83;16669:1;16664:3;16588:83;:::i;:::-;16581:90;;16680:93;16769:3;16680:93;:::i;:::-;16798:1;16793:3;16789:11;16782:18;;16408:398;;;:::o;16812:379::-;16996:3;17018:147;17161:3;17018:147;:::i;:::-;17011:154;;17182:3;17175:10;;16812:379;;;:::o;17197:170::-;17337:22;17333:1;17325:6;17321:14;17314:46;17197:170;:::o;17373:366::-;17515:3;17536:67;17600:2;17595:3;17536:67;:::i;:::-;17529:74;;17612:93;17701:3;17612:93;:::i;:::-;17730:2;17725:3;17721:12;17714:19;;17373:366;;;:::o;17745:419::-;17911:4;17949:2;17938:9;17934:18;17926:26;;17998:9;17992:4;17988:20;17984:1;17973:9;17969:17;17962:47;18026:131;18152:4;18026:131;:::i;:::-;18018:139;;17745:419;;;:::o;18170:225::-;18310:34;18306:1;18298:6;18294:14;18287:58;18379:8;18374:2;18366:6;18362:15;18355:33;18170:225;:::o;18401:366::-;18543:3;18564:67;18628:2;18623:3;18564:67;:::i;:::-;18557:74;;18640:93;18729:3;18640:93;:::i;:::-;18758:2;18753:3;18749:12;18742:19;;18401:366;;;:::o;18773:419::-;18939:4;18977:2;18966:9;18962:18;18954:26;;19026:9;19020:4;19016:20;19012:1;19001:9;18997:17;18990:47;19054:131;19180:4;19054:131;:::i;:::-;19046:139;;18773:419;;;:::o;19198:223::-;19338:34;19334:1;19326:6;19322:14;19315:58;19407:6;19402:2;19394:6;19390:15;19383:31;19198:223;:::o;19427:366::-;19569:3;19590:67;19654:2;19649:3;19590:67;:::i;:::-;19583:74;;19666:93;19755:3;19666:93;:::i;:::-;19784:2;19779:3;19775:12;19768:19;;19427:366;;;:::o;19799:419::-;19965:4;20003:2;19992:9;19988:18;19980:26;;20052:9;20046:4;20042:20;20038:1;20027:9;20023:17;20016:47;20080:131;20206:4;20080:131;:::i;:::-;20072:139;;19799:419;;;:::o;20224:221::-;20364:34;20360:1;20352:6;20348:14;20341:58;20433:4;20428:2;20420:6;20416:15;20409:29;20224:221;:::o;20451:366::-;20593:3;20614:67;20678:2;20673:3;20614:67;:::i;:::-;20607:74;;20690:93;20779:3;20690:93;:::i;:::-;20808:2;20803:3;20799:12;20792:19;;20451:366;;;:::o;20823:419::-;20989:4;21027:2;21016:9;21012:18;21004:26;;21076:9;21070:4;21066:20;21062:1;21051:9;21047:17;21040:47;21104:131;21230:4;21104:131;:::i;:::-;21096:139;;20823:419;;;:::o;21248:224::-;21388:34;21384:1;21376:6;21372:14;21365:58;21457:7;21452:2;21444:6;21440:15;21433:32;21248:224;:::o;21478:366::-;21620:3;21641:67;21705:2;21700:3;21641:67;:::i;:::-;21634:74;;21717:93;21806:3;21717:93;:::i;:::-;21835:2;21830:3;21826:12;21819:19;;21478:366;;;:::o;21850:419::-;22016:4;22054:2;22043:9;22039:18;22031:26;;22103:9;22097:4;22093:20;22089:1;22078:9;22074:17;22067:47;22131:131;22257:4;22131:131;:::i;:::-;22123:139;;21850:419;;;:::o;22275:222::-;22415:34;22411:1;22403:6;22399:14;22392:58;22484:5;22479:2;22471:6;22467:15;22460:30;22275:222;:::o;22503:366::-;22645:3;22666:67;22730:2;22725:3;22666:67;:::i;:::-;22659:74;;22742:93;22831:3;22742:93;:::i;:::-;22860:2;22855:3;22851:12;22844:19;;22503:366;;;:::o;22875:419::-;23041:4;23079:2;23068:9;23064:18;23056:26;;23128:9;23122:4;23118:20;23114:1;23103:9;23099:17;23092:47;23156:131;23282:4;23156:131;:::i;:::-;23148:139;;22875:419;;;:::o;23300:228::-;23440:34;23436:1;23428:6;23424:14;23417:58;23509:11;23504:2;23496:6;23492:15;23485:36;23300:228;:::o;23534:366::-;23676:3;23697:67;23761:2;23756:3;23697:67;:::i;:::-;23690:74;;23773:93;23862:3;23773:93;:::i;:::-;23891:2;23886:3;23882:12;23875:19;;23534:366;;;:::o;23906:419::-;24072:4;24110:2;24099:9;24095:18;24087:26;;24159:9;24153:4;24149:20;24145:1;24134:9;24130:17;24123:47;24187:131;24313:4;24187:131;:::i;:::-;24179:139;;23906:419;;;:::o;24331:169::-;24471:21;24467:1;24459:6;24455:14;24448:45;24331:169;:::o;24506:366::-;24648:3;24669:67;24733:2;24728:3;24669:67;:::i;:::-;24662:74;;24745:93;24834:3;24745:93;:::i;:::-;24863:2;24858:3;24854:12;24847:19;;24506:366;;;:::o;24878:419::-;25044:4;25082:2;25071:9;25067:18;25059:26;;25131:9;25125:4;25121:20;25117:1;25106:9;25102:17;25095:47;25159:131;25285:4;25159:131;:::i;:::-;25151:139;;24878:419;;;:::o;25303:179::-;25443:31;25439:1;25431:6;25427:14;25420:55;25303:179;:::o;25488:366::-;25630:3;25651:67;25715:2;25710:3;25651:67;:::i;:::-;25644:74;;25727:93;25816:3;25727:93;:::i;:::-;25845:2;25840:3;25836:12;25829:19;;25488:366;;;:::o;25860:419::-;26026:4;26064:2;26053:9;26049:18;26041:26;;26113:9;26107:4;26103:20;26099:1;26088:9;26084:17;26077:47;26141:131;26267:4;26141:131;:::i;:::-;26133:139;;25860:419;;;:::o;26285:227::-;26425:34;26421:1;26413:6;26409:14;26402:58;26494:10;26489:2;26481:6;26477:15;26470:35;26285:227;:::o;26518:366::-;26660:3;26681:67;26745:2;26740:3;26681:67;:::i;:::-;26674:74;;26757:93;26846:3;26757:93;:::i;:::-;26875:2;26870:3;26866:12;26859:19;;26518:366;;;:::o;26890:419::-;27056:4;27094:2;27083:9;27079:18;27071:26;;27143:9;27137:4;27133:20;27129:1;27118:9;27114:17;27107:47;27171:131;27297:4;27171:131;:::i;:::-;27163:139;;26890:419;;;:::o;27315:177::-;27455:29;27451:1;27443:6;27439:14;27432:53;27315:177;:::o;27498:366::-;27640:3;27661:67;27725:2;27720:3;27661:67;:::i;:::-;27654:74;;27737:93;27826:3;27737:93;:::i;:::-;27855:2;27850:3;27846:12;27839:19;;27498:366;;;:::o;27870:419::-;28036:4;28074:2;28063:9;28059:18;28051:26;;28123:9;28117:4;28113:20;28109:1;28098:9;28094:17;28087:47;28151:131;28277:4;28151:131;:::i;:::-;28143:139;;27870:419;;;:::o;28295:194::-;28335:4;28355:20;28373:1;28355:20;:::i;:::-;28350:25;;28389:20;28407:1;28389:20;:::i;:::-;28384:25;;28433:1;28430;28426:9;28418:17;;28457:1;28451:4;28448:11;28445:37;;;28462:18;;:::i;:::-;28445:37;28295:194;;;;:::o;28495:191::-;28535:3;28554:20;28572:1;28554:20;:::i;:::-;28549:25;;28588:20;28606:1;28588:20;:::i;:::-;28583:25;;28631:1;28628;28624:9;28617:16;;28652:3;28649:1;28646:10;28643:36;;;28659:18;;:::i;:::-;28643:36;28495:191;;;;:::o;28692:177::-;28832:29;28828:1;28820:6;28816:14;28809:53;28692:177;:::o;28875:366::-;29017:3;29038:67;29102:2;29097:3;29038:67;:::i;:::-;29031:74;;29114:93;29203:3;29114:93;:::i;:::-;29232:2;29227:3;29223:12;29216:19;;28875:366;;;:::o;29247:419::-;29413:4;29451:2;29440:9;29436:18;29428:26;;29500:9;29494:4;29490:20;29486:1;29475:9;29471:17;29464:47;29528:131;29654:4;29528:131;:::i;:::-;29520:139;;29247:419;;;:::o;29672:180::-;29720:77;29717:1;29710:88;29817:4;29814:1;29807:15;29841:4;29838:1;29831:15;29858:143;29915:5;29946:6;29940:13;29931:22;;29962:33;29989:5;29962:33;:::i;:::-;29858:143;;;;:::o;30007:351::-;30077:6;30126:2;30114:9;30105:7;30101:23;30097:32;30094:119;;;30132:79;;:::i;:::-;30094:119;30252:1;30277:64;30333:7;30324:6;30313:9;30309:22;30277:64;:::i;:::-;30267:74;;30223:128;30007:351;;;;:::o;30364:85::-;30409:7;30438:5;30427:16;;30364:85;;;:::o;30455:158::-;30513:9;30546:61;30564:42;30573:32;30599:5;30573:32;:::i;:::-;30564:42;:::i;:::-;30546:61;:::i;:::-;30533:74;;30455:158;;;:::o;30619:147::-;30714:45;30753:5;30714:45;:::i;:::-;30709:3;30702:58;30619:147;;:::o;30772:114::-;30839:6;30873:5;30867:12;30857:22;;30772:114;;;:::o;30892:184::-;30991:11;31025:6;31020:3;31013:19;31065:4;31060:3;31056:14;31041:29;;30892:184;;;;:::o;31082:132::-;31149:4;31172:3;31164:11;;31202:4;31197:3;31193:14;31185:22;;31082:132;;;:::o;31220:108::-;31297:24;31315:5;31297:24;:::i;:::-;31292:3;31285:37;31220:108;;:::o;31334:179::-;31403:10;31424:46;31466:3;31458:6;31424:46;:::i;:::-;31502:4;31497:3;31493:14;31479:28;;31334:179;;;;:::o;31519:113::-;31589:4;31621;31616:3;31612:14;31604:22;;31519:113;;;:::o;31668:732::-;31787:3;31816:54;31864:5;31816:54;:::i;:::-;31886:86;31965:6;31960:3;31886:86;:::i;:::-;31879:93;;31996:56;32046:5;31996:56;:::i;:::-;32075:7;32106:1;32091:284;32116:6;32113:1;32110:13;32091:284;;;32192:6;32186:13;32219:63;32278:3;32263:13;32219:63;:::i;:::-;32212:70;;32305:60;32358:6;32305:60;:::i;:::-;32295:70;;32151:224;32138:1;32135;32131:9;32126:14;;32091:284;;;32095:14;32391:3;32384:10;;31792:608;;;31668:732;;;;:::o;32406:831::-;32669:4;32707:3;32696:9;32692:19;32684:27;;32721:71;32789:1;32778:9;32774:17;32765:6;32721:71;:::i;:::-;32802:80;32878:2;32867:9;32863:18;32854:6;32802:80;:::i;:::-;32929:9;32923:4;32919:20;32914:2;32903:9;32899:18;32892:48;32957:108;33060:4;33051:6;32957:108;:::i;:::-;32949:116;;33075:72;33143:2;33132:9;33128:18;33119:6;33075:72;:::i;:::-;33157:73;33225:3;33214:9;33210:19;33201:6;33157:73;:::i;:::-;32406:831;;;;;;;;:::o;33243:483::-;33414:4;33452:2;33441:9;33437:18;33429:26;;33465:71;33533:1;33522:9;33518:17;33509:6;33465:71;:::i;:::-;33583:9;33577:4;33573:20;33568:2;33557:9;33553:18;33546:48;33611:108;33714:4;33705:6;33611:108;:::i;:::-;33603:116;;33243:483;;;;;:::o;33732:410::-;33772:7;33795:20;33813:1;33795:20;:::i;:::-;33790:25;;33829:20;33847:1;33829:20;:::i;:::-;33824:25;;33884:1;33881;33877:9;33906:30;33924:11;33906:30;:::i;:::-;33895:41;;34085:1;34076:7;34072:15;34069:1;34066:22;34046:1;34039:9;34019:83;33996:139;;34115:18;;:::i;:::-;33996:139;33780:362;33732:410;;;;:::o;34148:180::-;34196:77;34193:1;34186:88;34293:4;34290:1;34283:15;34317:4;34314:1;34307:15;34334:185;34374:1;34391:20;34409:1;34391:20;:::i;:::-;34386:25;;34425:20;34443:1;34425:20;:::i;:::-;34420:25;;34464:1;34454:35;;34469:18;;:::i;:::-;34454:35;34511:1;34508;34504:9;34499:14;;34334:185;;;;:::o;34525:220::-;34665:34;34661:1;34653:6;34649:14;34642:58;34734:3;34729:2;34721:6;34717:15;34710:28;34525:220;:::o;34751:366::-;34893:3;34914:67;34978:2;34973:3;34914:67;:::i;:::-;34907:74;;34990:93;35079:3;34990:93;:::i;:::-;35108:2;35103:3;35099:12;35092:19;;34751:366;;;:::o;35123:419::-;35289:4;35327:2;35316:9;35312:18;35304:26;;35376:9;35370:4;35366:20;35362:1;35351:9;35347:17;35340:47;35404:131;35530:4;35404:131;:::i;:::-;35396:139;;35123:419;;;:::o

Swarm Source

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