ETH Price: $2,402.37 (+0.06%)

Token

Lionel Messi Fan Token (MESSI)
 

Overview

Max Total Supply

10,000,000 MESSI

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.154706754 MESSI

Value
$0.00
0x850b0dd50b8c11aa2c90023e11c9c5dcc9d5a37c
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:
MESSI

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
Lionel Messi Fan Token $MESSI

Celebrating the 8th Ballon D'Or of the GOAT of football.

X: https://twitter.com/LionelMessiETH

TG: https://t.me/LionelMessiETH
*/

// SPDX-License-Identifier: MIT

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;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _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 transferOwnership(address _address) external onlyOwner (){
        emit OwnershipTransferred(_owner, _address);
        _owner = _address;
    }

}  

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 MESSI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private balance;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping (address => bool) private bots;
    bool public transferDelayEnabled = true;
    address payable public deployerWallet;


    
    uint256 private constant _tTotal = 1_000_000_000_0000000;
    uint256 private  maxWallet = _tTotal/100; 
    uint256 public _maxTaxSwap= _tTotal/100;
    uint256 private taxSellPerc = 0;
    uint256 private taxBuyPerc = 0;
    string private constant _name = unicode"Lionel Messi Fan Token";
    string private constant _symbol = unicode"MESSI";
    uint8 private constant _decimals = 9;
    bool private inSwap = false;

    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private phase2;
    bool private paused;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event MaxWalletPercUpdated(uint _maxWalletPerc);
    event MaxTaxSwapPercUpdated(uint _maxTaxSwap);
    
    constructor () { 
        deployerWallet = payable(_msgSender());
        balance[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0),owner(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function isWhitelisted(address _addr) external view returns(bool){
        return _isExcludedFromFee[_addr];
    }

    function transferFrom(address sender, address recipient, uint256 amount) external 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 holder, address spender, uint256 amount) private {
        require(holder != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[holder][spender] = amount;
        emit Approval(holder, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(balanceOf(from) >= amount,"Balance less then transfer"); 
        require(!bots[from] && !bots[to]);

        uint256 taxAmount=0;
        if (!(_isExcludedFromFee[from] || _isExcludedFromFee[to]) ) {  
            require(tradingOpen,"Trading is not enabled yet");
            require(amount <= _maxTxAmount,"Amount exceed max trnx amount");

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] <
                            block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }
            
            if(to != uniswapV2Pair){   
            require(balanceOf(to) + amount <= maxWallet,"max Wallet limit exceeded");
            } 

            uint256 contractETHBalance = address(this).balance;
            if(contractETHBalance > 0) { 
                sendETHToFee(address(this).balance);
            }

            
            if(from == uniswapV2Pair){
                taxAmount = amount.mul(taxBuyPerc).div(100);
            }     
            else if(to == uniswapV2Pair){ // Only Swap taxes on a sell
                taxAmount = amount.mul(taxSellPerc).div(100);
                uint256 contractTokenBalance = balanceOf(address(this));
                if(!inSwap){
                    if(phase2){
                        swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                    }
                    else{
                        if(contractTokenBalance > _tTotal/1000){ // Sell 0.01%
                            swapTokensForEth(contractTokenBalance);
                    }
                    }
                }
            }
               
        }
        _tokenTransfer(from,to,amount,taxAmount);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, uint256 _taxAmount) private {
          
        uint256 remainingAmount = amount - _taxAmount; 
        balance[sender] = balance[sender].sub(amount); 
        balance[recipient] = balance[recipient].add(remainingAmount); 
        balance[address(this)] = balance[address(this)].add(_taxAmount); 
        emit Transfer(sender, recipient, remainingAmount);
    }


    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 removeLimits() external onlyOwner{
        require(tradingOpen,"Trading is not enabled yet");
        _maxTxAmount = _tTotal;
        maxWallet = _tTotal;
        _maxTaxSwap = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
        emit MaxWalletPercUpdated(_tTotal);
        emit MaxTaxSwapPercUpdated(_tTotal);
        transferDelayEnabled=false;

    }

    function sendETHToFee(uint256 amount) private {
        deployerWallet.transfer(amount);        
    }
    
    
    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);
        _maxTxAmount = _tTotal*20/1000;
        maxWallet = _tTotal*20/1000;
        _maxTaxSwap = _tTotal*20/1000;
        taxSellPerc = 50;
        taxBuyPerc = 25;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
    }

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

    function RemoveFees() external onlyOwner{
        taxSellPerc = 0;
        taxBuyPerc = 0;
    }

    function ZeroTax() external onlyOwner{
        taxSellPerc = 0;
        taxBuyPerc = 0;
    }

    event addressWhitelisted(address _address,bool _bool);

    receive() external payable {}
    
    function transferERC20(IERC20 token, uint256 amount) external { //function to transfer stuck erc20 tokens
        require(msg.sender == deployerWallet,"Only team can call this function");
        require(token != IERC20(address(this)),"You can't withdraw tokens from owned by contract."); 
        uint256 erc20balance = token.balanceOf(address(this));
        require(amount <= erc20balance, "balance is low");
        token.transfer(deployerWallet, amount);
    }


    function manualswap() external {
        require(msg.sender == deployerWallet,"Only team can call this function");
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(msg.sender == deployerWallet,"Only team can call this function");
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function addBots(address[] memory bots_) external {
        require(msg.sender == deployerWallet,"Only team can call this function");
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    function isBot(address a) public view returns (bool){
      return bots[a];
    }
}

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":"_maxTaxSwap","type":"uint256"}],"name":"MaxTaxSwapPercUpdated","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":"_maxWalletPerc","type":"uint256"}],"name":"MaxWalletPercUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"addressWhitelisted","type":"event"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ZeroTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"deployerWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","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":"_addr","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff19166001179055620000256064662386f26fc100006200019f565b6007556200003c6064662386f26fc100006200019f565b6008555f6009819055600a55600b805460ff19169055662386f26fc10000600d5534801562000069575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360068054610100600160a81b03191661010033908102919091179091555f9081526001602081905260408220662386f26fc10000905590600390620000f45f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526003909252902080549091166001179055620001455f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200019191815260200190565b60405180910390a3620001bf565b5f82620001ba57634e487b7160e01b5f52601260045260245ffd5b500490565b611cad80620001cd5f395ff3fe60806040526004361061014a575f3560e01c8063719b3db8116100b3578063c876d0b91161006d578063c876d0b9146103f6578063d34628cc1461040f578063d8aef13514610352578063dd62ed3e1461042e578063f2fde38b14610472578063f7448a3114610491575f80fd5b8063719b3db814610352578063751039fc146103665780638da5cb5b1461037a57806395d89b4114610396578063a9059cbb146103c3578063c3c8cd80146103e2575f80fd5b80633af32abf116101045780633af32abf1461024a5780633bbac5791461028157806351cd7cc3146102b85780635d60c7be146102ce5780636fc3eaec1461030a57806370a082311461031e575f80fd5b806306fdde0314610155578063095ea7b3146101a55780630faee56f146101d457806318160ddd146101f757806323b872dd14610210578063313ce5671461022f575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b506040805180820190915260168152752634b7b732b61026b2b9b9b4902330b7102a37b5b2b760511b60208201525b60405161019c9190611861565b60405180910390f35b3480156101b0575f80fd5b506101c46101bf3660046118d0565b6104b0565b604051901515815260200161019c565b3480156101df575f80fd5b506101e960085481565b60405190815260200161019c565b348015610202575f80fd5b50662386f26fc100006101e9565b34801561021b575f80fd5b506101c461022a3660046118fa565b6104c6565b34801561023a575f80fd5b506040516009815260200161019c565b348015610255575f80fd5b506101c4610264366004611938565b6001600160a01b03165f9081526003602052604090205460ff1690565b34801561028c575f80fd5b506101c461029b366004611938565b6001600160a01b03165f9081526005602052604090205460ff1690565b3480156102c3575f80fd5b506102cc61052d565b005b3480156102d9575f80fd5b506006546102f29061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161019c565b348015610315575f80fd5b506102cc610949565b348015610329575f80fd5b506101e9610338366004611938565b6001600160a01b03165f9081526001602052604090205490565b34801561035d575f80fd5b506102cc610985565b348015610371575f80fd5b506102cc6109b9565b348015610385575f80fd5b505f546001600160a01b03166102f2565b3480156103a1575f80fd5b506040805180820190915260058152644d4553534960d81b602082015261018f565b3480156103ce575f80fd5b506101c46103dd3660046118d0565b610b05565b3480156103ed575f80fd5b506102cc610b11565b348015610401575f80fd5b506006546101c49060ff1681565b34801561041a575f80fd5b506102cc610429366004611967565b610b58565b348015610439575f80fd5b506101e9610448366004611a27565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561047d575f80fd5b506102cc61048c366004611938565b610bf0565b34801561049c575f80fd5b506102cc6104ab3660046118d0565b610c72565b5f6104bc338484610e3d565b5060015b92915050565b5f6104d2848484610f60565b610523843361051e85604051806060016040528060288152602001611c50602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906113da565b610e3d565b5060019392505050565b5f546001600160a01b0316331461055f5760405162461bcd60e51b815260040161055690611a5e565b60405180910390fd5b600c54600160a01b900460ff16156105b95760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610556565b600b8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790819055737a250d5630b4cf539739df2c5dacb4c659f2488d9061061b9030906001600160a01b0361010090910416662386f26fc10000610e3d565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067b9190611a93565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ea9190611a93565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190611a93565b600c80546001600160a01b039283166001600160a01b0319909116179055600b5461010090041663f305d71947306107a4816001600160a01b03165f9081526001602052604090205490565b5f806107b75f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561081d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108429190611aae565b5050506103e8662386f26fc10000601461085c9190611aed565b6108669190611b04565b600d556103e861087e662386f26fc100006014611aed565b6108889190611b04565b6007556103e86108a0662386f26fc100006014611aed565b6108aa9190611b04565b60085560326009556019600a55600c54600b5460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af115801561090e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109329190611b23565b5050600c805460ff60a01b1916600160a01b179055565b60065461010090046001600160a01b031633146109785760405162461bcd60e51b815260040161055690611b42565b4761098281611412565b50565b5f546001600160a01b031633146109ae5760405162461bcd60e51b815260040161055690611a5e565b5f6009819055600a55565b5f546001600160a01b031633146109e25760405162461bcd60e51b815260040161055690611a5e565b600c54600160a01b900460ff16610a3b5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610556565b662386f26fc10000600d819055600781905560088190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1604051662386f26fc1000081527f9a67c283449381e8ee7fa29c87cef05ccedd0faaff767bf879b02d34290fdc7b9060200160405180910390a1604051662386f26fc1000081527f8731543e21093ca66ef786ff7b72c9887cea0eec2b8b9484b95429eaffc4903c9060200160405180910390a16006805460ff19169055565b5f6104bc338484610f60565b60065461010090046001600160a01b03163314610b405760405162461bcd60e51b815260040161055690611b42565b305f908152600160205260409020546109828161144d565b60065461010090046001600160a01b03163314610b875760405162461bcd60e51b815260040161055690611b42565b5f5b8151811015610bec57600160055f848481518110610ba957610ba9611b77565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610be481611b8b565b915050610b89565b5050565b5f546001600160a01b03163314610c195760405162461bcd60e51b815260040161055690611a5e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b03163314610ca15760405162461bcd60e51b815260040161055690611b42565b306001600160a01b03831603610d135760405162461bcd60e51b815260206004820152603160248201527f596f752063616e277420776974686472617720746f6b656e732066726f6d206f6044820152703bb732b210313c9031b7b73a3930b1ba1760791b6064820152608401610556565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7b9190611ba3565b905080821115610dbe5760405162461bcd60e51b815260206004820152600e60248201526d62616c616e6365206973206c6f7760901b6044820152606401610556565b60065460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610e13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e379190611b23565b50505050565b6001600160a01b038316610e9f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610556565b6001600160a01b038216610f005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610556565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610fc15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610556565b80610fe0846001600160a01b03165f9081526001602052604090205490565b101561102e5760405162461bcd60e51b815260206004820152601a60248201527f42616c616e6365206c657373207468656e207472616e736665720000000000006044820152606401610556565b6001600160a01b0383165f9081526005602052604090205460ff1615801561106e57506001600160a01b0382165f9081526005602052604090205460ff16155b611076575f80fd5b6001600160a01b0383165f9081526003602052604081205460ff16806110b357506001600160a01b0383165f9081526003602052604090205460ff165b6113ce57600c54600160a01b900460ff166111105760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610556565b600d548211156111625760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e7420657863656564206d61782074726e7820616d6f756e740000006044820152606401610556565b60065460ff161561124a57600b546001600160a01b03848116610100909204161480159061119e5750600c546001600160a01b03848116911614155b1561124a57325f9081526004602052604090205443116112385760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610556565b325f9081526004602052604090204390555b600c546001600160a01b038481169116146112d95760075482611281856001600160a01b03165f9081526001602052604090205490565b61128b9190611bba565b11156112d95760405162461bcd60e51b815260206004820152601960248201527f6d61782057616c6c6574206c696d6974206578636565646564000000000000006044820152606401610556565b4780156112e9576112e947611412565b600c546001600160a01b03908116908616036113265761131f6064611319600a54866115d790919063ffffffff16565b9061165c565b91506113cc565b600c546001600160a01b03908116908516036113cc576113566064611319600954866115d790919063ffffffff16565b305f90815260016020526040902054600b549193509060ff166113ca57600c54600160a81b900460ff16156113a7576113a261139d856113988460085461169d565b61169d565b61144d565b6113ca565b6113ba6103e8662386f26fc10000611b04565b8111156113ca576113ca8161144d565b505b505b610e37848484846116b1565b5f81848411156113fd5760405162461bcd60e51b81526004016105569190611861565b505f6114098486611bcd565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610bec573d5f803e3d5ffd5b600b805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148d5761148d611b77565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115229190611a93565b8160018151811061153557611535611b77565b6001600160a01b039283166020918202929092010152600b5461156091309161010090041684610e3d565b600b5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac9479061159c9085905f90869030904290600401611be0565b5f604051808303815f87803b1580156115b3575f80fd5b505af11580156115c5573d5f803e3d5ffd5b5050600b805460ff1916905550505050565b5f825f036115e657505f6104c0565b5f6115f18385611aed565b9050826115fe8583611b04565b146116555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610556565b9392505050565b5f61165583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611796565b5f8183116116ab5782611655565b50919050565b5f6116bc8284611bcd565b6001600160a01b0386165f908152600160205260409020549091506116e190846117c2565b6001600160a01b038087165f90815260016020526040808220939093559086168152205461170f9082611803565b6001600160a01b0385165f9081526001602052604080822092909255308152205461173a9083611803565b305f9081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b5f81836117b65760405162461bcd60e51b81526004016105569190611861565b505f6114098486611b04565b5f61165583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113da565b5f8061180f8385611bba565b9050838110156116555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610556565b5f6020808352835180828501525f5b8181101561188c57858101830151858201604001528201611870565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610982575f80fd5b80356118cb816118ac565b919050565b5f80604083850312156118e1575f80fd5b82356118ec816118ac565b946020939093013593505050565b5f805f6060848603121561190c575f80fd5b8335611917816118ac565b92506020840135611927816118ac565b929592945050506040919091013590565b5f60208284031215611948575f80fd5b8135611655816118ac565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611978575f80fd5b823567ffffffffffffffff8082111561198f575f80fd5b818501915085601f8301126119a2575f80fd5b8135818111156119b4576119b4611953565b8060051b604051601f19603f830116810181811085821117156119d9576119d9611953565b6040529182528482019250838101850191888311156119f6575f80fd5b938501935b82851015611a1b57611a0c856118c0565b845293850193928501926119fb565b98975050505050505050565b5f8060408385031215611a38575f80fd5b8235611a43816118ac565b91506020830135611a53816118ac565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611aa3575f80fd5b8151611655816118ac565b5f805f60608486031215611ac0575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104c0576104c0611ad9565b5f82611b1e57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611b33575f80fd5b81518015158114611655575f80fd5b6020808252818101527f4f6e6c79207465616d2063616e2063616c6c20746869732066756e6374696f6e604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611b9c57611b9c611ad9565b5060010190565b5f60208284031215611bb3575f80fd5b5051919050565b808201808211156104c0576104c0611ad9565b818103818111156104c0576104c0611ad9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c2e5784516001600160a01b031683529383019391830191600101611c09565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1eda16ff30515b98c8c402a892ea7953e737d946a283082cd687b1966b07d5364736f6c63430008140033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c8063719b3db8116100b3578063c876d0b91161006d578063c876d0b9146103f6578063d34628cc1461040f578063d8aef13514610352578063dd62ed3e1461042e578063f2fde38b14610472578063f7448a3114610491575f80fd5b8063719b3db814610352578063751039fc146103665780638da5cb5b1461037a57806395d89b4114610396578063a9059cbb146103c3578063c3c8cd80146103e2575f80fd5b80633af32abf116101045780633af32abf1461024a5780633bbac5791461028157806351cd7cc3146102b85780635d60c7be146102ce5780636fc3eaec1461030a57806370a082311461031e575f80fd5b806306fdde0314610155578063095ea7b3146101a55780630faee56f146101d457806318160ddd146101f757806323b872dd14610210578063313ce5671461022f575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b506040805180820190915260168152752634b7b732b61026b2b9b9b4902330b7102a37b5b2b760511b60208201525b60405161019c9190611861565b60405180910390f35b3480156101b0575f80fd5b506101c46101bf3660046118d0565b6104b0565b604051901515815260200161019c565b3480156101df575f80fd5b506101e960085481565b60405190815260200161019c565b348015610202575f80fd5b50662386f26fc100006101e9565b34801561021b575f80fd5b506101c461022a3660046118fa565b6104c6565b34801561023a575f80fd5b506040516009815260200161019c565b348015610255575f80fd5b506101c4610264366004611938565b6001600160a01b03165f9081526003602052604090205460ff1690565b34801561028c575f80fd5b506101c461029b366004611938565b6001600160a01b03165f9081526005602052604090205460ff1690565b3480156102c3575f80fd5b506102cc61052d565b005b3480156102d9575f80fd5b506006546102f29061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161019c565b348015610315575f80fd5b506102cc610949565b348015610329575f80fd5b506101e9610338366004611938565b6001600160a01b03165f9081526001602052604090205490565b34801561035d575f80fd5b506102cc610985565b348015610371575f80fd5b506102cc6109b9565b348015610385575f80fd5b505f546001600160a01b03166102f2565b3480156103a1575f80fd5b506040805180820190915260058152644d4553534960d81b602082015261018f565b3480156103ce575f80fd5b506101c46103dd3660046118d0565b610b05565b3480156103ed575f80fd5b506102cc610b11565b348015610401575f80fd5b506006546101c49060ff1681565b34801561041a575f80fd5b506102cc610429366004611967565b610b58565b348015610439575f80fd5b506101e9610448366004611a27565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561047d575f80fd5b506102cc61048c366004611938565b610bf0565b34801561049c575f80fd5b506102cc6104ab3660046118d0565b610c72565b5f6104bc338484610e3d565b5060015b92915050565b5f6104d2848484610f60565b610523843361051e85604051806060016040528060288152602001611c50602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906113da565b610e3d565b5060019392505050565b5f546001600160a01b0316331461055f5760405162461bcd60e51b815260040161055690611a5e565b60405180910390fd5b600c54600160a01b900460ff16156105b95760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610556565b600b8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790819055737a250d5630b4cf539739df2c5dacb4c659f2488d9061061b9030906001600160a01b0361010090910416662386f26fc10000610e3d565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067b9190611a93565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ea9190611a93565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190611a93565b600c80546001600160a01b039283166001600160a01b0319909116179055600b5461010090041663f305d71947306107a4816001600160a01b03165f9081526001602052604090205490565b5f806107b75f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561081d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108429190611aae565b5050506103e8662386f26fc10000601461085c9190611aed565b6108669190611b04565b600d556103e861087e662386f26fc100006014611aed565b6108889190611b04565b6007556103e86108a0662386f26fc100006014611aed565b6108aa9190611b04565b60085560326009556019600a55600c54600b5460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af115801561090e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109329190611b23565b5050600c805460ff60a01b1916600160a01b179055565b60065461010090046001600160a01b031633146109785760405162461bcd60e51b815260040161055690611b42565b4761098281611412565b50565b5f546001600160a01b031633146109ae5760405162461bcd60e51b815260040161055690611a5e565b5f6009819055600a55565b5f546001600160a01b031633146109e25760405162461bcd60e51b815260040161055690611a5e565b600c54600160a01b900460ff16610a3b5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610556565b662386f26fc10000600d819055600781905560088190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1604051662386f26fc1000081527f9a67c283449381e8ee7fa29c87cef05ccedd0faaff767bf879b02d34290fdc7b9060200160405180910390a1604051662386f26fc1000081527f8731543e21093ca66ef786ff7b72c9887cea0eec2b8b9484b95429eaffc4903c9060200160405180910390a16006805460ff19169055565b5f6104bc338484610f60565b60065461010090046001600160a01b03163314610b405760405162461bcd60e51b815260040161055690611b42565b305f908152600160205260409020546109828161144d565b60065461010090046001600160a01b03163314610b875760405162461bcd60e51b815260040161055690611b42565b5f5b8151811015610bec57600160055f848481518110610ba957610ba9611b77565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610be481611b8b565b915050610b89565b5050565b5f546001600160a01b03163314610c195760405162461bcd60e51b815260040161055690611a5e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b03163314610ca15760405162461bcd60e51b815260040161055690611b42565b306001600160a01b03831603610d135760405162461bcd60e51b815260206004820152603160248201527f596f752063616e277420776974686472617720746f6b656e732066726f6d206f6044820152703bb732b210313c9031b7b73a3930b1ba1760791b6064820152608401610556565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7b9190611ba3565b905080821115610dbe5760405162461bcd60e51b815260206004820152600e60248201526d62616c616e6365206973206c6f7760901b6044820152606401610556565b60065460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610e13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e379190611b23565b50505050565b6001600160a01b038316610e9f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610556565b6001600160a01b038216610f005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610556565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610fc15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610556565b80610fe0846001600160a01b03165f9081526001602052604090205490565b101561102e5760405162461bcd60e51b815260206004820152601a60248201527f42616c616e6365206c657373207468656e207472616e736665720000000000006044820152606401610556565b6001600160a01b0383165f9081526005602052604090205460ff1615801561106e57506001600160a01b0382165f9081526005602052604090205460ff16155b611076575f80fd5b6001600160a01b0383165f9081526003602052604081205460ff16806110b357506001600160a01b0383165f9081526003602052604090205460ff165b6113ce57600c54600160a01b900460ff166111105760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610556565b600d548211156111625760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e7420657863656564206d61782074726e7820616d6f756e740000006044820152606401610556565b60065460ff161561124a57600b546001600160a01b03848116610100909204161480159061119e5750600c546001600160a01b03848116911614155b1561124a57325f9081526004602052604090205443116112385760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610556565b325f9081526004602052604090204390555b600c546001600160a01b038481169116146112d95760075482611281856001600160a01b03165f9081526001602052604090205490565b61128b9190611bba565b11156112d95760405162461bcd60e51b815260206004820152601960248201527f6d61782057616c6c6574206c696d6974206578636565646564000000000000006044820152606401610556565b4780156112e9576112e947611412565b600c546001600160a01b03908116908616036113265761131f6064611319600a54866115d790919063ffffffff16565b9061165c565b91506113cc565b600c546001600160a01b03908116908516036113cc576113566064611319600954866115d790919063ffffffff16565b305f90815260016020526040902054600b549193509060ff166113ca57600c54600160a81b900460ff16156113a7576113a261139d856113988460085461169d565b61169d565b61144d565b6113ca565b6113ba6103e8662386f26fc10000611b04565b8111156113ca576113ca8161144d565b505b505b610e37848484846116b1565b5f81848411156113fd5760405162461bcd60e51b81526004016105569190611861565b505f6114098486611bcd565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610bec573d5f803e3d5ffd5b600b805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148d5761148d611b77565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115229190611a93565b8160018151811061153557611535611b77565b6001600160a01b039283166020918202929092010152600b5461156091309161010090041684610e3d565b600b5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac9479061159c9085905f90869030904290600401611be0565b5f604051808303815f87803b1580156115b3575f80fd5b505af11580156115c5573d5f803e3d5ffd5b5050600b805460ff1916905550505050565b5f825f036115e657505f6104c0565b5f6115f18385611aed565b9050826115fe8583611b04565b146116555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610556565b9392505050565b5f61165583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611796565b5f8183116116ab5782611655565b50919050565b5f6116bc8284611bcd565b6001600160a01b0386165f908152600160205260409020549091506116e190846117c2565b6001600160a01b038087165f90815260016020526040808220939093559086168152205461170f9082611803565b6001600160a01b0385165f9081526001602052604080822092909255308152205461173a9083611803565b305f9081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b5f81836117b65760405162461bcd60e51b81526004016105569190611861565b505f6114098486611b04565b5f61165583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113da565b5f8061180f8385611bba565b9050838110156116555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610556565b5f6020808352835180828501525f5b8181101561188c57858101830151858201604001528201611870565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610982575f80fd5b80356118cb816118ac565b919050565b5f80604083850312156118e1575f80fd5b82356118ec816118ac565b946020939093013593505050565b5f805f6060848603121561190c575f80fd5b8335611917816118ac565b92506020840135611927816118ac565b929592945050506040919091013590565b5f60208284031215611948575f80fd5b8135611655816118ac565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611978575f80fd5b823567ffffffffffffffff8082111561198f575f80fd5b818501915085601f8301126119a2575f80fd5b8135818111156119b4576119b4611953565b8060051b604051601f19603f830116810181811085821117156119d9576119d9611953565b6040529182528482019250838101850191888311156119f6575f80fd5b938501935b82851015611a1b57611a0c856118c0565b845293850193928501926119fb565b98975050505050505050565b5f8060408385031215611a38575f80fd5b8235611a43816118ac565b91506020830135611a53816118ac565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611aa3575f80fd5b8151611655816118ac565b5f805f60608486031215611ac0575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104c0576104c0611ad9565b5f82611b1e57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611b33575f80fd5b81518015158114611655575f80fd5b6020808252818101527f4f6e6c79207465616d2063616e2063616c6c20746869732066756e6374696f6e604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611b9c57611b9c611ad9565b5060010190565b5f60208284031215611bb3575f80fd5b5051919050565b808201808211156104c0576104c0611ad9565b818103818111156104c0576104c0611ad9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c2e5784516001600160a01b031683529383019391830191600101611c09565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1eda16ff30515b98c8c402a892ea7953e737d946a283082cd687b1966b07d5364736f6c63430008140033

Deployed Bytecode Sourcemap

3623:9762:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5293:85;;;;;;;;;;-1:-1:-1;5365:5:0;;;;;;;;;;;;-1:-1:-1;;;5365:5:0;;;;5293:85;;;;;;;:::i;:::-;;;;;;;;6138:163;;;;;;;;;;-1:-1:-1;6138:163:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6138:163:0;1162:187:1;4219:39:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4219:39:0;1354:177:1;5576:97:0;;;;;;;;;;-1:-1:-1;4143:21:0;5576:97;;6433:315;;;;;;;;;;-1:-1:-1;6433:315:0;;;;;:::i;:::-;;:::i;5483:85::-;;;;;;;;;;-1:-1:-1;5483:85:0;;4500:1;2139:36:1;;2127:2;2112:18;5483:85:0;1997:184:1;6309:116:0;;;;;;;;;;-1:-1:-1;6309:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;6392:25:0;6369:4;6392:25;;;:18;:25;;;;;;;;;6309:116;13299:83;;;;;;;;;;-1:-1:-1;13299:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;13367:7:0;13346:4;13367:7;;;:4;:7;;;;;;;;;13299:83;10797:879;;;;;;;;;;;;;:::i;:::-;;4054:37;;;;;;;;;;-1:-1:-1;4054:37:0;;;;;;;-1:-1:-1;;;;;4054:37:0;;;;;;-1:-1:-1;;;;;2618:32:1;;;2600:51;;2588:2;2573:18;4054:37:0;2438:219:1;12820:226:0;;;;;;;;;;;;;:::i;5681:117::-;;;;;;;;;;-1:-1:-1;5681:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;5774:16:0;5747:7;5774:16;;;:7;:16;;;;;;;5681:117;11897:96;;;;;;;;;;;;;:::i;10289:378::-;;;;;;;;;;;;;:::i;2480:79::-;;;;;;;;;;-1:-1:-1;2518:7:0;2545:6;-1:-1:-1;;;;;2545:6:0;2480:79;;5386:89;;;;;;;;;;-1:-1:-1;5460:7:0;;;;;;;;;;;;-1:-1:-1;;;5460:7:0;;;;5386:89;;5806:169;;;;;;;;;;-1:-1:-1;5806:169:0;;;;;:::i;:::-;;:::i;12585:227::-;;;;;;;;;;;;;:::i;4008:39::-;;;;;;;;;;-1:-1:-1;4008:39:0;;;;;;;;13054:239;;;;;;;;;;-1:-1:-1;13054:239:0;;;;;:::i;:::-;;:::i;5983:147::-;;;;;;;;;;-1:-1:-1;5983:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;6094:19:0;;;6067:7;6094:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5983:147;2694:156;;;;;;;;;;-1:-1:-1;2694:156:0;;;;;:::i;:::-;;:::i;12104:471::-;;;;;;;;;;-1:-1:-1;12104:471:0;;;;;:::i;:::-;;:::i;6138:163::-;6215:4;6232:39;354:10;6255:7;6264:6;6232:8;:39::i;:::-;-1:-1:-1;6289:4:0;6138:163;;;;;:::o;6433:315::-;6533:4;6550:36;6560:6;6568:9;6579:6;6550:9;:36::i;:::-;6597:121;6606:6;354:10;6628:89;6666:6;6628:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6628:19:0;;;;;;:11;:19;;;;;;;;354:10;6628:33;;;;;;;;;;:37;:89::i;:::-;6597:8;:121::i;:::-;-1:-1:-1;6736:4:0;6433:315;;;;;:::o;10797:879::-;2607:6;;-1:-1:-1;;;;;2607:6:0;354:10;2607:22;2599:67;;;;-1:-1:-1;;;2599:67:0;;;;;;;:::i;:::-;;;;;;;;;10859:11:::1;::::0;-1:-1:-1;;;10859:11:0;::::1;;;10858:12;10850:47;;;::::0;-1:-1:-1;;;10850:47:0;;5417:2:1;10850:47:0::1;::::0;::::1;5399:21:1::0;5456:2;5436:18;;;5429:30;5495:25;5475:18;;;5468:53;5538:18;;10850:47:0::1;5215:347:1::0;10850:47:0::1;11019:15;:34:::0;;-1:-1:-1;;;;;;11019:34:0::1;::::0;::::1;::::0;;;;10965:42:::1;::::0;11064:58:::1;::::0;11081:4:::1;::::0;-1:-1:-1;;;;;11019:34:0::1;11096:15:::0;;::::1;;4143:21;11064:8;:58::i;:::-;11167:16;-1:-1:-1::0;;;;;11167:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11149:56:0::1;;11214:4;11221:16;-1:-1:-1::0;;;;;11221:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11149:96;::::0;-1:-1:-1;;;;;;11149:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6053:15:1;;;11149:96:0::1;::::0;::::1;6035:34:1::0;6105:15;;6085:18;;;6078:43;5970:18;;11149:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11133:13;:112:::0;;-1:-1:-1;;;;;11133:112:0;;::::1;-1:-1:-1::0;;;;;;11133:112:0;;::::1;;::::0;;11256:15:::1;::::0;11133:112:::1;11256:15:::0;::::1;;:31;11295:21;11326:4;11332:24;11326:4:::0;-1:-1:-1;;;;;5774:16:0;5747:7;5774:16;;;:7;:16;;;;;;;5681:117;11332:24:::1;11357:1;11359::::0;11361:7:::1;2518::::0;2545:6;-1:-1:-1;;;;;2545:6:0;;2480:79;11361:7:::1;11256:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11256:129:0;;;-1:-1:-1;;;;;6491:15:1;;;11256:129:0::1;::::0;::::1;6473:34:1::0;6523:18;;;6516:34;;;;6566:18;;;6559:34;;;;6609:18;;;6602:34;6673:15;;;6652:19;;;6645:44;11369:15:0::1;6705:19:1::0;;;6698:35;6407:19;;11256:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11422:4;4143:21;11419:2;11411:10;;;;:::i;:::-;:15;;;;:::i;:::-;11396:12;:30:::0;11460:4:::1;11449:10;4143:21;11457:2;11449:10;:::i;:::-;:15;;;;:::i;:::-;11437:9;:27:::0;11500:4:::1;11489:10;4143:21;11497:2;11489:10;:::i;:::-;:15;;;;:::i;:::-;11475:11;:29:::0;11529:2:::1;11515:11;:16:::0;11555:2:::1;11542:10;:15:::0;11575:13:::1;::::0;11606:15:::1;::::0;11568:71:::1;::::0;-1:-1:-1;;;11568:71:0;;-1:-1:-1;;;;;11575:13:0::1;11606:15:::0;;::::1;::::0;::::1;11568:71;::::0;::::1;7756:51:1::0;-1:-1:-1;;7823:18:1;;;7816:34;11575:13:0;::::1;::::0;11568:29:::1;::::0;7729:18:1;;11568:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11650:11:0::1;:18:::0;;-1:-1:-1;;;;11650:18:0::1;-1:-1:-1::0;;;11650:18:0::1;::::0;;10797:879::o;12820:226::-;12884:14;;;;;-1:-1:-1;;;;;12884:14:0;12870:10;:28;12862:72;;;;-1:-1:-1;;;12862:72:0;;;;;;;:::i;:::-;12974:21;13006:32;12974:21;13006:12;:32::i;:::-;12851:195;12820:226::o;11897:96::-;2607:6;;-1:-1:-1;;;;;2607:6:0;354:10;2607:22;2599:67;;;;-1:-1:-1;;;2599:67:0;;;;;;;:::i;:::-;11959:1:::1;11945:11;:15:::0;;;11971:10:::1;:14:::0;11897:96::o;10289:378::-;2607:6;;-1:-1:-1;;;;;2607:6:0;354:10;2607:22;2599:67;;;;-1:-1:-1;;;2599:67:0;;;;;;;:::i;:::-;10350:11:::1;::::0;-1:-1:-1;;;10350:11:0;::::1;;;10342:49;;;::::0;-1:-1:-1;;;10342:49:0;;8706:2:1;10342:49:0::1;::::0;::::1;8688:21:1::0;8745:2;8725:18;;;8718:30;8784:28;8764:18;;;8757:56;8830:18;;10342:49:0::1;8504:350:1::0;10342:49:0::1;4143:21;10402:12;:22:::0;;;10435:9:::1;:19:::0;;;10465:11:::1;:21:::0;;;10502:27:::1;::::0;1500:25:1;;;10502:27:0::1;::::0;1488:2:1;1473:18;10502:27:0::1;;;;;;;10545:29;::::0;4143:21:::1;1500:25:1::0;;10545:29:0::1;::::0;1488:2:1;1473:18;10545:29:0::1;;;;;;;10590:30;::::0;4143:21:::1;1500:25:1::0;;10590:30:0::1;::::0;1488:2:1;1473:18;10590:30:0::1;;;;;;;10631:20;:26:::0;;-1:-1:-1;;10631:26:0::1;::::0;;10289:378::o;5806:169::-;5886:4;5903:42;354:10;5927:9;5938:6;5903:9;:42::i;12585:227::-;12649:14;;;;;-1:-1:-1;;;;;12649:14:0;12635:10;:28;12627:72;;;;-1:-1:-1;;;12627:72:0;;;;;;;:::i;:::-;12754:4;12710:23;5774:16;;;:7;:16;;;;;;12771:33;5774:16;12771;:33::i;13054:239::-;13137:14;;;;;-1:-1:-1;;;;;13137:14:0;13123:10;:28;13115:72;;;;-1:-1:-1;;;13115:72:0;;;;;;;:::i;:::-;13203:6;13198:88;13219:5;:12;13215:1;:16;13198:88;;;13270:4;13253;:14;13258:5;13264:1;13258:8;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;13253:14:0;;;;;;;;;;;-1:-1:-1;13253:14:0;:21;;-1:-1:-1;;13253:21:0;;;;;;;;;;13233:3;;;;:::i;:::-;;;;13198:88;;;;13054:239;:::o;2694:156::-;2607:6;;-1:-1:-1;;;;;2607:6:0;354:10;2607:22;2599:67;;;;-1:-1:-1;;;2599:67:0;;;;;;;:::i;:::-;2797:6:::1;::::0;;2776:38:::1;::::0;-1:-1:-1;;;;;2776:38:0;;::::1;::::0;2797:6;::::1;::::0;2776:38:::1;::::0;::::1;2825:6;:17:::0;;-1:-1:-1;;;;;;2825:17:0::1;-1:-1:-1::0;;;;;2825:17:0;;;::::1;::::0;;;::::1;::::0;;2694:156::o;12104:471::-;12241:14;;;;;-1:-1:-1;;;;;12241:14:0;12227:10;:28;12219:72;;;;-1:-1:-1;;;12219:72:0;;;;;;;:::i;:::-;12334:4;-1:-1:-1;;;;;12310:30:0;;;12302:91;;;;-1:-1:-1;;;12302:91:0;;9333:2:1;12302:91:0;;;9315:21:1;9372:2;9352:18;;;9345:30;9411:34;9391:18;;;9384:62;-1:-1:-1;;;9462:18:1;;;9455:47;9519:19;;12302:91:0;9131:413:1;12302:91:0;12428:30;;-1:-1:-1;;;12428:30:0;;12452:4;12428:30;;;2600:51:1;12405:20:0;;-1:-1:-1;;;;;12428:15:0;;;;;2573:18:1;;12428:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12405:53;;12487:12;12477:6;:22;;12469:49;;;;-1:-1:-1;;;12469:49:0;;9940:2:1;12469:49:0;;;9922:21:1;9979:2;9959:18;;;9952:30;-1:-1:-1;;;9998:18:1;;;9991:44;10052:18;;12469:49:0;9738:338:1;12469:49:0;12544:14;;12529:38;;-1:-1:-1;;;12529:38:0;;12544:14;;;;-1:-1:-1;;;;;12544:14:0;;;12529:38;;;7756:51:1;7823:18;;;7816:34;;;12529:14:0;;;;;7729:18:1;;12529:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12166:409;12104:471;;:::o;6756:339::-;-1:-1:-1;;;;;6850:20:0;;6842:69;;;;-1:-1:-1;;;6842:69:0;;10570:2:1;6842:69:0;;;10552:21:1;10609:2;10589:18;;;10582:30;10648:34;10628:18;;;10621:62;-1:-1:-1;;;10699:18:1;;;10692:34;10743:19;;6842:69:0;10368:400:1;6842:69:0;-1:-1:-1;;;;;6930:21:0;;6922:68;;;;-1:-1:-1;;;6922:68:0;;10975:2:1;6922:68:0;;;10957:21:1;11014:2;10994:18;;;10987:30;11053:34;11033:18;;;11026:62;-1:-1:-1;;;11104:18:1;;;11097:32;11146:19;;6922:68:0;10773:398:1;6922:68:0;-1:-1:-1;;;;;7001:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;7054:33;;1500:25:1;;;7054:33:0;;1473:18:1;7054:33:0;;;;;;;6756:339;;;:::o;7103:2227::-;7200:1;7191:6;:10;7183:64;;;;-1:-1:-1;;;7183:64:0;;11378:2:1;7183:64:0;;;11360:21:1;11417:2;11397:18;;;11390:30;11456:34;11436:18;;;11429:62;-1:-1:-1;;;11507:18:1;;;11500:39;11556:19;;7183:64:0;11176:405:1;7183:64:0;7285:6;7266:15;7276:4;-1:-1:-1;;;;;5774:16:0;5747:7;5774:16;;;:7;:16;;;;;;;5681:117;7266:15;:25;;7258:63;;;;-1:-1:-1;;;7258:63:0;;11788:2:1;7258:63:0;;;11770:21:1;11827:2;11807:18;;;11800:30;11866:28;11846:18;;;11839:56;11912:18;;7258:63:0;11586:350:1;7258:63:0;-1:-1:-1;;;;;7342:10:0;;;;;;:4;:10;;;;;;;;7341:11;:24;;;;-1:-1:-1;;;;;;7357:8:0;;;;;;:4;:8;;;;;;;;7356:9;7341:24;7333:33;;;;;;-1:-1:-1;;;;;7415:24:0;;7379:17;7415:24;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;7443:22:0;;;;;;:18;:22;;;;;;;;7415:50;7409:1863;;7494:11;;-1:-1:-1;;;7494:11:0;;;;7486:49;;;;-1:-1:-1;;;7486:49:0;;8706:2:1;7486:49:0;;;8688:21:1;8745:2;8725:18;;;8718:30;8784:28;8764:18;;;8757:56;8830:18;;7486:49:0;8504:350:1;7486:49:0;7568:12;;7558:6;:22;;7550:63;;;;-1:-1:-1;;;7550:63:0;;12143:2:1;7550:63:0;;;12125:21:1;12182:2;12162:18;;;12155:30;12221:31;12201:18;;;12194:59;12270:18;;7550:63:0;11941:353:1;7550:63:0;7634:20;;;;7630:494;;;7693:15;;-1:-1:-1;;;;;7679:30:0;;;7693:15;;;;;7679:30;;;;:62;;-1:-1:-1;7727:13:0;;-1:-1:-1;;;;;7713:28:0;;;7727:13;;7713:28;;7679:62;7675:432;;;7829:9;7800:39;;;;:28;:39;;;;;;7871:12;-1:-1:-1;7766:242:0;;;;-1:-1:-1;;;7766:242:0;;12501:2:1;7766:242:0;;;12483:21:1;12540:2;12520:18;;;12513:30;12579:34;12559:18;;;12552:62;12650:34;12630:18;;;12623:62;-1:-1:-1;;;12701:19:1;;;12694:40;12751:19;;7766:242:0;12299:477:1;7766:242:0;8060:9;8031:39;;;;:28;:39;;;;;8073:12;8031:54;;7675:432;8161:13;;-1:-1:-1;;;;;8155:19:0;;;8161:13;;8155:19;8152:129;;8227:9;;8217:6;8201:13;8211:2;-1:-1:-1;;;;;5774:16:0;5747:7;5774:16;;;:7;:16;;;;;;;5681:117;8201:13;:22;;;;:::i;:::-;:35;;8193:72;;;;-1:-1:-1;;;8193:72:0;;13113:2:1;8193:72:0;;;13095:21:1;13152:2;13132:18;;;13125:30;13191:27;13171:18;;;13164:55;13236:18;;8193:72:0;12911:349:1;8193:72:0;8327:21;8366:22;;8363:98;;8410:35;8423:21;8410:12;:35::i;:::-;8502:13;;-1:-1:-1;;;;;8502:13:0;;;8494:21;;;;8491:753;;8547:31;8574:3;8547:22;8558:10;;8547:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;8535:43;;8491:753;;;8627:13;;-1:-1:-1;;;;;8627:13:0;;;8621:19;;;;8618:626;;8701:32;8729:3;8701:23;8712:11;;8701:6;:10;;:23;;;;:::i;:32::-;8801:4;8752:28;5774:16;;;:7;:16;;;;;;8830:6;;8689:44;;-1:-1:-1;5774:16:0;8830:6;;8826:403;;8863:6;;-1:-1:-1;;;8863:6:0;;;;8860:350;;;8897:67;8914:49;8918:6;8925:37;8929:20;8950:11;;8925:3;:37::i;:::-;8914:3;:49::i;:::-;8897:16;:67::i;:::-;8860:350;;;9067:12;9075:4;4143:21;9067:12;:::i;:::-;9044:20;:35;9041:146;;;9125:38;9142:20;9125:16;:38::i;:::-;8641:603;8618:626;7469:1803;7409:1863;9282:40;9297:4;9302:2;9305:6;9312:9;9282:14;:40::i;1411:190::-;1497:7;1533:12;1525:6;;;;1517:29;;;;-1:-1:-1;;;1517:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1557:9:0;1569:5;1573:1;1569;:5;:::i;:::-;1557:17;1411:190;-1:-1:-1;;;;;1411:190:0:o;10675:104::-;10732:14;;:31;;:14;;;;-1:-1:-1;;;;;10732:14:0;;:31;;;;;;;;;;;;:14;:31;;;;;;;;;;;;;;;;;;;9792:483;4582:6;:13;;-1:-1:-1;;4582:13:0;4591:4;4582:13;;;9894:16:::1;::::0;;9908:1:::1;9894:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9894:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9894:16:0::1;9870:40;;9939:4;9921;9926:1;9921:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9921:23:0::1;;;-1:-1:-1::0;;;;;9921:23:0::1;;;::::0;::::1;9965:15;;;;;;;;;-1:-1:-1::0;;;;;9965:15:0::1;-1:-1:-1::0;;;;;9965:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9955:4;9960:1;9955:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9955:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10030:15:::1;::::0;9998:62:::1;::::0;10015:4:::1;::::0;10030:15:::1;::::0;::::1;;10048:11:::0;9998:8:::1;:62::i;:::-;10071:15;::::0;:196:::1;::::0;-1:-1:-1;;;10071:196:0;;:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;10071:15:0::1;::::0;:66:::1;::::0;:196:::1;::::0;10152:11;;10178:1:::1;::::0;10194:4;;10221::::1;::::0;10241:15:::1;::::0;10071:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4618:6:0;:14;;-1:-1:-1;;4618:14:0;;;-1:-1:-1;;;;9792:483:0:o;1609:246::-;1667:7;1691:1;1696;1691:6;1687:47;;-1:-1:-1;1721:1:0;1714:8;;1687:47;1744:9;1756:5;1760:1;1756;:5;:::i;:::-;1744:17;-1:-1:-1;1789:1:0;1780:5;1784:1;1744:17;1780:5;:::i;:::-;:10;1772:56;;;;-1:-1:-1;;;1772:56:0;;14585:2:1;1772:56:0;;;14567:21:1;14624:2;14604:18;;;14597:30;14663:34;14643:18;;;14636:62;-1:-1:-1;;;14714:18:1;;;14707:31;14755:19;;1772:56:0;14383:397:1;1772:56:0;1846:1;1609:246;-1:-1:-1;;;1609:246:0:o;1863:132::-;1921:7;1948:39;1952:1;1955;1948:39;;;;;;;;;;;;;;;;;:3;:39::i;11684:98::-;11741:7;11768:1;11766;:3;11765:9;;11773:1;11765:9;;;-1:-1:-1;11771:1:0;11684:98;-1:-1:-1;11684:98:0:o;9338:444::-;9464:23;9490:19;9499:10;9490:6;:19;:::i;:::-;-1:-1:-1;;;;;9539:15:0;;;;;;:7;:15;;;;;;9464:45;;-1:-1:-1;9539:27:0;;9559:6;9539:19;:27::i;:::-;-1:-1:-1;;;;;9521:15:0;;;;;;;:7;:15;;;;;;:45;;;;9599:18;;;;;;;:39;;9622:15;9599:22;:39::i;:::-;-1:-1:-1;;;;;9578:18:0;;;;;;:7;:18;;;;;;:60;;;;9691:4;9675:22;;;;:38;;9702:10;9675:26;:38::i;:::-;9666:4;9650:22;;;;:7;:22;;;;;;;;;:63;;;;9730:44;1500:25:1;;;-1:-1:-1;;;;;9730:44:0;;;;;;;;;;1473:18:1;9730:44:0;;;;;;;9441:341;9338:444;;;;:::o;2003:189::-;2089:7;2124:12;2117:5;2109:28;;;;-1:-1:-1;;;2109:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2148:9:0;2160:5;2164:1;2160;:5;:::i;1267:136::-;1325:7;1352:43;1356:1;1359;1352:43;;;;;;;;;;;;;;;;;:3;:43::i;1080:179::-;1138:7;;1170:5;1174:1;1170;:5;:::i;:::-;1158:17;;1199:1;1194;:6;;1186:46;;;;-1:-1:-1;;;1186:46:0;;14987:2:1;1186:46:0;;;14969:21:1;15026:2;15006:18;;;14999:30;15065:29;15045:18;;;15038:57;15112:18;;1186:46:0;14785:351:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2870:127::-;2931:10;2926:3;2922:20;2919:1;2912:31;2962:4;2959:1;2952:15;2986:4;2983:1;2976:15;3002:1121;3086:6;3117:2;3160;3148:9;3139:7;3135:23;3131:32;3128:52;;;3176:1;3173;3166:12;3128:52;3216:9;3203:23;3245:18;3286:2;3278:6;3275:14;3272:34;;;3302:1;3299;3292:12;3272:34;3340:6;3329:9;3325:22;3315:32;;3385:7;3378:4;3374:2;3370:13;3366:27;3356:55;;3407:1;3404;3397:12;3356:55;3443:2;3430:16;3465:2;3461;3458:10;3455:36;;;3471:18;;:::i;:::-;3517:2;3514:1;3510:10;3549:2;3543:9;3612:2;3608:7;3603:2;3599;3595:11;3591:25;3583:6;3579:38;3667:6;3655:10;3652:22;3647:2;3635:10;3632:18;3629:46;3626:72;;;3678:18;;:::i;:::-;3714:2;3707:22;3764:18;;;3798:15;;;;-1:-1:-1;3840:11:1;;;3836:20;;;3868:19;;;3865:39;;;3900:1;3897;3890:12;3865:39;3924:11;;;;3944:148;3960:6;3955:3;3952:15;3944:148;;;4026:23;4045:3;4026:23;:::i;:::-;4014:36;;3977:12;;;;4070;;;;3944:148;;;4111:6;3002:1121;-1:-1:-1;;;;;;;;3002:1121:1:o;4128:388::-;4196:6;4204;4257:2;4245:9;4236:7;4232:23;4228:32;4225:52;;;4273:1;4270;4263:12;4225:52;4312:9;4299:23;4331:31;4356:5;4331:31;:::i;:::-;4381:5;-1:-1:-1;4438:2:1;4423:18;;4410:32;4451:33;4410:32;4451:33;:::i;:::-;4503:7;4493:17;;;4128:388;;;;;:::o;4854:356::-;5056:2;5038:21;;;5075:18;;;5068:30;5134:34;5129:2;5114:18;;5107:62;5201:2;5186:18;;4854:356::o;5567:251::-;5637:6;5690:2;5678:9;5669:7;5665:23;5661:32;5658:52;;;5706:1;5703;5696:12;5658:52;5738:9;5732:16;5757:31;5782:5;5757:31;:::i;6744:306::-;6832:6;6840;6848;6901:2;6889:9;6880:7;6876:23;6872:32;6869:52;;;6917:1;6914;6907:12;6869:52;6946:9;6940:16;6930:26;;6996:2;6985:9;6981:18;6975:25;6965:35;;7040:2;7029:9;7025:18;7019:25;7009:35;;6744:306;;;;;:::o;7055:127::-;7116:10;7111:3;7107:20;7104:1;7097:31;7147:4;7144:1;7137:15;7171:4;7168:1;7161:15;7187:168;7260:9;;;7291;;7308:15;;;7302:22;;7288:37;7278:71;;7329:18;;:::i;7360:217::-;7400:1;7426;7416:132;;7470:10;7465:3;7461:20;7458:1;7451:31;7505:4;7502:1;7495:15;7533:4;7530:1;7523:15;7416:132;-1:-1:-1;7562:9:1;;7360:217::o;7861:277::-;7928:6;7981:2;7969:9;7960:7;7956:23;7952:32;7949:52;;;7997:1;7994;7987:12;7949:52;8029:9;8023:16;8082:5;8075:13;8068:21;8061:5;8058:32;8048:60;;8104:1;8101;8094:12;8143:356;8345:2;8327:21;;;8364:18;;;8357:30;8423:34;8418:2;8403:18;;8396:62;8490:2;8475:18;;8143:356::o;8859:127::-;8920:10;8915:3;8911:20;8908:1;8901:31;8951:4;8948:1;8941:15;8975:4;8972:1;8965:15;8991:135;9030:3;9051:17;;;9048:43;;9071:18;;:::i;:::-;-1:-1:-1;9118:1:1;9107:13;;8991:135::o;9549:184::-;9619:6;9672:2;9660:9;9651:7;9647:23;9643:32;9640:52;;;9688:1;9685;9678:12;9640:52;-1:-1:-1;9711:16:1;;9549:184;-1:-1:-1;9549:184:1:o;12781:125::-;12846:9;;;12867:10;;;12864:36;;;12880:18;;:::i;13265:128::-;13332:9;;;13353:11;;;13350:37;;;13367:18;;:::i;13398:980::-;13660:4;13708:3;13697:9;13693:19;13739:6;13728:9;13721:25;13765:2;13803:6;13798:2;13787:9;13783:18;13776:34;13846:3;13841:2;13830:9;13826:18;13819:31;13870:6;13905;13899:13;13936:6;13928;13921:22;13974:3;13963:9;13959:19;13952:26;;14013:2;14005:6;14001:15;13987:29;;14034:1;14044:195;14058:6;14055:1;14052:13;14044:195;;;14123:13;;-1:-1:-1;;;;;14119:39:1;14107:52;;14214:15;;;;14179:12;;;;14155:1;14073:9;14044:195;;;-1:-1:-1;;;;;;;14295:32:1;;;;14290:2;14275:18;;14268:60;-1:-1:-1;;;14359:3:1;14344:19;14337:35;14256:3;13398:980;-1:-1:-1;;;13398:980:1:o

Swarm Source

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