ETH Price: $3,330.89 (-4.37%)
Gas: 2 Gwei

Token

Yin&Yang 阴阳 (YNY)
 

Overview

Max Total Supply

100,000,000 YNY

Holders

144

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
80,945.547832194598240798 YNY

Value
$0.00
0x028c053653c712bfcec0abf55ddfff7a6c163340
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:
YinNYang

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*

               ,,ggddY888Ybbgg,,
          ,agd8""'   .d8888888888bga,
       ,gdP""'     .d88888888888888888g,
     ,dP"        ,d888888888888888888888b,
   ,dP"         ,8888888888888888888888888b,
  ,8"          ,8888888P"""88888888888888888,
 ,8'           I888888I    )88888888888888888,
,8'            `8888888booo8888888888888888888,
d'              `88888888888888888888888888888b
8                `"8888888888888888888888888888
8                  `"88888888888888888888888888
8                      `"8888888888888888888888
Y,                        `8888888888888888888P
`8,                         `88888888888888888'
 `8,              .oo.       `888888888888888'
  `8a             8888        88888888888888'
   `Yba           `""'       ,888888888888P'
     "Yba                   ,88888888888'
       `"Yba,             ,8888888888P"'                
          `"Y8baa,      ,d88888888P"'
               ``""YYba8888P888"'

                        $YNY

               In the mystical crypto realm, 
            a non-stop clash between the black Bull 
        and the white Bear invokes the cosmic dance of 
    Yin and Yang. Part of the tax will be sent to $YNY holders 
with reflections mechanism. Reflection embody the essence of yin and 
        yang by promoting balance and reciprocity.

Telegram: https://t.me/YinYangErc
Twitter: https://twitter.com/yinyangyny/
Website: https://ynycoin.com

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.20;
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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

}

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

    using SafeMath for uint256;

    string private constant _name = unicode"Yin&Yang 阴阳";
    string private constant _symbol = "YNY";
    uint8 private constant _decimals = 18;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100_000_000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 public _redisFeeOnBuy = 0;
    uint256 public _taxFeeOnBuy = 30;
    uint256 public _liquidityFeeOnBuy = 0;
    uint256 public _redisFeeOnSell = 0;
    uint256 public _taxFeeOnSell = 30;
    uint256 public _liquidityFeeOnSell = 0;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(0x69F686Bb7D706A1b9e3943b028074257540F7C4f);
    address payable private _marketingAddress = payable(0x9e9039f7A650Fe764577b9ED1529D1Adb7a893DD);
    address public constant deadAddress = address(0xdead);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 2_000_000 * 10**18;
    uint256 public _maxWalletSize = 2_000_000 * 10**18;
    uint256 public _swapTokensAtAmount = 25_000 * 10**18;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

        preTrader[owner()] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 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 (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _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() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

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

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

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                // Halve the amount of liquidity tokens
                uint256 liquidityTokens = (contractTokenBalance * _liquidityFeeOnSell) / _taxFeeOnSell / 2;
                // uint256 marketingTokens = contractTokenBalance - (liquidityTokens * 2);
                uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens);
        
                uint256 initialETHBalance = address(this).balance;
        
                swapTokensForEth(amountToSwapForETH);
        
                uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
                uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(contractTokenBalance);

                swapTokensForEth(contractTokenBalance);

                if (liquidityTokens > 0 && ethForLiquidity > 0) {
                    addLiquidity(liquidityTokens, ethForLiquidity);
                }
                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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _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 {
        _marketingAddress.transfer(amount);
    }

    function setTrading() public onlyOwner {
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    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, _redisFee, _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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).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 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell, uint256 liquidityFeeOnBuy, uint256 liquidityFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy + taxFeeOnBuy + liquidityFeeOnBuy < 20, "TOKEN: Buy tax too high.");
        require(redisFeeOnSell + taxFeeOnSell + liquidityFeeOnSell < 20, "TOKEN: Sell tax too high.");
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        _liquidityFeeOnBuy = liquidityFeeOnBuy;
        _liquidityFeeOnSell = liquidityFeeOnSell;
    }

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

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        require(maxTxAmount >= (_tTotal / 1000), "Cannot set maxTransactionAmount lower than 0.1%");
        _maxTxAmount = maxTxAmount;
    }

    //Set maximum wallet size
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        require(maxWalletSize >= (_tTotal * 5 / 1000), "Cannot set maxWallet lower than 0.5%");
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_liquidityFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_redisFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redisFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","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":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"liquidityFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"liquidityFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

60806040526200001c6a52b7d2dcc80cd2e40000005f196200037e565b62000029905f196200039e565b6006555f6008819055601e6009819055600a829055600b829055600c819055600d829055600e829055600f819055601091909155601155601380546001600160a01b03199081167369f686bb7d706a1b9e3943b028074257540f7c4f1790915560148054909116739e9039f7a650fe764577b9ed1529d1adb7a893dd179055601680546201000160a01b62ffffff60a01b199091161790556a01a784379d99db42000000601781905560185569054b40b1f852bda00000601955348015620000ef575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001cf9190620003c4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002419190620003c4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200028c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002b29190620003c4565b601680546001600160a01b0319166001600160a01b039283161790555f805482168152601260209081526040808320805460ff1990811660019081179092558454861685526005845282852080548216831790553085528285208054821683179055601354861685528285208054821683179055601454909516845281842080549095161790935591516a52b7d2dcc80cd2e4000000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620003f3565b5f826200039957634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620003be57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215620003d5575f80fd5b81516001600160a01b0381168114620003ec575f80fd5b9392505050565b611ecc80620004015f395ff3fe6080604052600436106101f4575f3560e01c80637d1db4a511610108578063bd9a3b6d1161009d578063c492f0461161006d578063c492f0461461056c578063d52dfc141461058b578063dd62ed3e146105a0578063ea1644d5146105e4578063f2fde38b14610603575f80fd5b8063bd9a3b6d146104f6578063bdd795ef14610515578063bf5976d314610543578063c3c8cd8014610558575f80fd5b806395d89b41116100d857806395d89b411461047857806398a5c315146104a3578063a01abe5c146104c2578063a9059cbb146104d7575f80fd5b80637d1db4a51461041d5780638199040e146104325780638da5cb5b146104475780638f9a55c014610463575f80fd5b806331cc43bd116101895780636fc3eaec116101595780636fc3eaec146103a357806370a08231146103b7578063715018a6146103d657806374010ece146103ea5780637c519ffb14610409575f80fd5b806331cc43bd146103395780633c0a73ae1461034e57806349bd5a5e146103635780636d8aa8f814610382575f80fd5b806323b872dd116101c457806323b872dd146102d557806327c8f835146102f45780632fd689e314610309578063313ce5671461031e575f80fd5b806306fdde03146101ff578063095ea7b3146102485780631694505e1461027757806318160ddd146102ae575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5060408051808201909152600f81526e59696e2659616e6720e998b4e998b360881b60208201525b60405161023f9190611acf565b60405180910390f35b348015610253575f80fd5b50610267610262366004611b2e565b610622565b604051901515815260200161023f565b348015610282575f80fd5b50601554610296906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b3480156102b9575f80fd5b506a52b7d2dcc80cd2e40000005b60405190815260200161023f565b3480156102e0575f80fd5b506102676102ef366004611b58565b610638565b3480156102ff575f80fd5b5061029661dead81565b348015610314575f80fd5b506102c760195481565b348015610329575f80fd5b506040516012815260200161023f565b348015610344575f80fd5b506102c760085481565b348015610359575f80fd5b506102c7600a5481565b34801561036e575f80fd5b50601654610296906001600160a01b031681565b34801561038d575f80fd5b506103a161039c366004611baa565b61069f565b005b3480156103ae575f80fd5b506103a16106ef565b3480156103c2575f80fd5b506102c76103d1366004611bc3565b610739565b3480156103e1575f80fd5b506103a161075a565b3480156103f5575f80fd5b506103a1610404366004611bde565b6107cb565b348015610414575f80fd5b506103a1610877565b348015610428575f80fd5b506102c760175481565b34801561043d575f80fd5b506102c7600c5481565b348015610452575f80fd5b505f546001600160a01b0316610296565b34801561046e575f80fd5b506102c760185481565b348015610483575f80fd5b50604080518082019091526003815262594e5960e81b6020820152610232565b3480156104ae575f80fd5b506103a16104bd366004611bde565b6108b5565b3480156104cd575f80fd5b506102c7600b5481565b3480156104e2575f80fd5b506102676104f1366004611b2e565b6108e3565b348015610501575f80fd5b506103a1610510366004611bf5565b6108ef565b348015610520575f80fd5b5061026761052f366004611bc3565b60126020525f908152604090205460ff1681565b34801561054e575f80fd5b506102c760095481565b348015610563575f80fd5b506103a16109fd565b348015610577575f80fd5b506103a1610586366004611c34565b610a4f565b348015610596575f80fd5b506102c7600d5481565b3480156105ab575f80fd5b506102c76105ba366004611cb1565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105ef575f80fd5b506103a16105fe366004611bde565b610aec565b34801561060e575f80fd5b506103a161061d366004611bc3565b610b98565b5f61062e338484610c7f565b5060015b92915050565b5f610644848484610da2565b610695843361069085604051806060016040528060288152602001611e6f602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611328565b610c7f565b5060019392505050565b5f546001600160a01b031633146106d15760405162461bcd60e51b81526004016106c890611ce8565b60405180910390fd5b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061072457506014546001600160a01b0316336001600160a01b0316145b61072c575f80fd5b4761073681611360565b50565b6001600160a01b0381165f908152600260205260408120546106329061139b565b5f546001600160a01b031633146107835760405162461bcd60e51b81526004016106c890611ce8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107f45760405162461bcd60e51b81526004016106c890611ce8565b61080b6103e86a52b7d2dcc80cd2e4000000611d31565b8110156108725760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016106c8565b601755565b5f546001600160a01b031633146108a05760405162461bcd60e51b81526004016106c890611ce8565b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146108de5760405162461bcd60e51b81526004016106c890611ce8565b601955565b5f61062e338484610da2565b5f546001600160a01b031633146109185760405162461bcd60e51b81526004016106c890611ce8565b6014826109258689611d50565b61092f9190611d50565b1061097c5760405162461bcd60e51b815260206004820152601860248201527f544f4b454e3a204275792074617820746f6f20686967682e000000000000000060448201526064016106c8565b6014816109898588611d50565b6109939190611d50565b106109e05760405162461bcd60e51b815260206004820152601960248201527f544f4b454e3a2053656c6c2074617820746f6f20686967682e0000000000000060448201526064016106c8565b600895909555600b93909355600991909155600c55600a55600d55565b6013546001600160a01b0316336001600160a01b03161480610a3257506014546001600160a01b0316336001600160a01b0316145b610a3a575f80fd5b5f610a4430610739565b90506107368161141d565b5f546001600160a01b03163314610a785760405162461bcd60e51b81526004016106c890611ce8565b5f5b82811015610ae6578160055f868685818110610a9857610a98611d63565b9050602002016020810190610aad9190611bc3565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610ade81611d77565b915050610a7a565b50505050565b5f546001600160a01b03163314610b155760405162461bcd60e51b81526004016106c890611ce8565b6103e8610b2e6a52b7d2dcc80cd2e40000006005611d8f565b610b389190611d31565b811015610b935760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016106c8565b601855565b5f546001600160a01b03163314610bc15760405162461bcd60e51b81526004016106c890611ce8565b6001600160a01b038116610c265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c8565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ce15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106c8565b6001600160a01b038216610d425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106c8565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106c8565b6001600160a01b038216610e685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106c8565b5f8111610ec95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106c8565b5f546001600160a01b03848116911614801590610ef357505f546001600160a01b03838116911614155b8015610f1757506001600160a01b0383165f9081526012602052604090205460ff16155b8015610f3b57506001600160a01b0382165f9081526012602052604090205460ff16155b1561122457601654600160a01b900460ff16610fde576001600160a01b0383165f9081526012602052604090205460ff16610fde5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106c8565b6017548111156110305760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106c8565b6016546001600160a01b038381169116146110b5576018548161105284610739565b61105c9190611d50565b106110b55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106c8565b5f6110bf30610739565b60195490915080821015906110d5906014611d8f565b82106110ec576019546110e9906014611d8f565b91505b8080156111035750601654600160a81b900460ff16155b801561111d57506016546001600160a01b03868116911614155b80156111325750601654600160b01b900460ff165b801561115657506001600160a01b0385165f9081526005602052604090205460ff16155b801561117a57506001600160a01b0384165f9081526005602052604090205460ff16155b15611221575f6002600c54600d54856111939190611d8f565b61119d9190611d31565b6111a79190611d31565b90505f6111b4848361158d565b9050476111c08261141d565b5f6111cb478361158d565b90505f6111e2876111dc84886115ce565b9061164c565b90506111ed8761141d565b5f851180156111fb57505f81115b1561120a5761120a858261168d565b47801561121a5761121a47611360565b5050505050505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061126457506001600160a01b0383165f9081526005602052604090205460ff165b8061129657506016546001600160a01b0385811691161480159061129657506016546001600160a01b03848116911614155b156112a257505f61131c565b6016546001600160a01b0385811691161480156112cd57506015546001600160a01b03848116911614155b156112df57600854600e55600954600f555b6016546001600160a01b03848116911614801561130a57506015546001600160a01b03858116911614155b1561131c57600b54600e55600c54600f555b610ae68484848461173c565b5f818484111561134b5760405162461bcd60e51b81526004016106c89190611acf565b505f6113578486611da6565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611397573d5f803e3d5ffd5b5050565b5f6006548211156114015760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106c8565b5f61140a61176a565b9050611416838261164c565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061146357611463611d63565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114de9190611db9565b816001815181106114f1576114f1611d63565b6001600160a01b0392831660209182029290920101526015546115179130911684610c7f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061154f9085905f90869030904290600401611dd4565b5f604051808303815f87803b158015611566575f80fd5b505af1158015611578573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b5f61141683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611328565b5f825f036115dd57505f610632565b5f6115e88385611d8f565b9050826115f58583611d31565b146114165760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106c8565b5f61141683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061178b565b6015546116a59030906001600160a01b031684610c7f565b60155460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611710573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117359190611e43565b5050505050565b80611749576117496117b7565b6117548484846117e4565b80610ae657610ae6601054600e55601154600f55565b5f805f6117756118d5565b9092509050611784828261164c565b9250505090565b5f81836117ab5760405162461bcd60e51b81526004016106c89190611acf565b505f6113578486611d31565b600e541580156117c75750600f54155b156117ce57565b600e8054601055600f80546011555f9182905555565b5f805f805f806117f38761191a565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150611824908761158d565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611852908661196f565b6001600160a01b0389165f90815260026020526040902055611873816119cd565b61187d8483611a13565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118c291815260200190565b60405180910390a3505050505050505050565b6006545f9081906a52b7d2dcc80cd2e40000006118f2828261164c565b821015611911575050600654926a52b7d2dcc80cd2e400000092509050565b90939092509050565b5f805f805f805f805f6119328a600e54600f54611a37565b9250925092505f61194161176a565b90505f805f6119528e878787611a83565b919e509c509a509598509396509194505050505091939550919395565b5f8061197b8385611d50565b9050838110156114165760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c8565b5f6119d661176a565b90505f6119e383836115ce565b305f908152600260205260409020549091506119ff908261196f565b305f90815260026020526040902055505050565b600654611a20908361158d565b600655600754611a30908261196f565b6007555050565b5f808080611a4a60646111dc89896115ce565b90505f611a5c60646111dc8a896115ce565b90505f611a7382611a6d8b8661158d565b9061158d565b9992985090965090945050505050565b5f808080611a9188866115ce565b90505f611a9e88876115ce565b90505f611aab88886115ce565b90505f611abc82611a6d868661158d565b939b939a50919850919650505050505050565b5f6020808352835180828501525f5b81811015611afa57858101830151858201604001528201611ade565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610736575f80fd5b5f8060408385031215611b3f575f80fd5b8235611b4a81611b1a565b946020939093013593505050565b5f805f60608486031215611b6a575f80fd5b8335611b7581611b1a565b92506020840135611b8581611b1a565b929592945050506040919091013590565b80358015158114611ba5575f80fd5b919050565b5f60208284031215611bba575f80fd5b61141682611b96565b5f60208284031215611bd3575f80fd5b813561141681611b1a565b5f60208284031215611bee575f80fd5b5035919050565b5f805f805f8060c08789031215611c0a575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60408486031215611c46575f80fd5b833567ffffffffffffffff80821115611c5d575f80fd5b818601915086601f830112611c70575f80fd5b813581811115611c7e575f80fd5b8760208260051b8501011115611c92575f80fd5b602092830195509350611ca89186019050611b96565b90509250925092565b5f8060408385031215611cc2575f80fd5b8235611ccd81611b1a565b91506020830135611cdd81611b1a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611d4b57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561063257610632611d1d565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611d8857611d88611d1d565b5060010190565b808202811582820484141761063257610632611d1d565b8181038181111561063257610632611d1d565b5f60208284031215611dc9575f80fd5b815161141681611b1a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e225784516001600160a01b031683529383019391830191600101611dfd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611e55575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ad421b84256512b2762cd770fd21a4b63a6499b85f4406dc4c81ffe87f170cda64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101f4575f3560e01c80637d1db4a511610108578063bd9a3b6d1161009d578063c492f0461161006d578063c492f0461461056c578063d52dfc141461058b578063dd62ed3e146105a0578063ea1644d5146105e4578063f2fde38b14610603575f80fd5b8063bd9a3b6d146104f6578063bdd795ef14610515578063bf5976d314610543578063c3c8cd8014610558575f80fd5b806395d89b41116100d857806395d89b411461047857806398a5c315146104a3578063a01abe5c146104c2578063a9059cbb146104d7575f80fd5b80637d1db4a51461041d5780638199040e146104325780638da5cb5b146104475780638f9a55c014610463575f80fd5b806331cc43bd116101895780636fc3eaec116101595780636fc3eaec146103a357806370a08231146103b7578063715018a6146103d657806374010ece146103ea5780637c519ffb14610409575f80fd5b806331cc43bd146103395780633c0a73ae1461034e57806349bd5a5e146103635780636d8aa8f814610382575f80fd5b806323b872dd116101c457806323b872dd146102d557806327c8f835146102f45780632fd689e314610309578063313ce5671461031e575f80fd5b806306fdde03146101ff578063095ea7b3146102485780631694505e1461027757806318160ddd146102ae575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5060408051808201909152600f81526e59696e2659616e6720e998b4e998b360881b60208201525b60405161023f9190611acf565b60405180910390f35b348015610253575f80fd5b50610267610262366004611b2e565b610622565b604051901515815260200161023f565b348015610282575f80fd5b50601554610296906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b3480156102b9575f80fd5b506a52b7d2dcc80cd2e40000005b60405190815260200161023f565b3480156102e0575f80fd5b506102676102ef366004611b58565b610638565b3480156102ff575f80fd5b5061029661dead81565b348015610314575f80fd5b506102c760195481565b348015610329575f80fd5b506040516012815260200161023f565b348015610344575f80fd5b506102c760085481565b348015610359575f80fd5b506102c7600a5481565b34801561036e575f80fd5b50601654610296906001600160a01b031681565b34801561038d575f80fd5b506103a161039c366004611baa565b61069f565b005b3480156103ae575f80fd5b506103a16106ef565b3480156103c2575f80fd5b506102c76103d1366004611bc3565b610739565b3480156103e1575f80fd5b506103a161075a565b3480156103f5575f80fd5b506103a1610404366004611bde565b6107cb565b348015610414575f80fd5b506103a1610877565b348015610428575f80fd5b506102c760175481565b34801561043d575f80fd5b506102c7600c5481565b348015610452575f80fd5b505f546001600160a01b0316610296565b34801561046e575f80fd5b506102c760185481565b348015610483575f80fd5b50604080518082019091526003815262594e5960e81b6020820152610232565b3480156104ae575f80fd5b506103a16104bd366004611bde565b6108b5565b3480156104cd575f80fd5b506102c7600b5481565b3480156104e2575f80fd5b506102676104f1366004611b2e565b6108e3565b348015610501575f80fd5b506103a1610510366004611bf5565b6108ef565b348015610520575f80fd5b5061026761052f366004611bc3565b60126020525f908152604090205460ff1681565b34801561054e575f80fd5b506102c760095481565b348015610563575f80fd5b506103a16109fd565b348015610577575f80fd5b506103a1610586366004611c34565b610a4f565b348015610596575f80fd5b506102c7600d5481565b3480156105ab575f80fd5b506102c76105ba366004611cb1565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105ef575f80fd5b506103a16105fe366004611bde565b610aec565b34801561060e575f80fd5b506103a161061d366004611bc3565b610b98565b5f61062e338484610c7f565b5060015b92915050565b5f610644848484610da2565b610695843361069085604051806060016040528060288152602001611e6f602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611328565b610c7f565b5060019392505050565b5f546001600160a01b031633146106d15760405162461bcd60e51b81526004016106c890611ce8565b60405180910390fd5b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061072457506014546001600160a01b0316336001600160a01b0316145b61072c575f80fd5b4761073681611360565b50565b6001600160a01b0381165f908152600260205260408120546106329061139b565b5f546001600160a01b031633146107835760405162461bcd60e51b81526004016106c890611ce8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107f45760405162461bcd60e51b81526004016106c890611ce8565b61080b6103e86a52b7d2dcc80cd2e4000000611d31565b8110156108725760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016106c8565b601755565b5f546001600160a01b031633146108a05760405162461bcd60e51b81526004016106c890611ce8565b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146108de5760405162461bcd60e51b81526004016106c890611ce8565b601955565b5f61062e338484610da2565b5f546001600160a01b031633146109185760405162461bcd60e51b81526004016106c890611ce8565b6014826109258689611d50565b61092f9190611d50565b1061097c5760405162461bcd60e51b815260206004820152601860248201527f544f4b454e3a204275792074617820746f6f20686967682e000000000000000060448201526064016106c8565b6014816109898588611d50565b6109939190611d50565b106109e05760405162461bcd60e51b815260206004820152601960248201527f544f4b454e3a2053656c6c2074617820746f6f20686967682e0000000000000060448201526064016106c8565b600895909555600b93909355600991909155600c55600a55600d55565b6013546001600160a01b0316336001600160a01b03161480610a3257506014546001600160a01b0316336001600160a01b0316145b610a3a575f80fd5b5f610a4430610739565b90506107368161141d565b5f546001600160a01b03163314610a785760405162461bcd60e51b81526004016106c890611ce8565b5f5b82811015610ae6578160055f868685818110610a9857610a98611d63565b9050602002016020810190610aad9190611bc3565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610ade81611d77565b915050610a7a565b50505050565b5f546001600160a01b03163314610b155760405162461bcd60e51b81526004016106c890611ce8565b6103e8610b2e6a52b7d2dcc80cd2e40000006005611d8f565b610b389190611d31565b811015610b935760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016106c8565b601855565b5f546001600160a01b03163314610bc15760405162461bcd60e51b81526004016106c890611ce8565b6001600160a01b038116610c265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c8565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ce15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106c8565b6001600160a01b038216610d425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106c8565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106c8565b6001600160a01b038216610e685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106c8565b5f8111610ec95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106c8565b5f546001600160a01b03848116911614801590610ef357505f546001600160a01b03838116911614155b8015610f1757506001600160a01b0383165f9081526012602052604090205460ff16155b8015610f3b57506001600160a01b0382165f9081526012602052604090205460ff16155b1561122457601654600160a01b900460ff16610fde576001600160a01b0383165f9081526012602052604090205460ff16610fde5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106c8565b6017548111156110305760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106c8565b6016546001600160a01b038381169116146110b5576018548161105284610739565b61105c9190611d50565b106110b55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106c8565b5f6110bf30610739565b60195490915080821015906110d5906014611d8f565b82106110ec576019546110e9906014611d8f565b91505b8080156111035750601654600160a81b900460ff16155b801561111d57506016546001600160a01b03868116911614155b80156111325750601654600160b01b900460ff165b801561115657506001600160a01b0385165f9081526005602052604090205460ff16155b801561117a57506001600160a01b0384165f9081526005602052604090205460ff16155b15611221575f6002600c54600d54856111939190611d8f565b61119d9190611d31565b6111a79190611d31565b90505f6111b4848361158d565b9050476111c08261141d565b5f6111cb478361158d565b90505f6111e2876111dc84886115ce565b9061164c565b90506111ed8761141d565b5f851180156111fb57505f81115b1561120a5761120a858261168d565b47801561121a5761121a47611360565b5050505050505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061126457506001600160a01b0383165f9081526005602052604090205460ff165b8061129657506016546001600160a01b0385811691161480159061129657506016546001600160a01b03848116911614155b156112a257505f61131c565b6016546001600160a01b0385811691161480156112cd57506015546001600160a01b03848116911614155b156112df57600854600e55600954600f555b6016546001600160a01b03848116911614801561130a57506015546001600160a01b03858116911614155b1561131c57600b54600e55600c54600f555b610ae68484848461173c565b5f818484111561134b5760405162461bcd60e51b81526004016106c89190611acf565b505f6113578486611da6565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611397573d5f803e3d5ffd5b5050565b5f6006548211156114015760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106c8565b5f61140a61176a565b9050611416838261164c565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061146357611463611d63565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114de9190611db9565b816001815181106114f1576114f1611d63565b6001600160a01b0392831660209182029290920101526015546115179130911684610c7f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061154f9085905f90869030904290600401611dd4565b5f604051808303815f87803b158015611566575f80fd5b505af1158015611578573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b5f61141683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611328565b5f825f036115dd57505f610632565b5f6115e88385611d8f565b9050826115f58583611d31565b146114165760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106c8565b5f61141683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061178b565b6015546116a59030906001600160a01b031684610c7f565b60155460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611710573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117359190611e43565b5050505050565b80611749576117496117b7565b6117548484846117e4565b80610ae657610ae6601054600e55601154600f55565b5f805f6117756118d5565b9092509050611784828261164c565b9250505090565b5f81836117ab5760405162461bcd60e51b81526004016106c89190611acf565b505f6113578486611d31565b600e541580156117c75750600f54155b156117ce57565b600e8054601055600f80546011555f9182905555565b5f805f805f806117f38761191a565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150611824908761158d565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611852908661196f565b6001600160a01b0389165f90815260026020526040902055611873816119cd565b61187d8483611a13565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118c291815260200190565b60405180910390a3505050505050505050565b6006545f9081906a52b7d2dcc80cd2e40000006118f2828261164c565b821015611911575050600654926a52b7d2dcc80cd2e400000092509050565b90939092509050565b5f805f805f805f805f6119328a600e54600f54611a37565b9250925092505f61194161176a565b90505f805f6119528e878787611a83565b919e509c509a509598509396509194505050505091939550919395565b5f8061197b8385611d50565b9050838110156114165760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c8565b5f6119d661176a565b90505f6119e383836115ce565b305f908152600260205260409020549091506119ff908261196f565b305f90815260026020526040902055505050565b600654611a20908361158d565b600655600754611a30908261196f565b6007555050565b5f808080611a4a60646111dc89896115ce565b90505f611a5c60646111dc8a896115ce565b90505f611a7382611a6d8b8661158d565b9061158d565b9992985090965090945050505050565b5f808080611a9188866115ce565b90505f611a9e88876115ce565b90505f611aab88886115ce565b90505f611abc82611a6d868661158d565b939b939a50919850919650505050505050565b5f6020808352835180828501525f5b81811015611afa57858101830151858201604001528201611ade565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610736575f80fd5b5f8060408385031215611b3f575f80fd5b8235611b4a81611b1a565b946020939093013593505050565b5f805f60608486031215611b6a575f80fd5b8335611b7581611b1a565b92506020840135611b8581611b1a565b929592945050506040919091013590565b80358015158114611ba5575f80fd5b919050565b5f60208284031215611bba575f80fd5b61141682611b96565b5f60208284031215611bd3575f80fd5b813561141681611b1a565b5f60208284031215611bee575f80fd5b5035919050565b5f805f805f8060c08789031215611c0a575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60408486031215611c46575f80fd5b833567ffffffffffffffff80821115611c5d575f80fd5b818601915086601f830112611c70575f80fd5b813581811115611c7e575f80fd5b8760208260051b8501011115611c92575f80fd5b602092830195509350611ca89186019050611b96565b90509250925092565b5f8060408385031215611cc2575f80fd5b8235611ccd81611b1a565b91506020830135611cdd81611b1a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611d4b57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561063257610632611d1d565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611d8857611d88611d1d565b5060010190565b808202811582820484141761063257610632611d1d565b8181038181111561063257610632611d1d565b5f60208284031215611dc9575f80fd5b815161141681611b1a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e225784516001600160a01b031683529383019391830191600101611dfd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611e55575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ad421b84256512b2762cd770fd21a4b63a6499b85f4406dc4c81ffe87f170cda64736f6c63430008140033

Deployed Bytecode Sourcemap

5531:15305:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8195:83;;;;;;;;;;-1:-1:-1;8265:5:0;;;;;;;;;;;;-1:-1:-1;;;8265:5:0;;;;8195:83;;;;;;;:::i;:::-;;;;;;;;9120:193;;;;;;;;;;-1:-1:-1;9120:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9120:193:0;1023:187:1;6996:41:0;;;;;;;;;;-1:-1:-1;6996:41:0;;;;-1:-1:-1;;;;;6996:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;6996:41:0;1215:229:1;8472:95:0;;;;;;;;;;-1:-1:-1;6092:20:0;8472:95;;;1595:25:1;;;1583:2;1568:18;8472:95:0;1449:177:1;9321:446:0;;;;;;;;;;-1:-1:-1;9321:446:0;;;;;:::i;:::-;;:::i;6934:53::-;;;;;;;;;;;;6980:6;6934:53;;7305:52;;;;;;;;;;;;;;;;8381:83;;;;;;;;;;-1:-1:-1;8381:83:0;;5765:2;2442:36:1;;2430:2;2415:18;8381:83:0;2300:184:1;6208:33:0;;;;;;;;;;;;;;;;6287:37;;;;;;;;;;;;;;;;7044:28;;;;;;;;;;-1:-1:-1;7044:28:0;;;;-1:-1:-1;;;;;7044:28:0;;;19465:101;;;;;;;;;;-1:-1:-1;19465:101:0;;;;;:::i;:::-;;:::i;:::-;;14931:235;;;;;;;;;;;;;:::i;8575:138::-;;;;;;;;;;-1:-1:-1;8575:138:0;;;;;:::i;:::-;;:::i;3018:148::-;;;;;;;;;;;;;:::i;19605:210::-;;;;;;;;;;-1:-1:-1;19605:210:0;;;;;:::i;:::-;;:::i;14603:76::-;;;;;;;;;;;;;:::i;7193:48::-;;;;;;;;;;;;;;;;6372:33;;;;;;;;;;;;;;;;2804:79;;;;;;;;;;-1:-1:-1;2842:7:0;2869:6;-1:-1:-1;;;;;2869:6:0;2804:79;;7248:50;;;;;;;;;;;;;;;;8286:87;;;;;;;;;;-1:-1:-1;8358:7:0;;;;;;;;;;;;-1:-1:-1;;;8358:7:0;;;;8286:87;;19274:139;;;;;;;;;;-1:-1:-1;19274:139:0;;;;;:::i;:::-;;:::i;6331:34::-;;;;;;;;;;;;;;;;8721:199;;;;;;;;;;-1:-1:-1;8721:199:0;;;;;:::i;:::-;;:::i;18572:650::-;;;;;;;;;;-1:-1:-1;18572:650:0;;;;;:::i;:::-;;:::i;6679:42::-;;;;;;;;;;-1:-1:-1;6679:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6248:32;;;;;;;;;;;;;;;;14687:236;;;;;;;;;;;;;:::i;20074:234::-;;;;;;;;;;-1:-1:-1;20074:234:0;;;;;:::i;:::-;;:::i;6412:38::-;;;;;;;;;;;;;;;;8928:184;;;;;;;;;;-1:-1:-1;8928:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9077:18:0;;;9045:7;9077:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8928:184;19854:212;;;;;;;;;;-1:-1:-1;19854:212:0;;;;;:::i;:::-;;:::i;3174:244::-;;;;;;;;;;-1:-1:-1;3174:244:0;;;;;:::i;:::-;;:::i;9120:193::-;9222:4;9244:39;1643:10;9267:7;9276:6;9244:8;:39::i;:::-;-1:-1:-1;9301:4:0;9120:193;;;;;:::o;9321:446::-;9453:4;9470:36;9480:6;9488:9;9499:6;9470:9;:36::i;:::-;9517:220;9540:6;1643:10;9588:138;9644:6;9588:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9588:19:0;;;;;;:11;:19;;;;;;;;1643:10;9588:33;;;;;;;;;;:37;:138::i;:::-;9517:8;:220::i;:::-;-1:-1:-1;9755:4:0;9321:446;;;;;:::o;19465:101::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;;;;;;;;;19532:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19532:26:0::1;-1:-1:-1::0;;;;19532:26:0;;::::1;::::0;;;::::1;::::0;;19465:101::o;14931:235::-;14997:19;;-1:-1:-1;;;;;14997:19:0;1643:10;-1:-1:-1;;;;;14981:35:0;;:72;;;-1:-1:-1;15036:17:0;;-1:-1:-1;;;;;15036:17:0;1643:10;-1:-1:-1;;;;;15020:33:0;;14981:72;14973:81;;;;;;15094:21;15126:32;15094:21;15126:12;:32::i;:::-;14962:204;14931:235::o;8575:138::-;-1:-1:-1;;;;;8688:16:0;;8641:7;8688:16;;;:7;:16;;;;;;8668:37;;:19;:37::i;3018:148::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;3125:1:::1;3109:6:::0;;3088:40:::1;::::0;-1:-1:-1;;;;;3109:6:0;;::::1;::::0;3088:40:::1;::::0;3125:1;;3088:40:::1;3156:1;3139:19:::0;;-1:-1:-1;;;;;;3139:19:0::1;::::0;;3018:148::o;19605:210::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;19703:14:::1;19713:4;6092:20;19703:14;:::i;:::-;19687:11;:31;;19679:91;;;::::0;-1:-1:-1;;;19679:91:0;;5808:2:1;19679:91:0::1;::::0;::::1;5790:21:1::0;5847:2;5827:18;;;5820:30;5886:34;5866:18;;;5859:62;-1:-1:-1;;;5937:18:1;;;5930:45;5992:19;;19679:91:0::1;5606:411:1::0;19679:91:0::1;19781:12;:26:::0;19605:210::o;14603:76::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;14653:11:::1;:18:::0;;-1:-1:-1;;;;14653:18:0::1;-1:-1:-1::0;;;14653:18:0::1;::::0;;14603:76::o;19274:139::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;19365:19:::1;:40:::0;19274:139::o;8721:199::-;8826:4;8848:42;1643:10;8872:9;8883:6;8848:9;:42::i;18572:650::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;18819:2:::1;18799:17:::0;18769:27:::1;18785:11:::0;18769:13;:27:::1;:::i;:::-;:47;;;;:::i;:::-;:52;18761:89;;;::::0;-1:-1:-1;;;18761:89:0;;6354:2:1;18761:89:0::1;::::0;::::1;6336:21:1::0;6393:2;6373:18;;;6366:30;6432:26;6412:18;;;6405:54;6476:18;;18761:89:0::1;6152:348:1::0;18761:89:0::1;18922:2;18901:18:::0;18869:29:::1;18886:12:::0;18869:14;:29:::1;:::i;:::-;:50;;;;:::i;:::-;:55;18861:93;;;::::0;-1:-1:-1;;;18861:93:0;;6707:2:1;18861:93:0::1;::::0;::::1;6689:21:1::0;6746:2;6726:18;;;6719:30;6785:27;6765:18;;;6758:55;6830:18;;18861:93:0::1;6505:349:1::0;18861:93:0::1;18965:14;:30:::0;;;;19006:15:::1;:32:::0;;;;19049:12:::1;:26:::0;;;;19086:13:::1;:28:::0;19125:18:::1;:38:::0;19174:19:::1;:40:::0;18572:650::o;14687:236::-;14753:19;;-1:-1:-1;;;;;14753:19:0;1643:10;-1:-1:-1;;;;;14737:35:0;;:72;;;-1:-1:-1;14792:17:0;;-1:-1:-1;;;;;14792:17:0;1643:10;-1:-1:-1;;;;;14776:33:0;;14737:72;14729:81;;;;;;14821:23;14847:24;14865:4;14847:9;:24::i;:::-;14821:50;;14882:33;14899:15;14882:16;:33::i;20074:234::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;20191:9:::1;20187:114;20206:19:::0;;::::1;20187:114;;;20281:8;20247:18;:31;20266:8;;20275:1;20266:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20247:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20247:31:0;:42;;-1:-1:-1;;20247:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20227:3;::::1;::::0;::::1;:::i;:::-;;;;20187:114;;;;20074:234:::0;;;:::o;19854:212::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;19971:4:::1;19957:11;6092:20;19967:1;19957:11;:::i;:::-;:18;;;;:::i;:::-;19939:13;:37;;19931:86;;;::::0;-1:-1:-1;;;19931:86:0;;7506:2:1;19931:86:0::1;::::0;::::1;7488:21:1::0;7545:2;7525:18;;;7518:30;7584:34;7564:18;;;7557:62;-1:-1:-1;;;7635:18:1;;;7628:34;7679:19;;19931:86:0::1;7304:400:1::0;19931:86:0::1;20028:14;:30:::0;19854:212::o;3174:244::-;2931:6;;-1:-1:-1;;;;;2931:6:0;1643:10;2931:22;2923:67;;;;-1:-1:-1;;;2923:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3263:22:0;::::1;3255:73;;;::::0;-1:-1:-1;;;3255:73:0;;7911:2:1;3255:73:0::1;::::0;::::1;7893:21:1::0;7950:2;7930:18;;;7923:30;7989:34;7969:18;;;7962:62;-1:-1:-1;;;8040:18:1;;;8033:36;8086:19;;3255:73:0::1;7709:402:1::0;3255:73:0::1;3365:6;::::0;;3344:38:::1;::::0;-1:-1:-1;;;;;3344:38:0;;::::1;::::0;3365:6;::::1;::::0;3344:38:::1;::::0;::::1;3393:6;:17:::0;;-1:-1:-1;;;;;;3393:17:0::1;-1:-1:-1::0;;;;;3393:17:0;;;::::1;::::0;;;::::1;::::0;;3174:244::o;10458:369::-;-1:-1:-1;;;;;10585:19:0;;10577:68;;;;-1:-1:-1;;;10577:68:0;;8318:2:1;10577:68:0;;;8300:21:1;8357:2;8337:18;;;8330:30;8396:34;8376:18;;;8369:62;-1:-1:-1;;;8447:18:1;;;8440:34;8491:19;;10577:68:0;8116:400:1;10577:68:0;-1:-1:-1;;;;;10664:21:0;;10656:68;;;;-1:-1:-1;;;10656:68:0;;8723:2:1;10656:68:0;;;8705:21:1;8762:2;8742:18;;;8735:30;8801:34;8781:18;;;8774:62;-1:-1:-1;;;8852:18:1;;;8845:32;8894:19;;10656:68:0;8521:398:1;10656:68:0;-1:-1:-1;;;;;10735:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10787:32;;1595:25:1;;;10787:32:0;;1568:18:1;10787:32:0;;;;;;;10458:369;;;:::o;10835:3162::-;-1:-1:-1;;;;;10957:18:0;;10949:68;;;;-1:-1:-1;;;10949:68:0;;9126:2:1;10949:68:0;;;9108:21:1;9165:2;9145:18;;;9138:30;9204:34;9184:18;;;9177:62;-1:-1:-1;;;9255:18:1;;;9248:35;9300:19;;10949:68:0;8924:401:1;10949:68:0;-1:-1:-1;;;;;11036:16:0;;11028:64;;;;-1:-1:-1;;;11028:64:0;;9532:2:1;11028:64:0;;;9514:21:1;9571:2;9551:18;;;9544:30;9610:34;9590:18;;;9583:62;-1:-1:-1;;;9661:18:1;;;9654:33;9704:19;;11028:64:0;9330:399:1;11028:64:0;11120:1;11111:6;:10;11103:64;;;;-1:-1:-1;;;11103:64:0;;9936:2:1;11103:64:0;;;9918:21:1;9975:2;9955:18;;;9948:30;10014:34;9994:18;;;9987:62;-1:-1:-1;;;10065:18:1;;;10058:39;10114:19;;11103:64:0;9734:405:1;11103:64:0;2842:7;2869:6;-1:-1:-1;;;;;11184:15:0;;;2869:6;;11184:15;;;;:32;;-1:-1:-1;2842:7:0;2869:6;-1:-1:-1;;;;;11203:13:0;;;2869:6;;11203:13;;11184:32;:52;;;;-1:-1:-1;;;;;;11221:15:0;;;;;;:9;:15;;;;;;;;11220:16;11184:52;:70;;;;-1:-1:-1;;;;;;11241:13:0;;;;;;:9;:13;;;;;;;;11240:14;11184:70;11180:2091;;;11311:11;;-1:-1:-1;;;11311:11:0;;;;11306:144;;-1:-1:-1;;;;;11351:15:0;;;;;;:9;:15;;;;;;;;11343:91;;;;-1:-1:-1;;;11343:91:0;;10346:2:1;11343:91:0;;;10328:21:1;10385:2;10365:18;;;10358:30;10424:34;10404:18;;;10397:62;10495:33;10475:18;;;10468:61;10546:19;;11343:91:0;10144:427:1;11343:91:0;11484:12;;11474:6;:22;;11466:63;;;;-1:-1:-1;;;11466:63:0;;10778:2:1;11466:63:0;;;10760:21:1;10817:2;10797:18;;;10790:30;10856;10836:18;;;10829:58;10904:18;;11466:63:0;10576:352:1;11466:63:0;11555:13;;-1:-1:-1;;;;;11549:19:0;;;11555:13;;11549:19;11546:146;;11622:14;;11613:6;11597:13;11607:2;11597:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11589:87;;;;-1:-1:-1;;;11589:87:0;;11135:2:1;11589:87:0;;;11117:21:1;11174:2;11154:18;;;11147:30;11213:34;11193:18;;;11186:62;-1:-1:-1;;;11264:18:1;;;11257:33;11307:19;;11589:87:0;10933:399:1;11589:87:0;11708:28;11739:24;11757:4;11739:9;:24::i;:::-;11817:19;;11708:55;;-1:-1:-1;11793:43:0;;;;;11880:24;;11902:2;11880:24;:::i;:::-;11856:20;:48;11853:148;;11961:19;;:24;;11983:2;11961:24;:::i;:::-;11938:47;;11853:148;12021:7;:18;;;;-1:-1:-1;12033:6:0;;-1:-1:-1;;;12033:6:0;;;;12032:7;12021:18;:43;;;;-1:-1:-1;12051:13:0;;-1:-1:-1;;;;;12043:21:0;;;12051:13;;12043:21;;12021:43;:58;;;;-1:-1:-1;12068:11:0;;-1:-1:-1;;;12068:11:0;;;;12021:58;:87;;;;-1:-1:-1;;;;;;12084:24:0;;;;;;:18;:24;;;;;;;;12083:25;12021:87;:114;;;;-1:-1:-1;;;;;;12113:22:0;;;;;;:18;:22;;;;;;;;12112:23;12021:114;12017:1243;;;12213:23;12302:1;12286:13;;12263:19;;12240:20;:42;;;;:::i;:::-;12239:60;;;;:::i;:::-;:64;;;;:::i;:::-;12213:90;-1:-1:-1;12414:26:0;12443:41;:20;12213:90;12443:24;:41::i;:::-;12414:70;-1:-1:-1;12541:21:0;12591:36;12414:70;12591:16;:36::i;:::-;12656:18;12677:44;:21;12703:17;12677:25;:44::i;:::-;12656:65;-1:-1:-1;12750:23:0;12776:57;12812:20;12776:31;12656:65;12791:15;12776:14;:31::i;:::-;:35;;:57::i;:::-;12750:83;;12854:38;12871:20;12854:16;:38::i;:::-;12935:1;12917:15;:19;:42;;;;;12958:1;12940:15;:19;12917:42;12913:137;;;12984:46;12997:15;13014;12984:12;:46::i;:::-;13097:21;13143:22;;13139:106;;13190:35;13203:21;13190:12;:35::i;:::-;12137:1123;;;;;;12017:1243;11256:2015;;11180:2091;-1:-1:-1;;;;;13347:24:0;;13283:12;13347:24;;;:18;:24;;;;;;13298:4;;13347:24;;;:50;;-1:-1:-1;;;;;;13375:22:0;;;;;;:18;:22;;;;;;;;13347:50;13346:102;;;-1:-1:-1;13411:13:0;;-1:-1:-1;;;;;13403:21:0;;;13411:13;;13403:21;;;;:44;;-1:-1:-1;13434:13:0;;-1:-1:-1;;;;;13428:19:0;;;13434:13;;13428:19;;13403:44;13342:594;;;-1:-1:-1;13475:5:0;13342:594;;;13558:13;;-1:-1:-1;;;;;13550:21:0;;;13558:13;;13550:21;:55;;;;-1:-1:-1;13589:15:0;;-1:-1:-1;;;;;13575:30:0;;;13589:15;;13575:30;;13550:55;13547:162;;;13638:14;;13626:9;:26;13681:12;;13671:7;:22;13547:162;13768:13;;-1:-1:-1;;;;;13762:19:0;;;13768:13;;13762:19;:55;;;;-1:-1:-1;13801:15:0;;-1:-1:-1;;;;;13785:32:0;;;13801:15;;13785:32;;13762:55;13758:165;;;13850:15;;13838:9;:27;13894:13;;13884:7;:23;13758:165;13948:41;13963:4;13969:2;13973:6;13981:7;13948:14;:41::i;3782:224::-;3902:7;3938:12;3930:6;;;;3922:29;;;;-1:-1:-1;;;3922:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3962:9:0;3974:5;3978:1;3974;:5;:::i;:::-;3962:17;3782:224;-1:-1:-1;;;;;3782:224:0:o;14496:99::-;14553:17;;:34;;-1:-1:-1;;;;;14553:17:0;;;;:34;;;;;14580:6;;14553:17;:34;:17;:34;14580:6;14553:17;:34;;;;;;;;;;;;;;;;;;;;;14496:99;:::o;9775:323::-;9870:7;9928;;9917;:18;;9895:110;;;;-1:-1:-1;;;9895:110:0;;11672:2:1;9895:110:0;;;11654:21:1;11711:2;11691:18;;;11684:30;11750:34;11730:18;;;11723:62;-1:-1:-1;;;11801:18:1;;;11794:40;11851:19;;9895:110:0;11470:406:1;9895:110:0;10016:19;10038:10;:8;:10::i;:::-;10016:32;-1:-1:-1;10066:24:0;:7;10016:32;10066:11;:24::i;:::-;10059:31;9775:323;-1:-1:-1;;;9775:323:0:o;14005:483::-;7451:6;:13;;-1:-1:-1;;;;7451:13:0;-1:-1:-1;;;7451:13:0;;;14107:16:::1;::::0;;14121:1:::1;14107:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14107:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14107:16:0::1;14083:40;;14152:4;14134;14139:1;14134:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14134:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14178:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14178:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14134:7;;14178:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14168:4;14173:1;14168:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14168:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14243:15:::1;::::0;14211:62:::1;::::0;14228:4:::1;::::0;14243:15:::1;14261:11:::0;14211:8:::1;:62::i;:::-;14284:15;::::0;:196:::1;::::0;-1:-1:-1;;;14284:196:0;;-1:-1:-1;;;;;14284:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14365:11;;14284:15:::1;::::0;14407:4;;14434::::1;::::0;14454:15:::1;::::0;14284:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7487:6:0;:14;;-1:-1:-1;;;;7487:14:0;;;-1:-1:-1;;;;14005:483:0:o;3638:136::-;3696:7;3723:43;3727:1;3730;3723:43;;;;;;;;;;;;;;;;;:3;:43::i;4014:246::-;4072:7;4096:1;4101;4096:6;4092:47;;-1:-1:-1;4126:1:0;4119:8;;4092:47;4149:9;4161:5;4165:1;4161;:5;:::i;:::-;4149:17;-1:-1:-1;4194:1:0;4185:5;4189:1;4149:17;4185:5;:::i;:::-;:10;4177:56;;;;-1:-1:-1;;;4177:56:0;;13456:2:1;4177:56:0;;;13438:21:1;13495:2;13475:18;;;13468:30;13534:34;13514:18;;;13507:62;-1:-1:-1;;;13585:18:1;;;13578:31;13626:19;;4177:56:0;13254:397:1;4268:132:0;4326:7;4353:39;4357:1;4360;4353:39;;;;;;;;;;;;;;;;;:3;:39::i;20316:517::-;20496:15;;20464:62;;20481:4;;-1:-1:-1;;;;;20496:15:0;20514:11;20464:8;:62::i;:::-;20569:15;;:256;;-1:-1:-1;;;20569:256:0;;20641:4;20569:256;;;13997:34:1;14047:18;;;14040:34;;;20569:15:0;14090:18:1;;;14083:34;;;14133:18;;;14126:34;6980:6:0;14176:19:1;;;14169:44;20799:15:0;14229:19:1;;;14222:35;-1:-1:-1;;;;;20569:15:0;;;;:31;;20608:9;;13931:19:1;;20569:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20316:517;;:::o;15174:282::-;15330:7;15325:28;;15339:14;:12;:14::i;:::-;15364:44;15382:6;15390:9;15401:6;15364:17;:44::i;:::-;15424:7;15419:29;;15433:15;10389:17;;10377:9;:29;10427:15;;10417:7;:25;10333:117;18135:164;18177:7;18198:15;18215;18234:19;:17;:19::i;:::-;18197:56;;-1:-1:-1;18197:56:0;-1:-1:-1;18271:20:0;18197:56;;18271:11;:20::i;:::-;18264:27;;;;18135:164;:::o;4408:223::-;4528:7;4563:12;4556:5;4548:28;;;;-1:-1:-1;;;4548:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4587:9:0;4599:5;4603:1;4599;:5;:::i;10106:219::-;10153:9;;:14;:30;;;;-1:-1:-1;10171:7:0;;:12;10153:30;10149:43;;;10106:219::o;10149:43::-;10224:9;;;10204:17;:29;10262:7;;;10244:15;:25;-1:-1:-1;10282:13:0;;;;10306:11;10106:219::o;15464:610::-;15611:15;15641:23;15679:12;15706:23;15744:12;15771:13;15798:19;15809:7;15798:10;:19::i;:::-;-1:-1:-1;;;;;15846:15:0;;;;;;:7;:15;;;;;;15596:221;;-1:-1:-1;15596:221:0;;-1:-1:-1;15596:221:0;;-1:-1:-1;15596:221:0;-1:-1:-1;15596:221:0;-1:-1:-1;15596:221:0;-1:-1:-1;15846:28:0;;15596:221;15846:19;:28::i;:::-;-1:-1:-1;;;;;15828:15:0;;;;;;;:7;:15;;;;;;:46;;;;15906:18;;;;;;;:39;;15929:15;15906:22;:39::i;:::-;-1:-1:-1;;;;;15885:18:0;;;;;;:7;:18;;;;;:60;15956:16;15966:5;15956:9;:16::i;:::-;15983:23;15995:4;16001;15983:11;:23::i;:::-;16039:9;-1:-1:-1;;;;;16022:44:0;16031:6;-1:-1:-1;;;;;16022:44:0;;16050:15;16022:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;16022:44:0;;;;;;;;15585:489;;;;;;15464:610;;;:::o;18307:257::-;18405:7;;18358;;;;6092:20;18473;18405:7;6092:20;18473:11;:20::i;:::-;18463:7;:30;18459:61;;;-1:-1:-1;;18503:7:0;;;6092:20;;-1:-1:-1;18307:257:0;-1:-1:-1;18307:257:0:o;18459:61::-;18539:7;;18548;;-1:-1:-1;18307:257:0;-1:-1:-1;18307:257:0:o;16493:615::-;16593:7;16615;16637;16659;16681;16703;16739:23;16764:12;16778:13;16808:40;16820:7;16829:9;;16840:7;;16808:11;:40::i;:::-;16738:110;;;;;;16859:19;16881:10;:8;:10::i;:::-;16859:32;;16903:15;16920:23;16945:12;16974:46;16986:7;16995:4;17001:5;17008:11;16974;:46::i;:::-;16902:118;;-1:-1:-1;16902:118:0;-1:-1:-1;16902:118:0;-1:-1:-1;17071:15:0;;-1:-1:-1;17088:4:0;;-1:-1:-1;17094:5:0;;-1:-1:-1;;;;;16493:615:0;;;;;;;:::o;3451:179::-;3509:7;;3541:5;3545:1;3541;:5;:::i;:::-;3529:17;;3570:1;3565;:6;;3557:46;;;;-1:-1:-1;;;3557:46:0;;14781:2:1;3557:46:0;;;14763:21:1;14820:2;14800:18;;;14793:30;14859:29;14839:18;;;14832:57;14906:18;;3557:46:0;14579:351:1;16082:211:0;16135:19;16157:10;:8;:10::i;:::-;16135:32;-1:-1:-1;16178:13:0;16194:22;:5;16135:32;16194:9;:22::i;:::-;16268:4;16252:22;;;;:7;:22;;;;;;16178:38;;-1:-1:-1;16252:33:0;;16178:38;16252:26;:33::i;:::-;16243:4;16227:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16082:211:0:o;16301:147::-;16379:7;;:17;;16391:4;16379:11;:17::i;:::-;16369:7;:27;16420:10;;:20;;16435:4;16420:14;:20::i;:::-;16407:10;:33;-1:-1:-1;;16301:147:0:o;17116:469::-;17285:7;;;;17379:30;17405:3;17379:21;:7;17391:8;17379:11;:21::i;:30::-;17364:45;-1:-1:-1;17420:13:0;17436:28;17460:3;17436:19;:7;17448:6;17436:11;:19::i;:28::-;17420:44;-1:-1:-1;17475:23:0;17501:28;17420:44;17501:17;:7;17513:4;17501:11;:17::i;:::-;:21;;:28::i;:::-;17475:54;17565:4;;-1:-1:-1;17571:5:0;;-1:-1:-1;17116:469:0;;-1:-1:-1;;;;;17116:469:0:o;17593:534::-;17787:7;;;;17884:24;:7;17896:11;17884;:24::i;:::-;17866:42;-1:-1:-1;17919:12:0;17934:21;:4;17943:11;17934:8;:21::i;:::-;17919:36;-1:-1:-1;17966:13:0;17982:22;:5;17992:11;17982:9;:22::i;:::-;17966:38;-1:-1:-1;18015:23:0;18041:28;17966:38;18041:17;:7;18053:4;18041:11;:17::i;:28::-;18088:7;;;;-1:-1:-1;18114:4:0;;-1:-1:-1;17593:534:0;;-1:-1:-1;;;;;;;17593:534:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:160::-;2554:20;;2610:13;;2603:21;2593:32;;2583:60;;2639:1;2636;2629:12;2583:60;2489:160;;;:::o;2654:180::-;2710:6;2763:2;2751:9;2742:7;2738:23;2734:32;2731:52;;;2779:1;2776;2769:12;2731:52;2802:26;2818:9;2802:26;:::i;2839:247::-;2898:6;2951:2;2939:9;2930:7;2926:23;2922:32;2919:52;;;2967:1;2964;2957:12;2919:52;3006:9;2993:23;3025:31;3050:5;3025:31;:::i;3091:180::-;3150:6;3203:2;3191:9;3182:7;3178:23;3174:32;3171:52;;;3219:1;3216;3209:12;3171:52;-1:-1:-1;3242:23:1;;3091:180;-1:-1:-1;3091:180:1:o;3276:523::-;3380:6;3388;3396;3404;3412;3420;3473:3;3461:9;3452:7;3448:23;3444:33;3441:53;;;3490:1;3487;3480:12;3441:53;-1:-1:-1;;3513:23:1;;;3583:2;3568:18;;3555:32;;-1:-1:-1;3634:2:1;3619:18;;3606:32;;3685:2;3670:18;;3657:32;;-1:-1:-1;3736:3:1;3721:19;;3708:33;;-1:-1:-1;3788:3:1;3773:19;3760:33;;-1:-1:-1;3276:523:1;-1:-1:-1;3276:523:1:o;3804:689::-;3896:6;3904;3912;3965:2;3953:9;3944:7;3940:23;3936:32;3933:52;;;3981:1;3978;3971:12;3933:52;4021:9;4008:23;4050:18;4091:2;4083:6;4080:14;4077:34;;;4107:1;4104;4097:12;4077:34;4145:6;4134:9;4130:22;4120:32;;4190:7;4183:4;4179:2;4175:13;4171:27;4161:55;;4212:1;4209;4202:12;4161:55;4252:2;4239:16;4278:2;4270:6;4267:14;4264:34;;;4294:1;4291;4284:12;4264:34;4349:7;4342:4;4332:6;4329:1;4325:14;4321:2;4317:23;4313:34;4310:47;4307:67;;;4370:1;4367;4360:12;4307:67;4401:4;4393:13;;;;-1:-1:-1;4425:6:1;-1:-1:-1;4450:37:1;;4466:20;;;-1:-1:-1;4450:37:1;:::i;:::-;4440:47;;3804:689;;;;;:::o;4498:388::-;4566:6;4574;4627:2;4615:9;4606:7;4602:23;4598:32;4595:52;;;4643:1;4640;4633:12;4595:52;4682:9;4669:23;4701:31;4726:5;4701:31;:::i;:::-;4751:5;-1:-1:-1;4808:2:1;4793:18;;4780:32;4821:33;4780:32;4821:33;:::i;:::-;4873:7;4863:17;;;4498:388;;;;;:::o;4891:356::-;5093:2;5075:21;;;5112:18;;;5105:30;5171:34;5166:2;5151:18;;5144:62;5238:2;5223:18;;4891:356::o;5252:127::-;5313:10;5308:3;5304:20;5301:1;5294:31;5344:4;5341:1;5334:15;5368:4;5365:1;5358:15;5384:217;5424:1;5450;5440:132;;5494:10;5489:3;5485:20;5482:1;5475:31;5529:4;5526:1;5519:15;5557:4;5554:1;5547:15;5440:132;-1:-1:-1;5586:9:1;;5384:217::o;6022:125::-;6087:9;;;6108:10;;;6105:36;;;6121:18;;:::i;6859:127::-;6920:10;6915:3;6911:20;6908:1;6901:31;6951:4;6948:1;6941:15;6975:4;6972:1;6965:15;6991:135;7030:3;7051:17;;;7048:43;;7071:18;;:::i;:::-;-1:-1:-1;7118:1:1;7107:13;;6991:135::o;7131:168::-;7204:9;;;7235;;7252:15;;;7246:22;;7232:37;7222:71;;7273:18;;:::i;11337:128::-;11404:9;;;11425:11;;;11422:37;;;11439:18;;:::i;12013:251::-;12083:6;12136:2;12124:9;12115:7;12111:23;12107:32;12104:52;;;12152:1;12149;12142:12;12104:52;12184:9;12178:16;12203:31;12228:5;12203:31;:::i;12269:980::-;12531:4;12579:3;12568:9;12564:19;12610:6;12599:9;12592:25;12636:2;12674:6;12669:2;12658:9;12654:18;12647:34;12717:3;12712:2;12701:9;12697:18;12690:31;12741:6;12776;12770:13;12807:6;12799;12792:22;12845:3;12834:9;12830:19;12823:26;;12884:2;12876:6;12872:15;12858:29;;12905:1;12915:195;12929:6;12926:1;12923:13;12915:195;;;12994:13;;-1:-1:-1;;;;;12990:39:1;12978:52;;13085:15;;;;13050:12;;;;13026:1;12944:9;12915:195;;;-1:-1:-1;;;;;;;13166:32:1;;;;13161:2;13146:18;;13139:60;-1:-1:-1;;;13230:3:1;13215:19;13208:35;13127:3;12269:980;-1:-1:-1;;;12269:980:1:o;14268:306::-;14356:6;14364;14372;14425:2;14413:9;14404:7;14400:23;14396:32;14393:52;;;14441:1;14438;14431:12;14393:52;14470:9;14464:16;14454:26;;14520:2;14509:9;14505:18;14499:25;14489:35;;14564:2;14553:9;14549:18;14543:25;14533:35;;14268:306;;;;;:::o

Swarm Source

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