ETH Price: $3,456.52 (-0.77%)
Gas: 1 Gwei

Token

Zero Knowledge Network (0KN)
 

Overview

Max Total Supply

10,000,000,000 0KN

Holders

3,671 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (-2.52%)

Onchain Market Cap

$5,293,300.00

Circulating Supply Market Cap

$4,226,311.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ferabg.eth
Balance
30,287.932060969258506338 0KN

Value
$16.03 ( ~0.00463761623515267 Eth) [0.0003%]
0x47597e3f4e32157fd75b13ea6c017226d3f4c7aa
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

0KN is the industry’s first decentralized metadata-private smart contract platform and privacy network, combining the power of zero-knowledge cryptography and cutting-edge post-quantum metadata-private mix networks.

Market

Volume (24H):$4,468.84
Market Capitalization:$4,226,311.00
Circulating Supply:7,988,560,000.00 0KN
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ZeroKnowledgeNetwork

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-06
*/

/*
_____/\\\\\\\_______________/\\\________/\\\____________/\\\\\_____/\\\_        
 ___/\\\/////\\\____________\/\\\_____/\\\//____________\/\\\\\\___\/\\\_       
  __/\\\____\//\\\___________\/\\\__/\\\//_______________\/\\\/\\\__\/\\\_      
   _\/\\\_____\/\\\___________\/\\\\\\//\\\_______________\/\\\//\\\_\/\\\_     
    _\/\\\_____\/\\\___________\/\\\//_\//\\\______________\/\\\\//\\\\/\\\_    
     _\/\\\_____\/\\\___________\/\\\____\//\\\_____________\/\\\_\//\\\/\\\_   
      _\//\\\____/\\\____________\/\\\_____\//\\\____________\/\\\__\//\\\\\\_  
       __\///\\\\\\\/_____________\/\\\______\//\\\___________\/\\\___\//\\\\\_ 
        ____\///////_______________\///________\///____________\///_____\/////__
*/
// SPDX-License-Identifier:MIT
pragma solidity 0.8.18;

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

// Dex Factory contract interface
interface IDexFactory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    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);

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

    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 = payable(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;
    }
}

abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    /**
     * @dev Unauthorized reentrant call.
     */
    error ReentrancyGuardReentrantCall();

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        if (_status == _ENTERED) {
            revert ReentrancyGuardReentrantCall();
        }

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

