ETH Price: $2,645.36 (+1.26%)

Token

PEPI (PEPI)
 

Overview

Max Total Supply

100,000,000 PEPI

Holders

475 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.593457392 PEPI

Value
$0.00
0x3fc807ce8d49cfffa2a23eb4e56fd55f0a60899a
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Pepi Meme Coin combines humor, community, and blockchain in Ethereum. It aims to embrace memes, engage the community, foster sustainability, build partnerships, and support charities. Through its values, Pepi Meme Coin entertains while contributing to Ethereum's growth.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PEPI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
Telegram: https://t.me/PepiETH
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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


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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 WETH() external pure returns (address);
    function factory() external pure returns (address);

     function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );


    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract PEPI is IERC20, Ownable {
    using SafeMath for uint256;

    using Address for address payable;
    string private constant _name = "PEPI";
    string private constant _symbol = "PEPI";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100_000_000 * 10**_decimals;
    uint256 private  _maxWallet = 400_000 * 10**_decimals;
    uint256 private  _maxBuyAmount = 400_000 * 10**_decimals;
    uint256 private  _maxSellAmount = 400_000 * 10**_decimals;
    uint256 private  _swapTH = 100_000 * 10**_decimals;
    address public Dev = 0xA480b2F32E46D0A4B148014C68f22275DEfb2CE0;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isWhiteList;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private _owner;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    bool public _AutoSwap = true;
    bool public _Launch = false;
    bool public _transfersEnabled = false;
    bool private _TokenSwap = true;
    bool private _autoLP = true;
    bool private _isSelling = false;
    
    uint256 private _swapPercent = 100;

    uint256 private _devTaxRate = 1;
    uint256 private AmountBuyRate = _devTaxRate;

    uint256 private _devTaxSellRate = 45;
    uint256 private AmountSellRate = _devTaxSellRate;

    constructor() {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        _owner = msg.sender;

        uint256 tsupply = _totalSupply;

        _balances[msg.sender] = tsupply;


        _isExcludedFromFee[_owner] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Dev] = true;
        
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }

    function getOwner() public view returns (address) {
        return owner();
    }
    
    function name() public pure returns (string memory) {
        return _name;
    }
    
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }


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

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

    function isWhitelist(address account) public view returns (bool) {
        return _isWhiteList[account];
    }

    function ViewBuyRate() public view returns (
        uint256 devBuyRate,
        uint256 totalBuyRate,
        uint256 maxWallet,
        uint256 maxBuyAmount
    ) {
        devBuyRate = _devTaxRate;
        totalBuyRate = AmountBuyRate;
        maxWallet = _maxWallet;
        maxBuyAmount = _maxBuyAmount;
    }

    function ViewSellRate() public view returns (
        uint256 devSellRate,
        uint256 totalSellRate,
        uint256 maxSellAmount
    ) {
        devSellRate = _devTaxSellRate;
        totalSellRate = AmountSellRate;
        maxSellAmount = _maxSellAmount;
    }


    function transfer(address recipient, uint256 amount) public override returns (bool) {

        if(recipient != uniswapV2Pair && recipient != owner() && !_isExcludedFromFee[recipient]){

            require(_balances[recipient] + amount <= _maxWallet, "MyToken: recipient wallet balance exceeds the maximum limit");

        }

        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "MyToken: approve from the zero address");
        require(spender != address(0), "MyToken: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {

        require(sender != address(0), "MyToken: transfer from the zero address");
        require(recipient != address(0), "MyToken: transfer to the zero address");
        require(amount > 0, "MyToken: transfer amount must be greater than zero");
        if(!_Launch){require(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient] || _isWhiteList[sender] || _isWhiteList[recipient], "we not launch yet");}
        if(!_Launch && recipient != uniswapV2Pair && sender != uniswapV2Pair) {require(_transfersEnabled, "Transfers are currently disabled");}

        bool _AutoTaxes = true;


        if (recipient == uniswapV2Pair && sender == owner()) {

            _balances[sender] -= amount;
            _balances[recipient] += amount;
            emit Transfer(sender, recipient, amount);
            return;
        }

        //sell   
        if(recipient == uniswapV2Pair && !_isExcludedFromFee[sender] && sender != owner()){

                require(amount <= _maxSellAmount, "Sell amount exceeds max limit");

                _isSelling = true;
               
                if(_AutoSwap && balanceOf(address(this)) >= _swapTH){

                    CanSwap();
                }  
        }

        //buy
        if(sender == uniswapV2Pair && !_isExcludedFromFee[recipient] && recipient != owner()){
                    
            require(amount <= _maxBuyAmount, "Buy amount exceeds max limit");
            
        }

        if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { _AutoTaxes = false; }
        if (recipient != uniswapV2Pair && sender != uniswapV2Pair) { _AutoTaxes = false; }

        if (_AutoTaxes) {

                if(!_isSelling){

                    uint256 totalTaxAmount = amount * AmountBuyRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    
                   
                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                }else{

                    uint256 totalTaxAmount = amount * AmountSellRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    

                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                    _isSelling = false;
                }
            
        }else{

                _balances[sender] = _balances[sender].sub(amount);
                _balances[recipient] = _balances[recipient].add(amount);

                emit Transfer(sender, recipient, amount);

        }
    }


    function swapTokensForEth(uint256 tokenAmount) private {

        // Set up the contract address and the token to be swapped
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        // Approve the transfer of tokens to the contract address
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // Make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }


    function CanSwap() private {

        uint256 contractTokenBalance = balanceOf(address(this));

        if(contractTokenBalance > 0) {

            if(_TokenSwap){

                if(contractTokenBalance > 0){
                    
                    uint256 caBalance = balanceOf(address(this)) * _swapPercent / 100;

                    uint256 toSwap = caBalance;

                    swapTokensForEth(toSwap);

                    uint256 receivedBalance = address(this).balance;

                    if (receivedBalance > 0) {payable(Dev).transfer(receivedBalance);}

                }else{

                    revert("No tokens available to swap");
                }

            }

        }else{

           revert("No Balance available to swap");     
           
        }
            
    }

   receive() external payable {}

    function setDevAddress(address newAddress) public onlyOwner {
        require(newAddress != address(0), "Invalid address");
        Dev = newAddress;
        _isExcludedFromFee[newAddress] = true;
    }


   function enableLaunch() external {
        _Launch = true;
        _transfersEnabled = true;
    }

    function setExcludedFromFee(address account, bool status) external onlyOwner {
        _isExcludedFromFee[account] = status;
    }

    function setWhitelist(address account, bool status) external onlyOwner {
        _isWhiteList[account] = status;
    }

    function bulkwhitelist(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isWhiteList[accounts[i]] = state;
        }
    }

    function SwapEnable(bool status) external onlyOwner {
        _AutoSwap = status;
    }

    function SetSwapPercentage(uint256 SwapPercent) external onlyOwner {
        _swapPercent = SwapPercent;
    }

    function setAutoSwap(uint256 newAutoSwap) external onlyOwner {
        require(newAutoSwap <= (totalSupply() * 1) / 100, "Invalid value: exceeds 1% of total supply");
        _swapTH = newAutoSwap * 10**_decimals;
    }

    function updateLimits(uint256 maxWallet, uint256 maxBuyAmount, uint256 maxSellAmount) external onlyOwner {
        _maxWallet = maxWallet * 10**_decimals;
        _maxBuyAmount = maxBuyAmount * 10**_decimals;
        _maxSellAmount = maxSellAmount * 10**_decimals;
    }

    function setBuyTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxRate = devTaxRate;
        AmountBuyRate = _devTaxRate;
    }


    function setSellTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxSellRate = devTaxRate;
        AmountSellRate = _devTaxSellRate;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"SwapPercent","type":"uint256"}],"name":"SetSwapPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"SwapEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ViewBuyRate","outputs":[{"internalType":"uint256","name":"devBuyRate","type":"uint256"},{"internalType":"uint256","name":"totalBuyRate","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ViewSellRate","outputs":[{"internalType":"uint256","name":"devSellRate","type":"uint256"},{"internalType":"uint256","name":"totalSellRate","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AutoSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transfersEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkwhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAutoSwap","type":"uint256"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setBuyTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setSellTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004ac565b62000022906305f5e100620004c4565b600155620000336009600a620004ac565b620000429062061a80620004c4565b600255620000536009600a620004ac565b620000629062061a80620004c4565b600355620000736009600a620004ac565b620000829062061a80620004c4565b600455620000936009600a620004ac565b620000a290620186a0620004c4565b600555600680546001600160a01b03191673a480b2f32e46d0a4b148014c68f22275defb2ce0179055600e805465ffffffffffff19166401010000011790556064600f5560016010819055601155602d60128190556013553480156200010757600080fd5b50620001133362000347565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000179573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019f9190620004de565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002139190620004de565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000261573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002879190620004de565b600a80546001600160a01b03199081166001600160a01b0393841617909155600b805433921682178155600180546000848152600c6020818152604080842085815596548916845260078252808420805460ff199081168817909155308552818520805482168817905560065490991684528084208054909916909517909755858252865292549151918252937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000509565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ee578160001904821115620003d257620003d262000397565b80851615620003e057918102915b93841c9390800290620003b2565b509250929050565b6000826200040757506001620004a6565b816200041657506000620004a6565b81600181146200042f57600281146200043a576200045a565b6001915050620004a6565b60ff8411156200044e576200044e62000397565b50506001821b620004a6565b5060208310610133831016604e8410600b84101617156200047f575081810a620004a6565b6200048b8383620003ad565b8060001904821115620004a257620004a262000397565b0290505b92915050565b6000620004bd60ff841683620003f6565b9392505050565b8082028115828204841417620004a657620004a662000397565b600060208284031215620004f157600080fd5b81516001600160a01b0381168114620004bd57600080fd5b611ffe80620005196000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063d8a0663c116100a0578063f515a55c1161006f578063f515a55c14610612578063f7de4dfd14610632578063fcd2e04914610651578063feae65e714610671578063ff5211bb146106aa57600080fd5b8063d8a0663c1461056c578063dd62ed3e1461058c578063f18b8cba146105d2578063f2fde38b146105f257600080fd5b8063a9059cbb116100dc578063a9059cbb146104c2578063c683630d146104e2578063c6da30511461051b578063d0d41fe11461054c57600080fd5b80638da5cb5b1461046a578063925542871461048857806395d89b4114610246578063a14aee61146104a257600080fd5b806336a0f8a5116101905780636612e66f1161015f5780636612e66f146103df57806370a08231146103ff578063715018a61461043557806385438bc01461044a578063893d20e81461046a57600080fd5b806336a0f8a51461034657806349bd5a5e146103665780635342acb41461038657806353d6fd59146103bf57600080fd5b80631694505e116101cc5780631694505e146102cb57806318160ddd146102eb57806323b872dd1461030a578063313ce5671461032a57600080fd5b806301e51ae81461020957806306fdde0314610246578063095ea7b3146102795780630a80c0cc146102a957600080fd5b3661020457005b600080fd5b34801561021557600080fd5b50600654610229906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025257600080fd5b5060408051808201825260048152635045504960e01b6020820152905161023d9190611a86565b34801561028557600080fd5b50610299610294366004611af9565b6106ca565b604051901515815260200161023d565b3480156102b557600080fd5b506102c96102c4366004611b25565b6106e1565b005b3480156102d757600080fd5b50600954610229906001600160a01b031681565b3480156102f757600080fd5b506001545b60405190815260200161023d565b34801561031657600080fd5b50610299610325366004611b3e565b61071e565b34801561033657600080fd5b506040516009815260200161023d565b34801561035257600080fd5b506102c9610361366004611b7f565b61076d565b34801561037257600080fd5b50600a54610229906001600160a01b031681565b34801561039257600080fd5b506102996103a1366004611bab565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156103cb57600080fd5b506102c96103da366004611bd8565b6107e7565b3480156103eb57600080fd5b506102c96103fa366004611bd8565b61083c565b34801561040b57600080fd5b506102fc61041a366004611bab565b6001600160a01b03166000908152600c602052604090205490565b34801561044157600080fd5b506102c9610891565b34801561045657600080fd5b50600e546102999062010000900460ff1681565b34801561047657600080fd5b506000546001600160a01b0316610229565b34801561049457600080fd5b50600e546102999060ff1681565b3480156104ae57600080fd5b506102c96104bd366004611c0d565b6108c7565b3480156104ce57600080fd5b506102996104dd366004611af9565b610904565b3480156104ee57600080fd5b506102996104fd366004611bab565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561052757600080fd5b506012546013546004546040805193845260208401929092529082015260600161023d565b34801561055857600080fd5b506102c9610567366004611bab565b610a03565b34801561057857600080fd5b506102c9610587366004611b25565b610aaf565b34801561059857600080fd5b506102fc6105a7366004611c28565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b3480156105de57600080fd5b506102c96105ed366004611c77565b610b76565b3480156105fe57600080fd5b506102c961060d366004611bab565b610c0c565b34801561061e57600080fd5b506102c961062d366004611b25565b610ca7565b34801561063e57600080fd5b50600e5461029990610100900460ff1681565b34801561065d57600080fd5b506102c961066c366004611b25565b610cd6565b34801561067d57600080fd5b5060105460115460025460035460408051948552602085019390935291830152606082015260800161023d565b3480156106b657600080fd5b50600e805462ffff00191662010100179055005b60006106d7338484610d0a565b5060015b92915050565b6000546001600160a01b031633146107145760405162461bcd60e51b815260040161070b90611d4e565b60405180910390fd5b6012819055601355565b6001600160a01b0383166000908152600d60209081526040808320338085529252822054610758918691610753908690611d99565b610d0a565b610763848484610e32565b5060019392505050565b6000546001600160a01b031633146107975760405162461bcd60e51b815260040161070b90611d4e565b6107a36009600a611e90565b6107ad9084611e9f565b6002556107bc6009600a611e90565b6107c69083611e9f565b6003556107d56009600a611e90565b6107df9082611e9f565b600455505050565b6000546001600160a01b031633146108115760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108bb5760405162461bcd60e51b815260040161070b90611d4e565b6108c560006116bc565b565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161070b90611d4e565b600e805460ff1916911515919091179055565b600a546000906001600160a01b0384811691161480159061093357506000546001600160a01b03848116911614155b801561095857506001600160a01b03831660009081526007602052604090205460ff16155b156109f8576002546001600160a01b0384166000908152600c6020526040902054610984908490611eb6565b11156109f85760405162461bcd60e51b815260206004820152603b60248201527f4d79546f6b656e3a20726563697069656e742077616c6c65742062616c616e6360448201527f65206578636565647320746865206d6178696d756d206c696d69740000000000606482015260840161070b565b6106d7338484610e32565b6000546001600160a01b03163314610a2d5760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b038116610a755760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161070b565b600680546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610ad95760405162461bcd60e51b815260040161070b90611d4e565b6064610ae460015490565b610aef906001611e9f565b610af99190611ec9565b811115610b5a5760405162461bcd60e51b815260206004820152602960248201527f496e76616c69642076616c75653a2065786365656473203125206f6620746f74604482015268616c20737570706c7960b81b606482015260840161070b565b610b666009600a611e90565b610b709082611e9f565b60055550565b6000546001600160a01b03163314610ba05760405162461bcd60e51b815260040161070b90611d4e565b60005b8251811015610c07578160086000858481518110610bc357610bc3611eeb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bff81611f01565b915050610ba3565b505050565b6000546001600160a01b03163314610c365760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b038116610c9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070b565b610ca4816116bc565b50565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161070b90611d4e565b600f55565b6000546001600160a01b03163314610d005760405162461bcd60e51b815260040161070b90611d4e565b6010819055601155565b6001600160a01b038316610d6f5760405162461bcd60e51b815260206004820152602660248201527f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161070b565b6001600160a01b038216610dd15760405162461bcd60e51b8152602060048201526024808201527f4d79546f6b656e3a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b606482015260840161070b565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e985760405162461bcd60e51b815260206004820152602760248201527f4d79546f6b656e3a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b606482015260840161070b565b6001600160a01b038216610efc5760405162461bcd60e51b815260206004820152602560248201527f4d79546f6b656e3a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161070b565b60008111610f675760405162461bcd60e51b815260206004820152603260248201527f4d79546f6b656e3a207472616e7366657220616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b606482015260840161070b565b600e54610100900460ff1661103b576001600160a01b03831660009081526007602052604090205460ff1680610fb557506001600160a01b03821660009081526007602052604090205460ff165b80610fd857506001600160a01b03831660009081526008602052604090205460ff165b80610ffb57506001600160a01b03821660009081526008602052604090205460ff165b61103b5760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b604482015260640161070b565b600e54610100900460ff161580156110615750600a546001600160a01b03838116911614155b801561107b5750600a546001600160a01b03848116911614155b156110d857600e5462010000900460ff166110d85760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657273206172652063757272656e746c792064697361626c6564604482015260640161070b565b600a546001906001600160a01b03848116911614801561110557506000546001600160a01b038581169116145b156111a7576001600160a01b0384166000908152600c602052604081208054849290611132908490611d99565b90915550506001600160a01b0383166000908152600c60205260408120805484929061115f908490611eb6565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611fa98339815191528460405161119991815260200190565b60405180910390a350505050565b600a546001600160a01b0384811691161480156111dd57506001600160a01b03841660009081526007602052604090205460ff16155b80156111f757506000546001600160a01b03858116911614155b156112945760045482111561124e5760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d6974000000604482015260640161070b565b600e805465ff0000000000198116650100000000001790915560ff1680156112875750600554306000908152600c602052604090205410155b156112945761129461170c565b600a546001600160a01b0385811691161480156112ca57506001600160a01b03831660009081526007602052604090205460ff16155b80156112e457506000546001600160a01b03848116911614155b1561133b5760035482111561133b5760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d697400000000604482015260640161070b565b6001600160a01b03841660009081526007602052604090205460ff168061137a57506001600160a01b03831660009081526007602052604090205460ff165b15611383575060005b600a546001600160a01b038481169116148015906113af5750600a546001600160a01b03858116911614155b156113b8575060005b801561162257600e5465010000000000900460ff166114f25760006064601154846113e39190611e9f565b6113ed9190611ec9565b905060006113fb8285611d99565b306000908152600c6020526040902054909150611418908361184a565b306000908152600c6020526040808220929092556001600160a01b0388168152205461144490856118b0565b6001600160a01b038088166000908152600c60205260408082209390935590871681522054611473908261184a565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fa9833981519152906114b59085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fa98339815191529060200160405180910390a350506116b6565b60006064601354846115049190611e9f565b61150e9190611ec9565b9050600061151c8285611d99565b306000908152600c6020526040902054909150611539908361184a565b306000908152600c6020526040808220929092556001600160a01b0388168152205461156590856118b0565b6001600160a01b038088166000908152600c60205260408082209390935590871681522054611594908261184a565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fa9833981519152906115d69085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fa98339815191529060200160405180910390a35050600e805465ff0000000000191690556116b6565b6001600160a01b0384166000908152600c602052604090205461164590836118b0565b6001600160a01b038086166000908152600c60205260408082209390935590851681522054611674908361184a565b6001600160a01b038085166000818152600c60205260409081902093909355915190861690600080516020611fa9833981519152906111999086815260200190565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b306000908152600c6020526040902054801561180257600e546301000000900460ff1615610ca45780156117ba57600f54306000908152600c6020526040812054909160649161175c9190611e9f565b6117669190611ec9565b905080611772816118f2565b4780156116b6576006546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156117b3573d6000803e3d6000fd5b5050505050565b60405162461bcd60e51b815260206004820152601b60248201527f4e6f20746f6b656e7320617661696c61626c6520746f20737761700000000000604482015260640161070b565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f2042616c616e636520617661696c61626c6520746f207377617000000000604482015260640161070b565b6000806118578385611eb6565b9050838110156118a95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070b565b9392505050565b60006118a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4c565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061192757611927611eeb565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a49190611f1a565b816001815181106119b7576119b7611eeb565b6001600160a01b0392831660209182029290920101526009546119dd9130911684610d0a565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a16908590600090869030904290600401611f37565b600060405180830381600087803b158015611a3057600080fd5b505af1158015611a44573d6000803e3d6000fd5b505050505050565b60008184841115611a705760405162461bcd60e51b815260040161070b9190611a86565b506000611a7d8486611d99565b95945050505050565b600060208083528351808285015260005b81811015611ab357858101830151858201604001528201611a97565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ca457600080fd5b8035611af481611ad4565b919050565b60008060408385031215611b0c57600080fd5b8235611b1781611ad4565b946020939093013593505050565b600060208284031215611b3757600080fd5b5035919050565b600080600060608486031215611b5357600080fd5b8335611b5e81611ad4565b92506020840135611b6e81611ad4565b929592945050506040919091013590565b600080600060608486031215611b9457600080fd5b505081359360208301359350604090920135919050565b600060208284031215611bbd57600080fd5b81356118a981611ad4565b80358015158114611af457600080fd5b60008060408385031215611beb57600080fd5b8235611bf681611ad4565b9150611c0460208401611bc8565b90509250929050565b600060208284031215611c1f57600080fd5b6118a982611bc8565b60008060408385031215611c3b57600080fd5b8235611c4681611ad4565b91506020830135611c5681611ad4565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611c8a57600080fd5b823567ffffffffffffffff80821115611ca257600080fd5b818501915085601f830112611cb657600080fd5b8135602082821115611cca57611cca611c61565b8160051b604051601f19603f83011681018181108682111715611cef57611cef611c61565b604052928352818301935084810182019289841115611d0d57600080fd5b948201945b83861015611d3257611d2386611ae9565b85529482019493820193611d12565b9650611d419050878201611bc8565b9450505050509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156106db576106db611d83565b600181815b80851115611de7578160001904821115611dcd57611dcd611d83565b80851615611dda57918102915b93841c9390800290611db1565b509250929050565b600082611dfe575060016106db565b81611e0b575060006106db565b8160018114611e215760028114611e2b57611e47565b60019150506106db565b60ff841115611e3c57611e3c611d83565b50506001821b6106db565b5060208310610133831016604e8410600b8410161715611e6a575081810a6106db565b611e748383611dac565b8060001904821115611e8857611e88611d83565b029392505050565b60006118a960ff841683611def565b80820281158282048414176106db576106db611d83565b808201808211156106db576106db611d83565b600082611ee657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611f1357611f13611d83565b5060010190565b600060208284031215611f2c57600080fd5b81516118a981611ad4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f875784516001600160a01b031683529383019391830191600101611f62565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201eb19cf707f3fe49c30b48d8210d144b4829680d0272ba568ae867ab74f2c54c64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063d8a0663c116100a0578063f515a55c1161006f578063f515a55c14610612578063f7de4dfd14610632578063fcd2e04914610651578063feae65e714610671578063ff5211bb146106aa57600080fd5b8063d8a0663c1461056c578063dd62ed3e1461058c578063f18b8cba146105d2578063f2fde38b146105f257600080fd5b8063a9059cbb116100dc578063a9059cbb146104c2578063c683630d146104e2578063c6da30511461051b578063d0d41fe11461054c57600080fd5b80638da5cb5b1461046a578063925542871461048857806395d89b4114610246578063a14aee61146104a257600080fd5b806336a0f8a5116101905780636612e66f1161015f5780636612e66f146103df57806370a08231146103ff578063715018a61461043557806385438bc01461044a578063893d20e81461046a57600080fd5b806336a0f8a51461034657806349bd5a5e146103665780635342acb41461038657806353d6fd59146103bf57600080fd5b80631694505e116101cc5780631694505e146102cb57806318160ddd146102eb57806323b872dd1461030a578063313ce5671461032a57600080fd5b806301e51ae81461020957806306fdde0314610246578063095ea7b3146102795780630a80c0cc146102a957600080fd5b3661020457005b600080fd5b34801561021557600080fd5b50600654610229906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025257600080fd5b5060408051808201825260048152635045504960e01b6020820152905161023d9190611a86565b34801561028557600080fd5b50610299610294366004611af9565b6106ca565b604051901515815260200161023d565b3480156102b557600080fd5b506102c96102c4366004611b25565b6106e1565b005b3480156102d757600080fd5b50600954610229906001600160a01b031681565b3480156102f757600080fd5b506001545b60405190815260200161023d565b34801561031657600080fd5b50610299610325366004611b3e565b61071e565b34801561033657600080fd5b506040516009815260200161023d565b34801561035257600080fd5b506102c9610361366004611b7f565b61076d565b34801561037257600080fd5b50600a54610229906001600160a01b031681565b34801561039257600080fd5b506102996103a1366004611bab565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156103cb57600080fd5b506102c96103da366004611bd8565b6107e7565b3480156103eb57600080fd5b506102c96103fa366004611bd8565b61083c565b34801561040b57600080fd5b506102fc61041a366004611bab565b6001600160a01b03166000908152600c602052604090205490565b34801561044157600080fd5b506102c9610891565b34801561045657600080fd5b50600e546102999062010000900460ff1681565b34801561047657600080fd5b506000546001600160a01b0316610229565b34801561049457600080fd5b50600e546102999060ff1681565b3480156104ae57600080fd5b506102c96104bd366004611c0d565b6108c7565b3480156104ce57600080fd5b506102996104dd366004611af9565b610904565b3480156104ee57600080fd5b506102996104fd366004611bab565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561052757600080fd5b506012546013546004546040805193845260208401929092529082015260600161023d565b34801561055857600080fd5b506102c9610567366004611bab565b610a03565b34801561057857600080fd5b506102c9610587366004611b25565b610aaf565b34801561059857600080fd5b506102fc6105a7366004611c28565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b3480156105de57600080fd5b506102c96105ed366004611c77565b610b76565b3480156105fe57600080fd5b506102c961060d366004611bab565b610c0c565b34801561061e57600080fd5b506102c961062d366004611b25565b610ca7565b34801561063e57600080fd5b50600e5461029990610100900460ff1681565b34801561065d57600080fd5b506102c961066c366004611b25565b610cd6565b34801561067d57600080fd5b5060105460115460025460035460408051948552602085019390935291830152606082015260800161023d565b3480156106b657600080fd5b50600e805462ffff00191662010100179055005b60006106d7338484610d0a565b5060015b92915050565b6000546001600160a01b031633146107145760405162461bcd60e51b815260040161070b90611d4e565b60405180910390fd5b6012819055601355565b6001600160a01b0383166000908152600d60209081526040808320338085529252822054610758918691610753908690611d99565b610d0a565b610763848484610e32565b5060019392505050565b6000546001600160a01b031633146107975760405162461bcd60e51b815260040161070b90611d4e565b6107a36009600a611e90565b6107ad9084611e9f565b6002556107bc6009600a611e90565b6107c69083611e9f565b6003556107d56009600a611e90565b6107df9082611e9f565b600455505050565b6000546001600160a01b031633146108115760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108bb5760405162461bcd60e51b815260040161070b90611d4e565b6108c560006116bc565b565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161070b90611d4e565b600e805460ff1916911515919091179055565b600a546000906001600160a01b0384811691161480159061093357506000546001600160a01b03848116911614155b801561095857506001600160a01b03831660009081526007602052604090205460ff16155b156109f8576002546001600160a01b0384166000908152600c6020526040902054610984908490611eb6565b11156109f85760405162461bcd60e51b815260206004820152603b60248201527f4d79546f6b656e3a20726563697069656e742077616c6c65742062616c616e6360448201527f65206578636565647320746865206d6178696d756d206c696d69740000000000606482015260840161070b565b6106d7338484610e32565b6000546001600160a01b03163314610a2d5760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b038116610a755760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161070b565b600680546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610ad95760405162461bcd60e51b815260040161070b90611d4e565b6064610ae460015490565b610aef906001611e9f565b610af99190611ec9565b811115610b5a5760405162461bcd60e51b815260206004820152602960248201527f496e76616c69642076616c75653a2065786365656473203125206f6620746f74604482015268616c20737570706c7960b81b606482015260840161070b565b610b666009600a611e90565b610b709082611e9f565b60055550565b6000546001600160a01b03163314610ba05760405162461bcd60e51b815260040161070b90611d4e565b60005b8251811015610c07578160086000858481518110610bc357610bc3611eeb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bff81611f01565b915050610ba3565b505050565b6000546001600160a01b03163314610c365760405162461bcd60e51b815260040161070b90611d4e565b6001600160a01b038116610c9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070b565b610ca4816116bc565b50565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161070b90611d4e565b600f55565b6000546001600160a01b03163314610d005760405162461bcd60e51b815260040161070b90611d4e565b6010819055601155565b6001600160a01b038316610d6f5760405162461bcd60e51b815260206004820152602660248201527f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161070b565b6001600160a01b038216610dd15760405162461bcd60e51b8152602060048201526024808201527f4d79546f6b656e3a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b606482015260840161070b565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e985760405162461bcd60e51b815260206004820152602760248201527f4d79546f6b656e3a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b606482015260840161070b565b6001600160a01b038216610efc5760405162461bcd60e51b815260206004820152602560248201527f4d79546f6b656e3a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161070b565b60008111610f675760405162461bcd60e51b815260206004820152603260248201527f4d79546f6b656e3a207472616e7366657220616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b606482015260840161070b565b600e54610100900460ff1661103b576001600160a01b03831660009081526007602052604090205460ff1680610fb557506001600160a01b03821660009081526007602052604090205460ff165b80610fd857506001600160a01b03831660009081526008602052604090205460ff165b80610ffb57506001600160a01b03821660009081526008602052604090205460ff165b61103b5760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b604482015260640161070b565b600e54610100900460ff161580156110615750600a546001600160a01b03838116911614155b801561107b5750600a546001600160a01b03848116911614155b156110d857600e5462010000900460ff166110d85760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657273206172652063757272656e746c792064697361626c6564604482015260640161070b565b600a546001906001600160a01b03848116911614801561110557506000546001600160a01b038581169116145b156111a7576001600160a01b0384166000908152600c602052604081208054849290611132908490611d99565b90915550506001600160a01b0383166000908152600c60205260408120805484929061115f908490611eb6565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611fa98339815191528460405161119991815260200190565b60405180910390a350505050565b600a546001600160a01b0384811691161480156111dd57506001600160a01b03841660009081526007602052604090205460ff16155b80156111f757506000546001600160a01b03858116911614155b156112945760045482111561124e5760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d6974000000604482015260640161070b565b600e805465ff0000000000198116650100000000001790915560ff1680156112875750600554306000908152600c602052604090205410155b156112945761129461170c565b600a546001600160a01b0385811691161480156112ca57506001600160a01b03831660009081526007602052604090205460ff16155b80156112e457506000546001600160a01b03848116911614155b1561133b5760035482111561133b5760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d697400000000604482015260640161070b565b6001600160a01b03841660009081526007602052604090205460ff168061137a57506001600160a01b03831660009081526007602052604090205460ff165b15611383575060005b600a546001600160a01b038481169116148015906113af5750600a546001600160a01b03858116911614155b156113b8575060005b801561162257600e5465010000000000900460ff166114f25760006064601154846113e39190611e9f565b6113ed9190611ec9565b905060006113fb8285611d99565b306000908152600c6020526040902054909150611418908361184a565b306000908152600c6020526040808220929092556001600160a01b0388168152205461144490856118b0565b6001600160a01b038088166000908152600c60205260408082209390935590871681522054611473908261184a565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fa9833981519152906114b59085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fa98339815191529060200160405180910390a350506116b6565b60006064601354846115049190611e9f565b61150e9190611ec9565b9050600061151c8285611d99565b306000908152600c6020526040902054909150611539908361184a565b306000908152600c6020526040808220929092556001600160a01b0388168152205461156590856118b0565b6001600160a01b038088166000908152600c60205260408082209390935590871681522054611594908261184a565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fa9833981519152906115d69085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fa98339815191529060200160405180910390a35050600e805465ff0000000000191690556116b6565b6001600160a01b0384166000908152600c602052604090205461164590836118b0565b6001600160a01b038086166000908152600c60205260408082209390935590851681522054611674908361184a565b6001600160a01b038085166000818152600c60205260409081902093909355915190861690600080516020611fa9833981519152906111999086815260200190565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b306000908152600c6020526040902054801561180257600e546301000000900460ff1615610ca45780156117ba57600f54306000908152600c6020526040812054909160649161175c9190611e9f565b6117669190611ec9565b905080611772816118f2565b4780156116b6576006546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156117b3573d6000803e3d6000fd5b5050505050565b60405162461bcd60e51b815260206004820152601b60248201527f4e6f20746f6b656e7320617661696c61626c6520746f20737761700000000000604482015260640161070b565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f2042616c616e636520617661696c61626c6520746f207377617000000000604482015260640161070b565b6000806118578385611eb6565b9050838110156118a95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070b565b9392505050565b60006118a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4c565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061192757611927611eeb565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a49190611f1a565b816001815181106119b7576119b7611eeb565b6001600160a01b0392831660209182029290920101526009546119dd9130911684610d0a565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a16908590600090869030904290600401611f37565b600060405180830381600087803b158015611a3057600080fd5b505af1158015611a44573d6000803e3d6000fd5b505050505050565b60008184841115611a705760405162461bcd60e51b815260040161070b9190611a86565b506000611a7d8486611d99565b95945050505050565b600060208083528351808285015260005b81811015611ab357858101830151858201604001528201611a97565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ca457600080fd5b8035611af481611ad4565b919050565b60008060408385031215611b0c57600080fd5b8235611b1781611ad4565b946020939093013593505050565b600060208284031215611b3757600080fd5b5035919050565b600080600060608486031215611b5357600080fd5b8335611b5e81611ad4565b92506020840135611b6e81611ad4565b929592945050506040919091013590565b600080600060608486031215611b9457600080fd5b505081359360208301359350604090920135919050565b600060208284031215611bbd57600080fd5b81356118a981611ad4565b80358015158114611af457600080fd5b60008060408385031215611beb57600080fd5b8235611bf681611ad4565b9150611c0460208401611bc8565b90509250929050565b600060208284031215611c1f57600080fd5b6118a982611bc8565b60008060408385031215611c3b57600080fd5b8235611c4681611ad4565b91506020830135611c5681611ad4565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611c8a57600080fd5b823567ffffffffffffffff80821115611ca257600080fd5b818501915085601f830112611cb657600080fd5b8135602082821115611cca57611cca611c61565b8160051b604051601f19603f83011681018181108682111715611cef57611cef611c61565b604052928352818301935084810182019289841115611d0d57600080fd5b948201945b83861015611d3257611d2386611ae9565b85529482019493820193611d12565b9650611d419050878201611bc8565b9450505050509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156106db576106db611d83565b600181815b80851115611de7578160001904821115611dcd57611dcd611d83565b80851615611dda57918102915b93841c9390800290611db1565b509250929050565b600082611dfe575060016106db565b81611e0b575060006106db565b8160018114611e215760028114611e2b57611e47565b60019150506106db565b60ff841115611e3c57611e3c611d83565b50506001821b6106db565b5060208310610133831016604e8410600b8410161715611e6a575081810a6106db565b611e748383611dac565b8060001904821115611e8857611e88611d83565b029392505050565b60006118a960ff841683611def565b80820281158282048414176106db576106db611d83565b808201808211156106db576106db611d83565b600082611ee657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611f1357611f13611d83565b5060010190565b600060208284031215611f2c57600080fd5b81516118a981611ad4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f875784516001600160a01b031683529383019391830191600101611f62565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201eb19cf707f3fe49c30b48d8210d144b4829680d0272ba568ae867ab74f2c54c64736f6c63430008120033

