ETH Price: $3,111.48 (+1.33%)
Gas: 5 Gwei

Token

Heaven Inu (Heaven Inu)
 

Overview

Max Total Supply

1,000,000,000 Heaven Inu

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,535,525.056832373 Heaven Inu

Value
$0.00
0xe090e4344237416ab3841b7a2458f42b07c2241a
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:
HeavenInu

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-27
*/

/**

// SPDX-License-Identifier: Unlicensed

 __ __    ___   ____  __ __    ___  ____       ____  ____   __ __ 
|  |  |  /  _] /    ||  |  |  /  _]|    \     |    ||    \ |  |  |
|  |  | /  [_ |  o  ||  |  | /  [_ |  _  |     |  | |  _  ||  |  |
|  _  ||    _]|     ||  |  ||    _]|  |  |     |  | |  |  ||  |  |
|  |  ||   [_ |  _  ||  :  ||   [_ |  |  |     |  | |  |  ||  :  |
|  |  ||     ||  |  | \   / |     ||  |  |     |  | |  |  ||     |
|__|__||_____||__|__|  \_/  |_____||__|__|    |____||__|__| \__,_|
                                                                  

Telegram: https://t.me/HeavenInuPortal
Website: https://www.heaveninu.com
Twitter: https://twitter.com/InuHeaven

✨ Initial liquidity: 4 ETH
✨ Anti-Bot / Anti-Snipe: Activated
- bots will be blacklisted
✨100% STEALTHLAUNCH.
✨ Max Wallet 3% / Max Tx 2%
✨ 3% on buys and sells at launch
✨ No team tokens


*/