contract ZeroKnowledgeNetwork is Context, IERC20, Ownable, ReentrancyGuard {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxHolding;

    string private _name = "Zero Knowledge Network";
    string private _symbol = "0KN";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 10_000_000_000 * 1e18; //10 Billion

    uint256 public minTokenToSwap = _totalSupply / (5000); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = (_totalSupply * 5) / 100; // this is the max wallet holding limit
    uint256 public percentDivider = 100;

    bool public distributeAndLiquifyStatus = true; // should be true to turn on to liquidate the pool
    bool public feesStatus = true; // enable by default

    IDexRouter public dexRouter; // router declaration

    address public dexPair; // pair address declaration
    address public OKNTreasuryWallet;
    address public NodeOperatorRewards =
        address(0x8bc9063Ca5a59C6FE79c7114916804ae01806d74);
    address public Seed = address(0xA321B6EdB7f1ae58eA3b494b98917BDAe30cd262);
    address public Team = address(0x041c89471163B034c302624785438C1E2493Adf8);
    address public Marketing =
        address(0x05DB6Dd90464192385Dc4121E39A14B453484De4);

    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);

    uint256 public OKNTreasuryFeeOnBuy = 0;

    uint256 public OKNTreasuryFeeOnSell = 0;

    event TransferForeignToken(address token, uint256 amount);
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeFromMaxHolding(address indexed account, bool isExcluded);
    event UpdatedMaxWalletAmount(uint256 newAmount);
    event NewSwapAmount(uint256 newAmount);
    event DistributionStatus(bool Status);
    event FeeStatus(bool Status);
    event FeeUpdated(uint256 amount);

    event OKNTreasuryWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[NodeOperatorRewards] = (_totalSupply * 30) / 100; //30%
        _balances[Seed] = (_totalSupply * 10) / 100; //10%
        _balances[Team] = (_totalSupply * 5) / 100; //5%
        _balances[Marketing] = (_totalSupply * 10) / 100; //10%
        _balances[owner()] = (_totalSupply * 45) / 100; //45%

        OKNTreasuryWallet = address(0x05DB6Dd90464192385Dc4121E39A14B453484De4);

        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a dex pair for this new ERC20
        address _dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        dexPair = _dexPair;

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[address(dexRouter)] = true;
        isExcludedFromFee[
            address(0x71B5759d73262FBb223956913ecF4ecC51057641)
        ] = true; // Pink Lock

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[address(dexRouter)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[
            address(0x71B5759d73262FBb223956913ecF4ecC51057641)
        ] = true; // Pink Lock

        emit Transfer(
            address(0),
            NodeOperatorRewards,
            (_totalSupply * 30) / 100
        );
        emit Transfer(address(0), Seed, (_totalSupply * 10) / 100);
        emit Transfer(address(0), Team, (_totalSupply * 5) / 100);
        emit Transfer(address(0), Marketing, (_totalSupply * 10) / 100);
        emit Transfer(address(0), owner(), (_totalSupply * 45) / 100);
    }

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

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

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

    function 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()] - amount
        );
        return true;
    }

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] - subtractedValue
        );
        return true;
    }

    function includeOrExcludeFromFee(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromFee[account] = value;
        emit ExcludeFromFees(account, value);
    }

    function includeOrExcludeFromMaxHolding(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromMaxHolding[account] = value;
        emit ExcludeFromMaxHolding(account, value);
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        require(_amount > 0, "min swap amount should be greater than zero");
        minTokenToSwap = _amount * 1e18;
        emit NewSwapAmount(minTokenToSwap);
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set max wallet amount lower than 0.5%"
        );
        maxHoldLimit = _amount * 1e18;
        emit UpdatedMaxWalletAmount(maxHoldLimit);
    }

    function setBuyFeePercent(uint256 _OKNTreasuryFee) external onlyOwner {
        require(_OKNTreasuryFee <= 10, "max buy fee is 10");
        OKNTreasuryFeeOnBuy = _OKNTreasuryFee;
        emit FeeUpdated(OKNTreasuryFeeOnBuy);
    }

    function setSellFeePercent(uint256 _OKNTreasuryFee) external onlyOwner {
        require(_OKNTreasuryFee <= 10, "max sell fee is 10");
        OKNTreasuryFeeOnSell = _OKNTreasuryFee;
        emit FeeUpdated(OKNTreasuryFeeOnSell);
    }

    function setDistributionStatus(bool _value) external onlyOwner {
        // Check if the new value is different from the current state
        require(
            _value != distributeAndLiquifyStatus,
            "Value must be different from current state"
        );
        distributeAndLiquifyStatus = _value;
        emit DistributionStatus(_value);
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        // Check if the new value is different from the current state
        require(
            _value != feesStatus,
            "Value must be different from current state"
        );
        feesStatus = _value;
        emit FeeStatus(_value);
    }

    function updateOKNTreasuryWallet(
        address newOKNTreasuryWallet
    ) external onlyOwner {
        require(
            newOKNTreasuryWallet != address(0),
            "Ownable: new OKNTreasuryWallet is the zero address"
        );
        emit OKNTreasuryWalletUpdated(newOKNTreasuryWallet, OKNTreasuryWallet);
        OKNTreasuryWallet = newOKNTreasuryWallet;
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * OKNTreasuryFeeOnBuy) / percentDivider;
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * OKNTreasuryFeeOnSell) / percentDivider;
        return fee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "0KN: approve from the zero address");
        require(spender != address(0), "0KN: 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), "0KN: transfer from the zero address");
        require(to != address(0), "0KN: transfer to the zero address");
        require(amount > 0, "0KN: Amount must be greater than zero");

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to) + amount <= maxHoldLimit,
                "0KN: max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            allFee = totalBuyFeePerTx(amount);
            tTransferAmount = amount - allFee;

            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount - allFee;
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else {
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + (amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)] + amount;

        emit Transfer(sender, address(this), amount);
    }

    // to withdarw ETH from contract
    function withdrawETH(uint256 _amount) external onlyOwner {
        require(address(this).balance >= _amount, "Invalid Amount");
        payable(msg.sender).transfer(_amount);

        emit Transfer(address(this), msg.sender, _amount);
    }

    function distributeAndLiquify(address from, address to) private {
        uint256 contractTokenBalance = balanceOf(address(this));

        if (
            contractTokenBalance >= minTokenToSwap &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == dexPair) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), minTokenToSwap);

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), minTokenToSwap);
            uint256 ethForMarketing = address(this).balance;

            // sending Eth to Marketing wallet
            if (ethForMarketing > 0)
                payable(OKNTreasuryWallet).transfer(ethForMarketing);
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    function swapTokensForEth(
        address routerAddress,
        uint256 tokenAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp + 300
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"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":"bool","name":"Status","type":"bool"}],"name":"DistributionStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromMaxHolding","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"FeeStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"NewSwapAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"OKNTreasuryWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"inputs":[],"name":"Marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NodeOperatorRewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OKNTreasuryFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OKNTreasuryFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OKNTreasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Seed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Team","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_OKNTreasuryFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_OKNTreasuryFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOKNTreasuryWallet","type":"address"}],"name":"updateOKNTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052601660809081527f5a65726f204b6e6f776c65646765204e6574776f726b0000000000000000000060a0526006906200003e9082620007fd565b506040805180820190915260038152621825a760e91b6020820152600790620000689082620007fd565b506008805460ff191660121790556b204fce5e3e250261100000006009819055620000979061138890620008c9565b600a5560646009546005620000ad9190620008ec565b620000b99190620008c9565b600b556064600c55600d805461010161ffff19909116179055601080546001600160a01b0319908116738bc9063ca5a59c6fe79c7114916804ae01806d741790915560118054821673a321b6edb7f1ae58ea3b494b98917bdae30cd26217905560128054821673041c89471163b034c302624785438c1e2493adf8179055601380549091167305db6dd90464192385dc4121e39a14b453484de4179055600060148190556015553480156200016d57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360018055600954606490620001c490601e620008ec565b620001d09190620008c9565b6010546001600160a01b0316600090815260026020526040902055600954606490620001fe90600a620008ec565b6200020a9190620008c9565b6011546001600160a01b031660009081526002602052604090205560095460649062000238906005620008ec565b620002449190620008c9565b6012546001600160a01b03166000908152600260205260409020556009546064906200027290600a620008ec565b6200027e9190620008c9565b6013546001600160a01b0316600090815260026020526040902055600954606490620002ac90602d620008ec565b620002b89190620008c9565b60026000620002cf6000546001600160a01b031690565b6001600160a01b031681526020808201929092526040908101600090812093909355600f80546001600160a01b0319167305db6dd90464192385dc4121e39a14b453484de4179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038b919062000918565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ff919062000918565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200044d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000473919062000918565b600e80546001600160a01b0319166001600160a01b03838116919091178255600d805462010000600160b01b0319166201000087841681029190911782556000805484168152600460209081526040808320805460ff19908116600190811790925530808652838620805483168417905587548790048916865283862080548316841790557f181b38dae107ad7a36f51e654ef972d6c41d165bcb40c2dfb49fb5e641e8f466805483168417905585548916865260059094528285208054821683179055928452818420805484168217905594549390930485168252828220805482168517905594548416815290812080548516831790557371b5759d73262fbb223956913ecf4ecc5105764181527ff98fd0e7f6efd6fe8e448ee8fb48e788882f12aeb1795b18940ee343139f98b6805490941690911790925560105460095493945016916000805160206200272383398151915290606490620005da90601e620008ec565b620005e69190620008c9565b60405190815260200160405180910390a36011546009546001600160a01b039091169060009060008051602062002723833981519152906064906200062d90600a620008ec565b620006399190620008c9565b60405190815260200160405180910390a36012546009546001600160a01b0390911690600090600080516020620027238339815191529060649062000680906005620008ec565b6200068c9190620008c9565b60405190815260200160405180910390a36013546009546001600160a01b03909116906000906000805160206200272383398151915290606490620006d390600a620008ec565b620006df9190620008c9565b60405190815260200160405180910390a36000546001600160a01b03166001600160a01b031660006001600160a01b0316600080516020620027238339815191526064600954602d620007339190620008ec565b6200073f9190620008c9565b60405190815260200160405180910390a350506200094a565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200078357607f821691505b602082108103620007a457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007f857600081815260208120601f850160051c81016020861015620007d35750805b601f850160051c820191505b81811015620007f457828155600101620007df565b5050505b505050565b81516001600160401b0381111562000819576200081962000758565b62000831816200082a84546200076e565b84620007aa565b602080601f831160018114620008695760008415620008505750858301515b600019600386901b1c1916600185901b178555620007f4565b600085815260208120601f198616915b828110156200089a5788860151825594840194600190910190840162000879565b5085821015620008b95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082620008e757634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176200091257634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200092b57600080fd5b81516001600160a01b03811681146200094357600080fd5b9392505050565b611dc9806200095a6000396000f3fe6080604052600436106102555760003560e01c8063879dd3c511610139578063db886f23116100b6578063f097ea1a1161007a578063f097ea1a14610732578063f14210a614610752578063f242ab4114610772578063f2fde38b14610792578063f4b3dbc3146107b2578063fe6f1b05146107d257600080fd5b8063db886f231461066c578063dd62ed3e1461068c578063ea5b9e85146106d2578063ecd8da37146106f2578063ed4214291461071257600080fd5b8063a2b8a947116100fd578063a2b8a947146105cc578063a457c2d7146105ec578063a9059cbb1461060c578063b0bc2a2d1461062c578063c1f9fdbb1461064c57600080fd5b8063879dd3c5146105445780638da5cb5b14610563578063950eb5d51461058157806395d89b41146105a15780639a36dfa1146105b657600080fd5b806334aa24c4116101d257806369eedd0c1161019657806369eedd0c1461047957806370a082311461048f578063715018a6146104c557806379777b4e146104da57806384ea21bc146104f45780638756aabd1461052457600080fd5b806334aa24c4146103d357806339509351146103f357806352d3b6ea146104135780635342acb414610429578063639e01dd1461045957600080fd5b80631884f1e6116102195780631884f1e61461033b57806323b872dd146103515780632d12939014610371578063313ce56714610391578063339f2c71146103b357600080fd5b806306fdde03146102615780630758d9241461028c578063095ea7b3146102ca5780630a2d140c146102fa57806318160ddd1461031c57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107e8565b60405161028391906119fa565b60405180910390f35b34801561029857600080fd5b50600d546102b2906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610283565b3480156102d657600080fd5b506102ea6102e5366004611a60565b61087a565b6040519015158152602001610283565b34801561030657600080fd5b5061031a610315366004611aa1565b610891565b005b34801561032857600080fd5b506009545b604051908152602001610283565b34801561034757600080fd5b5061032d600a5481565b34801561035d57600080fd5b506102ea61036c366004611abc565b610934565b34801561037d57600080fd5b5061031a61038c366004611afd565b610986565b34801561039d57600080fd5b5060085460405160ff9091168152602001610283565b3480156103bf57600080fd5b5061031a6103ce366004611b32565b610a10565b3480156103df57600080fd5b506010546102b2906001600160a01b031681565b3480156103ff57600080fd5b506102ea61040e366004611a60565b610b08565b34801561041f57600080fd5b5061032d60155481565b34801561043557600080fd5b506102ea610444366004611b32565b60046020526000908152604090205460ff1681565b34801561046557600080fd5b506012546102b2906001600160a01b031681565b34801561048557600080fd5b5061032d60145481565b34801561049b57600080fd5b5061032d6104aa366004611b32565b6001600160a01b031660009081526002602052604090205490565b3480156104d157600080fd5b5061031a610b3f565b3480156104e657600080fd5b50600d546102ea9060ff1681565b34801561050057600080fd5b506102ea61050f366004611b32565b60056020526000908152604090205460ff1681565b34801561053057600080fd5b5061031a61053f366004611b4f565b610bb3565b34801561055057600080fd5b50600d546102ea90610100900460ff1681565b34801561056f57600080fd5b506000546001600160a01b03166102b2565b34801561058d57600080fd5b5061031a61059c366004611b4f565b610cbc565b3480156105ad57600080fd5b50610276610d60565b3480156105c257600080fd5b5061032d600b5481565b3480156105d857600080fd5b5061031a6105e7366004611b4f565b610d6f565b3480156105f857600080fd5b506102ea610607366004611a60565b610e14565b34801561061857600080fd5b506102ea610627366004611a60565b610e4b565b34801561063857600080fd5b5061031a610647366004611aa1565b610e58565b34801561065857600080fd5b506011546102b2906001600160a01b031681565b34801561067857600080fd5b506013546102b2906001600160a01b031681565b34801561069857600080fd5b5061032d6106a7366004611b68565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106de57600080fd5b5061031a6106ed366004611afd565b610ef8565b3480156106fe57600080fd5b50600f546102b2906001600160a01b031681565b34801561071e57600080fd5b5061032d61072d366004611b4f565b610f7a565b34801561073e57600080fd5b5061031a61074d366004611b4f565b610f9f565b34801561075e57600080fd5b5061031a61076d366004611b4f565b611074565b34801561077e57600080fd5b50600e546102b2906001600160a01b031681565b34801561079e57600080fd5b5061031a6107ad366004611b32565b611135565b3480156107be57600080fd5b5061032d6107cd366004611b4f565b61121f565b3480156107de57600080fd5b5061032d600c5481565b6060600680546107f790611ba1565b80601f016020809104026020016040519081016040528092919081815260200182805461082390611ba1565b80156108705780601f1061084557610100808354040283529160200191610870565b820191906000526020600020905b81548152906001019060200180831161085357829003601f168201915b5050505050905090565b6000610887338484611233565b5060015b92915050565b6000546001600160a01b031633146108c45760405162461bcd60e51b81526004016108bb90611bdb565b60405180910390fd5b600d5460ff161515811515036108ec5760405162461bcd60e51b81526004016108bb90611c10565b600d805460ff19168215159081179091556040519081527f0ff846c521f32cbf9b5885504ef4a918e437ceb78c26a4b3bdde29162fc36dd3906020015b60405180910390a150565b600061094184848461134b565b6001600160a01b03841660009081526003602090815260408083203380855292529091205461097c918691610977908690611c70565b611233565b5060019392505050565b6000546001600160a01b031633146109b05760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b038216600081815260056020908152604091829020805460ff191685151590811790915591519182527f5fd35204cd502c8431331d81f2ceadee37e9cba514ecf1c45cf2a85d87597a4891015b60405180910390a25050565b6000546001600160a01b03163314610a3a5760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b038116610aab5760405162461bcd60e51b815260206004820152603260248201527f4f776e61626c653a206e6577204f4b4e547265617375727957616c6c657420696044820152717320746865207a65726f206164647265737360701b60648201526084016108bb565b600f546040516001600160a01b03918216918316907f3a8a2e5edd8a898e7bd8f45b0d88ee1f817b929ebad96f784f64da73002acf9290600090a3600f80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610887918590610977908690611c83565b6000546001600160a01b03163314610b695760405162461bcd60e51b81526004016108bb90611bdb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bdd5760405162461bcd60e51b81526004016108bb90611bdb565b670de0b6b3a76400006103e8610bf260095490565b610bfd906005611c96565b610c079190611cad565b610c119190611cad565b811015610c755760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e352560a01b60648201526084016108bb565b610c8781670de0b6b3a7640000611c96565b600b8190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610929565b6000546001600160a01b03163314610ce65760405162461bcd60e51b81526004016108bb90611bdb565b600a811115610d2b5760405162461bcd60e51b815260206004820152601160248201527006d6178206275792066656520697320313607c1b60448201526064016108bb565b60148190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c7690602001610929565b6060600780546107f790611ba1565b6000546001600160a01b03163314610d995760405162461bcd60e51b81526004016108bb90611bdb565b600a811115610ddf5760405162461bcd60e51b815260206004820152601260248201527106d61782073656c6c206665652069732031360741b60448201526064016108bb565b60158190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c7690602001610929565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610887918590610977908690611c70565b600061088733848461134b565b6000546001600160a01b03163314610e825760405162461bcd60e51b81526004016108bb90611bdb565b600d54610100900460ff16151581151503610eaf5760405162461bcd60e51b81526004016108bb90611c10565b600d80548215156101000261ff00199091161790556040517f257582677437c495f1b305cc04a478c3678e6859529c07c31ca8a2efd7e0c0b89061092990831515815260200190565b6000546001600160a01b03163314610f225760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610a04565b600080600c5460145484610f8e9190611c96565b610f989190611cad565b9392505050565b6000546001600160a01b03163314610fc95760405162461bcd60e51b81526004016108bb90611bdb565b6000811161102d5760405162461bcd60e51b815260206004820152602b60248201527f6d696e207377617020616d6f756e742073686f756c642062652067726561746560448201526a72207468616e207a65726f60a81b60648201526084016108bb565b61103f81670de0b6b3a7640000611c96565b600a8190556040519081527f2e6bb606f8e40581f3aead29e6b2d80455a891e6b1a8cee3624f74a93f01559390602001610929565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016108bb90611bdb565b804710156110df5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b60448201526064016108bb565b604051339082156108fc029083906000818181858888f1935050505015801561110c573d6000803e3d6000fd5b5060405181815233903090600080516020611d748339815191529060200160405180910390a350565b6000546001600160a01b0316331461115f5760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b0381166111c45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600c5460155484610f8e9190611c96565b6001600160a01b0383166112945760405162461bcd60e51b815260206004820152602260248201527f304b4e3a20617070726f76652066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016108bb565b6001600160a01b0382166112ea5760405162461bcd60e51b815260206004820181905260248201527f304b4e3a20617070726f766520746f20746865207a65726f206164647265737360448201526064016108bb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113ad5760405162461bcd60e51b815260206004820152602360248201527f304b4e3a207472616e736665722066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016108bb565b6001600160a01b03821661140d5760405162461bcd60e51b815260206004820152602160248201527f304b4e3a207472616e7366657220746f20746865207a65726f206164647265736044820152607360f81b60648201526084016108bb565b6000811161146b5760405162461bcd60e51b815260206004820152602560248201527f304b4e3a20416d6f756e74206d7573742062652067726561746572207468616e604482015264207a65726f60d81b60648201526084016108bb565b6001600160a01b03821660009081526005602052604090205460ff1661150657600b54816114ae846001600160a01b031660009081526002602052604090205490565b6114b89190611c83565b11156115065760405162461bcd60e51b815260206004820152601b60248201527f304b4e3a206d617820686f6c64206c696d69742065786365656473000000000060448201526064016108bb565b6115108383611580565b6001600160a01b03831660009081526004602052604090205460019060ff168061155257506001600160a01b03831660009081526004602052604090205460ff165b806115655750600d54610100900460ff16155b1561156e575060005b61157a8484848461167b565b50505050565b30600090815260026020526040902054600a5481108015906115b05750600e546001600160a01b03848116911614155b80156115be5750600d5460ff165b80156115ec57506001600160a01b038316301480156115ea5750600e546001600160a01b038381169116145b155b156116765761161330600d60029054906101000a90046001600160a01b0316600a54611233565b600d54600a54611632916201000090046001600160a01b031690611840565b47801561157a57600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611673573d6000803e3d6000fd5b50505b505050565b600e546001600160a01b0385811691161480156116955750805b15611764576000806116a684610f7a565b91506116b28285611c70565b6001600160a01b0387166000908152600260205260409020549091506116d9908590611c70565b6001600160a01b038088166000908152600260205260408082209390935590871681522054611709908290611c83565b6001600160a01b038087166000818152600260205260409081902093909355915190881690600080516020611d748339815191529061174b9085815260200190565b60405180910390a361175d8683611994565b505061157a565b600e546001600160a01b03848116911614801561177e5750805b1561179c57600061178e8361121f565b905060006116b28285611c70565b6001600160a01b0384166000908152600260205260409020546117c0908390611c70565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546117f0908390611c83565b6001600160a01b038085166000818152600260205260409081902093909355915190861690600080516020611d74833981519152906118329086815260200190565b60405180910390a350505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061187957611879611ccf565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fb9190611ce5565b8160018151811061190e5761190e611ccf565b6001600160a01b039283166020918202929092010152821663791ac947846000843061193c4261012c611c83565b6040518663ffffffff1660e01b815260040161195c959493929190611d02565b600060405180830381600087803b15801561197657600080fd5b505af115801561198a573d6000803e3d6000fd5b5050505050505050565b306000908152600260205260409020546119af908290611c83565b30600081815260026020526040908190209290925590516001600160a01b03841690600080516020611d74833981519152906119ee9085815260200190565b60405180910390a35050565b600060208083528351808285015260005b81811015611a2757858101830151858201604001528201611a0b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a5d57600080fd5b50565b60008060408385031215611a7357600080fd5b8235611a7e81611a48565b946020939093013593505050565b80358015158114611a9c57600080fd5b919050565b600060208284031215611ab357600080fd5b610f9882611a8c565b600080600060608486031215611ad157600080fd5b8335611adc81611a48565b92506020840135611aec81611a48565b929592945050506040919091013590565b60008060408385031215611b1057600080fd5b8235611b1b81611a48565b9150611b2960208401611a8c565b90509250929050565b600060208284031215611b4457600080fd5b8135610f9881611a48565b600060208284031215611b6157600080fd5b5035919050565b60008060408385031215611b7b57600080fd5b8235611b8681611a48565b91506020830135611b9681611a48565b809150509250929050565b600181811c90821680611bb557607f821691505b602082108103611bd557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602a908201527f56616c7565206d75737420626520646966666572656e742066726f6d2063757260408201526972656e7420737461746560b01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561088b5761088b611c5a565b8082018082111561088b5761088b611c5a565b808202811582820484141761088b5761088b611c5a565b600082611cca57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611cf757600080fd5b8151610f9881611a48565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d525784516001600160a01b031683529383019391830191600101611d2d565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d13b4726fed77929e36f5c517c27a45628a05bfd7f152c77b6eaa1a9b139782464736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106102555760003560e01c8063879dd3c511610139578063db886f23116100b6578063f097ea1a1161007a578063f097ea1a14610732578063f14210a614610752578063f242ab4114610772578063f2fde38b14610792578063f4b3dbc3146107b2578063fe6f1b05146107d257600080fd5b8063db886f231461066c578063dd62ed3e1461068c578063ea5b9e85146106d2578063ecd8da37146106f2578063ed4214291461071257600080fd5b8063a2b8a947116100fd578063a2b8a947146105cc578063a457c2d7146105ec578063a9059cbb1461060c578063b0bc2a2d1461062c578063c1f9fdbb1461064c57600080fd5b8063879dd3c5146105445780638da5cb5b14610563578063950eb5d51461058157806395d89b41146105a15780639a36dfa1146105b657600080fd5b806334aa24c4116101d257806369eedd0c1161019657806369eedd0c1461047957806370a082311461048f578063715018a6146104c557806379777b4e146104da57806384ea21bc146104f45780638756aabd1461052457600080fd5b806334aa24c4146103d357806339509351146103f357806352d3b6ea146104135780635342acb414610429578063639e01dd1461045957600080fd5b80631884f1e6116102195780631884f1e61461033b57806323b872dd146103515780632d12939014610371578063313ce56714610391578063339f2c71146103b357600080fd5b806306fdde03146102615780630758d9241461028c578063095ea7b3146102ca5780630a2d140c146102fa57806318160ddd1461031c57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107e8565b60405161028391906119fa565b60405180910390f35b34801561029857600080fd5b50600d546102b2906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610283565b3480156102d657600080fd5b506102ea6102e5366004611a60565b61087a565b6040519015158152602001610283565b34801561030657600080fd5b5061031a610315366004611aa1565b610891565b005b34801561032857600080fd5b506009545b604051908152602001610283565b34801561034757600080fd5b5061032d600a5481565b34801561035d57600080fd5b506102ea61036c366004611abc565b610934565b34801561037d57600080fd5b5061031a61038c366004611afd565b610986565b34801561039d57600080fd5b5060085460405160ff9091168152602001610283565b3480156103bf57600080fd5b5061031a6103ce366004611b32565b610a10565b3480156103df57600080fd5b506010546102b2906001600160a01b031681565b3480156103ff57600080fd5b506102ea61040e366004611a60565b610b08565b34801561041f57600080fd5b5061032d60155481565b34801561043557600080fd5b506102ea610444366004611b32565b60046020526000908152604090205460ff1681565b34801561046557600080fd5b506012546102b2906001600160a01b031681565b34801561048557600080fd5b5061032d60145481565b34801561049b57600080fd5b5061032d6104aa366004611b32565b6001600160a01b031660009081526002602052604090205490565b3480156104d157600080fd5b5061031a610b3f565b3480156104e657600080fd5b50600d546102ea9060ff1681565b34801561050057600080fd5b506102ea61050f366004611b32565b60056020526000908152604090205460ff1681565b34801561053057600080fd5b5061031a61053f366004611b4f565b610bb3565b34801561055057600080fd5b50600d546102ea90610100900460ff1681565b34801561056f57600080fd5b506000546001600160a01b03166102b2565b34801561058d57600080fd5b5061031a61059c366004611b4f565b610cbc565b3480156105ad57600080fd5b50610276610d60565b3480156105c257600080fd5b5061032d600b5481565b3480156105d857600080fd5b5061031a6105e7366004611b4f565b610d6f565b3480156105f857600080fd5b506102ea610607366004611a60565b610e14565b34801561061857600080fd5b506102ea610627366004611a60565b610e4b565b34801561063857600080fd5b5061031a610647366004611aa1565b610e58565b34801561065857600080fd5b506011546102b2906001600160a01b031681565b34801561067857600080fd5b506013546102b2906001600160a01b031681565b34801561069857600080fd5b5061032d6106a7366004611b68565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106de57600080fd5b5061031a6106ed366004611afd565b610ef8565b3480156106fe57600080fd5b50600f546102b2906001600160a01b031681565b34801561071e57600080fd5b5061032d61072d366004611b4f565b610f7a565b34801561073e57600080fd5b5061031a61074d366004611b4f565b610f9f565b34801561075e57600080fd5b5061031a61076d366004611b4f565b611074565b34801561077e57600080fd5b50600e546102b2906001600160a01b031681565b34801561079e57600080fd5b5061031a6107ad366004611b32565b611135565b3480156107be57600080fd5b5061032d6107cd366004611b4f565b61121f565b3480156107de57600080fd5b5061032d600c5481565b6060600680546107f790611ba1565b80601f016020809104026020016040519081016040528092919081815260200182805461082390611ba1565b80156108705780601f1061084557610100808354040283529160200191610870565b820191906000526020600020905b81548152906001019060200180831161085357829003601f168201915b5050505050905090565b6000610887338484611233565b5060015b92915050565b6000546001600160a01b031633146108c45760405162461bcd60e51b81526004016108bb90611bdb565b60405180910390fd5b600d5460ff161515811515036108ec5760405162461bcd60e51b81526004016108bb90611c10565b600d805460ff19168215159081179091556040519081527f0ff846c521f32cbf9b5885504ef4a918e437ceb78c26a4b3bdde29162fc36dd3906020015b60405180910390a150565b600061094184848461134b565b6001600160a01b03841660009081526003602090815260408083203380855292529091205461097c918691610977908690611c70565b611233565b5060019392505050565b6000546001600160a01b031633146109b05760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b038216600081815260056020908152604091829020805460ff191685151590811790915591519182527f5fd35204cd502c8431331d81f2ceadee37e9cba514ecf1c45cf2a85d87597a4891015b60405180910390a25050565b6000546001600160a01b03163314610a3a5760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b038116610aab5760405162461bcd60e51b815260206004820152603260248201527f4f776e61626c653a206e6577204f4b4e547265617375727957616c6c657420696044820152717320746865207a65726f206164647265737360701b60648201526084016108bb565b600f546040516001600160a01b03918216918316907f3a8a2e5edd8a898e7bd8f45b0d88ee1f817b929ebad96f784f64da73002acf9290600090a3600f80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610887918590610977908690611c83565b6000546001600160a01b03163314610b695760405162461bcd60e51b81526004016108bb90611bdb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bdd5760405162461bcd60e51b81526004016108bb90611bdb565b670de0b6b3a76400006103e8610bf260095490565b610bfd906005611c96565b610c079190611cad565b610c119190611cad565b811015610c755760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e352560a01b60648201526084016108bb565b610c8781670de0b6b3a7640000611c96565b600b8190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610929565b6000546001600160a01b03163314610ce65760405162461bcd60e51b81526004016108bb90611bdb565b600a811115610d2b5760405162461bcd60e51b815260206004820152601160248201527006d6178206275792066656520697320313607c1b60448201526064016108bb565b60148190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c7690602001610929565b6060600780546107f790611ba1565b6000546001600160a01b03163314610d995760405162461bcd60e51b81526004016108bb90611bdb565b600a811115610ddf5760405162461bcd60e51b815260206004820152601260248201527106d61782073656c6c206665652069732031360741b60448201526064016108bb565b60158190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c7690602001610929565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610887918590610977908690611c70565b600061088733848461134b565b6000546001600160a01b03163314610e825760405162461bcd60e51b81526004016108bb90611bdb565b600d54610100900460ff16151581151503610eaf5760405162461bcd60e51b81526004016108bb90611c10565b600d80548215156101000261ff00199091161790556040517f257582677437c495f1b305cc04a478c3678e6859529c07c31ca8a2efd7e0c0b89061092990831515815260200190565b6000546001600160a01b03163314610f225760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610a04565b600080600c5460145484610f8e9190611c96565b610f989190611cad565b9392505050565b6000546001600160a01b03163314610fc95760405162461bcd60e51b81526004016108bb90611bdb565b6000811161102d5760405162461bcd60e51b815260206004820152602b60248201527f6d696e207377617020616d6f756e742073686f756c642062652067726561746560448201526a72207468616e207a65726f60a81b60648201526084016108bb565b61103f81670de0b6b3a7640000611c96565b600a8190556040519081527f2e6bb606f8e40581f3aead29e6b2d80455a891e6b1a8cee3624f74a93f01559390602001610929565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016108bb90611bdb565b804710156110df5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b60448201526064016108bb565b604051339082156108fc029083906000818181858888f1935050505015801561110c573d6000803e3d6000fd5b5060405181815233903090600080516020611d748339815191529060200160405180910390a350565b6000546001600160a01b0316331461115f5760405162461bcd60e51b81526004016108bb90611bdb565b6001600160a01b0381166111c45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600c5460155484610f8e9190611c96565b6001600160a01b0383166112945760405162461bcd60e51b815260206004820152602260248201527f304b4e3a20617070726f76652066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016108bb565b6001600160a01b0382166112ea5760405162461bcd60e51b815260206004820181905260248201527f304b4e3a20617070726f766520746f20746865207a65726f206164647265737360448201526064016108bb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113ad5760405162461bcd60e51b815260206004820152602360248201527f304b4e3a207472616e736665722066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016108bb565b6001600160a01b03821661140d5760405162461bcd60e51b815260206004820152602160248201527f304b4e3a207472616e7366657220746f20746865207a65726f206164647265736044820152607360f81b60648201526084016108bb565b6000811161146b5760405162461bcd60e51b815260206004820152602560248201527f304b4e3a20416d6f756e74206d7573742062652067726561746572207468616e604482015264207a65726f60d81b60648201526084016108bb565b6001600160a01b03821660009081526005602052604090205460ff1661150657600b54816114ae846001600160a01b031660009081526002602052604090205490565b6114b89190611c83565b11156115065760405162461bcd60e51b815260206004820152601b60248201527f304b4e3a206d617820686f6c64206c696d69742065786365656473000000000060448201526064016108bb565b6115108383611580565b6001600160a01b03831660009081526004602052604090205460019060ff168061155257506001600160a01b03831660009081526004602052604090205460ff165b806115655750600d54610100900460ff16155b1561156e575060005b61157a8484848461167b565b50505050565b30600090815260026020526040902054600a5481108015906115b05750600e546001600160a01b03848116911614155b80156115be5750600d5460ff165b80156115ec57506001600160a01b038316301480156115ea5750600e546001600160a01b038381169116145b155b156116765761161330600d60029054906101000a90046001600160a01b0316600a54611233565b600d54600a54611632916201000090046001600160a01b031690611840565b47801561157a57600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611673573d6000803e3d6000fd5b50505b505050565b600e546001600160a01b0385811691161480156116955750805b15611764576000806116a684610f7a565b91506116b28285611c70565b6001600160a01b0387166000908152600260205260409020549091506116d9908590611c70565b6001600160a01b038088166000908152600260205260408082209390935590871681522054611709908290611c83565b6001600160a01b038087166000818152600260205260409081902093909355915190881690600080516020611d748339815191529061174b9085815260200190565b60405180910390a361175d8683611994565b505061157a565b600e546001600160a01b03848116911614801561177e5750805b1561179c57600061178e8361121f565b905060006116b28285611c70565b6001600160a01b0384166000908152600260205260409020546117c0908390611c70565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546117f0908390611c83565b6001600160a01b038085166000818152600260205260409081902093909355915190861690600080516020611d74833981519152906118329086815260200190565b60405180910390a350505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061187957611879611ccf565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fb9190611ce5565b8160018151811061190e5761190e611ccf565b6001600160a01b039283166020918202929092010152821663791ac947846000843061193c4261012c611c83565b6040518663ffffffff1660e01b815260040161195c959493929190611d02565b600060405180830381600087803b15801561197657600080fd5b505af115801561198a573d6000803e3d6000fd5b5050505050505050565b306000908152600260205260409020546119af908290611c83565b30600081815260026020526040908190209290925590516001600160a01b03841690600080516020611d74833981519152906119ee9085815260200190565b60405180910390a35050565b600060208083528351808285015260005b81811015611a2757858101830151858201604001528201611a0b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a5d57600080fd5b50565b60008060408385031215611a7357600080fd5b8235611a7e81611a48565b946020939093013593505050565b80358015158114611a9c57600080fd5b919050565b600060208284031215611ab357600080fd5b610f9882611a8c565b600080600060608486031215611ad157600080fd5b8335611adc81611a48565b92506020840135611aec81611a48565b929592945050506040919091013590565b60008060408385031215611b1057600080fd5b8235611b1b81611a48565b9150611b2960208401611a8c565b90509250929050565b600060208284031215611b4457600080fd5b8135610f9881611a48565b600060208284031215611b6157600080fd5b5035919050565b60008060408385031215611b7b57600080fd5b8235611b8681611a48565b91506020830135611b9681611a48565b809150509250929050565b600181811c90821680611bb557607f821691505b602082108103611bd557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602a908201527f56616c7565206d75737420626520646966666572656e742066726f6d2063757260408201526972656e7420737461746560b01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561088b5761088b611c5a565b8082018082111561088b5761088b611c5a565b808202811582820484141761088b5761088b611c5a565b600082611cca57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611cf757600080fd5b8151610f9881611a48565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d525784516001600160a01b031683529383019391830191600101611d2d565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d13b4726fed77929e36f5c517c27a45628a05bfd7f152c77b6eaa1a9b139782464736f6c63430008120033

