ETH Price: $3,311.50 (-3.33%)

Token

Non Fungible Capital (NFC)
 

Overview

Max Total Supply

1,000,000,000,000 NFC

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,000,000,000 NFC

Value
$0.00
0xdbd2484d8457d5593de9360e9c2497670496e7bf
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:
NonFungibleCapital

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-06
*/

/**

Non Fungible Capital: $NFC
-You buy on Ethereum, we invest in NFTs that have true utility & farm on multiple chains to return the profits to $NFC holders + NFT giveaways.
    
1) 10% tax is collected and distributed to holders for HODLing.
2) 10-15% farming and operations tax.
    
Website:
https://nfc.farm

Telegram:
https://t.me/nonfungiblecapital

Twitter:
https://twitter.com/NFC_FARM
                                                                    
*/

/** 
 * There is not a pause contract button.
 * Deployer cannot disable sells.
 * Sell taxes cannot be raised higher than a designated percent written into the contract and noted as such.
 * Sells cannot exceed 25%.
 * Built-in whale protection: Max wallet size, max Tx amount and max amount to swap for ETH.
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        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 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 NonFungibleCapital is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Non Fungible Capital";
    string private constant _symbol = "NFC";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping (address => bool) public _isExcludedMaxTxAmount;
    mapping(address => bool) private _isExcludedFromReflection;
    address[] private _excludedFromReflection;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 1e9 * 1e9; //1,000,000,000,000
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    mapping(address => bool) public bots;
    
   
    uint256 private _reflectionFeeOnBuy = 10;
    uint256 private _taxFeeOnBuy = 15;
    
    
    uint256 private _reflectionFeeOnSell = 10;
    uint256 private _taxFeeOnSell = 15;
    
    uint256 private _reflectionFee = _reflectionFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousReflectionFee = _reflectionFee;
    uint256 private _previousTaxFee = _taxFee;
    
    address payable public _nfcAddress = payable(0xCbB1d245613DC6c3C05c1f18dfc9Ae763154D9aa); //Investment wallet
    address payable public _mktgAddress = payable(0x48F92371a12573FEE2aB79F085f13Cb168a2E24D); //Marketing wallet
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool public tradingActive = false;
    
    uint256 public _maxTxAmount = 2500 * 1e7 * 1e9; //max transaction set to 2.5%
    uint256 public _maxWalletSize = 2500 * 1e7 * 1e9; //max wallet set to 2.5%
    uint256 public _swapTokensAtAmount = 5000 * 1e6 * 1e9; //amount of tokens to swap for eth 0.5%

    event ExcludeFromReflection(address excludedAddress);
    event IncludeInReflection(address includedAddress);

    event ExcludeFromFee(address excludedAddress);
    event IncludeInFee(address includedAddress);

    event UpdatedMktgAddress(address mktg); //Marketing wallet
    event UpdatedNfcAddress(address nfc); //Investment wallet

    event SetBuyFee(uint256 buyMktgFee, uint256 buyReflectionFee);
    event SetSellFee(uint256 sellMktgFee, uint256 sellReflectionFee);
    
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
               
        _rOwned[_msgSender()] = _rTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_nfcAddress] = true;
        _isExcludedFromFee[_mktgAddress] = true;

        excludeFromMaxTxAmount(owner(), true);
        excludeFromMaxTxAmount(address(this), true);
        excludeFromMaxTxAmount(address(_nfcAddress), true);
        excludeFromMaxTxAmount(address(_mktgAddress), true);
        
        emit Transfer(address(0), _msgSender(), _tTotal);

    }

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

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

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

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

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

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

    function excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
        emit ExcludeFromFee(account);
    }

    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
        emit IncludeInFee(account);
    }

    function excludeFromReflection(address account) public onlyOwner {
        require(!_isExcludedFromReflection[account], "Account is already excluded");
        require(_excludedFromReflection.length + 1 <= 50, "Cannot exclude more than 50 accounts.  Include a previously excluded address.");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcludedFromReflection[account] = true;
        _excludedFromReflection.push(account);
    }

    function includeInReflection(address account) public onlyOwner {
        require(_isExcludedFromReflection[account], "Account is not excluded from reflection");
        for (uint256 i = 0; i < _excludedFromReflection.length; i++) {
            if (_excludedFromReflection[i] == account) {
                _excludedFromReflection[i] = _excludedFromReflection[_excludedFromReflection.length - 1];
                _tOwned[account] = 0;
                _isExcludedFromReflection[account] = false;
                _excludedFromReflection.pop();
                break;
            }
        }
    }

    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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_reflectionFee == 0 && _taxFee == 0) return;
    
        _previousReflectionFee = _reflectionFee;
        _previousTaxFee = _taxFee;
        
        _reflectionFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _reflectionFee = _previousReflectionFee;
        _taxFee = _previousTaxFee;
    }

    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 (from != owner() && to != owner()) {
            
            //Trade start check
            if (!tradingActive) 
              
            if(to != uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    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)) {
                _reflectionFee = _reflectionFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (!_isExcludedFromFee[from]) {
                        require(amount <= _maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }  

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

    function sendETHToFee(uint256 amount) private {
        _nfcAddress.transfer(amount.div(2));
        _mktgAddress.transfer(amount.div(2));
    }

    function manualSwap() external {
        require(_msgSender() == _nfcAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualSend() external {
        require(_msgSender() == _nfcAddress || _msgSender() == _mktgAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    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) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _reflectionFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 reflectionFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(reflectionFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 reflectionFeeOnBuy, uint256 reflectionFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _reflectionFeeOnBuy = reflectionFeeOnBuy;
        _taxFeeOnBuy = taxFeeOnBuy;
        
        _reflectionFeeOnSell = reflectionFeeOnSell;
        _taxFeeOnSell = taxFeeOnSell;
        
        require(_reflectionFeeOnBuy + _taxFeeOnBuy <= 25, "Must keep buy taxes below 25%"); 
        require(_reflectionFeeOnSell + _taxFeeOnSell <= 25, "Must keep buy taxes below 25%"); 
    }

      // once enabled, can never be turned off
    function enableTrading() internal onlyOwner {
        tradingActive = true;        
    }
    
    function airdrop(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner returns (bool){
        require(!tradingActive, "Trading is already active, cannot relaunch.");
        require(airdropWallets.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop
        for(uint256 i = 0; i < airdropWallets.length; i++){
            address wallet = airdropWallets[i];
            uint256 amount = amounts[i];
            _transfer(msg.sender, wallet, amount);
        }
        enableTrading();
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTxAmount(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTxAmount(address(uniswapV2Pair), true);
        return true;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set max transaction
    function setMaxTxAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function excludeFromMaxTxAmount(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTxAmount[updAds] = isEx;
    }
    
    //set max wallet
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

     //set wallet address
    function _setNFCAddress(address nfcAddress) external onlyOwner {
        require(_nfcAddress != address(0), "_nfcAddress cannot be 0");
        _isExcludedFromFee[nfcAddress] = false;
        nfcAddress = payable(_nfcAddress);
        _isExcludedFromFee[nfcAddress] = true;
        emit UpdatedNfcAddress(_nfcAddress);
    }

     //set wallet address
    function _setMktgAddress(address mktgAddress) external onlyOwner {
        require(_mktgAddress != address(0), "_mktgAddress cannot be 0");
        _isExcludedFromFee[mktgAddress] = false;
        mktgAddress = payable(_mktgAddress);
        _isExcludedFromFee[mktgAddress] = true;
        emit UpdatedMktgAddress(_mktgAddress);
    }
}

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":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInReflection","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":false,"internalType":"uint256","name":"buyMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyReflectionFee","type":"uint256"}],"name":"SetBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellReflectionFee","type":"uint256"}],"name":"SetSellFee","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mktg","type":"address"}],"name":"UpdatedMktgAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"nfc","type":"address"}],"name":"UpdatedNfcAddress","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mktgAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_nfcAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"mktgAddress","type":"address"}],"name":"_setMktgAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nfcAddress","type":"address"}],"name":"_setNFCAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"reflectionFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]

60806040526200001b683635c9adc5dea00000600019620002d4565b6200002990600019620002b0565b600955600a600c819055600f600d819055600e82905580805560108290556011819055601291909155601355601480546001600160a01b031990811673cbb1d245613dc6c3c05c1f18dfc9ae763154d9aa17909155601580549091167348f92371a12573fee2ab79f085f13cb168a2e24d1790556017805462ffffff60a01b1916600160a81b17905568015af1d78b58c400006018819055601955674563918244f40000601a55348015620000dd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506009543360009081526002602090815260408083209390935581546001600160a01b03908116835260059091528282208054600160ff19918216811790925530845284842080548216831790556014548316845284842080548216831790556015548316845293832080549094161790925554620001a09116600162000226565b620001ad30600162000226565b601454620001c6906001600160a01b0316600162000226565b601554620001df906001600160a01b0316600162000226565b604051683635c9adc5dea00000815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620002f5565b6000546001600160a01b03163314620002855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600082821015620002cf57634e487b7160e01b81526011600452602481fd5b500390565b600082620002f057634e487b7160e01b81526012600452602481fd5b500690565b6129fc80620003056000396000f3fe60806040526004361061021c5760003560e01c806370a0823111610123578063bbc0c742116100ab578063ea1644d51161006f578063ea1644d5146106a7578063ea2f0b37146106c7578063ec28438a146106e7578063f2fde38b14610707578063f42938901461072757600080fd5b8063bbc0c742146105d0578063bfd79284146105f1578063cd7c1b7214610621578063dd62ed3e14610641578063e755d0cf1461068757600080fd5b80638f9a55c0116100f25780638f9a55c01461052e57806395d89b411461054457806398a5c31514610570578063a2a957bb14610590578063a9059cbb146105b057600080fd5b806370a08231146104ba57806378b4aa45146104da5780637d1db4a5146104fa5780638da5cb5b1461051057600080fd5b80632fd689e3116101a657806351bc3c851161017557806351bc3c8514610415578063563912bd1461042a578063595cc84f1461045a578063672434821461047a5780636b9990531461049a57600080fd5b80632fd689e3146103a3578063313ce567146103b9578063437823ec146103d557806349bd5a5e146103f557600080fd5b8063095ea7b3116101ed578063095ea7b3146102ed5780631694505e1461031d57806318160ddd1461033d57806323b872dd1461036357806327334a081461038357600080fd5b806286803414610228578062b8cf2a1461026557806305f82a451461028757806306fdde03146102a757600080fd5b3661022357005b600080fd5b34801561023457600080fd5b50601554610248906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027157600080fd5b50610285610280366004612647565b61073c565b005b34801561029357600080fd5b506102856102a236600461253b565b6107e9565b3480156102b357600080fd5b50604080518082019091526014815273139bdb88119d5b99da589b194810d85c1a5d185b60621b60208201525b60405161025c9190612787565b3480156102f957600080fd5b5061030d61030836600461261c565b6109e4565b604051901515815260200161025c565b34801561032957600080fd5b50601654610248906001600160a01b031681565b34801561034957600080fd5b50683635c9adc5dea000005b60405190815260200161025c565b34801561036f57600080fd5b5061030d61037e3660046125ab565b6109fb565b34801561038f57600080fd5b5061028561039e36600461253b565b610a64565b3480156103af57600080fd5b50610355601a5481565b3480156103c557600080fd5b506040516009815260200161025c565b3480156103e157600080fd5b506102856103f036600461253b565b610c52565b34801561040157600080fd5b50601754610248906001600160a01b031681565b34801561042157600080fd5b50610285610cd7565b34801561043657600080fd5b5061030d61044536600461253b565b60066020526000908152604090205460ff1681565b34801561046657600080fd5b506102856104753660046125eb565b610d10565b34801561048657600080fd5b5061030d610495366004612682565b610d65565b3480156104a657600080fd5b506102856104b536600461253b565b6110e9565b3480156104c657600080fd5b506103556104d536600461253b565b611134565b3480156104e657600080fd5b506102856104f536600461253b565b611156565b34801561050657600080fd5b5061035560185481565b34801561051c57600080fd5b506000546001600160a01b0316610248565b34801561053a57600080fd5b5061035560195481565b34801561055057600080fd5b506040805180820190915260038152624e464360e81b60208201526102e0565b34801561057c57600080fd5b5061028561058b36600461273e565b611248565b34801561059c57600080fd5b506102856105ab366004612756565b611277565b3480156105bc57600080fd5b5061030d6105cb36600461261c565b611375565b3480156105dc57600080fd5b5060175461030d90600160b01b900460ff1681565b3480156105fd57600080fd5b5061030d61060c36600461253b565b600b6020526000908152604090205460ff1681565b34801561062d57600080fd5b50601454610248906001600160a01b031681565b34801561064d57600080fd5b5061035561065c366004612573565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069357600080fd5b506102856106a236600461253b565b611382565b3480156106b357600080fd5b506102856106c236600461273e565b611474565b3480156106d357600080fd5b506102856106e236600461253b565b6114a3565b3480156106f357600080fd5b5061028561070236600461273e565b61151e565b34801561071357600080fd5b5061028561072236600461253b565b61154d565b34801561073357600080fd5b50610285611637565b6000546001600160a01b0316331461076f5760405162461bcd60e51b8152600401610766906127da565b60405180910390fd5b60005b81518110156107e5576001600b60008484815181106107a157634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107dd81612942565b915050610772565b5050565b6000546001600160a01b031633146108135760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03811660009081526007602052604090205460ff1661088b5760405162461bcd60e51b815260206004820152602760248201527f4163636f756e74206973206e6f74206578636c756465642066726f6d207265666044820152663632b1ba34b7b760c91b6064820152608401610766565b60005b6008548110156107e557816001600160a01b0316600882815481106108c357634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156109d257600880546108ee9060019061292b565b8154811061090c57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b03909216918390811061094657634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600790925220805460ff1916905560088054806109ac57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806109dc81612942565b91505061088e565b60006109f133848461167f565b5060015b92915050565b6000610a088484846117a3565b610a5a8433610a558560405180606001604052806028815260200161299f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611ce4565b61167f565b5060019392505050565b6000546001600160a01b03163314610a8e5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03811660009081526007602052604090205460ff1615610af75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610766565b600854603290610b089060016128d4565b1115610b925760405162461bcd60e51b815260206004820152604d60248201527f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60448201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60648201526c3ab232b21030b2323932b9b99760991b608482015260a401610766565b6001600160a01b03811660009081526002602052604090205415610bec576001600160a01b038116600090815260026020526040902054610bd290611d1e565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b6291015b60405180910390a150565b6014546001600160a01b0316336001600160a01b031614610cf757600080fd5b6000610d0230611134565b9050610d0d81611da2565b50565b6000546001600160a01b03163314610d3a5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610d905760405162461bcd60e51b8152600401610766906127da565b601754600160b01b900460ff1615610dfe5760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610766565b60c8835110610e6e5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610766565b60005b8351811015610ef2576000848281518110610e9c57634e487b7160e01b600052603260045260246000fd5b602002602001015190506000848381518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101519050610edd3383836117a3565b50508080610eea90612942565b915050610e71565b50610efb611f47565b737a250d5630b4cf539739df2c5dacb4c659f2488d610f1b816001610d10565b601680546001600160a01b0319166001600160a01b038316908117909155610f4e903090683635c9adc5dea0000061167f565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8757600080fd5b505afa158015610f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf9190612557565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561100757600080fd5b505afa15801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f9190612557565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561108757600080fd5b505af115801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf9190612557565b601780546001600160a01b0319166001600160a01b03929092169182179055610a5a906001610d10565b6000546001600160a01b031633146111135760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b6001600160a01b0381166000908152600260205260408120546109f590611d1e565b6000546001600160a01b031633146111805760405162461bcd60e51b8152600401610766906127da565b6014546001600160a01b03166111d85760405162461bcd60e51b815260206004820152601760248201527f5f6e6663416464726573732063616e6e6f7420626520300000000000000000006044820152606401610766565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556014805486168086529483902080549092166001179091555490519316835290917fff253f8161a8bf4e705ff57ab65f6d0e47d025c620869a6316edc40a74b5c7199101610ccc565b6000546001600160a01b031633146112725760405162461bcd60e51b8152600401610766906127da565b601a55565b6000546001600160a01b031633146112a15760405162461bcd60e51b8152600401610766906127da565b600c849055600d829055600e839055600f81905560196112c183866128d4565b111561130f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610766565b6019600f54600e5461132191906128d4565b111561136f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610766565b50505050565b60006109f13384846117a3565b6000546001600160a01b031633146113ac5760405162461bcd60e51b8152600401610766906127da565b6015546001600160a01b03166114045760405162461bcd60e51b815260206004820152601860248201527f5f6d6b7467416464726573732063616e6e6f74206265203000000000000000006044820152606401610766565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556015805486168086529483902080549092166001179091555490519316835290917f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b9101610ccc565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610766906127da565b601955565b6000546001600160a01b031633146114cd5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610ccc565b6000546001600160a01b031633146115485760405162461bcd60e51b8152600401610766906127da565b601855565b6000546001600160a01b031633146115775760405162461bcd60e51b8152600401610766906127da565b6001600160a01b0381166115dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610766565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061166c57506015546001600160a01b0316336001600160a01b0316145b61167557600080fd5b47610d0d81611f86565b6001600160a01b0383166116e15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610766565b6001600160a01b0382166117425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610766565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610766565b6001600160a01b0382166118695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610766565b600081116118cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610766565b6000546001600160a01b038481169116148015906118f757506000546001600160a01b03838116911614155b15611b4c57601754600160b01b900460ff16611abf576017546001600160a01b0383811691161480159061193957506016546001600160a01b03838116911614155b801561195e57506001600160a01b03821660009081526005602052604090205460ff16155b15611abf576019548161197084611134565b61197a91906128d4565b106119d35760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610766565b601854811115611a255760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610766565b6001600160a01b0383166000908152600b602052604090205460ff16158015611a6757506001600160a01b0382166000908152600b602052604090205460ff16155b611abf5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610766565b6000611aca30611134565b601a54601854919250821015908210611ae35760185491505b808015611afa5750601754600160a01b900460ff16155b8015611b1457506017546001600160a01b03868116911614155b8015611b295750601754600160a81b900460ff165b15611b4957611b3782611da2565b478015611b4757611b4747611f86565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b8e57506001600160a01b03831660009081526005602052604090205460ff165b80611bc057506017546001600160a01b03858116911614801590611bc057506017546001600160a01b03848116911614155b15611bcd57506000611cd8565b6017546001600160a01b038581169116148015611bf857506016546001600160a01b03848116911614155b15611c0a57600c54601055600d546011555b6001600160a01b03841660009081526005602052604090205460ff16611c9b57601854821115611c9b5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610766565b6017546001600160a01b038481169116148015611cc657506016546001600160a01b03858116911614155b15611cd857600e54601055600f546011555b61136f8484848461200b565b60008184841115611d085760405162461bcd60e51b81526004016107669190612787565b506000611d15848661292b565b95945050505050565b6000600954821115611d855760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610766565b6000611d8f612039565b9050611d9b838261205c565b9392505050565b6017805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611df857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e4c57600080fd5b505afa158015611e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e849190612557565b81600181518110611ea557634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611ecb913091168461167f565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f0490859060009086903090429060040161280f565b600060405180830381600087803b158015611f1e57600080fd5b505af1158015611f32573d6000803e3d6000fd5b50506017805460ff60a01b1916905550505050565b6000546001600160a01b03163314611f715760405162461bcd60e51b8152600401610766906127da565b6017805460ff60b01b1916600160b01b179055565b6014546001600160a01b03166108fc611fa083600261205c565b6040518115909202916000818181858888f19350505050158015611fc8573d6000803e3d6000fd5b506015546001600160a01b03166108fc611fe383600261205c565b6040518115909202916000818181858888f193505050501580156107e5573d6000803e3d6000fd5b806120185761201861209e565b6120238484846120cc565b8061136f5761136f601254601055601354601155565b60008060006120466121c3565b9092509050612055828261205c565b9250505090565b6000611d9b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612205565b6010541580156120ae5750601154155b156120b557565b601080546012556011805460135560009182905555565b6000806000806000806120de87612233565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506121109087612290565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461213f90866122d2565b6001600160a01b03891660009081526002602052604090205561216181612331565b61216b848361237b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121b091815260200190565b60405180910390a3505050505050505050565b6009546000908190683635c9adc5dea000006121df828261205c565b8210156121fc57505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836122265760405162461bcd60e51b81526004016107669190612787565b506000611d1584866128ec565b60008060008060008060008060006122508a60105460115461239f565b9250925092506000612260612039565b905060008060006122738e8787876123f4565b919e509c509a509598509396509194505050505091939550919395565b6000611d9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ce4565b6000806122df83856128d4565b905083811015611d9b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610766565b600061233b612039565b905060006123498383612444565b3060009081526002602052604090205490915061236690826122d2565b30600090815260026020526040902055505050565b6009546123889083612290565b600955600a5461239890826122d2565b600a555050565b60008080806123b960646123b38989612444565b9061205c565b905060006123cc60646123b38a89612444565b905060006123e4826123de8b86612290565b90612290565b9992985090965090945050505050565b60008080806124038886612444565b905060006124118887612444565b9050600061241f8888612444565b90506000612431826123de8686612290565b939b939a50919850919650505050505050565b600082612453575060006109f5565b600061245f838561290c565b90508261246c85836128ec565b14611d9b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610766565b600082601f8301126124d3578081fd5b813560206124e86124e3836128b0565b61287f565b80838252828201915082860187848660051b8901011115612507578586fd5b855b8581101561252e57813561251c81612989565b84529284019290840190600101612509565b5090979650505050505050565b60006020828403121561254c578081fd5b8135611d9b81612989565b600060208284031215612568578081fd5b8151611d9b81612989565b60008060408385031215612585578081fd5b823561259081612989565b915060208301356125a081612989565b809150509250929050565b6000806000606084860312156125bf578081fd5b83356125ca81612989565b925060208401356125da81612989565b929592945050506040919091013590565b600080604083850312156125fd578182fd5b823561260881612989565b9150602083013580151581146125a0578182fd5b6000806040838503121561262e578182fd5b823561263981612989565b946020939093013593505050565b600060208284031215612658578081fd5b813567ffffffffffffffff81111561266e578182fd5b61267a848285016124c3565b949350505050565b60008060408385031215612694578182fd5b823567ffffffffffffffff808211156126ab578384fd5b6126b7868387016124c3565b93506020915081850135818111156126cd578384fd5b85019050601f810186136126df578283fd5b80356126ed6124e3826128b0565b80828252848201915084840189868560051b870101111561270c578687fd5b8694505b8385101561272e578035835260019490940193918501918501612710565b5080955050505050509250929050565b60006020828403121561274f578081fd5b5035919050565b6000806000806080858703121561276b578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127b357858101830151858201604001528201612797565b818111156127c45783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561285e5784516001600160a01b031683529383019391830191600101612839565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128a8576128a8612973565b604052919050565b600067ffffffffffffffff8211156128ca576128ca612973565b5060051b60200190565b600082198211156128e7576128e761295d565b500190565b60008261290757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129265761292661295d565b500290565b60008282101561293d5761293d61295d565b500390565b60006000198214156129565761295661295d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d0d57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220649e6f6a3fe2d2618eb85b7b6237edf891e0fad1148dea76075a52379ae3d89d64736f6c63430008040033

Deployed Bytecode

0x60806040526004361061021c5760003560e01c806370a0823111610123578063bbc0c742116100ab578063ea1644d51161006f578063ea1644d5146106a7578063ea2f0b37146106c7578063ec28438a146106e7578063f2fde38b14610707578063f42938901461072757600080fd5b8063bbc0c742146105d0578063bfd79284146105f1578063cd7c1b7214610621578063dd62ed3e14610641578063e755d0cf1461068757600080fd5b80638f9a55c0116100f25780638f9a55c01461052e57806395d89b411461054457806398a5c31514610570578063a2a957bb14610590578063a9059cbb146105b057600080fd5b806370a08231146104ba57806378b4aa45146104da5780637d1db4a5146104fa5780638da5cb5b1461051057600080fd5b80632fd689e3116101a657806351bc3c851161017557806351bc3c8514610415578063563912bd1461042a578063595cc84f1461045a578063672434821461047a5780636b9990531461049a57600080fd5b80632fd689e3146103a3578063313ce567146103b9578063437823ec146103d557806349bd5a5e146103f557600080fd5b8063095ea7b3116101ed578063095ea7b3146102ed5780631694505e1461031d57806318160ddd1461033d57806323b872dd1461036357806327334a081461038357600080fd5b806286803414610228578062b8cf2a1461026557806305f82a451461028757806306fdde03146102a757600080fd5b3661022357005b600080fd5b34801561023457600080fd5b50601554610248906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027157600080fd5b50610285610280366004612647565b61073c565b005b34801561029357600080fd5b506102856102a236600461253b565b6107e9565b3480156102b357600080fd5b50604080518082019091526014815273139bdb88119d5b99da589b194810d85c1a5d185b60621b60208201525b60405161025c9190612787565b3480156102f957600080fd5b5061030d61030836600461261c565b6109e4565b604051901515815260200161025c565b34801561032957600080fd5b50601654610248906001600160a01b031681565b34801561034957600080fd5b50683635c9adc5dea000005b60405190815260200161025c565b34801561036f57600080fd5b5061030d61037e3660046125ab565b6109fb565b34801561038f57600080fd5b5061028561039e36600461253b565b610a64565b3480156103af57600080fd5b50610355601a5481565b3480156103c557600080fd5b506040516009815260200161025c565b3480156103e157600080fd5b506102856103f036600461253b565b610c52565b34801561040157600080fd5b50601754610248906001600160a01b031681565b34801561042157600080fd5b50610285610cd7565b34801561043657600080fd5b5061030d61044536600461253b565b60066020526000908152604090205460ff1681565b34801561046657600080fd5b506102856104753660046125eb565b610d10565b34801561048657600080fd5b5061030d610495366004612682565b610d65565b3480156104a657600080fd5b506102856104b536600461253b565b6110e9565b3480156104c657600080fd5b506103556104d536600461253b565b611134565b3480156104e657600080fd5b506102856104f536600461253b565b611156565b34801561050657600080fd5b5061035560185481565b34801561051c57600080fd5b506000546001600160a01b0316610248565b34801561053a57600080fd5b5061035560195481565b34801561055057600080fd5b506040805180820190915260038152624e464360e81b60208201526102e0565b34801561057c57600080fd5b5061028561058b36600461273e565b611248565b34801561059c57600080fd5b506102856105ab366004612756565b611277565b3480156105bc57600080fd5b5061030d6105cb36600461261c565b611375565b3480156105dc57600080fd5b5060175461030d90600160b01b900460ff1681565b3480156105fd57600080fd5b5061030d61060c36600461253b565b600b6020526000908152604090205460ff1681565b34801561062d57600080fd5b50601454610248906001600160a01b031681565b34801561064d57600080fd5b5061035561065c366004612573565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069357600080fd5b506102856106a236600461253b565b611382565b3480156106b357600080fd5b506102856106c236600461273e565b611474565b3480156106d357600080fd5b506102856106e236600461253b565b6114a3565b3480156106f357600080fd5b5061028561070236600461273e565b61151e565b34801561071357600080fd5b5061028561072236600461253b565b61154d565b34801561073357600080fd5b50610285611637565b6000546001600160a01b0316331461076f5760405162461bcd60e51b8152600401610766906127da565b60405180910390fd5b60005b81518110156107e5576001600b60008484815181106107a157634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107dd81612942565b915050610772565b5050565b6000546001600160a01b031633146108135760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03811660009081526007602052604090205460ff1661088b5760405162461bcd60e51b815260206004820152602760248201527f4163636f756e74206973206e6f74206578636c756465642066726f6d207265666044820152663632b1ba34b7b760c91b6064820152608401610766565b60005b6008548110156107e557816001600160a01b0316600882815481106108c357634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156109d257600880546108ee9060019061292b565b8154811061090c57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b03909216918390811061094657634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600790925220805460ff1916905560088054806109ac57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806109dc81612942565b91505061088e565b60006109f133848461167f565b5060015b92915050565b6000610a088484846117a3565b610a5a8433610a558560405180606001604052806028815260200161299f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611ce4565b61167f565b5060019392505050565b6000546001600160a01b03163314610a8e5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03811660009081526007602052604090205460ff1615610af75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610766565b600854603290610b089060016128d4565b1115610b925760405162461bcd60e51b815260206004820152604d60248201527f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60448201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60648201526c3ab232b21030b2323932b9b99760991b608482015260a401610766565b6001600160a01b03811660009081526002602052604090205415610bec576001600160a01b038116600090815260026020526040902054610bd290611d1e565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b6291015b60405180910390a150565b6014546001600160a01b0316336001600160a01b031614610cf757600080fd5b6000610d0230611134565b9050610d0d81611da2565b50565b6000546001600160a01b03163314610d3a5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610d905760405162461bcd60e51b8152600401610766906127da565b601754600160b01b900460ff1615610dfe5760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610766565b60c8835110610e6e5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610766565b60005b8351811015610ef2576000848281518110610e9c57634e487b7160e01b600052603260045260246000fd5b602002602001015190506000848381518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101519050610edd3383836117a3565b50508080610eea90612942565b915050610e71565b50610efb611f47565b737a250d5630b4cf539739df2c5dacb4c659f2488d610f1b816001610d10565b601680546001600160a01b0319166001600160a01b038316908117909155610f4e903090683635c9adc5dea0000061167f565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8757600080fd5b505afa158015610f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf9190612557565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561100757600080fd5b505afa15801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f9190612557565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561108757600080fd5b505af115801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf9190612557565b601780546001600160a01b0319166001600160a01b03929092169182179055610a5a906001610d10565b6000546001600160a01b031633146111135760405162461bcd60e51b8152600401610766906127da565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b6001600160a01b0381166000908152600260205260408120546109f590611d1e565b6000546001600160a01b031633146111805760405162461bcd60e51b8152600401610766906127da565b6014546001600160a01b03166111d85760405162461bcd60e51b815260206004820152601760248201527f5f6e6663416464726573732063616e6e6f7420626520300000000000000000006044820152606401610766565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556014805486168086529483902080549092166001179091555490519316835290917fff253f8161a8bf4e705ff57ab65f6d0e47d025c620869a6316edc40a74b5c7199101610ccc565b6000546001600160a01b031633146112725760405162461bcd60e51b8152600401610766906127da565b601a55565b6000546001600160a01b031633146112a15760405162461bcd60e51b8152600401610766906127da565b600c849055600d829055600e839055600f81905560196112c183866128d4565b111561130f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610766565b6019600f54600e5461132191906128d4565b111561136f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610766565b50505050565b60006109f13384846117a3565b6000546001600160a01b031633146113ac5760405162461bcd60e51b8152600401610766906127da565b6015546001600160a01b03166114045760405162461bcd60e51b815260206004820152601860248201527f5f6d6b7467416464726573732063616e6e6f74206265203000000000000000006044820152606401610766565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556015805486168086529483902080549092166001179091555490519316835290917f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b9101610ccc565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610766906127da565b601955565b6000546001600160a01b031633146114cd5760405162461bcd60e51b8152600401610766906127da565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610ccc565b6000546001600160a01b031633146115485760405162461bcd60e51b8152600401610766906127da565b601855565b6000546001600160a01b031633146115775760405162461bcd60e51b8152600401610766906127da565b6001600160a01b0381166115dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610766565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061166c57506015546001600160a01b0316336001600160a01b0316145b61167557600080fd5b47610d0d81611f86565b6001600160a01b0383166116e15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610766565b6001600160a01b0382166117425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610766565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610766565b6001600160a01b0382166118695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610766565b600081116118cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610766565b6000546001600160a01b038481169116148015906118f757506000546001600160a01b03838116911614155b15611b4c57601754600160b01b900460ff16611abf576017546001600160a01b0383811691161480159061193957506016546001600160a01b03838116911614155b801561195e57506001600160a01b03821660009081526005602052604090205460ff16155b15611abf576019548161197084611134565b61197a91906128d4565b106119d35760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610766565b601854811115611a255760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610766565b6001600160a01b0383166000908152600b602052604090205460ff16158015611a6757506001600160a01b0382166000908152600b602052604090205460ff16155b611abf5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610766565b6000611aca30611134565b601a54601854919250821015908210611ae35760185491505b808015611afa5750601754600160a01b900460ff16155b8015611b1457506017546001600160a01b03868116911614155b8015611b295750601754600160a81b900460ff165b15611b4957611b3782611da2565b478015611b4757611b4747611f86565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b8e57506001600160a01b03831660009081526005602052604090205460ff165b80611bc057506017546001600160a01b03858116911614801590611bc057506017546001600160a01b03848116911614155b15611bcd57506000611cd8565b6017546001600160a01b038581169116148015611bf857506016546001600160a01b03848116911614155b15611c0a57600c54601055600d546011555b6001600160a01b03841660009081526005602052604090205460ff16611c9b57601854821115611c9b5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610766565b6017546001600160a01b038481169116148015611cc657506016546001600160a01b03858116911614155b15611cd857600e54601055600f546011555b61136f8484848461200b565b60008184841115611d085760405162461bcd60e51b81526004016107669190612787565b506000611d15848661292b565b95945050505050565b6000600954821115611d855760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610766565b6000611d8f612039565b9050611d9b838261205c565b9392505050565b6017805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611df857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e4c57600080fd5b505afa158015611e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e849190612557565b81600181518110611ea557634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611ecb913091168461167f565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f0490859060009086903090429060040161280f565b600060405180830381600087803b158015611f1e57600080fd5b505af1158015611f32573d6000803e3d6000fd5b50506017805460ff60a01b1916905550505050565b6000546001600160a01b03163314611f715760405162461bcd60e51b8152600401610766906127da565b6017805460ff60b01b1916600160b01b179055565b6014546001600160a01b03166108fc611fa083600261205c565b6040518115909202916000818181858888f19350505050158015611fc8573d6000803e3d6000fd5b506015546001600160a01b03166108fc611fe383600261205c565b6040518115909202916000818181858888f193505050501580156107e5573d6000803e3d6000fd5b806120185761201861209e565b6120238484846120cc565b8061136f5761136f601254601055601354601155565b60008060006120466121c3565b9092509050612055828261205c565b9250505090565b6000611d9b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612205565b6010541580156120ae5750601154155b156120b557565b601080546012556011805460135560009182905555565b6000806000806000806120de87612233565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506121109087612290565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461213f90866122d2565b6001600160a01b03891660009081526002602052604090205561216181612331565b61216b848361237b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121b091815260200190565b60405180910390a3505050505050505050565b6009546000908190683635c9adc5dea000006121df828261205c565b8210156121fc57505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836122265760405162461bcd60e51b81526004016107669190612787565b506000611d1584866128ec565b60008060008060008060008060006122508a60105460115461239f565b9250925092506000612260612039565b905060008060006122738e8787876123f4565b919e509c509a509598509396509194505050505091939550919395565b6000611d9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ce4565b6000806122df83856128d4565b905083811015611d9b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610766565b600061233b612039565b905060006123498383612444565b3060009081526002602052604090205490915061236690826122d2565b30600090815260026020526040902055505050565b6009546123889083612290565b600955600a5461239890826122d2565b600a555050565b60008080806123b960646123b38989612444565b9061205c565b905060006123cc60646123b38a89612444565b905060006123e4826123de8b86612290565b90612290565b9992985090965090945050505050565b60008080806124038886612444565b905060006124118887612444565b9050600061241f8888612444565b90506000612431826123de8686612290565b939b939a50919850919650505050505050565b600082612453575060006109f5565b600061245f838561290c565b90508261246c85836128ec565b14611d9b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610766565b600082601f8301126124d3578081fd5b813560206124e86124e3836128b0565b61287f565b80838252828201915082860187848660051b8901011115612507578586fd5b855b8581101561252e57813561251c81612989565b84529284019290840190600101612509565b5090979650505050505050565b60006020828403121561254c578081fd5b8135611d9b81612989565b600060208284031215612568578081fd5b8151611d9b81612989565b60008060408385031215612585578081fd5b823561259081612989565b915060208301356125a081612989565b809150509250929050565b6000806000606084860312156125bf578081fd5b83356125ca81612989565b925060208401356125da81612989565b929592945050506040919091013590565b600080604083850312156125fd578182fd5b823561260881612989565b9150602083013580151581146125a0578182fd5b6000806040838503121561262e578182fd5b823561263981612989565b946020939093013593505050565b600060208284031215612658578081fd5b813567ffffffffffffffff81111561266e578182fd5b61267a848285016124c3565b949350505050565b60008060408385031215612694578182fd5b823567ffffffffffffffff808211156126ab578384fd5b6126b7868387016124c3565b93506020915081850135818111156126cd578384fd5b85019050601f810186136126df578283fd5b80356126ed6124e3826128b0565b80828252848201915084840189868560051b870101111561270c578687fd5b8694505b8385101561272e578035835260019490940193918501918501612710565b5080955050505050509250929050565b60006020828403121561274f578081fd5b5035919050565b6000806000806080858703121561276b578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127b357858101830151858201604001528201612797565b818111156127c45783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561285e5784516001600160a01b031683529383019391830191600101612839565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128a8576128a8612973565b604052919050565b600067ffffffffffffffff8211156128ca576128ca612973565b5060051b60200190565b600082198211156128e7576128e761295d565b500190565b60008261290757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129265761292661295d565b500290565b60008282101561293d5761293d61295d565b500390565b60006000198214156129565761295661295d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d0d57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220649e6f6a3fe2d2618eb85b7b6237edf891e0fad1148dea76075a52379ae3d89d64736f6c63430008040033

Deployed Bytecode Sourcemap

4732:17904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6210:89;;;;;;;;;;-1:-1:-1;6210:89:0;;;;-1:-1:-1;;;;;6210:89:0;;;;;;-1:-1:-1;;;;;5301:32:1;;;5283:51;;5271:2;5256:18;6210:89:0;;;;;;;;15796:169;;;;;;;;;;-1:-1:-1;15796:169:0;;;;;:::i;:::-;;:::i;:::-;;9624:603;;;;;;;;;;-1:-1:-1;9624:603:0;;;;;:::i;:::-;;:::i;8047:83::-;;;;;;;;;;-1:-1:-1;8117:5:0;;;;;;;;;;;;-1:-1:-1;;;8117:5:0;;;;8047:83;;;;;;;:::i;10427:193::-;;;;;;;;;;-1:-1:-1;10427:193:0;;;;;:::i;:::-;;:::i;:::-;;;6259:14:1;;6252:22;6234:41;;6222:2;6207:18;10427:193:0;6189:92:1;6331:41:0;;;;;;;;;;-1:-1:-1;6331:41:0;;;;-1:-1:-1;;;;;6331:41:0;;;8324:95;;;;;;;;;;-1:-1:-1;5481:16:0;8324:95;;;15975:25:1;;;15963:2;15948:18;8324:95:0;15930:76:1;10628:446:0;;;;;;;;;;-1:-1:-1;10628:446:0;;;;;:::i;:::-;;:::i;9097:519::-;;;;;;;;;;-1:-1:-1;9097:519:0;;;;;:::i;:::-;;:::i;6701:53::-;;;;;;;;;;;;;;;;8233:83;;;;;;;;;;-1:-1:-1;8233:83:0;;4978:1;17141:36:1;;17129:2;17114:18;8233:83:0;17096:87:1;8780:152:0;;;;;;;;;;-1:-1:-1;8780:152:0;;;;;:::i;:::-;;:::i;6379:28::-;;;;;;;;;;-1:-1:-1;6379:28:0;;;;-1:-1:-1;;;;;6379:28:0;;;15363:191;;;;;;;;;;;;;:::i;5220:55::-;;;;;;;;;;-1:-1:-1;5220:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21612:132;;;;;;;;;;-1:-1:-1;21612:132:0;;;;;:::i;:::-;;:::i;20202:1065::-;;;;;;;;;;-1:-1:-1;20202:1065:0;;;;;:::i;:::-;;:::i;15973:92::-;;;;;;;;;;-1:-1:-1;15973:92:0;;;;;:::i;:::-;;:::i;8427:138::-;;;;;;;;;;-1:-1:-1;8427:138:0;;;;;:::i;:::-;;:::i;21928:330::-;;;;;;;;;;-1:-1:-1;21928:330:0;;;;;:::i;:::-;;:::i;6538:46::-;;;;;;;;;;;;;;;;2153:79;;;;;;;;;;-1:-1:-1;2191:7:0;2218:6;-1:-1:-1;;;;;2218:6:0;2153:79;;6621:48;;;;;;;;;;;;;;;;8138:87;;;;;;;;;;-1:-1:-1;8210:7:0;;;;;;;;;;;;-1:-1:-1;;;8210:7:0;;;;8138:87;;21319:139;;;;;;;;;;-1:-1:-1;21319:139:0;;;;;:::i;:::-;;:::i;19512:531::-;;;;;;;;;;-1:-1:-1;19512:531:0;;;;;:::i;:::-;;:::i;8573:199::-;;;;;;;;;;-1:-1:-1;8573:199:0;;;;;:::i;:::-;;:::i;6492:33::-;;;;;;;;;;-1:-1:-1;6492:33:0;;;;-1:-1:-1;;;6492:33:0;;;;;;5619:36;;;;;;;;;;-1:-1:-1;5619:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6095:88;;;;;;;;;;-1:-1:-1;6095:88:0;;;;-1:-1:-1;;;;;6095:88:0;;;10235:184;;;;;;;;;;-1:-1:-1;10235:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;10384:18:0;;;10352:7;10384:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10235:184;22293:340;;;;;;;;;;-1:-1:-1;22293:340:0;;;;;:::i;:::-;;:::i;21778:115::-;;;;;;;;;;-1:-1:-1;21778:115:0;;;;;:::i;:::-;;:::i;8940:149::-;;;;;;;;;;-1:-1:-1;8940:149:0;;;;;:::i;:::-;;:::i;21497:107::-;;;;;;;;;;-1:-1:-1;21497:107:0;;;;;:::i;:::-;;:::i;2371:244::-;;;;;;;;;;-1:-1:-1;2371:244:0;;;;;:::i;:::-;;:::i;15562:222::-;;;;;;;;;;;;;:::i;15796:169::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;;;;;;;;;15872:9:::1;15867:91;15891:5;:12;15887:1;:16;15867:91;;;15942:4;15925;:14;15930:5;15936:1;15930:8;;;;;;-1:-1:-1::0;;;15930:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15925:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15925:14:0;:21;;-1:-1:-1;;15925:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15905:3;::::1;::::0;::::1;:::i;:::-;;;;15867:91;;;;15796:169:::0;:::o;9624:603::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9706:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;::::1;;9698:86;;;::::0;-1:-1:-1;;;9698:86:0;;14779:2:1;9698:86:0::1;::::0;::::1;14761:21:1::0;14818:2;14798:18;;;14791:30;14857:34;14837:18;;;14830:62;-1:-1:-1;;;14908:18:1;;;14901:37;14955:19;;9698:86:0::1;14751:229:1::0;9698:86:0::1;9800:9;9795:425;9819:23;:30:::0;9815:34;::::1;9795:425;;;9905:7;-1:-1:-1::0;;;;;9875:37:0::1;:23;9899:1;9875:26;;;;;;-1:-1:-1::0;;;9875:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9875:26:0::1;:37;9871:338;;;9962:23;9986:30:::0;;:34:::1;::::0;10019:1:::1;::::0;9986:34:::1;:::i;:::-;9962:59;;;;;;-1:-1:-1::0;;;9962:59:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;9933:23:::1;:26:::0;;-1:-1:-1;;;;;9962:59:0;;::::1;::::0;9957:1;;9933:26;::::1;;;-1:-1:-1::0;;;9933:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:88:::0;;-1:-1:-1;;;;;;9933:88:0::1;-1:-1:-1::0;;;;;9933:88:0;;::::1;;::::0;;10040:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10079:25:::1;:34:::0;;;;:42;;-1:-1:-1;;10079:42:0::1;::::0;;10140:23:::1;:29:::0;;;::::1;;-1:-1:-1::0;;;10140:29:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10140:29:0;;;;;-1:-1:-1;;;;;;10140:29:0::1;::::0;;;;;15867:91:::1;15796:169:::0;:::o;9871:338::-:1;9851:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9795:425;;10427:193:::0;10529:4;10551:39;992:10;10574:7;10583:6;10551:8;:39::i;:::-;-1:-1:-1;10608:4:0;10427:193;;;;;:::o;10628:446::-;10760:4;10777:36;10787:6;10795:9;10806:6;10777:9;:36::i;:::-;10824:220;10847:6;992:10;10895:138;10951:6;10895:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10895:19:0;;;;;;:11;:19;;;;;;;;992:10;10895:33;;;;;;;;;;:37;:138::i;:::-;10824:8;:220::i;:::-;-1:-1:-1;11062:4:0;10628:446;;;;;:::o;9097:519::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9182:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;::::1;;9181:35;9173:75;;;::::0;-1:-1:-1;;;9173:75:0;;10848:2:1;9173:75:0::1;::::0;::::1;10830:21:1::0;10887:2;10867:18;;;10860:30;10926:29;10906:18;;;10899:57;10973:18;;9173:75:0::1;10820:177:1::0;9173:75:0::1;9267:23;:30:::0;9305:2:::1;::::0;9267:34:::1;::::0;9300:1:::1;9267:34;:::i;:::-;:40;;9259:130;;;::::0;-1:-1:-1;;;9259:130:0;;15187:2:1;9259:130:0::1;::::0;::::1;15169:21:1::0;15226:2;15206:18;;;15199:30;15265:34;15245:18;;;15238:62;15336:34;15316:18;;;15309:62;-1:-1:-1;;;15387:19:1;;;15380:44;15441:19;;9259:130:0::1;15159:307:1::0;9259:130:0::1;-1:-1:-1::0;;;;;9404:16:0;::::1;9423:1;9404:16:::0;;;:7:::1;:16;::::0;;;;;:20;9400:109:::1;;-1:-1:-1::0;;;;;9480:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9460:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9441:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9400:109:::1;-1:-1:-1::0;;;;;9519:34:0::1;;::::0;;;:25:::1;:34;::::0;;;;:41;;-1:-1:-1;;9519:41:0::1;9556:4;9519:41:::0;;::::1;::::0;;;9571:23:::1;:37:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9571:37:0::1;::::0;;::::1;::::0;;9097:519::o;8780:152::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8851:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:34;;-1:-1:-1;;8851:34:0::1;8881:4;8851:34;::::0;;8901:23;;5283:51:1;;;8901:23:0::1;::::0;5256:18:1;8901:23:0::1;;;;;;;;8780:152:::0;:::o;15363:191::-;15429:11;;-1:-1:-1;;;;;15429:11:0;992:10;-1:-1:-1;;;;;15413:27:0;;15405:36;;;;;;15452:23;15478:24;15496:4;15478:9;:24::i;:::-;15452:50;;15513:33;15530:15;15513:16;:33::i;:::-;15363:191;:::o;21612:132::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21699:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:37;;-1:-1:-1;;21699:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21612:132::o;20202:1065::-;20306:4;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;20331:13:::1;::::0;-1:-1:-1;;;20331:13:0;::::1;;;20330:14;20322:70;;;::::0;-1:-1:-1;;;20322:70:0;;14367:2:1;20322:70:0::1;::::0;::::1;14349:21:1::0;14406:2;14386:18;;;14379:30;14445:34;14425:18;;;14418:62;-1:-1:-1;;;14496:18:1;;;14489:41;14547:19;;20322:70:0::1;14339:233:1::0;20322:70:0::1;20435:3;20411:14;:21;:27;20403:94;;;::::0;-1:-1:-1;;;20403:94:0;;7734:2:1;20403:94:0::1;::::0;::::1;7716:21:1::0;7773:2;7753:18;;;7746:30;7812:34;7792:18;;;7785:62;-1:-1:-1;;;7863:18:1;;;7856:52;7925:19;;20403:94:0::1;7706:244:1::0;20403:94:0::1;20534:9;20530:205;20553:14;:21;20549:1;:25;20530:205;;;20595:14;20612;20627:1;20612:17;;;;;;-1:-1:-1::0;;;20612:17:0::1;;;;;;;;;;;;;;;20595:34;;20644:14;20661:7;20669:1;20661:10;;;;;;-1:-1:-1::0;;;20661:10:0::1;;;;;;;;;;;;;;;20644:27;;20686:37;20696:10;20708:6;20716;20686:9;:37::i;:::-;20530:205;;20576:3;;;;;:::i;:::-;;;;20530:205;;;;20745:15;:13;:15::i;:::-;20828:42;20882:55;20828:42:::0;20932:4:::1;20882:22;:55::i;:::-;20948:15;:34:::0;;-1:-1:-1;;;;;;20948:34:0::1;-1:-1:-1::0;;;;;20948:34:0;::::1;::::0;;::::1;::::0;;;20993:58:::1;::::0;21010:4:::1;::::0;5481:16:::1;20993:8;:58::i;:::-;21096:16;-1:-1:-1::0;;;;;21096:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21078:56:0::1;;21143:4;21150:16;-1:-1:-1::0;;;;;21150:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21078:96;::::0;-1:-1:-1;;;;;;21078:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6015:15:1;;;21078:96:0::1;::::0;::::1;5997:34:1::0;6067:15;;6047:18;;;6040:43;5932:18;;21078:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21062:13;:112:::0;;-1:-1:-1;;;;;;21062:112:0::1;-1:-1:-1::0;;;;;21062:112:0;;;::::1;::::0;;::::1;::::0;;21185:52:::1;::::0;-1:-1:-1;21185:22:0::1;:52::i;15973:92::-:0;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16037:12:0::1;16052:5;16037:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16037:20:0::1;::::0;;15973:92::o;8427:138::-;-1:-1:-1;;;;;8540:16:0;;8493:7;8540:16;;;:7;:16;;;;;;8520:37;;:19;:37::i;21928:330::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;22010:11:::1;::::0;-1:-1:-1;;;;;22010:11:0::1;22002:61;;;::::0;-1:-1:-1;;;22002:61:0;;13610:2:1;22002:61:0::1;::::0;::::1;13592:21:1::0;13649:2;13629:18;;;13622:30;13688:25;13668:18;;;13661:53;13731:18;;22002:61:0::1;13582:173:1::0;22002:61:0::1;-1:-1:-1::0;;;;;22074:30:0;;::::1;22107:5;22074:30:::0;;;:18:::1;:30;::::0;;;;;;;:38;;-1:-1:-1;;22074:38:0;;::::1;::::0;;;22144:11:::1;::::0;;;::::1;22167:30:::0;;;;;;;:37;;;;::::1;-1:-1:-1::0;22167:37:0::1;::::0;;;22238:11;22220:30;;22238:11;::::1;5283:51:1::0;;22144:11:0;;22220:30:::1;::::0;5256:18:1;22220:30:0::1;5238:102:1::0;21319:139:0;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;21410:19:::1;:40:::0;21319:139::o;19512:531::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;19656:19:::1;:40:::0;;;19707:12:::1;:26:::0;;;19754:20:::1;:42:::0;;;19807:13:::1;:28:::0;;;19902:2:::1;19864:34;19722:11:::0;19678:18;19864:34:::1;:::i;:::-;:40;;19856:82;;;::::0;-1:-1:-1;;;19856:82:0;;15673:2:1;19856:82:0::1;::::0;::::1;15655:21:1::0;15712:2;15692:18;;;15685:30;15751:31;15731:18;;;15724:59;15800:18;;19856:82:0::1;15645:179:1::0;19856:82:0::1;19998:2;19981:13;;19958:20;;:36;;;;:::i;:::-;:42;;19950:84;;;::::0;-1:-1:-1;;;19950:84:0;;15673:2:1;19950:84:0::1;::::0;::::1;15655:21:1::0;15712:2;15692:18;;;15685:30;15751:31;15731:18;;;15724:59;15800:18;;19950:84:0::1;15645:179:1::0;19950:84:0::1;19512:531:::0;;;;:::o;8573:199::-;8678:4;8700:42;992:10;8724:9;8735:6;8700:9;:42::i;22293:340::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;22377:12:::1;::::0;-1:-1:-1;;;;;22377:12:0::1;22369:63;;;::::0;-1:-1:-1;;;22369:63:0;;8157:2:1;22369:63:0::1;::::0;::::1;8139:21:1::0;8196:2;8176:18;;;8169:30;8235:26;8215:18;;;8208:54;8279:18;;22369:63:0::1;8129:174:1::0;22369:63:0::1;-1:-1:-1::0;;;;;22443:31:0;;::::1;22477:5;22443:31:::0;;;:18:::1;:31;::::0;;;;;;;:39;;-1:-1:-1;;22443:39:0;;::::1;::::0;;;22515:12:::1;::::0;;;::::1;22539:31:::0;;;;;;;:38;;;;::::1;-1:-1:-1::0;22539:38:0::1;::::0;;;22612:12;22593:32;;22612:12;::::1;5283:51:1::0;;22515:12:0;;22593:32:::1;::::0;5256:18:1;22593:32:0::1;5238:102:1::0;21778:115:0;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;21855:14:::1;:30:::0;21778:115::o;8940:149::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9009:27:0;::::1;9039:5;9009:27:::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;9009:35:0::1;::::0;;9060:21;;5283:51:1;;;9060:21:0::1;::::0;5256:18:1;9060:21:0::1;5238:102:1::0;21497:107:0;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;21570:12:::1;:26:::0;21497:107::o;2371:244::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2460:22:0;::::1;2452:73;;;::::0;-1:-1:-1;;;2452:73:0;;9278:2:1;2452:73:0::1;::::0;::::1;9260:21:1::0;9317:2;9297:18;;;9290:30;9356:34;9336:18;;;9329:62;-1:-1:-1;;;9407:18:1;;;9400:36;9453:19;;2452:73:0::1;9250:228:1::0;2452:73:0::1;2562:6;::::0;;2541:38:::1;::::0;-1:-1:-1;;;;;2541:38:0;;::::1;::::0;2562:6;::::1;::::0;2541:38:::1;::::0;::::1;2590:6;:17:::0;;-1:-1:-1;;;;;;2590:17:0::1;-1:-1:-1::0;;;;;2590:17:0;;;::::1;::::0;;;::::1;::::0;;2371:244::o;15562:222::-;15628:11;;-1:-1:-1;;;;;15628:11:0;992:10;-1:-1:-1;;;;;15612:27:0;;:59;;;-1:-1:-1;15659:12:0;;-1:-1:-1;;;;;15659:12:0;992:10;-1:-1:-1;;;;;15643:28:0;;15612:59;15604:68;;;;;;15712:21;15744:32;15712:21;15744:12;:32::i;11807:369::-;-1:-1:-1;;;;;11934:19:0;;11926:68;;;;-1:-1:-1;;;11926:68:0;;13962:2:1;11926:68:0;;;13944:21:1;14001:2;13981:18;;;13974:30;14040:34;14020:18;;;14013:62;-1:-1:-1;;;14091:18:1;;;14084:34;14135:19;;11926:68:0;13934:226:1;11926:68:0;-1:-1:-1;;;;;12013:21:0;;12005:68;;;;-1:-1:-1;;;12005:68:0;;9685:2:1;12005:68:0;;;9667:21:1;9724:2;9704:18;;;9697:30;9763:34;9743:18;;;9736:62;-1:-1:-1;;;9814:18:1;;;9807:32;9856:19;;12005:68:0;9657:224:1;12005:68:0;-1:-1:-1;;;;;12084:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12136:32;;15975:25:1;;;12136:32:0;;15948:18:1;12136:32:0;;;;;;;11807:369;;;:::o;12184:2523::-;-1:-1:-1;;;;;12306:18:0;;12298:68;;;;-1:-1:-1;;;12298:68:0;;12800:2:1;12298:68:0;;;12782:21:1;12839:2;12819:18;;;12812:30;12878:34;12858:18;;;12851:62;-1:-1:-1;;;12929:18:1;;;12922:35;12974:19;;12298:68:0;12772:227:1;12298:68:0;-1:-1:-1;;;;;12385:16:0;;12377:64;;;;-1:-1:-1;;;12377:64:0;;7330:2:1;12377:64:0;;;7312:21:1;7369:2;7349:18;;;7342:30;7408:34;7388:18;;;7381:62;-1:-1:-1;;;7459:18:1;;;7452:33;7502:19;;12377:64:0;7302:225:1;12377:64:0;12469:1;12460:6;:10;12452:64;;;;-1:-1:-1;;;12452:64:0;;12390:2:1;12452:64:0;;;12372:21:1;12429:2;12409:18;;;12402:30;12468:34;12448:18;;;12441:62;-1:-1:-1;;;12519:18:1;;;12512:39;12568:19;;12452:64:0;12362:231:1;12452:64:0;2191:7;2218:6;-1:-1:-1;;;;;12533:15:0;;;2218:6;;12533:15;;;;:32;;-1:-1:-1;2191:7:0;2218:6;-1:-1:-1;;;;;12552:13:0;;;2218:6;;12552:13;;12533:32;12529:1197;;;12634:13;;-1:-1:-1;;;12634:13:0;;;;12629:431;;12688:13;;-1:-1:-1;;;;;12682:19:0;;;12688:13;;12682:19;;;;:53;;-1:-1:-1;12719:15:0;;-1:-1:-1;;;;;12705:30:0;;;12719:15;;12705:30;;12682:53;:81;;;;-1:-1:-1;;;;;;12741:22:0;;;;;;:18;:22;;;;;;;;12739:24;12682:81;12679:381;;;12817:14;;12808:6;12792:13;12802:2;12792:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12784:87;;;;-1:-1:-1;;;12784:87:0;;13206:2:1;12784:87:0;;;13188:21:1;13245:2;13225:18;;;13218:30;13284:34;13264:18;;;13257:62;-1:-1:-1;;;13335:18:1;;;13328:33;13378:19;;12784:87:0;13178:225:1;12784:87:0;12908:12;;12898:6;:22;;12890:63;;;;-1:-1:-1;;;12890:63:0;;8921:2:1;12890:63:0;;;8903:21:1;8960:2;8940:18;;;8933:30;8999;8979:18;;;8972:58;9047:18;;12890:63:0;8893:178:1;12890:63:0;-1:-1:-1;;;;;12981:10:0;;;;;;:4;:10;;;;;;;;12980:11;:24;;;;-1:-1:-1;;;;;;12996:8:0;;;;;;:4;:8;;;;;;;;12995:9;12980:24;12972:72;;;;-1:-1:-1;;;12972:72:0;;10088:2:1;12972:72:0;;;10070:21:1;10127:2;10107:18;;;10100:30;10166:34;10146:18;;;10139:62;-1:-1:-1;;;10217:18:1;;;10210:33;10260:19;;12972:72:0;10060:225:1;12972:72:0;13088:28;13119:24;13137:4;13119:9;:24::i;:::-;13197:19;;13260:12;;13088:55;;-1:-1:-1;13173:43:0;;;;13236:36;;13233:124;;13329:12;;13306:35;;13233:124;13389:7;:18;;;;-1:-1:-1;13401:6:0;;-1:-1:-1;;;13401:6:0;;;;13400:7;13389:18;:43;;;;-1:-1:-1;13419:13:0;;-1:-1:-1;;;;;13411:21:0;;;13419:13;;13411:21;;13389:43;:58;;;;-1:-1:-1;13436:11:0;;-1:-1:-1;;;13436:11:0;;;;13389:58;13385:330;;;13468:38;13485:20;13468:16;:38::i;:::-;13554:21;13598:22;;13594:106;;13645:35;13658:21;13645:12;:35::i;:::-;13385:330;;12529:1197;;;-1:-1:-1;;;;;13810:24:0;;13746:12;13810:24;;;:18;:24;;;;;;13761:4;;13810:24;;;:50;;-1:-1:-1;;;;;;13838:22:0;;;;;;:18;:22;;;;;;;;13810:50;13809:102;;;-1:-1:-1;13874:13:0;;-1:-1:-1;;;;;13866:21:0;;;13874:13;;13866:21;;;;:44;;-1:-1:-1;13897:13:0;;-1:-1:-1;;;;;13891:19:0;;;13897:13;;13891:19;;13866:44;13805:841;;;-1:-1:-1;13938:5:0;13805:841;;;14033:13;;-1:-1:-1;;;;;14025:21:0;;;14033:13;;14025:21;:55;;;;-1:-1:-1;14064:15:0;;-1:-1:-1;;;;;14050:30:0;;;14064:15;;14050:30;;14025:55;14022:172;;;14118:19;;14101:14;:36;14166:12;;14156:7;:22;14022:172;-1:-1:-1;;;;;14252:24:0;;;;;;:18;:24;;;;;;;;14247:167;;14323:12;;14313:6;:22;;14305:89;;;;-1:-1:-1;;;14305:89:0;;11204:2:1;14305:89:0;;;11186:21:1;11243:2;11223:18;;;11216:30;11282:34;11262:18;;;11255:62;-1:-1:-1;;;11333:18:1;;;11326:52;11395:19;;14305:89:0;11176:244:1;14305:89:0;14456:13;;-1:-1:-1;;;;;14450:19:0;;;14456:13;;14450:19;:55;;;;-1:-1:-1;14489:15:0;;-1:-1:-1;;;;;14473:32:0;;;14489:15;;14473:32;;14450:55;14446:175;;;14543:20;;14526:14;:37;14592:13;;14582:7;:23;14446:175;14658:41;14673:4;14679:2;14683:6;14691:7;14658:14;:41::i;2983:224::-;3103:7;3139:12;3131:6;;;;3123:29;;;;-1:-1:-1;;;3123:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3163:9:0;3175:5;3179:1;3175;:5;:::i;:::-;3163:17;2983:224;-1:-1:-1;;;;;2983:224:0:o;11082:323::-;11177:7;11235;;11224;:18;;11202:110;;;;-1:-1:-1;;;11202:110:0;;8510:2:1;11202:110:0;;;8492:21:1;8549:2;8529:18;;;8522:30;8588:34;8568:18;;;8561:62;-1:-1:-1;;;8639:18:1;;;8632:40;8689:19;;11202:110:0;8482:232:1;11202:110:0;11323:19;11345:10;:8;:10::i;:::-;11323:32;-1:-1:-1;11373:24:0;:7;11323:32;11373:11;:24::i;:::-;11366:31;11082:323;-1:-1:-1;;;11082:323:0:o;14717:483::-;7384:6;:13;;-1:-1:-1;;;;7384:13:0;-1:-1:-1;;;7384:13:0;;;14819:16:::1;::::0;;14833:1:::1;14819:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14819:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14819:16:0::1;14795:40;;14864:4;14846;14851:1;14846:7;;;;;;-1:-1:-1::0;;;14846:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14846:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14890:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14890:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14846:7;;14890:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14880:4;14885:1;14880:7;;;;;;-1:-1:-1::0;;;14880:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14880:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14955:15:::1;::::0;14923:62:::1;::::0;14940:4:::1;::::0;14955:15:::1;14973:11:::0;14923:8:::1;:62::i;:::-;14996:15;::::0;:196:::1;::::0;-1:-1:-1;;;14996:196:0;;-1:-1:-1;;;;;14996:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;15077:11;;14996:15:::1;::::0;15119:4;;15146::::1;::::0;15166:15:::1;::::0;14996:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7420:6:0;:14;;-1:-1:-1;;;;7420:14:0;;;-1:-1:-1;;;;14717:483:0:o;20099:91::-;2280:6;;-1:-1:-1;;;;;2280:6:0;992:10;2280:22;2272:67;;;;-1:-1:-1;;;2272:67:0;;;;;;;:::i;:::-;20154:13:::1;:20:::0;;-1:-1:-1;;;;20154:20:0::1;-1:-1:-1::0;;;20154:20:0::1;::::0;;20099:91::o;15208:147::-;15265:11;;-1:-1:-1;;;;;15265:11:0;:35;15286:13;:6;15297:1;15286:10;:13::i;:::-;15265:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15311:12:0;;-1:-1:-1;;;;;15311:12:0;:36;15333:13;:6;15344:1;15333:10;:13::i;:::-;15311:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16073:282;16229:7;16224:28;;16238:14;:12;:14::i;:::-;16263:44;16281:6;16289:9;16300:6;16263:17;:44::i;:::-;16323:7;16318:29;;16332:15;11733:22;;11716:14;:39;11776:15;;11766:7;:25;11672:127;19063:166;19105:7;19126:15;19143;19162:19;:17;:19::i;:::-;19125:56;;-1:-1:-1;19125:56:0;-1:-1:-1;19201:20:0;19125:56;;19201:11;:20::i;:::-;19194:27;;;;19063:166;:::o;3469:132::-;3527:7;3554:39;3558:1;3561;3554:39;;;;;;;;;;;;;;;;;:3;:39::i;11413:251::-;11460:14;;:19;:35;;;;-1:-1:-1;11483:7:0;;:12;11460:35;11456:48;;;11413:251::o;11456:48::-;11545:14;;;11520:22;:39;11588:7;;;11570:15;:25;-1:-1:-1;11616:18:0;;;;11645:11;11413:251::o;16363:610::-;16510:15;16540:23;16578:12;16605:23;16643:12;16670:13;16697:19;16708:7;16697:10;:19::i;:::-;-1:-1:-1;;;;;16745:15:0;;;;;;:7;:15;;;;;;16495:221;;-1:-1:-1;16495:221:0;;-1:-1:-1;16495:221:0;;-1:-1:-1;16495:221:0;-1:-1:-1;16495:221:0;-1:-1:-1;16495:221:0;-1:-1:-1;16745:28:0;;16495:221;16745:19;:28::i;:::-;-1:-1:-1;;;;;16727:15:0;;;;;;;:7;:15;;;;;;:46;;;;16805:18;;;;;;;:39;;16828:15;16805:22;:39::i;:::-;-1:-1:-1;;;;;16784:18:0;;;;;;:7;:18;;;;;:60;16855:16;16865:5;16855:9;:16::i;:::-;16882:23;16894:4;16900;16882:11;:23::i;:::-;16938:9;-1:-1:-1;;;;;16921:44:0;16930:6;-1:-1:-1;;;;;16921:44:0;;16949:15;16921:44;;;;15975:25:1;;15963:2;15948:18;;15930:76;16921:44:0;;;;;;;;16363:610;;;;;;;;;:::o;19237:263::-;19335:7;;19288;;;;5481:16;19403:20;19335:7;5481:16;19403:11;:20::i;:::-;19393:7;:30;19389:61;;;-1:-1:-1;;19433:7:0;;;5481:16;;-1:-1:-1;19237:263:0;-1:-1:-1;19237:263:0:o;19389:61::-;19475:7;;19484;;-1:-1:-1;19237:263:0;-1:-1:-1;19237:263:0:o;3609:223::-;3729:7;3764:12;3757:5;3749:28;;;;-1:-1:-1;;;3749:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3788:9:0;3800:5;3804:1;3800;:5;:::i;17392:630::-;17492:7;17514;17536;17558;17580;17602;17638:23;17663:12;17677:13;17707:45;17719:7;17728:14;;17744:7;;17707:11;:45::i;:::-;17637:115;;;;;;17763:19;17785:10;:8;:10::i;:::-;17763:32;;17807:15;17824:23;17849:12;17878:46;17890:7;17899:4;17905:5;17912:11;17878;:46::i;:::-;17806:118;;-1:-1:-1;17806:118:0;-1:-1:-1;17806:118:0;-1:-1:-1;17985:15:0;;-1:-1:-1;18002:4:0;;-1:-1:-1;18008:5:0;;-1:-1:-1;;;;;17392:630:0;;;;;;;:::o;2839:136::-;2897:7;2924:43;2928:1;2931;2924:43;;;;;;;;;;;;;;;;;:3;:43::i;2652:179::-;2710:7;;2742:5;2746:1;2742;:5;:::i;:::-;2730:17;;2771:1;2766;:6;;2758:46;;;;-1:-1:-1;;;2758:46:0;;10492:2:1;2758:46:0;;;10474:21:1;10531:2;10511:18;;;10504:30;10570:29;10550:18;;;10543:57;10617:18;;2758:46:0;10464:177:1;16981:211:0;17034:19;17056:10;:8;:10::i;:::-;17034:32;-1:-1:-1;17077:13:0;17093:22;:5;17034:32;17093:9;:22::i;:::-;17167:4;17151:22;;;;:7;:22;;;;;;17077:38;;-1:-1:-1;17151:33:0;;17077:38;17151:26;:33::i;:::-;17142:4;17126:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16981:211:0:o;17200:147::-;17278:7;;:17;;17290:4;17278:11;:17::i;:::-;17268:7;:27;17319:10;;:20;;17334:4;17319:14;:20::i;:::-;17306:10;:33;-1:-1:-1;;17200:147:0:o;18030:481::-;18204:7;;;;18298:35;18329:3;18298:26;:7;18310:13;18298:11;:26::i;:::-;:30;;:35::i;:::-;18283:50;-1:-1:-1;18344:13:0;18360:28;18384:3;18360:19;:7;18372:6;18360:11;:19::i;:28::-;18344:44;-1:-1:-1;18399:23:0;18425:28;18344:44;18425:17;:7;18437:4;18425:11;:17::i;:::-;:21;;:28::i;:::-;18399:54;18491:4;;-1:-1:-1;18497:5:0;;-1:-1:-1;18030:481:0;;-1:-1:-1;;;;;18030:481:0:o;18519:536::-;18713:7;;;;18810:24;:7;18822:11;18810;:24::i;:::-;18792:42;-1:-1:-1;18845:12:0;18860:21;:4;18869:11;18860:8;:21::i;:::-;18845:36;-1:-1:-1;18892:13:0;18908:22;:5;18918:11;18908:9;:22::i;:::-;18892:38;-1:-1:-1;18941:23:0;18967:28;18892:38;18967:17;:7;18979:4;18967:11;:17::i;:28::-;19016:7;;;;-1:-1:-1;19042:4:0;;-1:-1:-1;18519:536:0;;-1:-1:-1;;;;;;;18519:536:0:o;3215:246::-;3273:7;3297:6;3293:47;;-1:-1:-1;3327:1:0;3320:8;;3293:47;3350:9;3362:5;3366:1;3362;:5;:::i;:::-;3350:17;-1:-1:-1;3395:1:0;3386:5;3390:1;3350:17;3386:5;:::i;:::-;:10;3378:56;;;;-1:-1:-1;;;3378:56:0;;11627:2:1;3378:56:0;;;11609:21:1;11666:2;11646:18;;;11639:30;11705:34;11685:18;;;11678:62;-1:-1:-1;;;11756:18:1;;;11749:31;11797:19;;3378:56:0;11599:223:1;14:768;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;183:6;170:20;209:4;233:60;249:43;289:2;249:43;:::i;:::-;233:60;:::i;:::-;315:3;339:2;334:3;327:15;367:2;362:3;358:12;351:19;;402:2;394:6;390:15;454:3;449:2;443;440:1;436:10;428:6;424:23;420:32;417:41;414:2;;;475:5;468;461:20;414:2;501:5;515:238;529:2;526:1;523:9;515:238;;;600:3;587:17;617:31;642:5;617:31;:::i;:::-;661:18;;699:12;;;;731;;;;547:1;540:9;515:238;;;-1:-1:-1;771:5:1;;78:704;-1:-1:-1;;;;;;;78:704:1:o;787:257::-;846:6;899:2;887:9;878:7;874:23;870:32;867:2;;;920:6;912;905:22;867:2;964:9;951:23;983:31;1008:5;983:31;:::i;1049:261::-;1119:6;1172:2;1160:9;1151:7;1147:23;1143:32;1140:2;;;1193:6;1185;1178:22;1140:2;1230:9;1224:16;1249:31;1274:5;1249:31;:::i;1315:398::-;1383:6;1391;1444:2;1432:9;1423:7;1419:23;1415:32;1412:2;;;1465:6;1457;1450:22;1412:2;1509:9;1496:23;1528:31;1553:5;1528:31;:::i;:::-;1578:5;-1:-1:-1;1635:2:1;1620:18;;1607:32;1648:33;1607:32;1648:33;:::i;:::-;1700:7;1690:17;;;1402:311;;;;;:::o;1718:466::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:2;;;1885:6;1877;1870:22;1832:2;1929:9;1916:23;1948:31;1973:5;1948:31;:::i;:::-;1998:5;-1:-1:-1;2055:2:1;2040:18;;2027:32;2068:33;2027:32;2068:33;:::i;:::-;1822:362;;2120:7;;-1:-1:-1;;;2174:2:1;2159:18;;;;2146:32;;1822:362::o;2189:436::-;2254:6;2262;2315:2;2303:9;2294:7;2290:23;2286:32;2283:2;;;2336:6;2328;2321:22;2283:2;2380:9;2367:23;2399:31;2424:5;2399:31;:::i;:::-;2449:5;-1:-1:-1;2506:2:1;2491:18;;2478:32;2548:15;;2541:23;2529:36;;2519:2;;2584:6;2576;2569:22;2630:325;2698:6;2706;2759:2;2747:9;2738:7;2734:23;2730:32;2727:2;;;2780:6;2772;2765:22;2727:2;2824:9;2811:23;2843:31;2868:5;2843:31;:::i;:::-;2893:5;2945:2;2930:18;;;;2917:32;;-1:-1:-1;;;2717:238:1:o;2960:368::-;3044:6;3097:2;3085:9;3076:7;3072:23;3068:32;3065:2;;;3118:6;3110;3103:22;3065:2;3163:9;3150:23;3196:18;3188:6;3185:30;3182:2;;;3233:6;3225;3218:22;3182:2;3261:61;3314:7;3305:6;3294:9;3290:22;3261:61;:::i;:::-;3251:71;3055:273;-1:-1:-1;;;;3055:273:1:o;3333:1204::-;3451:6;3459;3512:2;3500:9;3491:7;3487:23;3483:32;3480:2;;;3533:6;3525;3518:22;3480:2;3578:9;3565:23;3607:18;3648:2;3640:6;3637:14;3634:2;;;3669:6;3661;3654:22;3634:2;3697:61;3750:7;3741:6;3730:9;3726:22;3697:61;:::i;:::-;3687:71;;3777:2;3767:12;;3832:2;3821:9;3817:18;3804:32;3861:2;3851:8;3848:16;3845:2;;;3882:6;3874;3867:22;3845:2;3910:24;;;-1:-1:-1;3965:4:1;3957:13;;3953:27;-1:-1:-1;3943:2:1;;3999:6;3991;3984:22;3943:2;4040;4027:16;4063:60;4079:43;4119:2;4079:43;:::i;4063:60::-;4145:3;4169:2;4164:3;4157:15;4197:2;4192:3;4188:12;4181:19;;4228:2;4224;4220:11;4276:7;4271:2;4265;4262:1;4258:10;4254:2;4250:19;4246:28;4243:41;4240:2;;;4302:6;4294;4287:22;4240:2;4329:6;4320:15;;4344:163;4358:2;4355:1;4352:9;4344:163;;;4415:17;;4403:30;;4376:1;4369:9;;;;;4453:12;;;;4485;;4344:163;;;4348:3;4526:5;4516:15;;;;;;;3470:1067;;;;;:::o;4542:190::-;4601:6;4654:2;4642:9;4633:7;4629:23;4625:32;4622:2;;;4675:6;4667;4660:22;4622:2;-1:-1:-1;4703:23:1;;4612:120;-1:-1:-1;4612:120:1:o;4737:395::-;4823:6;4831;4839;4847;4900:3;4888:9;4879:7;4875:23;4871:33;4868:2;;;4922:6;4914;4907:22;4868:2;-1:-1:-1;;4950:23:1;;;5020:2;5005:18;;4992:32;;-1:-1:-1;5071:2:1;5056:18;;5043:32;;5122:2;5107:18;5094:32;;-1:-1:-1;4858:274:1;-1:-1:-1;4858:274:1:o;6520:603::-;6632:4;6661:2;6690;6679:9;6672:21;6722:6;6716:13;6765:6;6760:2;6749:9;6745:18;6738:34;6790:4;6803:140;6817:6;6814:1;6811:13;6803:140;;;6912:14;;;6908:23;;6902:30;6878:17;;;6897:2;6874:26;6867:66;6832:10;;6803:140;;;6961:6;6958:1;6955:13;6952:2;;;7031:4;7026:2;7017:6;7006:9;7002:22;6998:31;6991:45;6952:2;-1:-1:-1;7107:2:1;7086:15;-1:-1:-1;;7082:29:1;7067:45;;;;7114:2;7063:54;;6641:482;-1:-1:-1;;;6641:482:1:o;11827:356::-;12029:2;12011:21;;;12048:18;;;12041:30;12107:34;12102:2;12087:18;;12080:62;12174:2;12159:18;;12001:182::o;16011:983::-;16273:4;16321:3;16310:9;16306:19;16352:6;16341:9;16334:25;16378:2;16416:6;16411:2;16400:9;16396:18;16389:34;16459:3;16454:2;16443:9;16439:18;16432:31;16483:6;16518;16512:13;16549:6;16541;16534:22;16587:3;16576:9;16572:19;16565:26;;16626:2;16618:6;16614:15;16600:29;;16647:4;16660:195;16674:6;16671:1;16668:13;16660:195;;;16739:13;;-1:-1:-1;;;;;16735:39:1;16723:52;;16830:15;;;;16795:12;;;;16771:1;16689:9;16660:195;;;-1:-1:-1;;;;;;;16911:32:1;;;;16906:2;16891:18;;16884:60;-1:-1:-1;;;16975:3:1;16960:19;16953:35;16872:3;16282:712;-1:-1:-1;;;16282:712:1:o;17188:275::-;17259:2;17253:9;17324:2;17305:13;;-1:-1:-1;;17301:27:1;17289:40;;17359:18;17344:34;;17380:22;;;17341:62;17338:2;;;17406:18;;:::i;:::-;17442:2;17435:22;17233:230;;-1:-1:-1;17233:230:1:o;17468:183::-;17528:4;17561:18;17553:6;17550:30;17547:2;;;17583:18;;:::i;:::-;-1:-1:-1;17628:1:1;17624:14;17640:4;17620:25;;17537:114::o;17656:128::-;17696:3;17727:1;17723:6;17720:1;17717:13;17714:2;;;17733:18;;:::i;:::-;-1:-1:-1;17769:9:1;;17704:80::o;17789:217::-;17829:1;17855;17845:2;;-1:-1:-1;;;17880:31:1;;17934:4;17931:1;17924:15;17962:4;17887:1;17952:15;17845:2;-1:-1:-1;17991:9:1;;17835:171::o;18011:168::-;18051:7;18117:1;18113;18109:6;18105:14;18102:1;18099:21;18094:1;18087:9;18080:17;18076:45;18073:2;;;18124:18;;:::i;:::-;-1:-1:-1;18164:9:1;;18063:116::o;18184:125::-;18224:4;18252:1;18249;18246:8;18243:2;;;18257:18;;:::i;:::-;-1:-1:-1;18294:9:1;;18233:76::o;18314:135::-;18353:3;-1:-1:-1;;18374:17:1;;18371:2;;;18394:18;;:::i;:::-;-1:-1:-1;18441:1:1;18430:13;;18361:88::o;18454:127::-;18515:10;18510:3;18506:20;18503:1;18496:31;18546:4;18543:1;18536:15;18570:4;18567:1;18560:15;18586:127;18647:10;18642:3;18638:20;18635:1;18628:31;18678:4;18675:1;18668:15;18702:4;18699:1;18692:15;18718:131;-1:-1:-1;;;;;18793:31:1;;18783:42;;18773:2;;18839:1;18836;18829:12

Swarm Source

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