ETH Price: $3,169.13 (-7.93%)
Gas: 3 Gwei

Token

XTOKEN (X)
 

Overview

Max Total Supply

10,000,000,000 X

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,675,515.729066871 X

Value
$0.00
0x24db95508418f7b16d44bacb99682710b794e79a
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:
XTOKEN

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-07
*/

/**
 
X TOKEN

A token and NFT based defi lottery game. 

Buy X
Burn X
Mint XNFT
Win ETH

https://thextoken.net/

*/

pragma solidity 0.8.4;

// SPDX-License-Identifier: Unlicensed

interface IBEP20 {
    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);
}

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

interface PancakeSwapRouter {
    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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

// Contracts and libraries

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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


    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract XTOKEN is Ownable, IBEP20 {
    using SafeMath for uint256;

    uint8 constant _decimals = 9;

    uint256 _totalSupply = 10000000000 * (10 ** _decimals); //Set Supply
    uint256 public _maxTxAmount = _totalSupply * 5 / 1000; //Set max transaction amount. Currently set to 0.5% of the supply.
    uint256 public _walletMax = _totalSupply * 20 / 1000; //Set max wallet amount. Currently set to 2% of the supply.

    address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address pancakeAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    //address pancakeAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E;

    string constant _name = "XTOKEN"; //Set the name of your token.
    string constant _symbol = "X"; //Set the symbol of your token.

    bool public restrictWhales = true; //If true, limits wallet to _walletMax set above.

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

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

    uint256 public developmentFee = 2; // Tax for development costs -- Actual wallet split set below at "amountToDevelopment"
    uint256 public marketingFee = 3; //Tax for Marketing costs -- Actual wallet split set below at "amountToMarketing"
    uint256 public rewardsFee = 0; // Tax for Rewards -- Actual wallet split set below at "amountToRewards"

    uint256 public totalFee; //Ignore this

    address private developmentWallet;
    address private marketingWallet;
    address private rewardsWallet;

    PancakeSwapRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false; //Leave false, enabled after launch.

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 4 / 2000; //Amount to swap for Development/Marketing/Rewards -- Set to 0.2% 

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

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

    constructor() {
        router = PancakeSwapRouter(pancakeAddress);
        pair = PancakeSwapFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        developmentWallet = 0x69d2333997d875308B28863C6947f19D711a0dEb; //Address for development costs
        marketingWallet = 0x9bd438A6A7E82593110e969a967f2DBFA96F5680; //Address for marketing fees
        rewardsWallet = 0x69d2333997d875308B28863C6947f19D711a0dEb; //Address for rewards
        
        isFeeExempt[marketingWallet] = true;
        totalFee = developmentFee.add(marketingFee + rewardsFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

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

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

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    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 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 _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {transferFees();}
        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function transferFees() internal lockTheSwap {
        uint256 tokensToSwap = _balances[address(this)];

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokensToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance;

        uint256 amountToMarketing = amountBNB.div(3);
        uint256 amountToDevelopment = amountBNB.div(3);
        uint256 amountToRewards = amountBNB.div(3);
        
        (bool tmpSuccess1,) = payable(marketingWallet).call{value : amountToMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (bool tmpSuccess2,) = payable(developmentWallet).call{value : amountToDevelopment, gas : 30000}("");
        tmpSuccess2 = false;

        (bool tmpSuccess3,) = payable(rewardsWallet).call{value : amountToRewards, gas : 30000}("");
        tmpSuccess3 = false;

    }

    // CONTRACT OWNER FUNCTIONS

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax = newLimit;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

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

    function setFees(uint256 newDevFee, uint256 newMarketingFee, uint256 newRewardsFee) external onlyOwner {
        developmentFee = newDevFee;
        marketingFee = newMarketingFee;
        rewardsFee = newRewardsFee;

        totalFee = developmentFee.add(marketingFee + rewardsFee);
    }

    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return IBEP20(tokenAddress).transfer(msg.sender, tokens);
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentFee","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":"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":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract PancakeSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newRewardsFee","type":"uint256"}],"name":"setFees","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":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052620000126009600a620005ea565b62000023906402540be400620006b6565b6002556103e860025460056200003a9190620006b6565b62000046919062000580565b6003556103e860025460146200005d9190620006b6565b62000069919062000580565b6004908155600580546001600160a01b031990811661dead179091556006805490911690556007805474017a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a81b03199091161790556002600c8190556003600d556000600e556016805463ffff00ff191662010000179055546107d091620000eb9190620006b6565b620000f7919062000580565b6017553480156200010757600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b158015620001ba57600080fd5b505afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f591906200053c565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025257600080fd5b505afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028d91906200053c565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002d557600080fd5b505af1158015620002ea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031091906200053c565b601480546001600160a01b03199081166001600160a01b03938416178255306000818152600960209081526040808320601354881684528252808320600019908190558654881684528184205533808452600a808452828520805460ff1990811660019081179092559686528386208054881682179055600580548b1687528487208054891683179055928652600b8552838620805488168217905597548916855282852080548716891790559054909716835282208054841686179055601080547369d2333997d875308b28863c6947f19d711a0deb908616811790915560118054739bd438a6a7e82593110e969a967f2dbfa96f56809087168117909155601280549096169091179094559290529290527f0e94dfcbbdf44b9c34c2007b02adf52cfd325620d10cb61d16f9400d87e70ac78054909216179055600e54600d546200047991620004629162000565565b600c54620004cd60201b62000cbc1790919060201c565b600f5560025433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006ee565b600080620004dc838562000565565b905083811015620005335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b6000602082840312156200054e578081fd5b81516001600160a01b038116811462000533578182fd5b600082198211156200057b576200057b620006d8565b500190565b6000826200059c57634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115620005e2578160001904821115620005c657620005c6620006d8565b80851615620005d457918102915b93841c9390800290620005a6565b509250929050565b6000620005fb60ff84168362000602565b9392505050565b600082620006135750600162000536565b81620006225750600062000536565b81600181146200063b5760028114620006465762000666565b600191505062000536565b60ff8411156200065a576200065a620006d8565b50506001821b62000536565b5060208310610133831016604e8410600b84101617156200068b575081810a62000536565b620006978383620005a1565b8060001904821115620006ae57620006ae620006d8565b029392505050565b6000816000190483118215151615620006d357620006d3620006d8565b500290565b634e487b7160e01b600052601160045260246000fd5b611a4f80620006fe6000396000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063a9059cbb116100ab578063f1d5f5171161006f578063f1d5f51714610695578063f2fde38b146106b5578063f84ba65d146106d5578063f887ea40146106f5578063ffb54a991461071557600080fd5b8063a9059cbb146105d8578063bf56b371146105f8578063cec10c111461060e578063da00097d1461062e578063dd62ed3e1461064f57600080fd5b80638b42507f116100f25780638b42507f1461052a5780638da5cb5b1461055a57806395d89b4114610578578063a5f3d003146105a2578063a8aa1b31146105b857600080fd5b8063715018a6146104b75780637d1db4a5146104cc578063807c2d9c146104e2578063893d20e8146104f857600080fd5b80632bb14e1d116101b15780634a74bb02116101755780634a74bb021461040b578063571ac8b01461042b578063658d4b7f1461044b5780636b67c4df1461046b57806370a082311461048157600080fd5b80632bb14e1d14610368578063313ce5671461037e57806333f3d6281461039a5780633f4218e0146103ba57806344de2e4c146103ea57600080fd5b806318160ddd116101f857806318160ddd146102e85780631da1db5e146102fd5780631df4ccfc1461031d57806323b872dd146103335780632b112e491461035357600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102965780630d295980146102c657600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60175481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260068152652c2a27a5a2a760d11b60208201525b6040516102559190611877565b3480156102a257600080fd5b506102b66102b13660046117d1565b61072f565b6040519015158152602001610255565b3480156102d257600080fd5b506102e66102e13660046117fc565b61079c565b005b3480156102f457600080fd5b5060025461024b565b34801561030957600080fd5b506102e6610318366004611834565b6107e2565b34801561032957600080fd5b5061024b600f5481565b34801561033f57600080fd5b506102b661034e366004611764565b610854565b34801561035f57600080fd5b5061024b610916565b34801561037457600080fd5b5061024b600e5481565b34801561038a57600080fd5b5060405160098152602001610255565b3480156103a657600080fd5b506102b66103b53660046117d1565b610968565b3480156103c657600080fd5b506102b66103d53660046116f4565b600a6020526000908152604090205460ff1681565b3480156103f657600080fd5b506007546102b690600160a01b900460ff1681565b34801561041757600080fd5b506016546102b69062010000900460ff1681565b34801561043757600080fd5b506102b66104463660046116f4565b610a13565b34801561045757600080fd5b506102e66104663660046117a4565b610a21565b34801561047757600080fd5b5061024b600d5481565b34801561048d57600080fd5b5061024b61049c3660046116f4565b6001600160a01b031660009081526008602052604090205490565b3480156104c357600080fd5b506102e6610a76565b3480156104d857600080fd5b5061024b60035481565b3480156104ee57600080fd5b5061024b60045481565b34801561050457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b34801561053657600080fd5b506102b66105453660046116f4565b600b6020526000908152604090205460ff1681565b34801561056657600080fd5b506000546001600160a01b0316610512565b34801561058457600080fd5b506040805180820190915260018152600b60fb1b6020820152610289565b3480156105ae57600080fd5b5061024b600c5481565b3480156105c457600080fd5b50601454610512906001600160a01b031681565b3480156105e457600080fd5b506102b66105f33660046117d1565b610aea565b34801561060457600080fd5b5061024b60155481565b34801561061a57600080fd5b506102e661062936600461184c565b610af7565b34801561063a57600080fd5b506016546102b6906301000000900460ff1681565b34801561065b57600080fd5b5061024b61066a36600461172c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106a157600080fd5b506102e66106b0366004611834565b610b4e565b3480156106c157600080fd5b506102e66106d03660046116f4565b610b7d565b3480156106e157600080fd5b506102e66106f03660046117a4565b610c67565b34801561070157600080fd5b50601354610512906001600160a01b031681565b34801561072157600080fd5b506016546102b69060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061078a9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107cf5760405162461bcd60e51b81526004016107c6906118ca565b60405180910390fd5b6016805460ff1916911515919091179055565b6000546001600160a01b0316331461080c5760405162461bcd60e51b81526004016107c6906118ca565b47336108fc606461081d85856119a7565b6108279190611987565b6040518115909202916000818181858888f1935050505015801561084f573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610901576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108dc918490610d1b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61090c848484610d55565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610963906005546001600160a01b031660009081526008602052604090205461095d9060025490611147565b90611147565b905090565b600080546001600160a01b031633146109935760405162461bcd60e51b81526004016107c6906118ca565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156109db57600080fd5b505af11580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f9190611818565b60006107968260001961072f565b6000546001600160a01b03163314610a4b5760405162461bcd60e51b81526004016107c6906118ca565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610aa05760405162461bcd60e51b81526004016107c6906118ca565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061090f338484610d55565b6000546001600160a01b03163314610b215760405162461bcd60e51b81526004016107c6906118ca565b600c839055600d829055600e819055610b46610b3d828461196f565b600c5490610cbc565b600f55505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b81526004016107c6906118ca565b600455565b6000546001600160a01b03163314610ba75760405162461bcd60e51b81526004016107c6906118ca565b6001600160a01b038116610c0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c915760405162461bcd60e51b81526004016107c6906118ca565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610cc9838561196f565b90508381101561090f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c6565b60008184841115610d3f5760405162461bcd60e51b81526004016107c69190611877565b506000610d4c84866119c6565b95945050505050565b601654600090610100900460ff1615610d7a57610d73848484611189565b905061090f565b6001600160a01b03841660009081526001602052604090205460ff16158015610dbc57506001600160a01b03831660009081526001602052604090205460ff16155b15610e0a5760165460ff16610e0a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107c6565b60035482111580610e3357506001600160a01b0384166000908152600b602052604090205460ff165b610e735760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c6565b6014546001600160a01b03163314801590610e965750601654610100900460ff16155b8015610eaa575060165462010000900460ff165b8015610ec757506017543060009081526008602052604090205410155b15610ed457610ed461126f565b601554158015610ef157506014546001600160a01b038481169116145b15610f5d576001600160a01b038416600090815260086020526040902054610f545760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b60448201526064016107c6565b610f5d43601555565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054610faf918490610d1b565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015610ff45750600754600160a01b900460ff165b15611064576004546001600160a01b03841660009081526008602052604090205461101f9084610cbc565b11156110645760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b60448201526064016107c6565b6001600160a01b0384166000908152600a602052604081205460ff161580156110a657506001600160a01b0384166000908152600a602052604090205460ff16155b6110b057826110ba565b6110ba858461155a565b6001600160a01b0385166000908152600860205260409020549091506110e09082610cbc565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111349085815260200190565b60405180910390a3506001949350505050565b600061090f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546111da918490610d1b565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112099083610cbc565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061125d9086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260086020908152604080832054815160028082526060820184529194939092908301908036833701905050905030816000815181106112d357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561132757600080fd5b505afa15801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f9190611710565b8160018151811061138057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906113c69085906000908690309042906004016118ff565b600060405180830381600087803b1580156113e057600080fd5b505af11580156113f4573d6000803e3d6000fd5b50479250600091506114099050826003611605565b90506000611418836003611605565b90506000611427846003611605565b6011546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d806000811461147e576040519150601f19603f3d011682016040523d82523d6000602084013e611483565b606091505b5050601054604051600093508392506001600160a01b039091169061753090869084818181858888f193505050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b5050601254604051600093508392506001600160a01b039091169061753090869084818181858888f193505050503d806000811461153c576040519150601f19603f3d011682016040523d82523d6000602084013e611541565b606091505b50506016805461ff001916905550505050505050505050565b60008061157d6064611577600f548661164790919063ffffffff16565b90611605565b3060009081526008602052604090205490915061159a9082610cbc565b30600081815260086020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115eb9085815260200190565b60405180910390a36115fd8382611147565b949350505050565b600061090f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c6565b60008261165657506000610796565b600061166283856119a7565b90508261166f8583611987565b1461090f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c6565b600081836116e75760405162461bcd60e51b81526004016107c69190611877565b506000610d4c8486611987565b600060208284031215611705578081fd5b813561090f816119f3565b600060208284031215611721578081fd5b815161090f816119f3565b6000806040838503121561173e578081fd5b8235611749816119f3565b91506020830135611759816119f3565b809150509250929050565b600080600060608486031215611778578081fd5b8335611783816119f3565b92506020840135611793816119f3565b929592945050506040919091013590565b600080604083850312156117b6578182fd5b82356117c1816119f3565b9150602083013561175981611a0b565b600080604083850312156117e3578182fd5b82356117ee816119f3565b946020939093013593505050565b60006020828403121561180d578081fd5b813561090f81611a0b565b600060208284031215611829578081fd5b815161090f81611a0b565b600060208284031215611845578081fd5b5035919050565b600080600060608486031215611860578283fd5b505081359360208301359350604090920135919050565b6000602080835283518082850152825b818110156118a357858101830151858201604001528201611887565b818111156118b45783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561194e5784516001600160a01b031683529383019391830191600101611929565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611982576119826119dd565b500190565b6000826119a257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156119c1576119c16119dd565b500290565b6000828210156119d8576119d86119dd565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611a0857600080fd5b50565b8015158114611a0857600080fdfea2646970667358221220b39bdf7d400dbc1da45eec8a9efdd7a53bca6641d794549e652008a7c9bfcded64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063a9059cbb116100ab578063f1d5f5171161006f578063f1d5f51714610695578063f2fde38b146106b5578063f84ba65d146106d5578063f887ea40146106f5578063ffb54a991461071557600080fd5b8063a9059cbb146105d8578063bf56b371146105f8578063cec10c111461060e578063da00097d1461062e578063dd62ed3e1461064f57600080fd5b80638b42507f116100f25780638b42507f1461052a5780638da5cb5b1461055a57806395d89b4114610578578063a5f3d003146105a2578063a8aa1b31146105b857600080fd5b8063715018a6146104b75780637d1db4a5146104cc578063807c2d9c146104e2578063893d20e8146104f857600080fd5b80632bb14e1d116101b15780634a74bb02116101755780634a74bb021461040b578063571ac8b01461042b578063658d4b7f1461044b5780636b67c4df1461046b57806370a082311461048157600080fd5b80632bb14e1d14610368578063313ce5671461037e57806333f3d6281461039a5780633f4218e0146103ba57806344de2e4c146103ea57600080fd5b806318160ddd116101f857806318160ddd146102e85780631da1db5e146102fd5780631df4ccfc1461031d57806323b872dd146103335780632b112e491461035357600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102965780630d295980146102c657600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60175481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260068152652c2a27a5a2a760d11b60208201525b6040516102559190611877565b3480156102a257600080fd5b506102b66102b13660046117d1565b61072f565b6040519015158152602001610255565b3480156102d257600080fd5b506102e66102e13660046117fc565b61079c565b005b3480156102f457600080fd5b5060025461024b565b34801561030957600080fd5b506102e6610318366004611834565b6107e2565b34801561032957600080fd5b5061024b600f5481565b34801561033f57600080fd5b506102b661034e366004611764565b610854565b34801561035f57600080fd5b5061024b610916565b34801561037457600080fd5b5061024b600e5481565b34801561038a57600080fd5b5060405160098152602001610255565b3480156103a657600080fd5b506102b66103b53660046117d1565b610968565b3480156103c657600080fd5b506102b66103d53660046116f4565b600a6020526000908152604090205460ff1681565b3480156103f657600080fd5b506007546102b690600160a01b900460ff1681565b34801561041757600080fd5b506016546102b69062010000900460ff1681565b34801561043757600080fd5b506102b66104463660046116f4565b610a13565b34801561045757600080fd5b506102e66104663660046117a4565b610a21565b34801561047757600080fd5b5061024b600d5481565b34801561048d57600080fd5b5061024b61049c3660046116f4565b6001600160a01b031660009081526008602052604090205490565b3480156104c357600080fd5b506102e6610a76565b3480156104d857600080fd5b5061024b60035481565b3480156104ee57600080fd5b5061024b60045481565b34801561050457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b34801561053657600080fd5b506102b66105453660046116f4565b600b6020526000908152604090205460ff1681565b34801561056657600080fd5b506000546001600160a01b0316610512565b34801561058457600080fd5b506040805180820190915260018152600b60fb1b6020820152610289565b3480156105ae57600080fd5b5061024b600c5481565b3480156105c457600080fd5b50601454610512906001600160a01b031681565b3480156105e457600080fd5b506102b66105f33660046117d1565b610aea565b34801561060457600080fd5b5061024b60155481565b34801561061a57600080fd5b506102e661062936600461184c565b610af7565b34801561063a57600080fd5b506016546102b6906301000000900460ff1681565b34801561065b57600080fd5b5061024b61066a36600461172c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106a157600080fd5b506102e66106b0366004611834565b610b4e565b3480156106c157600080fd5b506102e66106d03660046116f4565b610b7d565b3480156106e157600080fd5b506102e66106f03660046117a4565b610c67565b34801561070157600080fd5b50601354610512906001600160a01b031681565b34801561072157600080fd5b506016546102b69060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061078a9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107cf5760405162461bcd60e51b81526004016107c6906118ca565b60405180910390fd5b6016805460ff1916911515919091179055565b6000546001600160a01b0316331461080c5760405162461bcd60e51b81526004016107c6906118ca565b47336108fc606461081d85856119a7565b6108279190611987565b6040518115909202916000818181858888f1935050505015801561084f573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610901576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108dc918490610d1b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61090c848484610d55565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610963906005546001600160a01b031660009081526008602052604090205461095d9060025490611147565b90611147565b905090565b600080546001600160a01b031633146109935760405162461bcd60e51b81526004016107c6906118ca565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156109db57600080fd5b505af11580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f9190611818565b60006107968260001961072f565b6000546001600160a01b03163314610a4b5760405162461bcd60e51b81526004016107c6906118ca565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610aa05760405162461bcd60e51b81526004016107c6906118ca565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061090f338484610d55565b6000546001600160a01b03163314610b215760405162461bcd60e51b81526004016107c6906118ca565b600c839055600d829055600e819055610b46610b3d828461196f565b600c5490610cbc565b600f55505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b81526004016107c6906118ca565b600455565b6000546001600160a01b03163314610ba75760405162461bcd60e51b81526004016107c6906118ca565b6001600160a01b038116610c0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c915760405162461bcd60e51b81526004016107c6906118ca565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610cc9838561196f565b90508381101561090f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c6565b60008184841115610d3f5760405162461bcd60e51b81526004016107c69190611877565b506000610d4c84866119c6565b95945050505050565b601654600090610100900460ff1615610d7a57610d73848484611189565b905061090f565b6001600160a01b03841660009081526001602052604090205460ff16158015610dbc57506001600160a01b03831660009081526001602052604090205460ff16155b15610e0a5760165460ff16610e0a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107c6565b60035482111580610e3357506001600160a01b0384166000908152600b602052604090205460ff165b610e735760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c6565b6014546001600160a01b03163314801590610e965750601654610100900460ff16155b8015610eaa575060165462010000900460ff165b8015610ec757506017543060009081526008602052604090205410155b15610ed457610ed461126f565b601554158015610ef157506014546001600160a01b038481169116145b15610f5d576001600160a01b038416600090815260086020526040902054610f545760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b60448201526064016107c6565b610f5d43601555565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054610faf918490610d1b565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015610ff45750600754600160a01b900460ff165b15611064576004546001600160a01b03841660009081526008602052604090205461101f9084610cbc565b11156110645760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b60448201526064016107c6565b6001600160a01b0384166000908152600a602052604081205460ff161580156110a657506001600160a01b0384166000908152600a602052604090205460ff16155b6110b057826110ba565b6110ba858461155a565b6001600160a01b0385166000908152600860205260409020549091506110e09082610cbc565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111349085815260200190565b60405180910390a3506001949350505050565b600061090f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546111da918490610d1b565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112099083610cbc565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061125d9086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260086020908152604080832054815160028082526060820184529194939092908301908036833701905050905030816000815181106112d357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561132757600080fd5b505afa15801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f9190611710565b8160018151811061138057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906113c69085906000908690309042906004016118ff565b600060405180830381600087803b1580156113e057600080fd5b505af11580156113f4573d6000803e3d6000fd5b50479250600091506114099050826003611605565b90506000611418836003611605565b90506000611427846003611605565b6011546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d806000811461147e576040519150601f19603f3d011682016040523d82523d6000602084013e611483565b606091505b5050601054604051600093508392506001600160a01b039091169061753090869084818181858888f193505050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b5050601254604051600093508392506001600160a01b039091169061753090869084818181858888f193505050503d806000811461153c576040519150601f19603f3d011682016040523d82523d6000602084013e611541565b606091505b50506016805461ff001916905550505050505050505050565b60008061157d6064611577600f548661164790919063ffffffff16565b90611605565b3060009081526008602052604090205490915061159a9082610cbc565b30600081815260086020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115eb9085815260200190565b60405180910390a36115fd8382611147565b949350505050565b600061090f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c6565b60008261165657506000610796565b600061166283856119a7565b90508261166f8583611987565b1461090f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c6565b600081836116e75760405162461bcd60e51b81526004016107c69190611877565b506000610d4c8486611987565b600060208284031215611705578081fd5b813561090f816119f3565b600060208284031215611721578081fd5b815161090f816119f3565b6000806040838503121561173e578081fd5b8235611749816119f3565b91506020830135611759816119f3565b809150509250929050565b600080600060608486031215611778578081fd5b8335611783816119f3565b92506020840135611793816119f3565b929592945050506040919091013590565b600080604083850312156117b6578182fd5b82356117c1816119f3565b9150602083013561175981611a0b565b600080604083850312156117e3578182fd5b82356117ee816119f3565b946020939093013593505050565b60006020828403121561180d578081fd5b813561090f81611a0b565b600060208284031215611829578081fd5b815161090f81611a0b565b600060208284031215611845578081fd5b5035919050565b600080600060608486031215611860578283fd5b505081359360208301359350604090920135919050565b6000602080835283518082850152825b818110156118a357858101830151858201604001528201611887565b818111156118b45783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561194e5784516001600160a01b031683529383019391830191600101611929565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611982576119826119dd565b500190565b6000826119a257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156119c1576119c16119dd565b500290565b6000828210156119d8576119d86119dd565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611a0857600080fd5b50565b8015158114611a0857600080fdfea2646970667358221220b39bdf7d400dbc1da45eec8a9efdd7a53bca6641d794549e652008a7c9bfcded64736f6c63430008040033

Deployed Bytecode Sourcemap

5093:9821:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7098:54;;;;;;;;;;;;;;;;;;;7982:25:1;;;7970:2;7955:18;7098:54:0;;;;;;;;8564:78;;;;;;;;;;-1:-1:-1;8635:5:0;;;;;;;;;;;;-1:-1:-1;;;8635:5:0;;;;8564:78;;;;;;;:::i;9420:216::-;;;;;;;;;;-1:-1:-1;9420:216:0;;;;;:::i;:::-;;:::i;:::-;;;4047:14:1;;4040:22;4022:41;;4010:2;3995:18;9420:216:0;3977:92:1;13849:98:0;;;;;;;;;;-1:-1:-1;13849:98:0;;;;;:::i;:::-;;:::i;:::-;;8826:86;;;;;;;;;;-1:-1:-1;8898:12:0;;8826:86;;14702:207;;;;;;;;;;-1:-1:-1;14702:207:0;;;;;:::i;:::-;;:::i;6632:23::-;;;;;;;;;;;;;;;;10627:370;;;;;;;;;;-1:-1:-1;10627:370:0;;;;;:::i;:::-;;:::i;9256:156::-;;;;;;;;;;;;;:::i;6521:29::-;;;;;;;;;;;;;;;;8740:78;;;;;;;;;;-1:-1:-1;8740:78:0;;5197:1;9148:36:1;;9136:2;9121:18;8740:78:0;9103:87:1;14520:174:0;;;;;;;;;;-1:-1:-1;14520:174:0;;;;;:::i;:::-;;:::i;6168:43::-;;;;;;;;;;-1:-1:-1;6168:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5964:33;;;;;;;;;;-1:-1:-1;5964:33:0;;;;-1:-1:-1;;;5964:33:0;;;;;;6997:40;;;;;;;;;;-1:-1:-1;6997:40:0;;;;;;;;;;;9644:122;;;;;;;;;;-1:-1:-1;9644:122:0;;;;;:::i;:::-;;:::i;13955:119::-;;;;;;;;;;-1:-1:-1;13955:119:0;;;;;:::i;:::-;;:::i;6401:31::-;;;;;;;;;;;;;;;;9006:103;;;;;;;;;;-1:-1:-1;9006:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9089:18:0;9072:7;9089:18;;;:9;:18;;;;;;;9006:103;4686:148;;;;;;;;;;;;;:::i;5281:53::-;;;;;;;;;;;;;;;;5408:52;;;;;;;;;;;;;;;;8920:78;;;;;;;;;;-1:-1:-1;8972:7:0;4535:6;-1:-1:-1;;;;;4535:6:0;8920:78;;;-1:-1:-1;;;;;3559:32:1;;;3541:51;;3529:2;3514:18;8920:78:0;3496:102:1;6218:47:0;;;;;;;;;;-1:-1:-1;6218:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4470:79;;;;;;;;;;-1:-1:-1;4508:7:0;4535:6;-1:-1:-1;;;;;4535:6:0;4470:79;;8650:82;;;;;;;;;;-1:-1:-1;8723:7:0;;;;;;;;;;;;-1:-1:-1;;;8723:7:0;;;;8650:82;;6274:33;;;;;;;;;;;;;;;;6832:19;;;;;;;;;;-1:-1:-1;6832:19:0;;;;-1:-1:-1;;;;;6832:19:0;;;10125:156;;;;;;;;;;-1:-1:-1;10125:156:0;;;;;:::i;:::-;;:::i;6860:25::-;;;;;;;;;;;;;;;;14217:295;;;;;;;;;;-1:-1:-1;14217:295:0;;;;;:::i;:::-;;:::i;7044:45::-;;;;;;;;;;-1:-1:-1;7044:45:0;;;;;;;;;;;9117:131;;;;;;;;;;-1:-1:-1;9117:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;9218:19:0;;;9201:7;9218:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9117:131;13740:101;;;;;;;;;;-1:-1:-1;13740:101:0;;;;;:::i;:::-;;:::i;4842:244::-;;;;;;;;;;-1:-1:-1;4842:244:0;;;;;:::i;:::-;;:::i;14082:127::-;;;;;;;;;;-1:-1:-1;14082:127:0;;;;;:::i;:::-;;:::i;6794:31::-;;;;;;;;;;-1:-1:-1;6794:31:0;;;;-1:-1:-1;;;;;6794:31:0;;;6892;;;;;;;;;;-1:-1:-1;6892:31:0;;;;;;;;9420:216;9524:10;9495:4;9512:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9512:32:0;;;;;;;;;;:41;;;9569:37;9495:4;;9512:32;;9569:37;;;;9547:6;7982:25:1;;7970:2;7955:18;;7937:76;9569:37:0;;;;;;;;-1:-1:-1;9624:4:0;9420:216;;;;;:::o;13849:98::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;;;;;;;;;13916:11:::1;:23:::0;;-1:-1:-1;;13916:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13849:98::o;14702:207::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;14805:21:::1;14845:10;14837:64;14897:3;14866:28;14878:16:::0;14805:21;14866:28:::1;:::i;:::-;:34;;;;:::i;:::-;14837:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4667:1;14702:207:::0;:::o;10627:370::-;-1:-1:-1;;;;;10748:19:0;;10727:4;10748:19;;;:11;:19;;;;;;;;10768:10;10748:31;;;;;;;;-1:-1:-1;;10748:52:0;10744:188;;10851:69;;;;;;;;;;;-1:-1:-1;;;10851:69:0;;;;;;;;-1:-1:-1;;;;;10851:19:0;;-1:-1:-1;10851:19:0;;;:11;:19;;;;;10871:10;10851:31;;;;;;;;;;:69;;10887:6;;10851:35;:69::i;:::-;-1:-1:-1;;;;;10817:19:0;;;;;;:11;:19;;;;;;;;10837:10;10817:31;;;;;;;:103;10744:188;10949:40;10963:6;10971:9;10982:6;10949:13;:40::i;:::-;10942:47;;10627:370;;;;;;:::o;9256:156::-;9391:11;;-1:-1:-1;;;;;9391:11:0;9309:7;9089:18;;;:9;:18;;;;;;9336:68;;9363:11;;-1:-1:-1;;;;;9363:11:0;9072:7;9089:18;;;:9;:18;;;;;;9336:40;;:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;9329:75;;9256:156;:::o;14520:174::-;14605:12;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;14637:49:::1;::::0;-1:-1:-1;;;14637:49:0;;14667:10:::1;14637:49;::::0;::::1;3777:51:1::0;3844:18;;;3837:34;;;-1:-1:-1;;;;;14637:29:0;::::1;::::0;::::1;::::0;3750:18:1;;14637:49:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9644:122::-:0;9699:4;9723:35;9731:7;-1:-1:-1;;9723:7:0;:35::i;13955:119::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14038:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;14038:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13955:119::o;4686:148::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;4793:1:::1;4777:6:::0;;4756:40:::1;::::0;-1:-1:-1;;;;;4777:6:0;;::::1;::::0;4756:40:::1;::::0;4793:1;;4756:40:::1;4824:1;4807:19:::0;;-1:-1:-1;;;;;;4807:19:0::1;::::0;;4686:148::o;10125:156::-;10205:4;10229:44;10243:10;10255:9;10266:6;10229:13;:44::i;14217:295::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;14331:14:::1;:26:::0;;;14368:12:::1;:30:::0;;;14409:10:::1;:26:::0;;;14459:45:::1;14478:25;14422:13:::0;14383:15;14478:25:::1;:::i;:::-;14459:14;::::0;;:18:::1;:45::i;:::-;14448:8;:56:::0;-1:-1:-1;;;14217:295:0:o;13740:101::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;13812:10:::1;:21:::0;13740:101::o;4842:244::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4931:22:0;::::1;4923:73;;;::::0;-1:-1:-1;;;4923:73:0;;5463:2:1;4923:73:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;5541:34;5521:18;;;5514:62;-1:-1:-1;;;5592:18:1;;;5585:36;5638:19;;4923:73:0::1;5435:228:1::0;4923:73:0::1;5033:6;::::0;;5012:38:::1;::::0;-1:-1:-1;;;;;5012:38:0;;::::1;::::0;5033:6;::::1;::::0;5012:38:::1;::::0;::::1;5061:6;:17:::0;;-1:-1:-1;;;;;;5061:17:0::1;-1:-1:-1::0;;;;;5061:17:0;;;::::1;::::0;;;::::1;::::0;;4842:244::o;14082:127::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3906:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14169:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;14169:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14082:127::o;2682:179::-;2740:7;;2772:5;2776:1;2772;:5;:::i;:::-;2760:17;;2801:1;2796;:6;;2788:46;;;;-1:-1:-1;;;2788:46:0;;5870:2:1;2788:46:0;;;5852:21:1;5909:2;5889:18;;;5882:30;5948:29;5928:18;;;5921:57;5995:18;;2788:46:0;5842:177:1;3013:190:0;3099:7;3135:12;3127:6;;;;3119:29;;;;-1:-1:-1;;;3119:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3159:9:0;3171:5;3175:1;3171;:5;:::i;:::-;3159:17;3013:190;-1:-1:-1;;;;;3013:190:0:o;11005:1273::-;11118:16;;11097:4;;11118:16;;;;;11114:73;;;11144:41;11159:6;11167:9;11178:6;11144:14;:41::i;:::-;11137:48;;;;11114:73;-1:-1:-1;;;;;11201:22:0;;;;;;:14;:22;;;;;;;;11200:23;:53;;;;-1:-1:-1;;;;;;11228:25:0;;;;;;:14;:25;;;;;;;;11227:26;11200:53;11197:128;;;11277:11;;;;11269:44;;;;-1:-1:-1;;;11269:44:0;;6577:2:1;11269:44:0;;;6559:21:1;6616:2;6596:18;;;6589:30;-1:-1:-1;;;6635:18:1;;;6628:50;6695:18;;11269:44:0;6549:170:1;11269:44:0;11355:12;;11345:6;:22;;:49;;;-1:-1:-1;;;;;;11371:23:0;;;;;;:15;:23;;;;;;;;11345:49;11337:79;;;;-1:-1:-1;;;11337:79:0;;5117:2:1;11337:79:0;;;5099:21:1;5156:2;5136:18;;;5129:30;-1:-1:-1;;;5175:18:1;;;5168:47;5232:18;;11337:79:0;5089:167:1;11337:79:0;11445:4;;-1:-1:-1;;;;;11445:4:0;11431:10;:18;;;;:39;;-1:-1:-1;11454:16:0;;;;;;;11453:17;11431:39;:64;;;;-1:-1:-1;11474:21:0;;;;;;;11431:64;:109;;;;-1:-1:-1;11527:13:0;;11517:4;11499:24;;;;:9;:24;;;;;;:41;;11431:109;11427:132;;;11543:14;:12;:14::i;:::-;9841:10;;:15;;;11573:32;;-1:-1:-1;11601:4:0;;-1:-1:-1;;;;;11588:17:0;;;11601:4;;11588:17;11573:32;11569:144;;;-1:-1:-1;;;;;11630:17:0;;11650:1;11630:17;;;:9;:17;;;;;;11622:56;;;;-1:-1:-1;;;11622:56:0;;6226:2:1;11622:56:0;;;6208:21:1;6265:2;6245:18;;;6238:30;-1:-1:-1;;;6284:18:1;;;6277:52;6346:18;;11622:56:0;6198:172:1;11622:56:0;11693:8;9923:12;9910:10;:25;9872:71;11693:8;11777:53;;;;;;;;;;;-1:-1:-1;;;11777:53:0;;;;;;;;-1:-1:-1;;;;;11777:17:0;;-1:-1:-1;11777:17:0;;;:9;:17;;;;;;;;:53;;11799:6;;11777:21;:53::i;:::-;-1:-1:-1;;;;;11757:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;11848:26;;;;;:15;:26;;;;;;;11847:27;:45;;;;-1:-1:-1;11878:14:0;;-1:-1:-1;;;11878:14:0;;;;11847:45;11843:157;;;11953:10;;-1:-1:-1;;;;;11917:20:0;;;;;;:9;:20;;;;;;:32;;11942:6;11917:24;:32::i;:::-;:46;;11909:79;;;;-1:-1:-1;;;11909:79:0;;7689:2:1;11909:79:0;;;7671:21:1;7728:2;7708:18;;;7701:30;-1:-1:-1;;;7747:18:1;;;7740:50;7807:18;;11909:79:0;7661:170:1;11909:79:0;-1:-1:-1;;;;;12035:19:0;;12012;12035;;;:11;:19;;;;;;;;12034:20;:47;;;;-1:-1:-1;;;;;;12059:22:0;;;;;;:11;:22;;;;;;;;12058:23;12034:47;:85;;12113:6;12034:85;;;12084:26;12095:6;12103;12084:10;:26::i;:::-;-1:-1:-1;;;;;12153:20:0;;;;;;:9;:20;;;;;;12012:107;;-1:-1:-1;12153:37:0;;12012:107;12153:24;:37::i;:::-;-1:-1:-1;;;;;12130:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12208:40;;;;;;;;;;12236:11;7982:25:1;;7970:2;7955:18;;7937:76;12208:40:0;;;;;;;;-1:-1:-1;12266:4:0;;11005:1273;-1:-1:-1;;;;11005:1273:0:o;2869:136::-;2927:7;2954:43;2958:1;2961;2954:43;;;;;;;;;;;;;;;;;:3;:43::i;10289:330::-;10419:53;;;;;;;;;;;-1:-1:-1;;;10419:53:0;;;;;;;;-1:-1:-1;;;;;10419:17:0;;10382:4;10419:17;;;:9;:17;;;;;;;:53;;10441:6;;10419:21;:53::i;:::-;-1:-1:-1;;;;;10399:17:0;;;;;;;:9;:17;;;;;;:73;;;;10506:20;;;;;;;:32;;10531:6;10506:24;:32::i;:::-;-1:-1:-1;;;;;10483:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10554:35;;;;;;;;;;10582:6;7982:25:1;;7970:2;7955:18;;7937:76;10554:35:0;;;;;;;;-1:-1:-1;10607:4:0;10289:330;;;;;:::o;12619:1078::-;7324:16;:23;;-1:-1:-1;;7324:23:0;;;;;12716:4:::1;-1:-1:-1::0;12698:24:0;;;:9:::1;:24;::::0;;;;;;;;12759:16;;12773:1:::1;12759:16:::0;;;;;::::1;::::0;;12698:24;;-1:-1:-1;12759:16:0;;;;::::1;::::0;12698:24;12759:16:::1;::::0;::::1;;::::0;-1:-1:-1;12759:16:0::1;12735:40;;12804:4;12786;12791:1;12786:7;;;;;;-1:-1:-1::0;;;12786:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12786:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12830:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12830:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12786:7;;12830:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12820:4;12825:1;12820:7;;;;;;-1:-1:-1::0;;;12820:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12820:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12856:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12856:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12928:12;;12856:6:::1;::::0;12971:4;;12998::::1;::::0;13018:15:::1;::::0;12856:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13077:21:0::1;::::0;-1:-1:-1;13057:17:0::1;::::0;-1:-1:-1;13139:16:0::1;::::0;-1:-1:-1;13077:21:0;13153:1:::1;13139:13;:16::i;:::-;13111:44:::0;-1:-1:-1;13166:27:0::1;13196:16;:9:::0;13210:1:::1;13196:13;:16::i;:::-;13166:46:::0;-1:-1:-1;13223:23:0::1;13249:16;:9:::0;13263:1:::1;13249:13;:16::i;:::-;13316:15;::::0;13308:73:::1;::::0;13223:42;;-1:-1:-1;13287:16:0::1;::::0;-1:-1:-1;;;;;13316:15:0;;::::1;::::0;13371:5:::1;::::0;13346:17;;13287:16;13308:73;13287:16;13308:73;13346:17;13316:15;13371:5;13308:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;13454:17:0::1;::::0;13446:77:::1;::::0;13406:5:::1;::::0;-1:-1:-1;13406:5:0;;-1:-1:-1;;;;;;13454:17:0;;::::1;::::0;13513:5:::1;::::0;13486:19;;13406:5;13446:77;13406:5;13446:77;13486:19;13454:17;13513:5;13446:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;13596:13:0::1;::::0;13588:69:::1;::::0;13548:5:::1;::::0;-1:-1:-1;13548:5:0;;-1:-1:-1;;;;;;13596:13:0;;::::1;::::0;13647:5:::1;::::0;13624:15;;13548:5;13588:69;13548:5;13588:69;13624:15;13596:13;13647:5;13588:69:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;7370:16:0;:24;;-1:-1:-1;;7370:24:0;;;-1:-1:-1;;;;;;;;;;12619:1078:0:o;12286:325::-;12356:7;12376:17;12396:29;12421:3;12396:20;12407:8;;12396:6;:10;;:20;;;;:::i;:::-;:24;;:29::i;:::-;12483:4;12465:24;;;;:9;:24;;;;;;12376:49;;-1:-1:-1;12465:39:0;;12376:49;12465:28;:39::i;:::-;12456:4;12438:24;;;;:9;:24;;;;;;;:66;;;;12520:42;;-1:-1:-1;;;;;12520:42:0;;;;;;;12552:9;7982:25:1;;7970:2;7955:18;;7937:76;12520:42:0;;;;;;;;12582:21;:6;12593:9;12582:10;:21::i;:::-;12575:28;12286:325;-1:-1:-1;;;;12286:325:0:o;3441:132::-;3499:7;3526:39;3530:1;3533;3526:39;;;;;;;;;;;;;;;;;:3;:39::i;3211:222::-;3269:7;3293:6;3289:23;;-1:-1:-1;3309:1:0;3302:8;;3289:23;3322:9;3334:5;3338:1;3334;:5;:::i;:::-;3322:17;-1:-1:-1;3367:1:0;3358:5;3362:1;3322:17;3358:5;:::i;:::-;:10;3350:56;;;;-1:-1:-1;;;3350:56:0;;6926:2:1;3350:56:0;;;6908:21:1;6965:2;6945:18;;;6938:30;7004:34;6984:18;;;6977:62;-1:-1:-1;;;7055:18:1;;;7048:31;7096:19;;3350:56:0;6898:223:1;3581:189:0;3667:7;3702:12;3695:5;3687:28;;;;-1:-1:-1;;;3687:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3726:9:0;3738:5;3742:1;3738;:5;:::i;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:392::-;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:2;;;1563:6;1555;1548:22;1510:2;1607:9;1594:23;1626:31;1651:5;1626:31;:::i;:::-;1676:5;-1:-1:-1;1733:2:1;1718:18;;1705:32;1746:30;1705:32;1746:30;:::i;1813:325::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:2;;;1963:6;1955;1948:22;1910:2;2007:9;1994:23;2026:31;2051:5;2026:31;:::i;:::-;2076:5;2128:2;2113:18;;;;2100:32;;-1:-1:-1;;;1900:238:1:o;2143:251::-;2199:6;2252:2;2240:9;2231:7;2227:23;2223:32;2220:2;;;2273:6;2265;2258:22;2220:2;2317:9;2304:23;2336:28;2358:5;2336:28;:::i;2399:255::-;2466:6;2519:2;2507:9;2498:7;2494:23;2490:32;2487:2;;;2540:6;2532;2525:22;2487:2;2577:9;2571:16;2596:28;2618:5;2596:28;:::i;2659:190::-;2718:6;2771:2;2759:9;2750:7;2746:23;2742:32;2739:2;;;2792:6;2784;2777:22;2739:2;-1:-1:-1;2820:23:1;;2729:120;-1:-1:-1;2729:120:1:o;2854:326::-;2931:6;2939;2947;3000:2;2988:9;2979:7;2975:23;2971:32;2968:2;;;3021:6;3013;3006:22;2968:2;-1:-1:-1;;3049:23:1;;;3119:2;3104:18;;3091:32;;-1:-1:-1;3170:2:1;3155:18;;;3142:32;;2958:222;-1:-1:-1;2958:222:1:o;4307:603::-;4419:4;4448:2;4477;4466:9;4459:21;4509:6;4503:13;4552:6;4547:2;4536:9;4532:18;4525:34;4577:4;4590:140;4604:6;4601:1;4598:13;4590:140;;;4699:14;;;4695:23;;4689:30;4665:17;;;4684:2;4661:26;4654:66;4619:10;;4590:140;;;4748:6;4745:1;4742:13;4739:2;;;4818:4;4813:2;4804:6;4793:9;4789:22;4785:31;4778:45;4739:2;-1:-1:-1;4894:2:1;4873:15;-1:-1:-1;;4869:29:1;4854:45;;;;4901:2;4850:54;;4428:482;-1:-1:-1;;;4428:482:1:o;7126:356::-;7328:2;7310:21;;;7347:18;;;7340:30;7406:34;7401:2;7386:18;;7379:62;7473:2;7458:18;;7300:182::o;8018:983::-;8280:4;8328:3;8317:9;8313:19;8359:6;8348:9;8341:25;8385:2;8423:6;8418:2;8407:9;8403:18;8396:34;8466:3;8461:2;8450:9;8446:18;8439:31;8490:6;8525;8519:13;8556:6;8548;8541:22;8594:3;8583:9;8579:19;8572:26;;8633:2;8625:6;8621:15;8607:29;;8654:4;8667:195;8681:6;8678:1;8675:13;8667:195;;;8746:13;;-1:-1:-1;;;;;8742:39:1;8730:52;;8837:15;;;;8802:12;;;;8778:1;8696:9;8667:195;;;-1:-1:-1;;;;;;;8918:32:1;;;;8913:2;8898:18;;8891:60;-1:-1:-1;;;8982:3:1;8967:19;8960:35;8879:3;8289:712;-1:-1:-1;;;8289:712:1:o;9195:128::-;9235:3;9266:1;9262:6;9259:1;9256:13;9253:2;;;9272:18;;:::i;:::-;-1:-1:-1;9308:9:1;;9243:80::o;9328:217::-;9368:1;9394;9384:2;;-1:-1:-1;;;9419:31:1;;9473:4;9470:1;9463:15;9501:4;9426:1;9491:15;9384:2;-1:-1:-1;9530:9:1;;9374:171::o;9550:168::-;9590:7;9656:1;9652;9648:6;9644:14;9641:1;9638:21;9633:1;9626:9;9619:17;9615:45;9612:2;;;9663:18;;:::i;:::-;-1:-1:-1;9703:9:1;;9602:116::o;9723:125::-;9763:4;9791:1;9788;9785:8;9782:2;;;9796:18;;:::i;:::-;-1:-1:-1;9833:9:1;;9772:76::o;9853:127::-;9914:10;9909:3;9905:20;9902:1;9895:31;9945:4;9942:1;9935:15;9969:4;9966:1;9959:15;9985:131;-1:-1:-1;;;;;10060:31:1;;10050:42;;10040:2;;10106:1;10103;10096:12;10040:2;10030:86;:::o;10121:118::-;10207:5;10200:13;10193:21;10186:5;10183:32;10173:2;;10229:1;10226;10219:12

Swarm Source

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