Deployed Bytecode Sourcemap

6310:13453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10764:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7256:27;;;;;;;;;;-1:-1:-1;7256:27:0;;;;;;;-1:-1:-1;;;;;7256:27:0;;;;;;-1:-1:-1;;;;;749:32:1;;;731:51;;719:2;704:18;7256:27:0;567:221:1;11652:186:0;;;;;;;;;;-1:-1:-1;11652:186:0;;;;;:::i;:::-;;:::i;:::-;;;1414:14:1;;1407:22;1389:41;;1377:2;1362:18;11652:186:0;1249:187:1;14314:369:0;;;;;;;;;;-1:-1:-1;14314:369:0;;;;;:::i;:::-;;:::i;:::-;;11041:100;;;;;;;;;;-1:-1:-1;11121:12:0;;11041:100;;;1937:25:1;;;1925:2;1910:18;11041:100:0;1791:177:1;6841:53:0;;;;;;;;;;;;;;;;11846:350;;;;;;;;;;-1:-1:-1;11846:350:0;;;;;:::i;:::-;;:::i;13026:226::-;;;;;;;;;;-1:-1:-1;13026:226:0;;;;;:::i;:::-;;:::i;10950:83::-;;;;;;;;;;-1:-1:-1;11016:9:0;;10950:83;;11016:9;;;;2896:36:1;;2884:2;2869:18;10950:83:0;2754:184:1;15025:383:0;;;;;;;;;;-1:-1:-1;15025:383:0;;;;;:::i;:::-;;:::i;7410:97::-;;;;;;;;;;-1:-1:-1;7410:97:0;;;;-1:-1:-1;;;;;7410:97:0;;;12204:292;;;;;;;;;;-1:-1:-1;12204:292:0;;;;;:::i;:::-;;:::i;7922:39::-;;;;;;;;;;;;;;;;6520:49;;;;;;;;;;-1:-1:-1;6520:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7594:73;;;;;;;;;;-1:-1:-1;7594:73:0;;;;-1:-1:-1;;;;;7594:73:0;;;7875:38;;;;;;;;;;;;;;;;11149:119;;;;;;;;;;-1:-1:-1;11149:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;11242:18:0;11215:7;11242:18;;;:9;:18;;;;;;;11149:119;3430:157;;;;;;;;;;;;;:::i;7094:45::-;;;;;;;;;;-1:-1:-1;7094:45:0;;;;;;;;6576:56;;;;;;;;;;-1:-1:-1;6576:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13504:312;;;;;;;;;;-1:-1:-1;13504:312:0;;;;;:::i;:::-;;:::i;7197:29::-;;;;;;;;;;-1:-1:-1;7197:29:0;;;;;;;;;;;3216:79;;;;;;;;;;-1:-1:-1;3254:7:0;3281:6;-1:-1:-1;;;;;3281:6:0;3216:79;;13824:235;;;;;;;;;;-1:-1:-1;13824:235:0;;;;;:::i;:::-;;:::i;10855:87::-;;;;;;;;;;;;;:::i;6949:54::-;;;;;;;;;;;;;;;;14067:239;;;;;;;;;;-1:-1:-1;14067:239:0;;;;;:::i;:::-;;:::i;12504:300::-;;;;;;;;;;-1:-1:-1;12504:300:0;;;;;:::i;:::-;;:::i;11276:192::-;;;;;;;;;;-1:-1:-1;11276:192:0;;;;;:::i;:::-;;:::i;14691:326::-;;;;;;;;;;-1:-1:-1;14691:326:0;;;;;:::i;:::-;;:::i;7514:73::-;;;;;;;;;;-1:-1:-1;7514:73:0;;;;-1:-1:-1;;;;;7514:73:0;;;7674:87;;;;;;;;;;-1:-1:-1;7674:87:0;;;;-1:-1:-1;;;;;7674:87:0;;;11476:168;;;;;;;;;;-1:-1:-1;11476:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;11609:18:0;;;11582:7;11609:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11476:168;12812:206;;;;;;;;;;-1:-1:-1;12812:206:0;;;;;:::i;:::-;;:::i;7371:32::-;;;;;;;;;;-1:-1:-1;7371:32:0;;;;-1:-1:-1;;;;;7371:32:0;;;15416:173;;;;;;;;;;-1:-1:-1;15416:173:0;;;;;:::i;:::-;;:::i;13260:236::-;;;;;;;;;;-1:-1:-1;13260:236:0;;;;;:::i;:::-;;:::i;18676:245::-;;;;;;;;;;-1:-1:-1;18676:245:0;;;;;:::i;:::-;;:::i;7314:22::-;;;;;;;;;;-1:-1:-1;7314:22:0;;;;-1:-1:-1;;;;;7314:22:0;;;3595:281;;;;;;;;;;-1:-1:-1;3595:281:0;;;;;:::i;:::-;;:::i;15597:175::-;;;;;;;;;;-1:-1:-1;15597:175:0;;;;;:::i;:::-;;:::i;7050:35::-;;;;;;;;;;;;;;;;10764:83;10801:13;10834:5;10827:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10764:83;:::o;11652:186::-;11752:4;11769:39;2648:10;11792:7;11801:6;11769:8;:39::i;:::-;-1:-1:-1;11826:4:0;11652:186;;;;;:::o;14314:369::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;;;;;;;;;14491:26:::1;::::0;::::1;;14481:36;;::::0;::::1;;::::0;14459:128:::1;;;;-1:-1:-1::0;;;14459:128:0::1;;;;;;;:::i;:::-;14598:26;:35:::0;;-1:-1:-1;;14598:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14649:26:::1;::::0;1389:41:1;;;14649:26:0::1;::::0;1377:2:1;1362:18;14649:26:0::1;;;;;;;;14314:369:::0;:::o;11846:350::-;11978:4;11995:36;12005:6;12013:9;12024:6;11995:9;:36::i;:::-;-1:-1:-1;;;;;12113:19:0;;;;;;:11;:19;;;;;;;;2648:10;12113:33;;;;;;;;;12042:124;;12065:6;;12113:42;;12149:6;;12113:42;:::i;:::-;12042:8;:124::i;:::-;-1:-1:-1;12184:4:0;11846:350;;;;;:::o;13026:226::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13150:33:0;::::1;;::::0;;;:24:::1;:33;::::0;;;;;;;;:41;;-1:-1:-1;;13150:41:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13207:37;;1389:41:1;;;13207:37:0::1;::::0;1362:18:1;13207:37:0::1;;;;;;;;13026:226:::0;;:::o;15025:383::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15156:34:0;::::1;15134:134;;;::::0;-1:-1:-1;;;15134:134:0;;5605:2:1;15134:134:0::1;::::0;::::1;5587:21:1::0;5644:2;5624:18;;;5617:30;5683:34;5663:18;;;5656:62;-1:-1:-1;;;5734:18:1;;;5727:48;5792:19;;15134:134:0::1;5403:414:1::0;15134:134:0::1;15331:17;::::0;15284:65:::1;::::0;-1:-1:-1;;;;;15331:17:0;;::::1;::::0;15284:65;::::1;::::0;::::1;::::0;15331:17:::1;::::0;15284:65:::1;15360:17;:40:::0;;-1:-1:-1;;;;;;15360:40:0::1;-1:-1:-1::0;;;;;15360:40:0;;;::::1;::::0;;;::::1;::::0;;15025:383::o;12204:292::-;2648:10;12317:4;12406:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12406:34:0;;;;;;;;;;12317:4;;12334:132;;12384:7;;12406:49;;12444:10;;12406:49;:::i;3430:157::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;3537:1:::1;3521:6:::0;;3500:40:::1;::::0;-1:-1:-1;;;;;3521:6:0;;::::1;::::0;3500:40:::1;::::0;3537:1;;3500:40:::1;3576:1;3551:28:::0;;-1:-1:-1;;;;;;3551:28:0::1;::::0;;3430:157::o;13504:312::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;13640:4:::1;13632;13611:13;11121:12:::0;;;11041:100;13611:13:::1;:17;::::0;13627:1:::1;13611:17;:::i;:::-;13610:26;;;;:::i;:::-;13609:35;;;;:::i;:::-;13598:7;:46;;13576:140;;;::::0;-1:-1:-1;;;13576:140:0;;6549:2:1;13576:140:0::1;::::0;::::1;6531:21:1::0;6588:2;6568:18;;;6561:30;6627:34;6607:18;;;6600:62;-1:-1:-1;;;6678:18:1;;;6671:42;6730:19;;13576:140:0::1;6347:408:1::0;13576:140:0::1;13742:14;:7:::0;13752:4:::1;13742:14;:::i;:::-;13727:12;:29:::0;;;13772:36:::1;::::0;1937:25:1;;;13772:36:0::1;::::0;1925:2:1;1910:18;13772:36:0::1;1791:177:1::0;13824:235:0;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;13932:2:::1;13913:15;:21;;13905:51;;;::::0;-1:-1:-1;;;13905:51:0;;6962:2:1;13905:51:0::1;::::0;::::1;6944:21:1::0;7001:2;6981:18;;;6974:30;-1:-1:-1;;;7020:18:1;;;7013:47;7077:18;;13905:51:0::1;6760:341:1::0;13905:51:0::1;13967:19;:37:::0;;;14020:31:::1;::::0;1937:25:1;;;14020:31:0::1;::::0;1925:2:1;1910:18;14020:31:0::1;1791:177:1::0;10855:87:0;10894:13;10927:7;10920:14;;;;;:::i;14067:239::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;14176:2:::1;14157:15;:21;;14149:52;;;::::0;-1:-1:-1;;;14149:52:0;;7308:2:1;14149:52:0::1;::::0;::::1;7290:21:1::0;7347:2;7327:18;;;7320:30;-1:-1:-1;;;7366:18:1;;;7359:48;7424:18;;14149:52:0::1;7106:342:1::0;14149:52:0::1;14212:20;:38:::0;;;14266:32:::1;::::0;1937:25:1;;;14266:32:0::1;::::0;1925:2:1;1910:18;14266:32:0::1;1791:177:1::0;12504:300:0;2648:10;12622:4;12711:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12711:34:0;;;;;;;;;;12622:4;;12639:135;;12689:7;;12711:52;;12748:15;;12711:52;:::i;11276:192::-;11379:4;11396:42;2648:10;11420:9;11431:6;11396:9;:42::i;14691:326::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;14866:10:::1;::::0;::::1;::::0;::::1;;;14856:20;;::::0;::::1;;::::0;14834:112:::1;;;;-1:-1:-1::0;;;14834:112:0::1;;;;;;;:::i;:::-;14957:10;:19:::0;;;::::1;;;;-1:-1:-1::0;;14957:19:0;;::::1;;::::0;;14992:17:::1;::::0;::::1;::::0;::::1;::::0;14970:6;1414:14:1;1407:22;1389:41;;1377:2;1362:18;;1249:187;12812:206:0;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12929:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;;:34;;-1:-1:-1;;12929:34:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12979:31;;1389:41:1;;;12979:31:0::1;::::0;1362:18:1;12979:31:0::1;1249:187:1::0;15416:173:0;15479:7;15499:11;15546:14;;15523:19;;15514:6;:28;;;;:::i;:::-;15513:47;;;;:::i;:::-;15499:61;15416:173;-1:-1:-1;;;15416:173:0:o;13260:236::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;13352:1:::1;13342:7;:11;13334:67;;;::::0;-1:-1:-1;;;13334:67:0;;7655:2:1;13334:67:0::1;::::0;::::1;7637:21:1::0;7694:2;7674:18;;;7667:30;7733:34;7713:18;;;7706:62;-1:-1:-1;;;7784:18:1;;;7777:41;7835:19;;13334:67:0::1;7453:407:1::0;13334:67:0::1;13429:14;:7:::0;13439:4:::1;13429:14;:::i;:::-;13412;:31:::0;;;13459:29:::1;::::0;1937:25:1;;;13459:29:0::1;::::0;1925:2:1;1910:18;13459:29:0::1;1791:177:1::0;18676:245:0;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;18777:7:::1;18752:21;:32;;18744:59;;;::::0;-1:-1:-1;;;18744:59:0;;8067:2:1;18744:59:0::1;::::0;::::1;8049:21:1::0;8106:2;8086:18;;;8079:30;-1:-1:-1;;;8125:18:1;;;8118:44;8179:18;;18744:59:0::1;7865:338:1::0;18744:59:0::1;18814:37;::::0;18822:10:::1;::::0;18814:37;::::1;;;::::0;18843:7;;18814:37:::1;::::0;;;18843:7;18822:10;18814:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;18869:44:0::1;::::0;1937:25:1;;;18893:10:0::1;::::0;18886:4:::1;::::0;-1:-1:-1;;;;;;;;;;;18869:44:0;1925:2:1;1910:18;18869:44:0::1;;;;;;;18676:245:::0;:::o;3595:281::-;3343:6;;-1:-1:-1;;;;;3343:6:0;2648:10;3343:22;3335:67;;;;-1:-1:-1;;;3335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3698:22:0;::::1;3676:110;;;::::0;-1:-1:-1;;;3676:110:0;;8410:2:1;3676:110:0::1;::::0;::::1;8392:21:1::0;8449:2;8429:18;;;8422:30;8488:34;8468:18;;;8461:62;-1:-1:-1;;;8539:18:1;;;8532:36;8585:19;;3676:110:0::1;8208:402:1::0;3676:110:0::1;3823:6;::::0;;3802:38:::1;::::0;-1:-1:-1;;;;;3802:38:0;;::::1;::::0;3823:6;::::1;::::0;3802:38:::1;::::0;::::1;3851:6;:17:::0;;-1:-1:-1;;;;;;3851:17:0::1;-1:-1:-1::0;;;;;3851:17:0;;;::::1;::::0;;;::::1;::::0;;3595:281::o;15597:175::-;15661:7;15681:11;15729:14;;15705:20;;15696:6;:29;;;;:::i;15780:333::-;-1:-1:-1;;;;;15873:19:0;;15865:66;;;;-1:-1:-1;;;15865:66:0;;8817:2:1;15865:66:0;;;8799:21:1;8856:2;8836:18;;;8829:30;8895:34;8875:18;;;8868:62;-1:-1:-1;;;8946:18:1;;;8939:32;8988:19;;15865:66:0;8615:398:1;15865:66:0;-1:-1:-1;;;;;15950:21:0;;15942:66;;;;-1:-1:-1;;;15942:66:0;;9220:2:1;15942:66:0;;;9202:21:1;;;9239:18;;;9232:30;9298:34;9278:18;;;9271:62;9350:18;;15942:66:0;9018:356:1;15942:66:0;-1:-1:-1;;;;;16021:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16073:32;;1937:25:1;;;16073:32:0;;1910:18:1;16073:32:0;;;;;;;15780:333;;;:::o;16121:990::-;-1:-1:-1;;;;;16209:18:0;;16201:66;;;;-1:-1:-1;;;16201:66:0;;9581:2:1;16201:66:0;;;9563:21:1;9620:2;9600:18;;;9593:30;9659:34;9639:18;;;9632:62;-1:-1:-1;;;9710:18:1;;;9703:33;9753:19;;16201:66:0;9379:399:1;16201:66:0;-1:-1:-1;;;;;16286:16:0;;16278:62;;;;-1:-1:-1;;;16278:62:0;;9985:2:1;16278:62:0;;;9967:21:1;10024:2;10004:18;;;9997:30;10063:34;10043:18;;;10036:62;-1:-1:-1;;;10114:18:1;;;10107:31;10155:19;;16278:62:0;9783:397:1;16278:62:0;16368:1;16359:6;:10;16351:60;;;;-1:-1:-1;;;16351:60:0;;10387:2:1;16351:60:0;;;10369:21:1;10426:2;10406:18;;;10399:30;10465:34;10445:18;;;10438:62;-1:-1:-1;;;10516:18:1;;;10509:35;10561:19;;16351:60:0;10185:401:1;16351:60:0;-1:-1:-1;;;;;16429:28:0;;;;;;:24;:28;;;;;;;;16424:189;;16526:12;;16516:6;16500:13;16510:2;-1:-1:-1;;;;;11242:18:0;11215:7;11242:18;;;:9;:18;;;;;;;11149:119;16500:13;:22;;;;:::i;:::-;:38;;16474:127;;;;-1:-1:-1;;;16474:127:0;;10793:2:1;16474:127:0;;;10775:21:1;10832:2;10812:18;;;10805:30;10871:29;10851:18;;;10844:57;10918:18;;16474:127:0;10591:351:1;16474:127:0;16654:30;16675:4;16681:2;16654:20;:30::i;:::-;-1:-1:-1;;;;;16877:23:0;;16758:12;16877:23;;;:17;:23;;;;;;16773:4;;16877:23;;;:48;;-1:-1:-1;;;;;;16904:21:0;;;;;;:17;:21;;;;;;;;16877:48;:63;;;-1:-1:-1;16930:10:0;;;;;;;16929:11;16877:63;16873:111;;;-1:-1:-1;16967:5:0;16873:111;17062:41;17077:4;17083:2;17087:6;17095:7;17062:14;:41::i;:::-;16190:921;16121:990;;;:::o;18929:831::-;19053:4;19004:28;11242:18;;;:9;:18;;;;;;19114:14;;19090:38;;;;;:70;;-1:-1:-1;19153:7:0;;-1:-1:-1;;;;;19145:15:0;;;19153:7;;19145:15;;19090:70;:113;;;;-1:-1:-1;19177:26:0;;;;19090:113;:171;;;;-1:-1:-1;;;;;;19222:21:0;;19238:4;19222:21;:38;;;;-1:-1:-1;19253:7:0;;-1:-1:-1;;;;;19247:13:0;;;19253:7;;19247:13;19222:38;19220:41;19090:171;19072:681;;;19336:59;19353:4;19368:9;;;;;;;;;-1:-1:-1;;;;;19368:9:0;19380:14;;19336:8;:59::i;:::-;19493:9;;19505:14;;19462:58;;19493:9;;;-1:-1:-1;;;;;19493:9:0;;19462:22;:58::i;:::-;19561:21;19651:19;;19647:94;;19697:17;;19689:52;;-1:-1:-1;;;;;19697:17:0;;;;19689:52;;;;;19725:15;;19697:17;19689:52;19697:17;19689:52;19725:15;19697:17;19689:52;;;;;;;;;;;;;;;;;;;;;19288:465;19072:681;18993:767;18929:831;;:::o;17192:1232::-;17347:7;;-1:-1:-1;;;;;17347:17:0;;;:7;;:17;:28;;;;;17368:7;17347:28;17343:1074;;;17392:14;17421:23;17468:24;17485:6;17468:16;:24::i;:::-;17459:33;-1:-1:-1;17525:15:0;17459:33;17525:6;:15;:::i;:::-;-1:-1:-1;;;;;17577:17:0;;;;;;:9;:17;;;;;;17507:33;;-1:-1:-1;17577:26:0;;17597:6;;17577:26;:::i;:::-;-1:-1:-1;;;;;17557:17:0;;;;;;;:9;:17;;;;;;:46;;;;17641:20;;;;;;;:38;;17664:15;;17641:38;:::i;:::-;-1:-1:-1;;;;;17618:20:0;;;;;;;:9;:20;;;;;;;:61;;;;17699:44;;;;;;-1:-1:-1;;;;;;;;;;;17699:44:0;;;17727:15;1937:25:1;;1925:2;1910:18;;1791:177;17699:44:0;;;;;;;;17760:28;17773:6;17781;17760:12;:28::i;:::-;17377:423;;17343:1074;;;17810:7;;-1:-1:-1;;;;;17810:20:0;;;:7;;:20;:31;;;;;17834:7;17810:31;17806:611;;;17858:14;17875:25;17893:6;17875:17;:25::i;:::-;17858:42;-1:-1:-1;17915:23:0;17941:15;17858:42;17941:6;:15;:::i;17806:611::-;-1:-1:-1;;;;;18255:17:0;;;;;;:9;:17;;;;;;:26;;18275:6;;18255:26;:::i;:::-;-1:-1:-1;;;;;18235:17:0;;;;;;;:9;:17;;;;;;:46;;;;18319:20;;;;;;;:31;;18343:6;;18319:31;:::i;:::-;-1:-1:-1;;;;;18296:20:0;;;;;;;:9;:20;;;;;;;:54;;;;18370:35;;;;;;-1:-1:-1;;;;;;;;;;;18370:35:0;;;18398:6;1937:25:1;;1925:2;1910:18;;1791:177;18370:35:0;;;;;;;;17192:1232;;;;:::o;19824:614::-;20080:16;;;20094:1;20080:16;;;;;;;;19973:13;;19939:20;;20080:16;20094:1;20080:16;;;;;;;;;;-1:-1:-1;20080:16:0;20056:40;;20125:4;20107;20112:1;20107:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20107:23:0;;;-1:-1:-1;;;;;20107:23:0;;;;;20151:9;-1:-1:-1;;;;;20151:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20141:4;20146:1;20141:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20141:26:0;;;:7;;;;;;;;;:26;20206:60;;;20281:11;20307:1;20351:4;20378;20398:21;:15;20416:3;20398:21;:::i;:::-;20206:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19928:510;;19824:614;;:::o;18432:198::-;18550:4;18532:24;;;;:9;:24;;;;;;:33;;18559:6;;18532:33;:::i;:::-;18523:4;18505:24;;;;:9;:24;;;;;;;:60;;;;18583:39;;-1:-1:-1;;;;;18583:39:0;;;-1:-1:-1;;;;;;;;;;;18583:39:0;;;18615:6;1937:25:1;;1925:2;1910:18;;1791:177;18583:39:0;;;;;;;;18432:198;;:::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;793:131::-;-1:-1:-1;;;;;868:31:1;;858:42;;848:70;;914:1;911;904:12;848:70;793:131;:::o;929:315::-;997:6;1005;1058:2;1046:9;1037:7;1033:23;1029:32;1026:52;;;1074:1;1071;1064:12;1026:52;1113:9;1100:23;1132:31;1157:5;1132:31;:::i;:::-;1182:5;1234:2;1219:18;;;;1206:32;;-1:-1:-1;;;929:315:1:o;1441:160::-;1506:20;;1562:13;;1555:21;1545:32;;1535:60;;1591:1;1588;1581:12;1535:60;1441:160;;;:::o;1606:180::-;1662:6;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:26;1770:9;1754:26;:::i;1973:456::-;2050:6;2058;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2174:9;2161:23;2193:31;2218:5;2193:31;:::i;:::-;2243:5;-1:-1:-1;2300:2:1;2285:18;;2272:32;2313:33;2272:32;2313:33;:::i;:::-;1973:456;;2365:7;;-1:-1:-1;;;2419:2:1;2404:18;;;;2391:32;;1973:456::o;2434:315::-;2499:6;2507;2560:2;2548:9;2539:7;2535:23;2531:32;2528:52;;;2576:1;2573;2566:12;2528:52;2615:9;2602:23;2634:31;2659:5;2634:31;:::i;:::-;2684:5;-1:-1:-1;2708:35:1;2739:2;2724:18;;2708:35;:::i;:::-;2698:45;;2434:315;;;;;:::o;2943:247::-;3002:6;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;3110:9;3097:23;3129:31;3154:5;3129:31;:::i;3403:180::-;3462:6;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;-1:-1:-1;3554:23:1;;3403:180;-1:-1:-1;3403:180:1:o;3588:388::-;3656:6;3664;3717:2;3705:9;3696:7;3692:23;3688:32;3685:52;;;3733:1;3730;3723:12;3685:52;3772:9;3759:23;3791:31;3816:5;3791:31;:::i;:::-;3841:5;-1:-1:-1;3898:2:1;3883:18;;3870:32;3911:33;3870:32;3911:33;:::i;:::-;3963:7;3953:17;;;3588:388;;;;;:::o;3981:380::-;4060:1;4056:12;;;;4103;;;4124:61;;4178:4;4170:6;4166:17;4156:27;;4124:61;4231:2;4223:6;4220:14;4200:18;4197:38;4194:161;;4277:10;4272:3;4268:20;4265:1;4258:31;4312:4;4309:1;4302:15;4340:4;4337:1;4330:15;4194:161;;3981:380;;;:::o;4366:356::-;4568:2;4550:21;;;4587:18;;;4580:30;4646:34;4641:2;4626:18;;4619:62;4713:2;4698:18;;4366:356::o;4727:406::-;4929:2;4911:21;;;4968:2;4948:18;;;4941:30;5007:34;5002:2;4987:18;;4980:62;-1:-1:-1;;;5073:2:1;5058:18;;5051:40;5123:3;5108:19;;4727:406::o;5138:127::-;5199:10;5194:3;5190:20;5187:1;5180:31;5230:4;5227:1;5220:15;5254:4;5251:1;5244:15;5270:128;5337:9;;;5358:11;;;5355:37;;;5372:18;;:::i;5822:125::-;5887:9;;;5908:10;;;5905:36;;;5921:18;;:::i;5952:168::-;6025:9;;;6056;;6073:15;;;6067:22;;6053:37;6043:71;;6094:18;;:::i;6125:217::-;6165:1;6191;6181:132;;6235:10;6230:3;6226:20;6223:1;6216:31;6270:4;6267:1;6260:15;6298:4;6295:1;6288:15;6181:132;-1:-1:-1;6327:9:1;;6125:217::o;11079:127::-;11140:10;11135:3;11131:20;11128:1;11121:31;11171:4;11168:1;11161:15;11195:4;11192:1;11185:15;11211:251;11281:6;11334:2;11322:9;11313:7;11309:23;11305:32;11302:52;;;11350:1;11347;11340:12;11302:52;11382:9;11376:16;11401:31;11426:5;11401:31;:::i;11467:980::-;11729:4;11777:3;11766:9;11762:19;11808:6;11797:9;11790:25;11834:2;11872:6;11867:2;11856:9;11852:18;11845:34;11915:3;11910:2;11899:9;11895:18;11888:31;11939:6;11974;11968:13;12005:6;11997;11990:22;12043:3;12032:9;12028:19;12021:26;;12082:2;12074:6;12070:15;12056:29;;12103:1;12113:195;12127:6;12124:1;12121:13;12113:195;;;12192:13;;-1:-1:-1;;;;;12188:39:1;12176:52;;12283:15;;;;12248:12;;;;12224:1;12142:9;12113:195;;;-1:-1:-1;;;;;;;12364:32:1;;;;12359:2;12344:18;;12337:60;-1:-1:-1;;;12428:3:1;12413:19;12406:35;12325:3;11467:980;-1:-1:-1;;;11467:980:1:o

Swarm Source

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