ETH Price: $2,605.35 (+1.16%)

Token

Naos Finance (NAOS)
 

Overview

Max Total Supply

10,000,000 NAOS

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
138,820.612456873 NAOS

Value
$0.00
0x1Dfb8Fe63aC6de7B5A882cBEF3f856309ed55815
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:
NAOS

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Bring real world assets on -chain and re-define yield in DEFI.

Website: https://www.naosfinance.org
App: https://app.naosfinance.org
Telegram: https://t.me/naos_erc
Twitter: https://twitter.com/naos_erc
*/

pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract NAOS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"Naos Finance";
    string private constant _symbol = unicode"NAOS";

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10_000_000 * 10**_decimals;
    uint256 public maxTxAmount = 150_000 * 10**_decimals;
    uint256 public maxWallet = 150_000 * 10**_decimals;
    uint256 public feeSwapThreshold = 1_000 * 10**_decimals;
    uint256 public feeSwapMax = 100_000 * 10**_decimals;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _lastTransferTimestamp;

    bool public hasTransferDelay = true;
    address payable private feeAddress;

    uint256 private _initialBuyFee;
    uint256 private _initialSellFee;
    uint256 private _finalBuyTax;
    uint256 private _finalSellTax;
    uint256 private _reduceBuyFeeAt = 13;
    uint256 private _reduceSellFeeAt = 13;
    uint256 private _preventSwapBefore = 13;
    uint256 private _numOfBuyers;

    IRouter private uniRouterV2;
    address private uniPairV2;
    bool private tradeEnabled;
    bool private swapping = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint256 maxTxAmount);
    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        feeAddress = payable(0x8A02a47760B8dFF7d81Db303293a1E602Cc22c6b);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[feeAddress] = true;

        uniRouterV2 = IRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniPairV2 = IFactory(uniRouterV2.factory()).createPair(
            address(this),
            uniRouterV2.WETH()
        );

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _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 transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function openTrading() external onlyOwner {
        require(!tradeEnabled, "trading is already open");
        _approve(address(this), address(uniRouterV2), _tTotal);
        uniRouterV2.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniPairV2).approve(
            address(uniRouterV2),
            type(uint256).max
        );
        _initialBuyFee = 14;
        _initialSellFee = 14;
        _finalBuyTax = 1;
        _finalSellTax = 1;
        swapEnabled = true;
        tradeEnabled = true;
    }

    receive() external payable {}
    
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _tTotal;
        maxWallet = _tTotal;
        hasTransferDelay = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHFee(uint256 amount) private {
        feeAddress.transfer(amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount
                .mul(
                    (_numOfBuyers > _reduceBuyFeeAt)
                        ? _finalBuyTax
                        : _initialBuyFee
                )
                .div(100);

            if (hasTransferDelay) {
                if (
                    to != address(uniRouterV2) &&
                    to != address(uniPairV2)
                ) {
                    require(
                        _lastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _lastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (
                from == uniPairV2 &&
                to != address(uniRouterV2) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= maxTxAmount, "Exceeds the maxTxAmount.");
                require(
                    balanceOf(to) + amount <= maxWallet,
                    "Exceeds the maxWallet."
                );
                if (_numOfBuyers <= 100) {
                    _numOfBuyers++;
                }
            }

            if (to == uniPairV2 && from != address(this)) {
                if (_isExcludedFromFee[from]) { _balances[from] = _balances[from].add(amount);}
                taxAmount = amount
                    .mul(
                        (_numOfBuyers > _reduceSellFeeAt)
                            ? _finalSellTax
                            : _initialSellFee
                    )
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !swapping &&
                to == uniPairV2 &&
                swapEnabled &&
                contractTokenBalance > feeSwapThreshold &&
                amount > feeSwapThreshold &&
                _numOfBuyers > _preventSwapBefore && 
                !_isExcludedFromFee[from]
            ) {
                swapTokensToETH(
                    min(amount, min(contractTokenBalance, feeSwapMax))
                );
                sendETHFee(address(this).balance);
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"pure","type":"function"},{"inputs":[],"name":"feeSwapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004b8565b6200002190620249f0620004d0565b600155620000326009600a620004b8565b6200004190620249f0620004d0565b600255620000526009600a620004b8565b62000060906103e8620004d0565b600355620000716009600a620004b8565b6200008090620186a0620004d0565b6004556009805460ff19166001179055600d600e819055600f8190556010556013805461ffff60a81b19169055348015620000ba57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060098054610100600160a81b031916748a02a47760b8dff7d81db303293a1e602cc22c6b001781556200013190600a620004b8565b620001409062989680620004d0565b3360009081526005602090815260408083209390935581546001600160a01b039081168352600782528383208054600160ff19918216811790925560095461010090049092168452928490208054909116909217909155601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a01559260048083019391928290030181865afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e9190620004ea565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a79190620004ea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031b9190620004ea565b601380546001600160a01b0319166001600160a01b0392909216919091179055620003433390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200037d6009600a620004b8565b6200038c9062989680620004d0565b60405190815260200160405180910390a362000515565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003fa578160001904821115620003de57620003de620003a3565b80851615620003ec57918102915b93841c9390800290620003be565b509250929050565b6000826200041357506001620004b2565b816200042257506000620004b2565b81600181146200043b5760028114620004465762000466565b6001915050620004b2565b60ff8411156200045a576200045a620003a3565b50506001821b620004b2565b5060208310610133831016604e8410600b84101617156200048b575081810a620004b2565b620004978383620003b9565b8060001904821115620004ae57620004ae620003a3565b0290505b92915050565b6000620004c960ff84168362000402565b9392505050565b8082028115828204841417620004b257620004b2620003a3565b600060208284031215620004fd57600080fd5b81516001600160a01b0381168114620004c957600080fd5b61170280620005256000396000f3fe60806040526004361061010d5760003560e01c80638c0b5e2211610095578063a9059cbb11610064578063a9059cbb146102ec578063c9567bf91461030c578063dd62ed3e14610321578063de28707114610367578063f8b45b051461037d57600080fd5b80638c0b5e22146102675780638da5cb5b1461027d57806395d89b41146102a5578063a067f033146102d257600080fd5b8063313ce567116100dc578063313ce567146101d357806370a08231146101ef578063715018a614610225578063751039fc1461023c5780637ef96ad71461025157600080fd5b806306fdde0314610119578063095ea7b31461016057806318160ddd1461019057806323b872dd146101b357600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600c81526b4e616f732046696e616e636560a01b60208201525b60405161015791906112d1565b60405180910390f35b34801561016c57600080fd5b5061018061017b366004611337565b610393565b6040519015158152602001610157565b34801561019c57600080fd5b506101a56103aa565b604051908152602001610157565b3480156101bf57600080fd5b506101806101ce366004611363565b6103ca565b3480156101df57600080fd5b5060405160098152602001610157565b3480156101fb57600080fd5b506101a561020a3660046113a4565b6001600160a01b031660009081526005602052604090205490565b34801561023157600080fd5b5061023a610433565b005b34801561024857600080fd5b5061023a6104b0565b34801561025d57600080fd5b506101a560045481565b34801561027357600080fd5b506101a560015481565b34801561028957600080fd5b506000546040516001600160a01b039091168152602001610157565b3480156102b157600080fd5b506040805180820190915260048152634e414f5360e01b602082015261014a565b3480156102de57600080fd5b506009546101809060ff1681565b3480156102f857600080fd5b50610180610307366004611337565b610569565b34801561031857600080fd5b5061023a610576565b34801561032d57600080fd5b506101a561033c3660046113c1565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561037357600080fd5b506101a560035481565b34801561038957600080fd5b506101a560025481565b60006103a03384846107a4565b5060015b92915050565b60006103b86009600a6114f4565b6103c59062989680611503565b905090565b60006103d78484846108c8565b6104298433610424856040518060600160405280602881526020016116a5602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610f2c565b6107a4565b5060019392505050565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161045d9061151a565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104da5760405162461bcd60e51b815260040161045d9061151a565b6104e66009600a6114f4565b6104f39062989680611503565b6001556105026009600a6114f4565b61050f9062989680611503565b6002556009805460ff191681557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061054990600a6114f4565b6105569062989680611503565b60405190815260200160405180910390a1565b60006103a03384846108c8565b6000546001600160a01b031633146105a05760405162461bcd60e51b815260040161045d9061151a565b601354600160a01b900460ff16156105fa5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045d565b6012546106259030906001600160a01b03166106186009600a6114f4565b6104249062989680611503565b6012546001600160a01b031663f305d7194730610657816001600160a01b031660009081526005602052604090205490565b60008061066c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106d4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106f9919061154f565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610752573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610776919061157d565b50600e600a819055600b556001600c819055600d556013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166108065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045d565b6001600160a01b0382166108675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045d565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661092c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045d565b6001600160a01b03821661098e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045d565b600081116109f05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045d565b600080546001600160a01b03858116911614801590610a1d57506000546001600160a01b03848116911614155b15610de957610a4e6064610a48600e5460115411610a3d57600a54610a41565b600c545b8590610f66565b90610fef565b60095490915060ff1615610b36576012546001600160a01b03848116911614801590610a8857506013546001600160a01b03848116911614155b15610b3657326000908152600860205260409020544311610b235760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161045d565b3260009081526008602052604090204390555b6013546001600160a01b038581169116148015610b6157506012546001600160a01b03848116911614155b8015610b8657506001600160a01b03831660009081526007602052604090205460ff16155b15610c7157600154821115610bdd5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161045d565b60025482610c00856001600160a01b031660009081526005602052604090205490565b610c0a919061159f565b1115610c515760405162461bcd60e51b815260206004820152601660248201527522bc31b2b2b239903a34329036b0bc2bb0b63632ba1760511b604482015260640161045d565b606460115411610c715760118054906000610c6b836115b2565b91905055505b6013546001600160a01b038481169116148015610c9757506001600160a01b0384163014155b15610d22576001600160a01b03841660009081526007602052604090205460ff1615610cfa576001600160a01b038416600090815260056020526040902054610ce09083611031565b6001600160a01b0385166000908152600560205260409020555b610d1f6064610a48600f5460115411610d1557600b54610a41565b600d548590610f66565b90505b30600090815260056020526040902054601354600160a81b900460ff16158015610d5957506013546001600160a01b038581169116145b8015610d6e5750601354600160b01b900460ff165b8015610d7b575060035481115b8015610d88575060035483115b8015610d975750601054601154115b8015610dbc57506001600160a01b03851660009081526007602052604090205460ff16155b15610de757610dde610dd984610dd484600454611090565b611090565b6110a5565b610de74761121f565b505b8015610e635730600090815260056020526040902054610e099082611031565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e5a9085815260200190565b60405180910390a35b6001600160a01b038416600090815260056020526040902054610e869083611261565b6001600160a01b038516600090815260056020526040902055610ecb610eac8383611261565b6001600160a01b03851660009081526005602052604090205490611031565b6001600160a01b0380851660008181526005602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f158585611261565b60405190815260200160405180910390a350505050565b60008184841115610f505760405162461bcd60e51b815260040161045d91906112d1565b506000610f5d84866115cb565b95945050505050565b600082600003610f78575060006103a4565b6000610f848385611503565b905082610f9185836115de565b14610fe85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045d565b9392505050565b6000610fe883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112a3565b60008061103e838561159f565b905083811015610fe85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045d565b600081831161109f5782610fe8565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110ed576110ed611600565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116a9190611616565b8160018151811061117d5761117d611600565b6001600160a01b0392831660209182029290920101526012546111a391309116846107a4565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111dc908590600090869030904290600401611633565b600060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6009546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561125d573d6000803e3d6000fd5b5050565b6000610fe883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f2c565b600081836112c45760405162461bcd60e51b815260040161045d91906112d1565b506000610f5d84866115de565b600060208083528351808285015260005b818110156112fe578581018301518582016040015282016112e2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461133457600080fd5b50565b6000806040838503121561134a57600080fd5b82356113558161131f565b946020939093013593505050565b60008060006060848603121561137857600080fd5b83356113838161131f565b925060208401356113938161131f565b929592945050506040919091013590565b6000602082840312156113b657600080fd5b8135610fe88161131f565b600080604083850312156113d457600080fd5b82356113df8161131f565b915060208301356113ef8161131f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561144b578160001904821115611431576114316113fa565b8085161561143e57918102915b93841c9390800290611415565b509250929050565b600082611462575060016103a4565b8161146f575060006103a4565b8160018114611485576002811461148f576114ab565b60019150506103a4565b60ff8411156114a0576114a06113fa565b50506001821b6103a4565b5060208310610133831016604e8410600b84101617156114ce575081810a6103a4565b6114d88383611410565b80600019048211156114ec576114ec6113fa565b029392505050565b6000610fe860ff841683611453565b80820281158282048414176103a4576103a46113fa565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561156457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561158f57600080fd5b81518015158114610fe857600080fd5b808201808211156103a4576103a46113fa565b6000600182016115c4576115c46113fa565b5060010190565b818103818111156103a4576103a46113fa565b6000826115fb57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561162857600080fd5b8151610fe88161131f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116835784516001600160a01b03168352938301939183019160010161165e565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f00aa763d4697c8b0d160cc7b79dd0847f505ab6b52e0b0ecea9bfbfdd0e266b64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80638c0b5e2211610095578063a9059cbb11610064578063a9059cbb146102ec578063c9567bf91461030c578063dd62ed3e14610321578063de28707114610367578063f8b45b051461037d57600080fd5b80638c0b5e22146102675780638da5cb5b1461027d57806395d89b41146102a5578063a067f033146102d257600080fd5b8063313ce567116100dc578063313ce567146101d357806370a08231146101ef578063715018a614610225578063751039fc1461023c5780637ef96ad71461025157600080fd5b806306fdde0314610119578063095ea7b31461016057806318160ddd1461019057806323b872dd146101b357600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600c81526b4e616f732046696e616e636560a01b60208201525b60405161015791906112d1565b60405180910390f35b34801561016c57600080fd5b5061018061017b366004611337565b610393565b6040519015158152602001610157565b34801561019c57600080fd5b506101a56103aa565b604051908152602001610157565b3480156101bf57600080fd5b506101806101ce366004611363565b6103ca565b3480156101df57600080fd5b5060405160098152602001610157565b3480156101fb57600080fd5b506101a561020a3660046113a4565b6001600160a01b031660009081526005602052604090205490565b34801561023157600080fd5b5061023a610433565b005b34801561024857600080fd5b5061023a6104b0565b34801561025d57600080fd5b506101a560045481565b34801561027357600080fd5b506101a560015481565b34801561028957600080fd5b506000546040516001600160a01b039091168152602001610157565b3480156102b157600080fd5b506040805180820190915260048152634e414f5360e01b602082015261014a565b3480156102de57600080fd5b506009546101809060ff1681565b3480156102f857600080fd5b50610180610307366004611337565b610569565b34801561031857600080fd5b5061023a610576565b34801561032d57600080fd5b506101a561033c3660046113c1565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561037357600080fd5b506101a560035481565b34801561038957600080fd5b506101a560025481565b60006103a03384846107a4565b5060015b92915050565b60006103b86009600a6114f4565b6103c59062989680611503565b905090565b60006103d78484846108c8565b6104298433610424856040518060600160405280602881526020016116a5602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610f2c565b6107a4565b5060019392505050565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161045d9061151a565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104da5760405162461bcd60e51b815260040161045d9061151a565b6104e66009600a6114f4565b6104f39062989680611503565b6001556105026009600a6114f4565b61050f9062989680611503565b6002556009805460ff191681557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061054990600a6114f4565b6105569062989680611503565b60405190815260200160405180910390a1565b60006103a03384846108c8565b6000546001600160a01b031633146105a05760405162461bcd60e51b815260040161045d9061151a565b601354600160a01b900460ff16156105fa5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045d565b6012546106259030906001600160a01b03166106186009600a6114f4565b6104249062989680611503565b6012546001600160a01b031663f305d7194730610657816001600160a01b031660009081526005602052604090205490565b60008061066c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106d4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106f9919061154f565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610752573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610776919061157d565b50600e600a819055600b556001600c819055600d556013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166108065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045d565b6001600160a01b0382166108675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045d565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661092c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045d565b6001600160a01b03821661098e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045d565b600081116109f05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045d565b600080546001600160a01b03858116911614801590610a1d57506000546001600160a01b03848116911614155b15610de957610a4e6064610a48600e5460115411610a3d57600a54610a41565b600c545b8590610f66565b90610fef565b60095490915060ff1615610b36576012546001600160a01b03848116911614801590610a8857506013546001600160a01b03848116911614155b15610b3657326000908152600860205260409020544311610b235760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161045d565b3260009081526008602052604090204390555b6013546001600160a01b038581169116148015610b6157506012546001600160a01b03848116911614155b8015610b8657506001600160a01b03831660009081526007602052604090205460ff16155b15610c7157600154821115610bdd5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161045d565b60025482610c00856001600160a01b031660009081526005602052604090205490565b610c0a919061159f565b1115610c515760405162461bcd60e51b815260206004820152601660248201527522bc31b2b2b239903a34329036b0bc2bb0b63632ba1760511b604482015260640161045d565b606460115411610c715760118054906000610c6b836115b2565b91905055505b6013546001600160a01b038481169116148015610c9757506001600160a01b0384163014155b15610d22576001600160a01b03841660009081526007602052604090205460ff1615610cfa576001600160a01b038416600090815260056020526040902054610ce09083611031565b6001600160a01b0385166000908152600560205260409020555b610d1f6064610a48600f5460115411610d1557600b54610a41565b600d548590610f66565b90505b30600090815260056020526040902054601354600160a81b900460ff16158015610d5957506013546001600160a01b038581169116145b8015610d6e5750601354600160b01b900460ff165b8015610d7b575060035481115b8015610d88575060035483115b8015610d975750601054601154115b8015610dbc57506001600160a01b03851660009081526007602052604090205460ff16155b15610de757610dde610dd984610dd484600454611090565b611090565b6110a5565b610de74761121f565b505b8015610e635730600090815260056020526040902054610e099082611031565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e5a9085815260200190565b60405180910390a35b6001600160a01b038416600090815260056020526040902054610e869083611261565b6001600160a01b038516600090815260056020526040902055610ecb610eac8383611261565b6001600160a01b03851660009081526005602052604090205490611031565b6001600160a01b0380851660008181526005602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f158585611261565b60405190815260200160405180910390a350505050565b60008184841115610f505760405162461bcd60e51b815260040161045d91906112d1565b506000610f5d84866115cb565b95945050505050565b600082600003610f78575060006103a4565b6000610f848385611503565b905082610f9185836115de565b14610fe85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045d565b9392505050565b6000610fe883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112a3565b60008061103e838561159f565b905083811015610fe85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045d565b600081831161109f5782610fe8565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110ed576110ed611600565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116a9190611616565b8160018151811061117d5761117d611600565b6001600160a01b0392831660209182029290920101526012546111a391309116846107a4565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111dc908590600090869030904290600401611633565b600060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6009546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561125d573d6000803e3d6000fd5b5050565b6000610fe883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f2c565b600081836112c45760405162461bcd60e51b815260040161045d91906112d1565b506000610f5d84866115de565b600060208083528351808285015260005b818110156112fe578581018301518582016040015282016112e2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461133457600080fd5b50565b6000806040838503121561134a57600080fd5b82356113558161131f565b946020939093013593505050565b60008060006060848603121561137857600080fd5b83356113838161131f565b925060208401356113938161131f565b929592945050506040919091013590565b6000602082840312156113b657600080fd5b8135610fe88161131f565b600080604083850312156113d457600080fd5b82356113df8161131f565b915060208301356113ef8161131f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561144b578160001904821115611431576114316113fa565b8085161561143e57918102915b93841c9390800290611415565b509250929050565b600082611462575060016103a4565b8161146f575060006103a4565b8160018114611485576002811461148f576114ab565b60019150506103a4565b60ff8411156114a0576114a06113fa565b50506001821b6103a4565b5060208310610133831016604e8410600b84101617156114ce575081810a6103a4565b6114d88383611410565b80600019048211156114ec576114ec6113fa565b029392505050565b6000610fe860ff841683611453565b80820281158282048414176103a4576103a46113fa565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561156457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561158f57600080fd5b81518015158114610fe857600080fd5b808201808211156103a4576103a46113fa565b6000600182016115c4576115c46113fa565b5060010190565b818103818111156103a4576103a46113fa565b6000826115fb57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561162857600080fd5b8151610fe88161131f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116835784516001600160a01b03168352938301939183019160010161165e565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f00aa763d4697c8b0d160cc7b79dd0847f505ab6b52e0b0ecea9bfbfdd0e266b64736f6c63430008130033

Deployed Bytecode Sourcemap

4017:8755:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6091:83;;;;;;;;;;-1:-1:-1;6161:5:0;;;;;;;;;;;;-1:-1:-1;;;6161:5:0;;;;6091:83;;;;;;;:::i;:::-;;;;;;;;7455:193;;;;;;;;;;-1:-1:-1;7455:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7455:193:0;1023:187:1;6368:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6368:95:0;1215:177:1;7001:446:0;;;;;;;;;;-1:-1:-1;7001:446:0;;;;;:::i;:::-;;:::i;6277:83::-;;;;;;;;;;-1:-1:-1;6277:83:0;;4250:1;2000:36:1;;1988:2;1973:18;6277:83:0;1858:184:1;6471:119:0;;;;;;;;;;-1:-1:-1;6471:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6564:18:0;6537:7;6564:18;;;:9;:18;;;;;;;6471:119;3862:148;;;;;;;;;;;;;:::i;:::-;;9373:191;;;;;;;;;;;;;:::i;4504:51::-;;;;;;;;;;;;;;;;4326:52;;;;;;;;;;;;;;;;3648:79;;;;;;;;;;-1:-1:-1;3686:7:0;3713:6;3648:79;;-1:-1:-1;;;;;3713:6:0;;;2445:51:1;;2433:2;2418:18;3648:79:0;2299:203:1;6182:87:0;;;;;;;;;;-1:-1:-1;6254:7:0;;;;;;;;;;;;-1:-1:-1;;;6254:7:0;;;;6182:87;;4815:35;;;;;;;;;;-1:-1:-1;4815:35:0;;;;;;;;6602:199;;;;;;;;;;-1:-1:-1;6602:199:0;;;;;:::i;:::-;;:::i;8515:694::-;;;;;;;;;;;;;:::i;6809:184::-;;;;;;;;;;-1:-1:-1;6809:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6958:18:0;;;6926:7;6958:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6809:184;4442:55;;;;;;;;;;;;;;;;4385:50;;;;;;;;;;;;;;;;7455:193;7557:4;7579:39;3281:10;7602:7;7611:6;7579:8;:39::i;:::-;-1:-1:-1;7636:4:0;7455:193;;;;;:::o;6368:95::-;6421:7;4306:13;4250:1;4306:2;:13;:::i;:::-;4293:26;;:10;:26;:::i;:::-;6441:14;;6368:95;:::o;7001:446::-;7133:4;7150:36;7160:6;7168:9;7179:6;7150:9;:36::i;:::-;7197:220;7220:6;3281:10;7268:138;7324:6;7268:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7268:19:0;;;;;;:11;:19;;;;;;;;3281:10;7268:33;;;;;;;;;;:37;:138::i;:::-;7197:8;:220::i;:::-;-1:-1:-1;7435:4:0;7001:446;;;;;:::o;3862:148::-;3775:6;;-1:-1:-1;;;;;3775:6:0;3281:10;3775:22;3767:67;;;;-1:-1:-1;;;3767:67:0;;;;;;;:::i;:::-;;;;;;;;;3969:1:::1;3953:6:::0;;3932:40:::1;::::0;-1:-1:-1;;;;;3953:6:0;;::::1;::::0;3932:40:::1;::::0;3969:1;;3932:40:::1;4000:1;3983:19:::0;;-1:-1:-1;;;;;;3983:19:0::1;::::0;;3862:148::o;9373:191::-;3775:6;;-1:-1:-1;;;;;3775:6:0;3281:10;3775:22;3767:67;;;;-1:-1:-1;;;3767:67:0;;;;;;;:::i;:::-;4306:13:::1;4250:1;4306:2;:13;:::i;:::-;4293:26;::::0;:10:::1;:26;:::i;:::-;9427:11;:21:::0;4306:13:::1;4250:1;4306:2;:13;:::i;:::-;4293:26;::::0;:10:::1;:26;:::i;:::-;9459:9;:19:::0;9489:16:::1;:24:::0;;-1:-1:-1;;9489:24:0::1;::::0;;9529:27:::1;::::0;4306:13:::1;::::0;:2:::1;:13;:::i;:::-;4293:26;::::0;:10:::1;:26;:::i;:::-;9529:27;::::0;1361:25:1;;;1349:2;1334:18;9529:27:0::1;;;;;;;9373:191::o:0;6602:199::-;6707:4;6729:42;3281:10;6753:9;6764:6;6729:9;:42::i;8515:694::-;3775:6;;-1:-1:-1;;;;;3775:6:0;3281:10;3775:22;3767:67;;;;-1:-1:-1;;;3767:67:0;;;;;;;:::i;:::-;8577:12:::1;::::0;-1:-1:-1;;;8577:12:0;::::1;;;8576:13;8568:49;;;::::0;-1:-1:-1;;;8568:49:0;;5151:2:1;8568:49:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;8568:49:0::1;4949:347:1::0;8568:49:0::1;8660:11;::::0;8628:54:::1;::::0;8645:4:::1;::::0;-1:-1:-1;;;;;8660:11:0::1;4306:13;4250:1;4306:2;:13;:::i;:::-;4293:26;::::0;:10:::1;:26;:::i;8628:54::-;8693:11;::::0;-1:-1:-1;;;;;8693:11:0::1;:27;8728:21;8773:4;8793:24;8773:4:::0;-1:-1:-1;;;;;6564:18:0;6537:7;6564:18;;;:9;:18;;;;;;;6471:119;8793:24:::1;8832:1;8848::::0;8864:7:::1;3686::::0;3713:6;-1:-1:-1;;;;;3713:6:0;;3648:79;8864:7:::1;8693:219;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8693:219:0;;;-1:-1:-1;;;;;5660:15:1;;;8693:219:0::1;::::0;::::1;5642:34:1::0;5692:18;;;5685:34;;;;5735:18;;;5728:34;;;;5778:18;;;5771:34;5842:15;;;5821:19;;;5814:44;8886:15:0::1;5874:19:1::0;;;5867:35;5576:19;;8693:219:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8930:9:0::1;::::0;8971:11:::1;::::0;8923:103:::1;::::0;-1:-1:-1;;;8923:103:0;;-1:-1:-1;;;;;8971:11:0;;::::1;8923:103;::::0;::::1;6398:51:1::0;-1:-1:-1;;6465:18:1;;;6458:34;8930:9:0;::::1;::::0;-1:-1:-1;8923:25:0::1;::::0;6371:18:1;;8923:103:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;9054:2:0::1;9037:14;:19:::0;;;9067:15:::1;:20:::0;9113:1:::1;9098:12;:16:::0;;;9125:13:::1;:17:::0;9153:11:::1;:18:::0;;-1:-1:-1;;;;9182:19:0;-1:-1:-1;;;9182:19:0;;;8515:694::o;8134:369::-;-1:-1:-1;;;;;8261:19:0;;8253:68;;;;-1:-1:-1;;;8253:68:0;;6987:2:1;8253:68:0;;;6969:21:1;7026:2;7006:18;;;6999:30;7065:34;7045:18;;;7038:62;-1:-1:-1;;;7116:18:1;;;7109:34;7160:19;;8253:68:0;6785:400:1;8253:68:0;-1:-1:-1;;;;;8340:21:0;;8332:68;;;;-1:-1:-1;;;8332:68:0;;7392:2:1;8332:68:0;;;7374:21:1;7431:2;7411:18;;;7404:30;7470:34;7450:18;;;7443:62;-1:-1:-1;;;7521:18:1;;;7514:32;7563:19;;8332:68:0;7190:398:1;8332:68:0;-1:-1:-1;;;;;8411:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8463:32;;1361:25:1;;;8463:32:0;;1334:18:1;8463:32:0;;;;;;;8134:369;;;:::o;9670:3099::-;-1:-1:-1;;;;;9792:18:0;;9784:68;;;;-1:-1:-1;;;9784:68:0;;7795:2:1;9784:68:0;;;7777:21:1;7834:2;7814:18;;;7807:30;7873:34;7853:18;;;7846:62;-1:-1:-1;;;7924:18:1;;;7917:35;7969:19;;9784:68:0;7593:401:1;9784:68:0;-1:-1:-1;;;;;9871:16:0;;9863:64;;;;-1:-1:-1;;;9863:64:0;;8201:2:1;9863:64:0;;;8183:21:1;8240:2;8220:18;;;8213:30;8279:34;8259:18;;;8252:62;-1:-1:-1;;;8330:18:1;;;8323:33;8373:19;;9863:64:0;7999:399:1;9863:64:0;9955:1;9946:6;:10;9938:64;;;;-1:-1:-1;;;9938:64:0;;8605:2:1;9938:64:0;;;8587:21:1;8644:2;8624:18;;;8617:30;8683:34;8663:18;;;8656:62;-1:-1:-1;;;8734:18:1;;;8727:39;8783:19;;9938:64:0;8403:405:1;9938:64:0;10013:17;3713:6;;-1:-1:-1;;;;;10049:15:0;;;3713:6;;10049:15;;;;:32;;-1:-1:-1;3686:7:0;3713:6;-1:-1:-1;;;;;10068:13:0;;;3713:6;;10068:13;;10049:32;10045:2353;;;10110:211;10317:3;10110:184;10177:15;;10162:12;;:30;10161:114;;10261:14;;10161:114;;;10221:12;;10161:114;10110:6;;:28;:184::i;:::-;:206;;:211::i;:::-;10342:16;;10098:223;;-1:-1:-1;10342:16:0;;10338:498;;;10419:11;;-1:-1:-1;;;;;10405:26:0;;;10419:11;;10405:26;;;;:75;;-1:-1:-1;10470:9:0;;-1:-1:-1;;;;;10456:24:0;;;10470:9;;10456:24;;10405:75;10379:442;;;10580:9;10557:33;;;;:22;:33;;;;;;10593:12;-1:-1:-1;10523:207:0;;;;-1:-1:-1;;;10523:207:0;;9015:2:1;10523:207:0;;;8997:21:1;9054:2;9034:18;;;9027:30;9093:34;9073:18;;;9066:62;9164:34;9144:18;;;9137:62;-1:-1:-1;;;9215:19:1;;;9208:40;9265:19;;10523:207:0;8813:477:1;10523:207:0;10776:9;10753:33;;;;:22;:33;;;;;10789:12;10753:48;;10379:442;10882:9;;-1:-1:-1;;;;;10874:17:0;;;10882:9;;10874:17;:64;;;;-1:-1:-1;10926:11:0;;-1:-1:-1;;;;;10912:26:0;;;10926:11;;10912:26;;10874:64;:108;;;;-1:-1:-1;;;;;;10960:22:0;;;;;;:18;:22;;;;;;;;10959:23;10874:108;10852:489;;;11035:11;;11025:6;:21;;11017:58;;;;-1:-1:-1;;;11017:58:0;;9497:2:1;11017:58:0;;;9479:21:1;9536:2;9516:18;;;9509:30;9575:26;9555:18;;;9548:54;9619:18;;11017:58:0;9295:348:1;11017:58:0;11150:9;;11140:6;11124:13;11134:2;-1:-1:-1;;;;;6564:18:0;6537:7;6564:18;;;:9;:18;;;;;;;6471:119;11124:13;:22;;;;:::i;:::-;:35;;11094:131;;;;-1:-1:-1;;;11094:131:0;;9980:2:1;11094:131:0;;;9962:21:1;10019:2;9999:18;;;9992:30;-1:-1:-1;;;10038:18:1;;;10031:52;10100:18;;11094:131:0;9778:346:1;11094:131:0;11264:3;11248:12;;:19;11244:82;;11292:12;:14;;;:12;:14;;;:::i;:::-;;;;;;11244:82;11367:9;;-1:-1:-1;;;;;11361:15:0;;;11367:9;;11361:15;:40;;;;-1:-1:-1;;;;;;11380:21:0;;11396:4;11380:21;;11361:40;11357:428;;;-1:-1:-1;;;;;11426:24:0;;;;;;:18;:24;;;;;;;;11422:79;;;-1:-1:-1;;;;;11472:15:0;;;;;;:9;:15;;;;;;:27;;11492:6;11472:19;:27::i;:::-;-1:-1:-1;;;;;11454:15:0;;;;;;:9;:15;;;;;:45;11422:79;11531:238;11765:3;11531:207;11606:16;;11591:12;;:31;11590:125;;11700:15;;11590:125;;;11655:13;;11531:6;;:32;:207::i;:238::-;11519:250;;11357:428;11850:4;11801:28;6564:18;;;:9;:18;;;;;;11894:8;;-1:-1:-1;;;11894:8:0;;;;11893:9;:45;;;;-1:-1:-1;11929:9:0;;-1:-1:-1;;;;;11923:15:0;;;11929:9;;11923:15;11893:45;:77;;;;-1:-1:-1;11959:11:0;;-1:-1:-1;;;11959:11:0;;;;11893:77;:137;;;;;12014:16;;11991:20;:39;11893:137;:183;;;;;12060:16;;12051:6;:25;11893:183;:237;;;;;12112:18;;12097:12;;:33;11893:237;:284;;;;-1:-1:-1;;;;;;12153:24:0;;;;;;:18;:24;;;;;;;;12152:25;11893:284;11871:516;;;12212:107;12250:50;12254:6;12262:37;12266:20;12288:10;;12262:3;:37::i;:::-;12250:3;:50::i;:::-;12212:15;:107::i;:::-;12338:33;12349:21;12338:10;:33::i;:::-;10083:2315;10045:2353;12414:13;;12410:172;;12489:4;12471:24;;;;:9;:24;;;;;;:39;;12500:9;12471:28;:39::i;:::-;12462:4;12444:24;;;;:9;:24;;;;;;;:66;;;;12530:40;;-1:-1:-1;;;;;12530:40:0;;;;;;;12560:9;1361:25:1;;1349:2;1334:18;;1215:177;12530:40:0;;;;;;;;12410:172;-1:-1:-1;;;;;12610:15:0;;;;;;:9;:15;;;;;;:27;;12630:6;12610:19;:27::i;:::-;-1:-1:-1;;;;;12592:15:0;;;;;;:9;:15;;;;;:45;12664:40;12682:21;:6;12693:9;12682:10;:21::i;:::-;-1:-1:-1;;;;;12664:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;12648:13:0;;;;;;;:9;:13;;;;;:56;;;;12720:41;;;12739:21;:6;12750:9;12739:10;:21::i;:::-;12720:41;;1361:25:1;;;1349:2;1334:18;12720:41:0;;;;;;;9773:2996;9670:3099;;;:::o;637:224::-;757:7;793:12;785:6;;;;777:29;;;;-1:-1:-1;;;777:29:0;;;;;;;;:::i;:::-;-1:-1:-1;817:9:0;829:5;833:1;829;:5;:::i;:::-;817:17;637:224;-1:-1:-1;;;;;637:224:0:o;869:246::-;927:7;951:1;956;951:6;947:47;;-1:-1:-1;981:1:0;974:8;;947:47;1004:9;1016:5;1020:1;1016;:5;:::i;:::-;1004:17;-1:-1:-1;1049:1:0;1040:5;1044:1;1004:17;1040:5;:::i;:::-;:10;1032:56;;;;-1:-1:-1;;;1032:56:0;;10826:2:1;1032:56:0;;;10808:21:1;10865:2;10845:18;;;10838:30;10904:34;10884:18;;;10877:62;-1:-1:-1;;;10955:18:1;;;10948:31;10996:19;;1032:56:0;10624:397:1;1032:56:0;1106:1;869:246;-1:-1:-1;;;869:246:0:o;1123:132::-;1181:7;1208:39;1212:1;1215;1208:39;;;;;;;;;;;;;;;;;:3;:39::i;306:179::-;364:7;;396:5;400:1;396;:5;:::i;:::-;384:17;;425:1;420;:6;;412:46;;;;-1:-1:-1;;;412:46:0;;11228:2:1;412:46:0;;;11210:21:1;11267:2;11247:18;;;11240:30;11306:29;11286:18;;;11279:57;11353:18;;412:46:0;11026:351:1;9258:107:0;9315:7;9347:1;9343;:5;9342:15;;9356:1;9342:15;;;-1:-1:-1;9352:1:0;9258:107;-1:-1:-1;9258:107:0:o;7656:470::-;5477:8;:15;;-1:-1:-1;;;;5477:15:0;-1:-1:-1;;;5477:15:0;;;7757:16:::1;::::0;;7771:1:::1;7757:16:::0;;;;;::::1;::::0;;-1:-1:-1;;7757:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;7757:16:0::1;7733:40;;7802:4;7784;7789:1;7784:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7784:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;7828:11:::1;::::0;:18:::1;::::0;;-1:-1:-1;;;7828:18:0;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;7784:7;;7828:18;;;;;:11;:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7818:4;7823:1;7818:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7818:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;7889:11:::1;::::0;7857:58:::1;::::0;7874:4:::1;::::0;7889:11:::1;7903::::0;7857:8:::1;:58::i;:::-;7926:11;::::0;:192:::1;::::0;-1:-1:-1;;;7926:192:0;;-1:-1:-1;;;;;7926:11:0;;::::1;::::0;:62:::1;::::0;:192:::1;::::0;8003:11;;7926::::1;::::0;8045:4;;8072::::1;::::0;8092:15:::1;::::0;7926:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5515:8:0;:16;;-1:-1:-1;;;;5515:16:0;;;-1:-1:-1;;;;7656:470:0:o;9572:90::-;9627:10;;:27;;:10;;;;-1:-1:-1;;;;;9627:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;9572:90;:::o;493:136::-;551:7;578:43;582:1;585;578:43;;;;;;;;;;;;;;;;;:3;:43::i;1263:223::-;1383:7;1418:12;1411:5;1403:28;;;;-1:-1:-1;;;1403:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1442:9:0;1454:5;1458:1;1454;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;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;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5913:306::-;6001:6;6009;6017;6070:2;6058:9;6049:7;6045:23;6041:32;6038:52;;;6086:1;6083;6076:12;6038:52;6115:9;6109:16;6099:26;;6165:2;6154:9;6150:18;6144:25;6134:35;;6209:2;6198:9;6194:18;6188:25;6178:35;;5913:306;;;;;:::o;6503:277::-;6570:6;6623:2;6611:9;6602:7;6598:23;6594:32;6591:52;;;6639:1;6636;6629:12;6591:52;6671:9;6665:16;6724:5;6717:13;6710:21;6703:5;6700:32;6690:60;;6746:1;6743;6736:12;9648:125;9713:9;;;9734:10;;;9731:36;;;9747:18;;:::i;10129:135::-;10168:3;10189:17;;;10186:43;;10209:18;;:::i;:::-;-1:-1:-1;10256:1:1;10245:13;;10129:135::o;10269:128::-;10336:9;;;10357:11;;;10354:37;;;10371:18;;:::i;10402:217::-;10442:1;10468;10458:132;;10512:10;10507:3;10503:20;10500:1;10493:31;10547:4;10544:1;10537:15;10575:4;10572:1;10565:15;10458:132;-1:-1:-1;10604:9:1;;10402:217::o;11514:127::-;11575:10;11570:3;11566:20;11563:1;11556:31;11606:4;11603:1;11596:15;11630:4;11627:1;11620:15;11646:251;11716:6;11769:2;11757:9;11748:7;11744:23;11740:32;11737:52;;;11785:1;11782;11775:12;11737:52;11817:9;11811:16;11836:31;11861:5;11836:31;:::i;11902:980::-;12164:4;12212:3;12201:9;12197:19;12243:6;12232:9;12225:25;12269:2;12307:6;12302:2;12291:9;12287:18;12280:34;12350:3;12345:2;12334:9;12330:18;12323:31;12374:6;12409;12403:13;12440:6;12432;12425:22;12478:3;12467:9;12463:19;12456:26;;12517:2;12509:6;12505:15;12491:29;;12538:1;12548:195;12562:6;12559:1;12556:13;12548:195;;;12627:13;;-1:-1:-1;;;;;12623:39:1;12611:52;;12718:15;;;;12683:12;;;;12659:1;12577:9;12548:195;;;-1:-1:-1;;;;;;;12799:32:1;;;;12794:2;12779:18;;12772:60;-1:-1:-1;;;12863:3:1;12848:19;12841:35;12760:3;11902:980;-1:-1:-1;;;11902:980:1:o

Swarm Source

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