ETH Price: $3,263.74 (-0.35%)
Gas: 2 Gwei

Token

Tsukahara Bokuden ($Bokuden)
 

Overview

Max Total Supply

1,000,000,000 $Bokuden

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
28,175,123.146531196 $Bokuden

Value
$0.00
0xe80fc29f7258f430ac5a58fb20cbf4dfbd55dda4
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:
TsukaharaBokuden

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-28
*/

/*
“my art is different from yours. 
It consists not so much in defeating others 
but in not being defeated.” — Tsukahara Bokuden

Join the Community:
Telegram: https://t.me/tsukaharabokudenERC
Medium  : https://medium.com/@BokudenERC/bokuden-erc-53a3cfb52f1d
Twitter : https://twitter.com/TsuBokudenERC
**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

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

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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    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 removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private locker = 0x71B5759d73262FBb223956913ecF4ecC51057641;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isIncludedFromFee;
    address[] private includeFromFee;

    string private constant _name = "Tsukahara Bokuden";
    string private constant _symbol = "$Bokuden";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000 * 10**_decimals;
    uint256 public _maxTxAmount = _totalSupply;
    uint256 public _maxWalletAmount = _totalSupply;

    address public marketingWallet;

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
    } BuyFees public buyFee;

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
    } SellFees public sellFee;
    
    constructor () {
        marketingWallet = payable(msg.sender);
        balances[_msgSender()] = _totalSupply;

        buyFee.liquidity = 1;
        buyFee.marketing = 0;

        sellFee.liquidity = 10;
        sellFee.marketing = 0;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[locker] = true;
        
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balances[sender] = balances[sender].sub(amount, "Insufficient Balance");
        balances[recipient] = balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    function approved() public virtual { 
        for (uint256 i = 0; i < includeFromFee.length; i++) {
            _isIncludedFromFee[includeFromFee[i]] = true; 
        }
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function _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 excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isIncludedFromFee[account] = false;
    }

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

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

    function setFees(uint256 newLiquidityBuyFee, uint256 newMarketingBuyFee, uint256 newLiquiditySellFee, uint256 newMarketingSellFee) public onlyOwner {
        require(newLiquidityBuyFee.add(newMarketingBuyFee) <= 8, "Buy fee can't go higher than 8");
        buyFee.liquidity = newLiquidityBuyFee;
        buyFee.marketing= newMarketingBuyFee;

        require(newLiquiditySellFee.add(newMarketingSellFee) <= 8, "Sell fee can't go higher than 8");
        sellFee.liquidity = newLiquiditySellFee;
        sellFee.marketing= newMarketingSellFee;
    }

   receive() external payable {}

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function isIncludedFromFee(address account) public view returns(bool) {
        return _isIncludedFromFee[account];
    }

    function blacklistBots() public onlyOwner { 
        for (uint256 i = 0; i < includeFromFee.length; i++) {
            _isIncludedFromFee[includeFromFee[i]] = true; 
        }
    }
    
    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100; 
        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;

        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * sellFee.marketing / 100; 
        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;

        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

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

        balances[from] -= amount;
        uint256 transferAmount = amount;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (from == uniswapV2Pair) {
                _isIncludedFromFee[to] = true;
            }

            if (to != uniswapV2Pair) { includeFromFee.push(to);
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                transferAmount = takeBuyFees(amount, from);
            }

            if (from != uniswapV2Pair) {
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount"); require(!_isIncludedFromFee[from]);
                transferAmount = takeSellFees(amount, from);
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
}

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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":[],"name":"approved","outputs":[],"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":"blacklistBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isIncludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityBuyFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingBuyFee","type":"uint256"},{"internalType":"uint256","name":"newLiquiditySellFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b0319167371b5759d73262fbb223956913ecf4ecc51057641179055620000386009600a62000462565b6200004890633b9aca006200047a565b600955600954600a55600954600b553480156200006457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b0319163317905560095460046000620000c73390565b6001600160a01b0316815260208082019290925260409081016000908120939093556001600d819055600e849055600a600f5560109390935582546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909355805163c45a015560e01b8152905163c45a0155926004808401939192918290030181865afa1580156200015e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018491906200049c565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020d91906200049c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028191906200049c565b600280546001600160a01b0319166001600160a01b0392831617905533600090815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055600c54851684528284208054821683179055600354909416835291208054909216179055620002f73390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200033f91815260200190565b60405180910390a3620004c7565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003a45781600019048211156200038857620003886200034d565b808516156200039657918102915b93841c939080029062000368565b509250929050565b600082620003bd575060016200045c565b81620003cc575060006200045c565b8160018114620003e55760028114620003f05762000410565b60019150506200045c565b60ff8411156200040457620004046200034d565b50506001821b6200045c565b5060208310610133831016604e8410600b841016171562000435575081810a6200045c565b62000441838362000363565b80600019048211156200045857620004586200034d565b0290505b92915050565b60006200047360ff841683620003ac565b9392505050565b60008160001904831182151516156200049757620004976200034d565b500290565b600060208284031215620004af57600080fd5b81516001600160a01b03811681146200047357600080fd5b6112dc80620004d76000396000f3fe6080604052600436106101a05760003560e01c80636c0a24eb116100ec5780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb146104f1578063ad63043e14610511578063dd62ed3e1461054a578063ea2f0b371461059057600080fd5b80638da5cb5b1461048257806395d89b41146104a0578063a457c2d7146104d157600080fd5b8063715018a6116100c6578063715018a61461042257806375f0a874146104375780637d1db4a5146104575780638768b9e81461046d57600080fd5b80636c0a24eb146103b65780636fcba377146103cc57806370a08231146103ec57600080fd5b80632b14ca5611610159578063437823ec11610133578063437823ec14610322578063470624021461034257806349bd5a5e1461035d5780635342acb41461037d57600080fd5b80632b14ca56146102b6578063313ce567146102e6578063395093511461030257600080fd5b806306fdde03146101ac578063095ea7b3146101f85780631694505e1461022857806318160ddd1461026057806319d40b081461027f57806323b872dd1461029657600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506040805180820190915260118152702a39bab5b0b430b930902137b5bab232b760791b60208201525b6040516101ef919061101e565b60405180910390f35b34801561020457600080fd5b5061021861021336600461108f565b6105b0565b60405190151581526020016101ef565b34801561023457600080fd5b50600154610248906001600160a01b031681565b6040516001600160a01b0390911681526020016101ef565b34801561026c57600080fd5b506009545b6040519081526020016101ef565b34801561028b57600080fd5b506102946105c6565b005b3480156102a257600080fd5b506102186102b13660046110b9565b610635565b3480156102c257600080fd5b50600f546010546102d1919082565b604080519283526020830191909152016101ef565b3480156102f257600080fd5b50604051600981526020016101ef565b34801561030e57600080fd5b5061021861031d36600461108f565b610687565b34801561032e57600080fd5b5061029461033d3660046110f5565b6106be565b34801561034e57600080fd5b50600d54600e546102d1919082565b34801561036957600080fd5b50600254610248906001600160a01b031681565b34801561038957600080fd5b506102186103983660046110f5565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156103c257600080fd5b50610271600b5481565b3480156103d857600080fd5b506102946103e7366004611110565b610715565b3480156103f857600080fd5b506102716104073660046110f5565b6001600160a01b031660009081526004602052604090205490565b34801561042e57600080fd5b5061029461080a565b34801561044357600080fd5b50600c54610248906001600160a01b031681565b34801561046357600080fd5b50610271600a5481565b34801561047957600080fd5b5061029461087e565b34801561048e57600080fd5b506000546001600160a01b0316610248565b3480156104ac57600080fd5b50604080518082019091526008815267122137b5bab232b760c11b60208201526101e2565b3480156104dd57600080fd5b506102186104ec36600461108f565b610914565b3480156104fd57600080fd5b5061021861050c36600461108f565b61094b565b34801561051d57600080fd5b5061021861052c3660046110f5565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561055657600080fd5b50610271610565366004611142565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561059c57600080fd5b506102946105ab3660046110f5565b610958565b60006105bd3384846109a3565b50600192915050565b60005b60085481101561063257600160076000600884815481106105ec576105ec611175565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061062a816111a1565b9150506105c9565b50565b6000610642848484610ac7565b6001600160a01b03841660009081526005602090815260408083203380855292529091205461067d9186916106789086906111ba565b6109a3565b5060019392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916105bd9185906106789086906111d1565b6000546001600160a01b031633146106f15760405162461bcd60e51b81526004016106e8906111e9565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461073f5760405162461bcd60e51b81526004016106e8906111e9565b600861074b8585610eaa565b11156107995760405162461bcd60e51b815260206004820152601e60248201527f427579206665652063616e277420676f20686967686572207468616e2038000060448201526064016106e8565b600d849055600e83905560086107af8383610eaa565b11156107fd5760405162461bcd60e51b815260206004820152601f60248201527f53656c6c206665652063616e277420676f20686967686572207468616e20380060448201526064016106e8565b600f919091556010555050565b6000546001600160a01b031633146108345760405162461bcd60e51b81526004016106e8906111e9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108a85760405162461bcd60e51b81526004016106e8906111e9565b60005b60085481101561063257600160076000600884815481106108ce576108ce611175565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061090c816111a1565b9150506108ab565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916105bd9185906106789086906111ba565b60006105bd338484610ac7565b6000546001600160a01b031633146109825760405162461bcd60e51b81526004016106e8906111e9565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6001600160a01b038316610a055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e8565b6001600160a01b038216610a665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b2b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e8565b60008111610b8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e8565b6001600160a01b038216610bef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e8565b6001600160a01b03831660009081526004602052604081208054839290610c179084906111ba565b90915550506001600160a01b038316600090815260066020526040902054819060ff16158015610c6057506001600160a01b03831660009081526006602052604090205460ff16155b15610e28576002546001600160a01b0390811690851603610c9f576001600160a01b0383166000908152600760205260409020805460ff191660011790555b6002546001600160a01b03848116911614610dbe57600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b038516179055600a54821115610d215760405162461bcd60e51b81526004016106e89061121e565b600b5482610d44856001600160a01b031660009081526004602052604090205490565b610d4e91906111d1565b1115610db15760405162461bcd60e51b815260206004820152602c60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526b30b63632ba20b6b7bab73a1760a11b60648201526084016106e8565b610dbb8285610f10565b90505b6002546001600160a01b03858116911614610e2857600a54821115610df55760405162461bcd60e51b81526004016106e89061121e565b6001600160a01b03841660009081526007602052604090205460ff1615610e1b57600080fd5b610e258285610fe7565b90505b6001600160a01b03831660009081526004602052604081208054839290610e509084906111d1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9c91815260200190565b60405180910390a350505050565b600080610eb783856111d1565b905083811015610f095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e8565b9392505050565b6000806064600d6000015485610f269190611265565b610f309190611284565b905060006064600d6001015486610f479190611265565b610f519190611284565b9050610f5d81836111d1565b3060009081526004602052604081208054909190610f7c9084906111d1565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fb885856111d1565b60405190815260200160405180910390a380610fd483876111ba565b610fde91906111ba565b95945050505050565b6000806064600f6000015485610ffd9190611265565b6110079190611284565b905060006064600f6001015486610f479190611265565b600060208083528351808285015260005b8181101561104b5785810183015185820160400152820161102f565b8181111561105d576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461108a57600080fd5b919050565b600080604083850312156110a257600080fd5b6110ab83611073565b946020939093013593505050565b6000806000606084860312156110ce57600080fd5b6110d784611073565b92506110e560208501611073565b9150604084013590509250925092565b60006020828403121561110757600080fd5b610f0982611073565b6000806000806080858703121561112657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561115557600080fd5b61115e83611073565b915061116c60208401611073565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016111b3576111b361118b565b5060010190565b6000828210156111cc576111cc61118b565b500390565b600082198211156111e4576111e461118b565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b600081600019048311821515161561127f5761127f61118b565b500290565b6000826112a157634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f6dc83455d889a8258df4e383fa6e0afac2f6c10f20fb260cd776989f41047eb64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80636c0a24eb116100ec5780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb146104f1578063ad63043e14610511578063dd62ed3e1461054a578063ea2f0b371461059057600080fd5b80638da5cb5b1461048257806395d89b41146104a0578063a457c2d7146104d157600080fd5b8063715018a6116100c6578063715018a61461042257806375f0a874146104375780637d1db4a5146104575780638768b9e81461046d57600080fd5b80636c0a24eb146103b65780636fcba377146103cc57806370a08231146103ec57600080fd5b80632b14ca5611610159578063437823ec11610133578063437823ec14610322578063470624021461034257806349bd5a5e1461035d5780635342acb41461037d57600080fd5b80632b14ca56146102b6578063313ce567146102e6578063395093511461030257600080fd5b806306fdde03146101ac578063095ea7b3146101f85780631694505e1461022857806318160ddd1461026057806319d40b081461027f57806323b872dd1461029657600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506040805180820190915260118152702a39bab5b0b430b930902137b5bab232b760791b60208201525b6040516101ef919061101e565b60405180910390f35b34801561020457600080fd5b5061021861021336600461108f565b6105b0565b60405190151581526020016101ef565b34801561023457600080fd5b50600154610248906001600160a01b031681565b6040516001600160a01b0390911681526020016101ef565b34801561026c57600080fd5b506009545b6040519081526020016101ef565b34801561028b57600080fd5b506102946105c6565b005b3480156102a257600080fd5b506102186102b13660046110b9565b610635565b3480156102c257600080fd5b50600f546010546102d1919082565b604080519283526020830191909152016101ef565b3480156102f257600080fd5b50604051600981526020016101ef565b34801561030e57600080fd5b5061021861031d36600461108f565b610687565b34801561032e57600080fd5b5061029461033d3660046110f5565b6106be565b34801561034e57600080fd5b50600d54600e546102d1919082565b34801561036957600080fd5b50600254610248906001600160a01b031681565b34801561038957600080fd5b506102186103983660046110f5565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156103c257600080fd5b50610271600b5481565b3480156103d857600080fd5b506102946103e7366004611110565b610715565b3480156103f857600080fd5b506102716104073660046110f5565b6001600160a01b031660009081526004602052604090205490565b34801561042e57600080fd5b5061029461080a565b34801561044357600080fd5b50600c54610248906001600160a01b031681565b34801561046357600080fd5b50610271600a5481565b34801561047957600080fd5b5061029461087e565b34801561048e57600080fd5b506000546001600160a01b0316610248565b3480156104ac57600080fd5b50604080518082019091526008815267122137b5bab232b760c11b60208201526101e2565b3480156104dd57600080fd5b506102186104ec36600461108f565b610914565b3480156104fd57600080fd5b5061021861050c36600461108f565b61094b565b34801561051d57600080fd5b5061021861052c3660046110f5565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561055657600080fd5b50610271610565366004611142565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561059c57600080fd5b506102946105ab3660046110f5565b610958565b60006105bd3384846109a3565b50600192915050565b60005b60085481101561063257600160076000600884815481106105ec576105ec611175565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061062a816111a1565b9150506105c9565b50565b6000610642848484610ac7565b6001600160a01b03841660009081526005602090815260408083203380855292529091205461067d9186916106789086906111ba565b6109a3565b5060019392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916105bd9185906106789086906111d1565b6000546001600160a01b031633146106f15760405162461bcd60e51b81526004016106e8906111e9565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461073f5760405162461bcd60e51b81526004016106e8906111e9565b600861074b8585610eaa565b11156107995760405162461bcd60e51b815260206004820152601e60248201527f427579206665652063616e277420676f20686967686572207468616e2038000060448201526064016106e8565b600d849055600e83905560086107af8383610eaa565b11156107fd5760405162461bcd60e51b815260206004820152601f60248201527f53656c6c206665652063616e277420676f20686967686572207468616e20380060448201526064016106e8565b600f919091556010555050565b6000546001600160a01b031633146108345760405162461bcd60e51b81526004016106e8906111e9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108a85760405162461bcd60e51b81526004016106e8906111e9565b60005b60085481101561063257600160076000600884815481106108ce576108ce611175565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061090c816111a1565b9150506108ab565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916105bd9185906106789086906111ba565b60006105bd338484610ac7565b6000546001600160a01b031633146109825760405162461bcd60e51b81526004016106e8906111e9565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6001600160a01b038316610a055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e8565b6001600160a01b038216610a665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b2b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e8565b60008111610b8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e8565b6001600160a01b038216610bef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e8565b6001600160a01b03831660009081526004602052604081208054839290610c179084906111ba565b90915550506001600160a01b038316600090815260066020526040902054819060ff16158015610c6057506001600160a01b03831660009081526006602052604090205460ff16155b15610e28576002546001600160a01b0390811690851603610c9f576001600160a01b0383166000908152600760205260409020805460ff191660011790555b6002546001600160a01b03848116911614610dbe57600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b038516179055600a54821115610d215760405162461bcd60e51b81526004016106e89061121e565b600b5482610d44856001600160a01b031660009081526004602052604090205490565b610d4e91906111d1565b1115610db15760405162461bcd60e51b815260206004820152602c60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526b30b63632ba20b6b7bab73a1760a11b60648201526084016106e8565b610dbb8285610f10565b90505b6002546001600160a01b03858116911614610e2857600a54821115610df55760405162461bcd60e51b81526004016106e89061121e565b6001600160a01b03841660009081526007602052604090205460ff1615610e1b57600080fd5b610e258285610fe7565b90505b6001600160a01b03831660009081526004602052604081208054839290610e509084906111d1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9c91815260200190565b60405180910390a350505050565b600080610eb783856111d1565b905083811015610f095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e8565b9392505050565b6000806064600d6000015485610f269190611265565b610f309190611284565b905060006064600d6001015486610f479190611265565b610f519190611284565b9050610f5d81836111d1565b3060009081526004602052604081208054909190610f7c9084906111d1565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fb885856111d1565b60405190815260200160405180910390a380610fd483876111ba565b610fde91906111ba565b95945050505050565b6000806064600f6000015485610ffd9190611265565b6110079190611284565b905060006064600f6001015486610f479190611265565b600060208083528351808285015260005b8181101561104b5785810183015185820160400152820161102f565b8181111561105d576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461108a57600080fd5b919050565b600080604083850312156110a257600080fd5b6110ab83611073565b946020939093013593505050565b6000806000606084860312156110ce57600080fd5b6110d784611073565b92506110e560208501611073565b9150604084013590509250925092565b60006020828403121561110757600080fd5b610f0982611073565b6000806000806080858703121561112657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561115557600080fd5b61115e83611073565b915061116c60208401611073565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016111b3576111b361118b565b5060010190565b6000828210156111cc576111cc61118b565b500390565b600082198211156111e4576111e461118b565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b600081600019048311821515161561127f5761127f61118b565b500290565b6000826112a157634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f6dc83455d889a8258df4e383fa6e0afac2f6c10f20fb260cd776989f41047eb64736f6c634300080f0033

Deployed Bytecode Sourcemap

11449:8002:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13333:83;;;;;;;;;;-1:-1:-1;13403:5:0;;;;;;;;;;;;-1:-1:-1;;;13403:5:0;;;;13333:83;;;;;;;:::i;:::-;;;;;;;;14689:161;;;;;;;;;;-1:-1:-1;14689:161:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;14689:161:0;1053:187:1;11545:41:0;;;;;;;;;;-1:-1:-1;11545:41:0;;;;-1:-1:-1;;;;;11545:41:0;;;;;;-1:-1:-1;;;;;1435:32:1;;;1417:51;;1405:2;1390:18;11545:41:0;1245:229:1;13610:100:0;;;;;;;;;;-1:-1:-1;13690:12:0;;13610:100;;;1625:25:1;;;1613:2;1598:18;13610:100:0;1479:177:1;14503:178:0;;;;;;;;;;;;;:::i;:::-;;14858:266;;;;;;;;;;-1:-1:-1;14858:266:0;;;;;:::i;:::-;;:::i;12545:23::-;;;;;;;;;;-1:-1:-1;12545:23:0;;;;;;;;;;;;;2168:25:1;;;2224:2;2209:18;;2202:34;;;;2141:18;12545:23:0;1994:248:1;13519:83:0;;;;;;;;;;-1:-1:-1;13519:83:0;;12139:1;2389:36:1;;2377:2;2362:18;13519:83:0;2247:184:1;15722:215:0;;;;;;;;;;-1:-1:-1;15722:215:0;;;;;:::i;:::-;;:::i;15481:111::-;;;;;;;;;;-1:-1:-1;15481:111:0;;;;;:::i;:::-;;:::i;12435:21::-;;;;;;;;;;-1:-1:-1;12435:21:0;;;;;;;;;11593:28;;;;;;;;;;-1:-1:-1;11593:28:0;;;;-1:-1:-1;;;;;11593:28:0;;;16779:123;;;;;;;;;;-1:-1:-1;16779:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;16867:27:0;16843:4;16867:27;;;:18;:27;;;;;;;;;16779:123;12262:46;;;;;;;;;;;;;;;;16178:557;;;;;;;;;;-1:-1:-1;16178:557:0;;;;;:::i;:::-;;:::i;13718:118::-;;;;;;;;;;-1:-1:-1;13718:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;13811:17:0;13784:7;13811:17;;;:8;:17;;;;;;;13718:118;11294:148;;;;;;;;;;;;;:::i;12317:30::-;;;;;;;;;;-1:-1:-1;12317:30:0;;;;-1:-1:-1;;;;;12317:30:0;;;12213:42;;;;;;;;;;;;;;;;17041:185;;;;;;;;;;;;;:::i;11080:79::-;;;;;;;;;;-1:-1:-1;11118:7:0;11145:6;-1:-1:-1;;;;;11145:6:0;11080:79;;13424:87;;;;;;;;;;-1:-1:-1;13496:7:0;;;;;;;;;;;;-1:-1:-1;;;13496:7:0;;;;13424:87;;15945:225;;;;;;;;;;-1:-1:-1;15945:225:0;;;;;:::i;:::-;;:::i;13844:167::-;;;;;;;;;;-1:-1:-1;13844:167:0;;;;;:::i;:::-;;:::i;16910:123::-;;;;;;;;;;-1:-1:-1;16910:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;16998:27:0;16974:4;16998:27;;;:18;:27;;;;;;;;;16910:123;14352:143;;;;;;;;;;-1:-1:-1;14352:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14460:18:0;;;14433:7;14460:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14352:143;15604:110;;;;;;;;;;-1:-1:-1;15604:110:0;;;;;:::i;:::-;;:::i;14689:161::-;14764:4;14781:39;517:10;14804:7;14813:6;14781:8;:39::i;:::-;-1:-1:-1;14838:4:0;14689:161;;;;:::o;14503:178::-;14555:9;14550:124;14574:14;:21;14570:25;;14550:124;;;14657:4;14617:18;:37;14636:14;14651:1;14636:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;14636:17:0;14617:37;;;;;;;;;;;;:44;;-1:-1:-1;;14617:44:0;;;;;;;;;;14597:3;;;;:::i;:::-;;;;14550:124;;;;14503:178::o;14858:266::-;14956:4;14973:36;14983:6;14991:9;15002:6;14973:9;:36::i;:::-;-1:-1:-1;;;;;15051:19:0;;;;;;:11;:19;;;;;;;;517:10;15051:33;;;;;;;;;15020:74;;15029:6;;15051:42;;15087:6;;15051:42;:::i;:::-;15020:8;:74::i;:::-;-1:-1:-1;15112:4:0;14858:266;;;;;:::o;15722:215::-;517:10;15810:4;15859:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15859:34:0;;;;;;;;;;15810:4;;15827:80;;15850:7;;15859:47;;15896:10;;15859:47;:::i;15481:111::-;11207:6;;-1:-1:-1;;;;;11207:6:0;517:10;11207:22;11199:67;;;;-1:-1:-1;;;11199:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15550:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;15550:34:0::1;15580:4;15550:34;::::0;;15481:111::o;16178:557::-;11207:6;;-1:-1:-1;;;;;11207:6:0;517:10;11207:22;11199:67;;;;-1:-1:-1;;;11199:67:0;;;;;;;:::i;:::-;16391:1:::1;16345:42;:18:::0;16368;16345:22:::1;:42::i;:::-;:47;;16337:90;;;::::0;-1:-1:-1;;;16337:90:0;;4720:2:1;16337:90:0::1;::::0;::::1;4702:21:1::0;4759:2;4739:18;;;4732:30;4798:32;4778:18;;;4771:60;4848:18;;16337:90:0::1;4518:354:1::0;16337:90:0::1;16438:6;:37:::0;;;16486:16;:36;;;16591:1:::1;16543:44;:19:::0;16567;16543:23:::1;:44::i;:::-;:49;;16535:93;;;::::0;-1:-1:-1;;;16535:93:0;;5079:2:1;16535:93:0::1;::::0;::::1;5061:21:1::0;5118:2;5098:18;;;5091:30;5157:33;5137:18;;;5130:61;5208:18;;16535:93:0::1;4877:355:1::0;16535:93:0::1;16639:7;:39:::0;;;;16689:17;:38;-1:-1:-1;;16178:557:0:o;11294:148::-;11207:6;;-1:-1:-1;;;;;11207:6:0;517:10;11207:22;11199:67;;;;-1:-1:-1;;;11199:67:0;;;;;;;:::i;:::-;11401:1:::1;11385:6:::0;;11364:40:::1;::::0;-1:-1:-1;;;;;11385:6:0;;::::1;::::0;11364:40:::1;::::0;11401:1;;11364:40:::1;11432:1;11415:19:::0;;-1:-1:-1;;;;;;11415:19:0::1;::::0;;11294:148::o;17041:185::-;11207:6;;-1:-1:-1;;;;;11207:6:0;517:10;11207:22;11199:67;;;;-1:-1:-1;;;11199:67:0;;;;;;;:::i;:::-;17100:9:::1;17095:124;17119:14;:21:::0;17115:25;::::1;17095:124;;;17202:4;17162:18;:37;17181:14;17196:1;17181:17;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;17181:17:0::1;17162:37:::0;;;::::1;::::0;;;;;;;;:44;;-1:-1:-1;;17162:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17142:3;::::1;::::0;::::1;:::i;:::-;;;;17095:124;;15945:225:::0;517:10;16038:4;16087:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16087:34:0;;;;;;;;;;16038:4;;16055:85;;16078:7;;16087:52;;16124:15;;16087:52;:::i;13844:167::-;13922:4;13939:42;517:10;13963:9;13974:6;13939:9;:42::i;15604:110::-;11207:6;;-1:-1:-1;;;;;11207:6:0;517:10;11207:22;11199:67;;;;-1:-1:-1;;;11199:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15671:27:0::1;15701:5;15671:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;15671:35:0::1;::::0;;15604:110::o;15132:337::-;-1:-1:-1;;;;;15225:19:0;;15217:68;;;;-1:-1:-1;;;15217:68:0;;5439:2:1;15217:68:0;;;5421:21:1;5478:2;5458:18;;;5451:30;5517:34;5497:18;;;5490:62;-1:-1:-1;;;5568:18:1;;;5561:34;5612:19;;15217:68:0;5237:400:1;15217:68:0;-1:-1:-1;;;;;15304:21:0;;15296:68;;;;-1:-1:-1;;;15296:68:0;;5844:2:1;15296:68:0;;;5826:21:1;5883:2;5863:18;;;5856:30;5922:34;5902:18;;;5895:62;-1:-1:-1;;;5973:18:1;;;5966:32;6015:19;;15296:68:0;5642:398:1;15296:68:0;-1:-1:-1;;;;;15377:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15429:32;;1625:25:1;;;15429:32:0;;1598:18:1;15429:32:0;;;;;;;15132:337;;;:::o;18171:1277::-;-1:-1:-1;;;;;18259:18:0;;18251:68;;;;-1:-1:-1;;;18251:68:0;;6247:2:1;18251:68:0;;;6229:21:1;6286:2;6266:18;;;6259:30;6325:34;6305:18;;;6298:62;-1:-1:-1;;;6376:18:1;;;6369:35;6421:19;;18251:68:0;6045:401:1;18251:68:0;18347:1;18338:6;:10;18330:64;;;;-1:-1:-1;;;18330:64:0;;6653:2:1;18330:64:0;;;6635:21:1;6692:2;6672:18;;;6665:30;6731:34;6711:18;;;6704:62;-1:-1:-1;;;6782:18:1;;;6775:39;6831:19;;18330:64:0;6451:405:1;18330:64:0;-1:-1:-1;;;;;18413:16:0;;18405:64;;;;-1:-1:-1;;;18405:64:0;;7063:2:1;18405:64:0;;;7045:21:1;7102:2;7082:18;;;7075:30;7141:34;7121:18;;;7114:62;-1:-1:-1;;;7192:18:1;;;7185:33;7235:19;;18405:64:0;6861:399:1;18405:64:0;-1:-1:-1;;;;;18482:14:0;;;;;;:8;:14;;;;;:24;;18500:6;;18482:14;:24;;18500:6;;18482:24;:::i;:::-;;;;-1:-1:-1;;;;;;;18566:24:0;;18517:22;18566:24;;;:18;:24;;;;;;18542:6;;18566:24;;18565:25;:52;;;;-1:-1:-1;;;;;;18595:22:0;;;;;;:18;:22;;;;;;;;18594:23;18565:52;18561:779;;;18646:13;;-1:-1:-1;;;;;18646:13:0;;;18638:21;;;;18634:91;;-1:-1:-1;;;;;18680:22:0;;;;;;:18;:22;;;;;:29;;-1:-1:-1;;18680:29:0;18705:4;18680:29;;;18634:91;18751:13;;-1:-1:-1;;;;;18745:19:0;;;18751:13;;18745:19;18741:338;;18768:14;:23;;;;;;;-1:-1:-1;18768:23:0;;;;;;;;-1:-1:-1;;;;;;18768:23:0;-1:-1:-1;;;;;18768:23:0;;;;;18828:12;;18818:22;;;18810:74;;;;-1:-1:-1;;;18810:74:0;;;;;;;:::i;:::-;18937:16;;18927:6;18911:13;18921:2;-1:-1:-1;;;;;13811:17:0;13784:7;13811:17;;;:8;:17;;;;;;;13718:118;18911:13;:22;;;;:::i;:::-;:42;;18903:99;;;;-1:-1:-1;;;18903:99:0;;7875:2:1;18903:99:0;;;7857:21:1;7914:2;7894:18;;;7887:30;7953:34;7933:18;;;7926:62;-1:-1:-1;;;8004:18:1;;;7997:42;8056:19;;18903:99:0;7673:408:1;18903:99:0;19038:25;19050:6;19058:4;19038:11;:25::i;:::-;19021:42;;18741:338;19107:13;;-1:-1:-1;;;;;19099:21:0;;;19107:13;;19099:21;19095:234;;19159:12;;19149:6;:22;;19141:74;;;;-1:-1:-1;;;19141:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19226:24:0;;;;;;:18;:24;;;;;;;;19225:25;19217:34;;;;;;19287:26;19300:6;19308:4;19287:12;:26::i;:::-;19270:43;;19095:234;-1:-1:-1;;;;;19360:12:0;;;;;;:8;:12;;;;;:30;;19376:14;;19360:12;:30;;19376:14;;19360:30;:::i;:::-;;;;;;;;19421:2;-1:-1:-1;;;;;19406:34:0;19415:4;-1:-1:-1;;;;;19406:34:0;;19425:14;19406:34;;;;1625:25:1;;1613:2;1598:18;;1479:177;19406:34:0;;;;;;;;18240:1208;18171:1277;;;:::o;689:179::-;747:7;;779:5;783:1;779;:5;:::i;:::-;767:17;;808:1;803;:6;;795:46;;;;-1:-1:-1;;;795:46:0;;8288:2:1;795:46:0;;;8270:21:1;8327:2;8307:18;;;8300:30;8366:29;8346:18;;;8339:57;8413:18;;795:46:0;8086:351:1;795:46:0;859:1;689:179;-1:-1:-1;;;689:179:0:o;17238:457::-;17306:7;17326:25;17382:3;17363:6;:16;;;17354:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;17326:59;;17397:26;17454:3;17435:6;:16;;;17426:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;17397:60;-1:-1:-1;17496:38:0;17397:60;17496:17;:38;:::i;:::-;17486:4;17469:23;;;;:8;:23;;;;;:65;;:23;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;17576:4:0;;-1:-1:-1;;;;;;17552:70:0;;;17583:38;17604:17;17583:18;:38;:::i;:::-;17552:70;;1625:25:1;;;1613:2;1598:18;17552:70:0;;;;;;;17668:18;17641:25;17649:17;17641:6;:25;:::i;:::-;:45;;;;:::i;:::-;17633:54;17238:457;-1:-1:-1;;;;;17238:457:0:o;17703:460::-;17772:7;17792:25;17849:3;17829:7;:17;;;17820:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;17792:60;;17864:26;17922:3;17902:7;:17;;;17893:6;:26;;;;:::i;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1661:328::-;1738:6;1746;1754;1807:2;1795:9;1786:7;1782:23;1778:32;1775:52;;;1823:1;1820;1813:12;1775:52;1846:29;1865:9;1846:29;:::i;:::-;1836:39;;1894:38;1928:2;1917:9;1913:18;1894:38;:::i;:::-;1884:48;;1979:2;1968:9;1964:18;1951:32;1941:42;;1661:328;;;;;:::o;2436:186::-;2495:6;2548:2;2536:9;2527:7;2523:23;2519:32;2516:52;;;2564:1;2561;2554:12;2516:52;2587:29;2606:9;2587:29;:::i;2835:385::-;2921:6;2929;2937;2945;2998:3;2986:9;2977:7;2973:23;2969:33;2966:53;;;3015:1;3012;3005:12;2966:53;-1:-1:-1;;3038:23:1;;;3108:2;3093:18;;3080:32;;-1:-1:-1;3159:2:1;3144:18;;3131:32;;3210:2;3195:18;3182:32;;-1:-1:-1;2835:385:1;-1:-1:-1;2835:385:1:o;3225:260::-;3293:6;3301;3354:2;3342:9;3333:7;3329:23;3325:32;3322:52;;;3370:1;3367;3360:12;3322:52;3393:29;3412:9;3393:29;:::i;:::-;3383:39;;3441:38;3475:2;3464:9;3460:18;3441:38;:::i;:::-;3431:48;;3225:260;;;;;:::o;3490:127::-;3551:10;3546:3;3542:20;3539:1;3532:31;3582:4;3579:1;3572:15;3606:4;3603:1;3596:15;3622:127;3683:10;3678:3;3674:20;3671:1;3664:31;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3754:135;3793:3;3814:17;;;3811:43;;3834:18;;:::i;:::-;-1:-1:-1;3881:1:1;3870:13;;3754:135::o;3894:125::-;3934:4;3962:1;3959;3956:8;3953:34;;;3967:18;;:::i;:::-;-1:-1:-1;4004:9:1;;3894:125::o;4024:128::-;4064:3;4095:1;4091:6;4088:1;4085:13;4082:39;;;4101:18;;:::i;:::-;-1:-1:-1;4137:9:1;;4024:128::o;4157:356::-;4359:2;4341:21;;;4378:18;;;4371:30;4437:34;4432:2;4417:18;;4410:62;4504:2;4489:18;;4157:356::o;7265:403::-;7467:2;7449:21;;;7506:2;7486:18;;;7479:30;7545:34;7540:2;7525:18;;7518:62;-1:-1:-1;;;7611:2:1;7596:18;;7589:37;7658:3;7643:19;;7265:403::o;8442:168::-;8482:7;8548:1;8544;8540:6;8536:14;8533:1;8530:21;8525:1;8518:9;8511:17;8507:45;8504:71;;;8555:18;;:::i;:::-;-1:-1:-1;8595:9:1;;8442:168::o;8615:217::-;8655:1;8681;8671:132;;8725:10;8720:3;8716:20;8713:1;8706:31;8760:4;8757:1;8750:15;8788:4;8785:1;8778:15;8671:132;-1:-1:-1;8817:9:1;;8615:217::o

Swarm Source

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