ETH Price: $3,409.71 (+0.74%)
Gas: 3 Gwei

Token

Cora Privacy ₢ (CORA)
 

Overview

Max Total Supply

100,000,000 CORA

Holders

82

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,359,993.896044595679699311 CORA

Value
$0.00
0x6fa1974371a909f7daf04f394ea5c9781abe18f0
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:
Cora

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-12
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;



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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

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

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

    uint256 public _buyingFees = 0;
    uint256 public _sellingFees = 0;
    uint256 public _transferringFees = 0;
    uint256 public _whaleLimit = 1500000 * 10 ** decimals();

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Cora Privacy ₢ ";
    string private constant _symbol = unicode"CORA";
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    

    address payable public _CoraWallet = payable(0x13e3852303041FBF0903Aa8E93bd1A35a53AE734);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = true;

    bool public taxCapEnabled = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
        
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_CoraWallet] = true;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= _whaleLimit, "higher than the AntiWhaleLimit for tokens.");
            }

            
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(_buyingFees).div(100);
            }
            
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_sellingFees).div(100);
            }
            
            if(to != uniswapV2Pair && from != uniswapV2Pair) {
                taxAmount = amount.mul(_transferringFees).div(100);
            }
            
            

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(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));
    }


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

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

    function sendETHToFee(uint256 amount) private {
       (bool callSuccess, ) = payable(_CoraWallet).call{value: amount}("");
        require(callSuccess, "Call failed");
    }

    receive() external payable {}

    function modifyBuyingAndSellingFees(uint256 _buyTax, uint256 _sellTax) public onlyOwner {

        if(taxCapEnabled) {
            require(_buyTax <= 0,"Fees too high");
            require(_sellTax <= 0,"Fees too high");
        }

        _buyingFees = _buyTax;
        _sellingFees = _sellTax;
    }

    function modifyTransferFee(uint256 _transferTax) public onlyOwner {
        require(_transferTax <= 0,"Fees too high");
        _transferringFees = _transferTax;
    }

    function modifyWhaleAmount(uint256 _tokens) public onlyOwner{
        require(_tokens > totalSupply().div(200),"Limit very low");
        _whaleLimit = _tokens;
    }

    function enableTaxCap() public onlyOwner {
        require(taxCapEnabled != true, "Already enabled");
        taxCapEnabled = true;
    }

    function removeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function AddIntoFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }


    
    }

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":"account","type":"address"}],"name":"AddIntoFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_CoraWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferringFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_whaleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTaxCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"modifyBuyingAndSellingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"modifyTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"modifyWhaleAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromFee","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":"taxCapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6004555f6005555f600655620000206200034560201b60201c565b6200002d90600a620004a8565b6200003c906216e360620004bf565b6007556200004d6012600a620004a8565b6200005c90620186a0620004bf565b600855600980546001600160a01b0319167313e3852303041fbf0903aa8e93bd1a35a53ae734179055600b805462ffffff60a01b1916600160a81b179055348015620000a6575f80fd5b50620000b2336200034a565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000107573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012d9190620004d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000179573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019f9190620004d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001ea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002109190620004d9565b600b80546001600160a01b03199081166001600160a01b0393841617909155600a80549091169183169190911781556200024d90601290620004a8565b6200025d906305f5e100620004bf565b335f908152600160208190526040822092909255600390620002865f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600954909116835291208054909216179055620002e43390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200031d6012600a620004a8565b6200032d906305f5e100620004bf565b60405190815260200160405180910390a35062000501565b601290565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003ed57815f1904821115620003d157620003d162000399565b80851615620003df57918102915b93841c9390800290620003b2565b509250929050565b5f826200040557506001620004a2565b816200041357505f620004a2565b81600181146200042c5760028114620004375762000457565b6001915050620004a2565b60ff8411156200044b576200044b62000399565b50506001821b620004a2565b5060208310610133831016604e8410600b84101617156200047c575081810a620004a2565b620004888383620003ad565b805f19048211156200049e576200049e62000399565b0290505b92915050565b5f620004b860ff841683620003f5565b9392505050565b8082028115828204841417620004a257620004a262000399565b5f60208284031215620004ea575f80fd5b81516001600160a01b0381168114620004b8575f80fd5b6115f9806200050f5f395ff3fe60806040526004361061017e575f3560e01c80638da5cb5b116100cd578063afee5c7e11610087578063dd62ed3e11610062578063dd62ed3e14610478578063e354bbdb146104bc578063ed46d8df146104d1578063f2fde38b146104f1575f80fd5b8063afee5c7e14610439578063bf474bed1461044e578063cd02b35414610463575f80fd5b80638da5cb5b14610380578063947676791461039c57806395d89b41146103b057806399856ea3146103dc578063a6dee319146103fb578063a9059cbb1461041a575f80fd5b806370a082311161013857806377dde5291161011357806377dde529146102ec57806378322e451461030b5780637c278dad1461032a5780638226668614610349575f80fd5b806370a0823114610274578063715018a6146102a8578063768dc710146102be575f80fd5b806306fdde0314610189578063095ea7b3146101d457806318160ddd1461020357806323b872dd14610225578063313ce567146102445780635f6afff41461025f575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b50604080518082019091526011815270021b7b93090283934bb30b1bc907141511607d1b60208201525b6040516101cb9190611225565b60405180910390f35b3480156101df575f80fd5b506101f36101ee366004611285565b610510565b60405190151581526020016101cb565b34801561020e575f80fd5b50610217610526565b6040519081526020016101cb565b348015610230575f80fd5b506101f361023f3660046112af565b610546565b34801561024f575f80fd5b50604051601281526020016101cb565b34801561026a575f80fd5b5061021760075481565b34801561027f575f80fd5b5061021761028e3660046112ed565b6001600160a01b03165f9081526001602052604090205490565b3480156102b3575f80fd5b506102bc6105ad565b005b3480156102c9575f80fd5b506101f36102d83660046112ed565b60036020525f908152604090205460ff1681565b3480156102f7575f80fd5b506102bc610306366004611308565b6105c0565b348015610316575f80fd5b506102bc610325366004611308565b610624565b348015610335575f80fd5b506102bc6103443660046112ed565b61064f565b348015610354575f80fd5b50600954610368906001600160a01b031681565b6040516001600160a01b0390911681526020016101cb565b34801561038b575f80fd5b505f546001600160a01b0316610368565b3480156103a7575f80fd5b506102bc610677565b3480156103bb575f80fd5b50604080518082019091526004815263434f524160e01b60208201526101be565b3480156103e7575f80fd5b506102bc6103f636600461131f565b6106e4565b348015610406575f80fd5b506102bc6104153660046112ed565b610745565b348015610425575f80fd5b506101f3610434366004611285565b610770565b348015610444575f80fd5b5061021760055481565b348015610459575f80fd5b5061021760085481565b34801561046e575f80fd5b5061021760045481565b348015610483575f80fd5b5061021761049236600461133f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104c7575f80fd5b5061021760065481565b3480156104dc575f80fd5b50600b546101f390600160b01b900460ff1681565b3480156104fc575f80fd5b506102bc61050b3660046112ed565b61077c565b5f61051c3384846107f5565b5060015b92915050565b5f6105336012600a61146a565b610541906305f5e100611478565b905090565b5f610552848484610918565b6105a3843361059e8560405180606001604052806028815260200161159c602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610dab565b6107f5565b5060019392505050565b6105b5610de3565b6105be5f610e3c565b565b6105c8610de3565b6105db60c86105d5610526565b90610e8b565b811161061f5760405162461bcd60e51b815260206004820152600e60248201526d4c696d69742076657279206c6f7760901b60448201526064015b60405180910390fd5b600755565b61062c610de3565b801561064a5760405162461bcd60e51b81526004016106169061148f565b600655565b610657610de3565b6001600160a01b03165f908152600360205260409020805460ff19169055565b61067f610de3565b600b54600160b01b900460ff1615156001036106cf5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610616565b600b805460ff60b01b1916600160b01b179055565b6106ec610de3565b600b54600160b01b900460ff161561073a57811561071c5760405162461bcd60e51b81526004016106169061148f565b801561073a5760405162461bcd60e51b81526004016106169061148f565b600491909155600555565b61074d610de3565b6001600160a01b03165f908152600360205260409020805460ff19166001179055565b5f61051c338484610918565b610784610de3565b6001600160a01b0381166107e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610616565b6107f281610e3c565b50565b6001600160a01b0383166108575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610616565b6001600160a01b0382166108b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610616565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661097c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610616565b6001600160a01b0382166109de5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610616565b5f8111610a3f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610616565b6001600160a01b0383165f9081526003602052604081205460ff16158015610a7f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610c6e57600b546001600160a01b03848116911614610b265760075482610abb856001600160a01b03165f9081526001602052604090205490565b610ac591906114b6565b1115610b265760405162461bcd60e51b815260206004820152602a60248201527f686967686572207468616e2074686520416e74695768616c654c696d6974206660448201526937b9103a37b5b2b7399760b11b6064820152608401610616565b600b546001600160a01b038581169116148015610b515750600a546001600160a01b03848116911614155b15610b7357610b7060646105d560045485610ed390919063ffffffff16565b90505b600b546001600160a01b0390811690841603610ba657610ba360646105d560055485610ed390919063ffffffff16565b90505b600b546001600160a01b03848116911614801590610bd25750600b546001600160a01b03858116911614155b15610bf457610bf160646105d560065485610ed390919063ffffffff16565b90505b305f90815260016020526040902054600b54600160a01b900460ff16158015610c2a5750600b546001600160a01b038581169116145b8015610c3f5750600b54600160a81b900460ff165b8015610c4c575060085481115b15610c6c57610c5a81610f51565b478015610c6a57610c6a476110c8565b505b505b8015610ce657305f90815260016020526040902054610c8d908261115a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cdd9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610d0890836111b8565b6001600160a01b0385165f90815260016020526040902055610d4b610d2d83836111b8565b6001600160a01b0385165f908152600160205260409020549061115a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610d9485856111b8565b60405190815260200160405180910390a350505050565b5f8184841115610dce5760405162461bcd60e51b81526004016106169190611225565b505f610dda84866114c9565b95945050505050565b5f546001600160a01b031633146105be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610616565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610ecc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111f9565b9392505050565b5f825f03610ee257505f610520565b5f610eed8385611478565b905082610efa85836114dc565b14610ecc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610616565b600b805460ff60a01b1916600160a01b17905580156110b8576040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f9d57610f9d6114fb565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ff4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611018919061150f565b8160018151811061102b5761102b6114fb565b6001600160a01b039283166020918202929092010152600a5461105191309116846107f5565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110899085905f9086903090429060040161152a565b5f604051808303815f87803b1580156110a0575f80fd5b505af11580156110b2573d5f803e3d5ffd5b50505050505b50600b805460ff60a01b19169055565b6009546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611112576040519150601f19603f3d011682016040523d82523d5f602084013e611117565b606091505b50509050806111565760405162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b6044820152606401610616565b5050565b5f8061116683856114b6565b905083811015610ecc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610616565b5f610ecc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dab565b5f81836112195760405162461bcd60e51b81526004016106169190611225565b505f610dda84866114dc565b5f602080835283518060208501525f5b8181101561125157858101830151858201604001528201611235565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107f2575f80fd5b5f8060408385031215611296575f80fd5b82356112a181611271565b946020939093013593505050565b5f805f606084860312156112c1575f80fd5b83356112cc81611271565b925060208401356112dc81611271565b929592945050506040919091013590565b5f602082840312156112fd575f80fd5b8135610ecc81611271565b5f60208284031215611318575f80fd5b5035919050565b5f8060408385031215611330575f80fd5b50508035926020909101359150565b5f8060408385031215611350575f80fd5b823561135b81611271565b9150602083013561136b81611271565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156113c457815f19048211156113aa576113aa611376565b808516156113b757918102915b93841c939080029061138f565b509250929050565b5f826113da57506001610520565b816113e657505f610520565b81600181146113fc576002811461140657611422565b6001915050610520565b60ff84111561141757611417611376565b50506001821b610520565b5060208310610133831016604e8410600b8410161715611445575081810a610520565b61144f838361138a565b805f190482111561146257611462611376565b029392505050565b5f610ecc60ff8416836113cc565b808202811582820484141761052057610520611376565b6020808252600d908201526c08ccacae640e8dede40d0d2ced609b1b604082015260600190565b8082018082111561052057610520611376565b8181038181111561052057610520611376565b5f826114f657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561151f575f80fd5b8151610ecc81611271565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561157a5784516001600160a01b031683529383019391830191600101611555565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220add49a940bfe8cf6af45a7493a8ca633fd3244a87ea1fcf4853b18d638f5f4af64736f6c63430008180033

