ETH Price: $3,227.90 (+1.78%)

Token

Modern Money Tech (MMT)
 

Overview

Max Total Supply

1,000,000,000,000,000 MMT

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,321,970,615,900.537073553959295413 MMT

Value
$0.00
0xe472ff01d6cfa2feef24f7a7cd2a4da445323729
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:
ModernMoneyTech

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-19
*/

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;


interface IERC20 {
   
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;



interface IERC20Metadata is IERC20 {
    
    function name() external view returns (string memory);

   
    function symbol() external view returns (string memory);

   
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/contracts/utils/math/SafeMath.sol


// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;


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

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }
  
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
   
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }
  
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }
 
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
  
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
  
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
   
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
  
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
   
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;


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

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;



abstract contract Ownable is Context {
    address private _owner;

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

   
    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
 
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
   
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: MMT.sol

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;


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

interface IDEXRouter {
    function factory() external pure returns (address);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract ModernMoneyTech is IERC20Metadata, Ownable {
    using SafeMath for uint256;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Modern Money Tech";
    string constant _symbol = "MMT";
    uint8 constant _decimals = 18;
 
    uint256 _totalSupply =  1000000000000000 * (10 ** 18);

    uint256 public maxTx = _totalSupply.div(100);
    uint256 public maxWallet = _totalSupply.div(50);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isMaxWalletExempt;

    uint256 public teamFee = 100;
    uint256 public marketingFee = 200;
    uint256 public DevFee = 200;
    uint256 public liquidityFee = 100;
    uint256 public totalFee = 600;
    uint256 public feeDenominator = 10000;

    address public teamRcvr;
    address public marketingRcvr;
    address public DevRcvr;
    address public liquidityRcvr;

    IDEXRouter public UNISWAPRouter;
    address ETHPair;

    uint256 public launchedAt;

    bool public liquifyEnabled = false;
    bool public swapEnabled = false;

    uint256 public swapThreshold = _totalSupply.div(200);
    bool public inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
    event Launched(uint256 blockNumber, uint256 timestamp);
    event SwapBackSuccess(uint256 amount);
    event SwapBackFailed(string message);

    constructor () Ownable() {
        
        UNISWAPRouter = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        ETHPair = IDEXFactory(UNISWAPRouter.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(UNISWAPRouter)] = ~uint256(0);

        address owner_ = msg.sender;

        teamRcvr = owner_;
        marketingRcvr = owner_;
        DevRcvr = owner_;
        liquidityRcvr = owner_;


        isMaxWalletExempt[owner_] = true;
        isMaxWalletExempt[address(ETHPair)] = true;
        isMaxWalletExempt[address(this)] = true;

        isFeeExempt[owner_] = true;
        isFeeExempt[address(this)] = true;

        isTxLimitExempt[owner_] = true;
        isTxLimitExempt[address(this)] = true;

        approve(address(UNISWAPRouter), _totalSupply);
        _balances[owner_] = _totalSupply;
        emit Transfer(address(0), owner_, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender_, uint256 amount_) public override returns (bool) {
        _allowances[msg.sender][spender_] = amount_;
        emit Approval(msg.sender, spender_, amount_);
        return true;
    }

    function approveMax(address spender_) external returns (bool) {
        return approve(spender_, ~uint256(0));
    }

    function clearStuckETH(address wallet_) external onlyOwner {
        payable(wallet_).transfer(address(this).balance);
    }

    function transfer(address recipient_, uint256 amount_) external override returns (bool) {
        return _transferFrom(msg.sender, recipient_, amount_);
    }

    function transferFrom(address sender_, address recipient_, uint256 amount_) external override returns (bool) {
        if(_allowances[sender_][msg.sender] != ~uint256(0)){
            _allowances[sender_][msg.sender] = _allowances[sender_][msg.sender].sub(amount_, "Insufficient Allowance");
        }

        return _transferFrom(sender_, recipient_, amount_);
    }

    function _transferFrom(address sender_, address recipient_, uint256 amount_) internal returns (bool) {
        require(sender_ != address(0) && recipient_ != address(0), "Zero Address Transfer");
        require(passLimitChecks(sender_, recipient_, amount_), "Over TX or Wallet Limit");

        if(inSwap){ return _basicTransfer(sender_, recipient_, amount_); }
        
        if(shouldSwapBack()){ swapBack(); }

        if(!launched() && recipient_ == ETHPair) { require(_balances[sender_] > 0); launch(); }

        _balances[sender_] = _balances[sender_].sub(amount_, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender_, recipient_) ? takeFee(sender_, amount_) : amount_;
        _balances[recipient_] = _balances[recipient_].add(amountReceived);
        
        emit Transfer(sender_, recipient_, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender_, address recipient_, uint256 amount_) internal returns (bool) {
        _balances[sender_] = _balances[sender_].sub(amount_, "Insufficient Balance");
        _balances[recipient_] = _balances[recipient_].add(amount_);
        emit Transfer(sender_, recipient_, amount_);
        return true;
    }

    function passLimitChecks(address sender_, address recipient_, uint256 amount_) internal view returns (bool) {
        if(amount_ > maxTx && !isTxLimitExempt[sender_]) { return false; }
        if(sender_ == ETHPair && _balances[recipient_].add(amount_) > maxWallet) { return false; }
        return true;
    }

    function shouldTakeFee(address sender_, address recipient_) internal view returns (bool) {
        if (isFeeExempt[sender_] || isFeeExempt[recipient_] || !launched()) return false;
        if (sender_ == ETHPair || recipient_ == ETHPair) return true;
        return false;
    }

    function takeFee(address sender_, uint256 amount_) internal returns (uint256) {
        uint256 feeAmount = amount_.mul(totalFee).div(feeDenominator);
        
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender_, address(this), feeAmount);

        return amount_.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != ETHPair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 swapLiquidityFee = liquifyEnabled ? liquidityFee : 0;
        uint256 amountToLiquify = swapThreshold.mul(swapLiquidityFee).div(totalFee).div(2);

        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        try UNISWAPRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        ) {

            uint256 amountETH = address(this).balance.sub(balanceBefore);

            uint256 totalETHFee = totalFee.sub(swapLiquidityFee.div(2));

            uint256 amountETHLiquidity = amountETH.mul(swapLiquidityFee).div(totalETHFee).div(2);
            uint256 amountETHTeam = amountETH.mul(teamFee).div(totalETHFee);
            uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
            uint256 amountETHDev = amountETH.mul(DevFee).div(totalETHFee);
           

            payable(address(teamRcvr)).transfer(amountETHTeam);
            payable(address(marketingRcvr)).transfer(amountETHMarketing);
            payable(address(DevRcvr)).transfer(amountETHDev);
           
        
            if(amountToLiquify > 0){
                try UNISWAPRouter.addLiquidityETH{ value: amountETHLiquidity }(
                    address(this),
                    amountToLiquify,
                    0,
                    0,
                    liquidityRcvr,
                    block.timestamp
                ) {
                    emit AutoLiquify(amountToLiquify, amountETHLiquidity);
                } catch {
                    emit AutoLiquify(0, 0);
                }
            }

            emit SwapBackSuccess(amountToSwap);
        } catch Error(string memory e) {
            emit SwapBackFailed(string(abi.encodePacked("SwapBack failed with error ", e)));
        } catch {
            emit SwapBackFailed("SwapBack failed without an error message from pancakeSwap");
        }
    }

    function launch() internal {
        launchedAt = block.number;
        emit Launched(block.number, block.timestamp);
    }
    
   
    function setIsFeeExempt(address holder_, bool exempt_) external onlyOwner {
        isFeeExempt[holder_] = exempt_;
    }

    function setIsTxLimitExempt(address holder_, bool exempt_) external onlyOwner {
        isTxLimitExempt[holder_] = exempt_;
    }


    function setIsMaxWalletExempt(address holder_, bool exempt_) external onlyOwner {
        isMaxWalletExempt[holder_] = exempt_;
    }

       

    // Swap and Auto-LP
    function setSwapBackSettings(bool enabled_, uint256 amount_) external onlyOwner {
        swapEnabled = enabled_;
        swapThreshold = amount_;
    }
    
    function setLiquifyEnabled(bool enabled_) external onlyOwner {
        liquifyEnabled = enabled_;
    }

    
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Launched","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":false,"internalType":"string","name":"message","type":"string"}],"name":"SwapBackFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SwapBackSuccess","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":"DevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevRcvr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAPRouter","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","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":"spender_","type":"address"}],"name":"approveMax","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":"wallet_","type":"address"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityRcvr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingRcvr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"holder_","type":"address"},{"internalType":"bool","name":"exempt_","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder_","type":"address"},{"internalType":"bool","name":"exempt_","type":"bool"}],"name":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder_","type":"address"},{"internalType":"bool","name":"exempt_","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled_","type":"bool"}],"name":"setLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled_","type":"bool"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamRcvr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526001805473c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0319918216179091556002805461dead9083161790556003805490911690556d314dc6448d9338c15b0a0000000060048190556200007090606462000358602090811b62000a4e17901c565b6005556200009060326004546200035860201b62000a4e1790919060201c565b6006556064600c81905560c8600d819055600e819055600f919091556102586010556127106011556019805461ffff19169055600454620000dd9162000358602090811b62000a4e17901c565b601a55348015620000ed57600080fd5b50620000f9336200036d565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200015e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018491906200042a565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc91906200042a565b601780546001600160a01b039283166001600160a01b031991821617825530600081815260086020908152604080832060168054891685529083528184206000199055601280548716339081179091556013805488168217905560148054881682179055601580549097168117909655858452600b8352818420805460ff199081166001908117909255975489168552828520805489168217905585855282852080548916821790558685526009845282852080548916821790558585528285208054891682179055868552600a909352818420805488168417905593835290912080549094161790925590546004549192620002fc92911690620003bd565b506004546001600160a01b038216600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000478565b600062000366828462000455565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620004199086815260200190565b60405180910390a350600192915050565b6000602082840312156200043d57600080fd5b81516001600160a01b03811681146200036657600080fd5b6000826200047357634e487b7160e01b600052601260045260246000fd5b500490565b611a1680620004886000396000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063c04a78ad116100ab578063df20fd491161006f578063df20fd4914610675578063ed5792d714610695578063f2fde38b146106af578063f84ba65d146106cf578063f8b45b05146106ef57600080fd5b8063c04a78ad146105bf578063d7c94efd146105df578063d8306786146105f5578063da1cdbe41461060f578063dd62ed3e1461062f57600080fd5b806395d89b41116100f257806395d89b411461052757806398118cb414610553578063a477ae2e14610569578063a9059cbb14610589578063bf56b371146105a957600080fd5b8063715018a6146104be5780637437681e146104d35780638da5cb5b146104e957806393886bdf1461050757600080fd5b8063313ce567116101b15780635997ed4c116101755780635997ed4c1461041b578063658d4b7f146104315780636b67c4df146104535780636ddd17131461046957806370a082311461048857600080fd5b8063313ce5671461037f5780633509247c1461039b57806343276d27146103bb578063571ac8b0146103db57806357ff01a9146103fb57600080fd5b8063180b0d7e116101f8578063180b0d7e1461030957806318160ddd1461031f5780631df4ccfc1461033457806323b872dd1461034a5780632b112e491461036a57600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102a15780630c696cb1146102d157600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b601a5481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5060408051808201909152601181527009adec8cae4dc409adedccaf240a8cac6d607b1b60208201525b6040516102559190611614565b3480156102ad57600080fd5b506102c16102bc366004611663565b610705565b6040519015158152602001610255565b3480156102dd57600080fd5b506013546102f1906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561031557600080fd5b5061024b60115481565b34801561032b57600080fd5b5060045461024b565b34801561034057600080fd5b5061024b60105481565b34801561035657600080fd5b506102c161036536600461168d565b610772565b34801561037657600080fd5b5061024b610834565b34801561038b57600080fd5b5060405160128152602001610255565b3480156103a757600080fd5b506016546102f1906001600160a01b031681565b3480156103c757600080fd5b506012546102f1906001600160a01b031681565b3480156103e757600080fd5b506102c16103f63660046116c9565b610886565b34801561040757600080fd5b506015546102f1906001600160a01b031681565b34801561042757600080fd5b5061024b600e5481565b34801561043d57600080fd5b5061045161044c3660046116f4565b610894565b005b34801561045f57600080fd5b5061024b600d5481565b34801561047557600080fd5b506019546102c190610100900460ff1681565b34801561049457600080fd5b5061024b6104a33660046116c9565b6001600160a01b031660009081526007602052604090205490565b3480156104ca57600080fd5b506104516108c7565b3480156104df57600080fd5b5061024b60055481565b3480156104f557600080fd5b506000546001600160a01b03166102f1565b34801561051357600080fd5b506014546102f1906001600160a01b031681565b34801561053357600080fd5b5060408051808201909152600381526213535560ea1b6020820152610294565b34801561055f57600080fd5b5061024b600f5481565b34801561057557600080fd5b506104516105843660046116c9565b6108db565b34801561059557600080fd5b506102c16105a4366004611663565b61091c565b3480156105b557600080fd5b5061024b60185481565b3480156105cb57600080fd5b506104516105da3660046116f4565b610929565b3480156105eb57600080fd5b5061024b600c5481565b34801561060157600080fd5b50601b546102c19060ff1681565b34801561061b57600080fd5b5061045161062a366004611727565b61095c565b34801561063b57600080fd5b5061024b61064a366004611742565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561068157600080fd5b5061045161069036600461176c565b610977565b3480156106a157600080fd5b506019546102c19060ff1681565b3480156106bb57600080fd5b506104516106ca3660046116c9565b61099d565b3480156106db57600080fd5b506104516106ea3660046116f4565b610a1b565b3480156106fb57600080fd5b5061024b60065481565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107609086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000191461081f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546107fa918490610a5a565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61082a848484610a86565b90505b9392505050565b6003546001600160a01b0316600090815260076020526040812054610881906002546001600160a01b031660009081526007602052604090205461087b9060045490610cda565b90610cda565b905090565b600061076c82600019610705565b61089c610ce6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6108cf610ce6565b6108d96000610d40565b565b6108e3610ce6565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610918573d6000803e3d6000fd5b5050565b600061082d338484610a86565b610931610ce6565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610964610ce6565b6019805460ff1916911515919091179055565b61097f610ce6565b601980549215156101000261ff001990931692909217909155601a55565b6109a5610ce6565b6001600160a01b038116610a0f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610a1881610d40565b50565b610a23610ce6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b600061082d828461179e565b60008184841115610a7e5760405162461bcd60e51b8152600401610a069190611614565b505050900390565b60006001600160a01b03841615801590610aa857506001600160a01b03831615155b610aec5760405162461bcd60e51b81526020600482015260156024820152742d32b9379020b2323932b9b9902a3930b739b332b960591b6044820152606401610a06565b610af7848484610d90565b610b435760405162461bcd60e51b815260206004820152601760248201527f4f766572205458206f722057616c6c6574204c696d69740000000000000000006044820152606401610a06565b601b5460ff1615610b6057610b59848484610e20565b905061082d565b610b68610f06565b15610b7557610b75610f5a565b601854158015610b9257506017546001600160a01b038481169116145b15610bc1576001600160a01b038416600090815260076020526040902054610bb957600080fd5b610bc161145c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610c13918490610a5a565b6001600160a01b038516600090815260076020526040812091909155610c39858561149c565b610c435782610c4d565b610c4d8584611532565b6001600160a01b038516600090815260076020526040902054909150610c7390826115d8565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cc79085815260200190565b60405180910390a3506001949350505050565b600061082d82846117c0565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a06565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060055482118015610dbc57506001600160a01b0384166000908152600a602052604090205460ff16155b15610dc95750600061082d565b6017546001600160a01b038581169116148015610e0957506006546001600160a01b038416600090815260076020526040902054610e0790846115d8565b115b15610e165750600061082d565b5060019392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610e71918490610a5a565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610ea090836115d8565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef49086815260200190565b60405180910390a35060019392505050565b6017546000906001600160a01b03163314801590610f275750601b5460ff16155b8015610f3a5750601954610100900460ff165b8015610881575050601a5430600090815260076020526040902054101590565b601b805460ff1916600117905560195460009060ff16610f7b576000610f7f565b600f545b90506000610fa96002610fa3601054610fa386601a546115e490919063ffffffff16565b90610a4e565b90506000610fc282601a54610cda90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610ffc57610ffc6117d3565b6001600160a01b039283166020918202929092010152600180548351921691839190811061102c5761102c6117d3565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81524792919091169063791ac947906110769086906000908790309042906004016117e9565b600060405180830381600087803b15801561109057600080fd5b505af19250505080156110a1575060015b6111ba576110ad61185a565b806308c379a00361112657506110c16118b1565b806110cc5750611128565b7fc41a20ad8c23d3903584975786330c6ec73ccfcc657629f10237b792268b0e02816040516020016110fe919061193b565b60408051601f198184030181529082905261111891611614565b60405180910390a15061144b565b505b7fc41a20ad8c23d3903584975786330c6ec73ccfcc657629f10237b792268b0e026040516111ad9060208082526039908201527f537761704261636b206661696c656420776974686f757420616e206572726f7260408201527f206d6573736167652066726f6d2070616e63616b655377617000000000000000606082015260800190565b60405180910390a161144b565b60006111c64783610cda565b905060006111e16111d8886002610a4e565b60105490610cda565b905060006111f66002610fa38481878d6115e4565b9050600061121383610fa3600c54876115e490919063ffffffff16565b9050600061123084610fa3600d54886115e490919063ffffffff16565b9050600061124d85610fa3600e54896115e490919063ffffffff16565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015611288573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156112c3573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112fe573d6000803e3d6000fd5b5089156114115760165460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af193505050508015611392575060408051601f3d908101601f1916820190925261138f91810190611980565b60015b6113d45760408051600080825260208201527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506910160405180910390a1611411565b5050604080518c8152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6040518981527fb39214ef4f33ea2d9d329fb67a4f17e7588bf6e00ed15a7967137ba819697a279060200160405180910390a15050505050505b5050601b805460ff19169055505050565b436018819055604080519182524260208301527f87dcd6626ffde0faf682a10e7b64aff36ea73a5470d5fa6cc7ebd372e4b19001910160405180910390a1565b6001600160a01b03821660009081526009602052604081205460ff16806114db57506001600160a01b03821660009081526009602052604090205460ff165b806114e65750601854155b156114f35750600061076c565b6017546001600160a01b038481169116148061151c57506017546001600160a01b038381169116145b156115295750600161076c565b50600092915050565b600080611550601154610fa3601054866115e490919063ffffffff16565b3060009081526007602052604090205490915061156d90826115d8565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115be9085815260200190565b60405180910390a36115d08382610cda565b949350505050565b600061082d82846119ae565b600061082d82846119c1565b60005b8381101561160b5781810151838201526020016115f3565b50506000910152565b60208152600082518060208401526116338160408501602087016115f0565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461165e57600080fd5b919050565b6000806040838503121561167657600080fd5b61167f83611647565b946020939093013593505050565b6000806000606084860312156116a257600080fd5b6116ab84611647565b92506116b960208501611647565b9150604084013590509250925092565b6000602082840312156116db57600080fd5b61082d82611647565b8035801515811461165e57600080fd5b6000806040838503121561170757600080fd5b61171083611647565b915061171e602084016116e4565b90509250929050565b60006020828403121561173957600080fd5b61082d826116e4565b6000806040838503121561175557600080fd5b61175e83611647565b915061171e60208401611647565b6000806040838503121561177f57600080fd5b61167f836116e4565b634e487b7160e01b600052601160045260246000fd5b6000826117bb57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561076c5761076c611788565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118395784516001600160a01b031683529383019391830191600101611814565b50506001600160a01b03969096166060850152505050608001529392505050565b600060033d11156118735760046000803e5060005160e01c5b90565b601f8201601f1916810167ffffffffffffffff811182821017156118aa57634e487b7160e01b600052604160045260246000fd5b6040525050565b600060443d10156118bf5790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156118ef57505050505090565b82850191508151818111156119075750505050505090565b843d87010160208285010111156119215750505050505090565b61193060208286010187611876565b509095945050505050565b7f537761704261636b206661696c65642077697468206572726f7220000000000081526000825161197381601b8501602087016115f0565b91909101601b0192915050565b60008060006060848603121561199557600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561076c5761076c611788565b60008160001904831182151516156119db576119db611788565b50029056fea2646970667358221220edc481be5b806a0f7fd79f3c79d9e66b3ffd4b77466c50e8bc30602288d747dc64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063c04a78ad116100ab578063df20fd491161006f578063df20fd4914610675578063ed5792d714610695578063f2fde38b146106af578063f84ba65d146106cf578063f8b45b05146106ef57600080fd5b8063c04a78ad146105bf578063d7c94efd146105df578063d8306786146105f5578063da1cdbe41461060f578063dd62ed3e1461062f57600080fd5b806395d89b41116100f257806395d89b411461052757806398118cb414610553578063a477ae2e14610569578063a9059cbb14610589578063bf56b371146105a957600080fd5b8063715018a6146104be5780637437681e146104d35780638da5cb5b146104e957806393886bdf1461050757600080fd5b8063313ce567116101b15780635997ed4c116101755780635997ed4c1461041b578063658d4b7f146104315780636b67c4df146104535780636ddd17131461046957806370a082311461048857600080fd5b8063313ce5671461037f5780633509247c1461039b57806343276d27146103bb578063571ac8b0146103db57806357ff01a9146103fb57600080fd5b8063180b0d7e116101f8578063180b0d7e1461030957806318160ddd1461031f5780631df4ccfc1461033457806323b872dd1461034a5780632b112e491461036a57600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102a15780630c696cb1146102d157600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b601a5481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5060408051808201909152601181527009adec8cae4dc409adedccaf240a8cac6d607b1b60208201525b6040516102559190611614565b3480156102ad57600080fd5b506102c16102bc366004611663565b610705565b6040519015158152602001610255565b3480156102dd57600080fd5b506013546102f1906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561031557600080fd5b5061024b60115481565b34801561032b57600080fd5b5060045461024b565b34801561034057600080fd5b5061024b60105481565b34801561035657600080fd5b506102c161036536600461168d565b610772565b34801561037657600080fd5b5061024b610834565b34801561038b57600080fd5b5060405160128152602001610255565b3480156103a757600080fd5b506016546102f1906001600160a01b031681565b3480156103c757600080fd5b506012546102f1906001600160a01b031681565b3480156103e757600080fd5b506102c16103f63660046116c9565b610886565b34801561040757600080fd5b506015546102f1906001600160a01b031681565b34801561042757600080fd5b5061024b600e5481565b34801561043d57600080fd5b5061045161044c3660046116f4565b610894565b005b34801561045f57600080fd5b5061024b600d5481565b34801561047557600080fd5b506019546102c190610100900460ff1681565b34801561049457600080fd5b5061024b6104a33660046116c9565b6001600160a01b031660009081526007602052604090205490565b3480156104ca57600080fd5b506104516108c7565b3480156104df57600080fd5b5061024b60055481565b3480156104f557600080fd5b506000546001600160a01b03166102f1565b34801561051357600080fd5b506014546102f1906001600160a01b031681565b34801561053357600080fd5b5060408051808201909152600381526213535560ea1b6020820152610294565b34801561055f57600080fd5b5061024b600f5481565b34801561057557600080fd5b506104516105843660046116c9565b6108db565b34801561059557600080fd5b506102c16105a4366004611663565b61091c565b3480156105b557600080fd5b5061024b60185481565b3480156105cb57600080fd5b506104516105da3660046116f4565b610929565b3480156105eb57600080fd5b5061024b600c5481565b34801561060157600080fd5b50601b546102c19060ff1681565b34801561061b57600080fd5b5061045161062a366004611727565b61095c565b34801561063b57600080fd5b5061024b61064a366004611742565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561068157600080fd5b5061045161069036600461176c565b610977565b3480156106a157600080fd5b506019546102c19060ff1681565b3480156106bb57600080fd5b506104516106ca3660046116c9565b61099d565b3480156106db57600080fd5b506104516106ea3660046116f4565b610a1b565b3480156106fb57600080fd5b5061024b60065481565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107609086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000191461081f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546107fa918490610a5a565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61082a848484610a86565b90505b9392505050565b6003546001600160a01b0316600090815260076020526040812054610881906002546001600160a01b031660009081526007602052604090205461087b9060045490610cda565b90610cda565b905090565b600061076c82600019610705565b61089c610ce6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6108cf610ce6565b6108d96000610d40565b565b6108e3610ce6565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610918573d6000803e3d6000fd5b5050565b600061082d338484610a86565b610931610ce6565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610964610ce6565b6019805460ff1916911515919091179055565b61097f610ce6565b601980549215156101000261ff001990931692909217909155601a55565b6109a5610ce6565b6001600160a01b038116610a0f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610a1881610d40565b50565b610a23610ce6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b600061082d828461179e565b60008184841115610a7e5760405162461bcd60e51b8152600401610a069190611614565b505050900390565b60006001600160a01b03841615801590610aa857506001600160a01b03831615155b610aec5760405162461bcd60e51b81526020600482015260156024820152742d32b9379020b2323932b9b9902a3930b739b332b960591b6044820152606401610a06565b610af7848484610d90565b610b435760405162461bcd60e51b815260206004820152601760248201527f4f766572205458206f722057616c6c6574204c696d69740000000000000000006044820152606401610a06565b601b5460ff1615610b6057610b59848484610e20565b905061082d565b610b68610f06565b15610b7557610b75610f5a565b601854158015610b9257506017546001600160a01b038481169116145b15610bc1576001600160a01b038416600090815260076020526040902054610bb957600080fd5b610bc161145c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610c13918490610a5a565b6001600160a01b038516600090815260076020526040812091909155610c39858561149c565b610c435782610c4d565b610c4d8584611532565b6001600160a01b038516600090815260076020526040902054909150610c7390826115d8565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cc79085815260200190565b60405180910390a3506001949350505050565b600061082d82846117c0565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a06565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060055482118015610dbc57506001600160a01b0384166000908152600a602052604090205460ff16155b15610dc95750600061082d565b6017546001600160a01b038581169116148015610e0957506006546001600160a01b038416600090815260076020526040902054610e0790846115d8565b115b15610e165750600061082d565b5060019392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610e71918490610a5a565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610ea090836115d8565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef49086815260200190565b60405180910390a35060019392505050565b6017546000906001600160a01b03163314801590610f275750601b5460ff16155b8015610f3a5750601954610100900460ff165b8015610881575050601a5430600090815260076020526040902054101590565b601b805460ff1916600117905560195460009060ff16610f7b576000610f7f565b600f545b90506000610fa96002610fa3601054610fa386601a546115e490919063ffffffff16565b90610a4e565b90506000610fc282601a54610cda90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610ffc57610ffc6117d3565b6001600160a01b039283166020918202929092010152600180548351921691839190811061102c5761102c6117d3565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81524792919091169063791ac947906110769086906000908790309042906004016117e9565b600060405180830381600087803b15801561109057600080fd5b505af19250505080156110a1575060015b6111ba576110ad61185a565b806308c379a00361112657506110c16118b1565b806110cc5750611128565b7fc41a20ad8c23d3903584975786330c6ec73ccfcc657629f10237b792268b0e02816040516020016110fe919061193b565b60408051601f198184030181529082905261111891611614565b60405180910390a15061144b565b505b7fc41a20ad8c23d3903584975786330c6ec73ccfcc657629f10237b792268b0e026040516111ad9060208082526039908201527f537761704261636b206661696c656420776974686f757420616e206572726f7260408201527f206d6573736167652066726f6d2070616e63616b655377617000000000000000606082015260800190565b60405180910390a161144b565b60006111c64783610cda565b905060006111e16111d8886002610a4e565b60105490610cda565b905060006111f66002610fa38481878d6115e4565b9050600061121383610fa3600c54876115e490919063ffffffff16565b9050600061123084610fa3600d54886115e490919063ffffffff16565b9050600061124d85610fa3600e54896115e490919063ffffffff16565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015611288573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156112c3573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112fe573d6000803e3d6000fd5b5089156114115760165460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af193505050508015611392575060408051601f3d908101601f1916820190925261138f91810190611980565b60015b6113d45760408051600080825260208201527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506910160405180910390a1611411565b5050604080518c8152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6040518981527fb39214ef4f33ea2d9d329fb67a4f17e7588bf6e00ed15a7967137ba819697a279060200160405180910390a15050505050505b5050601b805460ff19169055505050565b436018819055604080519182524260208301527f87dcd6626ffde0faf682a10e7b64aff36ea73a5470d5fa6cc7ebd372e4b19001910160405180910390a1565b6001600160a01b03821660009081526009602052604081205460ff16806114db57506001600160a01b03821660009081526009602052604090205460ff165b806114e65750601854155b156114f35750600061076c565b6017546001600160a01b038481169116148061151c57506017546001600160a01b038381169116145b156115295750600161076c565b50600092915050565b600080611550601154610fa3601054866115e490919063ffffffff16565b3060009081526007602052604090205490915061156d90826115d8565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115be9085815260200190565b60405180910390a36115d08382610cda565b949350505050565b600061082d82846119ae565b600061082d82846119c1565b60005b8381101561160b5781810151838201526020016115f3565b50506000910152565b60208152600082518060208401526116338160408501602087016115f0565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461165e57600080fd5b919050565b6000806040838503121561167657600080fd5b61167f83611647565b946020939093013593505050565b6000806000606084860312156116a257600080fd5b6116ab84611647565b92506116b960208501611647565b9150604084013590509250925092565b6000602082840312156116db57600080fd5b61082d82611647565b8035801515811461165e57600080fd5b6000806040838503121561170757600080fd5b61171083611647565b915061171e602084016116e4565b90509250929050565b60006020828403121561173957600080fd5b61082d826116e4565b6000806040838503121561175557600080fd5b61175e83611647565b915061171e60208401611647565b6000806040838503121561177f57600080fd5b61167f836116e4565b634e487b7160e01b600052601160045260246000fd5b6000826117bb57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561076c5761076c611788565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118395784516001600160a01b031683529383019391830191600101611814565b50506001600160a01b03969096166060850152505050608001529392505050565b600060033d11156118735760046000803e5060005160e01c5b90565b601f8201601f1916810167ffffffffffffffff811182821017156118aa57634e487b7160e01b600052604160045260246000fd5b6040525050565b600060443d10156118bf5790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156118ef57505050505090565b82850191508151818111156119075750505050505090565b843d87010160208285010111156119215750505050505090565b61193060208286010187611876565b509095945050505050565b7f537761704261636b206661696c65642077697468206572726f7220000000000081526000825161197381601b8501602087016115f0565b91909101601b0192915050565b60008060006060848603121561199557600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561076c5761076c611788565b60008160001904831182151516156119db576119db611788565b50029056fea2646970667358221220edc481be5b806a0f7fd79f3c79d9e66b3ffd4b77466c50e8bc30602288d747dc64736f6c63430008100033

Deployed Bytecode Sourcemap

6765:10190:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8147:52;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8147:52:0;;;;;;;;9772:80;;;;;;;;;;-1:-1:-1;9844:5:0;;;;;;;;;;;;-1:-1:-1;;;9844:5:0;;;;9772:80;;;;;;;:::i;10110:222::-;;;;;;;;;;-1:-1:-1;10110:222:0;;;;;:::i;:::-;;:::i;:::-;;;1454:14:1;;1447:22;1429:41;;1417:2;1402:18;10110:222:0;1289:187:1;7869:28:0;;;;;;;;;;-1:-1:-1;7869:28:0;;;;-1:-1:-1;;;;;7869:28:0;;;;;;-1:-1:-1;;;;;1645:32:1;;;1627:51;;1615:2;1600:18;7869:28:0;1481:203:1;7793:37:0;;;;;;;;;;;;;;;;9502:88;;;;;;;;;;-1:-1:-1;9575:12:0;;9502:88;;7757:29;;;;;;;;;;;;;;;;10768:374;;;;;;;;;;-1:-1:-1;10768:374:0;;;;;:::i;:::-;;:::i;16808:142::-;;;;;;;;;;;;;:::i;9596:80::-;;;;;;;;;;-1:-1:-1;9596:80:0;;7168:2;2164:36:1;;2152:2;2137:18;9596:80:0;2022:184:1;7970:31:0;;;;;;;;;;-1:-1:-1;7970:31:0;;;;-1:-1:-1;;;;;7970:31:0;;;7839:23;;;;;;;;;;-1:-1:-1;7839:23:0;;;;-1:-1:-1;;;;;7839:23:0;;;10340:118;;;;;;;;;;-1:-1:-1;10340:118:0;;;;;:::i;:::-;;:::i;7933:28::-;;;;;;;;;;-1:-1:-1;7933:28:0;;;;-1:-1:-1;;;;;7933:28:0;;;7683:27;;;;;;;;;;;;;;;;15969:123;;;;;;;;;;-1:-1:-1;15969:123:0;;;;;:::i;:::-;;:::i;:::-;;7643:33;;;;;;;;;;;;;;;;8107:31;;;;;;;;;;-1:-1:-1;8107:31:0;;;;;;;;;;;9858:105;;;;;;;;;;-1:-1:-1;9858:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9942:18:0;9924:7;9942:18;;;:9;:18;;;;;;;9858:105;5263:103;;;;;;;;;;;;;:::i;7242:44::-;;;;;;;;;;;;;;;;5026:87;;;;;;;;;;-1:-1:-1;5072:7:0;5099:6;-1:-1:-1;;;;;5099:6:0;5026:87;;7904:22;;;;;;;;;;-1:-1:-1;7904:22:0;;;;-1:-1:-1;;;;;7904:22:0;;;9682:84;;;;;;;;;;-1:-1:-1;9756:7:0;;;;;;;;;;;;-1:-1:-1;;;9756:7:0;;;;9682:84;;7717:33;;;;;;;;;;;;;;;;10466:126;;;;;;;;;;-1:-1:-1;10466:126:0;;;;;:::i;:::-;;:::i;10600:160::-;;;;;;;;;;-1:-1:-1;10600:160:0;;;;;:::i;:::-;;:::i;8032:25::-;;;;;;;;;;;;;;;;16241:135;;;;;;;;;;-1:-1:-1;16241:135:0;;;;;:::i;:::-;;:::i;7608:28::-;;;;;;;;;;;;;;;;8206:18;;;;;;;;;;-1:-1:-1;8206:18:0;;;;;;;;16587:105;;;;;;;;;;-1:-1:-1;16587:105:0;;;;;:::i;:::-;;:::i;9969:133::-;;;;;;;;;;-1:-1:-1;9969:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10071:19:0;;;10053:7;10071:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9969:133;16420:155;;;;;;;;;;-1:-1:-1;16420:155:0;;;;;:::i;:::-;;:::i;8066:34::-;;;;;;;;;;-1:-1:-1;8066:34:0;;;;;;;;5377:201;;;;;;;;;;-1:-1:-1;5377:201:0;;;;;:::i;:::-;;:::i;16100:131::-;;;;;;;;;;-1:-1:-1;16100:131:0;;;;;:::i;:::-;;:::i;7293:47::-;;;;;;;;;;;;;;;;10110:222;10216:10;10187:4;10204:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10204:33:0;;;;;;;;;;:43;;;10263:39;10187:4;;10204:33;;10263:39;;;;10240:7;160:25:1;;148:2;133:18;;14:177;10263:39:0;;;;;;;;-1:-1:-1;10320:4:0;10110:222;;;;;:::o;10768:374::-;-1:-1:-1;;;;;10891:20:0;;10871:4;10891:20;;;:11;:20;;;;;;;;10912:10;10891:32;;;;;;;;-1:-1:-1;;10891:47:0;10888:184;;10989:71;;;;;;;;;;;-1:-1:-1;;;10989:71:0;;;;;;;;-1:-1:-1;;;;;10989:20:0;;-1:-1:-1;10989:20:0;;;:11;:20;;;;;11010:10;10989:32;;;;;;;;;;:71;;11026:7;;10989:36;:71::i;:::-;-1:-1:-1;;;;;10954:20:0;;;;;;:11;:20;;;;;;;;10975:10;10954:32;;;;;;;:106;10888:184;11091:43;11105:7;11114:10;11126:7;11091:13;:43::i;:::-;11084:50;;10768:374;;;;;;:::o;16808:142::-;16936:4;;-1:-1:-1;;;;;16936:4:0;16861:7;9942:18;;;:9;:18;;;;;;16888:54;;16915:4;;-1:-1:-1;;;;;16915:4:0;9924:7;9942:18;;;:9;:18;;;;;;16888:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;16881:61;;16808:142;:::o;10340:118::-;10396:4;10420:30;10428:8;-1:-1:-1;;10420:7:0;:30::i;15969:123::-;4985:13;:11;:13::i;:::-;-1:-1:-1;;;;;16054:20:0;;;::::1;;::::0;;;:11:::1;:20;::::0;;;;:30;;-1:-1:-1;;16054:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15969:123::o;5263:103::-;4985:13;:11;:13::i;:::-;5328:30:::1;5355:1;5328:18;:30::i;:::-;5263:103::o:0;10466:126::-;4985:13;:11;:13::i;:::-;10536:48:::1;::::0;-1:-1:-1;;;;;10536:25:0;::::1;::::0;10562:21:::1;10536:48:::0;::::1;;;::::0;::::1;::::0;;;10562:21;10536:25;:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10466:126:::0;:::o;10600:160::-;10682:4;10706:46;10720:10;10732;10744:7;10706:13;:46::i;16241:135::-;4985:13;:11;:13::i;:::-;-1:-1:-1;;;;;16332:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:36;;-1:-1:-1;;16332:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16241:135::o;16587:105::-;4985:13;:11;:13::i;:::-;16659:14:::1;:25:::0;;-1:-1:-1;;16659:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16587:105::o;16420:155::-;4985:13;:11;:13::i;:::-;16511:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;16511:22:0;;::::1;::::0;;;::::1;::::0;;;16544:13:::1;:23:::0;16420:155::o;5377:201::-;4985:13;:11;:13::i;:::-;-1:-1:-1;;;;;5466:22:0;::::1;5458:73;;;::::0;-1:-1:-1;;;5458:73:0;;3957:2:1;5458:73:0::1;::::0;::::1;3939:21:1::0;3996:2;3976:18;;;3969:30;4035:34;4015:18;;;4008:62;-1:-1:-1;;;4086:18:1;;;4079:36;4132:19;;5458:73:0::1;;;;;;;;;5542:28;5561:8;5542:18;:28::i;:::-;5377:201:::0;:::o;16100:131::-;4985:13;:11;:13::i;:::-;-1:-1:-1;;;;;16189:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:34;;-1:-1:-1;;16189:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16100:131::o;3198:98::-;3256:7;3283:5;3287:1;3283;:5;:::i;3414:240::-;3534:7;3595:12;3587:6;;;;3579:29;;;;-1:-1:-1;;;3579:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3630:5:0;;;3414:240::o;11150:895::-;11245:4;-1:-1:-1;;;;;11270:21:0;;;;;;:49;;-1:-1:-1;;;;;;11295:24:0;;;;11270:49;11262:83;;;;-1:-1:-1;;;11262:83:0;;4718:2:1;11262:83:0;;;4700:21:1;4757:2;4737:18;;;4730:30;-1:-1:-1;;;4776:18:1;;;4769:51;4837:18;;11262:83:0;4516:345:1;11262:83:0;11364:45;11380:7;11389:10;11401:7;11364:15;:45::i;:::-;11356:81;;;;-1:-1:-1;;;11356:81:0;;5068:2:1;11356:81:0;;;5050:21:1;5107:2;5087:18;;;5080:30;5146:25;5126:18;;;5119:53;5189:18;;11356:81:0;4866:347:1;11356:81:0;11453:6;;;;11450:66;;;11469:44;11484:7;11493:10;11505:7;11469:14;:44::i;:::-;11462:51;;;;11450:66;11539:16;:14;:16::i;:::-;11536:35;;;11558:10;:8;:10::i;:::-;16773;;:15;;;11586:36;;-1:-1:-1;11615:7:0;;-1:-1:-1;;;;;11601:21:0;;;11615:7;;11601:21;11586:36;11583:87;;;-1:-1:-1;;;;;11634:18:0;;11655:1;11634:18;;;:9;:18;;;;;;11626:31;;;;;;11659:8;:6;:8::i;:::-;11703:55;;;;;;;;;;;-1:-1:-1;;;11703:55:0;;;;;;;;-1:-1:-1;;;;;11703:18:0;;-1:-1:-1;11703:18:0;;;:9;:18;;;;;;;;:55;;11726:7;;11703:22;:55::i;:::-;-1:-1:-1;;;;;11682:18:0;;;;;;:9;:18;;;;;:76;;;;11796:34;11692:7;11819:10;11796:13;:34::i;:::-;:72;;11861:7;11796:72;;;11833:25;11841:7;11850;11833;:25::i;:::-;-1:-1:-1;;;;;11903:21:0;;;;;;:9;:21;;;;;;11771:97;;-1:-1:-1;11903:41:0;;11771:97;11903:25;:41::i;:::-;-1:-1:-1;;;;;11879:21:0;;;;;;;:9;:21;;;;;;;:65;;;;11970:45;;;;;;;;;;12000:14;160:25:1;;148:2;133:18;;14:177;11970:45:0;;;;;;;;-1:-1:-1;12033:4:0;;11150:895;-1:-1:-1;;;;11150:895:0:o;2982:98::-;3040:7;3067:5;3071:1;3067;:5;:::i;5122:132::-;5072:7;5099:6;-1:-1:-1;;;;;5099:6:0;4414:10;5186:23;5178:68;;;;-1:-1:-1;;;5178:68:0;;5553:2:1;5178:68:0;;;5535:21:1;;;5572:18;;;5565:30;5631:34;5611:18;;;5604:62;5683:18;;5178:68:0;5351:356:1;5586:191:0;5660:16;5679:6;;-1:-1:-1;;;;;5696:17:0;;;-1:-1:-1;;;;;;5696:17:0;;;;;;5729:40;;5679:6;;;;;;;5729:40;;5660:16;5729:40;5649:128;5586:191;:::o;12407:314::-;12509:4;12539:5;;12529:7;:15;:44;;;;-1:-1:-1;;;;;;12549:24:0;;;;;;:15;:24;;;;;;;;12548:25;12529:44;12526:66;;;-1:-1:-1;12584:5:0;12577:12;;12526:66;12616:7;;-1:-1:-1;;;;;12605:18:0;;;12616:7;;12605:18;:68;;;;-1:-1:-1;12664:9:0;;-1:-1:-1;;;;;12627:21:0;;;;;;:9;:21;;;;;;:34;;12653:7;12627:25;:34::i;:::-;:46;12605:68;12602:90;;;-1:-1:-1;12684:5:0;12677:12;;12602:90;-1:-1:-1;12709:4:0;12407:314;;;;;:::o;12057:342::-;12191:55;;;;;;;;;;;-1:-1:-1;;;12191:55:0;;;;;;;;-1:-1:-1;;;;;12191:18:0;;12153:4;12191:18;;;:9;:18;;;;;;;:55;;12214:7;;12191:22;:55::i;:::-;-1:-1:-1;;;;;12170:18:0;;;;;;;:9;:18;;;;;;:76;;;;12281:21;;;;;;;:34;;12307:7;12281:25;:34::i;:::-;-1:-1:-1;;;;;12257:21:0;;;;;;;:9;:21;;;;;;;:58;;;;12331:38;;;;;;;;;;12361:7;160:25:1;;148:2;133:18;;14:177;12331:38:0;;;;;;;;-1:-1:-1;12387:4:0;12057:342;;;;;:::o;13373:200::-;13460:7;;13422:4;;-1:-1:-1;;;;;13460:7:0;13446:10;:21;;;;:41;;-1:-1:-1;13481:6:0;;;;13480:7;13446:41;:65;;;;-1:-1:-1;13500:11:0;;;;;;;13446:65;:119;;;;-1:-1:-1;;13552:13:0;;13542:4;13524:24;;;;:9;:24;;;;;;:41;;;13373:200::o;13581:2237::-;8253:6;:13;;-1:-1:-1;;8253:13:0;8262:4;8253:13;;;13657:14:::1;::::0;8253:6;;:13;13657:14:::1;:33;;13689:1;13657:33;;;13674:12;;13657:33;13630:60;;13701:23;13727:56;13781:1;13727:49;13767:8;;13727:35;13745:16;13727:13;;:17;;:35;;;;:::i;:::-;:39:::0;::::1;:49::i;:56::-;13701:82;;13796:20;13819:34;13837:15;13819:13;;:17;;:34;;;;:::i;:::-;13898:16;::::0;;13912:1:::1;13898:16:::0;;;;;::::1;::::0;;13796:57;;-1:-1:-1;13874:21:0::1;::::0;13898:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13898:16:0::1;13874:40;;13943:4;13925;13930:1;13925:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13925:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13969:4:::1;::::0;;13959:7;;13969:4;::::1;::::0;13959;;13969;13959:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;13959:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14048:13:::1;::::0;:195:::1;::::0;-1:-1:-1;;;14048:195:0;;14010:21:::1;::::0;14048:13;;;::::1;::::0;:64:::1;::::0;:195:::1;::::0;14127:12;;13986:21:::1;::::0;14170:4;;14197::::1;::::0;14217:15:::1;::::0;14048:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14044:1767;;;;:::i;:::-;;;::::0;::::1;;;;;:::i;:::-;;;;;;;;15611:74;15681:1;15633:50;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;15633:50:0;;::::1;::::0;;;;;;;15611:74:::1;::::0;::::1;:::i;:::-;;;;;;;;15562:135;14044:1767;;;;;15724:75;;;;;8838:2:1::0;8820:21;;;8877:2;8857:18;;;8850:30;8916:34;8911:2;8896:18;;8889:62;8987:27;8982:2;8967:18;;8960:55;9047:3;9032:19;;8636:421;15724:75:0::1;;;;;;;;14044:1767;;;14261:17;14281:40;:21;14307:13:::0;14281:25:::1;:40::i;:::-;14261:60:::0;-1:-1:-1;14338:19:0::1;14360:37;14373:23;:16:::0;14394:1:::1;14373:20;:23::i;:::-;14360:8;::::0;;:12:::1;:37::i;:::-;14338:59:::0;-1:-1:-1;14414:26:0::1;14443:55;14496:1;14443:48;14338:59:::0;14443:48;:9;14457:16;14443:13:::1;:31::i;:55::-;14414:84;;14513:21;14537:39;14564:11;14537:22;14551:7;;14537:9;:13;;:22;;;;:::i;:39::-;14513:63;;14591:26;14620:44;14652:11;14620:27;14634:12;;14620:9;:13;;:27;;;;:::i;:44::-;14591:73;;14679:20;14702:38;14728:11;14702:21;14716:6;;14702:9;:13;;:21;;;;:::i;:38::-;14786:8;::::0;14770:50:::1;::::0;14679:61;;-1:-1:-1;;;;;;14786:8:0::1;::::0;14770:50;::::1;;;::::0;14806:13;;14786:8:::1;14770:50:::0;14786:8;14770:50;14806:13;14786:8;14770:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14851:13:0::1;::::0;14835:60:::1;::::0;-1:-1:-1;;;;;14851:13:0;;::::1;::::0;14835:60;::::1;;;::::0;14876:18;;14851:13:::1;14835:60:::0;14851:13;14835:60;14876:18;14851:13;14835:60;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14926:7:0::1;::::0;14910:48:::1;::::0;-1:-1:-1;;;;;14926:7:0;;::::1;::::0;14910:48;::::1;;;::::0;14945:12;;14926:7:::1;14910:48:::0;14926:7;14910:48;14945:12;14926:7;14910:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14999:19:0;;14996:503:::1;;15042:13;::::0;15245::::1;::::0;15042:273:::1;::::0;-1:-1:-1;;;15042:273:0;;15131:4:::1;15042:273;::::0;::::1;9403:34:1::0;9453:18;;;9446:34;;;15042:13:0::1;9496:18:1::0;;;9489:34;;;9539:18;;;9532:34;-1:-1:-1;;;;;15245:13:0;;::::1;9582:19:1::0;;;9575:44;15281:15:0::1;9635:19:1::0;;;9628:35;15042:13:0;::::1;::::0;:29:::1;::::0;15080:18;;9337:19:1;;15042:273:0::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15042:273:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;15042:273:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;15038:446;;15447:17;::::0;;15459:1:::1;10175:25:1::0;;;10231:2;10216:18;;10209:34;15447:17:0::1;::::0;10148:18:1;15447:17:0::1;;;;;;;15038:446;;;-1:-1:-1::0;;15344:48:0::1;::::0;;10175:25:1;;;10231:2;10216:18;;10209:34;;;15344:48:0::1;::::0;-1:-1:-1;10148:18:1;15344:48:0::1;;;;;;;15038:446;15520:29;::::0;160:25:1;;;15520:29:0::1;::::0;148:2:1;133:18;15520:29:0::1;;;;;;;14244:1317;;;;;;14044:1767;-1:-1:-1::0;;8271:6:0;:14;;-1:-1:-1;;8271:14:0;;;-1:-1:-1;;;13581:2237:0:o;15826:126::-;15877:12;15864:10;:25;;;15905:39;;;10175:25:1;;;15928:15:0;10231:2:1;10216:18;;10209:34;15905:39:0;;10148:18:1;15905:39:0;;;;;;;15826:126::o;12729:282::-;-1:-1:-1;;;;;12833:20:0;;12812:4;12833:20;;;:11;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;12857:23:0;;;;;;:11;:23;;;;;;;;12833:47;:62;;;-1:-1:-1;16773:10:0;;:15;12833:62;12829:80;;;-1:-1:-1;12904:5:0;12897:12;;12829:80;12935:7;;-1:-1:-1;;;;;12924:18:0;;;12935:7;;12924:18;;:43;;-1:-1:-1;12960:7:0;;-1:-1:-1;;;;;12946:21:0;;;12960:7;;12946:21;12924:43;12920:60;;;-1:-1:-1;12976:4:0;12969:11;;12920:60;-1:-1:-1;12998:5:0;12729:282;;;;:::o;13019:346::-;13088:7;13108:17;13128:41;13154:14;;13128:21;13140:8;;13128:7;:11;;:21;;;;:::i;:41::-;13235:4;13217:24;;;;:9;:24;;;;;;13108:61;;-1:-1:-1;13217:39:0;;13108:61;13217:28;:39::i;:::-;13208:4;13190:24;;;;:9;:24;;;;;;;:66;;;;13272:43;;-1:-1:-1;;;;;13272:43:0;;;;;;;13305:9;160:25:1;;148:2;133:18;;14:177;13272:43:0;;;;;;;;13335:22;:7;13347:9;13335:11;:22::i;:::-;13328:29;13019:346;-1:-1:-1;;;;13019:346:0:o;2875:98::-;2933:7;2960:5;2964:1;2960;:5;:::i;3090:98::-;3148:7;3175:5;3179:1;3175;:5;:::i;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;852:173::-;920:20;;-1:-1:-1;;;;;969:31:1;;959:42;;949:70;;1015:1;1012;1005:12;949:70;852:173;;;:::o;1030:254::-;1098:6;1106;1159:2;1147:9;1138:7;1134:23;1130:32;1127:52;;;1175:1;1172;1165:12;1127:52;1198:29;1217:9;1198:29;:::i;:::-;1188:39;1274:2;1259:18;;;;1246:32;;-1:-1:-1;;;1030:254:1:o;1689:328::-;1766:6;1774;1782;1835:2;1823:9;1814:7;1810:23;1806:32;1803:52;;;1851:1;1848;1841:12;1803:52;1874:29;1893:9;1874:29;:::i;:::-;1864:39;;1922:38;1956:2;1945:9;1941:18;1922:38;:::i;:::-;1912:48;;2007:2;1996:9;1992:18;1979:32;1969:42;;1689:328;;;;;:::o;2437:186::-;2496:6;2549:2;2537:9;2528:7;2524:23;2520:32;2517:52;;;2565:1;2562;2555:12;2517:52;2588:29;2607:9;2588:29;:::i;2628:160::-;2693:20;;2749:13;;2742:21;2732:32;;2722:60;;2778:1;2775;2768:12;2793:254;2858:6;2866;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;2958:29;2977:9;2958:29;:::i;:::-;2948:39;;3006:35;3037:2;3026:9;3022:18;3006:35;:::i;:::-;2996:45;;2793:254;;;;;:::o;3052:180::-;3108:6;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3200:26;3216:9;3200:26;:::i;3237:260::-;3305:6;3313;3366:2;3354:9;3345:7;3341:23;3337:32;3334:52;;;3382:1;3379;3372:12;3334:52;3405:29;3424:9;3405:29;:::i;:::-;3395:39;;3453:38;3487:2;3476:9;3472:18;3453:38;:::i;3502:248::-;3567:6;3575;3628:2;3616:9;3607:7;3603:23;3599:32;3596:52;;;3644:1;3641;3634:12;3596:52;3667:26;3683:9;3667:26;:::i;4162:127::-;4223:10;4218:3;4214:20;4211:1;4204:31;4254:4;4251:1;4244:15;4278:4;4275:1;4268:15;4294:217;4334:1;4360;4350:132;;4404:10;4399:3;4395:20;4392:1;4385:31;4439:4;4436:1;4429:15;4467:4;4464:1;4457:15;4350:132;-1:-1:-1;4496:9:1;;4294:217::o;5218:128::-;5285:9;;;5306:11;;;5303:37;;;5320:18;;:::i;5844:127::-;5905:10;5900:3;5896:20;5893:1;5886:31;5936:4;5933:1;5926:15;5960:4;5957:1;5950:15;5976:980;6238:4;6286:3;6275:9;6271:19;6317:6;6306:9;6299:25;6343:2;6381:6;6376:2;6365:9;6361:18;6354:34;6424:3;6419:2;6408:9;6404:18;6397:31;6448:6;6483;6477:13;6514:6;6506;6499:22;6552:3;6541:9;6537:19;6530:26;;6591:2;6583:6;6579:15;6565:29;;6612:1;6622:195;6636:6;6633:1;6630:13;6622:195;;;6701:13;;-1:-1:-1;;;;;6697:39:1;6685:52;;6792:15;;;;6757:12;;;;6733:1;6651:9;6622:195;;;-1:-1:-1;;;;;;;6873:32:1;;;;6868:2;6853:18;;6846:60;-1:-1:-1;;;6937:3:1;6922:19;6915:35;6834:3;5976:980;-1:-1:-1;;;5976:980:1:o;6961:179::-;6996:3;7038:1;7020:16;7017:23;7014:120;;;7084:1;7081;7078;7063:23;-1:-1:-1;7121:1:1;7115:8;7110:3;7106:18;7014:120;6961:179;:::o;7145:346::-;7255:2;7236:13;;-1:-1:-1;;7232:27:1;7220:40;;7290:18;7275:34;;7311:22;;;7272:62;7269:185;;;7376:10;7371:3;7367:20;7364:1;7357:31;7411:4;7408:1;7401:15;7439:4;7436:1;7429:15;7269:185;7470:2;7463:22;-1:-1:-1;;7145:346:1:o;7496:671::-;7535:3;7577:4;7559:16;7556:26;7553:39;;;7496:671;:::o;7553:39::-;7619:2;7613:9;-1:-1:-1;;7684:16:1;7680:25;;7677:1;7613:9;7656:50;7735:4;7729:11;7759:16;7794:18;7865:2;7858:4;7850:6;7846:17;7843:25;7838:2;7830:6;7827:14;7824:45;7821:58;;;7872:5;;;;;7496:671;:::o;7821:58::-;7909:6;7903:4;7899:17;7888:28;;7945:3;7939:10;7972:2;7964:6;7961:14;7958:27;;;7978:5;;;;;;7496:671;:::o;7958:27::-;8062:2;8043:16;8037:4;8033:27;8029:36;8022:4;8013:6;8008:3;8004:16;8000:27;7997:69;7994:82;;;8069:5;;;;;;7496:671;:::o;7994:82::-;8085:57;8136:4;8127:6;8119;8115:19;8111:30;8105:4;8085:57;:::i;:::-;-1:-1:-1;8158:3:1;;7496:671;-1:-1:-1;;;;;7496:671:1:o;8172:459::-;8434:29;8429:3;8422:42;8404:3;8493:6;8487:13;8509:75;8577:6;8572:2;8567:3;8563:12;8556:4;8548:6;8544:17;8509:75;:::i;:::-;8604:16;;;;8622:2;8600:25;;8172:459;-1:-1:-1;;8172:459:1:o;9674:306::-;9762:6;9770;9778;9831:2;9819:9;9810:7;9806:23;9802:32;9799:52;;;9847:1;9844;9837:12;9799:52;9876:9;9870:16;9860:26;;9926:2;9915:9;9911:18;9905:25;9895:35;;9970:2;9959:9;9955:18;9949:25;9939:35;;9674:306;;;;;:::o;10507:125::-;10572:9;;;10593:10;;;10590:36;;;10606:18;;:::i;10637:168::-;10677:7;10743:1;10739;10735:6;10731:14;10728:1;10725:21;10720:1;10713:9;10706:17;10702:45;10699:71;;;10750:18;;:::i;:::-;-1:-1:-1;10790:9:1;;10637:168::o

Swarm Source

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