ETH Price: $3,919.74 (+0.89%)

Token

ERC-20: Kao Protocol (KAO)
 

Overview

Max Total Supply

100,000,000 KAO

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,493,636.907928656 KAO

Value
$0.00
0x6928eabfeea1c9549f36b65dad138484b1cbc274
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:
KAO

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-18
*/

/**
         _              _                   _       
        /\_\           / /\                /\ \     
       / / /  _       / /  \              /  \ \    
      / / /  /\_\    / / /\ \            / /\ \ \   
     / / /__/ / /   / / /\ \ \          / / /\ \ \  
    / /\_____/ /   / / /  \ \ \        / / /  \ \_\ 
   / /\_______/   / / /___/ /\ \      / / /   / / / 
  / / /\ \ \     / / /_____/ /\ \    / / /   / / /  
 / / /  \ \ \   / /_________/\ \ \  / / /___/ / /   
/ / /    \ \ \ / / /_       __\ \_\/ / /____\/ /    
\/_/      \_\_\\_\___\     /____/_/\/_________/     
                                                    
https://V2.kaoprotocol.com
https://t.me/KaoProtocol
https://http://twitter.com/kaoprotocol_erc

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

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

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}


library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract KAO is ERC20, Ownable{
    using Address for address payable;
        
    mapping (address user => bool status) public isExcludedFromFees;
    mapping (address buyer => bool status) public whitelistedBuyer;
    mapping (address buyer => bool status) public earlyBuyer;
    mapping (address buyer => uint256 amount) public earlyBuyerDailySell;
    mapping (address user => bool status) public isBlacklisted;
    mapping (address user => uint256 timestamp) public lastTrade;
    
    IRouter public router;
    address public pair;
    address public marketingWallet = 0x46B4E436f0c688f6D1eca38B5990bC424F347A21;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    bool public finalTaxSet;
    
    uint256 public swapThreshold;
    uint256 public maxWallet = 2000000 * 10**9;
    uint256 public maxTx = 2000000 * 10**9;
    uint256 public earlyBuyerDailyMaxSell;
    uint256 public delay = 0;
    uint256 public deadBlocks = 2;
    uint256 public whitelistPeriod = 0 minutes;
    uint256 public launchBlock;
    uint256 public launchTimestamp;
    uint256 public finalTaxTimestamp = 15 minutes;
    
    
    struct Taxes {
        uint256 buy;
        uint256 sell;
        uint256 transfer;
    }

    Taxes public taxes = Taxes(25,35,50);

    modifier mutexLock() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
  
    constructor(address _router) ERC20("Kao Protocol", "KAO") {
        _mint(msg.sender, 100000000 * 10 ** 9);

        router = IRouter(_router);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());

        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[msg.sender] = true;
        isExcludedFromFees[marketingWallet] = true;

        swapThreshold = maxWallet;
        earlyBuyerDailyMaxSell = totalSupply() * 5 / 1000;

        _approve(address(this), address(router), type(uint256).max);
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (swapping || isExcludedFromFees[sender] || isExcludedFromFees[recipient]) {
            super._transfer(sender, recipient, amount);
            return;
        }

        else{
            require(tradingEnabled, "Trading not enabled");
            require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address");
            if(!finalTaxSet && finalTaxTimestamp + launchTimestamp < block.timestamp){
                finalTaxSet = true;
                taxes = Taxes(2, 2, 2); // set final tax after 1 hour
            }
            
            if(launchTimestamp + whitelistPeriod > block.timestamp){
                if(sender == pair && !whitelistedBuyer[recipient]) require(amount <= maxTx, "MaxTx limit exceeded");
            }
            else require(amount <= maxTx, "MaxTx limit exceeded");

            if(sender != pair) {
                if(earlyBuyer[sender]){
                    if(block.timestamp - lastTrade[sender] >= 1 days){
                        earlyBuyerDailyMaxSell = 0;
                    }
                    require(earlyBuyerDailySell[sender] + amount <= earlyBuyerDailyMaxSell, "Early buyer sell limit exceeded");
                    earlyBuyerDailySell[sender] += amount;
                }
                require(lastTrade[sender] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[sender] = block.timestamp;
            }
            if(recipient != pair){
                if(launchTimestamp + whitelistPeriod > block.timestamp && !whitelistedBuyer[recipient]){
                    isBlacklisted[recipient] = true;
                }
                require(balanceOf(recipient) + amount <= maxWallet, "Wallet limit exceeded");
                require(lastTrade[recipient] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[recipient] = block.timestamp;
            }
        }

        if(whitelistedBuyer[recipient] && sender == pair && launchTimestamp + whitelistPeriod > block.timestamp){
            earlyBuyer[recipient] = true;
        }
        
        uint256 fees;

        if(recipient == pair) fees = amount * taxes.sell / 100;
        else if(sender == pair && !whitelistedBuyer[recipient]) fees = amount * taxes.buy / 100;
        else if(sender != pair && recipient != pair) fees = amount * taxes.transfer / 100; 

        if (swapEnabled && recipient == pair && !swapping) swapFees();

        super._transfer(sender, recipient, amount - fees);
        if(fees > 0){
            super._transfer(sender, address(this), fees);
        }
    }

    function swapFees() private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 amountToSwap = swapThreshold;

            if(swapThreshold == maxWallet) swapThreshold = totalSupply() * 200 / 10000;

            uint256 initialBalance = address(this).balance;
            swapTokensForEth(amountToSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            payable(marketingWallet).sendValue(deltaBalance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function setSwapEnabled(bool status) external onlyOwner {
        swapEnabled = status;
    }

    function setSwapTreshhold(uint256 amount) external onlyOwner {
        swapThreshold = amount * 10**9;
    }
    
    function setTaxes(uint256 _buyTax, uint256 _sellTax, uint256 _transferTax) external onlyOwner {
        taxes = Taxes(_buyTax, _sellTax, _transferTax);
    }
    
    function setRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
        _approve(address(this), address(newRouter), type(uint256).max);
    }
    
    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Already enabled");
        tradingEnabled = true;
        swapEnabled = true;
        taxes.transfer = 50;
        launchBlock = block.number;
        launchTimestamp = block.timestamp;
    }
 
    function removeLimits() external onlyOwner{
        maxTx = totalSupply();
        maxWallet = totalSupply();
        taxes.transfer = 0;
    }

    function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{
        maxTx = _maxTx * 10**9;
        maxWallet = _maxWallet * 10**9;
    }
    
    function setIsExcludedFromFees(address _address, bool state) external onlyOwner {
        isExcludedFromFees[_address] = state;
    }
    
    function rescueETH(uint256 weiAmount) external{
        payable(marketingWallet).sendValue(weiAmount);
    }
    
    function rescueERC20(address tokenAdd, uint256 amount) external{
        IERC20(tokenAdd).transfer(marketingWallet, amount);
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"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":"deadBlocks","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":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlyBuyerDailyMaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyerDailySell","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalTaxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"setRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"whitelistPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"whitelistedBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600e80546001600160a01b0319167346b4e436f0c688f6d1eca38b5990bc424f347a2117905566071afd498d0000601081905560115560006013819055600260145560155561038460185560e060405260196080819052602360a0819052603260c0819052918055601a55601b553480156200007a57600080fd5b5060405162002711380380620027118339810160408190526200009d91620005a4565b6040518060400160405280600c81526020016b12d85bc8141c9bdd1bd8dbdb60a21b815250604051806040016040528060038152602001624b414f60e81b8152508160039081620000ef91906200067a565b506004620000fe82826200067a565b5050506200011b620001156200035a60201b60201c565b6200035e565b6200012f3367016345785d8a0000620003b0565b600c80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000189573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001af9190620005a4565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002389190620005a4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac9190620005a4565b600d80546001600160a01b0319166001600160a01b0392831617905530600090815260066020526040808220805460ff1990811660019081179092553384528284208054821683179055600e54909416835291208054909216179055601054600f556103e86200031b60025490565b620003289060056200075c565b6200033491906200077c565b601255600c54620003539030906001600160a01b031660001962000477565b50620007b5565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200040c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200042091906200079f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620004db5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000403565b6001600160a01b0382166200053e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000403565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b600060208284031215620005b757600080fd5b81516001600160a01b0381168114620005cf57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200060157607f821691505b6020821081036200062257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200059f57600081815260208120601f850160051c81016020861015620006515750805b601f850160051c820191505b8181101562000672578281556001016200065d565b505050505050565b81516001600160401b03811115620006965762000696620005d6565b620006ae81620006a78454620005ec565b8462000628565b602080601f831160018114620006e65760008415620006cd5750858301515b600019600386901b1c1916600185901b17855562000672565b600085815260208120601f198616915b828110156200071757888601518255948401946001909101908401620006f6565b5085821015620007365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000776576200077662000746565b92915050565b6000826200079a57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000776576200077662000746565b611f4c80620007c56000396000f3fe60806040526004361061028c5760003560e01c80638cd4426d1161015a578063c26d7be0116100c1578063e9dae5ed1161007a578063e9dae5ed146107e7578063f2fde38b14610807578063f887ea4014610827578063f8b45b0514610847578063fabb0b4f1461085d578063fe575a871461087357600080fd5b8063c26d7be01461072e578063c4590d3f1461075b578063d00efb2f1461077b578063dd62ed3e14610791578063e01af92c146107b1578063e25c3923146107d157600080fd5b8063a457c2d711610113578063a457c2d714610678578063a8aa1b3114610698578063a9059cbb146106b8578063adf18693146106d8578063b48e665e146106f8578063b5d7ab9a1461070e57600080fd5b80638cd4426d146105ce5780638da5cb5b146105ee578063950e40501461060c57806395d89b41146106225780639ccde992146106375780639e252f001461065857600080fd5b80634d2ff7c1116101fe578063715018a6116101b7578063715018a614610507578063728f8eea1461051c5780637437681e14610556578063751039fc1461056c57806375f0a874146105815780638a8c523c146105b957600080fd5b80634d2ff7c1146104245780634fbee1931461045457806365cf7c9b146104845780636a42b8f81461049a5780636ddd1713146104b057806370a08231146104d157600080fd5b8063255f40b611610250578063255f40b614610348578063313ce5671461036a578063395093511461038657806339937cde146103a6578063445418ce146103d65780634ada218b1461040357600080fd5b80630445b6671461029857806306fdde03146102c1578063095ea7b3146102e357806318160ddd1461031357806323b872dd1461032857600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ae600f5481565b6040519081526020015b60405180910390f35b3480156102cd57600080fd5b506102d66108a3565b6040516102b89190611bb9565b3480156102ef57600080fd5b506103036102fe366004611c1c565b610935565b60405190151581526020016102b8565b34801561031f57600080fd5b506002546102ae565b34801561033457600080fd5b50610303610343366004611c48565b61094f565b34801561035457600080fd5b50610368610363366004611c89565b610973565b005b34801561037657600080fd5b50604051600981526020016102b8565b34801561039257600080fd5b506103036103a1366004611c1c565b6109bc565b3480156103b257600080fd5b506103036103c1366004611cc2565b60086020526000908152604090205460ff1681565b3480156103e257600080fd5b506102ae6103f1366004611cc2565b60096020526000908152604090205481565b34801561040f57600080fd5b50600e5461030390600160b01b900460ff1681565b34801561043057600080fd5b5061030361043f366004611cc2565b60076020526000908152604090205460ff1681565b34801561046057600080fd5b5061030361046f366004611cc2565b60066020526000908152604090205460ff1681565b34801561049057600080fd5b506102ae60175481565b3480156104a657600080fd5b506102ae60135481565b3480156104bc57600080fd5b50600e5461030390600160a81b900460ff1681565b3480156104dd57600080fd5b506102ae6104ec366004611cc2565b6001600160a01b031660009081526020819052604090205490565b34801561051357600080fd5b506103686109de565b34801561052857600080fd5b50601954601a54601b5461053b92919083565b604080519384526020840192909252908201526060016102b8565b34801561056257600080fd5b506102ae60115481565b34801561057857600080fd5b506103686109f2565b34801561058d57600080fd5b50600e546105a1906001600160a01b031681565b6040516001600160a01b0390911681526020016102b8565b3480156105c557600080fd5b50610368610a0d565b3480156105da57600080fd5b506103686105e9366004611c1c565b610a8a565b3480156105fa57600080fd5b506005546001600160a01b03166105a1565b34801561061857600080fd5b506102ae60185481565b34801561062e57600080fd5b506102d6610b06565b34801561064357600080fd5b50600e5461030390600160b81b900460ff1681565b34801561066457600080fd5b50610368610673366004611ce6565b610b15565b34801561068457600080fd5b50610303610693366004611c1c565b610b2e565b3480156106a457600080fd5b50600d546105a1906001600160a01b031681565b3480156106c457600080fd5b506103036106d3366004611c1c565b610ba9565b3480156106e457600080fd5b506103686106f3366004611d0d565b610bb7565b34801561070457600080fd5b506102ae60155481565b34801561071a57600080fd5b50610368610729366004611ce6565b610bea565b34801561073a57600080fd5b506102ae610749366004611cc2565b600b6020526000908152604090205481565b34801561076757600080fd5b50610368610776366004611d3b565b610c06565b34801561078757600080fd5b506102ae60165481565b34801561079d57600080fd5b506102ae6107ac366004611c89565b610c34565b3480156107bd57600080fd5b506103686107cc366004611d5d565b610c5f565b3480156107dd57600080fd5b506102ae60125481565b3480156107f357600080fd5b50610368610802366004611d7a565b610c85565b34801561081357600080fd5b50610368610822366004611cc2565b610cb3565b34801561083357600080fd5b50600c546105a1906001600160a01b031681565b34801561085357600080fd5b506102ae60105481565b34801561086957600080fd5b506102ae60145481565b34801561087f57600080fd5b5061030361088e366004611cc2565b600a6020526000908152604090205460ff1681565b6060600380546108b290611da6565b80601f01602080910402602001604051908101604052809291908181526020018280546108de90611da6565b801561092b5780601f106109005761010080835404028352916020019161092b565b820191906000526020600020905b81548152906001019060200180831161090e57829003601f168201915b5050505050905090565b600033610943818585610d29565b60019150505b92915050565b60003361095d858285610e4d565b610968858585610ec7565b506001949350505050565b61097b61165c565b600c80546001600160a01b038085166001600160a01b031992831617909255600d8054928416929091169190911790556109b83083600019610d29565b5050565b6000336109438185856109cf8383610c34565b6109d99190611df6565b610d29565b6109e661165c565b6109f060006116b6565b565b6109fa61165c565b6002546011556002546010556000601b55565b610a1561165c565b600e54600160b01b900460ff1615610a665760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064015b60405180910390fd5b600e805461ffff60a81b191661010160a81b1790556032601b554360165542601755565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611e09565b505050565b6060600480546108b290611da6565b600e54610b2b906001600160a01b031682611708565b50565b60003381610b3c8286610c34565b905083811015610b9c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a5d565b6109688286868403610d29565b600033610943818585610ec7565b610bbf61165c565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b610bf261165c565b610c0081633b9aca00611e26565b600f5550565b610c0e61165c565b610c1c82633b9aca00611e26565b601155610c2d81633b9aca00611e26565b6010555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c6761165c565b600e8054911515600160a81b0260ff60a81b19909216919091179055565b610c8d61165c565b604080516060810182528481526020810184905201819052601992909255601a55601b55565b610cbb61165c565b6001600160a01b038116610d205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5d565b610b2b816116b6565b6001600160a01b038316610d8b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5d565b6001600160a01b038216610dec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e598484610c34565b90506000198114610ec15781811015610eb45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a5d565b610ec18484848403610d29565b50505050565b60008111610f295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a5d565b600e54600160a01b900460ff1680610f5957506001600160a01b03831660009081526006602052604090205460ff165b80610f7c57506001600160a01b03821660009081526006602052604090205460ff165b15610f8c57610b01838383611821565b600e54600160b01b900460ff16610fdb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a5d565b6001600160a01b0383166000908152600a602052604090205460ff1615801561101d57506001600160a01b0382166000908152600a602052604090205460ff16155b61105f5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610a5d565b600e54600160b81b900460ff161580156110875750426017546018546110859190611df6565b105b156110c857600e805460ff60b81b1916600160b81b1790556040805160608101825260028082526020820181905291018190526019819055601a819055601b555b426015546017546110d99190611df6565b111561116857600d546001600160a01b03848116911614801561111557506001600160a01b03821660009081526007602052604090205460ff16155b15611163576011548111156111635760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a5d565b6111b1565b6011548111156111b15760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a5d565b600d546001600160a01b0384811691161461133c576001600160a01b03831660009081526008602052604090205460ff16156112bd576001600160a01b0383166000908152600b6020526040902054620151809061120f9042611e3d565b1061121a5760006012555b6012546001600160a01b038416600090815260096020526040902054611241908390611df6565b111561128f5760405162461bcd60e51b815260206004820152601f60248201527f4561726c792062757965722073656c6c206c696d6974206578636565646564006044820152606401610a5d565b6001600160a01b038316600090815260096020526040812080548392906112b7908490611df6565b90915550505b6013546001600160a01b0384166000908152600b602052604090205442916112e491611df6565b11156113205760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a5d565b6001600160a01b0383166000908152600b602052604090204290555b600d546001600160a01b038381169116146114a357426015546017546113629190611df6565b11801561138857506001600160a01b03821660009081526007602052604090205460ff16155b156113b1576001600160a01b0382166000908152600a60205260409020805460ff191660011790555b601054816113d4846001600160a01b031660009081526020819052604090205490565b6113de9190611df6565b11156114245760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d081b1a5b5a5d08195e18d959591959605a1b6044820152606401610a5d565b6013546001600160a01b0383166000908152600b6020526040902054429161144b91611df6565b11156114875760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a5d565b6001600160a01b0382166000908152600b602052604090204290555b6001600160a01b03821660009081526007602052604090205460ff1680156114d85750600d546001600160a01b038481169116145b80156114f25750426015546017546114f09190611df6565b115b1561151b576001600160a01b0382166000908152600860205260409020805460ff191660011790555b600d546000906001600160a01b039081169084160361155557601a546064906115449084611e26565b61154e9190611e50565b90506115ee565b600d546001600160a01b03858116911614801561158b57506001600160a01b03831660009081526007602052604090205460ff16155b156115a0576019546064906115449084611e26565b600d546001600160a01b038581169116148015906115cc5750600d546001600160a01b03848116911614155b156115ee57601b546064906115e19084611e26565b6115eb9190611e50565b90505b600e54600160a81b900460ff1680156116145750600d546001600160a01b038481169116145b801561162a5750600e54600160a01b900460ff16155b15611637576116376119c5565b61164b84846116468486611e3d565b611821565b8015610ec157610ec1843083611821565b6005546001600160a01b031633146109f05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a5d565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b804710156117585760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a5d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117a5576040519150601f19603f3d011682016040523d82523d6000602084013e6117aa565b606091505b5050905080610b015760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a5d565b6001600160a01b0383166118855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a5d565b6001600160a01b0382166118e75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a5d565b6001600160a01b0383166000908152602081905260409020548181101561195f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ec1565b600e54600160a01b900460ff166109f057600e805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600f548110611a6857600f546010548103611a3557612710611a1c60025490565b611a279060c8611e26565b611a319190611e50565b600f555b47611a3f82611a78565b6000611a4b8247611e3d565b600e54909150611a64906001600160a01b031682611708565b5050505b50600e805460ff60a01b19169055565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611aad57611aad611e72565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190611e88565b81600181518110611b3d57611b3d611e72565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac94790611b83908590600090869030904290600401611ea5565b600060405180830381600087803b158015611b9d57600080fd5b505af1158015611bb1573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611be657858101830151858201604001528201611bca565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b2b57600080fd5b60008060408385031215611c2f57600080fd5b8235611c3a81611c07565b946020939093013593505050565b600080600060608486031215611c5d57600080fd5b8335611c6881611c07565b92506020840135611c7881611c07565b929592945050506040919091013590565b60008060408385031215611c9c57600080fd5b8235611ca781611c07565b91506020830135611cb781611c07565b809150509250929050565b600060208284031215611cd457600080fd5b8135611cdf81611c07565b9392505050565b600060208284031215611cf857600080fd5b5035919050565b8015158114610b2b57600080fd5b60008060408385031215611d2057600080fd5b8235611d2b81611c07565b91506020830135611cb781611cff565b60008060408385031215611d4e57600080fd5b50508035926020909101359150565b600060208284031215611d6f57600080fd5b8135611cdf81611cff565b600080600060608486031215611d8f57600080fd5b505081359360208301359350604090920135919050565b600181811c90821680611dba57607f821691505b602082108103611dda57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561094957610949611de0565b600060208284031215611e1b57600080fd5b8151611cdf81611cff565b808202811582820484141761094957610949611de0565b8181038181111561094957610949611de0565b600082611e6d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e9a57600080fd5b8151611cdf81611c07565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef55784516001600160a01b031683529383019391830191600101611ed0565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201f49333b51823f8f12f70b026bf83466a831f9947aef0a7873ef228f939e28a664736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80638cd4426d1161015a578063c26d7be0116100c1578063e9dae5ed1161007a578063e9dae5ed146107e7578063f2fde38b14610807578063f887ea4014610827578063f8b45b0514610847578063fabb0b4f1461085d578063fe575a871461087357600080fd5b8063c26d7be01461072e578063c4590d3f1461075b578063d00efb2f1461077b578063dd62ed3e14610791578063e01af92c146107b1578063e25c3923146107d157600080fd5b8063a457c2d711610113578063a457c2d714610678578063a8aa1b3114610698578063a9059cbb146106b8578063adf18693146106d8578063b48e665e146106f8578063b5d7ab9a1461070e57600080fd5b80638cd4426d146105ce5780638da5cb5b146105ee578063950e40501461060c57806395d89b41146106225780639ccde992146106375780639e252f001461065857600080fd5b80634d2ff7c1116101fe578063715018a6116101b7578063715018a614610507578063728f8eea1461051c5780637437681e14610556578063751039fc1461056c57806375f0a874146105815780638a8c523c146105b957600080fd5b80634d2ff7c1146104245780634fbee1931461045457806365cf7c9b146104845780636a42b8f81461049a5780636ddd1713146104b057806370a08231146104d157600080fd5b8063255f40b611610250578063255f40b614610348578063313ce5671461036a578063395093511461038657806339937cde146103a6578063445418ce146103d65780634ada218b1461040357600080fd5b80630445b6671461029857806306fdde03146102c1578063095ea7b3146102e357806318160ddd1461031357806323b872dd1461032857600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ae600f5481565b6040519081526020015b60405180910390f35b3480156102cd57600080fd5b506102d66108a3565b6040516102b89190611bb9565b3480156102ef57600080fd5b506103036102fe366004611c1c565b610935565b60405190151581526020016102b8565b34801561031f57600080fd5b506002546102ae565b34801561033457600080fd5b50610303610343366004611c48565b61094f565b34801561035457600080fd5b50610368610363366004611c89565b610973565b005b34801561037657600080fd5b50604051600981526020016102b8565b34801561039257600080fd5b506103036103a1366004611c1c565b6109bc565b3480156103b257600080fd5b506103036103c1366004611cc2565b60086020526000908152604090205460ff1681565b3480156103e257600080fd5b506102ae6103f1366004611cc2565b60096020526000908152604090205481565b34801561040f57600080fd5b50600e5461030390600160b01b900460ff1681565b34801561043057600080fd5b5061030361043f366004611cc2565b60076020526000908152604090205460ff1681565b34801561046057600080fd5b5061030361046f366004611cc2565b60066020526000908152604090205460ff1681565b34801561049057600080fd5b506102ae60175481565b3480156104a657600080fd5b506102ae60135481565b3480156104bc57600080fd5b50600e5461030390600160a81b900460ff1681565b3480156104dd57600080fd5b506102ae6104ec366004611cc2565b6001600160a01b031660009081526020819052604090205490565b34801561051357600080fd5b506103686109de565b34801561052857600080fd5b50601954601a54601b5461053b92919083565b604080519384526020840192909252908201526060016102b8565b34801561056257600080fd5b506102ae60115481565b34801561057857600080fd5b506103686109f2565b34801561058d57600080fd5b50600e546105a1906001600160a01b031681565b6040516001600160a01b0390911681526020016102b8565b3480156105c557600080fd5b50610368610a0d565b3480156105da57600080fd5b506103686105e9366004611c1c565b610a8a565b3480156105fa57600080fd5b506005546001600160a01b03166105a1565b34801561061857600080fd5b506102ae60185481565b34801561062e57600080fd5b506102d6610b06565b34801561064357600080fd5b50600e5461030390600160b81b900460ff1681565b34801561066457600080fd5b50610368610673366004611ce6565b610b15565b34801561068457600080fd5b50610303610693366004611c1c565b610b2e565b3480156106a457600080fd5b50600d546105a1906001600160a01b031681565b3480156106c457600080fd5b506103036106d3366004611c1c565b610ba9565b3480156106e457600080fd5b506103686106f3366004611d0d565b610bb7565b34801561070457600080fd5b506102ae60155481565b34801561071a57600080fd5b50610368610729366004611ce6565b610bea565b34801561073a57600080fd5b506102ae610749366004611cc2565b600b6020526000908152604090205481565b34801561076757600080fd5b50610368610776366004611d3b565b610c06565b34801561078757600080fd5b506102ae60165481565b34801561079d57600080fd5b506102ae6107ac366004611c89565b610c34565b3480156107bd57600080fd5b506103686107cc366004611d5d565b610c5f565b3480156107dd57600080fd5b506102ae60125481565b3480156107f357600080fd5b50610368610802366004611d7a565b610c85565b34801561081357600080fd5b50610368610822366004611cc2565b610cb3565b34801561083357600080fd5b50600c546105a1906001600160a01b031681565b34801561085357600080fd5b506102ae60105481565b34801561086957600080fd5b506102ae60145481565b34801561087f57600080fd5b5061030361088e366004611cc2565b600a6020526000908152604090205460ff1681565b6060600380546108b290611da6565b80601f01602080910402602001604051908101604052809291908181526020018280546108de90611da6565b801561092b5780601f106109005761010080835404028352916020019161092b565b820191906000526020600020905b81548152906001019060200180831161090e57829003601f168201915b5050505050905090565b600033610943818585610d29565b60019150505b92915050565b60003361095d858285610e4d565b610968858585610ec7565b506001949350505050565b61097b61165c565b600c80546001600160a01b038085166001600160a01b031992831617909255600d8054928416929091169190911790556109b83083600019610d29565b5050565b6000336109438185856109cf8383610c34565b6109d99190611df6565b610d29565b6109e661165c565b6109f060006116b6565b565b6109fa61165c565b6002546011556002546010556000601b55565b610a1561165c565b600e54600160b01b900460ff1615610a665760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064015b60405180910390fd5b600e805461ffff60a81b191661010160a81b1790556032601b554360165542601755565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611e09565b505050565b6060600480546108b290611da6565b600e54610b2b906001600160a01b031682611708565b50565b60003381610b3c8286610c34565b905083811015610b9c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a5d565b6109688286868403610d29565b600033610943818585610ec7565b610bbf61165c565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b610bf261165c565b610c0081633b9aca00611e26565b600f5550565b610c0e61165c565b610c1c82633b9aca00611e26565b601155610c2d81633b9aca00611e26565b6010555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c6761165c565b600e8054911515600160a81b0260ff60a81b19909216919091179055565b610c8d61165c565b604080516060810182528481526020810184905201819052601992909255601a55601b55565b610cbb61165c565b6001600160a01b038116610d205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5d565b610b2b816116b6565b6001600160a01b038316610d8b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5d565b6001600160a01b038216610dec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e598484610c34565b90506000198114610ec15781811015610eb45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a5d565b610ec18484848403610d29565b50505050565b60008111610f295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a5d565b600e54600160a01b900460ff1680610f5957506001600160a01b03831660009081526006602052604090205460ff165b80610f7c57506001600160a01b03821660009081526006602052604090205460ff165b15610f8c57610b01838383611821565b600e54600160b01b900460ff16610fdb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a5d565b6001600160a01b0383166000908152600a602052604090205460ff1615801561101d57506001600160a01b0382166000908152600a602052604090205460ff16155b61105f5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610a5d565b600e54600160b81b900460ff161580156110875750426017546018546110859190611df6565b105b156110c857600e805460ff60b81b1916600160b81b1790556040805160608101825260028082526020820181905291018190526019819055601a819055601b555b426015546017546110d99190611df6565b111561116857600d546001600160a01b03848116911614801561111557506001600160a01b03821660009081526007602052604090205460ff16155b15611163576011548111156111635760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a5d565b6111b1565b6011548111156111b15760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a5d565b600d546001600160a01b0384811691161461133c576001600160a01b03831660009081526008602052604090205460ff16156112bd576001600160a01b0383166000908152600b6020526040902054620151809061120f9042611e3d565b1061121a5760006012555b6012546001600160a01b038416600090815260096020526040902054611241908390611df6565b111561128f5760405162461bcd60e51b815260206004820152601f60248201527f4561726c792062757965722073656c6c206c696d6974206578636565646564006044820152606401610a5d565b6001600160a01b038316600090815260096020526040812080548392906112b7908490611df6565b90915550505b6013546001600160a01b0384166000908152600b602052604090205442916112e491611df6565b11156113205760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a5d565b6001600160a01b0383166000908152600b602052604090204290555b600d546001600160a01b038381169116146114a357426015546017546113629190611df6565b11801561138857506001600160a01b03821660009081526007602052604090205460ff16155b156113b1576001600160a01b0382166000908152600a60205260409020805460ff191660011790555b601054816113d4846001600160a01b031660009081526020819052604090205490565b6113de9190611df6565b11156114245760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d081b1a5b5a5d08195e18d959591959605a1b6044820152606401610a5d565b6013546001600160a01b0383166000908152600b6020526040902054429161144b91611df6565b11156114875760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a5d565b6001600160a01b0382166000908152600b602052604090204290555b6001600160a01b03821660009081526007602052604090205460ff1680156114d85750600d546001600160a01b038481169116145b80156114f25750426015546017546114f09190611df6565b115b1561151b576001600160a01b0382166000908152600860205260409020805460ff191660011790555b600d546000906001600160a01b039081169084160361155557601a546064906115449084611e26565b61154e9190611e50565b90506115ee565b600d546001600160a01b03858116911614801561158b57506001600160a01b03831660009081526007602052604090205460ff16155b156115a0576019546064906115449084611e26565b600d546001600160a01b038581169116148015906115cc5750600d546001600160a01b03848116911614155b156115ee57601b546064906115e19084611e26565b6115eb9190611e50565b90505b600e54600160a81b900460ff1680156116145750600d546001600160a01b038481169116145b801561162a5750600e54600160a01b900460ff16155b15611637576116376119c5565b61164b84846116468486611e3d565b611821565b8015610ec157610ec1843083611821565b6005546001600160a01b031633146109f05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a5d565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b804710156117585760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a5d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117a5576040519150601f19603f3d011682016040523d82523d6000602084013e6117aa565b606091505b5050905080610b015760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a5d565b6001600160a01b0383166118855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a5d565b6001600160a01b0382166118e75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a5d565b6001600160a01b0383166000908152602081905260409020548181101561195f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ec1565b600e54600160a01b900460ff166109f057600e805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600f548110611a6857600f546010548103611a3557612710611a1c60025490565b611a279060c8611e26565b611a319190611e50565b600f555b47611a3f82611a78565b6000611a4b8247611e3d565b600e54909150611a64906001600160a01b031682611708565b5050505b50600e805460ff60a01b19169055565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611aad57611aad611e72565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190611e88565b81600181518110611b3d57611b3d611e72565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac94790611b83908590600090869030904290600401611ea5565b600060405180830381600087803b158015611b9d57600080fd5b505af1158015611bb1573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611be657858101830151858201604001528201611bca565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b2b57600080fd5b60008060408385031215611c2f57600080fd5b8235611c3a81611c07565b946020939093013593505050565b600080600060608486031215611c5d57600080fd5b8335611c6881611c07565b92506020840135611c7881611c07565b929592945050506040919091013590565b60008060408385031215611c9c57600080fd5b8235611ca781611c07565b91506020830135611cb781611c07565b809150509250929050565b600060208284031215611cd457600080fd5b8135611cdf81611c07565b9392505050565b600060208284031215611cf857600080fd5b5035919050565b8015158114610b2b57600080fd5b60008060408385031215611d2057600080fd5b8235611d2b81611c07565b91506020830135611cb781611cff565b60008060408385031215611d4e57600080fd5b50508035926020909101359150565b600060208284031215611d6f57600080fd5b8135611cdf81611cff565b600080600060608486031215611d8f57600080fd5b505081359360208301359350604090920135919050565b600181811c90821680611dba57607f821691505b602082108103611dda57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561094957610949611de0565b600060208284031215611e1b57600080fd5b8151611cdf81611cff565b808202811582820484141761094957610949611de0565b8181038181111561094957610949611de0565b600082611e6d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e9a57600080fd5b8151611cdf81611c07565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef55784516001600160a01b031683529383019391830191600101611ed0565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201f49333b51823f8f12f70b026bf83466a831f9947aef0a7873ef228f939e28a664736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

9246:7513:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10013:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10013:28:0;;;;;;;;3460:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4392:201::-;;;;;;;;;;-1:-1:-1;4392:201:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;4392:201:0;1205:187:1;3781:108:0;;;;;;;;;;-1:-1:-1;3869:12:0;;3781:108;;4601:295;;;;;;;;;;-1:-1:-1;4601:295:0;;;;;:::i;:::-;;:::i;15472:224::-;;;;;;;;;;-1:-1:-1;15472:224:0;;;;;:::i;:::-;;:::i;:::-;;11305:92;;;;;;;;;;-1:-1:-1;11305:92:0;;11388:1;2393:36:1;;2381:2;2366:18;11305:92:0;2251:184:1;4904:238:0;;;;;;;;;;-1:-1:-1;4904:238:0;;;;;:::i;:::-;;:::i;9472:56::-;;;;;;;;;;-1:-1:-1;9472:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9535:68;;;;;;;;;;-1:-1:-1;9535:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;9944:26;;;;;;;;;;-1:-1:-1;9944:26:0;;;;-1:-1:-1;;;9944:26:0;;;;;;9403:62;;;;;;;;;;-1:-1:-1;9403:62:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9333:63;;;;;;;;;;-1:-1:-1;9333:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10335:30;;;;;;;;;;;;;;;;10186:24;;;;;;;;;;;;;;;;9914:23;;;;;;;;;;-1:-1:-1;9914:23:0;;;;-1:-1:-1;;;9914:23:0;;;;;;3897:127;;;;;;;;;;-1:-1:-1;3897:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3998:18:0;3971:7;3998:18;;;;;;;;;;;;3897:127;1616:103;;;;;;;;;;;;;:::i;10537:36::-;;;;;;;;;;-1:-1:-1;10537:36:0;;;;;;;;;;;;;;;;2894:25:1;;;2950:2;2935:18;;2928:34;;;;2978:18;;;2971:34;2882:2;2867:18;10537:36:0;2692:319:1;10097:38:0;;;;;;;;;;;;;;;;15994:147;;;;;;;;;;;;;:::i;9802:75::-;;;;;;;;;;-1:-1:-1;9802:75:0;;;;-1:-1:-1;;;;;9802:75:0;;;;;;-1:-1:-1;;;;;3180:32:1;;;3162:51;;3150:2;3135:18;9802:75:0;3016:203:1;15708:277:0;;;;;;;;;;;;;:::i;16585:132::-;;;;;;;;;;-1:-1:-1;16585:132:0;;;;;:::i;:::-;;:::i;1381:87::-;;;;;;;;;;-1:-1:-1;1454:6:0;;-1:-1:-1;;;;;1454:6:0;1381:87;;10372:45;;;;;;;;;;;;;;;;3568:104;;;;;;;;;;;;;:::i;9977:23::-;;;;;;;;;;-1:-1:-1;9977:23:0;;;;-1:-1:-1;;;9977:23:0;;;;;;16463:110;;;;;;;;;;-1:-1:-1;16463:110:0;;;;;:::i;:::-;;:::i;5150:436::-;;;;;;;;;;-1:-1:-1;5150:436:0;;;;;:::i;:::-;;:::i;9776:19::-;;;;;;;;;;-1:-1:-1;9776:19:0;;;;-1:-1:-1;;;;;9776:19:0;;;4032:193;;;;;;;;;;-1:-1:-1;4032:193:0;;;;;:::i;:::-;;:::i;16316:135::-;;;;;;;;;;-1:-1:-1;16316:135:0;;;;;:::i;:::-;;:::i;10253:42::-;;;;;;;;;;;;;;;;15179:110;;;;;;;;;;-1:-1:-1;15179:110:0;;;;;:::i;:::-;;:::i;9675:60::-;;;;;;;;;;-1:-1:-1;9675:60:0;;;;;:::i;:::-;;;;;;;;;;;;;;16149:155;;;;;;;;;;-1:-1:-1;16149:155:0;;;;;:::i;:::-;;:::i;10302:26::-;;;;;;;;;;;;;;;;4233:151;;;;;;;;;;-1:-1:-1;4233:151:0;;;;;:::i;:::-;;:::i;15076:95::-;;;;;;;;;;-1:-1:-1;15076:95:0;;;;;:::i;:::-;;:::i;10142:37::-;;;;;;;;;;;;;;;;15301:159;;;;;;;;;;-1:-1:-1;15301:159:0;;;;;:::i;:::-;;:::i;1727:201::-;;;;;;;;;;-1:-1:-1;1727:201:0;;;;;:::i;:::-;;:::i;9748:21::-;;;;;;;;;;-1:-1:-1;9748:21:0;;;;-1:-1:-1;;;;;9748:21:0;;;10048:42;;;;;;;;;;;;;;;;10217:29;;;;;;;;;;;;;;;;9610:58;;;;;;;;;;-1:-1:-1;9610:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3460:100;3514:13;3547:5;3540:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3460:100;:::o;4392:201::-;4475:4;934:10;4531:32;934:10;4547:7;4556:6;4531:8;:32::i;:::-;4581:4;4574:11;;;4392:201;;;;;:::o;4601:295::-;4732:4;934:10;4790:38;4806:4;934:10;4821:6;4790:15;:38::i;:::-;4839:27;4849:4;4855:2;4859:6;4839:9;:27::i;:::-;-1:-1:-1;4884:4:0;;4601:295;-1:-1:-1;;;;4601:295:0:o;15472:224::-;1340:13;:11;:13::i;:::-;15563:6:::1;:27:::0;;-1:-1:-1;;;;;15563:27:0;;::::1;-1:-1:-1::0;;;;;;15563:27:0;;::::1;;::::0;;;15601:4:::1;:14:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15626:62:::1;15643:4;15580:9:::0;-1:-1:-1;;15626:8:0::1;:62::i;:::-;15472:224:::0;;:::o;4904:238::-;4992:4;934:10;5048:64;934:10;5064:7;5101:10;5073:25;934:10;5064:7;5073:9;:25::i;:::-;:38;;;;:::i;:::-;5048:8;:64::i;1616:103::-;1340:13;:11;:13::i;:::-;1681:30:::1;1708:1;1681:18;:30::i;:::-;1616:103::o:0;15994:147::-;1340:13;:11;:13::i;:::-;3869:12;;16047:5:::1;:21:::0;3869:12;;16079:9:::1;:25:::0;16132:1:::1;16115:14:::0;:18;15994:147::o;15708:277::-;1340:13;:11;:13::i;:::-;15771:14:::1;::::0;-1:-1:-1;;;15771:14:0;::::1;;;15770:15;15762:43;;;::::0;-1:-1:-1;;;15762:43:0;;5811:2:1;15762:43:0::1;::::0;::::1;5793:21:1::0;5850:2;5830:18;;;5823:30;-1:-1:-1;;;5869:18:1;;;5862:45;5924:18;;15762:43:0::1;;;;;;;;;15816:14;:21:::0;;-1:-1:-1;;;;15848:18:0;-1:-1:-1;;;15848:18:0;;;15894:2:::1;15877:14:::0;:19;15921:12:::1;15816:14;15907:26:::0;15962:15:::1;15944;:33:::0;15708:277::o;16585:132::-;16685:15;;16659:50;;-1:-1:-1;;;16659:50:0;;-1:-1:-1;;;;;16685:15:0;;;16659:50;;;6127:51:1;6194:18;;;6187:34;;;16659:25:0;;;;;;6100:18:1;;16659:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16585:132;;:::o;3568:104::-;3624:13;3657:7;3650:14;;;;;:::i;16463:110::-;16528:15;;16520:45;;-1:-1:-1;;;;;16528:15:0;16555:9;16520:34;:45::i;:::-;16463:110;:::o;5150:436::-;5243:4;934:10;5243:4;5326:25;934:10;5343:7;5326:9;:25::i;:::-;5299:52;;5390:15;5370:16;:35;;5362:85;;;;-1:-1:-1;;;5362:85:0;;6684:2:1;5362:85:0;;;6666:21:1;6723:2;6703:18;;;6696:30;6762:34;6742:18;;;6735:62;-1:-1:-1;;;6813:18:1;;;6806:35;6858:19;;5362:85:0;6482:401:1;5362:85:0;5483:60;5492:5;5499:7;5527:15;5508:16;:34;5483:8;:60::i;4032:193::-;4111:4;934:10;4167:28;934:10;4184:2;4188:6;4167:9;:28::i;16316:135::-;1340:13;:11;:13::i;:::-;-1:-1:-1;;;;;16407:28:0;;;::::1;;::::0;;;:18:::1;:28;::::0;;;;:36;;-1:-1:-1;;16407:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16316:135::o;15179:110::-;1340:13;:11;:13::i;:::-;15267:14:::1;:6:::0;15276:5:::1;15267:14;:::i;:::-;15251:13;:30:::0;-1:-1:-1;15179:110:0:o;16149:155::-;1340:13;:11;:13::i;:::-;16241:14:::1;:6:::0;16250:5:::1;16241:14;:::i;:::-;16233:5;:22:::0;16278:18:::1;:10:::0;16291:5:::1;16278:18;:::i;:::-;16266:9;:30:::0;-1:-1:-1;;16149:155:0:o;4233:151::-;-1:-1:-1;;;;;4349:18:0;;;4322:7;4349:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4233:151::o;15076:95::-;1340:13;:11;:13::i;:::-;15143:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;15143:20:0::1;-1:-1:-1::0;;;;15143:20:0;;::::1;::::0;;;::::1;::::0;;15076:95::o;15301:159::-;1340:13;:11;:13::i;:::-;15414:38:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;15406:5:::1;:46:::0;;;;;;;;15301:159::o;1727:201::-;1340:13;:11;:13::i;:::-;-1:-1:-1;;;;;1816:22:0;::::1;1808:73;;;::::0;-1:-1:-1;;;1808:73:0;;7263:2:1;1808:73:0::1;::::0;::::1;7245:21:1::0;7302:2;7282:18;;;7275:30;7341:34;7321:18;;;7314:62;-1:-1:-1;;;7392:18:1;;;7385:36;7438:19;;1808:73:0::1;7061:402:1::0;1808:73:0::1;1892:28;1911:8;1892:18;:28::i;7323:380::-:0;-1:-1:-1;;;;;7459:19:0;;7451:68;;;;-1:-1:-1;;;7451:68:0;;7670:2:1;7451:68:0;;;7652:21:1;7709:2;7689:18;;;7682:30;7748:34;7728:18;;;7721:62;-1:-1:-1;;;7799:18:1;;;7792:34;7843:19;;7451:68:0;7468:400:1;7451:68:0;-1:-1:-1;;;;;7538:21:0;;7530:68;;;;-1:-1:-1;;;7530:68:0;;8075:2:1;7530:68:0;;;8057:21:1;8114:2;8094:18;;;8087:30;8153:34;8133:18;;;8126:62;-1:-1:-1;;;8204:18:1;;;8197:32;8246:19;;7530:68:0;7873:398:1;7530:68:0;-1:-1:-1;;;;;7611:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7663:32;;160:25:1;;;7663:32:0;;133:18:1;7663:32:0;;;;;;;7323:380;;;:::o;7711:453::-;7846:24;7873:25;7883:5;7890:7;7873:9;:25::i;:::-;7846:52;;-1:-1:-1;;7913:16:0;:37;7909:248;;7995:6;7975:16;:26;;7967:68;;;;-1:-1:-1;;;7967:68:0;;8478:2:1;7967:68:0;;;8460:21:1;8517:2;8497:18;;;8490:30;8556:31;8536:18;;;8529:59;8605:18;;7967:68:0;8276:353:1;7967:68:0;8079:51;8088:5;8095:7;8123:6;8104:16;:25;8079:8;:51::i;:::-;7835:329;7711:453;;;:::o;11405:2785::-;11521:1;11512:6;:10;11504:64;;;;-1:-1:-1;;;11504:64:0;;8836:2:1;11504:64:0;;;8818:21:1;8875:2;8855:18;;;8848:30;8914:34;8894:18;;;8887:62;-1:-1:-1;;;8965:18:1;;;8958:39;9014:19;;11504:64:0;8634:405:1;11504:64:0;11585:8;;-1:-1:-1;;;11585:8:0;;;;;:38;;-1:-1:-1;;;;;;11597:26:0;;;;;;:18;:26;;;;;;;;11585:38;:71;;;-1:-1:-1;;;;;;11627:29:0;;;;;;:18;:29;;;;;;;;11585:71;11581:1911;;;11673:42;11689:6;11697:9;11708:6;11673:15;:42::i;11581:1911::-;11787:14;;-1:-1:-1;;;11787:14:0;;;;11779:46;;;;-1:-1:-1;;;11779:46:0;;9246:2:1;11779:46:0;;;9228:21:1;9285:2;9265:18;;;9258:30;-1:-1:-1;;;9304:18:1;;;9297:49;9363:18;;11779:46:0;9044:343:1;11779:46:0;-1:-1:-1;;;;;11849:21:0;;;;;;:13;:21;;;;;;;;11848:22;:51;;;;-1:-1:-1;;;;;;11875:24:0;;;;;;:13;:24;;;;;;;;11874:25;11848:51;11840:83;;;;-1:-1:-1;;;11840:83:0;;9594:2:1;11840:83:0;;;9576:21:1;9633:2;9613:18;;;9606:30;-1:-1:-1;;;9652:18:1;;;9645:49;9711:18;;11840:83:0;9392:343:1;11840:83:0;11942:11;;-1:-1:-1;;;11942:11:0;;;;11941:12;:69;;;;;11995:15;11977;;11957:17;;:35;;;;:::i;:::-;:53;11941:69;11938:197;;;12030:11;:18;;-1:-1:-1;;;;12030:18:0;-1:-1:-1;;;12030:18:0;;;12075:14;;;;;;;;12081:1;12075:14;;;;;;;;;;;;;;12067:5;:22;;;;;;;;;11938:197;12202:15;12184;;12166;;:33;;;;:::i;:::-;:51;12163:256;;;12250:4;;-1:-1:-1;;;;;12240:14:0;;;12250:4;;12240:14;:46;;;;-1:-1:-1;;;;;;12259:27:0;;;;;;:16;:27;;;;;;;;12258:28;12240:46;12237:99;;;12306:5;;12296:6;:15;;12288:48;;;;-1:-1:-1;;;12288:48:0;;9942:2:1;12288:48:0;;;9924:21:1;9981:2;9961:18;;;9954:30;-1:-1:-1;;;10000:18:1;;;9993:50;10060:18;;12288:48:0;9740:344:1;12288:48:0;12163:256;;;12389:5;;12379:6;:15;;12371:48;;;;-1:-1:-1;;;12371:48:0;;9942:2:1;12371:48:0;;;9924:21:1;9981:2;9961:18;;;9954:30;-1:-1:-1;;;10000:18:1;;;9993:50;10060:18;;12371:48:0;9740:344:1;12371:48:0;12449:4;;-1:-1:-1;;;;;12439:14:0;;;12449:4;;12439:14;12436:573;;-1:-1:-1;;;;;12477:18:0;;;;;;:10;:18;;;;;;;;12474:379;;;-1:-1:-1;;;;;12540:17:0;;;;;;:9;:17;;;;;;12561:6;;12522:35;;:15;:35;:::i;:::-;:45;12519:126;;12620:1;12595:22;:26;12519:126;12715:22;;-1:-1:-1;;;;;12675:27:0;;;;;;:19;:27;;;;;;:36;;12705:6;;12675:36;:::i;:::-;:62;;12667:106;;;;-1:-1:-1;;;12667:106:0;;10424:2:1;12667:106:0;;;10406:21:1;10463:2;10443:18;;;10436:30;10502:33;10482:18;;;10475:61;10553:18;;12667:106:0;10222:355:1;12667:106:0;-1:-1:-1;;;;;12796:27:0;;;;;;:19;:27;;;;;:37;;12827:6;;12796:27;:37;;12827:6;;12796:37;:::i;:::-;;;;-1:-1:-1;;12474:379:0;12899:5;;-1:-1:-1;;;;;12879:17:0;;;;;;:9;:17;;;;;;12908:15;;12879:25;;;:::i;:::-;:44;;12871:68;;;;-1:-1:-1;;;12871:68:0;;10784:2:1;12871:68:0;;;10766:21:1;10823:2;10803:18;;;10796:30;-1:-1:-1;;;10842:18:1;;;10835:41;10893:18;;12871:68:0;10582:335:1;12871:68:0;-1:-1:-1;;;;;12958:17:0;;;;;;:9;:17;;;;;12978:15;12958:35;;12436:573;13039:4;;-1:-1:-1;;;;;13026:17:0;;;13039:4;;13026:17;13023:458;;13102:15;13084;;13066;;:33;;;;:::i;:::-;:51;:83;;;;-1:-1:-1;;;;;;13122:27:0;;;;;;:16;:27;;;;;;;;13121:28;13066:83;13063:161;;;-1:-1:-1;;;;;13173:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;13173:31:0;13200:4;13173:31;;;13063:161;13283:9;;13273:6;13250:20;13260:9;-1:-1:-1;;;;;3998:18:0;3971:7;3998:18;;;;;;;;;;;;3897:127;13250:20;:29;;;;:::i;:::-;:42;;13242:76;;;;-1:-1:-1;;;13242:76:0;;11124:2:1;13242:76:0;;;11106:21:1;11163:2;11143:18;;;11136:30;-1:-1:-1;;;11182:18:1;;;11175:51;11243:18;;13242:76:0;10922:345:1;13242:76:0;13368:5;;-1:-1:-1;;;;;13345:20:0;;;;;;:9;:20;;;;;;13377:15;;13345:28;;;:::i;:::-;:47;;13337:71;;;;-1:-1:-1;;;13337:71:0;;10784:2:1;13337:71:0;;;10766:21:1;10823:2;10803:18;;;10796:30;-1:-1:-1;;;10842:18:1;;;10835:41;10893:18;;13337:71:0;10582:335:1;13337:71:0;-1:-1:-1;;;;;13427:20:0;;;;;;:9;:20;;;;;13450:15;13427:38;;13023:458;-1:-1:-1;;;;;13507:27:0;;;;;;:16;:27;;;;;;;;:45;;;;-1:-1:-1;13548:4:0;;-1:-1:-1;;;;;13538:14:0;;;13548:4;;13538:14;13507:45;:100;;;;;13592:15;13574;;13556;;:33;;;;:::i;:::-;:51;13507:100;13504:159;;;-1:-1:-1;;;;;13623:21:0;;;;;;:10;:21;;;;;:28;;-1:-1:-1;;13623:28:0;13647:4;13623:28;;;13504:159;13724:4;;13683:12;;-1:-1:-1;;;;;13724:4:0;;;13711:17;;;;13708:244;;13746:10;;13759:3;;13737:19;;:6;:19;:::i;:::-;:25;;;;:::i;:::-;13730:32;;13708:244;;;13791:4;;-1:-1:-1;;;;;13781:14:0;;;13791:4;;13781:14;:46;;;;-1:-1:-1;;;;;;13800:27:0;;;;;;:16;:27;;;;;;;;13799:28;13781:46;13778:174;;;13845:5;:9;13857:3;;13836:18;;:6;:18;:::i;13778:174::-;13889:4;;-1:-1:-1;;;;;13879:14:0;;;13889:4;;13879:14;;;;:35;;-1:-1:-1;13910:4:0;;-1:-1:-1;;;;;13897:17:0;;;13910:4;;13897:17;;13879:35;13876:76;;;13932:14;;13949:3;;13923:23;;:6;:23;:::i;:::-;:29;;;;:::i;:::-;13916:36;;13876:76;13970:11;;-1:-1:-1;;;13970:11:0;;;;:32;;;;-1:-1:-1;13998:4:0;;-1:-1:-1;;;;;13985:17:0;;;13998:4;;13985:17;13970:32;:45;;;;-1:-1:-1;14007:8:0;;-1:-1:-1;;;14007:8:0;;;;14006:9;13970:45;13966:61;;;14017:10;:8;:10::i;:::-;14040:49;14056:6;14064:9;14075:13;14084:4;14075:6;:13;:::i;:::-;14040:15;:49::i;:::-;14103:8;;14100:83;;14127:44;14143:6;14159:4;14166;14127:15;:44::i;1476:132::-;1454:6;;-1:-1:-1;;;;;1454:6:0;934:10;1540:23;1532:68;;;;-1:-1:-1;;;1532:68:0;;11696:2:1;1532:68:0;;;11678:21:1;;;11715:18;;;11708:30;11774:34;11754:18;;;11747:62;11826:18;;1532:68:0;11494:356:1;1936:191:0;2029:6;;;-1:-1:-1;;;;;2046:17:0;;;-1:-1:-1;;;;;;2046:17:0;;;;;;;2079:40;;2029:6;;;2046:17;2029:6;;2079:40;;2010:16;;2079:40;1999:128;1936:191;:::o;8922:317::-;9037:6;9012:21;:31;;9004:73;;;;-1:-1:-1;;;9004:73:0;;12057:2:1;9004:73:0;;;12039:21:1;12096:2;12076:18;;;12069:30;12135:31;12115:18;;;12108:59;12184:18;;9004:73:0;11855:353:1;9004:73:0;9091:12;9109:9;-1:-1:-1;;;;;9109:14:0;9131:6;9109:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9090:52;;;9161:7;9153:78;;;;-1:-1:-1;;;9153:78:0;;12625:2:1;9153:78:0;;;12607:21:1;12664:2;12644:18;;;12637:30;12703:34;12683:18;;;12676:62;12774:28;12754:18;;;12747:56;12820:19;;9153:78:0;12423:422:1;5594:675:0;-1:-1:-1;;;;;5725:18:0;;5717:68;;;;-1:-1:-1;;;5717:68:0;;13052:2:1;5717:68:0;;;13034:21:1;13091:2;13071:18;;;13064:30;13130:34;13110:18;;;13103:62;-1:-1:-1;;;13181:18:1;;;13174:35;13226:19;;5717:68:0;12850:401:1;5717:68:0;-1:-1:-1;;;;;5804:16:0;;5796:64;;;;-1:-1:-1;;;5796:64:0;;13458:2:1;5796:64:0;;;13440:21:1;13497:2;13477:18;;;13470:30;13536:34;13516:18;;;13509:62;-1:-1:-1;;;13587:18:1;;;13580:33;13630:19;;5796:64:0;13256:399:1;5796:64:0;-1:-1:-1;;;;;5946:15:0;;5924:19;5946:15;;;;;;;;;;;5980:21;;;;5972:72;;;;-1:-1:-1;;;5972:72:0;;13862:2:1;5972:72:0;;;13844:21:1;13901:2;13881:18;;;13874:30;13940:34;13920:18;;;13913:62;-1:-1:-1;;;13991:18:1;;;13984:36;14037:19;;5972:72:0;13660:402:1;5972:72:0;-1:-1:-1;;;;;6080:15:0;;;:9;:15;;;;;;;;;;;6098:20;;;6080:38;;6133:13;;;;;;;;;;:23;;;;;;6185:26;;160:25:1;;;6133:13:0;;6185:26;;133:18:1;6185:26:0;;;;;;;6224:37;16585:132;14198:556;10619:8;;-1:-1:-1;;;10619:8:0;;;;10614:104;;10644:8;:15;;-1:-1:-1;;;;10644:15:0;-1:-1:-1;;;10644:15:0;;;14291:4:::1;-1:-1:-1::0;3998:18:0;;;;;;;;;;;14247:50:::1;;14331:13;;14312:15;:32;14308:439;;14384:13;::::0;14434:9:::1;::::0;14417:26;;14414:74:::1;;14483:5;14461:13;3869:12:::0;;;3781:108;14461:13:::1;:19;::::0;14477:3:::1;14461:19;:::i;:::-;:27;;;;:::i;:::-;14445:13;:43:::0;14414:74:::1;14530:21;14566:30;14583:12:::0;14566:16:::1;:30::i;:::-;14611:20;14634:38;14658:14:::0;14634:21:::1;:38;:::i;:::-;14695:15;::::0;14611:61;;-1:-1:-1;14687:48:0::1;::::0;-1:-1:-1;;;;;14695:15:0::1;14611:61:::0;14687:34:::1;:48::i;:::-;14346:401;;;14308:439;-1:-1:-1::0;10690:8:0;:16;;-1:-1:-1;;;;10690:16:0;;;14198:556::o;14762:306::-;14852:16;;;14866:1;14852:16;;;;;;;;14828:21;;14852:16;;;;;;;;;;-1:-1:-1;14852:16:0;14828:40;;14897:4;14879;14884:1;14879:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14879:23:0;;;:7;;;;;;;;;;:23;;;;14923:6;;:13;;;-1:-1:-1;;;14923:13:0;;;;:6;;;;;:11;;:13;;;;;14879:7;;14923:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14913:4;14918:1;14913:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14913:23:0;;;:7;;;;;;;;;:23;14949:6;;:111;;-1:-1:-1;;;14949:111:0;;:6;;;:57;;:111;;15007:11;;14949:6;;15023:4;;15037;;15044:15;;14949:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14817:251;14762:306;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:388::-;1926:6;1934;1987:2;1975:9;1966:7;1962:23;1958:32;1955:52;;;2003:1;2000;1993:12;1955:52;2042:9;2029:23;2061:31;2086:5;2061:31;:::i;:::-;2111:5;-1:-1:-1;2168:2:1;2153:18;;2140:32;2181:33;2140:32;2181:33;:::i;:::-;2233:7;2223:17;;;1858:388;;;;;:::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;3224:180::-;3283:6;3336:2;3324:9;3315:7;3311:23;3307:32;3304:52;;;3352:1;3349;3342:12;3304:52;-1:-1:-1;3375:23:1;;3224:180;-1:-1:-1;3224:180:1:o;3409:118::-;3495:5;3488:13;3481:21;3474:5;3471:32;3461:60;;3517:1;3514;3507:12;3532:382;3597:6;3605;3658:2;3646:9;3637:7;3633:23;3629:32;3626:52;;;3674:1;3671;3664:12;3626:52;3713:9;3700:23;3732:31;3757:5;3732:31;:::i;:::-;3782:5;-1:-1:-1;3839:2:1;3824:18;;3811:32;3852:30;3811:32;3852:30;:::i;3919:248::-;3987:6;3995;4048:2;4036:9;4027:7;4023:23;4019:32;4016:52;;;4064:1;4061;4054:12;4016:52;-1:-1:-1;;4087:23:1;;;4157:2;4142:18;;;4129:32;;-1:-1:-1;3919:248:1:o;4172:241::-;4228:6;4281:2;4269:9;4260:7;4256:23;4252:32;4249:52;;;4297:1;4294;4287:12;4249:52;4336:9;4323:23;4355:28;4377:5;4355:28;:::i;4418:316::-;4495:6;4503;4511;4564:2;4552:9;4543:7;4539:23;4535:32;4532:52;;;4580:1;4577;4570:12;4532:52;-1:-1:-1;;4603:23:1;;;4673:2;4658:18;;4645:32;;-1:-1:-1;4724:2:1;4709:18;;;4696:32;;4418:316;-1:-1:-1;4418:316:1:o;4962:380::-;5041:1;5037:12;;;;5084;;;5105:61;;5159:4;5151:6;5147:17;5137:27;;5105:61;5212:2;5204:6;5201:14;5181:18;5178:38;5175:161;;5258:10;5253:3;5249:20;5246:1;5239:31;5293:4;5290:1;5283:15;5321:4;5318:1;5311:15;5175:161;;4962:380;;;:::o;5347:127::-;5408:10;5403:3;5399:20;5396:1;5389:31;5439:4;5436:1;5429:15;5463:4;5460:1;5453:15;5479:125;5544:9;;;5565:10;;;5562:36;;;5578:18;;:::i;6232:245::-;6299:6;6352:2;6340:9;6331:7;6327:23;6323:32;6320:52;;;6368:1;6365;6358:12;6320:52;6400:9;6394:16;6419:28;6441:5;6419:28;:::i;6888:168::-;6961:9;;;6992;;7009:15;;;7003:22;;6989:37;6979:71;;7030:18;;:::i;10089:128::-;10156:9;;;10177:11;;;10174:37;;;10191:18;;:::i;11272:217::-;11312:1;11338;11328:132;;11382:10;11377:3;11373:20;11370:1;11363:31;11417:4;11414:1;11407:15;11445:4;11442:1;11435:15;11328:132;-1:-1:-1;11474:9:1;;11272:217::o;14199:127::-;14260:10;14255:3;14251:20;14248:1;14241:31;14291:4;14288:1;14281:15;14315:4;14312:1;14305:15;14331:251;14401:6;14454:2;14442:9;14433:7;14429:23;14425:32;14422:52;;;14470:1;14467;14460:12;14422:52;14502:9;14496:16;14521:31;14546:5;14521:31;:::i;14587:980::-;14849:4;14897:3;14886:9;14882:19;14928:6;14917:9;14910:25;14954:2;14992:6;14987:2;14976:9;14972:18;14965:34;15035:3;15030:2;15019:9;15015:18;15008:31;15059:6;15094;15088:13;15125:6;15117;15110:22;15163:3;15152:9;15148:19;15141:26;;15202:2;15194:6;15190:15;15176:29;;15223:1;15233:195;15247:6;15244:1;15241:13;15233:195;;;15312:13;;-1:-1:-1;;;;;15308:39:1;15296:52;;15403:15;;;;15368:12;;;;15344:1;15262:9;15233:195;;;-1:-1:-1;;;;;;;15484:32:1;;;;15479:2;15464:18;;15457:60;-1:-1:-1;;;15548:3:1;15533:19;15526:35;15445:3;14587:980;-1:-1:-1;;;14587:980:1:o

Swarm Source

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