Deployed Bytecode

0x60806040526004361061017e575f3560e01c80638da5cb5b116100cd578063afee5c7e11610087578063dd62ed3e11610062578063dd62ed3e14610478578063e354bbdb146104bc578063ed46d8df146104d1578063f2fde38b146104f1575f80fd5b8063afee5c7e14610439578063bf474bed1461044e578063cd02b35414610463575f80fd5b80638da5cb5b14610380578063947676791461039c57806395d89b41146103b057806399856ea3146103dc578063a6dee319146103fb578063a9059cbb1461041a575f80fd5b806370a082311161013857806377dde5291161011357806377dde529146102ec57806378322e451461030b5780637c278dad1461032a5780638226668614610349575f80fd5b806370a0823114610274578063715018a6146102a8578063768dc710146102be575f80fd5b806306fdde0314610189578063095ea7b3146101d457806318160ddd1461020357806323b872dd14610225578063313ce567146102445780635f6afff41461025f575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b50604080518082019091526011815270021b7b93090283934bb30b1bc907141511607d1b60208201525b6040516101cb9190611225565b60405180910390f35b3480156101df575f80fd5b506101f36101ee366004611285565b610510565b60405190151581526020016101cb565b34801561020e575f80fd5b50610217610526565b6040519081526020016101cb565b348015610230575f80fd5b506101f361023f3660046112af565b610546565b34801561024f575f80fd5b50604051601281526020016101cb565b34801561026a575f80fd5b5061021760075481565b34801561027f575f80fd5b5061021761028e3660046112ed565b6001600160a01b03165f9081526001602052604090205490565b3480156102b3575f80fd5b506102bc6105ad565b005b3480156102c9575f80fd5b506101f36102d83660046112ed565b60036020525f908152604090205460ff1681565b3480156102f7575f80fd5b506102bc610306366004611308565b6105c0565b348015610316575f80fd5b506102bc610325366004611308565b610624565b348015610335575f80fd5b506102bc6103443660046112ed565b61064f565b348015610354575f80fd5b50600954610368906001600160a01b031681565b6040516001600160a01b0390911681526020016101cb565b34801561038b575f80fd5b505f546001600160a01b0316610368565b3480156103a7575f80fd5b506102bc610677565b3480156103bb575f80fd5b50604080518082019091526004815263434f524160e01b60208201526101be565b3480156103e7575f80fd5b506102bc6103f636600461131f565b6106e4565b348015610406575f80fd5b506102bc6104153660046112ed565b610745565b348015610425575f80fd5b506101f3610434366004611285565b610770565b348015610444575f80fd5b5061021760055481565b348015610459575f80fd5b5061021760085481565b34801561046e575f80fd5b5061021760045481565b348015610483575f80fd5b5061021761049236600461133f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104c7575f80fd5b5061021760065481565b3480156104dc575f80fd5b50600b546101f390600160b01b900460ff1681565b3480156104fc575f80fd5b506102bc61050b3660046112ed565b61077c565b5f61051c3384846107f5565b5060015b92915050565b5f6105336012600a61146a565b610541906305f5e100611478565b905090565b5f610552848484610918565b6105a3843361059e8560405180606001604052806028815260200161159c602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610dab565b6107f5565b5060019392505050565b6105b5610de3565b6105be5f610e3c565b565b6105c8610de3565b6105db60c86105d5610526565b90610e8b565b811161061f5760405162461bcd60e51b815260206004820152600e60248201526d4c696d69742076657279206c6f7760901b60448201526064015b60405180910390fd5b600755565b61062c610de3565b801561064a5760405162461bcd60e51b81526004016106169061148f565b600655565b610657610de3565b6001600160a01b03165f908152600360205260409020805460ff19169055565b61067f610de3565b600b54600160b01b900460ff1615156001036106cf5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610616565b600b805460ff60b01b1916600160b01b179055565b6106ec610de3565b600b54600160b01b900460ff161561073a57811561071c5760405162461bcd60e51b81526004016106169061148f565b801561073a5760405162461bcd60e51b81526004016106169061148f565b600491909155600555565b61074d610de3565b6001600160a01b03165f908152600360205260409020805460ff19166001179055565b5f61051c338484610918565b610784610de3565b6001600160a01b0381166107e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610616565b6107f281610e3c565b50565b6001600160a01b0383166108575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610616565b6001600160a01b0382166108b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610616565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661097c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610616565b6001600160a01b0382166109de5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610616565b5f8111610a3f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610616565b6001600160a01b0383165f9081526003602052604081205460ff16158015610a7f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610c6e57600b546001600160a01b03848116911614610b265760075482610abb856001600160a01b03165f9081526001602052604090205490565b610ac591906114b6565b1115610b265760405162461bcd60e51b815260206004820152602a60248201527f686967686572207468616e2074686520416e74695768616c654c696d6974206660448201526937b9103a37b5b2b7399760b11b6064820152608401610616565b600b546001600160a01b038581169116148015610b515750600a546001600160a01b03848116911614155b15610b7357610b7060646105d560045485610ed390919063ffffffff16565b90505b600b546001600160a01b0390811690841603610ba657610ba360646105d560055485610ed390919063ffffffff16565b90505b600b546001600160a01b03848116911614801590610bd25750600b546001600160a01b03858116911614155b15610bf457610bf160646105d560065485610ed390919063ffffffff16565b90505b305f90815260016020526040902054600b54600160a01b900460ff16158015610c2a5750600b546001600160a01b038581169116145b8015610c3f5750600b54600160a81b900460ff165b8015610c4c575060085481115b15610c6c57610c5a81610f51565b478015610c6a57610c6a476110c8565b505b505b8015610ce657305f90815260016020526040902054610c8d908261115a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cdd9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610d0890836111b8565b6001600160a01b0385165f90815260016020526040902055610d4b610d2d83836111b8565b6001600160a01b0385165f908152600160205260409020549061115a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610d9485856111b8565b60405190815260200160405180910390a350505050565b5f8184841115610dce5760405162461bcd60e51b81526004016106169190611225565b505f610dda84866114c9565b95945050505050565b5f546001600160a01b031633146105be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610616565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610ecc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111f9565b9392505050565b5f825f03610ee257505f610520565b5f610eed8385611478565b905082610efa85836114dc565b14610ecc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610616565b600b805460ff60a01b1916600160a01b17905580156110b8576040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f9d57610f9d6114fb565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ff4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611018919061150f565b8160018151811061102b5761102b6114fb565b6001600160a01b039283166020918202929092010152600a5461105191309116846107f5565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110899085905f9086903090429060040161152a565b5f604051808303815f87803b1580156110a0575f80fd5b505af11580156110b2573d5f803e3d5ffd5b50505050505b50600b805460ff60a01b19169055565b6009546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611112576040519150601f19603f3d011682016040523d82523d5f602084013e611117565b606091505b50509050806111565760405162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b6044820152606401610616565b5050565b5f8061116683856114b6565b905083811015610ecc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610616565b5f610ecc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dab565b5f81836112195760405162461bcd60e51b81526004016106169190611225565b505f610dda84866114dc565b5f602080835283518060208501525f5b8181101561125157858101830151858201604001528201611235565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107f2575f80fd5b5f8060408385031215611296575f80fd5b82356112a181611271565b946020939093013593505050565b5f805f606084860312156112c1575f80fd5b83356112cc81611271565b925060208401356112dc81611271565b929592945050506040919091013590565b5f602082840312156112fd575f80fd5b8135610ecc81611271565b5f60208284031215611318575f80fd5b5035919050565b5f8060408385031215611330575f80fd5b50508035926020909101359150565b5f8060408385031215611350575f80fd5b823561135b81611271565b9150602083013561136b81611271565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156113c457815f19048211156113aa576113aa611376565b808516156113b757918102915b93841c939080029061138f565b509250929050565b5f826113da57506001610520565b816113e657505f610520565b81600181146113fc576002811461140657611422565b6001915050610520565b60ff84111561141757611417611376565b50506001821b610520565b5060208310610133831016604e8410600b8410161715611445575081810a610520565b61144f838361138a565b805f190482111561146257611462611376565b029392505050565b5f610ecc60ff8416836113cc565b808202811582820484141761052057610520611376565b6020808252600d908201526c08ccacae640e8dede40d0d2ced609b1b604082015260600190565b8082018082111561052057610520611376565b8181038181111561052057610520611376565b5f826114f657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561151f575f80fd5b8151610ecc81611271565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561157a5784516001600160a01b031683529383019391830191600101611555565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220add49a940bfe8cf6af45a7493a8ca633fd3244a87ea1fcf4853b18d638f5f4af64736f6c63430008180033