pragma solidity ^0.8.10;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable is Context {
    address private _owner;
    mapping(address => bool) internal authorizations;

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

    constructor() {
        _transferOwnership(_msgSender());
        authorizations[_owner] = true;
    }

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

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

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract HeavenInu is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint256 MAX_INT =
        115792089237316195423570985008687907853269984665640564039457584007913129639935;
    string private constant _name = "Heaven Inu";
    string private constant _symbol = "Heaven Inu";
    uint8 private constant _decimals = 9;

    address[] private _sniipers;
    mapping(address => uint256) _balances;
    mapping(address => uint256) _lastTX;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isSniiper;
    mapping(address => bool) private _liquidityHolders;
    mapping(address => bool) private bots;
    uint256 _totalSupply = 1000000000 * 10**9;

    //Buy Fee
    uint256 private _taxFeeOnBuy = 3;

    //Sell Fee
    uint256 private _taxFeeOnSell = 3;

    //Original Fee
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previoustaxFee = _taxFee;

    address payable private _marketingAddress;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private transferDelay = true;
    bool sniiperProtection = true;

    uint256 private wipeBlocks = 1;
    uint256 private launchedAt;
    uint256 public _maxTxAmount = 20000000 * 10**9; //2
    uint256 public _maxWalletSize = 30000000 * 10**9; //3
    uint256 public _swapTokensAtAmount = 1000000 * 10**9; //0.1

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _balances[_msgSender()] = _totalSupply;

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

        _approve(address(this), address(uniswapV2Router), MAX_INT);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true; //multisig
        _liquidityHolders[msg.sender] = true;
        _marketingAddress = payable(msg.sender);

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

    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 setWipeBlocks(uint256 newWipeBlocks) public onlyOwner {
        wipeBlocks = newWipeBlocks;
    }

    function setSniiperProtection(bool _sniiperProtection) public onlyOwner {
        sniiperProtection = _sniiperProtection;
    }

    function byeByeSniipers() public onlyOwner lockTheSwap {
        if (_sniipers.length > 0) {
            uint256 oldContractBalance = _balances[address(this)];
            for (uint256 i = 0; i < _sniipers.length; i++) {
                _balances[address(this)] = _balances[address(this)].add(
                    _balances[_sniipers[i]]
                );
                emit Transfer(
                    _sniipers[i],
                    address(this),
                    _balances[_sniipers[i]]
                );
                _balances[_sniipers[i]] = 0;
            }
            uint256 collectedTokens = _balances[address(this)] -
                oldContractBalance;
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                collectedTokens,
                0,
                path,
                _marketingAddress,
                block.timestamp
            );
        }
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
            require(tradingOpen, "TOKEN: Trading not yet started");
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(
                !bots[from] && !bots[to],
                "TOKEN: Your account is blacklisted!"
            );

            if (sniiperProtection) {
                if (
                    launchedAt > 0 &&
                    from == uniswapV2Pair &&
                    !_liquidityHolders[from] &&
                    !_liquidityHolders[to]
                ) {
                    if (block.number - launchedAt <= wipeBlocks) {
                        if (!_isSniiper[to]) {
                            _sniipers.push(to);
                        }
                        _isSniiper[to] = true;
                    }
                }
            }

            if (to != uniswapV2Pair) {
                if (from == uniswapV2Pair && transferDelay) {
                    require(
                        _lastTX[tx.origin] + 3 minutes < block.timestamp &&
                            _lastTX[to] + 3 minutes < block.timestamp,
                        "TOKEN: 3 minutes cooldown between buys"
                    );
                }
                require(
                    balanceOf(to) + amount < _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (contractTokenBalance >= _swapTokensAtAmount) {
                contractTokenBalance = _swapTokensAtAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance); // Reserve of 15% of tokens for liquidity
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0 ether) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            //Set Fee for Buys
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }
        }
        _lastTX[tx.origin] = block.timestamp;
        _lastTX[to] = block.timestamp;
        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        uint256 ethAmt = tokenAmount.mul(85).div(100);
        uint256 liqAmt = tokenAmount - ethAmt;
        uint256 balanceBefore = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            ethAmt,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);

        addLiquidity(liqAmt, amountETH.mul(15).div(100));
    }

    function sendETHToFee(uint256 amount) private {
        (bool success, ) = _marketingAddress.call{value: amount}("");
        require(success);
    }

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

    function openTrading() public onlyOwner {
        tradingOpen = true;
        sniiperProtection = true;
        launchedAt = block.number;
    }

    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) {
            _transferNoTax(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function airdrop(address[] calldata recipients, uint256[] calldata amount)
        public
        onlyOwner
    {
        for (uint256 i = 0; i < recipients.length; i++) {
            _transferNoTax(msg.sender, recipients[i], amount[i]);
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        uint256 amountReceived = takeFees(sender, amount);
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function _transferNoTax(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFees(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(_taxFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    receive() external payable {}

    function transferOwnership(address newOwner) public override onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _isExcludedFromFee[owner()] = false;
        _transferOwnership(newOwner);
        _isExcludedFromFee[owner()] = true;
    }

    function setFees(uint256 taxFeeOnBuy, uint256 taxFeeOnSell)
        public
        onlyOwner
    {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount)
        public
        onlyOwner
    {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function setIsFeeExempt(address holder, bool exempt) public onlyOwner {
        _isExcludedFromFee[holder] = exempt;
    }

    function toggleTransferDelay() public onlyOwner {
        transferDelay = !transferDelay;
    }

    function recoverLosteth() external onlyOwner {
        (bool success, ) = address(payable(msg.sender)).call{
            value: address(this).balance
        }("");
        require(success);
    }

    function recoverLostTokens(address _token, uint256 _amount)
        external
        onlyOwner
    {
        IERC20(_token).transfer(msg.sender, _amount);
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":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":"_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":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"byeByeSniipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_sniiperProtection","type":"bool"}],"name":"setSniiperProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newWipeBlocks","type":"uint256"}],"name":"setWipeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600019600255670de0b6b3a7640000600b556003600c819055600d819055600e819055600f556012805464ffffffffff60a01b19166201010160b01b179055600160135566470de4df820000601555666a94d74f43000060165566038d7ea4c680006017553480156200007657600080fd5b50620000823362000362565b600080546001600160a01b03168152600160208181526040808420805460ff1916909317909255600b5433845260048083529383902055601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519093849363c45a01559381830193909290918290030181865afa1580156200011c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001429190620004de565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b69190620004de565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022a9190620004de565b601280546001600160a01b0319166001600160a01b039283161790556011546002546200025b9230921690620003b2565b600160076000620002746000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007845282812080548616600190811790915560108054841683528483208054881683179055805490931682528382208054871682179055338083526009909552929020805490941690911790925581546001600160a01b0319161790556200030b3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200035391815260200190565b60405180910390a35062000510565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166200041a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200047d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000411565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208284031215620004f157600080fd5b81516001600160a01b03811681146200050957600080fd5b9392505050565b61282380620005206000396000f3fe60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461062a578063ea1644d51461064a578063f0b37c041461066a578063f2fde38b1461068a578063fe9fbb80146106aa57600080fd5b8063a9059cbb1461057a578063b6a5d7de1461059a578063c3c8cd80146105ba578063c9567bf9146105cf578063dd62ed3e146105e457600080fd5b80638da5cb5b116100f25780638da5cb5b146105115780638eb59a5f1461052f5780638f9a55c01461054457806395d89b411461024b57806398a5c3151461055a57600080fd5b806370a0823114610490578063715018a6146104c657806374010ece146104db5780637d1db4a5146104fb57600080fd5b8063313ce567116101a65780635b8b7815116101755780635b8b7815146103fb578063658d4b7f1461041057806367243482146104305780636b999053146104505780636d8aa8f81461047057600080fd5b8063313ce5671461038a57806333596f50146103a657806349bd5a5e146103bb5780634ef1e040146103db57600080fd5b80631694505e116101ed5780631694505e146102dd57806318160ddd1461031557806323b872dd146103345780632f21411a146103545780632fd689e31461037457600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b31461028d5780630b78f9c0146102bd57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122a6565b6106e3565b005b34801561025757600080fd5b50604080518082018252600a81526948656176656e20496e7560b01b60208201529051610284919061236b565b60405180910390f35b34801561029957600080fd5b506102ad6102a83660046123c0565b610791565b6040519015158152602001610284565b3480156102c957600080fd5b506102496102d83660046123ec565b6107a8565b3480156102e957600080fd5b506011546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561032157600080fd5b50600b545b604051908152602001610284565b34801561034057600080fd5b506102ad61034f36600461240e565b6107ec565b34801561036057600080fd5b5061024961036f36600461245d565b610855565b34801561038057600080fd5b5061032660175481565b34801561039657600080fd5b5060405160098152602001610284565b3480156103b257600080fd5b506102496108ac565b3480156103c757600080fd5b506012546102fd906001600160a01b031681565b3480156103e757600080fd5b506102496103f636600461247a565b61093d565b34801561040757600080fd5b5061024961097b565b34801561041c57600080fd5b5061024961042b366004612493565b610ca1565b34801561043c57600080fd5b5061024961044b366004612518565b610d05565b34801561045c57600080fd5b5061024961046b366004612584565b610dac565b34801561047c57600080fd5b5061024961048b36600461245d565b610e06565b34801561049c57600080fd5b506103266104ab366004612584565b6001600160a01b031660009081526004602052604090205490565b3480156104d257600080fd5b50610249610e5d565b3480156104e757600080fd5b506102496104f636600461247a565b610ea2565b34801561050757600080fd5b5061032660155481565b34801561051d57600080fd5b506000546001600160a01b03166102fd565b34801561053b57600080fd5b50610249610ee0565b34801561055057600080fd5b5061032660165481565b34801561056657600080fd5b5061024961057536600461247a565b610f3a565b34801561058657600080fd5b506102ad6105953660046123c0565b610f78565b3480156105a657600080fd5b506102496105b5366004612584565b610f85565b3480156105c657600080fd5b50610249610fe5565b3480156105db57600080fd5b50610249611037565b3480156105f057600080fd5b506103266105ff3660046125a1565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561063657600080fd5b506102496106453660046123c0565b611091565b34801561065657600080fd5b5061024961066536600461247a565b611140565b34801561067657600080fd5b50610249610685366004612584565b61117e565b34801561069657600080fd5b506102496106a5366004612584565b6111d8565b3480156106b657600080fd5b506102ad6106c5366004612584565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107005750610700336106c5565b6107255760405162461bcd60e51b815260040161071c906125cf565b60405180910390fd5b60005b815181101561078d576001600a600084848151811061074957610749612606565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061078581612632565b915050610728565b5050565b600061079e338484611302565b5060015b92915050565b6000546001600160a01b03163314806107c557506107c5336106c5565b6107e15760405162461bcd60e51b815260040161071c906125cf565b600c91909155600d55565b60006107f9848484611426565b61084b8433610846856040518060600160405280602881526020016127a6602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b1d565b611302565b5060019392505050565b6000546001600160a01b03163314806108725750610872336106c5565b61088e5760405162461bcd60e51b815260040161071c906125cf565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108c957506108c9336106c5565b6108e55760405162461bcd60e51b815260040161071c906125cf565b604051600090339047908381818185875af1925050503d8060008114610927576040519150601f19603f3d011682016040523d82523d6000602084013e61092c565b606091505b505090508061093a57600080fd5b50565b6000546001600160a01b031633148061095a575061095a336106c5565b6109765760405162461bcd60e51b815260040161071c906125cf565b601355565b6000546001600160a01b03163314806109985750610998336106c5565b6109b45760405162461bcd60e51b815260040161071c906125cf565b6012805460ff60a81b1916600160a81b17905560035415610c925730600090815260046020526040812054905b600354811015610b2a57610a3d6004600060038481548110610a0557610a05612606565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611b57565b306000818152600460205260409020919091556003805483908110610a6457610a64612606565b6000918252602082200154600380546001600160a01b03909216926000805160206127ce833981519152926004929087908110610aa357610aa3612606565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610af357610af3612606565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610b2281612632565b9150506109e1565b5030600090815260046020526040812054610b4690839061264d565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b8057610b80612606565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfd9190612664565b81600181518110610c1057610c10612606565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610c5c92879260009288929091169042906004016126c5565b600060405180830381600087803b158015610c7657600080fd5b505af1158015610c8a573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610cbe5750610cbe336106c5565b610cda5760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610d225750610d22336106c5565b610d3e5760405162461bcd60e51b815260040161071c906125cf565b60005b83811015610da557610d9233868684818110610d5f57610d5f612606565b9050602002016020810190610d749190612584565b858585818110610d8657610d86612606565b90506020020135611bbd565b5080610d9d81612632565b915050610d41565b5050505050565b6000546001600160a01b0316331480610dc95750610dc9336106c5565b610de55760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610e235750610e23336106c5565b610e3f5760405162461bcd60e51b815260040161071c906125cf565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610e7a5750610e7a336106c5565b610e965760405162461bcd60e51b815260040161071c906125cf565b610ea06000611c91565b565b6000546001600160a01b0316331480610ebf5750610ebf336106c5565b610edb5760405162461bcd60e51b815260040161071c906125cf565b601555565b6000546001600160a01b0316331480610efd5750610efd336106c5565b610f195760405162461bcd60e51b815260040161071c906125cf565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f575750610f57336106c5565b610f735760405162461bcd60e51b815260040161071c906125cf565b601755565b600061079e338484611426565b6000546001600160a01b0316331480610fa25750610fa2336106c5565b610fbe5760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110025750611002336106c5565b61101e5760405162461bcd60e51b815260040161071c906125cf565b3060009081526004602052604090205461093a81611ce1565b6000546001600160a01b03163314806110545750611054336106c5565b6110705760405162461bcd60e51b815260040161071c906125cf565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110ae57506110ae336106c5565b6110ca5760405162461bcd60e51b815260040161071c906125cf565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190612701565b505050565b6000546001600160a01b031633148061115d575061115d336106c5565b6111795760405162461bcd60e51b815260040161071c906125cf565b601655565b6000546001600160a01b031633148061119b575061119b336106c5565b6111b75760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806111f557506111f5336106c5565b6112115760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b0381166112765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071c565b60006007600061128e6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112bf81611c91565b6001600760006112d76000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071c565b6001600160a01b0382166113c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071c565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661148a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161071c565b6001600160a01b0382166114ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161071c565b6000811161154e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161071c565b6001600160a01b03821660009081526007602052604090205460ff1615801561159057506001600160a01b03831660009081526007602052604090205460ff16155b156119f857601254600160a01b900460ff166115ee5760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161071c565b6015548111156116405760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161071c565b6001600160a01b0383166000908152600a602052604090205460ff1615801561168257506001600160a01b0382166000908152600a602052604090205460ff16155b6116da5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161071c565b601254600160c01b900460ff16156117ff57600060145411801561170b57506012546001600160a01b038481169116145b801561173057506001600160a01b03831660009081526009602052604090205460ff16155b801561175557506001600160a01b03821660009081526009602052604090205460ff16155b156117ff5760135460145461176a904361264d565b116117ff576001600160a01b03821660009081526008602052604090205460ff166117db57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b0383811691161461196d576012546001600160a01b03848116911614801561183a5750601254600160b81b900460ff165b156118e75732600090815260056020526040902054429061185c9060b461271e565b10801561188c57506001600160a01b038216600090815260056020526040902054429061188a9060b461271e565b105b6118e75760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161071c565b6016548161190a846001600160a01b031660009081526004602052604090205490565b611914919061271e565b1061196d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161071c565b30600090815260046020526040902054601754811080159061198f5760175491505b8080156119a65750601254600160a81b900460ff16155b80156119c057506012546001600160a01b03868116911614155b80156119d55750601254600160b01b900460ff165b156119f5576119e382611ce1565b4780156119f3576119f347611ea1565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a3a57506001600160a01b03831660009081526007602052604090205460ff165b80611a6c57506012546001600160a01b03858116911614801590611a6c57506012546001600160a01b03848116911614155b15611a7957506000611ae7565b6012546001600160a01b038581169116148015611aa457506011546001600160a01b03848116911614155b15611ab057600c54600e555b6012546001600160a01b038481169116148015611adb57506011546001600160a01b03858116911614155b15611ae757600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b1784848484611f01565b50505050565b60008184841115611b415760405162461bcd60e51b815260040161071c919061236b565b506000611b4e848661264d565b95945050505050565b600080611b64838561271e565b905083811015611bb65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071c565b9392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611c0e918490611b1d565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c3d9083611b57565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ce83398151915290611c7f9086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d0c6064611d06846055611f22565b90611fa1565b90506000611d1a828461264d565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d5457611d54612606565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd19190612664565b81600181518110611de457611de4612606565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e2a9087906000908690309042906004016126c5565b600060405180830381600087803b158015611e4457600080fd5b505af1158015611e58573d6000803e3d6000fd5b505050506000611e718347611fe390919063ffffffff16565b9050611e8c84611e876064611d0685600f611f22565b612025565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611eee576040519150601f19603f3d011682016040523d82523d6000602084013e611ef3565b606091505b505090508061078d57600080fd5b80611f1757611f11848484611bbd565b50611b17565b611b178484846120b7565b600082611f31575060006107a2565b6000611f3d8385612736565b905082611f4a8583612755565b14611bb65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161071c565b6000611bb683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121aa565b6000611bb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b1d565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612092573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610da59190612777565b60006120c384836121d8565b905061212b8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b1d9092919063ffffffff16565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461215a9082611b57565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ce8339815191529061219c9085815260200190565b60405180910390a350505050565b600081836121cb5760405162461bcd60e51b815260040161071c919061236b565b506000611b4e8486612755565b6000806121f56064611d06600e5486611f2290919063ffffffff16565b306000908152600460205260409020549091506122129082611b57565b30600081815260046020526040908190209290925590516001600160a01b038616906000805160206127ce833981519152906122519085815260200190565b60405180910390a36122638382611fe3565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461093a57600080fd5b80356122a181612281565b919050565b600060208083850312156122b957600080fd5b823567ffffffffffffffff808211156122d157600080fd5b818501915085601f8301126122e557600080fd5b8135818111156122f7576122f761226b565b8060051b604051601f19603f8301168101818110858211171561231c5761231c61226b565b60405291825284820192508381018501918883111561233a57600080fd5b938501935b8285101561235f5761235085612296565b8452938501939285019261233f565b98975050505050505050565b600060208083528351808285015260005b818110156123985785810183015185820160400152820161237c565b818111156123aa576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156123d357600080fd5b82356123de81612281565b946020939093013593505050565b600080604083850312156123ff57600080fd5b50508035926020909101359150565b60008060006060848603121561242357600080fd5b833561242e81612281565b9250602084013561243e81612281565b929592945050506040919091013590565b801515811461093a57600080fd5b60006020828403121561246f57600080fd5b8135611bb68161244f565b60006020828403121561248c57600080fd5b5035919050565b600080604083850312156124a657600080fd5b82356124b181612281565b915060208301356124c18161244f565b809150509250929050565b60008083601f8401126124de57600080fd5b50813567ffffffffffffffff8111156124f657600080fd5b6020830191508360208260051b850101111561251157600080fd5b9250929050565b6000806000806040858703121561252e57600080fd5b843567ffffffffffffffff8082111561254657600080fd5b612552888389016124cc565b9096509450602087013591508082111561256b57600080fd5b50612578878288016124cc565b95989497509550505050565b60006020828403121561259657600080fd5b8135611bb681612281565b600080604083850312156125b457600080fd5b82356125bf81612281565b915060208301356124c181612281565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156126465761264661261c565b5060010190565b60008282101561265f5761265f61261c565b500390565b60006020828403121561267657600080fd5b8151611bb681612281565b600081518084526020808501945080840160005b838110156126ba5781516001600160a01b031687529582019590820190600101612695565b509495945050505050565b85815284602082015260a0604082015260006126e460a0830186612681565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561271357600080fd5b8151611bb68161244f565b600082198211156127315761273161261c565b500190565b60008160001904831182151516156127505761275061261c565b500290565b60008261277257634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561278c57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dca2a380850299d8f34d054ac06c1d8edbf7bd62422a4b2a1d04740978837a4064736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461062a578063ea1644d51461064a578063f0b37c041461066a578063f2fde38b1461068a578063fe9fbb80146106aa57600080fd5b8063a9059cbb1461057a578063b6a5d7de1461059a578063c3c8cd80146105ba578063c9567bf9146105cf578063dd62ed3e146105e457600080fd5b80638da5cb5b116100f25780638da5cb5b146105115780638eb59a5f1461052f5780638f9a55c01461054457806395d89b411461024b57806398a5c3151461055a57600080fd5b806370a0823114610490578063715018a6146104c657806374010ece146104db5780637d1db4a5146104fb57600080fd5b8063313ce567116101a65780635b8b7815116101755780635b8b7815146103fb578063658d4b7f1461041057806367243482146104305780636b999053146104505780636d8aa8f81461047057600080fd5b8063313ce5671461038a57806333596f50146103a657806349bd5a5e146103bb5780634ef1e040146103db57600080fd5b80631694505e116101ed5780631694505e146102dd57806318160ddd1461031557806323b872dd146103345780632f21411a146103545780632fd689e31461037457600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b31461028d5780630b78f9c0146102bd57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122a6565b6106e3565b005b34801561025757600080fd5b50604080518082018252600a81526948656176656e20496e7560b01b60208201529051610284919061236b565b60405180910390f35b34801561029957600080fd5b506102ad6102a83660046123c0565b610791565b6040519015158152602001610284565b3480156102c957600080fd5b506102496102d83660046123ec565b6107a8565b3480156102e957600080fd5b506011546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561032157600080fd5b50600b545b604051908152602001610284565b34801561034057600080fd5b506102ad61034f36600461240e565b6107ec565b34801561036057600080fd5b5061024961036f36600461245d565b610855565b34801561038057600080fd5b5061032660175481565b34801561039657600080fd5b5060405160098152602001610284565b3480156103b257600080fd5b506102496108ac565b3480156103c757600080fd5b506012546102fd906001600160a01b031681565b3480156103e757600080fd5b506102496103f636600461247a565b61093d565b34801561040757600080fd5b5061024961097b565b34801561041c57600080fd5b5061024961042b366004612493565b610ca1565b34801561043c57600080fd5b5061024961044b366004612518565b610d05565b34801561045c57600080fd5b5061024961046b366004612584565b610dac565b34801561047c57600080fd5b5061024961048b36600461245d565b610e06565b34801561049c57600080fd5b506103266104ab366004612584565b6001600160a01b031660009081526004602052604090205490565b3480156104d257600080fd5b50610249610e5d565b3480156104e757600080fd5b506102496104f636600461247a565b610ea2565b34801561050757600080fd5b5061032660155481565b34801561051d57600080fd5b506000546001600160a01b03166102fd565b34801561053b57600080fd5b50610249610ee0565b34801561055057600080fd5b5061032660165481565b34801561056657600080fd5b5061024961057536600461247a565b610f3a565b34801561058657600080fd5b506102ad6105953660046123c0565b610f78565b3480156105a657600080fd5b506102496105b5366004612584565b610f85565b3480156105c657600080fd5b50610249610fe5565b3480156105db57600080fd5b50610249611037565b3480156105f057600080fd5b506103266105ff3660046125a1565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561063657600080fd5b506102496106453660046123c0565b611091565b34801561065657600080fd5b5061024961066536600461247a565b611140565b34801561067657600080fd5b50610249610685366004612584565b61117e565b34801561069657600080fd5b506102496106a5366004612584565b6111d8565b3480156106b657600080fd5b506102ad6106c5366004612584565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107005750610700336106c5565b6107255760405162461bcd60e51b815260040161071c906125cf565b60405180910390fd5b60005b815181101561078d576001600a600084848151811061074957610749612606565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061078581612632565b915050610728565b5050565b600061079e338484611302565b5060015b92915050565b6000546001600160a01b03163314806107c557506107c5336106c5565b6107e15760405162461bcd60e51b815260040161071c906125cf565b600c91909155600d55565b60006107f9848484611426565b61084b8433610846856040518060600160405280602881526020016127a6602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b1d565b611302565b5060019392505050565b6000546001600160a01b03163314806108725750610872336106c5565b61088e5760405162461bcd60e51b815260040161071c906125cf565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108c957506108c9336106c5565b6108e55760405162461bcd60e51b815260040161071c906125cf565b604051600090339047908381818185875af1925050503d8060008114610927576040519150601f19603f3d011682016040523d82523d6000602084013e61092c565b606091505b505090508061093a57600080fd5b50565b6000546001600160a01b031633148061095a575061095a336106c5565b6109765760405162461bcd60e51b815260040161071c906125cf565b601355565b6000546001600160a01b03163314806109985750610998336106c5565b6109b45760405162461bcd60e51b815260040161071c906125cf565b6012805460ff60a81b1916600160a81b17905560035415610c925730600090815260046020526040812054905b600354811015610b2a57610a3d6004600060038481548110610a0557610a05612606565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611b57565b306000818152600460205260409020919091556003805483908110610a6457610a64612606565b6000918252602082200154600380546001600160a01b03909216926000805160206127ce833981519152926004929087908110610aa357610aa3612606565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610af357610af3612606565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610b2281612632565b9150506109e1565b5030600090815260046020526040812054610b4690839061264d565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b8057610b80612606565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfd9190612664565b81600181518110610c1057610c10612606565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610c5c92879260009288929091169042906004016126c5565b600060405180830381600087803b158015610c7657600080fd5b505af1158015610c8a573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610cbe5750610cbe336106c5565b610cda5760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610d225750610d22336106c5565b610d3e5760405162461bcd60e51b815260040161071c906125cf565b60005b83811015610da557610d9233868684818110610d5f57610d5f612606565b9050602002016020810190610d749190612584565b858585818110610d8657610d86612606565b90506020020135611bbd565b5080610d9d81612632565b915050610d41565b5050505050565b6000546001600160a01b0316331480610dc95750610dc9336106c5565b610de55760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610e235750610e23336106c5565b610e3f5760405162461bcd60e51b815260040161071c906125cf565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610e7a5750610e7a336106c5565b610e965760405162461bcd60e51b815260040161071c906125cf565b610ea06000611c91565b565b6000546001600160a01b0316331480610ebf5750610ebf336106c5565b610edb5760405162461bcd60e51b815260040161071c906125cf565b601555565b6000546001600160a01b0316331480610efd5750610efd336106c5565b610f195760405162461bcd60e51b815260040161071c906125cf565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f575750610f57336106c5565b610f735760405162461bcd60e51b815260040161071c906125cf565b601755565b600061079e338484611426565b6000546001600160a01b0316331480610fa25750610fa2336106c5565b610fbe5760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110025750611002336106c5565b61101e5760405162461bcd60e51b815260040161071c906125cf565b3060009081526004602052604090205461093a81611ce1565b6000546001600160a01b03163314806110545750611054336106c5565b6110705760405162461bcd60e51b815260040161071c906125cf565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110ae57506110ae336106c5565b6110ca5760405162461bcd60e51b815260040161071c906125cf565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190612701565b505050565b6000546001600160a01b031633148061115d575061115d336106c5565b6111795760405162461bcd60e51b815260040161071c906125cf565b601655565b6000546001600160a01b031633148061119b575061119b336106c5565b6111b75760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806111f557506111f5336106c5565b6112115760405162461bcd60e51b815260040161071c906125cf565b6001600160a01b0381166112765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071c565b60006007600061128e6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112bf81611c91565b6001600760006112d76000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071c565b6001600160a01b0382166113c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071c565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661148a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161071c565b6001600160a01b0382166114ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161071c565b6000811161154e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161071c565b6001600160a01b03821660009081526007602052604090205460ff1615801561159057506001600160a01b03831660009081526007602052604090205460ff16155b156119f857601254600160a01b900460ff166115ee5760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161071c565b6015548111156116405760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161071c565b6001600160a01b0383166000908152600a602052604090205460ff1615801561168257506001600160a01b0382166000908152600a602052604090205460ff16155b6116da5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161071c565b601254600160c01b900460ff16156117ff57600060145411801561170b57506012546001600160a01b038481169116145b801561173057506001600160a01b03831660009081526009602052604090205460ff16155b801561175557506001600160a01b03821660009081526009602052604090205460ff16155b156117ff5760135460145461176a904361264d565b116117ff576001600160a01b03821660009081526008602052604090205460ff166117db57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b0383811691161461196d576012546001600160a01b03848116911614801561183a5750601254600160b81b900460ff165b156118e75732600090815260056020526040902054429061185c9060b461271e565b10801561188c57506001600160a01b038216600090815260056020526040902054429061188a9060b461271e565b105b6118e75760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161071c565b6016548161190a846001600160a01b031660009081526004602052604090205490565b611914919061271e565b1061196d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161071c565b30600090815260046020526040902054601754811080159061198f5760175491505b8080156119a65750601254600160a81b900460ff16155b80156119c057506012546001600160a01b03868116911614155b80156119d55750601254600160b01b900460ff165b156119f5576119e382611ce1565b4780156119f3576119f347611ea1565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a3a57506001600160a01b03831660009081526007602052604090205460ff165b80611a6c57506012546001600160a01b03858116911614801590611a6c57506012546001600160a01b03848116911614155b15611a7957506000611ae7565b6012546001600160a01b038581169116148015611aa457506011546001600160a01b03848116911614155b15611ab057600c54600e555b6012546001600160a01b038481169116148015611adb57506011546001600160a01b03858116911614155b15611ae757600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b1784848484611f01565b50505050565b60008184841115611b415760405162461bcd60e51b815260040161071c919061236b565b506000611b4e848661264d565b95945050505050565b600080611b64838561271e565b905083811015611bb65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071c565b9392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611c0e918490611b1d565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c3d9083611b57565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ce83398151915290611c7f9086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d0c6064611d06846055611f22565b90611fa1565b90506000611d1a828461264d565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d5457611d54612606565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd19190612664565b81600181518110611de457611de4612606565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e2a9087906000908690309042906004016126c5565b600060405180830381600087803b158015611e4457600080fd5b505af1158015611e58573d6000803e3d6000fd5b505050506000611e718347611fe390919063ffffffff16565b9050611e8c84611e876064611d0685600f611f22565b612025565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611eee576040519150601f19603f3d011682016040523d82523d6000602084013e611ef3565b606091505b505090508061078d57600080fd5b80611f1757611f11848484611bbd565b50611b17565b611b178484846120b7565b600082611f31575060006107a2565b6000611f3d8385612736565b905082611f4a8583612755565b14611bb65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161071c565b6000611bb683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121aa565b6000611bb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b1d565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612092573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610da59190612777565b60006120c384836121d8565b905061212b8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b1d9092919063ffffffff16565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461215a9082611b57565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ce8339815191529061219c9085815260200190565b60405180910390a350505050565b600081836121cb5760405162461bcd60e51b815260040161071c919061236b565b506000611b4e8486612755565b6000806121f56064611d06600e5486611f2290919063ffffffff16565b306000908152600460205260409020549091506122129082611b57565b30600081815260046020526040908190209290925590516001600160a01b038616906000805160206127ce833981519152906122519085815260200190565b60405180910390a36122638382611fe3565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461093a57600080fd5b80356122a181612281565b919050565b600060208083850312156122b957600080fd5b823567ffffffffffffffff808211156122d157600080fd5b818501915085601f8301126122e557600080fd5b8135818111156122f7576122f761226b565b8060051b604051601f19603f8301168101818110858211171561231c5761231c61226b565b60405291825284820192508381018501918883111561233a57600080fd5b938501935b8285101561235f5761235085612296565b8452938501939285019261233f565b98975050505050505050565b600060208083528351808285015260005b818110156123985785810183015185820160400152820161237c565b818111156123aa576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156123d357600080fd5b82356123de81612281565b946020939093013593505050565b600080604083850312156123ff57600080fd5b50508035926020909101359150565b60008060006060848603121561242357600080fd5b833561242e81612281565b9250602084013561243e81612281565b929592945050506040919091013590565b801515811461093a57600080fd5b60006020828403121561246f57600080fd5b8135611bb68161244f565b60006020828403121561248c57600080fd5b5035919050565b600080604083850312156124a657600080fd5b82356124b181612281565b915060208301356124c18161244f565b809150509250929050565b60008083601f8401126124de57600080fd5b50813567ffffffffffffffff8111156124f657600080fd5b6020830191508360208260051b850101111561251157600080fd5b9250929050565b6000806000806040858703121561252e57600080fd5b843567ffffffffffffffff8082111561254657600080fd5b612552888389016124cc565b9096509450602087013591508082111561256b57600080fd5b50612578878288016124cc565b95989497509550505050565b60006020828403121561259657600080fd5b8135611bb681612281565b600080604083850312156125b457600080fd5b82356125bf81612281565b915060208301356124c181612281565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156126465761264661261c565b5060010190565b60008282101561265f5761265f61261c565b500390565b60006020828403121561267657600080fd5b8151611bb681612281565b600081518084526020808501945080840160005b838110156126ba5781516001600160a01b031687529582019590820190600101612695565b509495945050505050565b85815284602082015260a0604082015260006126e460a0830186612681565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561271357600080fd5b8151611bb68161244f565b600082198211156127315761273161261c565b500190565b60008160001904831182151516156127505761275061261c565b500290565b60008261277257634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561278c57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dca2a380850299d8f34d054ac06c1d8edbf7bd62422a4b2a1d04740978837a4064736f6c634300080a0033

Deployed Bytecode Sourcemap

5732:14531:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16486:169;;;;;;;;;;-1:-1:-1;16486:169:0;;;;;:::i;:::-;;:::i;:::-;;8344:83;;;;;;;;;;-1:-1:-1;8414:5:0;;;;;;;;;;;-1:-1:-1;;;8414:5:0;;;;8344:83;;;;8414:5;8344:83;:::i;:::-;;;;;;;;9255:193;;;;;;;;;;-1:-1:-1;9255:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;9255:193:0;2469:187:1;18939:184:0;;;;;;;;;;-1:-1:-1;18939:184:0;;;;;:::i;:::-;;:::i;6815:41::-;;;;;;;;;;-1:-1:-1;6815:41:0;;;;-1:-1:-1;;;;;6815:41:0;;;;;;-1:-1:-1;;;;;3104:32:1;;;3086:51;;3074:2;3059:18;6815:41:0;2914:229:1;8621:100:0;;;;;;;;;;-1:-1:-1;8701:12:0;;8621:100;;;3294:25:1;;;3282:2;3267:18;8621:100:0;3148:177:1;9456:446:0;;;;;;;;;;-1:-1:-1;9456:446:0;;;;;:::i;:::-;;:::i;10026:129::-;;;;;;;;;;-1:-1:-1;10026:129:0;;;;;:::i;:::-;;:::i;7275:52::-;;;;;;;;;;;;;;;;8530:83;;;;;;;;;;-1:-1:-1;8530:83:0;;6072:1;4302:36:1;;4290:2;4275:18;8530:83:0;4160:184:1;19886:201:0;;;;;;;;;;;;;:::i;6863:28::-;;;;;;;;;;-1:-1:-1;6863:28:0;;;;-1:-1:-1;;;;;6863:28:0;;;9910:108;;;;;;;;;;-1:-1:-1;9910:108:0;;;;;:::i;:::-;;:::i;10163:1097::-;;;;;;;;;;;;;:::i;19649:124::-;;;;;;;;;;-1:-1:-1;19649:124:0;;;;;:::i;:::-;;:::i;17088:260::-;;;;;;;;;;-1:-1:-1;17088:260:0;;;;;:::i;:::-;;:::i;16663:92::-;;;;;;;;;;-1:-1:-1;16663:92:0;;;;;:::i;:::-;;:::i;19301:101::-;;;;;;;;;;-1:-1:-1;19301:101:0;;;;;:::i;:::-;;:::i;8729:119::-;;;;;;;;;;-1:-1:-1;8729:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8822:18:0;8795:7;8822:18;;;:9;:18;;;;;;;8729:119;2546:103;;;;;;;;;;;;;:::i;19410:108::-;;;;;;;;;;-1:-1:-1;19410:108:0;;;;;:::i;:::-;;:::i;7159:46::-;;;;;;;;;;;;;;;;2258:87;;;;;;;;;;-1:-1:-1;2304:7:0;2331:6;-1:-1:-1;;;;;2331:6:0;2258:87;;19781:97;;;;;;;;;;;;;:::i;7216:48::-;;;;;;;;;;;;;;;;19131:162;;;;;;;;;;-1:-1:-1;19131:162:0;;;;;:::i;:::-;;:::i;8856:199::-;;;;;;;;;;-1:-1:-1;8856:199:0;;;;;:::i;:::-;;:::i;3102:94::-;;;;;;;;;;-1:-1:-1;3102:94:0;;;;;:::i;:::-;;:::i;16324:154::-;;;;;;;;;;;;;:::i;16168:148::-;;;;;;;;;;;;;:::i;9063:184::-;;;;;;;;;;-1:-1:-1;9063:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9212:18:0;;;9180:7;9212:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9063:184;20095:165;;;;;;;;;;-1:-1:-1;20095:165:0;;;;;:::i;:::-;;:::i;19526:115::-;;;;;;;;;;-1:-1:-1;19526:115:0;;;;;:::i;:::-;;:::i;3204:97::-;;;;;;;;;;-1:-1:-1;3204:97:0;;;;;:::i;:::-;;:::i;18601:330::-;;;;;;;;;;-1:-1:-1;18601:330:0;;;;;:::i;:::-;;:::i;3309:107::-;;;;;;;;;;-1:-1:-1;3309:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;3389:19:0;3365:4;3389:19;;;:14;:19;;;;;;;;;3309:107;16486:169;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;;;;;;;;;16562:9:::1;16557:91;16581:5;:12;16577:1;:16;16557:91;;;16632:4;16615;:14;16620:5;16626:1;16620:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16615:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16615:14:0;:21;;-1:-1:-1;;16615:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16595:3;::::1;::::0;::::1;:::i;:::-;;;;16557:91;;;;16486:169:::0;:::o;9255:193::-;9357:4;9379:39;1071:10;9402:7;9411:6;9379:8;:39::i;:::-;-1:-1:-1;9436:4:0;9255:193;;;;;:::o;18939:184::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;19050:12:::1;:26:::0;;;;19087:13:::1;:28:::0;18939:184::o;9456:446::-;9588:4;9605:36;9615:6;9623:9;9634:6;9605:9;:36::i;:::-;9652:220;9675:6;1071:10;9723:138;9779:6;9723:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9723:19:0;;;;;;:11;:19;;;;;;;;1071:10;9723:33;;;;;;;;;;:37;:138::i;:::-;9652:8;:220::i;:::-;-1:-1:-1;9890:4:0;9456:446;;;;;:::o;10026:129::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;10109:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;10109:38:0::1;-1:-1:-1::0;;;;10109:38:0;;::::1;::::0;;;::::1;::::0;;10026:129::o;19886:201::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;19961:91:::1;::::0;19943:12:::1;::::0;19977:10:::1;::::0;20016:21:::1;::::0;19943:12;19961:91;19943:12;19961:91;20016:21;19977:10;19961:91:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19942:110;;;20071:7;20063:16;;;::::0;::::1;;19931:156;19886:201::o:0;9910:108::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;9984:10:::1;:26:::0;9910:108::o;10163:1097::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;7429:6:::1;:13:::0;;-1:-1:-1;;;;7429:13:0::1;-1:-1:-1::0;;;7429:13:0::1;::::0;;10233:9:::2;:16:::0;:20;10229:1024:::2;;10317:4;10270:26;10299:24:::0;;;:9:::2;:24;::::0;;;;;;10338:416:::2;10362:9;:16:::0;10358:20;::::2;10338:416;;;10431:93;10482:9;:23;10492:9;10502:1;10492:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;10492:12:0::2;10482:23:::0;;;;::::2;::::0;;;;;;;;;;;10449:4:::2;10431:24:::0;;:9:::2;:24:::0;;;;;;:28:::2;:93::i;:::-;10422:4;10404:24;::::0;;;:9:::2;:24;::::0;;;;:120;;;;10579:9:::2;:12:::0;;10589:1;;10579:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;::::0;10660:9:::2;:12:::0;;-1:-1:-1;;;;;10579:12:0;;::::2;::::0;-1:-1:-1;;;;;;;;;;;10548:144:0;10650:9:::2;::::0;10660;10670:1;;10660:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;::::2;::::0;-1:-1:-1;;;;;10660:12:0::2;10650:23:::0;;;;::::2;::::0;;;;;;;;;;;10548:144;;3294:25:1;;;3267:18;10548:144:0::2;;;;;;;10737:1;10711:9;:23;10721:9;10731:1;10721:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;10721:12:0::2;10711:23:::0;;;::::2;::::0;;;;;;;;:27;10380:3;::::2;::::0;::::2;:::i;:::-;;;;10338:416;;;-1:-1:-1::0;10812:4:0::2;10768:23;10794:24:::0;;;:9:::2;:24;::::0;;;;;:62:::2;::::0;10838:18;;10794:62:::2;:::i;:::-;10895:16;::::0;;10909:1:::2;10895:16:::0;;;;;::::2;::::0;;10768:88;;-1:-1:-1;10871:21:0::2;::::0;10895:16;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;10895:16:0::2;10871:40;;10944:4;10926;10931:1;10926:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10926:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;10974:15:::2;::::0;:22:::2;::::0;;-1:-1:-1;;;10974:22:0;;;;:15;;;::::2;::::0;:20:::2;::::0;:22:::2;::::0;;::::2;::::0;10926:7;;10974:22;;;;;:15;:22:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10964:4;10969:1;10964:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10964:32:0;;::::2;:7;::::0;;::::2;::::0;;;;;:32;11013:15:::2;::::0;11175:17:::2;::::0;11013:228:::2;::::0;-1:-1:-1;;;11013:228:0;;:15;;::::2;::::0;:66:::2;::::0;:228:::2;::::0;11098:15;;11013::::2;::::0;11152:4;;11175:17;;::::2;::::0;11211:15:::2;::::0;11013:228:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;10255:998;;;10229:1024;7465:6:::1;:14:::0;;-1:-1:-1;;;;7465:14:0::1;::::0;;10163:1097::o;19649:124::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19730:26:0;;;::::1;;::::0;;;:18:::1;:26;::::0;;;;:35;;-1:-1:-1;;19730:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19649:124::o;17088:260::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;17219:9:::1;17214:127;17234:21:::0;;::::1;17214:127;;;17277:52;17292:10;17304;;17315:1;17304:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17319:6;;17326:1;17319:9;;;;;;;:::i;:::-;;;;;;;17277:14;:52::i;:::-;-1:-1:-1::0;17257:3:0;::::1;::::0;::::1;:::i;:::-;;;;17214:127;;;;17088:260:::0;;;;:::o;16663:92::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16727:12:0::1;16742:5;16727:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16727:20:0::1;::::0;;16663:92::o;19301:101::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;19368:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19368:26:0::1;-1:-1:-1::0;;;;19368:26:0;;::::1;::::0;;;::::1;::::0;;19301:101::o;2546:103::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;2611:30:::1;2638:1;2611:18;:30::i;:::-;2546:103::o:0;19410:108::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;19484:12:::1;:26:::0;19410:108::o;19781:97::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;19857:13:::1;::::0;;-1:-1:-1;;;;19840:30:0;::::1;-1:-1:-1::0;;;19857:13:0;;;::::1;;;19856:14;19840:30:::0;;::::1;;::::0;;19781:97::o;19131:162::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;19245:19:::1;:40:::0;19131:162::o;8856:199::-;8961:4;8983:42;1071:10;9007:9;9018:6;8983:9;:42::i;3102:94::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3162:19:0::1;;::::0;;;3184:4:::1;3162:19;::::0;;;;;;;:26;;-1:-1:-1;;3162:26:0::1;::::0;;::::1;::::0;;3102:94::o;16324:154::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;16420:4:::1;16376:23;8822:18:::0;;;:9;:18;;;;;;16437:33:::1;8822:18:::0;16437:16:::1;:33::i;16168:148::-:0;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;16219:11:::1;:18:::0;;-1:-1:-1;;;;16248:24:0;-1:-1:-1;;;16248:24:0;;;16296:12:::1;16219:11;16283:25:::0;16168:148::o;20095:165::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;20208:44:::1;::::0;-1:-1:-1;;;20208:44:0;;20232:10:::1;20208:44;::::0;::::1;9518:51:1::0;9585:18;;;9578:34;;;-1:-1:-1;;;;;20208:23:0;::::1;::::0;::::1;::::0;9491:18:1;;20208:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20095:165:::0;;:::o;19526:115::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;19603:14:::1;:30:::0;19526:115::o;3204:97::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3266:19:0::1;3288:5;3266:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3266:27:0::1;::::0;;3204:97::o;18601:330::-;2304:7;2331:6;-1:-1:-1;;;;;2331:6:0;1071:10;2407:23;;:53;;-1:-1:-1;2434:26:0;1071:10;3309:107;:::i;2434:26::-;2385:133;;;;-1:-1:-1;;;2385:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18705:22:0;::::1;18683:110;;;::::0;-1:-1:-1;;;18683:110:0;;10075:2:1;18683:110:0::1;::::0;::::1;10057:21:1::0;10114:2;10094:18;;;10087:30;10153:34;10133:18;;;10126:62;-1:-1:-1;;;10204:18:1;;;10197:36;10250:19;;18683:110:0::1;9873:402:1::0;18683:110:0::1;18834:5;18804:18;:27;18823:7;2304::::0;2331:6;-1:-1:-1;;;;;2331:6:0;;2258:87;18823:7:::1;-1:-1:-1::0;;;;;18804:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18804:27:0;:35;;-1:-1:-1;;18804:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18850:28:::1;18869:8:::0;18850:18:::1;:28::i;:::-;18919:4;18889:18;:27;18908:7;2304::::0;2331:6;-1:-1:-1;;;;;2331:6:0;;2258:87;18908:7:::1;-1:-1:-1::0;;;;;18889:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18889:27:0;:34;;-1:-1:-1;;18889:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18601:330:0:o;11268:369::-;-1:-1:-1;;;;;11395:19:0;;11387:68;;;;-1:-1:-1;;;11387:68:0;;10482:2:1;11387:68:0;;;10464:21:1;10521:2;10501:18;;;10494:30;10560:34;10540:18;;;10533:62;-1:-1:-1;;;10611:18:1;;;10604:34;10655:19;;11387:68:0;10280:400:1;11387:68:0;-1:-1:-1;;;;;11474:21:0;;11466:68;;;;-1:-1:-1;;;11466:68:0;;10887:2:1;11466:68:0;;;10869:21:1;10926:2;10906:18;;;10899:30;10965:34;10945:18;;;10938:62;-1:-1:-1;;;11016:18:1;;;11009:32;11058:19;;11466:68:0;10685:398:1;11466:68:0;-1:-1:-1;;;;;11545:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11597:32;;3294:25:1;;;11597:32:0;;3267:18:1;11597:32:0;;;;;;;11268:369;;;:::o;11645:3266::-;-1:-1:-1;;;;;11767:18:0;;11759:68;;;;-1:-1:-1;;;11759:68:0;;11290:2:1;11759:68:0;;;11272:21:1;11329:2;11309:18;;;11302:30;11368:34;11348:18;;;11341:62;-1:-1:-1;;;11419:18:1;;;11412:35;11464:19;;11759:68:0;11088:401:1;11759:68:0;-1:-1:-1;;;;;11846:16:0;;11838:64;;;;-1:-1:-1;;;11838:64:0;;11696:2:1;11838:64:0;;;11678:21:1;11735:2;11715:18;;;11708:30;11774:34;11754:18;;;11747:62;-1:-1:-1;;;11825:18:1;;;11818:33;11868:19;;11838:64:0;11494:399:1;11838:64:0;11930:1;11921:6;:10;11913:64;;;;-1:-1:-1;;;11913:64:0;;12100:2:1;11913:64:0;;;12082:21:1;12139:2;12119:18;;;12112:30;12178:34;12158:18;;;12151:62;-1:-1:-1;;;12229:18:1;;;12222:39;12278:19;;11913:64:0;11898:405:1;11913:64:0;-1:-1:-1;;;;;11995:22:0;;;;;;:18;:22;;;;;;;;11994:23;:52;;;;-1:-1:-1;;;;;;12022:24:0;;;;;;:18;:24;;;;;;;;12021:25;11994:52;11990:2167;;;12071:11;;-1:-1:-1;;;12071:11:0;;;;12063:54;;;;-1:-1:-1;;;12063:54:0;;12510:2:1;12063:54:0;;;12492:21:1;12549:2;12529:18;;;12522:30;12588:32;12568:18;;;12561:60;12638:18;;12063:54:0;12308:354:1;12063:54:0;12150:12;;12140:6;:22;;12132:63;;;;-1:-1:-1;;;12132:63:0;;12869:2:1;12132:63:0;;;12851:21:1;12908:2;12888:18;;;12881:30;12947;12927:18;;;12920:58;12995:18;;12132:63:0;12667:352:1;12132:63:0;-1:-1:-1;;;;;12237:10:0;;;;;;:4;:10;;;;;;;;12236:11;:24;;;;-1:-1:-1;;;;;;12252:8:0;;;;;;:4;:8;;;;;;;;12251:9;12236:24;12210:121;;;;-1:-1:-1;;;12210:121:0;;13226:2:1;12210:121:0;;;13208:21:1;13265:2;13245:18;;;13238:30;13304:34;13284:18;;;13277:62;-1:-1:-1;;;13355:18:1;;;13348:33;13398:19;;12210:121:0;13024:399:1;12210:121:0;12352:17;;-1:-1:-1;;;12352:17:0;;;;12348:542;;;12429:1;12416:10;;:14;:60;;;;-1:-1:-1;12463:13:0;;-1:-1:-1;;;;;12455:21:0;;;12463:13;;12455:21;12416:60;:109;;;;-1:-1:-1;;;;;;12502:23:0;;;;;;:17;:23;;;;;;;;12501:24;12416:109;:156;;;;-1:-1:-1;;;;;;12551:21:0;;;;;;:17;:21;;;;;;;;12550:22;12416:156;12390:485;;;12648:10;;12634;;12619:25;;:12;:25;:::i;:::-;:39;12615:241;;-1:-1:-1;;;;;12692:14:0;;;;;;:10;:14;;;;;;;;12687:98;;12739:9;:18;;;;;;;-1:-1:-1;12739:18:0;;;;;;;;-1:-1:-1;;;;;;12739:18:0;-1:-1:-1;;;;;12739:18:0;;;;;12687:98;-1:-1:-1;;;;;12811:14:0;;;;;;:10;:14;;;;;:21;;-1:-1:-1;;12811:21:0;12828:4;12811:21;;;12615:241;12916:13;;-1:-1:-1;;;;;12910:19:0;;;12916:13;;12910:19;12906:559;;12962:13;;-1:-1:-1;;;;;12954:21:0;;;12962:13;;12954:21;:38;;;;-1:-1:-1;12979:13:0;;-1:-1:-1;;;12979:13:0;;;;12954:38;12950:333;;;13059:9;13051:18;;;;:7;:18;;;;;;13084:15;;13051:30;;13072:9;13051:30;:::i;:::-;:48;:122;;;;-1:-1:-1;;;;;;13132:11:0;;;;;;:7;:11;;;;;;13158:15;;13132:23;;13146:9;13132:23;:::i;:::-;:41;13051:122;13017:246;;;;-1:-1:-1;;;13017:246:0;;13763:2:1;13017:246:0;;;13745:21:1;13802:2;13782:18;;;13775:30;13841:34;13821:18;;;13814:62;-1:-1:-1;;;13892:18:1;;;13885:36;13938:19;;13017:246:0;13561:402:1;13017:246:0;13356:14;;13347:6;13331:13;13341:2;-1:-1:-1;;;;;8822:18:0;8795:7;8822:18;;;:9;:18;;;;;;;8729:119;13331:13;:22;;;;:::i;:::-;:39;13301:148;;;;-1:-1:-1;;;13301:148:0;;14170:2:1;13301:148:0;;;14152:21:1;14209:2;14189:18;;;14182:30;14248:34;14228:18;;;14221:62;-1:-1:-1;;;14299:18:1;;;14292:33;14342:19;;13301:148:0;13968:399:1;13301:148:0;13530:4;13481:28;8822:18;;;:9;:18;;;;;;13590:19;;13566:43;;;;;13626:126;;13717:19;;13694:42;;13626:126;13772:7;:18;;;;-1:-1:-1;13784:6:0;;-1:-1:-1;;;13784:6:0;;;;13783:7;13772:18;:43;;;;-1:-1:-1;13802:13:0;;-1:-1:-1;;;;;13794:21:0;;;13802:13;;13794:21;;13772:43;:58;;;;-1:-1:-1;13819:11:0;;-1:-1:-1;;;13819:11:0;;;;13772:58;13768:378;;;13851:38;13868:20;13851:16;:38::i;:::-;13979:21;14023:28;;14019:112;;14076:35;14089:21;14076:12;:35::i;:::-;13832:314;13768:378;12048:2109;;11990:2167;-1:-1:-1;;;;;14247:24:0;;14169:12;14247:24;;;:18;:24;;;;;;14184:4;;14247:24;;;:50;;-1:-1:-1;;;;;;14275:22:0;;;;;;:18;:22;;;;;;;;14247:50;14246:115;;;-1:-1:-1;14324:13:0;;-1:-1:-1;;;;;14316:21:0;;;14324:13;;14316:21;;;;:44;;-1:-1:-1;14347:13:0;;-1:-1:-1;;;;;14341:19:0;;;14347:13;;14341:19;;14316:44;14228:537;;;-1:-1:-1;14398:5:0;14228:537;;;14480:13;;-1:-1:-1;;;;;14472:21:0;;;14480:13;;14472:21;:55;;;;-1:-1:-1;14511:15:0;;-1:-1:-1;;;;;14497:30:0;;;14511:15;;14497:30;;14472:55;14468:118;;;14558:12;;14548:7;:22;14468:118;14645:13;;-1:-1:-1;;;;;14639:19:0;;;14645:13;;14639:19;:55;;;;-1:-1:-1;14678:15:0;;-1:-1:-1;;;;;14662:32:0;;;14678:15;;14662:32;;14639:55;14635:119;;;14725:13;;14715:7;:23;14635:119;14783:9;14775:18;;;;:7;:18;;;;;;14796:15;14775:36;;;;-1:-1:-1;;;;;14822:11:0;;;;;;:29;14862:41;14877:4;14830:2;14887:6;14895:7;14862:14;:41::i;:::-;11748:3163;11645:3266;;;:::o;3778:224::-;3898:7;3934:12;3926:6;;;;3918:29;;;;-1:-1:-1;;;3918:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3958:9:0;3970:5;3974:1;3970;:5;:::i;:::-;3958:17;3778:224;-1:-1:-1;;;;;3778:224:0:o;3447:179::-;3505:7;;3537:5;3541:1;3537;:5;:::i;:::-;3525:17;;3566:1;3561;:6;;3553:46;;;;-1:-1:-1;;;3553:46:0;;14574:2:1;3553:46:0;;;14556:21:1;14613:2;14593:18;;;14586:30;14652:29;14632:18;;;14625:57;14699:18;;3553:46:0;14372:351:1;3553:46:0;3617:1;3447:179;-1:-1:-1;;;3447:179:0:o;17806:401::-;17970:90;;;;;;;;;;;-1:-1:-1;;;17970:90:0;;;;;;;;-1:-1:-1;;;;;17970:17:0;;17933:4;17970:17;;;:9;:17;;;;;;;:90;;18006:6;;17970:21;:90::i;:::-;-1:-1:-1;;;;;17950:17:0;;;;;;;:9;:17;;;;;;:110;;;;18094:20;;;;;;;:32;;18119:6;18094:24;:32::i;:::-;-1:-1:-1;;;;;18071:20:0;;;;;;;:9;:20;;;;;;;:55;;;;18142:35;;;;;;-1:-1:-1;;;;;;;;;;;18142:35:0;;;18170:6;3294:25:1;;3282:2;3267:18;;3148:177;18142:35:0;;;;;;;;-1:-1:-1;18195:4:0;17806:401;;;;;:::o;2903:191::-;2977:16;2996:6;;-1:-1:-1;;;;;3013:17:0;;;-1:-1:-1;;;;;;3013:17:0;;;;;;3046:40;;2996:6;;;;;;;3046:40;;2977:16;3046:40;2966:128;2903:191;:::o;14919:699::-;7429:6;:13;;-1:-1:-1;;;;7429:13:0;-1:-1:-1;;;7429:13:0;;;;15014:28:::1;15038:3;15014:19;:11:::0;15030:2:::1;15014:15;:19::i;:::-;:23:::0;::::1;:28::i;:::-;14997:45:::0;-1:-1:-1;15053:14:0::1;15070:20;14997:45:::0;15070:11;:20:::1;:::i;:::-;15183:16;::::0;;15197:1:::1;15183:16:::0;;;;;::::1;::::0;;15053:37;;-1:-1:-1;15125:21:0::1;::::0;15101::::1;::::0;15183:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15183:16:0::1;15159:40;;15228:4;15210;15215:1;15210:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15210:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15254:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15254:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15210:7;;15254:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15244:4;15249:1;15244:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15244:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15287:15:::1;::::0;:191:::1;::::0;-1:-1:-1;;;15287:191:0;;:15;::::1;::::0;:66:::1;::::0;:191:::1;::::0;15368:6;;15287:15:::1;::::0;15405:4;;15432::::1;::::0;15452:15:::1;::::0;15287:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15489:17;15509:40;15535:13;15509:21;:25;;:40;;;;:::i;:::-;15489:60:::0;-1:-1:-1;15562:48:0::1;15575:6:::0;15583:26:::1;15605:3;15583:17;15489:60:::0;15597:2:::1;15583:13;:17::i;:26::-;15562:12;:48::i;:::-;-1:-1:-1::0;;7465:6:0;:14;;-1:-1:-1;;;;7465:14:0;;;-1:-1:-1;;;;14919:699:0:o;15626:152::-;15702:17;;:41;;15684:12;;-1:-1:-1;;;;;15702:17:0;;15732:6;;15684:12;15702:41;15684:12;15702:41;15732:6;15702:17;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15683:60;;;15762:7;15754:16;;;;;16763:317;16919:7;16914:159;;16943:41;16958:6;16966:9;16977:6;16943:14;:41::i;:::-;;16914:159;;;17017:44;17035:6;17043:9;17054:6;17017:17;:44::i;4010:246::-;4068:7;4092:6;4088:47;;-1:-1:-1;4122:1:0;4115:8;;4088:47;4145:9;4157:5;4161:1;4157;:5;:::i;:::-;4145:17;-1:-1:-1;4190:1:0;4181:5;4185:1;4145:17;4181:5;:::i;:::-;:10;4173:56;;;;-1:-1:-1;;;4173:56:0;;15912:2:1;4173:56:0;;;15894:21:1;15951:2;15931:18;;;15924:30;15990:34;15970:18;;;15963:62;-1:-1:-1;;;16041:18:1;;;16034:31;16082:19;;4173:56:0;15710:397:1;4264:132:0;4322:7;4349:39;4353:1;4356;4349:39;;;;;;;;;;;;;;;;;:3;:39::i;3634:136::-;3692:7;3719:43;3723:1;3726;3719:43;;;;;;;;;;;;;;;;;:3;:43::i;15786:374::-;15897:15;;:255;;-1:-1:-1;;;15897:255:0;;15969:4;15897:255;;;16453:34:1;16503:18;;;16496:34;;;15897:15:0;16546:18:1;;;16539:34;;;16589:18;;;16582:34;;;16632:19;;;16625:44;16126:15:0;16685:19:1;;;16678:35;-1:-1:-1;;;;;15897:15:0;;;;:31;;15936:9;;16387:19:1;;15897:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17356:442::-;17487:22;17512:24;17521:6;17529;17512:8;:24::i;:::-;17487:49;;17567:90;17603:6;17567:90;;;;;;;;;;;;;-1:-1:-1;;;17567:90:0;;;:9;:17;17577:6;-1:-1:-1;;;;;17567:17:0;-1:-1:-1;;;;;17567:17:0;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;-1:-1:-1;;;;;17547:17:0;;;;;;;:9;:17;;;;;;:110;;;;17691:20;;;;;;;:40;;17716:14;17691:24;:40::i;:::-;-1:-1:-1;;;;;17668:20:0;;;;;;;:9;:20;;;;;;;:63;;;;17747:43;;;;;;-1:-1:-1;;;;;;;;;;;17747:43:0;;;17775:14;3294:25:1;;3282:2;3267:18;;3148:177;17747:43:0;;;;;;;;17476:322;17356:442;;;:::o;4404:223::-;4524:7;4559:12;4552:5;4544:28;;;;-1:-1:-1;;;4544:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4583:9:0;4595:5;4599:1;4595;:5;:::i;18215:341::-;18301:7;18326:17;18346:28;18370:3;18346:19;18357:7;;18346:6;:10;;:19;;;;:::i;:28::-;18430:4;18412:24;;;;:9;:24;;;;;;18326:48;;-1:-1:-1;18412:39:0;;18326:48;18412:28;:39::i;:::-;18403:4;18385:24;;;;:9;:24;;;;;;;:66;;;;18467:42;;-1:-1:-1;;;;;18467:42:0;;;-1:-1:-1;;;;;;;;;;;18467:42:0;;;18499:9;3294:25:1;;3282:2;3267:18;;3148:177;18467:42:0;;;;;;;;18527:21;:6;18538:9;18527:10;:21::i;:::-;18520:28;18215:341;-1:-1:-1;;;;18215:341:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;2661:248::-;2729:6;2737;2790:2;2778:9;2769:7;2765:23;2761:32;2758:52;;;2806:1;2803;2796:12;2758:52;-1:-1:-1;;2829:23:1;;;2899:2;2884:18;;;2871:32;;-1:-1:-1;2661:248:1:o;3330:456::-;3407:6;3415;3423;3476:2;3464:9;3455:7;3451:23;3447:32;3444:52;;;3492:1;3489;3482:12;3444:52;3531:9;3518:23;3550:31;3575:5;3550:31;:::i;:::-;3600:5;-1:-1:-1;3657:2:1;3642:18;;3629:32;3670:33;3629:32;3670:33;:::i;:::-;3330:456;;3722:7;;-1:-1:-1;;;3776:2:1;3761:18;;;;3748:32;;3330:456::o;3791:118::-;3877:5;3870:13;3863:21;3856:5;3853:32;3843:60;;3899:1;3896;3889:12;3914:241;3970:6;4023:2;4011:9;4002:7;3998:23;3994:32;3991:52;;;4039:1;4036;4029:12;3991:52;4078:9;4065:23;4097:28;4119:5;4097:28;:::i;4557:180::-;4616:6;4669:2;4657:9;4648:7;4644:23;4640:32;4637:52;;;4685:1;4682;4675:12;4637:52;-1:-1:-1;4708:23:1;;4557:180;-1:-1:-1;4557:180:1:o;4742:382::-;4807:6;4815;4868:2;4856:9;4847:7;4843:23;4839:32;4836:52;;;4884:1;4881;4874:12;4836:52;4923:9;4910:23;4942:31;4967:5;4942:31;:::i;:::-;4992:5;-1:-1:-1;5049:2:1;5034:18;;5021:32;5062:30;5021:32;5062:30;:::i;:::-;5111:7;5101:17;;;4742:382;;;;;:::o;5129:367::-;5192:8;5202:6;5256:3;5249:4;5241:6;5237:17;5233:27;5223:55;;5274:1;5271;5264:12;5223:55;-1:-1:-1;5297:20:1;;5340:18;5329:30;;5326:50;;;5372:1;5369;5362:12;5326:50;5409:4;5401:6;5397:17;5385:29;;5469:3;5462:4;5452:6;5449:1;5445:14;5437:6;5433:27;5429:38;5426:47;5423:67;;;5486:1;5483;5476:12;5423:67;5129:367;;;;;:::o;5501:773::-;5623:6;5631;5639;5647;5700:2;5688:9;5679:7;5675:23;5671:32;5668:52;;;5716:1;5713;5706:12;5668:52;5756:9;5743:23;5785:18;5826:2;5818:6;5815:14;5812:34;;;5842:1;5839;5832:12;5812:34;5881:70;5943:7;5934:6;5923:9;5919:22;5881:70;:::i;:::-;5970:8;;-1:-1:-1;5855:96:1;-1:-1:-1;6058:2:1;6043:18;;6030:32;;-1:-1:-1;6074:16:1;;;6071:36;;;6103:1;6100;6093:12;6071:36;;6142:72;6206:7;6195:8;6184:9;6180:24;6142:72;:::i;:::-;5501:773;;;;-1:-1:-1;6233:8:1;-1:-1:-1;;;;5501:773:1:o;6279:247::-;6338:6;6391:2;6379:9;6370:7;6366:23;6362:32;6359:52;;;6407:1;6404;6397:12;6359:52;6446:9;6433:23;6465:31;6490:5;6465:31;:::i;6531:388::-;6599:6;6607;6660:2;6648:9;6639:7;6635:23;6631:32;6628:52;;;6676:1;6673;6666:12;6628:52;6715:9;6702:23;6734:31;6759:5;6734:31;:::i;:::-;6784:5;-1:-1:-1;6841:2:1;6826:18;;6813:32;6854:33;6813:32;6854:33;:::i;6924:354::-;7126:2;7108:21;;;7165:2;7145:18;;;7138:30;7204:32;7199:2;7184:18;;7177:60;7269:2;7254:18;;6924:354::o;7283:127::-;7344:10;7339:3;7335:20;7332:1;7325:31;7375:4;7372:1;7365:15;7399:4;7396:1;7389:15;7415:127;7476:10;7471:3;7467:20;7464:1;7457:31;7507:4;7504:1;7497:15;7531:4;7528:1;7521:15;7547:135;7586:3;-1:-1:-1;;7607:17:1;;7604:43;;;7627:18;;:::i;:::-;-1:-1:-1;7674:1:1;7663:13;;7547:135::o;7897:125::-;7937:4;7965:1;7962;7959:8;7956:34;;;7970:18;;:::i;:::-;-1:-1:-1;8007:9:1;;7897:125::o;8027:251::-;8097:6;8150:2;8138:9;8129:7;8125:23;8121:32;8118:52;;;8166:1;8163;8156:12;8118:52;8198:9;8192:16;8217:31;8242:5;8217:31;:::i;8283:461::-;8336:3;8374:5;8368:12;8401:6;8396:3;8389:19;8427:4;8456:2;8451:3;8447:12;8440:19;;8493:2;8486:5;8482:14;8514:1;8524:195;8538:6;8535:1;8532:13;8524:195;;;8603:13;;-1:-1:-1;;;;;8599:39:1;8587:52;;8659:12;;;;8694:15;;;;8635:1;8553:9;8524:195;;;-1:-1:-1;8735:3:1;;8283:461;-1:-1:-1;;;;;8283:461:1:o;8749:590::-;9056:6;9045:9;9038:25;9099:6;9094:2;9083:9;9079:18;9072:34;9142:3;9137:2;9126:9;9122:18;9115:31;9019:4;9163:57;9215:3;9204:9;9200:19;9192:6;9163:57;:::i;:::-;-1:-1:-1;;;;;9256:32:1;;;;9251:2;9236:18;;9229:60;-1:-1:-1;9320:3:1;9305:19;9298:35;9155:65;8749:590;-1:-1:-1;;;8749:590:1:o;9623:245::-;9690:6;9743:2;9731:9;9722:7;9718:23;9714:32;9711:52;;;9759:1;9756;9749:12;9711:52;9791:9;9785:16;9810:28;9832:5;9810:28;:::i;13428:128::-;13468:3;13499:1;13495:6;13492:1;13489:13;13486:39;;;13505:18;;:::i;:::-;-1:-1:-1;13541:9:1;;13428:128::o;15315:168::-;15355:7;15421:1;15417;15413:6;15409:14;15406:1;15403:21;15398:1;15391:9;15384:17;15380:45;15377:71;;;15428:18;;:::i;:::-;-1:-1:-1;15468:9:1;;15315:168::o;15488:217::-;15528:1;15554;15544:132;;15598:10;15593:3;15589:20;15586:1;15579:31;15633:4;15630:1;15623:15;15661:4;15658:1;15651:15;15544:132;-1:-1:-1;15690:9:1;;15488:217::o;16724:306::-;16812:6;16820;16828;16881:2;16869:9;16860:7;16856:23;16852:32;16849:52;;;16897:1;16894;16887:12;16849:52;16926:9;16920:16;16910:26;;16976:2;16965:9;16961:18;16955:25;16945:35;;17020:2;17009:9;17005:18;16999:25;16989:35;;16724:306;;;;;:::o

Swarm Source

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