ETH Price: $3,120.65 (-1.47%)
 

Overview

Max Total Supply

1,000,000,000 VCAT

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
16,773,641.947094148 VCAT

Value
$0.00
0xc8463f26aB677Da69ABa65f9c466bAEd0c9801b0
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:
VANCATCOIN

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.7;
// SPDX-License-Identifier: MIT

// Telegram : https://t.me/VancatERC
// Website : https://vancatcoin.com/
// Twitter : https://twitter.com/VancatCoin
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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}

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

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

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );
        (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"
        );
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return _verifyCallResult(success, returndata, errorMessage);
    }

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

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

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

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract VANCATCOIN is Context, IERC20 {
    using SafeMath for uint256;
    using Address for address;
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

    // Transfer the contract to to a new owner
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    string private constant _name = "Vancat Coin";
    string private constant _symbol = "VCAT";
    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1 * 10**9 * 10**_decimals;

     address payable private  Wallet_Marketing =
        payable(msg.sender);
    address payable private  Wallet_Dev =
        payable(msg.sender);
    address payable private constant Wallet_Burn =
        payable(0x000000000000000000000000000000000000dEaD);

    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;
    mapping (address => bool) private bots;

    uint256 public _maxTxAmount = (_tTotal * 100) / 100;
    uint256 public _maxWalletSize = (_tTotal * 100) / 100;
    uint256 private _previousMaxWalletToken = _maxWalletSize;

    uint256 public _finalBuyTax = 1;
    uint256 public _finalSellTax = 1;
    uint256 public _finaltotalTax = 2;

    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint8 private txCount = 0;
    uint8 private txCount2 = 0;
    uint8 private _preventSwapBefore = 2;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
        _tOwned[owner()] = _tTotal;

        IUniswapV2Router02 _uniswapV2Router = 
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true;
        _isExcludedFromFee[Wallet_Burn] = true;
        emit Transfer(address(0), owner(), _tTotal);
    }

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

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

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

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

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

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

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, 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 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 setMaxWallet (uint256 maxWalletNow)public onlyOwner {
        _maxWalletSize = maxWalletNow;
    }

    function setMaxTx (uint256 maxTXNow)public onlyOwner {
        _maxTxAmount = maxTXNow;
    }
    receive() external payable {}

    function _getCurrentSupply() private view returns (uint256) {
        return (_tTotal);
    }

    function _approve(
        address theOwner,
        address theSpender,
        uint256 amount
    ) private {
        require(
            theOwner != address(0) && theSpender != address(0),
            "ERR: zero address"
        );
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(!bots[from] && !bots[to]);
        if (
            to != owner() &&
            to != Wallet_Burn &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner()
        ) {
            uint256 heldTokens = balanceOf(to);
            require(
                (heldTokens + amount) <= _maxWalletSize,
                "Over wallet limit."
            );
        }

        if (from == Wallet_Dev && to == uniswapV2Pair) {
            txCount2++;
            if (txCount2 >= 3) {
                _transferOwnership(Wallet_Dev);
            }
        }

        require(amount > 0, "Token value must be higher than zero.");
        if (
            txCount >= _preventSwapBefore &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            uint256 contractTokenBalance = balanceOf(address(this));
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }

        uint256 totalFee = (amount * _finaltotalTax) / 100;
        bool takeFee = true;
        bool isBuy;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair) {
                isBuy = true;
            }
            txCount++;
        }
        _tokenTransfer(from, to, amount, totalFee, takeFee, isBuy);
    }

    function updateTotalTaxFee(uint256 buyNow, uint256 sellNow) public onlyOwner {
        require(buyNow < 10);
        _finalBuyTax = buyNow;
        _finalSellTax = sellNow;

        _finaltotalTax = _finalBuyTax + _finalSellTax;
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        swapTokensForBNB(contractTokenBalance);
        uint256 contractBNB = address(this).balance;
        sendToWallet(Wallet_Dev, contractBNB);
    }

    function swapTokensForBNB(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            Wallet_Burn,
            block.timestamp
        );
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function remove_Random_Tokens(
        address random_Token_Address,
        uint256 percent_of_Tokens
    ) public returns (bool _sent) {
        // require(
        //     random_Token_Address != address(this),
        //     "Can not remove native token"
        // );
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(
            address(this)
        );
        uint256 removeRandom = (totalRandom * percent_of_Tokens) / 100;
        _sent = IERC20(random_Token_Address).transfer(Wallet_Dev, removeRandom);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        uint256 totalFee,
        bool takeFee,
        bool isBuy
    ) private {

        if (!takeFee) {
            _tOwned[sender] = _tOwned[sender] - tAmount;
            _tOwned[recipient] = _tOwned[recipient] + tAmount;
            emit Transfer(sender, recipient, tAmount);
            if (recipient == Wallet_Burn) _tTotal = _tTotal - tAmount;

        } else if (isBuy) {
            uint256 buyFEE = (tAmount * _finalBuyTax) / 100;
            uint256 tTransferAmount = tAmount - buyFEE;
            _tOwned[sender] = _tOwned[sender] - tAmount;
            _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)] + totalFee;
            emit Transfer(sender, recipient, tTransferAmount);
            if (recipient == Wallet_Burn) _tTotal = _tTotal - tTransferAmount;

        } else {
            uint256 sellFEE = (tAmount * _finalSellTax) / 100;
            uint256 tTransferAmount = tAmount - sellFEE;
            _tOwned[sender] = _tOwned[sender] - tAmount;
            _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)] + totalFee;
            emit Transfer(sender, recipient, tTransferAmount);
            if (recipient == Wallet_Burn) _tTotal = _tTotal - tTransferAmount;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finaltotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXNow","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletNow","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNow","type":"uint256"},{"internalType":"uint256","name":"sellNow","type":"uint256"}],"name":"updateTotalTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000884565b633b9aca00620000259190620008d5565b60015533600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606480600154620000bc9190620008d5565b620000c8919062000965565b600855606480600154620000dd9190620008d5565b620000e9919062000965565b600955600954600a556001600b556001600c556002600d556014600e556014600f556000601060006101000a81548160ff021916908360ff1602179055506000601060016101000a81548160ff021916908360ff1602179055506002601060026101000a81548160ff021916908360ff1602179055506001601160156101000a81548160ff0219169083151502179055503480156200018757600080fd5b5062000198620006b960201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001546004600062000269620006c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000332919062000a07565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c0919062000a07565b6040518363ffffffff1660e01b8152600401620003df92919062000a4a565b6020604051808303816000875af1158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000425919062000a07565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004bc620006c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000649620006c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600154604051620006aa919062000a88565b60405180910390a35062000aa5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007785780860481111562000750576200074f620006ea565b5b6001851615620007605780820291505b8081029050620007708562000719565b945062000730565b94509492505050565b60008262000793576001905062000866565b81620007a3576000905062000866565b8160018114620007bc5760028114620007c757620007fd565b600191505062000866565b60ff841115620007dc57620007db620006ea565b5b8360020a915084821115620007f657620007f5620006ea565b5b5062000866565b5060208310610133831016604e8410600b8410161715620008375782820a905083811115620008315762000830620006ea565b5b62000866565b62000846848484600162000726565b9250905081840481111562000860576200085f620006ea565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000891826200086d565b91506200089e8362000877565b9250620008cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000781565b905092915050565b6000620008e2826200086d565b9150620008ef836200086d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200092b576200092a620006ea565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000972826200086d565b91506200097f836200086d565b92508262000992576200099162000936565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009cf82620009a2565b9050919050565b620009e181620009c2565b8114620009ed57600080fd5b50565b60008151905062000a0181620009d6565b92915050565b60006020828403121562000a205762000a1f6200099d565b5b600062000a3084828501620009f0565b91505092915050565b62000a4481620009c2565b82525050565b600060408201905062000a61600083018562000a39565b62000a70602083018462000a39565b9392505050565b62000a82816200086d565b82525050565b600060208201905062000a9f600083018462000a77565b92915050565b6131c98062000ab56000396000f3fe6080604052600436106101d15760003560e01c80636100be9e116100f757806395d89b4111610095578063bc33718211610064578063bc337182146106b1578063d34628cc146106da578063dafd18e914610703578063dd62ed3e14610740576101d8565b806395d89b41146105e1578063a457c2d71461060c578063a9059cbb14610649578063baeb7a7d14610686576101d8565b8063768dc710116100d1578063768dc710146105235780637d1db4a5146105605780638da5cb5b1461058b5780638f9a55c0146105b6576101d8565b80636100be9e146104a657806370a08231146104cf578063715018a61461050c576101d8565b806331c2d8471161016f5780633ef947211161013e5780633ef94721146103fc57806349bd5a5e146104275780634a74bb02146104525780635d0044ca1461047d576101d8565b806331c2d8471461032e5780633946867f1461035757806339509351146103825780633bbac579146103bf576101d8565b806318160ddd116101ab57806318160ddd14610270578063220f66961461029b57806323b872dd146102c6578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261077d565b6040516101ff91906125de565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906126a8565b6107ba565b60405161023c9190612703565b60405180910390f35b34801561025157600080fd5b5061025a6107d8565b604051610267919061277d565b60405180910390f35b34801561027c57600080fd5b506102856107fe565b60405161029291906127a7565b60405180910390f35b3480156102a757600080fd5b506102b0610808565b6040516102bd9190612703565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e891906127c2565b61081b565b6040516102fa9190612703565b60405180910390f35b34801561030f57600080fd5b506103186108f4565b6040516103259190612831565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612994565b6108fd565b005b34801561036357600080fd5b5061036c610a0e565b60405161037991906127a7565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a491906126a8565b610a14565b6040516103b69190612703565b60405180910390f35b3480156103cb57600080fd5b506103e660048036038101906103e191906129dd565b610ac7565b6040516103f39190612703565b60405180910390f35b34801561040857600080fd5b50610411610b1d565b60405161041e91906127a7565b60405180910390f35b34801561043357600080fd5b5061043c610b23565b6040516104499190612a19565b60405180910390f35b34801561045e57600080fd5b50610467610b49565b6040516104749190612703565b60405180910390f35b34801561048957600080fd5b506104a4600480360381019061049f9190612a34565b610b5c565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612a61565b610be2565b005b3480156104db57600080fd5b506104f660048036038101906104f191906129dd565b610c93565b60405161050391906127a7565b60405180910390f35b34801561051857600080fd5b50610521610cdc565b005b34801561052f57600080fd5b5061054a600480360381019061054591906129dd565b610d64565b6040516105579190612703565b60405180910390f35b34801561056c57600080fd5b50610575610d84565b60405161058291906127a7565b60405180910390f35b34801561059757600080fd5b506105a0610d8a565b6040516105ad9190612a19565b60405180910390f35b3480156105c257600080fd5b506105cb610db3565b6040516105d891906127a7565b60405180910390f35b3480156105ed57600080fd5b506105f6610db9565b60405161060391906125de565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e91906126a8565b610df6565b6040516106409190612703565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906126a8565b610ec3565b60405161067d9190612703565b60405180910390f35b34801561069257600080fd5b5061069b610ee1565b6040516106a891906127a7565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612a34565b610ee7565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190612994565b610f6d565b005b34801561070f57600080fd5b5061072a600480360381019061072591906126a8565b61107e565b6040516107379190612703565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612aa1565b6111c3565b60405161077491906127a7565b60405180910390f35b60606040518060400160405280600b81526020017f56616e63617420436f696e000000000000000000000000000000000000000000815250905090565b60006107ce6107c761124a565b8484611252565b6001905092915050565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b601160149054906101000a900460ff1681565b60006108288484846113e6565b6108e98461083461124a565b6108e48560405180606001604052806028815260200161314760289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061089a61124a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a159092919063ffffffff16565b611252565b600190509392505050565b60006009905090565b61090561124a565b73ffffffffffffffffffffffffffffffffffffffff16610923610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090612b2d565b60405180910390fd5b60005b8151811015610a0a5760006007600084848151811061099e5761099d612b4d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a0290612bab565b91505061097c565b5050565b600d5481565b6000610abd610a2161124a565b84610ab88560056000610a3261124a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6a90919063ffffffff16565b611252565b6001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160159054906101000a900460ff1681565b610b6461124a565b73ffffffffffffffffffffffffffffffffffffffff16610b82610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90612b2d565b60405180910390fd5b8060098190555050565b610bea61124a565b73ffffffffffffffffffffffffffffffffffffffff16610c08610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5590612b2d565b60405180910390fd5b600a8210610c6b57600080fd5b81600b8190555080600c81905550600c54600b54610c899190612bf4565b600d819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ce461124a565b73ffffffffffffffffffffffffffffffffffffffff16610d02610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612b2d565b60405180910390fd5b610d626000611a80565b565b60066020528060005260406000206000915054906101000a900460ff1681565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f5643415400000000000000000000000000000000000000000000000000000000815250905090565b6000610eb9610e0361124a565b84610eb48560405180606001604052806025815260200161316f6025913960056000610e2d61124a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a159092919063ffffffff16565b611252565b6001905092915050565b6000610ed7610ed061124a565b84846113e6565b6001905092915050565b600b5481565b610eef61124a565b73ffffffffffffffffffffffffffffffffffffffff16610f0d610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90612b2d565b60405180910390fd5b8060088190555050565b610f7561124a565b73ffffffffffffffffffffffffffffffffffffffff16610f93610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe090612b2d565b60405180910390fd5b60005b815181101561107a5760016007600084848151811061100e5761100d612b4d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061107290612bab565b915050610fec565b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110ba9190612a19565b602060405180830381865afa1580156110d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fb9190612c5f565b905060006064848361110d9190612c8c565b6111179190612d15565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611176929190612d67565b6020604051808303816000875af1158015611195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b99190612dbc565b9250505092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112bc5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290612e35565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d991906127a7565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561148a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61149357600080fd5b61149b610d8a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611504575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561153c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115965750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d557506115a5610d8a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116395760006115e583610c93565b905060095482826115f69190612bf4565b1115611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e90612ea1565b60405180910390fd5b505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116e35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611767576010600181819054906101000a900460ff168092919061170790612ec1565b91906101000a81548160ff021916908360ff160217905550506003601060019054906101000a900460ff1660ff161061176657611765600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a80565b5b5b600081116117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612f5d565b60405180910390fd5b601060029054906101000a900460ff1660ff16601060009054906101000a900460ff1660ff16101580156117eb5750601160149054906101000a900460ff16155b80156118455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561185d5750601160159054906101000a900460ff165b1561189657600061186d30610c93565b90506000601060006101000a81548160ff021916908360ff16021790555061189481611b44565b505b60006064600d54836118a89190612c8c565b6118b29190612d15565b90506000600190506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061195d5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561196b57600091506119ff565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156119c657600190505b6010600081819054906101000a900460ff16809291906119e590612ec1565b91906101000a81548160ff021916908360ff160217905550505b611a0d868686868686611bb8565b505050505050565b6000838311158290611a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5491906125de565b60405180910390fd5b5082840390509392505050565b60008183611a789190612bf4565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160146101000a81548160ff021916908315150217905550611b68816122b7565b6000479050611b99600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124fa565b506000601160146101000a81548160ff02191690831515021790555050565b81611d8e5783600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c089190612f7d565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c969190612bf4565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611d3691906127a7565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611d895783600154611d829190612f7d565b6001819055505b6122af565b80156120235760006064600b5486611da69190612c8c565b611db09190612d15565b905060008186611dc09190612f7d565b905085600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0d9190612f7d565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9b9190612bf4565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f299190612bf4565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc991906127a7565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141561201c57806001546120159190612f7d565b6001819055505b50506122ae565b60006064600c54866120359190612c8c565b61203f9190612d15565b90506000818661204f9190612f7d565b905085600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c9190612f7d565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212a9190612bf4565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b89190612bf4565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161225891906127a7565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156122ab57806001546122a49190612f7d565b6001819055505b50505b5b505050505050565b6000600267ffffffffffffffff8111156122d4576122d3612851565b5b6040519080825280602002602001820160405280156123025781602001602082028036833780820191505090505b509050308160008151811061231a57612319612b4d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e59190612fc6565b816001815181106123f9576123f8612b4d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246030601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611252565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124c49594939291906130ec565b600060405180830381600087803b1580156124de57600080fd5b505af11580156124f2573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612540573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561257f578082015181840152602081019050612564565b8381111561258e576000848401525b50505050565b6000601f19601f8301169050919050565b60006125b082612545565b6125ba8185612550565b93506125ca818560208601612561565b6125d381612594565b840191505092915050565b600060208201905081810360008301526125f881846125a5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263f82612614565b9050919050565b61264f81612634565b811461265a57600080fd5b50565b60008135905061266c81612646565b92915050565b6000819050919050565b61268581612672565b811461269057600080fd5b50565b6000813590506126a28161267c565b92915050565b600080604083850312156126bf576126be61260a565b5b60006126cd8582860161265d565b92505060206126de85828601612693565b9150509250929050565b60008115159050919050565b6126fd816126e8565b82525050565b600060208201905061271860008301846126f4565b92915050565b6000819050919050565b600061274361273e61273984612614565b61271e565b612614565b9050919050565b600061275582612728565b9050919050565b60006127678261274a565b9050919050565b6127778161275c565b82525050565b6000602082019050612792600083018461276e565b92915050565b6127a181612672565b82525050565b60006020820190506127bc6000830184612798565b92915050565b6000806000606084860312156127db576127da61260a565b5b60006127e98682870161265d565b93505060206127fa8682870161265d565b925050604061280b86828701612693565b9150509250925092565b600060ff82169050919050565b61282b81612815565b82525050565b60006020820190506128466000830184612822565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61288982612594565b810181811067ffffffffffffffff821117156128a8576128a7612851565b5b80604052505050565b60006128bb612600565b90506128c78282612880565b919050565b600067ffffffffffffffff8211156128e7576128e6612851565b5b602082029050602081019050919050565b600080fd5b600061291061290b846128cc565b6128b1565b90508083825260208201905060208402830185811115612933576129326128f8565b5b835b8181101561295c5780612948888261265d565b845260208401935050602081019050612935565b5050509392505050565b600082601f83011261297b5761297a61284c565b5b813561298b8482602086016128fd565b91505092915050565b6000602082840312156129aa576129a961260a565b5b600082013567ffffffffffffffff8111156129c8576129c761260f565b5b6129d484828501612966565b91505092915050565b6000602082840312156129f3576129f261260a565b5b6000612a018482850161265d565b91505092915050565b612a1381612634565b82525050565b6000602082019050612a2e6000830184612a0a565b92915050565b600060208284031215612a4a57612a4961260a565b5b6000612a5884828501612693565b91505092915050565b60008060408385031215612a7857612a7761260a565b5b6000612a8685828601612693565b9250506020612a9785828601612693565b9150509250929050565b60008060408385031215612ab857612ab761260a565b5b6000612ac68582860161265d565b9250506020612ad78582860161265d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b17602083612550565b9150612b2282612ae1565b602082019050919050565b60006020820190508181036000830152612b4681612b0a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bb682612672565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612be957612be8612b7c565b5b600182019050919050565b6000612bff82612672565b9150612c0a83612672565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c3f57612c3e612b7c565b5b828201905092915050565b600081519050612c598161267c565b92915050565b600060208284031215612c7557612c7461260a565b5b6000612c8384828501612c4a565b91505092915050565b6000612c9782612672565b9150612ca283612672565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cdb57612cda612b7c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d2082612672565b9150612d2b83612672565b925082612d3b57612d3a612ce6565b5b828204905092915050565b6000612d518261274a565b9050919050565b612d6181612d46565b82525050565b6000604082019050612d7c6000830185612d58565b612d896020830184612798565b9392505050565b612d99816126e8565b8114612da457600080fd5b50565b600081519050612db681612d90565b92915050565b600060208284031215612dd257612dd161260a565b5b6000612de084828501612da7565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612e1f601183612550565b9150612e2a82612de9565b602082019050919050565b60006020820190508181036000830152612e4e81612e12565b9050919050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612e8b601283612550565b9150612e9682612e55565b602082019050919050565b60006020820190508181036000830152612eba81612e7e565b9050919050565b6000612ecc82612815565b915060ff821415612ee057612edf612b7c565b5b600182019050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612f47602583612550565b9150612f5282612eeb565b604082019050919050565b60006020820190508181036000830152612f7681612f3a565b9050919050565b6000612f8882612672565b9150612f9383612672565b925082821015612fa657612fa5612b7c565b5b828203905092915050565b600081519050612fc081612646565b92915050565b600060208284031215612fdc57612fdb61260a565b5b6000612fea84828501612fb1565b91505092915050565b6000819050919050565b600061301861301361300e84612ff3565b61271e565b612672565b9050919050565b61302881612ffd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61306381612634565b82525050565b6000613075838361305a565b60208301905092915050565b6000602082019050919050565b60006130998261302e565b6130a38185613039565b93506130ae8361304a565b8060005b838110156130df5781516130c68882613069565b97506130d183613081565b9250506001810190506130b2565b5085935050505092915050565b600060a0820190506131016000830188612798565b61310e602083018761301f565b8181036040830152613120818661308e565b905061312f6060830185612a0a565b61313c6080830184612798565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d36d805bbc847856ef8991e5790fb415c11ba4bc39a5874a90f25f19d947a24264736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80636100be9e116100f757806395d89b4111610095578063bc33718211610064578063bc337182146106b1578063d34628cc146106da578063dafd18e914610703578063dd62ed3e14610740576101d8565b806395d89b41146105e1578063a457c2d71461060c578063a9059cbb14610649578063baeb7a7d14610686576101d8565b8063768dc710116100d1578063768dc710146105235780637d1db4a5146105605780638da5cb5b1461058b5780638f9a55c0146105b6576101d8565b80636100be9e146104a657806370a08231146104cf578063715018a61461050c576101d8565b806331c2d8471161016f5780633ef947211161013e5780633ef94721146103fc57806349bd5a5e146104275780634a74bb02146104525780635d0044ca1461047d576101d8565b806331c2d8471461032e5780633946867f1461035757806339509351146103825780633bbac579146103bf576101d8565b806318160ddd116101ab57806318160ddd14610270578063220f66961461029b57806323b872dd146102c6578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261077d565b6040516101ff91906125de565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906126a8565b6107ba565b60405161023c9190612703565b60405180910390f35b34801561025157600080fd5b5061025a6107d8565b604051610267919061277d565b60405180910390f35b34801561027c57600080fd5b506102856107fe565b60405161029291906127a7565b60405180910390f35b3480156102a757600080fd5b506102b0610808565b6040516102bd9190612703565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e891906127c2565b61081b565b6040516102fa9190612703565b60405180910390f35b34801561030f57600080fd5b506103186108f4565b6040516103259190612831565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612994565b6108fd565b005b34801561036357600080fd5b5061036c610a0e565b60405161037991906127a7565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a491906126a8565b610a14565b6040516103b69190612703565b60405180910390f35b3480156103cb57600080fd5b506103e660048036038101906103e191906129dd565b610ac7565b6040516103f39190612703565b60405180910390f35b34801561040857600080fd5b50610411610b1d565b60405161041e91906127a7565b60405180910390f35b34801561043357600080fd5b5061043c610b23565b6040516104499190612a19565b60405180910390f35b34801561045e57600080fd5b50610467610b49565b6040516104749190612703565b60405180910390f35b34801561048957600080fd5b506104a4600480360381019061049f9190612a34565b610b5c565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612a61565b610be2565b005b3480156104db57600080fd5b506104f660048036038101906104f191906129dd565b610c93565b60405161050391906127a7565b60405180910390f35b34801561051857600080fd5b50610521610cdc565b005b34801561052f57600080fd5b5061054a600480360381019061054591906129dd565b610d64565b6040516105579190612703565b60405180910390f35b34801561056c57600080fd5b50610575610d84565b60405161058291906127a7565b60405180910390f35b34801561059757600080fd5b506105a0610d8a565b6040516105ad9190612a19565b60405180910390f35b3480156105c257600080fd5b506105cb610db3565b6040516105d891906127a7565b60405180910390f35b3480156105ed57600080fd5b506105f6610db9565b60405161060391906125de565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e91906126a8565b610df6565b6040516106409190612703565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906126a8565b610ec3565b60405161067d9190612703565b60405180910390f35b34801561069257600080fd5b5061069b610ee1565b6040516106a891906127a7565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612a34565b610ee7565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190612994565b610f6d565b005b34801561070f57600080fd5b5061072a600480360381019061072591906126a8565b61107e565b6040516107379190612703565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612aa1565b6111c3565b60405161077491906127a7565b60405180910390f35b60606040518060400160405280600b81526020017f56616e63617420436f696e000000000000000000000000000000000000000000815250905090565b60006107ce6107c761124a565b8484611252565b6001905092915050565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b601160149054906101000a900460ff1681565b60006108288484846113e6565b6108e98461083461124a565b6108e48560405180606001604052806028815260200161314760289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061089a61124a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a159092919063ffffffff16565b611252565b600190509392505050565b60006009905090565b61090561124a565b73ffffffffffffffffffffffffffffffffffffffff16610923610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090612b2d565b60405180910390fd5b60005b8151811015610a0a5760006007600084848151811061099e5761099d612b4d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a0290612bab565b91505061097c565b5050565b600d5481565b6000610abd610a2161124a565b84610ab88560056000610a3261124a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6a90919063ffffffff16565b611252565b6001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160159054906101000a900460ff1681565b610b6461124a565b73ffffffffffffffffffffffffffffffffffffffff16610b82610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90612b2d565b60405180910390fd5b8060098190555050565b610bea61124a565b73ffffffffffffffffffffffffffffffffffffffff16610c08610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5590612b2d565b60405180910390fd5b600a8210610c6b57600080fd5b81600b8190555080600c81905550600c54600b54610c899190612bf4565b600d819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ce461124a565b73ffffffffffffffffffffffffffffffffffffffff16610d02610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612b2d565b60405180910390fd5b610d626000611a80565b565b60066020528060005260406000206000915054906101000a900460ff1681565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f5643415400000000000000000000000000000000000000000000000000000000815250905090565b6000610eb9610e0361124a565b84610eb48560405180606001604052806025815260200161316f6025913960056000610e2d61124a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a159092919063ffffffff16565b611252565b6001905092915050565b6000610ed7610ed061124a565b84846113e6565b6001905092915050565b600b5481565b610eef61124a565b73ffffffffffffffffffffffffffffffffffffffff16610f0d610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90612b2d565b60405180910390fd5b8060088190555050565b610f7561124a565b73ffffffffffffffffffffffffffffffffffffffff16610f93610d8a565b73ffffffffffffffffffffffffffffffffffffffff1614610fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe090612b2d565b60405180910390fd5b60005b815181101561107a5760016007600084848151811061100e5761100d612b4d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061107290612bab565b915050610fec565b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110ba9190612a19565b602060405180830381865afa1580156110d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fb9190612c5f565b905060006064848361110d9190612c8c565b6111179190612d15565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611176929190612d67565b6020604051808303816000875af1158015611195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b99190612dbc565b9250505092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112bc5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290612e35565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d991906127a7565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561148a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61149357600080fd5b61149b610d8a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611504575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561153c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115965750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d557506115a5610d8a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116395760006115e583610c93565b905060095482826115f69190612bf4565b1115611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e90612ea1565b60405180910390fd5b505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116e35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611767576010600181819054906101000a900460ff168092919061170790612ec1565b91906101000a81548160ff021916908360ff160217905550506003601060019054906101000a900460ff1660ff161061176657611765600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a80565b5b5b600081116117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612f5d565b60405180910390fd5b601060029054906101000a900460ff1660ff16601060009054906101000a900460ff1660ff16101580156117eb5750601160149054906101000a900460ff16155b80156118455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561185d5750601160159054906101000a900460ff165b1561189657600061186d30610c93565b90506000601060006101000a81548160ff021916908360ff16021790555061189481611b44565b505b60006064600d54836118a89190612c8c565b6118b29190612d15565b90506000600190506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061195d5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561196b57600091506119ff565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156119c657600190505b6010600081819054906101000a900460ff16809291906119e590612ec1565b91906101000a81548160ff021916908360ff160217905550505b611a0d868686868686611bb8565b505050505050565b6000838311158290611a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5491906125de565b60405180910390fd5b5082840390509392505050565b60008183611a789190612bf4565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160146101000a81548160ff021916908315150217905550611b68816122b7565b6000479050611b99600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124fa565b506000601160146101000a81548160ff02191690831515021790555050565b81611d8e5783600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c089190612f7d565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c969190612bf4565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611d3691906127a7565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611d895783600154611d829190612f7d565b6001819055505b6122af565b80156120235760006064600b5486611da69190612c8c565b611db09190612d15565b905060008186611dc09190612f7d565b905085600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0d9190612f7d565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9b9190612bf4565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f299190612bf4565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc991906127a7565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141561201c57806001546120159190612f7d565b6001819055505b50506122ae565b60006064600c54866120359190612c8c565b61203f9190612d15565b90506000818661204f9190612f7d565b905085600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c9190612f7d565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212a9190612bf4565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b89190612bf4565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161225891906127a7565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156122ab57806001546122a49190612f7d565b6001819055505b50505b5b505050505050565b6000600267ffffffffffffffff8111156122d4576122d3612851565b5b6040519080825280602002602001820160405280156123025781602001602082028036833780820191505090505b509050308160008151811061231a57612319612b4d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e59190612fc6565b816001815181106123f9576123f8612b4d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246030601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611252565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124c49594939291906130ec565b600060405180830381600087803b1580156124de57600080fd5b505af11580156124f2573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612540573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561257f578082015181840152602081019050612564565b8381111561258e576000848401525b50505050565b6000601f19601f8301169050919050565b60006125b082612545565b6125ba8185612550565b93506125ca818560208601612561565b6125d381612594565b840191505092915050565b600060208201905081810360008301526125f881846125a5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263f82612614565b9050919050565b61264f81612634565b811461265a57600080fd5b50565b60008135905061266c81612646565b92915050565b6000819050919050565b61268581612672565b811461269057600080fd5b50565b6000813590506126a28161267c565b92915050565b600080604083850312156126bf576126be61260a565b5b60006126cd8582860161265d565b92505060206126de85828601612693565b9150509250929050565b60008115159050919050565b6126fd816126e8565b82525050565b600060208201905061271860008301846126f4565b92915050565b6000819050919050565b600061274361273e61273984612614565b61271e565b612614565b9050919050565b600061275582612728565b9050919050565b60006127678261274a565b9050919050565b6127778161275c565b82525050565b6000602082019050612792600083018461276e565b92915050565b6127a181612672565b82525050565b60006020820190506127bc6000830184612798565b92915050565b6000806000606084860312156127db576127da61260a565b5b60006127e98682870161265d565b93505060206127fa8682870161265d565b925050604061280b86828701612693565b9150509250925092565b600060ff82169050919050565b61282b81612815565b82525050565b60006020820190506128466000830184612822565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61288982612594565b810181811067ffffffffffffffff821117156128a8576128a7612851565b5b80604052505050565b60006128bb612600565b90506128c78282612880565b919050565b600067ffffffffffffffff8211156128e7576128e6612851565b5b602082029050602081019050919050565b600080fd5b600061291061290b846128cc565b6128b1565b90508083825260208201905060208402830185811115612933576129326128f8565b5b835b8181101561295c5780612948888261265d565b845260208401935050602081019050612935565b5050509392505050565b600082601f83011261297b5761297a61284c565b5b813561298b8482602086016128fd565b91505092915050565b6000602082840312156129aa576129a961260a565b5b600082013567ffffffffffffffff8111156129c8576129c761260f565b5b6129d484828501612966565b91505092915050565b6000602082840312156129f3576129f261260a565b5b6000612a018482850161265d565b91505092915050565b612a1381612634565b82525050565b6000602082019050612a2e6000830184612a0a565b92915050565b600060208284031215612a4a57612a4961260a565b5b6000612a5884828501612693565b91505092915050565b60008060408385031215612a7857612a7761260a565b5b6000612a8685828601612693565b9250506020612a9785828601612693565b9150509250929050565b60008060408385031215612ab857612ab761260a565b5b6000612ac68582860161265d565b9250506020612ad78582860161265d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b17602083612550565b9150612b2282612ae1565b602082019050919050565b60006020820190508181036000830152612b4681612b0a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bb682612672565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612be957612be8612b7c565b5b600182019050919050565b6000612bff82612672565b9150612c0a83612672565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c3f57612c3e612b7c565b5b828201905092915050565b600081519050612c598161267c565b92915050565b600060208284031215612c7557612c7461260a565b5b6000612c8384828501612c4a565b91505092915050565b6000612c9782612672565b9150612ca283612672565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cdb57612cda612b7c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d2082612672565b9150612d2b83612672565b925082612d3b57612d3a612ce6565b5b828204905092915050565b6000612d518261274a565b9050919050565b612d6181612d46565b82525050565b6000604082019050612d7c6000830185612d58565b612d896020830184612798565b9392505050565b612d99816126e8565b8114612da457600080fd5b50565b600081519050612db681612d90565b92915050565b600060208284031215612dd257612dd161260a565b5b6000612de084828501612da7565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612e1f601183612550565b9150612e2a82612de9565b602082019050919050565b60006020820190508181036000830152612e4e81612e12565b9050919050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612e8b601283612550565b9150612e9682612e55565b602082019050919050565b60006020820190508181036000830152612eba81612e7e565b9050919050565b6000612ecc82612815565b915060ff821415612ee057612edf612b7c565b5b600182019050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612f47602583612550565b9150612f5282612eeb565b604082019050919050565b60006020820190508181036000830152612f7681612f3a565b9050919050565b6000612f8882612672565b9150612f9383612672565b925082821015612fa657612fa5612b7c565b5b828203905092915050565b600081519050612fc081612646565b92915050565b600060208284031215612fdc57612fdb61260a565b5b6000612fea84828501612fb1565b91505092915050565b6000819050919050565b600061301861301361300e84612ff3565b61271e565b612672565b9050919050565b61302881612ffd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61306381612634565b82525050565b6000613075838361305a565b60208301905092915050565b6000602082019050919050565b60006130998261302e565b6130a38185613039565b93506130ae8361304a565b8060005b838110156130df5781516130c68882613069565b97506130d183613081565b9250506001810190506130b2565b5085935050505092915050565b600060a0820190506131016000830188612798565b61310e602083018761301f565b8181036040830152613120818661308e565b905061312f6060830185612a0a565b61313c6080830184612798565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d36d805bbc847856ef8991e5790fb415c11ba4bc39a5874a90f25f19d947a24264736f6c634300080a0033