Deployed Bytecode Sourcemap

4814:7332:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6684:83;;;;;;;;;;-1:-1:-1;6754:5:0;;;;;;;;;;;;-1:-1:-1;;;6754:5:0;;;;6684:83;;;;;;;:::i;:::-;;;;;;;;7517:161;;;;;;;;;;-1:-1:-1;7517:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7517:161:0;1023:187:1;6961:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6961:95:0;1215:177:1;7686:313:0;;;;;;;;;;-1:-1:-1;7686:313:0;;;;;:::i;:::-;;:::i;6870:83::-;;;;;;;;;;-1:-1:-1;6870:83:0;;5304:2;2000:36:1;;1988:2;1973:18;6870:83:0;1858:184:1;5205:55:0;;;;;;;;;;;;;;;;7064:119;;;;;;;;;;-1:-1:-1;7064:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7157:18:0;7130:7;7157:18;;;:9;:18;;;;;;;7064:119;3235:103;;;;;;;;;;;;;:::i;:::-;;5027:51;;;;;;;;;;-1:-1:-1;5027:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11578:169;;;;;;;;;;-1:-1:-1;11578:169:0;;;;;:::i;:::-;;:::i;11400:170::-;;;;;;;;;;-1:-1:-1;11400:170:0;;;;;:::i;:::-;;:::i;12021:108::-;;;;;;;;;;-1:-1:-1;12021:108:0;;;;;:::i;:::-;;:::i;5570:88::-;;;;;;;;;;-1:-1:-1;5570:88:0;;;;-1:-1:-1;;;;;5570:88:0;;;;;;-1:-1:-1;;;;;2664:32:1;;;2646:51;;2634:2;2619:18;5570:88:0;2484:219:1;2594:87:0;;;;;;;;;;-1:-1:-1;2640:7:0;2667:6;-1:-1:-1;;;;;2667:6:0;2594:87;;11755:140;;;;;;;;;;;;;:::i;6775:87::-;;;;;;;;;;-1:-1:-1;6847:7:0;;;;;;;;;;;;-1:-1:-1;;;6847:7:0;;;;6775:87;;11081:311;;;;;;;;;;-1:-1:-1;11081:311:0;;;;;:::i;:::-;;:::i;11903:110::-;;;;;;;;;;-1:-1:-1;11903:110:0;;;;;:::i;:::-;;:::i;7191:167::-;;;;;;;;;;-1:-1:-1;7191:167:0;;;;;:::i;:::-;;:::i;5124:31::-;;;;;;;;;;;;;;;;5499:56;;;;;;;;;;;;;;;;5087:30;;;;;;;;;;;;;;;;7366:143;;;;;;;;;;-1:-1:-1;7366:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7474:18:0;;;7447:7;7474:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7366:143;5162:36;;;;;;;;;;;;;;;;5826:33;;;;;;;;;;-1:-1:-1;5826:33:0;;;;-1:-1:-1;;;5826:33:0;;;;;;3493:201;;;;;;;;;;-1:-1:-1;3493:201:0;;;;;:::i;:::-;;:::i;7517:161::-;7592:4;7609:39;177:10;7632:7;7641:6;7609:8;:39::i;:::-;-1:-1:-1;7666:4:0;7517:161;;;;;:::o;6961:95::-;7014:7;5360:13;5304:2;5360;:13;:::i;:::-;5348:25;;:9;:25;:::i;:::-;7034:14;;6961:95;:::o;7686:313::-;7784:4;7801:36;7811:6;7819:9;7830:6;7801:9;:36::i;:::-;7848:121;7857:6;177:10;7879:89;7917:6;7879:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7879:19:0;;;;;;:11;:19;;;;;;;;177:10;7879:33;;;;;;;;;;:37;:89::i;:::-;7848:8;:121::i;:::-;-1:-1:-1;7987:4:0;7686:313;;;;;:::o;3235:103::-;2480:13;:11;:13::i;:::-;3300:30:::1;3327:1;3300:18;:30::i;:::-;3235:103::o:0;11578:169::-;2480:13;:11;:13::i;:::-;11667:22:::1;11685:3;11667:13;:11;:13::i;:::-;:17:::0;::::1;:22::i;:::-;11657:7;:32;11649:58;;;::::0;-1:-1:-1;;;11649:58:0;;5446:2:1;11649:58:0::1;::::0;::::1;5428:21:1::0;5485:2;5465:18;;;5458:30;-1:-1:-1;;;5504:18:1;;;5497:44;5558:18;;11649:58:0::1;;;;;;;;;11718:11;:21:::0;11578:169::o;11400:170::-;2480:13;:11;:13::i;:::-;11485:17;;11477:42:::1;;;;-1:-1:-1::0;;;11477:42:0::1;;;;;;;:::i;:::-;11530:17;:32:::0;11400:170::o;12021:108::-;2480:13;:11;:13::i;:::-;-1:-1:-1;;;;;12086:27:0::1;12116:5;12086:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12086:35:0::1;::::0;;12021:108::o;11755:140::-;2480:13;:11;:13::i;:::-;11815::::1;::::0;-1:-1:-1;;;11815:13:0;::::1;;;:21;;11832:4;11815:21:::0;11807:49:::1;;;::::0;-1:-1:-1;;;11807:49:0;;6131:2:1;11807:49:0::1;::::0;::::1;6113:21:1::0;6170:2;6150:18;;;6143:30;-1:-1:-1;;;6189:18:1;;;6182:45;6244:18;;11807:49:0::1;5929:339:1::0;11807:49:0::1;11867:13;:20:::0;;-1:-1:-1;;;;11867:20:0::1;-1:-1:-1::0;;;11867:20:0::1;::::0;;11755:140::o;11081:311::-;2480:13;:11;:13::i;:::-;11185::::1;::::0;-1:-1:-1;;;11185:13:0;::::1;;;11182:135;;;11223:12:::0;;11215:37:::1;;;;-1:-1:-1::0;;;11215:37:0::1;;;;;;;:::i;:::-;11275:13:::0;;11267:38:::1;;;;-1:-1:-1::0;;;11267:38:0::1;;;;;;;:::i;:::-;11329:11;:21:::0;;;;11361:12:::1;:23:::0;11081:311::o;11903:110::-;2480:13;:11;:13::i;:::-;-1:-1:-1;;;;;11971:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;11971:34:0::1;12001:4;11971:34;::::0;;11903:110::o;7191:167::-;7269:4;7286:42;177:10;7310:9;7321:6;7286:9;:42::i;3493:201::-;2480:13;:11;:13::i;:::-;-1:-1:-1;;;;;3582:22:0;::::1;3574:73;;;::::0;-1:-1:-1;;;3574:73:0;;6475:2:1;3574:73:0::1;::::0;::::1;6457:21:1::0;6514:2;6494:18;;;6487:30;6553:34;6533:18;;;6526:62;-1:-1:-1;;;6604:18:1;;;6597:36;6650:19;;3574:73:0::1;6273:402:1::0;3574:73:0::1;3658:28;3677:8;3658:18;:28::i;:::-;3493:201:::0;:::o;8007:335::-;-1:-1:-1;;;;;8100:19:0;;8092:68;;;;-1:-1:-1;;;8092:68:0;;6882:2:1;8092:68:0;;;6864:21:1;6921:2;6901:18;;;6894:30;6960:34;6940:18;;;6933:62;-1:-1:-1;;;7011:18:1;;;7004:34;7055:19;;8092:68:0;6680:400:1;8092:68:0;-1:-1:-1;;;;;8179:21:0;;8171:68;;;;-1:-1:-1;;;8171:68:0;;7287:2:1;8171:68:0;;;7269:21:1;7326:2;7306:18;;;7299:30;7365:34;7345:18;;;7338:62;-1:-1:-1;;;7416:18:1;;;7409:32;7458:19;;8171:68:0;7085:398:1;8171:68:0;-1:-1:-1;;;;;8250:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8302:32;;1361:25:1;;;8302:32:0;;1334:18:1;8302:32:0;;;;;;;8007:335;;;:::o;8350:1865::-;-1:-1:-1;;;;;8438:18:0;;8430:68;;;;-1:-1:-1;;;8430:68:0;;7690:2:1;8430:68:0;;;7672:21:1;7729:2;7709:18;;;7702:30;7768:34;7748:18;;;7741:62;-1:-1:-1;;;7819:18:1;;;7812:35;7864:19;;8430:68:0;7488:401:1;8430:68:0;-1:-1:-1;;;;;8517:16:0;;8509:64;;;;-1:-1:-1;;;8509:64:0;;8096:2:1;8509:64:0;;;8078:21:1;8135:2;8115:18;;;8108:30;8174:34;8154:18;;;8147:62;-1:-1:-1;;;8225:18:1;;;8218:33;8268:19;;8509:64:0;7894:399:1;8509:64:0;8601:1;8592:6;:10;8584:64;;;;-1:-1:-1;;;8584:64:0;;8500:2:1;8584:64:0;;;8482:21:1;8539:2;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;-1:-1:-1;;;8629:18:1;;;8622:39;8678:19;;8584:64:0;8298:405:1;8584:64:0;-1:-1:-1;;;;;8694:24:0;;8659:17;8694:24;;;:18;:24;;;;;;;;8693:25;:52;;;;-1:-1:-1;;;;;;8723:22:0;;;;;;:18;:22;;;;;;;;8722:23;8693:52;8689:1170;;;8773:13;;-1:-1:-1;;;;;8767:19:0;;;8773:13;;8767:19;8764:149;;8839:11;;8829:6;8813:13;8823:2;-1:-1:-1;;;;;7157:18:0;7130:7;7157:18;;;:9;:18;;;;;;;7064:119;8813:13;:22;;;;:::i;:::-;:37;;8805:92;;;;-1:-1:-1;;;8805:92:0;;9040:2:1;8805:92:0;;;9022:21:1;9079:2;9059:18;;;9052:30;9118:34;9098:18;;;9091:62;-1:-1:-1;;;9169:18:1;;;9162:40;9219:19;;8805:92:0;8838:406:1;8805:92:0;8955:13;;-1:-1:-1;;;;;8947:21:0;;;8955:13;;8947:21;:55;;;;-1:-1:-1;8986:15:0;;-1:-1:-1;;;;;8972:30:0;;;8986:15;;8972:30;;8947:55;8943:140;;;9035:32;9063:3;9035:23;9046:11;;9035:6;:10;;:23;;;;:::i;:32::-;9023:44;;8943:140;9120:13;;-1:-1:-1;;;;;9120:13:0;;;9114:19;;;;9111:103;;9165:33;9194:3;9165:24;9176:12;;9165:6;:10;;:24;;;;:::i;:33::-;9153:45;;9111:103;9251:13;;-1:-1:-1;;;;;9245:19:0;;;9251:13;;9245:19;;;;:44;;-1:-1:-1;9276:13:0;;-1:-1:-1;;;;;9268:21:0;;;9276:13;;9268:21;;9245:44;9242:134;;;9322:38;9356:3;9322:29;9333:17;;9322:6;:10;;:29;;;;:::i;:38::-;9310:50;;9242:134;9469:4;9420:28;7157:18;;;:9;:18;;;;;;9495:6;;-1:-1:-1;;;9495:6:0;;;;9494:7;:30;;;;-1:-1:-1;9511:13:0;;-1:-1:-1;;;;;9505:19:0;;;9511:13;;9505:19;9494:30;:45;;;;-1:-1:-1;9528:11:0;;-1:-1:-1;;;9528:11:0;;;;9494:45;:87;;;;;9564:17;;9543:20;:38;9494:87;9490:358;;;9602:38;9619:20;9602:16;:38::i;:::-;9688:21;9731:22;;9728:105;;9778:35;9791:21;9778:12;:35::i;:::-;9583:265;9490:358;8747:1112;8689:1170;9874:11;;9871:161;;9942:4;9924:24;;;;:9;:24;;;;;;:39;;9953:9;9924:28;:39::i;:::-;9917:4;9899:24;;;;:9;:24;;;;;;;:64;;;;9981:39;;-1:-1:-1;;;;;9981:39:0;;;;;;;10010:9;1361:25:1;;1349:2;1334:18;;1215:177;9981:39:0;;;;;;;;9871:161;-1:-1:-1;;;;;10058:15:0;;;;;;:9;:15;;;;;;:27;;10078:6;10058:19;:27::i;:::-;-1:-1:-1;;;;;10042:15:0;;;;;;:9;:15;;;;;:43;10110:40;10128:21;:6;10139:9;10128:10;:21::i;:::-;-1:-1:-1;;;;;10110:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10096:13:0;;;;;;;:9;:13;;;;;:54;;;;10166:41;;;10185:21;:6;10196:9;10185:10;:21::i;:::-;10166:41;;1361:25:1;;;1349:2;1334:18;10166:41:0;;;;;;;8419:1796;8350:1865;;;:::o;1234:190::-;1320:7;1356:12;1348:6;;;;1340:29;;;;-1:-1:-1;;;1340:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1380:9:0;1392:5;1396:1;1392;:5;:::i;:::-;1380:17;1234:190;-1:-1:-1;;;;;1234:190:0:o;2759:132::-;2640:7;2667:6;-1:-1:-1;;;;;2667:6:0;177:10;2823:23;2815:68;;;;-1:-1:-1;;;2815:68:0;;9584:2:1;2815:68:0;;;9566:21:1;;;9603:18;;;9596:30;9662:34;9642:18;;;9635:62;9714:18;;2815:68:0;9382:356:1;3854:191:0;3928:16;3947:6;;-1:-1:-1;;;;;3964:17:0;;;-1:-1:-1;;;;;;3964:17:0;;;;;;3997:40;;3947:6;;;;;;;3997:40;;3928:16;3997:40;3917:128;3854:191;:::o;1686:132::-;1744:7;1771:39;1775:1;1778;1771:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1764:46;1686:132;-1:-1:-1;;;1686:132:0:o;1432:246::-;1490:7;1514:1;1519;1514:6;1510:47;;-1:-1:-1;1544:1:0;1537:8;;1510:47;1567:9;1579:5;1583:1;1579;:5;:::i;:::-;1567:17;-1:-1:-1;1612:1:0;1603:5;1607:1;1567:17;1603:5;:::i;:::-;:10;1595:56;;;;-1:-1:-1;;;1595:56:0;;10167:2:1;1595:56:0;;;10149:21:1;10206:2;10186:18;;;10179:30;10245:34;10225:18;;;10218:62;-1:-1:-1;;;10296:18:1;;;10289:31;10337:19;;1595:56:0;9965:397:1;10331:520:0;5900:6;:13;;-1:-1:-1;;;;5900:13:0;-1:-1:-1;;;5900:13:0;;;10409:27;;10428:7:::1;10409:27;10470:16;::::0;;10484:1:::1;10470:16:::0;;;;;::::1;::::0;;10446:21:::1;::::0;10470:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10470:16:0::1;10446:40;;10515:4;10497;10502:1;10497:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10497:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10541:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10541:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10497:7;;10541:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10531:4;10536:1;10531:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10531:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10606:15:::1;::::0;10574:62:::1;::::0;10591:4:::1;::::0;10606:15:::1;10624:11:::0;10574:8:::1;:62::i;:::-;10647:15;::::0;:196:::1;::::0;-1:-1:-1;;;10647:196:0;;-1:-1:-1;;;;;10647:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10728:11;;10647:15:::1;::::0;10770:4;;10797::::1;::::0;10817:15:::1;::::0;10647:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10398:453;5924:1;-1:-1:-1::0;5936:6:0;:14;;-1:-1:-1;;;;5936:14:0;;;10331:520::o;10859:177::-;10946:11;;10938:44;;10916:16;;-1:-1:-1;;;;;10946:11:0;;10971:6;;10916:16;10938:44;10916:16;10938:44;10971:6;10946:11;10938:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10915:67;;;11001:11;10993:35;;;;-1:-1:-1;;;10993:35:0;;12284:2:1;10993:35:0;;;12266:21:1;12323:2;12303:18;;;12296:30;-1:-1:-1;;;12342:18:1;;;12335:41;12393:18;;10993:35:0;12082:335:1;10993:35:0;10905:131;10859:177;:::o;903:179::-;961:7;;993:5;997:1;993;:5;:::i;:::-;981:17;;1022:1;1017;:6;;1009:46;;;;-1:-1:-1;;;1009:46:0;;12624:2:1;1009:46:0;;;12606:21:1;12663:2;12643:18;;;12636:30;12702:29;12682:18;;;12675:57;12749:18;;1009:46:0;12422:351:1;1090:136:0;1148:7;1175:43;1179:1;1182;1175:43;;;;;;;;;;;;;;;;;:3;:43::i;1826:189::-;1912:7;1947:12;1940:5;1932:28;;;;-1:-1:-1;;;1932:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1971:9:0;1983:5;1987:1;1983;: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;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;2299:180::-;2358:6;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;-1:-1:-1;2450:23:1;;2299:180;-1:-1:-1;2299:180:1:o;2916:248::-;2984:6;2992;3045:2;3033:9;3024:7;3020:23;3016:32;3013:52;;;3061:1;3058;3051:12;3013:52;-1:-1:-1;;3084:23:1;;;3154:2;3139:18;;;3126:32;;-1:-1:-1;2916:248:1:o;3169:388::-;3237:6;3245;3298:2;3286:9;3277:7;3273:23;3269:32;3266:52;;;3314:1;3311;3304:12;3266:52;3353:9;3340:23;3372:31;3397:5;3372:31;:::i;:::-;3422:5;-1:-1:-1;3479:2:1;3464:18;;3451:32;3492:33;3451:32;3492:33;:::i;:::-;3544:7;3534:17;;;3169:388;;;;;:::o;3562:127::-;3623:10;3618:3;3614:20;3611:1;3604:31;3654:4;3651:1;3644:15;3678:4;3675:1;3668:15;3694:416;3783:1;3820:5;3783:1;3834:270;3855:7;3845:8;3842:21;3834:270;;;3914:4;3910:1;3906:6;3902:17;3896:4;3893:27;3890:53;;;3923:18;;:::i;:::-;3973:7;3963:8;3959:22;3956:55;;;3993:16;;;;3956:55;4072:22;;;;4032:15;;;;3834:270;;;3838:3;3694:416;;;;;:::o;4115:806::-;4164:5;4194:8;4184:80;;-1:-1:-1;4235:1:1;4249:5;;4184:80;4283:4;4273:76;;-1:-1:-1;4320:1:1;4334:5;;4273:76;4365:4;4383:1;4378:59;;;;4451:1;4446:130;;;;4358:218;;4378:59;4408:1;4399:10;;4422:5;;;4446:130;4483:3;4473:8;4470:17;4467:43;;;4490:18;;:::i;:::-;-1:-1:-1;;4546:1:1;4532:16;;4561:5;;4358:218;;4660:2;4650:8;4647:16;4641:3;4635:4;4632:13;4628:36;4622:2;4612:8;4609:16;4604:2;4598:4;4595:12;4591:35;4588:77;4585:159;;;-1:-1:-1;4697:19:1;;;4729:5;;4585:159;4776:34;4801:8;4795:4;4776:34;:::i;:::-;4846:6;4842:1;4838:6;4834:19;4825:7;4822:32;4819:58;;;4857:18;;:::i;:::-;4895:20;;4115:806;-1:-1:-1;;;4115:806:1:o;4926:140::-;4984:5;5013:47;5054:4;5044:8;5040:19;5034:4;5013:47;:::i;5071:168::-;5144:9;;;5175;;5192:15;;;5186:22;;5172:37;5162:71;;5213:18;;:::i;5587:337::-;5789:2;5771:21;;;5828:2;5808:18;;;5801:30;-1:-1:-1;;;5862:2:1;5847:18;;5840:43;5915:2;5900:18;;5587:337::o;8708:125::-;8773:9;;;8794:10;;;8791:36;;;8807:18;;:::i;9249:128::-;9316:9;;;9337:11;;;9334:37;;;9351:18;;:::i;9743:217::-;9783:1;9809;9799:132;;9853:10;9848:3;9844:20;9841:1;9834:31;9888:4;9885:1;9878:15;9916:4;9913:1;9906:15;9799:132;-1:-1:-1;9945:9:1;;9743:217::o;10499:127::-;10560:10;10555:3;10551:20;10548:1;10541:31;10591:4;10588:1;10581:15;10615:4;10612:1;10605:15;10631:251;10701:6;10754:2;10742:9;10733:7;10729:23;10725:32;10722:52;;;10770:1;10767;10760:12;10722:52;10802:9;10796:16;10821:31;10846:5;10821:31;:::i;10887:980::-;11149:4;11197:3;11186:9;11182:19;11228:6;11217:9;11210:25;11254:2;11292:6;11287:2;11276:9;11272:18;11265:34;11335:3;11330:2;11319:9;11315:18;11308:31;11359:6;11394;11388:13;11425:6;11417;11410:22;11463:3;11452:9;11448:19;11441:26;;11502:2;11494:6;11490:15;11476:29;;11523:1;11533:195;11547:6;11544:1;11541:13;11533:195;;;11612:13;;-1:-1:-1;;;;;11608:39:1;11596:52;;11703:15;;;;11668:12;;;;11644:1;11562:9;11533:195;;;-1:-1:-1;;;;;;;11784:32:1;;;;11779:2;11764:18;;11757:60;-1:-1:-1;;;11848:3:1;11833:19;11826:35;11745:3;10887:980;-1:-1:-1;;;10887:980:1:o

Swarm Source

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