Deployed Bytecode Sourcemap

4526:11684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5085:63;;;;;;;;;;-1:-1:-1;5085:63:0;;;;-1:-1:-1;;;;;5085:63:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5085:63:0;;;;;;;;6725:83;;;;;;;;;;-1:-1:-1;6795:5:0;;;;;;;;;;;-1:-1:-1;;;6795:5:0;;;;6725:83;;;;6795:5;6725:83;:::i;8695:159::-;;;;;;;;;;-1:-1:-1;8695:159:0;;;;;:::i;:::-;;:::i;:::-;;;1535:14:1;;1528:22;1510:41;;1498:2;1483:18;8695:159:0;1370:187:1;16051:154:0;;;;;;;;;;-1:-1:-1;16051:154:0;;;;;:::i;:::-;;:::i;:::-;;5265:41;;;;;;;;;;-1:-1:-1;5265:41:0;;;;-1:-1:-1;;;;;5265:41:0;;;7006:100;;;;;;;;;;-1:-1:-1;7086:12:0;;7006:100;;;2127:25:1;;;2115:2;2100:18;7006:100:0;1981:177:1;8862:262:0;;;;;;;;;;-1:-1:-1;8862:262:0;;;;;:::i;:::-;;:::i;6915:83::-;;;;;;;;;;-1:-1:-1;6915:83:0;;4768:1;2766:36:1;;2754:2;2739:18;6915:83:0;2624:184:1;15615:274:0;;;;;;;;;;-1:-1:-1;15615:274:0;;;;;:::i;:::-;;:::i;5313:28::-;;;;;;;;;;-1:-1:-1;5313:28:0;;;;-1:-1:-1;;;;;5313:28:0;;;7243:124;;;;;;;;;;-1:-1:-1;7243:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;7332:27:0;7308:4;7332:27;;;:18;:27;;;;;;;;;7243:124;14830:120;;;;;;;;;;-1:-1:-1;14830:120:0;;;;;:::i;:::-;;:::i;14690:132::-;;;;;;;;;;-1:-1:-1;14690:132:0;;;;;:::i;:::-;;:::i;7116:119::-;;;;;;;;;;-1:-1:-1;7116:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7209:18:0;7182:7;7209:18;;;:9;:18;;;;;;;7116:119;2714:94;;;;;;;;;;;;;:::i;5577:37::-;;;;;;;;;;-1:-1:-1;5577:37:0;;;;;;;;;;;6630:83;;;;;;;;;;-1:-1:-1;6671:7:0;2564:6;-1:-1:-1;;;;;2564:6:0;6630:83;;5508:28;;;;;;;;;;-1:-1:-1;5508:28:0;;;;;;;;15168:89;;;;;;;;;;-1:-1:-1;15168:89:0;;;;;:::i;:::-;;:::i;8113:423::-;;;;;;;;;;-1:-1:-1;8113:423:0;;;;;:::i;:::-;;:::i;7375:112::-;;;;;;;;;;-1:-1:-1;7375:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;7458:21:0;7434:4;7458:21;;;:12;:21;;;;;;;;;7375:112;7827:276;;;;;;;;;;-1:-1:-1;7998:15:0;;8040:14;;8081;;7827:276;;;4258:25:1;;;4314:2;4299:18;;4292:34;;;;4342:18;;;4335:34;4246:2;4231:18;7827:276:0;4056:319:1;14366:206:0;;;;;;;;;;-1:-1:-1;14366:206:0;;;;;:::i;:::-;;:::i;15385:222::-;;;;;;;;;;-1:-1:-1;15385:222:0;;;;;:::i;:::-;;:::i;8544:143::-;;;;;;;;;;-1:-1:-1;8544:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8652:18:0;;;8625:7;8652:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8544:143;14958:202;;;;;;;;;;-1:-1:-1;14958:202:0;;;;;:::i;:::-;;:::i;2816:192::-;;;;;;;;;;-1:-1:-1;2816:192:0;;;;;:::i;:::-;;:::i;15265:112::-;;;;;;;;;;-1:-1:-1;15265:112:0;;;;;:::i;:::-;;:::i;5543:27::-;;;;;;;;;;-1:-1:-1;5543:27:0;;;;;;;;;;;15897:144;;;;;;;;;;-1:-1:-1;15897:144:0;;;;;:::i;:::-;;:::i;7495:324::-;;;;;;;;;;-1:-1:-1;7689:11:0;;7726:13;;7762:10;;7798:13;;7495:324;;;6332:25:1;;;6388:2;6373:18;;6366:34;;;;6416:18;;;6409:34;6474:2;6459:18;;6452:34;6319:3;6304:19;7495:324:0;6101:391:1;14581:101:0;;;;;;;;;;-1:-1:-1;14625:7:0;:14;;-1:-1:-1;;14650:24:0;;;;;16051:154;8695:159;8770:4;8787:37;8796:10;8808:7;8817:6;8787:8;:37::i;:::-;-1:-1:-1;8842:4:0;8695:159;;;;;:::o;16051:154::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;;;;;;;;;16126:15:::1;:28:::0;;;16165:14:::1;:32:::0;16051:154::o;8862:262::-;-1:-1:-1;;;;;9006:19:0;;8960:4;9006:19;;;:11;:19;;;;;;;;8994:10;9006:31;;;;;;;;8977:70;;8986:6;;9006:40;;9040:6;;9006:40;:::i;:::-;8977:8;:70::i;:::-;9058:36;9068:6;9076:9;9087:6;9058:9;:36::i;:::-;-1:-1:-1;9112:4:0;8862:262;;;;;:::o;15615:274::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;15756:13:::1;4768:1;15756:2;:13;:::i;:::-;15744:25;::::0;:9;:25:::1;:::i;:::-;15731:10;:38:::0;15811:13:::1;4768:1;15811:2;:13;:::i;:::-;15796:28;::::0;:12;:28:::1;:::i;:::-;15780:13;:44:::0;15868:13:::1;4768:1;15868:2;:13;:::i;:::-;15852:29;::::0;:13;:29:::1;:::i;:::-;15835:14;:46:::0;-1:-1:-1;;;15615:274:0:o;14830:120::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14912:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:30;;-1:-1:-1;;14912:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14830:120::o;14690:132::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14778:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:36;;-1:-1:-1;;14778:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14690:132::o;2714:94::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;2779:21:::1;2797:1;2779:9;:21::i;:::-;2714:94::o:0;15168:89::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;15231:9:::1;:18:::0;;-1:-1:-1;;15231:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15168:89::o;8113:423::-;8226:13;;8191:4;;-1:-1:-1;;;;;8213:26:0;;;8226:13;;8213:26;;;;:50;;-1:-1:-1;2537:7:0;2564:6;-1:-1:-1;;;;;8243:20:0;;;2564:6;;8243:20;;8213:50;:84;;;;-1:-1:-1;;;;;;8268:29:0;;;;;;:18;:29;;;;;;;;8267:30;8213:84;8210:234;;;8356:10;;-1:-1:-1;;;;;8323:20:0;;;;;;:9;:20;;;;;;:29;;8346:6;;8323:29;:::i;:::-;:43;;8315:115;;;;-1:-1:-1;;;8315:115:0;;9011:2:1;8315:115:0;;;8993:21:1;9050:2;9030:18;;;9023:30;9089:34;9069:18;;;9062:62;9160:29;9140:18;;;9133:57;9207:19;;8315:115:0;8809:423:1;8315:115:0;8456:40;8466:10;8478:9;8489:6;8456:9;:40::i;14366:206::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14445:24:0;::::1;14437:52;;;::::0;-1:-1:-1;;;14437:52:0;;9439:2:1;14437:52:0::1;::::0;::::1;9421:21:1::0;9478:2;9458:18;;;9451:30;-1:-1:-1;;;9497:18:1;;;9490:45;9552:18;;14437:52:0::1;9237:339:1::0;14437:52:0::1;14500:3;:16:::0;;-1:-1:-1;;;;;14500:16:0;;::::1;-1:-1:-1::0;;;;;;14500:16:0;;::::1;::::0;::::1;::::0;;:3:::1;14527:30:::0;;;:18:::1;:30;::::0;;;;:37;;-1:-1:-1;;14527:37:0::1;14500:16:::0;14527:37:::1;::::0;;14366:206::o;15385:222::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;15502:3:::1;15481:13;7086:12:::0;;;7006:100;15481:13:::1;:17;::::0;15497:1:::1;15481:17;:::i;:::-;15480:25;;;;:::i;:::-;15465:11;:40;;15457:94;;;::::0;-1:-1:-1;;;15457:94:0;;10005:2:1;15457:94:0::1;::::0;::::1;9987:21:1::0;10044:2;10024:18;;;10017:30;10083:34;10063:18;;;10056:62;-1:-1:-1;;;10134:18:1;;;10127:39;10183:19;;15457:94:0::1;9803:405:1::0;15457:94:0::1;15586:13;4768:1;15586:2;:13;:::i;:::-;15572:27;::::0;:11;:27:::1;:::i;:::-;15562:7;:37:::0;-1:-1:-1;15385:222:0:o;14958:202::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;15053:9:::1;15049:104;15072:8;:15;15068:1;:19;15049:104;;;15136:5;15108:12;:25;15121:8;15130:1;15121:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15108:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15108:25:0;:33;;-1:-1:-1;;15108:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15089:3;::::1;::::0;::::1;:::i;:::-;;;;15049:104;;;;14958:202:::0;;:::o;2816:192::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2905:22:0;::::1;2897:73;;;::::0;-1:-1:-1;;;2897:73:0;;10687:2:1;2897:73:0::1;::::0;::::1;10669:21:1::0;10726:2;10706:18;;;10699:30;10765:34;10745:18;;;10738:62;-1:-1:-1;;;10816:18:1;;;10809:36;10862:19;;2897:73:0::1;10485:402:1::0;2897:73:0::1;2981:19;2991:8;2981:9;:19::i;:::-;2816:192:::0;:::o;15265:112::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;15343:12:::1;:26:::0;15265:112::o;15897:144::-;2537:7;2564:6;-1:-1:-1;;;;;2564:6:0;894:10;2626:23;2618:68;;;;-1:-1:-1;;;2618:68:0;;;;;;;:::i;:::-;15971:11:::1;:24:::0;;;16006:13:::1;:27:::0;15897:144::o;9132:341::-;-1:-1:-1;;;;;9225:19:0;;9217:70;;;;-1:-1:-1;;;9217:70:0;;11094:2:1;9217:70:0;;;11076:21:1;11133:2;11113:18;;;11106:30;11172:34;11152:18;;;11145:62;-1:-1:-1;;;11223:18:1;;;11216:36;11269:19;;9217:70:0;10892:402:1;9217:70:0;-1:-1:-1;;;;;9306:21:0;;9298:70;;;;-1:-1:-1;;;9298:70:0;;11501:2:1;9298:70:0;;;11483:21:1;11540:2;11520:18;;;11513:30;11579:34;11559:18;;;11552:62;-1:-1:-1;;;11630:18:1;;;11623:34;11674:19;;9298:70:0;11299:400:1;9298:70:0;-1:-1:-1;;;;;9381:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9433:32;;2127:25:1;;;9433:32:0;;2100:18:1;9433:32:0;;;;;;;9132:341;;;:::o;9481:3319::-;-1:-1:-1;;;;;9580:20:0;;9572:72;;;;-1:-1:-1;;;9572:72:0;;11906:2:1;9572:72:0;;;11888:21:1;11945:2;11925:18;;;11918:30;11984:34;11964:18;;;11957:62;-1:-1:-1;;;12035:18:1;;;12028:37;12082:19;;9572:72:0;11704:403:1;9572:72:0;-1:-1:-1;;;;;9663:23:0;;9655:73;;;;-1:-1:-1;;;9655:73:0;;12314:2:1;9655:73:0;;;12296:21:1;12353:2;12333:18;;;12326:30;12392:34;12372:18;;;12365:62;-1:-1:-1;;;12443:18:1;;;12436:35;12488:19;;9655:73:0;12112:401:1;9655:73:0;9756:1;9747:6;:10;9739:73;;;;-1:-1:-1;;;9739:73:0;;12720:2:1;9739:73:0;;;12702:21:1;12759:2;12739:18;;;12732:30;12798:34;12778:18;;;12771:62;-1:-1:-1;;;12849:18:1;;;12842:48;12907:19;;9739:73:0;12518:414:1;9739:73:0;9827:7;;;;;;;9823:155;;-1:-1:-1;;;;;9844:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;9874:29:0;;;;;;:18;:29;;;;;;;;9844:59;:83;;;-1:-1:-1;;;;;;9907:20:0;;;;;;:12;:20;;;;;;;;9844:83;:110;;;-1:-1:-1;;;;;;9931:23:0;;;;;;:12;:23;;;;;;;;9844:110;9836:140;;;;-1:-1:-1;;;9836:140:0;;13139:2:1;9836:140:0;;;13121:21:1;13178:2;13158:18;;;13151:30;-1:-1:-1;;;13197:18:1;;;13190:47;13254:18;;9836:140:0;12937:341:1;9836:140:0;9992:7;;;;;;;9991:8;:38;;;;-1:-1:-1;10016:13:0;;-1:-1:-1;;;;;10003:26:0;;;10016:13;;10003:26;;9991:38;:65;;;;-1:-1:-1;10043:13:0;;-1:-1:-1;;;;;10033:23:0;;;10043:13;;10033:23;;9991:65;9988:135;;;10067:17;;;;;;;10059:62;;;;-1:-1:-1;;;10059:62:0;;13485:2:1;10059:62:0;;;13467:21:1;;;13504:18;;;13497:30;13563:34;13543:18;;;13536:62;13615:18;;10059:62:0;13283:356:1;10059:62:0;10189:13;;10153:4;;-1:-1:-1;;;;;10176:26:0;;;10189:13;;10176:26;:47;;;;-1:-1:-1;2537:7:0;2564:6;-1:-1:-1;;;;;10206:17:0;;;2564:6;;10206:17;10176:47;10172:230;;;-1:-1:-1;;;;;10242:17:0;;;;;;:9;:17;;;;;:27;;10263:6;;10242:17;:27;;10263:6;;10242:27;:::i;:::-;;;;-1:-1:-1;;;;;;;10284:20:0;;;;;;:9;:20;;;;;:30;;10308:6;;10284:20;:30;;10308:6;;10284:30;:::i;:::-;;;;;;;;10351:9;-1:-1:-1;;;;;10334:35:0;10343:6;-1:-1:-1;;;;;10334:35:0;-1:-1:-1;;;;;;;;;;;10362:6:0;10334:35;;;;2127:25:1;;2115:2;2100:18;;1981:177;10334:35:0;;;;;;;;10384:7;9481:3319;;;:::o;10172:230::-;10449:13;;-1:-1:-1;;;;;10436:26:0;;;10449:13;;10436:26;:57;;;;-1:-1:-1;;;;;;10467:26:0;;;;;;:18;:26;;;;;;;;10466:27;10436:57;:78;;;;-1:-1:-1;2537:7:0;2564:6;-1:-1:-1;;;;;10497:17:0;;;2564:6;;10497:17;;10436:78;10433:362;;;10554:14;;10544:6;:24;;10536:66;;;;-1:-1:-1;;;10536:66:0;;13846:2:1;10536:66:0;;;13828:21:1;13885:2;13865:18;;;13858:30;13924:31;13904:18;;;13897:59;13973:18;;10536:66:0;13644:353:1;10536:66:0;10623:10;:17;;-1:-1:-1;;10623:17:0;;;;;;;;10679:9;:48;;;;-1:-1:-1;10720:7:0;;10710:4;7182:7;7209:18;;;:9;:18;;;;;;10692:35;;10679:48;10676:106;;;10753:9;:7;:9::i;:::-;10835:13;;-1:-1:-1;;;;;10825:23:0;;;10835:13;;10825:23;:57;;;;-1:-1:-1;;;;;;10853:29:0;;;;;;:18;:29;;;;;;;;10852:30;10825:57;:81;;;;-1:-1:-1;2537:7:0;2564:6;-1:-1:-1;;;;;10886:20:0;;;2564:6;;10886:20;;10825:81;10822:212;;;10962:13;;10952:6;:23;;10944:64;;;;-1:-1:-1;;;10944:64:0;;14204:2:1;10944:64:0;;;14186:21:1;14243:2;14223:18;;;14216:30;14282;14262:18;;;14255:58;14330:18;;10944:64:0;14002:352:1;10944:64:0;-1:-1:-1;;;;;11050:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;11080:29:0;;;;;;:18;:29;;;;;;;;11050:59;11046:88;;;-1:-1:-1;11126:5:0;11046:88;11161:13;;-1:-1:-1;;;;;11148:26:0;;;11161:13;;11148:26;;;;:53;;-1:-1:-1;11188:13:0;;-1:-1:-1;;;;;11178:23:0;;;11188:13;;11178:23;;11148:53;11144:82;;;-1:-1:-1;11218:5:0;11144:82;11242:10;11238:1555;;;11279:10;;;;;;;11275:1270;;11315:22;11365:3;11349:13;;11340:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;11315:53;-1:-1:-1;11391:22:0;11416:23;11315:53;11416:6;:23;:::i;:::-;11550:4;11532:24;;;;:9;:24;;;;;;11391:48;;-1:-1:-1;11532:44:0;;11561:14;11532:28;:44::i;:::-;11523:4;11505:24;;;;:9;:24;;;;;;:71;;;;-1:-1:-1;;;;;11619:17:0;;;;;;:29;;11641:6;11619:21;:29::i;:::-;-1:-1:-1;;;;;11599:17:0;;;;;;;:9;:17;;;;;;:49;;;;11694:20;;;;;;;:40;;11719:14;11694:24;:40::i;:::-;-1:-1:-1;;;;;11671:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11764:43;;;;;;-1:-1:-1;;;;;;;;;;;11764:43:0;;;11792:14;2127:25:1;;2115:2;2100:18;;1981:177;11764:43:0;;;;;;;;11835:47;;2127:25:1;;;11860:4:0;;-1:-1:-1;;;;;11835:47:0;;;-1:-1:-1;;;;;;;;;;;11835:47:0;2115:2:1;2100:18;11835:47:0;;;;;;;11290:614;;11238:1555;;11275:1270;11933:22;11984:3;11967:14;;11958:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11933:54;-1:-1:-1;12010:22:0;12035:23;11933:54;12035:6;:23;:::i;:::-;12150:4;12132:24;;;;:9;:24;;;;;;12010:48;;-1:-1:-1;12132:44:0;;12161:14;12132:28;:44::i;:::-;12123:4;12105:24;;;;:9;:24;;;;;;:71;;;;-1:-1:-1;;;;;12219:17:0;;;;;;:29;;12241:6;12219:21;:29::i;:::-;-1:-1:-1;;;;;12199:17:0;;;;;;;:9;:17;;;;;;:49;;;;12294:20;;;;;;;:40;;12319:14;12294:24;:40::i;:::-;-1:-1:-1;;;;;12271:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12364:43;;;;;;-1:-1:-1;;;;;;;;;;;12364:43:0;;;12392:14;2127:25:1;;2115:2;2100:18;;1981:177;12364:43:0;;;;;;;;12435:47;;2127:25:1;;;12460:4:0;;-1:-1:-1;;;;;12435:47:0;;;-1:-1:-1;;;;;;;;;;;12435:47:0;2115:2:1;2100:18;12435:47:0;;;;;;;-1:-1:-1;;12507:10:0;:18;;-1:-1:-1;;12507:18:0;;;11238:1555;;;-1:-1:-1;;;;;12615:17:0;;;;;;:9;:17;;;;;;:29;;12637:6;12615:21;:29::i;:::-;-1:-1:-1;;;;;12595:17:0;;;;;;;:9;:17;;;;;;:49;;;;12686:20;;;;;;;:32;;12711:6;12686:24;:32::i;:::-;-1:-1:-1;;;;;12663:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12744:35;;;;;;-1:-1:-1;;;;;;;;;;;12744:35:0;;;12772:6;2127:25:1;;2115:2;2100:18;;1981:177;11238:1555:0;9559:3241;9481:3319;;;:::o;3016:173::-;3072:16;3091:6;;-1:-1:-1;;;;;3108:17:0;;;-1:-1:-1;;;;;;3108:17:0;;;;;;3141:40;;3091:6;;;;;;;3141:40;;3072:16;3141:40;3061:128;3016:173;:::o;13486:836::-;13575:4;13526:28;7209:18;;;:9;:18;;;;;;13597:24;;13594:707;;13643:10;;;;;;;13640:560;;;13678:24;;13675:508;;13795:12;;13786:4;13748:17;7209:18;;;:9;:18;;;;;;13748:17;;13810:3;;13768:39;;;;:::i;:::-;:45;;;;:::i;:::-;13748:65;-1:-1:-1;13748:65:0;13889:24;13748:65;13889:16;:24::i;:::-;13964:21;14014:19;;14010:66;;14044:3;;14036:38;;-1:-1:-1;;;;;14044:3:0;;;;14036:38;;;;;14058:15;;14044:3;14036:38;14044:3;14036:38;14058:15;14044:3;14036:38;;;;;;;;;;;;;;;;;;;;;13703:394;;;2816:192;:::o;13675:508::-;14126:37;;-1:-1:-1;;;14126:37:0;;14561:2:1;14126:37:0;;;14543:21:1;14600:2;14580:18;;;14573:30;14639:29;14619:18;;;14612:57;14686:18;;14126:37:0;14359:351:1;13594:707:0;14233:38;;-1:-1:-1;;;14233:38:0;;14917:2:1;14233:38:0;;;14899:21:1;14956:2;14936:18;;;14929:30;14995;14975:18;;;14968:58;15043:18;;14233:38:0;14715:352:1;1068:179:0;1126:7;;1158:5;1162:1;1158;:5;:::i;:::-;1146:17;;1187:1;1182;:6;;1174:46;;;;-1:-1:-1;;;1174:46:0;;15274:2:1;1174:46:0;;;15256:21:1;15313:2;15293:18;;;15286:30;15352:29;15332:18;;;15325:57;15399:18;;1174:46:0;15072:351:1;1174:46:0;1238:1;1068:179;-1:-1:-1;;;1068:179:0:o;1256:136::-;1314:7;1341:43;1345:1;1348;1341:43;;;;;;;;;;;;;;;;;:3;:43::i;12810:666::-;12970:16;;;12984:1;12970:16;;;;;;;;12946:21;;12970:16;;;;;;;;;;-1:-1:-1;12970:16:0;12946:40;;13015:4;12997;13002:1;12997:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12997:23:0;;;:7;;;;;;;;;;:23;;;;13041:15;;:22;;;-1:-1:-1;;;13041:22:0;;;;:15;;;;;:20;;:22;;;;;12997:7;;13041:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13031:4;13036:1;13031:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13031:32:0;;;:7;;;;;;;;;:32;13175:15;;13143:62;;13160:4;;13175:15;13193:11;13143:8;:62::i;:::-;13244:15;;:224;;-1:-1:-1;;;13244:224:0;;-1:-1:-1;;;;;13244:15:0;;;;:66;;:224;;13325:11;;13244:15;;13395:4;;13422;;13442:15;;13244:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12865:611;12810:666;:::o;1401:224::-;1521:7;1557:12;1549:6;;;;1541:29;;;;-1:-1:-1;;;1541:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1581:9:0;1593:5;1597:1;1593;:5;:::i;:::-;1581:17;1401:224;-1:-1:-1;;;;;1401:224:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:134;979:20;;1008:31;979:20;1008:31;:::i;:::-;911:134;;;:::o;1050:315::-;1118:6;1126;1179:2;1167:9;1158:7;1154:23;1150:32;1147:52;;;1195:1;1192;1185:12;1147:52;1234:9;1221:23;1253:31;1278:5;1253:31;:::i;:::-;1303:5;1355:2;1340:18;;;;1327:32;;-1:-1:-1;;;1050:315:1:o;1562:180::-;1621:6;1674:2;1662:9;1653:7;1649:23;1645:32;1642:52;;;1690:1;1687;1680:12;1642:52;-1:-1:-1;1713:23:1;;1562:180;-1:-1:-1;1562:180:1:o;2163:456::-;2240:6;2248;2256;2309:2;2297:9;2288:7;2284:23;2280:32;2277:52;;;2325:1;2322;2315:12;2277:52;2364:9;2351:23;2383:31;2408:5;2383:31;:::i;:::-;2433:5;-1:-1:-1;2490:2:1;2475:18;;2462:32;2503:33;2462:32;2503:33;:::i;:::-;2163:456;;2555:7;;-1:-1:-1;;;2609:2:1;2594:18;;;;2581:32;;2163:456::o;2813:316::-;2890:6;2898;2906;2959:2;2947:9;2938:7;2934:23;2930:32;2927:52;;;2975:1;2972;2965:12;2927:52;-1:-1:-1;;2998:23:1;;;3068:2;3053:18;;3040:32;;-1:-1:-1;3119:2:1;3104:18;;;3091:32;;2813:316;-1:-1:-1;2813:316:1:o;3134:247::-;3193:6;3246:2;3234:9;3225:7;3221:23;3217:32;3214:52;;;3262:1;3259;3252:12;3214:52;3301:9;3288:23;3320:31;3345:5;3320:31;:::i;3386:160::-;3451:20;;3507:13;;3500:21;3490:32;;3480:60;;3536:1;3533;3526:12;3551:315;3616:6;3624;3677:2;3665:9;3656:7;3652:23;3648:32;3645:52;;;3693:1;3690;3683:12;3645:52;3732:9;3719:23;3751:31;3776:5;3751:31;:::i;:::-;3801:5;-1:-1:-1;3825:35:1;3856:2;3841:18;;3825:35;:::i;:::-;3815:45;;3551:315;;;;;:::o;3871:180::-;3927:6;3980:2;3968:9;3959:7;3955:23;3951:32;3948:52;;;3996:1;3993;3986:12;3948:52;4019:26;4035:9;4019:26;:::i;4380:388::-;4448:6;4456;4509:2;4497:9;4488:7;4484:23;4480:32;4477:52;;;4525:1;4522;4515:12;4477:52;4564:9;4551:23;4583:31;4608:5;4583:31;:::i;:::-;4633:5;-1:-1:-1;4690:2:1;4675:18;;4662:32;4703:33;4662:32;4703:33;:::i;:::-;4755:7;4745:17;;;4380:388;;;;;:::o;4773:127::-;4834:10;4829:3;4825:20;4822:1;4815:31;4865:4;4862:1;4855:15;4889:4;4886:1;4879:15;4905:1191;4995:6;5003;5056:2;5044:9;5035:7;5031:23;5027:32;5024:52;;;5072:1;5069;5062:12;5024:52;5112:9;5099:23;5141:18;5182:2;5174:6;5171:14;5168:34;;;5198:1;5195;5188:12;5168:34;5236:6;5225:9;5221:22;5211:32;;5281:7;5274:4;5270:2;5266:13;5262:27;5252:55;;5303:1;5300;5293:12;5252:55;5339:2;5326:16;5361:4;5384:2;5380;5377:10;5374:36;;;5390:18;;:::i;:::-;5436:2;5433:1;5429:10;5468:2;5462:9;5531:2;5527:7;5522:2;5518;5514:11;5510:25;5502:6;5498:38;5586:6;5574:10;5571:22;5566:2;5554:10;5551:18;5548:46;5545:72;;;5597:18;;:::i;:::-;5633:2;5626:22;5683:18;;;5717:15;;;;-1:-1:-1;5759:11:1;;;5755:20;;;5787:19;;;5784:39;;;5819:1;5816;5809:12;5784:39;5843:11;;;;5863:148;5879:6;5874:3;5871:15;5863:148;;;5945:23;5964:3;5945:23;:::i;:::-;5933:36;;5896:12;;;;5989;;;;5863:148;;;6030:6;-1:-1:-1;6055:35:1;;-1:-1:-1;6071:18:1;;;6055:35;:::i;:::-;6045:45;;;;;;4905:1191;;;;;:::o;6497:356::-;6699:2;6681:21;;;6718:18;;;6711:30;6777:34;6772:2;6757:18;;6750:62;6844:2;6829:18;;6497:356::o;6858:127::-;6919:10;6914:3;6910:20;6907:1;6900:31;6950:4;6947:1;6940:15;6974:4;6971:1;6964:15;6990:128;7057:9;;;7078:11;;;7075:37;;;7092:18;;:::i;7123:422::-;7212:1;7255:5;7212:1;7269:270;7290:7;7280:8;7277:21;7269:270;;;7349:4;7345:1;7341:6;7337:17;7331:4;7328:27;7325:53;;;7358:18;;:::i;:::-;7408:7;7398:8;7394:22;7391:55;;;7428:16;;;;7391:55;7507:22;;;;7467:15;;;;7269:270;;;7273:3;7123:422;;;;;:::o;7550:806::-;7599:5;7629:8;7619:80;;-1:-1:-1;7670:1:1;7684:5;;7619:80;7718:4;7708:76;;-1:-1:-1;7755:1:1;7769:5;;7708:76;7800:4;7818:1;7813:59;;;;7886:1;7881:130;;;;7793:218;;7813:59;7843:1;7834:10;;7857:5;;;7881:130;7918:3;7908:8;7905:17;7902:43;;;7925:18;;:::i;:::-;-1:-1:-1;;7981:1:1;7967:16;;7996:5;;7793:218;;8095:2;8085:8;8082:16;8076:3;8070:4;8067:13;8063:36;8057:2;8047:8;8044:16;8039:2;8033:4;8030:12;8026:35;8023:77;8020:159;;;-1:-1:-1;8132:19:1;;;8164:5;;8020:159;8211:34;8236:8;8230:4;8211:34;:::i;:::-;8281:6;8277:1;8273:6;8269:19;8260:7;8257:32;8254:58;;;8292:18;;:::i;:::-;8330:20;;7550:806;-1:-1:-1;;;7550:806:1:o;8361:140::-;8419:5;8448:47;8489:4;8479:8;8475:19;8469:4;8448:47;:::i;8506:168::-;8579:9;;;8610;;8627:15;;;8621:22;;8607:37;8597:71;;8648:18;;:::i;8679:125::-;8744:9;;;8765:10;;;8762:36;;;8778:18;;:::i;9581:217::-;9621:1;9647;9637:132;;9691:10;9686:3;9682:20;9679:1;9672:31;9726:4;9723:1;9716:15;9754:4;9751:1;9744:15;9637:132;-1:-1:-1;9783:9:1;;9581:217::o;10213:127::-;10274:10;10269:3;10265:20;10262:1;10255:31;10305:4;10302:1;10295:15;10329:4;10326:1;10319:15;10345:135;10384:3;10405:17;;;10402:43;;10425:18;;:::i;:::-;-1:-1:-1;10472:1:1;10461:13;;10345:135::o;15428:251::-;15498:6;15551:2;15539:9;15530:7;15526:23;15522:32;15519:52;;;15567:1;15564;15557:12;15519:52;15599:9;15593:16;15618:31;15643:5;15618:31;:::i;15684:980::-;15946:4;15994:3;15983:9;15979:19;16025:6;16014:9;16007:25;16051:2;16089:6;16084:2;16073:9;16069:18;16062:34;16132:3;16127:2;16116:9;16112:18;16105:31;16156:6;16191;16185:13;16222:6;16214;16207:22;16260:3;16249:9;16245:19;16238:26;;16299:2;16291:6;16287:15;16273:29;;16320:1;16330:195;16344:6;16341:1;16338:13;16330:195;;;16409:13;;-1:-1:-1;;;;;16405:39:1;16393:52;;16500:15;;;;16465:12;;;;16441:1;16359:9;16330:195;;;-1:-1:-1;;;;;;;16581:32:1;;;;16576:2;16561:18;;16554:60;-1:-1:-1;;;16645:3:1;16630:19;16623:35;16542:3;15684:980;-1:-1:-1;;;15684:980:1:o

Swarm Source

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