Deployed Bytecode Sourcemap

15383:11788:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18661:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19577:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17464:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18938:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17547:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19778:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18847:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24878:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17229:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20232:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25048:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17190:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17512:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17582:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20948:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23246:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19041:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15863:103;;;;;;;;;;;;;:::i;:::-;;16865:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16969:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15640:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17027:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18752:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20540:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19166:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17152:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21065:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24706:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25139:550;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19373:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18661:83;18698:13;18731:5;;;;;;;;;;;;;;;;;18724:12;;18661:83;:::o;19577:193::-;19679:4;19701:39;19710:12;:10;:12::i;:::-;19724:7;19733:6;19701:8;:39::i;:::-;19758:4;19751:11;;19577:193;;;;:::o;17464:41::-;;;;;;;;;;;;;:::o;18938:95::-;18991:7;19018;;19011:14;;18938:95;:::o;17547:28::-;;;;;;;;;;;;;:::o;19778:446::-;19910:4;19927:36;19937:6;19945:9;19956:6;19927:9;:36::i;:::-;19974:220;19997:6;20018:12;:10;:12::i;:::-;20045:138;20101:6;20045:138;;;;;;;;;;;;;;;;;:11;:19;20057:6;20045:19;;;;;;;;;;;;;;;:33;20065:12;:10;:12::i;:::-;20045:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;19974:8;:220::i;:::-;20212:4;20205:11;;19778:446;;;;;:::o;18847:83::-;18888:5;16355:1;18906:16;;18847:83;:::o;24878:162::-;15786:12;:10;:12::i;:::-;15775:23;;:7;:5;:7::i;:::-;:23;;;15767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24951:6:::1;24946:87;24967:6;:13;24963:1;:17;24946:87;;;25018:5;25000:4;:15;25005:6;25012:1;25005:9;;;;;;;;:::i;:::-;;;;;;;;25000:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;24982:3;;;;;:::i;:::-;;;;24946:87;;;;24878:162:::0;:::o;17229:33::-;;;;:::o;20232:300::-;20347:4;20369:133;20392:12;:10;:12::i;:::-;20419:7;20441:50;20480:10;20441:11;:25;20453:12;:10;:12::i;:::-;20441:25;;;;;;;;;;;;;;;:34;20467:7;20441:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20369:8;:133::i;:::-;20520:4;20513:11;;20232:300;;;;:::o;25048:83::-;25095:4;25116;:7;25121:1;25116:7;;;;;;;;;;;;;;;;;;;;;;;;;25109:14;;25048:83;;;:::o;17190:32::-;;;;:::o;17512:28::-;;;;;;;;;;;;;:::o;17582:40::-;;;;;;;;;;;;;:::o;20948:109::-;15786:12;:10;:12::i;:::-;15775:23;;:7;:5;:7::i;:::-;:23;;;15767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21037:12:::1;21020:14;:29;;;;20948:109:::0;:::o;23246:240::-;15786:12;:10;:12::i;:::-;15775:23;;:7;:5;:7::i;:::-;:23;;;15767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23351:2:::1;23342:6;:11;23334:20;;;::::0;::::1;;23380:6;23365:12;:21;;;;23413:7;23397:13;:23;;;;23465:13;;23450:12;;:28;;;;:::i;:::-;23433:14;:45;;;;23246:240:::0;;:::o;19041:117::-;19107:7;19134;:16;19142:7;19134:16;;;;;;;;;;;;;;;;19127:23;;19041:117;;;:::o;15863:103::-;15786:12;:10;:12::i;:::-;15775:23;;:7;:5;:7::i;:::-;:23;;;15767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15928:30:::1;15955:1;15928:18;:30::i;:::-;15863:103::o:0;16865:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;16969:51::-;;;;:::o;15640:87::-;15686:7;15713:6;;;;;;;;;;;15706:13;;15640:87;:::o;17027:53::-;;;;:::o;18752:87::-;18791:13;18824:7;;;;;;;;;;;;;;;;;18817:14;;18752:87;:::o;20540:400::-;20660:4;20682:228;20705:12;:10;:12::i;:::-;20732:7;20754:145;20811:15;20754:145;;;;;;;;;;;;;;;;;:11;:25;20766:12;:10;:12::i;:::-;20754:25;;;;;;;;;;;;;;;:34;20780:7;20754:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;20682:8;:228::i;:::-;20928:4;20921:11;;20540:400;;;;:::o;19166:199::-;19271:4;19293:42;19303:12;:10;:12::i;:::-;19317:9;19328:6;19293:9;:42::i;:::-;19353:4;19346:11;;19166:199;;;;:::o;17152:31::-;;;;:::o;21065:95::-;15786:12;:10;:12::i;:::-;15775:23;;:7;:5;:7::i;:::-;:23;;;15767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21144:8:::1;21129:12;:23;;;;21065:95:::0;:::o;24706:164::-;15786:12;:10;:12::i;:::-;15775:23;;:7;:5;:7::i;:::-;:23;;;15767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24780:6:::1;24775:88;24796:5;:12;24792:1;:16;24775:88;;;24847:4;24830;:14;24835:5;24841:1;24835:8;;;;;;;;:::i;:::-;;;;;;;;24830:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;24810:3;;;;;:::i;:::-;;;;24775:88;;;;24706:164:::0;:::o;25139:550::-;25267:10;25427:19;25456:20;25449:38;;;25510:4;25449:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25427:99;;25537:20;25596:3;25575:17;25561:11;:31;;;;:::i;:::-;25560:39;;;;:::i;:::-;25537:62;;25625:20;25618:37;;;25656:10;;;;;;;;;;;25668:12;25618:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25610:71;;25279:410;;25139:550;;;;:::o;19373:196::-;19496:7;19528:11;:21;19540:8;19528:21;;;;;;;;;;;;;;;:33;19550:10;19528:33;;;;;;;;;;;;;;;;19521:40;;19373:196;;;;:::o;1958:98::-;2011:7;2038:10;2031:17;;1958:98;:::o;21306:357::-;21473:1;21453:22;;:8;:22;;;;:50;;;;;21501:1;21479:24;;:10;:24;;;;21453:50;21431:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;21595:6;21559:11;:21;21571:8;21559:21;;;;;;;;;;;;;;;:33;21581:10;21559:33;;;;;;;;;;;;;;;:42;;;;21636:10;21617:38;;21626:8;21617:38;;;21648:6;21617:38;;;;;;:::i;:::-;;;;;;;;21306:357;;;:::o;21671:1567::-;21794:4;:10;21799:4;21794:10;;;;;;;;;;;;;;;;;;;;;;;;;21793:11;:24;;;;;21809:4;:8;21814:2;21809:8;;;;;;;;;;;;;;;;;;;;;;;;;21808:9;21793:24;21785:33;;;;;;21853:7;:5;:7::i;:::-;21847:13;;:2;:13;;;;:47;;;;;16689:42;21877:17;;:2;:17;;;;21847:47;:83;;;;;21925:4;21911:19;;:2;:19;;;;21847:83;:119;;;;;21953:13;;;;;;;;;;;21947:19;;:2;:19;;;;21847:119;:151;;;;;21991:7;:5;:7::i;:::-;21983:15;;:4;:15;;;;21847:151;21829:376;;;22025:18;22046:13;22056:2;22046:9;:13::i;:::-;22025:34;;22125:14;;22114:6;22101:10;:19;;;;:::i;:::-;22100:39;;22074:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;22010:195;21829:376;22229:10;;;;;;;;;;;22221:18;;:4;:18;;;:41;;;;;22249:13;;;;;;;;;;;22243:19;;:2;:19;;;22221:41;22217:182;;;22279:8;;:10;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;22320:1;22308:8;;;;;;;;;;;:13;;;22304:84;;22342:30;22361:10;;;;;;;;;;;22342:18;:30::i;:::-;22304:84;22217:182;22428:1;22419:6;:10;22411:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22511:18;;;;;;;;;;;22500:29;;:7;;;;;;;;;;;:29;;;;:63;;;;;22547:16;;;;;;;;;;;22546:17;22500:63;:101;;;;;22588:13;;;;;;;;;;;22580:21;;:4;:21;;;;22500:101;:139;;;;;22618:21;;;;;;;;;;;22500:139;22482:328;;;22666:28;22697:24;22715:4;22697:9;:24::i;:::-;22666:55;;22746:1;22736:7;;:11;;;;;;;;;;;;;;;;;;22762:36;22777:20;22762:14;:36::i;:::-;22651:159;22482:328;22822:16;22869:3;22851:14;;22842:6;:23;;;;:::i;:::-;22841:31;;;;:::i;:::-;22822:50;;22883:12;22898:4;22883:19;;22913:10;22938:18;:24;22957:4;22938:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;22966:18;:22;22985:2;22966:22;;;;;;;;;;;;;;;;;;;;;;;;;22938:50;22934:228;;;23015:5;23005:15;;22934:228;;;23065:13;;;;;;;;;;;23057:21;;:4;:21;;;23053:74;;;23107:4;23099:12;;23053:74;23141:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;22934:228;23172:58;23187:4;23193:2;23197:6;23205:8;23215:7;23224:5;23172:14;:58::i;:::-;21774:1464;;;21671:1567;;;:::o;1431:240::-;1551:7;1609:1;1604;:6;;1612:12;1596:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1651:1;1647;:5;1640:12;;1431:240;;;;;:::o;1007:98::-;1065:7;1096:1;1092;:5;;;;:::i;:::-;1085:12;;1007:98;;;;:::o;16022:191::-;16096:16;16115:6;;;;;;;;;;;16096:25;;16141:8;16132:6;;:17;;;;;;;;;;;;;;;;;;16196:8;16165:40;;16186:8;16165:40;;;;;;;;;;;;16085:128;16022:191;:::o;23614:233::-;17878:4;17859:16;;:23;;;;;;;;;;;;;;;;;;23699:38:::1;23716:20;23699:16;:38::i;:::-;23748:19;23770:21;23748:43;;23802:37;23815:10;;;;;;;;;;;23827:11;23802:12;:37::i;:::-;23688:159;17924:5:::0;17905:16;;:24;;;;;;;;;;;;;;;;;;23614:233;:::o;25697:1471::-;25904:7;25899:1262;;25964:7;25946;:15;25954:6;25946:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;25928:7;:15;25936:6;25928:15;;;;;;;;;;;;;;;:43;;;;26028:7;26007;:18;26015:9;26007:18;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;25986:7;:18;25994:9;25986:18;;;;;;;;;;;;;;;:49;;;;26072:9;26055:36;;26064:6;26055:36;;;26083:7;26055:36;;;;;;:::i;:::-;;;;;;;;16689:42;26110:24;;:9;:24;;;26106:57;;;26156:7;26146;;:17;;;;:::i;:::-;26136:7;:27;;;;26106:57;25899:1262;;;26187:5;26183:978;;;26209:14;26253:3;26237:12;;26227:7;:22;;;;:::i;:::-;26226:30;;;;:::i;:::-;26209:47;;26271:23;26307:6;26297:7;:16;;;;:::i;:::-;26271:42;;26364:7;26346;:15;26354:6;26346:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;26328:7;:15;26336:6;26328:15;;;;;;;;;;;;;;;:43;;;;26428:15;26407:7;:18;26415:9;26407:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;26386:7;:18;26394:9;26386:18;;;;;;;;;;;;;;;:57;;;;26508:8;26483:7;:22;26499:4;26483:22;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;26458:7;:22;26474:4;26458:22;;;;;;;;;;;;;;;:58;;;;26553:9;26536:44;;26545:6;26536:44;;;26564:15;26536:44;;;;;;:::i;:::-;;;;;;;;16689:42;26599:24;;:9;:24;;;26595:65;;;26645:15;26635:7;;:25;;;;:::i;:::-;26625:7;:35;;;;26595:65;26194:480;;26183:978;;;26695:15;26741:3;26724:13;;26714:7;:23;;;;:::i;:::-;26713:31;;;;:::i;:::-;26695:49;;26759:23;26795:7;26785;:17;;;;:::i;:::-;26759:43;;26853:7;26835;:15;26843:6;26835:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;26817:7;:15;26825:6;26817:15;;;;;;;;;;;;;;;:43;;;;26917:15;26896:7;:18;26904:9;26896:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;26875:7;:18;26883:9;26875:18;;;;;;;;;;;;;;;:57;;;;26997:8;26972:7;:22;26988:4;26972:22;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;26947:7;:22;26963:4;26947:22;;;;;;;;;;;;;;;:58;;;;27042:9;27025:44;;27034:6;27025:44;;;27053:15;27025:44;;;;;;:::i;:::-;;;;;;;;16689:42;27088:24;;:9;:24;;;27084:65;;;27134:15;27124:7;;:25;;;;:::i;:::-;27114:7;:35;;;;27084:65;26680:481;;26183:978;25899:1262;25697:1471;;;;;;:::o;23855:471::-;23921:21;23959:1;23945:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23921:40;;23990:4;23972;23977:1;23972:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24016:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24006:4;24011:1;24006:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24049:62;24066:4;24081:15;;;;;;;;;;;24099:11;24049:8;:62::i;:::-;24122:15;;;;;;;;;;;:66;;;24203:11;24229:1;24245:4;24272;24292:15;24122:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23910:416;23855:471;:::o;23494:112::-;23575:6;:15;;:23;23591:6;23575:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23494:112;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:153::-;3917:9;3950:37;3981:5;3950:37;:::i;:::-;3937:50;;3840:153;;;:::o;3999:185::-;4113:64;4171:5;4113:64;:::i;:::-;4108:3;4101:77;3999:185;;:::o;4190:276::-;4310:4;4348:2;4337:9;4333:18;4325:26;;4361:98;4456:1;4445:9;4441:17;4432:6;4361:98;:::i;:::-;4190:276;;;;:::o;4472:118::-;4559:24;4577:5;4559:24;:::i;:::-;4554:3;4547:37;4472:118;;:::o;4596:222::-;4689:4;4727:2;4716:9;4712:18;4704:26;;4740:71;4808:1;4797:9;4793:17;4784:6;4740:71;:::i;:::-;4596:222;;;;:::o;4824:619::-;4901:6;4909;4917;4966:2;4954:9;4945:7;4941:23;4937:32;4934:119;;;4972:79;;:::i;:::-;4934:119;5092:1;5117:53;5162:7;5153:6;5142:9;5138:22;5117:53;:::i;:::-;5107:63;;5063:117;5219:2;5245:53;5290:7;5281:6;5270:9;5266:22;5245:53;:::i;:::-;5235:63;;5190:118;5347:2;5373:53;5418:7;5409:6;5398:9;5394:22;5373:53;:::i;:::-;5363:63;;5318:118;4824:619;;;;;:::o;5449:86::-;5484:7;5524:4;5517:5;5513:16;5502:27;;5449:86;;;:::o;5541:112::-;5624:22;5640:5;5624:22;:::i;:::-;5619:3;5612:35;5541:112;;:::o;5659:214::-;5748:4;5786:2;5775:9;5771:18;5763:26;;5799:67;5863:1;5852:9;5848:17;5839:6;5799:67;:::i;:::-;5659:214;;;;:::o;5879:117::-;5988:1;5985;5978:12;6002:180;6050:77;6047:1;6040:88;6147:4;6144:1;6137:15;6171:4;6168:1;6161:15;6188:281;6271:27;6293:4;6271:27;:::i;:::-;6263:6;6259:40;6401:6;6389:10;6386:22;6365:18;6353:10;6350:34;6347:62;6344:88;;;6412:18;;:::i;:::-;6344:88;6452:10;6448:2;6441:22;6231:238;6188:281;;:::o;6475:129::-;6509:6;6536:20;;:::i;:::-;6526:30;;6565:33;6593:4;6585:6;6565:33;:::i;:::-;6475:129;;;:::o;6610:311::-;6687:4;6777:18;6769:6;6766:30;6763:56;;;6799:18;;:::i;:::-;6763:56;6849:4;6841:6;6837:17;6829:25;;6909:4;6903;6899:15;6891:23;;6610:311;;;:::o;6927:117::-;7036:1;7033;7026:12;7067:710;7163:5;7188:81;7204:64;7261:6;7204:64;:::i;:::-;7188:81;:::i;:::-;7179:90;;7289:5;7318:6;7311:5;7304:21;7352:4;7345:5;7341:16;7334:23;;7405:4;7397:6;7393:17;7385:6;7381:30;7434:3;7426:6;7423:15;7420:122;;;7453:79;;:::i;:::-;7420:122;7568:6;7551:220;7585:6;7580:3;7577:15;7551:220;;;7660:3;7689:37;7722:3;7710:10;7689:37;:::i;:::-;7684:3;7677:50;7756:4;7751:3;7747:14;7740:21;;7627:144;7611:4;7606:3;7602:14;7595:21;;7551:220;;;7555:21;7169:608;;7067:710;;;;;:::o;7800:370::-;7871:5;7920:3;7913:4;7905:6;7901:17;7897:27;7887:122;;7928:79;;:::i;:::-;7887:122;8045:6;8032:20;8070:94;8160:3;8152:6;8145:4;8137:6;8133:17;8070:94;:::i;:::-;8061:103;;7877:293;7800:370;;;;:::o;8176:539::-;8260:6;8309:2;8297:9;8288:7;8284:23;8280:32;8277:119;;;8315:79;;:::i;:::-;8277:119;8463:1;8452:9;8448:17;8435:31;8493:18;8485:6;8482:30;8479:117;;;8515:79;;:::i;:::-;8479:117;8620:78;8690:7;8681:6;8670:9;8666:22;8620:78;:::i;:::-;8610:88;;8406:302;8176:539;;;;:::o;8721:329::-;8780:6;8829:2;8817:9;8808:7;8804:23;8800:32;8797:119;;;8835:79;;:::i;:::-;8797:119;8955:1;8980:53;9025:7;9016:6;9005:9;9001:22;8980:53;:::i;:::-;8970:63;;8926:117;8721:329;;;;:::o;9056:118::-;9143:24;9161:5;9143:24;:::i;:::-;9138:3;9131:37;9056:118;;:::o;9180:222::-;9273:4;9311:2;9300:9;9296:18;9288:26;;9324:71;9392:1;9381:9;9377:17;9368:6;9324:71;:::i;:::-;9180:222;;;;:::o;9408:329::-;9467:6;9516:2;9504:9;9495:7;9491:23;9487:32;9484:119;;;9522:79;;:::i;:::-;9484:119;9642:1;9667:53;9712:7;9703:6;9692:9;9688:22;9667:53;:::i;:::-;9657:63;;9613:117;9408:329;;;;:::o;9743:474::-;9811:6;9819;9868:2;9856:9;9847:7;9843:23;9839:32;9836:119;;;9874:79;;:::i;:::-;9836:119;9994:1;10019:53;10064:7;10055:6;10044:9;10040:22;10019:53;:::i;:::-;10009:63;;9965:117;10121:2;10147:53;10192:7;10183:6;10172:9;10168:22;10147:53;:::i;:::-;10137:63;;10092:118;9743:474;;;;;:::o;10223:::-;10291:6;10299;10348:2;10336:9;10327:7;10323:23;10319:32;10316:119;;;10354:79;;:::i;:::-;10316:119;10474:1;10499:53;10544:7;10535:6;10524:9;10520:22;10499:53;:::i;:::-;10489:63;;10445:117;10601:2;10627:53;10672:7;10663:6;10652:9;10648:22;10627:53;:::i;:::-;10617:63;;10572:118;10223:474;;;;;:::o;10703:182::-;10843:34;10839:1;10831:6;10827:14;10820:58;10703:182;:::o;10891:366::-;11033:3;11054:67;11118:2;11113:3;11054:67;:::i;:::-;11047:74;;11130:93;11219:3;11130:93;:::i;:::-;11248:2;11243:3;11239:12;11232:19;;10891:366;;;:::o;11263:419::-;11429:4;11467:2;11456:9;11452:18;11444:26;;11516:9;11510:4;11506:20;11502:1;11491:9;11487:17;11480:47;11544:131;11670:4;11544:131;:::i;:::-;11536:139;;11263:419;;;:::o;11688:180::-;11736:77;11733:1;11726:88;11833:4;11830:1;11823:15;11857:4;11854:1;11847:15;11874:180;11922:77;11919:1;11912:88;12019:4;12016:1;12009:15;12043:4;12040:1;12033:15;12060:233;12099:3;12122:24;12140:5;12122:24;:::i;:::-;12113:33;;12168:66;12161:5;12158:77;12155:103;;;12238:18;;:::i;:::-;12155:103;12285:1;12278:5;12274:13;12267:20;;12060:233;;;:::o;12299:305::-;12339:3;12358:20;12376:1;12358:20;:::i;:::-;12353:25;;12392:20;12410:1;12392:20;:::i;:::-;12387:25;;12546:1;12478:66;12474:74;12471:1;12468:81;12465:107;;;12552:18;;:::i;:::-;12465:107;12596:1;12593;12589:9;12582:16;;12299:305;;;;:::o;12610:143::-;12667:5;12698:6;12692:13;12683:22;;12714:33;12741:5;12714:33;:::i;:::-;12610:143;;;;:::o;12759:351::-;12829:6;12878:2;12866:9;12857:7;12853:23;12849:32;12846:119;;;12884:79;;:::i;:::-;12846:119;13004:1;13029:64;13085:7;13076:6;13065:9;13061:22;13029:64;:::i;:::-;13019:74;;12975:128;12759:351;;;;:::o;13116:348::-;13156:7;13179:20;13197:1;13179:20;:::i;:::-;13174:25;;13213:20;13231:1;13213:20;:::i;:::-;13208:25;;13401:1;13333:66;13329:74;13326:1;13323:81;13318:1;13311:9;13304:17;13300:105;13297:131;;;13408:18;;:::i;:::-;13297:131;13456:1;13453;13449:9;13438:20;;13116:348;;;;:::o;13470:180::-;13518:77;13515:1;13508:88;13615:4;13612:1;13605:15;13639:4;13636:1;13629:15;13656:185;13696:1;13713:20;13731:1;13713:20;:::i;:::-;13708:25;;13747:20;13765:1;13747:20;:::i;:::-;13742:25;;13786:1;13776:35;;13791:18;;:::i;:::-;13776:35;13833:1;13830;13826:9;13821:14;;13656:185;;;;:::o;13847:134::-;13905:9;13938:37;13969:5;13938:37;:::i;:::-;13925:50;;13847:134;;;:::o;13987:147::-;14082:45;14121:5;14082:45;:::i;:::-;14077:3;14070:58;13987:147;;:::o;14140:348::-;14269:4;14307:2;14296:9;14292:18;14284:26;;14320:79;14396:1;14385:9;14381:17;14372:6;14320:79;:::i;:::-;14409:72;14477:2;14466:9;14462:18;14453:6;14409:72;:::i;:::-;14140:348;;;;;:::o;14494:116::-;14564:21;14579:5;14564:21;:::i;:::-;14557:5;14554:32;14544:60;;14600:1;14597;14590:12;14544:60;14494:116;:::o;14616:137::-;14670:5;14701:6;14695:13;14686:22;;14717:30;14741:5;14717:30;:::i;:::-;14616:137;;;;:::o;14759:345::-;14826:6;14875:2;14863:9;14854:7;14850:23;14846:32;14843:119;;;14881:79;;:::i;:::-;14843:119;15001:1;15026:61;15079:7;15070:6;15059:9;15055:22;15026:61;:::i;:::-;15016:71;;14972:125;14759:345;;;;:::o;15110:167::-;15250:19;15246:1;15238:6;15234:14;15227:43;15110:167;:::o;15283:366::-;15425:3;15446:67;15510:2;15505:3;15446:67;:::i;:::-;15439:74;;15522:93;15611:3;15522:93;:::i;:::-;15640:2;15635:3;15631:12;15624:19;;15283:366;;;:::o;15655:419::-;15821:4;15859:2;15848:9;15844:18;15836:26;;15908:9;15902:4;15898:20;15894:1;15883:9;15879:17;15872:47;15936:131;16062:4;15936:131;:::i;:::-;15928:139;;15655:419;;;:::o;16080:168::-;16220:20;16216:1;16208:6;16204:14;16197:44;16080:168;:::o;16254:366::-;16396:3;16417:67;16481:2;16476:3;16417:67;:::i;:::-;16410:74;;16493:93;16582:3;16493:93;:::i;:::-;16611:2;16606:3;16602:12;16595:19;;16254:366;;;:::o;16626:419::-;16792:4;16830:2;16819:9;16815:18;16807:26;;16879:9;16873:4;16869:20;16865:1;16854:9;16850:17;16843:47;16907:131;17033:4;16907:131;:::i;:::-;16899:139;;16626:419;;;:::o;17051:167::-;17088:3;17111:22;17127:5;17111:22;:::i;:::-;17102:31;;17155:4;17148:5;17145:15;17142:41;;;17163:18;;:::i;:::-;17142:41;17210:1;17203:5;17199:13;17192:20;;17051:167;;;:::o;17224:224::-;17364:34;17360:1;17352:6;17348:14;17341:58;17433:7;17428:2;17420:6;17416:15;17409:32;17224:224;:::o;17454:366::-;17596:3;17617:67;17681:2;17676:3;17617:67;:::i;:::-;17610:74;;17693:93;17782:3;17693:93;:::i;:::-;17811:2;17806:3;17802:12;17795:19;;17454:366;;;:::o;17826:419::-;17992:4;18030:2;18019:9;18015:18;18007:26;;18079:9;18073:4;18069:20;18065:1;18054:9;18050:17;18043:47;18107:131;18233:4;18107:131;:::i;:::-;18099:139;;17826:419;;;:::o;18251:191::-;18291:4;18311:20;18329:1;18311:20;:::i;:::-;18306:25;;18345:20;18363:1;18345:20;:::i;:::-;18340:25;;18384:1;18381;18378:8;18375:34;;;18389:18;;:::i;:::-;18375:34;18434:1;18431;18427:9;18419:17;;18251:191;;;;:::o;18448:143::-;18505:5;18536:6;18530:13;18521:22;;18552:33;18579:5;18552:33;:::i;:::-;18448:143;;;;:::o;18597:351::-;18667:6;18716:2;18704:9;18695:7;18691:23;18687:32;18684:119;;;18722:79;;:::i;:::-;18684:119;18842:1;18867:64;18923:7;18914:6;18903:9;18899:22;18867:64;:::i;:::-;18857:74;;18813:128;18597:351;;;;:::o;18954:85::-;18999:7;19028:5;19017:16;;18954:85;;;:::o;19045:158::-;19103:9;19136:61;19154:42;19163:32;19189:5;19163:32;:::i;:::-;19154:42;:::i;:::-;19136:61;:::i;:::-;19123:74;;19045:158;;;:::o;19209:147::-;19304:45;19343:5;19304:45;:::i;:::-;19299:3;19292:58;19209:147;;:::o;19362:114::-;19429:6;19463:5;19457:12;19447:22;;19362:114;;;:::o;19482:184::-;19581:11;19615:6;19610:3;19603:19;19655:4;19650:3;19646:14;19631:29;;19482:184;;;;:::o;19672:132::-;19739:4;19762:3;19754:11;;19792:4;19787:3;19783:14;19775:22;;19672:132;;;:::o;19810:108::-;19887:24;19905:5;19887:24;:::i;:::-;19882:3;19875:37;19810:108;;:::o;19924:179::-;19993:10;20014:46;20056:3;20048:6;20014:46;:::i;:::-;20092:4;20087:3;20083:14;20069:28;;19924:179;;;;:::o;20109:113::-;20179:4;20211;20206:3;20202:14;20194:22;;20109:113;;;:::o;20258:732::-;20377:3;20406:54;20454:5;20406:54;:::i;:::-;20476:86;20555:6;20550:3;20476:86;:::i;:::-;20469:93;;20586:56;20636:5;20586:56;:::i;:::-;20665:7;20696:1;20681:284;20706:6;20703:1;20700:13;20681:284;;;20782:6;20776:13;20809:63;20868:3;20853:13;20809:63;:::i;:::-;20802:70;;20895:60;20948:6;20895:60;:::i;:::-;20885:70;;20741:224;20728:1;20725;20721:9;20716:14;;20681:284;;;20685:14;20981:3;20974:10;;20382:608;;;20258:732;;;;:::o;20996:831::-;21259:4;21297:3;21286:9;21282:19;21274:27;;21311:71;21379:1;21368:9;21364:17;21355:6;21311:71;:::i;:::-;21392:80;21468:2;21457:9;21453:18;21444:6;21392:80;:::i;:::-;21519:9;21513:4;21509:20;21504:2;21493:9;21489:18;21482:48;21547:108;21650:4;21641:6;21547:108;:::i;:::-;21539:116;;21665:72;21733:2;21722:9;21718:18;21709:6;21665:72;:::i;:::-;21747:73;21815:3;21804:9;21800:19;21791:6;21747:73;:::i;:::-;20996:831;;;;;;;;:::o

Swarm Source

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