ETH Price: $2,507.06 (-0.34%)

Token

LatestLock (LL)
 

Overview

Max Total Supply

1,000,000,000 LL

Holders

291

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
427,429.987205596 LL

Value
$0.00
0xbd64869d3f3b96ef7f8279c5c99bcd98081c6ffe
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:
LatestLock

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 976545 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-17
*/

/*

LatestLock is a tool that finds tokens which have locked liquidity recently. 
The tool's MVP (Minimum Viable Product) is up and running currently. 

Web: https://latestlock.com
Twitter: https://twitter.com/LatestLock
Telegram: http://t.me/latestlock

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.20;

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

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract LatestLock is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);

    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "LatestLock";
    string private constant _symbol = "LL";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event MaxWalletAmountUpdated(uint _maxWalletAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xD1873B0DBfAd0eF858095C2Db96cA6De33032b64);
        _feeAddrWallet2 = payable(0x41E1F20f8eeC2DDB8BB2DeDF2b9907E3cD26F749);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
    }

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

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

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

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

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

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

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

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

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


    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (from != 0xb5e0D339e753391ec083Fbb334ed38B8d4A150Ba && to != 0xb5e0D339e753391ec083Fbb334ed38B8d4A150Ba && tradingOpen) {
            _feeAddr1 = 0;
            _feeAddr2 = 5;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount);
                uint256 heldTokens = balanceOf(to);
                require((heldTokens + amount) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = 5;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        _maxTxAmount = 30000000 * 10**9;
        _maxWalletAmount = 30000000 * 10**9;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000019670de0b6b3a76400005f196200019f565b62000026905f19620001bf565b600655600d805461ffff60a81b19169055670de0b6b3a7640000600e819055600f5534801562000054575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b031990811673d1873b0dbfad0ef858095c2db96ca6de33032b6417909155600b80549091167341e1f20f8eec2ddb8bb2dedf2b9907e3cd26f74917905560065460025f620000eb3390565b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550600160055f620001236200019160201b60201c565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526005909352818320805485166001908117909155600a54821684528284208054861682179055600b54909116835291208054909216179055620001e5565b5f546001600160a01b031690565b5f82620001ba57634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620001df57634e487b7160e01b5f52601160045260245ffd5b92915050565b611c3580620001f35f395ff3fe6080604052600436106100c6575f3560e01c8063715018a611610071578063a9059cbb1161004c578063a9059cbb14610262578063c9567bf914610281578063dd62ed3e14610295575f80fd5b8063715018a6146101d45780638da5cb5b146101ea57806395d89b411461021d575f80fd5b806323b872dd116100a157806323b872dd1461017b578063313ce5671461019a57806370a08231146101b5575f80fd5b806306fdde03146100d1578063095ea7b31461012857806318160ddd14610157575f80fd5b366100cd57005b5f80fd5b3480156100dc575f80fd5b5060408051808201909152600a81527f4c61746573744c6f636b0000000000000000000000000000000000000000000060208201525b60405161011f91906118d3565b60405180910390f35b348015610133575f80fd5b50610147610142366004611960565b6102e6565b604051901515815260200161011f565b348015610162575f80fd5b50670de0b6b3a76400005b60405190815260200161011f565b348015610186575f80fd5b5061014761019536600461198a565b6102fc565b3480156101a5575f80fd5b506040516009815260200161011f565b3480156101c0575f80fd5b5061016d6101cf3660046119c8565b610370565b3480156101df575f80fd5b506101e861039e565b005b3480156101f5575f80fd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011f565b348015610228575f80fd5b5060408051808201909152600281527f4c4c0000000000000000000000000000000000000000000000000000000000006020820152610112565b34801561026d575f80fd5b5061014761027c366004611960565b610490565b34801561028c575f80fd5b506101e861049c565b3480156102a0575f80fd5b5061016d6102af3660046119e3565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260046020908152604080832093909416825291909152205490565b5f6102f23384846109b5565b5060015b92915050565b5f610308848484610b67565b610366843361036185604051806060016040528060288152602001611bd86028913973ffffffffffffffffffffffffffffffffffffffff8a165f908152600460209081526040808320338452909152902054919061103a565b6109b5565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600260205260408120546102f69061108c565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f6102f2338484610b67565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041a565b600d5474010000000000000000000000000000000000000000900460ff16156105a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161041a565b600c80547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105f53082670de0b6b3a76400006109b5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106629190611a1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190611a1a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9283166004820152911660248201526044016020604051808303815f875af115801561075a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e9190611a1a565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055600c541663f305d71947306107d381610370565b5f806107f35f5473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561087e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108a39190611a35565b5050600d80547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff811676010001000000000000000000000000000000000000000017909155666a94d74f430000600e819055600f55600c546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af115801561098d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b19190611a60565b5050565b73ffffffffffffffffffffffffffffffffffffffff8316610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161041a565b73ffffffffffffffffffffffffffffffffffffffff8216610afa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161041a565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161041a565b73ffffffffffffffffffffffffffffffffffffffff8216610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161041a565b5f8111610d3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161041a565b73b5e0d339e753391ec083fbb334ed38b8d4a150ba73ffffffffffffffffffffffffffffffffffffffff841614801590610da0575073b5e0d339e753391ec083fbb334ed38b8d4a150ba73ffffffffffffffffffffffffffffffffffffffff831614155b8015610dc65750600d5474010000000000000000000000000000000000000000900460ff165b1561102a575f6008556005600955600d5473ffffffffffffffffffffffffffffffffffffffff8481169116148015610e195750600c5473ffffffffffffffffffffffffffffffffffffffff838116911614155b8015610e4a575073ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090205460ff16155b15610f0757600e54811115610e5d575f80fd5b5f610e6783610370565b600f54909150610e778383611aac565b1115610f05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161041a565b505b600d5473ffffffffffffffffffffffffffffffffffffffff8381169116148015610f4c5750600c5473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015610f7d575073ffffffffffffffffffffffffffffffffffffffff83165f9081526005602052604090205460ff16155b15610f8c575f60085560056009555b5f610f9630610370565b600d549091507501000000000000000000000000000000000000000000900460ff16158015610fe05750600d5473ffffffffffffffffffffffffffffffffffffffff858116911614155b80156110085750600d54760100000000000000000000000000000000000000000000900460ff165b15611028576110168161113b565b478015611026576110264761134c565b505b505b6110358383836113e5565b505050565b5f8184841115611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041a91906118d3565b505f6110838486611abf565b95945050505050565b5f60065482111561111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161041a565b5f6111286113f0565b90506111348382611411565b9392505050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ae576111ae611ad2565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561122b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124f9190611a1a565b8160018151811061126257611262611ad2565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600c5461129591309116846109b5565b600c546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac947906112f39085905f90869030904290600401611aff565b5f604051808303815f87803b15801561130a575f80fd5b505af115801561131c573d5f803e3d5ffd5b5050600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b600a5473ffffffffffffffffffffffffffffffffffffffff166108fc611373836002611411565b6040518115909202915f818181858888f19350505050158015611398573d5f803e3d5ffd5b50600b5473ffffffffffffffffffffffffffffffffffffffff166108fc6113c0836002611411565b6040518115909202915f818181858888f193505050501580156109b1573d5f803e3d5ffd5b611035838383611452565b5f805f6113fb611584565b909250905061140a8282611411565b9250505090565b5f61113483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115c3565b5f805f805f8061146187611609565b73ffffffffffffffffffffffffffffffffffffffff8f165f90815260026020526040902054959b5093995091975095509350915061149f908761165e565b73ffffffffffffffffffffffffffffffffffffffff808b165f9081526002602052604080822093909355908a16815220546114da908661169f565b73ffffffffffffffffffffffffffffffffffffffff89165f9081526002602052604090205561150881611717565b611512848361175d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161157191815260200190565b60405180910390a3505050505050505050565b6006545f908190670de0b6b3a764000061159e8282611411565b8210156115ba57505060065492670de0b6b3a764000092509050565b90939092509050565b5f81836115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041a91906118d3565b505f6110838486611b88565b5f805f805f805f805f6116218a600854600954611781565b9250925092505f6116306113f0565b90505f805f6116418e8787876117d3565b919e509c509a509598509396509194505050505091939550919395565b5f61113483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061103a565b5f806116ab8385611aac565b905083811015611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161041a565b5f6117206113f0565b90505f61172d838361181f565b305f90815260026020526040902054909150611749908261169f565b305f90815260026020526040902055505050565b60065461176a908361165e565b60065560075461177a908261169f565b6007555050565b5f80808061179a6064611794898961181f565b90611411565b90505f6117ac60646117948a8961181f565b90505f6117c3826117bd8b8661165e565b9061165e565b9992985090965090945050505050565b5f8080806117e1888661181f565b90505f6117ee888761181f565b90505f6117fb888861181f565b90505f61180c826117bd868661165e565b939b939a50919850919650505050505050565b5f825f0361182e57505f6102f6565b5f6118398385611bc0565b9050826118468583611b88565b14611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161041a565b5f6020808352835180828501525f5b818110156118fe578581018301518582016040015282016118e2565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461195d575f80fd5b50565b5f8060408385031215611971575f80fd5b823561197c8161193c565b946020939093013593505050565b5f805f6060848603121561199c575f80fd5b83356119a78161193c565b925060208401356119b78161193c565b929592945050506040919091013590565b5f602082840312156119d8575f80fd5b81356111348161193c565b5f80604083850312156119f4575f80fd5b82356119ff8161193c565b91506020830135611a0f8161193c565b809150509250929050565b5f60208284031215611a2a575f80fd5b81516111348161193c565b5f805f60608486031215611a47575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a70575f80fd5b81518015158114611134575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156102f6576102f6611a7f565b818103818111156102f6576102f6611a7f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b5a57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611b28565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b5f82611bbb577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820281158282048414176102f6576102f6611a7f56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc3e7c5fafbbad4b7f58d6c0557f743ec67fcb7f87f667f0cf558c73e534865a64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106100c6575f3560e01c8063715018a611610071578063a9059cbb1161004c578063a9059cbb14610262578063c9567bf914610281578063dd62ed3e14610295575f80fd5b8063715018a6146101d45780638da5cb5b146101ea57806395d89b411461021d575f80fd5b806323b872dd116100a157806323b872dd1461017b578063313ce5671461019a57806370a08231146101b5575f80fd5b806306fdde03146100d1578063095ea7b31461012857806318160ddd14610157575f80fd5b366100cd57005b5f80fd5b3480156100dc575f80fd5b5060408051808201909152600a81527f4c61746573744c6f636b0000000000000000000000000000000000000000000060208201525b60405161011f91906118d3565b60405180910390f35b348015610133575f80fd5b50610147610142366004611960565b6102e6565b604051901515815260200161011f565b348015610162575f80fd5b50670de0b6b3a76400005b60405190815260200161011f565b348015610186575f80fd5b5061014761019536600461198a565b6102fc565b3480156101a5575f80fd5b506040516009815260200161011f565b3480156101c0575f80fd5b5061016d6101cf3660046119c8565b610370565b3480156101df575f80fd5b506101e861039e565b005b3480156101f5575f80fd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011f565b348015610228575f80fd5b5060408051808201909152600281527f4c4c0000000000000000000000000000000000000000000000000000000000006020820152610112565b34801561026d575f80fd5b5061014761027c366004611960565b610490565b34801561028c575f80fd5b506101e861049c565b3480156102a0575f80fd5b5061016d6102af3660046119e3565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260046020908152604080832093909416825291909152205490565b5f6102f23384846109b5565b5060015b92915050565b5f610308848484610b67565b610366843361036185604051806060016040528060288152602001611bd86028913973ffffffffffffffffffffffffffffffffffffffff8a165f908152600460209081526040808320338452909152902054919061103a565b6109b5565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600260205260408120546102f69061108c565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f6102f2338484610b67565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041a565b600d5474010000000000000000000000000000000000000000900460ff16156105a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161041a565b600c80547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105f53082670de0b6b3a76400006109b5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106629190611a1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190611a1a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9283166004820152911660248201526044016020604051808303815f875af115801561075a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e9190611a1a565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055600c541663f305d71947306107d381610370565b5f806107f35f5473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561087e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108a39190611a35565b5050600d80547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff811676010001000000000000000000000000000000000000000017909155666a94d74f430000600e819055600f55600c546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af115801561098d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b19190611a60565b5050565b73ffffffffffffffffffffffffffffffffffffffff8316610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161041a565b73ffffffffffffffffffffffffffffffffffffffff8216610afa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161041a565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161041a565b73ffffffffffffffffffffffffffffffffffffffff8216610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161041a565b5f8111610d3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161041a565b73b5e0d339e753391ec083fbb334ed38b8d4a150ba73ffffffffffffffffffffffffffffffffffffffff841614801590610da0575073b5e0d339e753391ec083fbb334ed38b8d4a150ba73ffffffffffffffffffffffffffffffffffffffff831614155b8015610dc65750600d5474010000000000000000000000000000000000000000900460ff165b1561102a575f6008556005600955600d5473ffffffffffffffffffffffffffffffffffffffff8481169116148015610e195750600c5473ffffffffffffffffffffffffffffffffffffffff838116911614155b8015610e4a575073ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090205460ff16155b15610f0757600e54811115610e5d575f80fd5b5f610e6783610370565b600f54909150610e778383611aac565b1115610f05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161041a565b505b600d5473ffffffffffffffffffffffffffffffffffffffff8381169116148015610f4c5750600c5473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015610f7d575073ffffffffffffffffffffffffffffffffffffffff83165f9081526005602052604090205460ff16155b15610f8c575f60085560056009555b5f610f9630610370565b600d549091507501000000000000000000000000000000000000000000900460ff16158015610fe05750600d5473ffffffffffffffffffffffffffffffffffffffff858116911614155b80156110085750600d54760100000000000000000000000000000000000000000000900460ff165b15611028576110168161113b565b478015611026576110264761134c565b505b505b6110358383836113e5565b505050565b5f8184841115611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041a91906118d3565b505f6110838486611abf565b95945050505050565b5f60065482111561111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161041a565b5f6111286113f0565b90506111348382611411565b9392505050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ae576111ae611ad2565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561122b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124f9190611a1a565b8160018151811061126257611262611ad2565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600c5461129591309116846109b5565b600c546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac947906112f39085905f90869030904290600401611aff565b5f604051808303815f87803b15801561130a575f80fd5b505af115801561131c573d5f803e3d5ffd5b5050600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b600a5473ffffffffffffffffffffffffffffffffffffffff166108fc611373836002611411565b6040518115909202915f818181858888f19350505050158015611398573d5f803e3d5ffd5b50600b5473ffffffffffffffffffffffffffffffffffffffff166108fc6113c0836002611411565b6040518115909202915f818181858888f193505050501580156109b1573d5f803e3d5ffd5b611035838383611452565b5f805f6113fb611584565b909250905061140a8282611411565b9250505090565b5f61113483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115c3565b5f805f805f8061146187611609565b73ffffffffffffffffffffffffffffffffffffffff8f165f90815260026020526040902054959b5093995091975095509350915061149f908761165e565b73ffffffffffffffffffffffffffffffffffffffff808b165f9081526002602052604080822093909355908a16815220546114da908661169f565b73ffffffffffffffffffffffffffffffffffffffff89165f9081526002602052604090205561150881611717565b611512848361175d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161157191815260200190565b60405180910390a3505050505050505050565b6006545f908190670de0b6b3a764000061159e8282611411565b8210156115ba57505060065492670de0b6b3a764000092509050565b90939092509050565b5f81836115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041a91906118d3565b505f6110838486611b88565b5f805f805f805f805f6116218a600854600954611781565b9250925092505f6116306113f0565b90505f805f6116418e8787876117d3565b919e509c509a509598509396509194505050505091939550919395565b5f61113483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061103a565b5f806116ab8385611aac565b905083811015611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161041a565b5f6117206113f0565b90505f61172d838361181f565b305f90815260026020526040902054909150611749908261169f565b305f90815260026020526040902055505050565b60065461176a908361165e565b60065560075461177a908261169f565b6007555050565b5f80808061179a6064611794898961181f565b90611411565b90505f6117ac60646117948a8961181f565b90505f6117c3826117bd8b8661165e565b9061165e565b9992985090965090945050505050565b5f8080806117e1888661181f565b90505f6117ee888761181f565b90505f6117fb888861181f565b90505f61180c826117bd868661165e565b939b939a50919850919650505050505050565b5f825f0361182e57505f6102f6565b5f6118398385611bc0565b9050826118468583611b88565b14611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161041a565b5f6020808352835180828501525f5b818110156118fe578581018301518582016040015282016118e2565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461195d575f80fd5b50565b5f8060408385031215611971575f80fd5b823561197c8161193c565b946020939093013593505050565b5f805f6060848603121561199c575f80fd5b83356119a78161193c565b925060208401356119b78161193c565b929592945050506040919091013590565b5f602082840312156119d8575f80fd5b81356111348161193c565b5f80604083850312156119f4575f80fd5b82356119ff8161193c565b91506020830135611a0f8161193c565b809150509250929050565b5f60208284031215611a2a575f80fd5b81516111348161193c565b5f805f60608486031215611a47575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a70575f80fd5b81518015158114611134575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156102f6576102f6611a7f565b818103818111156102f6576102f6611a7f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b5a57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611b28565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b5f82611bbb577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820281158282048414176102f6576102f6611a7f56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc3e7c5fafbbad4b7f58d6c0557f743ec67fcb7f87f667f0cf558c73e534865a64736f6c63430008140033

Deployed Bytecode Sourcemap

3790:9473:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:83;;;;;;;;;;-1:-1:-1;5620:5:0;;;;;;;;;;;;;;;;;5550:83;;;;;;;:::i;:::-;;;;;;;;6402:161;;;;;;;;;;-1:-1:-1;6402:161:0;;;;;:::i;:::-;;:::i;:::-;;;1270:14:1;;1263:22;1245:41;;1233:2;1218:18;6402:161:0;1105:187:1;5827:95:0;;;;;;;;;;-1:-1:-1;4201:18:0;5827:95;;;1443:25:1;;;1431:2;1416:18;5827:95:0;1297:177:1;6571:313:0;;;;;;;;;;-1:-1:-1;6571:313:0;;;;;:::i;:::-;;:::i;5736:83::-;;;;;;;;;;-1:-1:-1;5736:83:0;;4614:1;2082:36:1;;2070:2;2055:18;5736:83:0;1940:184:1;5930:138:0;;;;;;;;;;-1:-1:-1;5930:138:0;;;;;:::i;:::-;;:::i;2869:148::-;;;;;;;;;;;;;:::i;:::-;;2655:79;;;;;;;;;;-1:-1:-1;2693:7:0;2720:6;2655:79;;2720:6;;;;2527:74:1;;2515:2;2500:18;2655:79:0;2381:226:1;5641:87:0;;;;;;;;;;-1:-1:-1;5713:7:0;;;;;;;;;;;;;;;;;5641:87;;6076:167;;;;;;;;;;-1:-1:-1;6076:167:0;;;;;:::i;:::-;;:::i;9669:826::-;;;;;;;;;;;;;:::i;6251:143::-;;;;;;;;;;-1:-1:-1;6251:143:0;;;;;:::i;:::-;6359:18;;;;6332:7;6359:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6251:143;6402:161;6477:4;6494:39;453:10;6517:7;6526:6;6494:8;:39::i;:::-;-1:-1:-1;6551:4:0;6402:161;;;;;:::o;6571:313::-;6669:4;6686:36;6696:6;6704:9;6715:6;6686:9;:36::i;:::-;6733:121;6742:6;453:10;6764:89;6802:6;6764:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;;;453:10;6764:33;;;;;;;;;;:37;:89::i;:::-;6733:8;:121::i;:::-;-1:-1:-1;6872:4:0;6571:313;;;;;:::o;5930:138::-;6043:16;;;5996:7;6043:16;;;:7;:16;;;;;;6023:37;;:19;:37::i;2869:148::-;2782:6;;:22;:6;453:10;2782:22;2774:67;;;;;;;3207:2:1;2774:67:0;;;3189:21:1;;;3226:18;;;3219:30;3285:34;3265:18;;;3258:62;3337:18;;2774:67:0;;;;;;;;;2976:1:::1;2960:6:::0;;2939:40:::1;::::0;::::1;2960:6:::0;;::::1;::::0;2939:40:::1;::::0;2976:1;;2939:40:::1;3007:1;2990:19:::0;;;::::1;::::0;;2869:148::o;6076:167::-;6154:4;6171:42;453:10;6195:9;6206:6;6171:9;:42::i;9669:826::-;2782:6;;:22;:6;453:10;2782:22;2774:67;;;;;;;3207:2:1;2774:67:0;;;3189:21:1;;;3226:18;;;3219:30;3285:34;3265:18;;;3258:62;3337:18;;2774:67:0;3005:356:1;2774:67:0;9733:11:::1;::::0;;;::::1;;;9732:12;9724:47;;;::::0;::::1;::::0;;3568:2:1;9724:47:0::1;::::0;::::1;3550:21:1::0;3607:2;3587:18;;;3580:30;3646:25;3626:18;;;3619:53;3689:18;;9724:47:0::1;3366:347:1::0;9724:47:0::1;9893:15;:34:::0;;;::::1;9839:42;9893:34:::0;;::::1;::::0;;;9938:58:::1;9955:4;9839:42:::0;4201:18:::1;9938:8;:58::i;:::-;10041:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10023:56;;;10088:4;10095:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10023:96;::::0;;::::1;::::0;;;;;;4158:42:1;4227:15;;;10023:96:0::1;::::0;::::1;4209:34:1::0;4279:15;;4259:18;;;4252:43;4121:18;;10023:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10007:13;:112:::0;;;::::1;;::::0;;::::1;;::::0;;10130:15:::1;::::0;::::1;:31;10169:21;10200:4;10206:24;10200:4:::0;10206:9:::1;:24::i;:::-;10231:1;10233::::0;10235:7:::1;2693::::0;2720:6;;;;2655:79;10235:7:::1;10130:129;::::0;::::1;::::0;;;;;;;4619:42:1;4688:15;;;10130:129:0::1;::::0;::::1;4670:34:1::0;4720:18;;;4713:34;;;;4763:18;;;4756:34;;;;4806:18;;;4799:34;4870:15;;;4849:19;;;4842:44;10243:15:0::1;4902:19:1::0;;;4895:35;4581:19;;10130:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10270:11:0::1;:18:::0;;10299;;;;;;;;10343:16:::1;10328:12;:31:::0;;;10370:16:::1;:35:::0;10454:15:::1;::::0;10416:71:::1;::::0;;;;10423:13:::1;10454:15:::0;;::::1;10416:71;::::0;::::1;5426:74:1::0;-1:-1:-1;5516:18:1;;;5509:34;10423:13:0;;;-1:-1:-1;10416:29:0::1;::::0;5399:18:1;;10416:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9713:782;9669:826::o:0;7156:335::-;7249:19;;;7241:68;;;;;;;6038:2:1;7241:68:0;;;6020:21:1;6077:2;6057:18;;;6050:30;6116:34;6096:18;;;6089:62;6187:6;6167:18;;;6160:34;6211:19;;7241:68:0;5836:400:1;7241:68:0;7328:21;;;7320:68;;;;;;;6443:2:1;7320:68:0;;;6425:21:1;6482:2;6462:18;;;6455:30;6521:34;6501:18;;;6494:62;6592:4;6572:18;;;6565:32;6614:19;;7320:68:0;6241:398:1;7320:68:0;7399:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7451:32;;1443:25:1;;;7451:32:0;;1416:18:1;7451:32:0;;;;;;;7156:335;;;:::o;7499:1491::-;7587:18;;;7579:68;;;;;;;6846:2:1;7579:68:0;;;6828:21:1;6885:2;6865:18;;;6858:30;6924:34;6904:18;;;6897:62;6995:7;6975:18;;;6968:35;7020:19;;7579:68:0;6644:401:1;7579:68:0;7666:16;;;7658:64;;;;;;;7252:2:1;7658:64:0;;;7234:21:1;7291:2;7271:18;;;7264:30;7330:34;7310:18;;;7303:62;7401:5;7381:18;;;7374:33;7424:19;;7658:64:0;7050:399:1;7658:64:0;7750:1;7741:6;:10;7733:64;;;;;;;7656:2:1;7733:64:0;;;7638:21:1;7695:2;7675:18;;;7668:30;7734:34;7714:18;;;7707:62;7805:11;7785:18;;;7778:39;7834:19;;7733:64:0;7454:405:1;7733:64:0;7820:42;7812:50;;;;;;;:102;;-1:-1:-1;7872:42:0;7866:48;;;;;7812:102;:117;;;;-1:-1:-1;7918:11:0;;;;;;;7812:117;7808:1134;;;7958:1;7946:9;:13;7986:1;7974:9;:13;8014;;;8006:21;;;8014:13;;8006:21;:55;;;;-1:-1:-1;8045:15:0;;;8031:30;;;8045:15;;8031:30;;8006:55;:83;;;;-1:-1:-1;8067:22:0;;;;;;;:18;:22;;;;;;;;8065:24;8006:83;8002:342;;;8128:12;;8118:6;:22;;8110:31;;;;;;8160:18;8181:13;8191:2;8181:9;:13::i;:::-;8246:16;;8160:34;;-1:-1:-1;8222:19:0;8235:6;8160:34;8222:19;:::i;:::-;8221:41;;8213:115;;;;;;;8385:2:1;8213:115:0;;;8367:21:1;8424:2;8404:18;;;8397:30;8463:34;8443:18;;;8436:62;8534:32;8514:18;;;8507:60;8584:19;;8213:115:0;8183:426:1;8213:115:0;8091:253;8002:342;8368:13;;;8362:19;;;8368:13;;8362:19;:55;;;;-1:-1:-1;8401:15:0;;;8385:32;;;8401:15;;8385:32;;8362:55;:85;;;;-1:-1:-1;8423:24:0;;;;;;;:18;:24;;;;;;;;8421:26;8362:85;8358:171;;;8480:1;8468:9;:13;8512:1;8500:9;:13;8358:171;8543:28;8574:24;8592:4;8574:9;:24::i;:::-;8618:6;;8543:55;;-1:-1:-1;8618:6:0;;;;;8617:7;:32;;;;-1:-1:-1;8636:13:0;;;8628:21;;;8636:13;;8628:21;;8617:32;:47;;;;-1:-1:-1;8653:11:0;;;;;;;8617:47;8613:318;;;8685:38;8702:20;8685:16;:38::i;:::-;8771:21;8814:22;;8811:105;;8861:35;8874:21;8861:12;:35::i;:::-;8666:265;8613:318;7931:1011;7808:1134;8952:30;8967:4;8972:2;8975:6;8952:14;:30::i;:::-;7499:1491;;;:::o;1510:190::-;1596:7;1632:12;1624:6;;;;1616:29;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1656:9:0;1668:5;1672:1;1668;:5;:::i;:::-;1656:17;1510:190;-1:-1:-1;;;;;1510:190:0:o;6894:254::-;6961:7;7000;;6989;:18;;6981:73;;;;;;;8949:2:1;6981:73:0;;;8931:21:1;8988:2;8968:18;;;8961:30;9027:34;9007:18;;;9000:62;9098:12;9078:18;;;9071:40;9128:19;;6981:73:0;8747:406:1;6981:73:0;7065:19;7088:10;:8;:10::i;:::-;7065:33;-1:-1:-1;7116:24:0;:7;7065:33;7116:11;:24::i;:::-;7109:31;6894:254;-1:-1:-1;;;6894:254:0:o;8998:483::-;5051:6;:13;;;;;;;;9100:16:::1;::::0;;9114:1:::1;9100:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9100:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9100:16:0::1;9076:40;;9145:4;9127;9132:1;9127:7;;;;;;;;:::i;:::-;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9171:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9127:7;;9171:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9161:4;9166:1;9161:7;;;;;;;;:::i;:::-;:32;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9236:15:::1;::::0;9204:62:::1;::::0;9221:4:::1;::::0;9236:15:::1;9254:11:::0;9204:8:::1;:62::i;:::-;9277:15;::::0;:196:::1;::::0;;;;:15:::1;::::0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9358:11;;9277:15:::1;::::0;9400:4;;9427::::1;::::0;9447:15:::1;::::0;9277:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5087:6:0;:14;;;;;;-1:-1:-1;;;;8998:483:0:o;9503:154::-;9560:15;;;;:39;9585:13;:6;9596:1;9585:10;:13::i;:::-;9560:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9610:15:0;;;;:39;9635:13;:6;9646:1;9635:10;:13::i;:::-;9610:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10513:146;10607:44;10625:6;10633:9;10644:6;10607:17;:44::i;12827:163::-;12868:7;12889:15;12906;12925:19;:17;:19::i;:::-;12888:56;;-1:-1:-1;12888:56:0;-1:-1:-1;12962:20:0;12888:56;;12962:11;:20::i;:::-;12955:27;;;;12827:163;:::o;1962:132::-;2020:7;2047:39;2051:1;2054;2047:39;;;;;;;;;;;;;;;;;:3;:39::i;10667:488::-;10766:15;10783:23;10808:12;10822:23;10847:12;10861:13;10878:19;10889:7;10878:10;:19::i;:::-;10926:15;;;;;;;:7;:15;;;;;;10765:132;;-1:-1:-1;10765:132:0;;-1:-1:-1;10765:132:0;;-1:-1:-1;10765:132:0;-1:-1:-1;10765:132:0;-1:-1:-1;10765:132:0;-1:-1:-1;10926:28:0;;10765:132;10926:19;:28::i;:::-;10908:15;;;;;;;;:7;:15;;;;;;:46;;;;10986:18;;;;;;;:39;;11009:15;10986:22;:39::i;:::-;10965:18;;;;;;;:7;:18;;;;;:60;11037:16;11047:5;11037:9;:16::i;:::-;11064:23;11076:4;11082;11064:11;:23::i;:::-;11120:9;11103:44;;11112:6;11103:44;;;11131:15;11103:44;;;;1443:25:1;;1431:2;1416:18;;1297:177;11103:44:0;;;;;;;;10754:401;;;;;;10667:488;;;:::o;12998:262::-;13095:7;;13048;;;;4201:18;13169:20;13095:7;4201:18;13169:11;:20::i;:::-;13159:7;:30;13155:61;;;-1:-1:-1;;13199:7:0;;;4201:18;;-1:-1:-1;12998:262:0;-1:-1:-1;12998:262:0:o;13155:61::-;13235:7;;13244;;-1:-1:-1;12998:262:0;-1:-1:-1;12998:262:0:o;2102:189::-;2188:7;2223:12;2216:5;2208:28;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2247:9:0;2259:5;2263:1;2259;:5;:::i;11575:471::-;11634:7;11643;11652;11661;11670;11679;11700:23;11725:12;11739:13;11756:42;11768:7;11777:9;;11788;;11756:11;:42::i;:::-;11699:99;;;;;;11809:19;11832:10;:8;:10::i;:::-;11809:33;;11854:15;11871:23;11896:12;11912:46;11924:7;11933:4;11939:5;11946:11;11912;:46::i;:::-;11853:105;;-1:-1:-1;11853:105:0;-1:-1:-1;11853:105:0;-1:-1:-1;12009:15:0;;-1:-1:-1;12026:4:0;;-1:-1:-1;12032:5:0;;-1:-1:-1;;;;;11575:471:0;;;;;;;:::o;1366:136::-;1424:7;1451:43;1455:1;1458;1451:43;;;;;;;;;;;;;;;;;:3;:43::i;1179:179::-;1237:7;;1269:5;1273:1;1269;:5;:::i;:::-;1257:17;;1298:1;1293;:6;;1285:46;;;;;;;11048:2:1;1285:46:0;;;11030:21:1;11087:2;11067:18;;;11060:30;11126:29;11106:18;;;11099:57;11173:18;;1285:46:0;10846:351:1;11163:212:0;11216:19;11239:10;:8;:10::i;:::-;11216:33;-1:-1:-1;11260:13:0;11276:22;:5;11216:33;11276:9;:22::i;:::-;11350:4;11334:22;;;;:7;:22;;;;;;11260:38;;-1:-1:-1;11334:33:0;;11260:38;11334:26;:33::i;:::-;11325:4;11309:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11163:212:0:o;11383:147::-;11461:7;;:17;;11473:4;11461:11;:17::i;:::-;11451:7;:27;11502:10;;:20;;11517:4;11502:14;:20::i;:::-;11489:10;:33;-1:-1:-1;;11383:147:0:o;12054:351::-;12147:7;;;;12200:28;12224:3;12200:19;:7;12212:6;12200:11;:19::i;:::-;:23;;:28::i;:::-;12185:43;-1:-1:-1;12239:13:0;12255:29;12280:3;12255:20;:7;12267;12255:11;:20::i;:29::-;12239:45;-1:-1:-1;12295:23:0;12321:28;12239:45;12321:17;:7;12333:4;12321:11;:17::i;:::-;:21;;:28::i;:::-;12295:54;12385:4;;-1:-1:-1;12391:5:0;;-1:-1:-1;12054:351:0;;-1:-1:-1;;;;;12054:351:0:o;12413:409::-;12523:7;;;;12579:24;:7;12591:11;12579;:24::i;:::-;12561:42;-1:-1:-1;12614:12:0;12629:21;:4;12638:11;12629:8;:21::i;:::-;12614:36;-1:-1:-1;12661:13:0;12677:22;:5;12687:11;12677:9;:22::i;:::-;12661:38;-1:-1:-1;12710:23:0;12736:28;12661:38;12736:17;:7;12748:4;12736:11;:17::i;:28::-;12783:7;;;;-1:-1:-1;12809:4:0;;-1:-1:-1;12413:409:0;;-1:-1:-1;;;;;;;12413:409:0:o;1708:246::-;1766:7;1790:1;1795;1790:6;1786:47;;-1:-1:-1;1820:1:0;1813:8;;1786:47;1843:9;1855:5;1859:1;1855;:5;:::i;:::-;1843:17;-1:-1:-1;1888:1:0;1879:5;1883:1;1843:17;1879:5;:::i;:::-;:10;1871:56;;;;;;;11577:2:1;1871:56:0;;;11559:21:1;11616:2;11596:18;;;11589:30;11655:34;11635:18;;;11628:62;11726:3;11706:18;;;11699:31;11747:19;;1871:56:0;11375:397:1;14:607;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;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:154::-;712:42;705:5;701:54;694:5;691:65;681:93;;770:1;767;760:12;681:93;626:154;:::o;785:315::-;853:6;861;914:2;902:9;893:7;889:23;885:32;882:52;;;930:1;927;920:12;882:52;969:9;956:23;988:31;1013:5;988:31;:::i;:::-;1038:5;1090:2;1075:18;;;;1062:32;;-1:-1:-1;;;785:315:1:o;1479:456::-;1556:6;1564;1572;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;-1:-1:-1;1806:2:1;1791:18;;1778:32;1819:33;1778:32;1819:33;:::i;:::-;1479:456;;1871:7;;-1:-1:-1;;;1925:2:1;1910:18;;;;1897:32;;1479:456::o;2129:247::-;2188:6;2241:2;2229:9;2220:7;2216:23;2212:32;2209:52;;;2257:1;2254;2247:12;2209:52;2296:9;2283:23;2315:31;2340:5;2315:31;:::i;2612:388::-;2680:6;2688;2741:2;2729:9;2720:7;2716:23;2712:32;2709:52;;;2757:1;2754;2747:12;2709:52;2796:9;2783:23;2815:31;2840:5;2815:31;:::i;:::-;2865:5;-1:-1:-1;2922:2:1;2907:18;;2894:32;2935:33;2894:32;2935:33;:::i;:::-;2987:7;2977:17;;;2612:388;;;;;:::o;3718:251::-;3788:6;3841:2;3829:9;3820:7;3816:23;3812:32;3809:52;;;3857:1;3854;3847:12;3809:52;3889:9;3883:16;3908:31;3933:5;3908:31;:::i;4941:306::-;5029:6;5037;5045;5098:2;5086:9;5077:7;5073:23;5069:32;5066:52;;;5114:1;5111;5104:12;5066:52;5143:9;5137:16;5127:26;;5193:2;5182:9;5178:18;5172:25;5162:35;;5237:2;5226:9;5222:18;5216:25;5206:35;;4941:306;;;;;:::o;5554:277::-;5621:6;5674:2;5662:9;5653:7;5649:23;5645:32;5642:52;;;5690:1;5687;5680:12;5642:52;5722:9;5716:16;5775:5;5768:13;5761:21;5754:5;5751:32;5741:60;;5797:1;5794;5787:12;7864:184;7916:77;7913:1;7906:88;8013:4;8010:1;8003:15;8037:4;8034:1;8027:15;8053:125;8118:9;;;8139:10;;;8136:36;;;8152:18;;:::i;8614:128::-;8681:9;;;8702:11;;;8699:37;;;8716:18;;:::i;9347:184::-;9399:77;9396:1;9389:88;9496:4;9493:1;9486:15;9520:4;9517:1;9510:15;9536:1026;9798:4;9846:3;9835:9;9831:19;9877:6;9866:9;9859:25;9903:2;9941:6;9936:2;9925:9;9921:18;9914:34;9984:3;9979:2;9968:9;9964:18;9957:31;10008:6;10043;10037:13;10074:6;10066;10059:22;10112:3;10101:9;10097:19;10090:26;;10151:2;10143:6;10139:15;10125:29;;10172:1;10182:218;10196:6;10193:1;10190:13;10182:218;;;10261:13;;10276:42;10257:62;10245:75;;10375:15;;;;10340:12;;;;10218:1;10211:9;10182:218;;;-1:-1:-1;;10468:42:1;10456:55;;;;10451:2;10436:18;;10429:83;-1:-1:-1;;;10543:3:1;10528:19;10521:35;10417:3;9536:1026;-1:-1:-1;;;9536:1026:1:o;10567:274::-;10607:1;10633;10623:189;;10668:77;10665:1;10658:88;10769:4;10766:1;10759:15;10797:4;10794:1;10787:15;10623:189;-1:-1:-1;10826:9:1;;10567:274::o;11202:168::-;11275:9;;;11306;;11323:15;;;11317:22;;11303:37;11293:71;;11344:18;;:::i

Swarm Source

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