ETH Price: $3,700.74 (+3.89%)

Token

ERC-20: BE YOUR SELF (BEYOURSELF)
 

Overview

Max Total Supply

999,000,000,000,000,000 BEYOURSELF

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,521,299,205,048,926.228568657 BEYOURSELF

Value
$0.00
0xfac548234c2ef547ab51b0e5f8dced4422b91029
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:
BEYOURSELF

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

/*
$BEYOURSELF - RELATED TO ELON TWEET ! https://twitter.com/elonmusk/status/1485955529813987330

Telegram: https://t.me/BeYourSelfToken

✅ Max Tx: 10%

*/

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract BEYOURSELF is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 999000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;

    address payable private _devAddrWallet;

    string private constant _name = "BE YOUR SELF";
    string private constant _symbol = "BEYOURSELF";

    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;

    uint256 public percentForLPBurn = 25; // 25 = .25%
    bool public lpBurnEnabled = true;
    uint256 public lpBurnFrequency = 3600 seconds;
    uint256 public lastLpBurnTime;

    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;

    uint256 private _maxTxAmount = 50000000000000000 * 10**9; // 5%

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event LPburnTriggerd();

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


    constructor () {
        _devAddrWallet = payable(0xbcb7b29d8825fb7E50DC2516782610c919386fFF);
        
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devAddrWallet] = true;

        emit Transfer(address(0x11a4638BA441b5fBE6094E6f1f8e8cBB61f39FD6), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _feeAddr1 = 2;
        _feeAddr2 = 8;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (10 seconds);
            }


            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = 8;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _devAddrWallet.transfer(amount);
    }

    function getDevAddress() public view returns(address) {
        return _devAddrWallet;
    }
 
    function setDevAddress(address _dev) public onlyOwner() {
        _devAddrWallet = payable(_dev);
        _isExcludedFromFee[_dev] = true;
    }

    function liftTxMax() public onlyOwner() {
        _maxTxAmount = 999000000000000000 * 10**9;
    }

    function getMaxTxAmount() public view returns(uint256) {
        return _maxTxAmount;
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 50000000000000000 * 10**9; // 5%
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool){
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;

        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);

        if (amountToBurn > 0){
            _transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        
        emit LPburnTriggerd();

        return true;
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _devAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _devAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }

    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":[],"name":"LPburnTriggerd","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDevAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liftTxMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dev","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]

60806040526200001e6b033a5a7a8401b34f4700000060001962000230565b6200002c906000196200020a565b600855600e805462ffffff60a81b191690556019600f556010805460ff19166001179055610e106011556107086013556a295be96e640669720000006015553480156200007857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b03191673bcb7b29d8825fb7e50dc2516782610c919386fff17905560085460026000620000ef3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000129620001fb60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54909116835291208054909216179055620001883390565b6001600160a01b03167311a4638ba441b5fbe6094e6f1f8e8cbb61f39fd66001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033a5a7a8401b34f47000000604051620001ed91815260200190565b60405180910390a362000253565b6000546001600160a01b031690565b6000828210156200022b57634e487b7160e01b600052601160045260246000fd5b500390565b6000826200024e57634e487b7160e01b600052601260045260246000fd5b500690565b611ea780620002636000396000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063b515566a11610095578063dd62ed3e11610064578063dd62ed3e146104e6578063e34d99bf1461052c578063fe72b27a1461054a578063ff2d76251461056a57600080fd5b8063b515566a1461047c578063c3c8cd801461049c578063c9567bf9146104b1578063d0d41fe1146104c657600080fd5b806395d89b41116100d157806395d89b41146103fd5780639ec22c0e14610430578063a4c82a0014610446578063a9059cbb1461045c57600080fd5b806370a0823114610396578063715018a6146103b65780638da5cb5b146103cb57600080fd5b8063273123b711610164578063313ce5671161013e578063313ce567146103305780635932ead11461034c5780636d8b05271461036c5780636fc3eaec1461038157600080fd5b8063273123b7146102e05780632c3e486c146103005780632e82f1a01461031657600080fd5b8063184c16c5116101a0578063184c16c514610272578063199ffc72146102885780631bbae6e01461029e57806323b872dd146102c057600080fd5b806306fdde03146101d2578063095ea7b31461021957806318160ddd1461024957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b5060408051808201909152600c81526b2122902ca7aaa91029a2a62360a11b60208201525b6040516102109190611c5e565b60405180910390f35b34801561022557600080fd5b50610239610234366004611acc565b61057f565b6040519015158152602001610210565b34801561025557600080fd5b506b033a5a7a8401b34f470000005b604051908152602001610210565b34801561027e57600080fd5b5061026460135481565b34801561029457600080fd5b50610264600f5481565b3480156102aa57600080fd5b506102be6102b9366004611bfe565b610596565b005b3480156102cc57600080fd5b506102396102db366004611a8b565b6105ce565b3480156102ec57600080fd5b506102be6102fb366004611a18565b610637565b34801561030c57600080fd5b5061026460115481565b34801561032257600080fd5b506010546102399060ff1681565b34801561033c57600080fd5b5060405160098152602001610210565b34801561035857600080fd5b506102be610367366004611bc4565b610682565b34801561037857600080fd5b50601554610264565b34801561038d57600080fd5b506102be6106ca565b3480156103a257600080fd5b506102646103b1366004611a18565b6106f7565b3480156103c257600080fd5b506102be610719565b3480156103d757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610210565b34801561040957600080fd5b5060408051808201909152600a8152692122aca7aaa929a2a62360b11b6020820152610203565b34801561043c57600080fd5b5061026460145481565b34801561045257600080fd5b5061026460125481565b34801561046857600080fd5b50610239610477366004611acc565b61078d565b34801561048857600080fd5b506102be610497366004611af8565b61079a565b3480156104a857600080fd5b506102be610830565b3480156104bd57600080fd5b506102be610866565b3480156104d257600080fd5b506102be6104e1366004611a18565b610c2f565b3480156104f257600080fd5b50610264610501366004611a52565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561053857600080fd5b50600c546001600160a01b03166103e5565b34801561055657600080fd5b50610239610565366004611bfe565b610c93565b34801561057657600080fd5b506102be610e78565b600061058c338484610eb4565b5060015b92915050565b6000546001600160a01b031633146105c95760405162461bcd60e51b81526004016105c090611cb3565b60405180910390fd5b601555565b60006105db848484610fd8565b61062d843361062885604051806060016040528060288152602001611e4a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611325565b610eb4565b5060019392505050565b6000546001600160a01b031633146106615760405162461bcd60e51b81526004016105c090611cb3565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146106ac5760405162461bcd60e51b81526004016105c090611cb3565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b0316146106ea57600080fd5b476106f48161135f565b50565b6001600160a01b03811660009081526002602052604081205461059090611399565b6000546001600160a01b031633146107435760405162461bcd60e51b81526004016105c090611cb3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061058c338484610fd8565b6000546001600160a01b031633146107c45760405162461bcd60e51b81526004016105c090611cb3565b60005b815181101561082c576001600660008484815181106107e8576107e8611dfa565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061082481611dc9565b9150506107c7565b5050565b600c546001600160a01b0316336001600160a01b03161461085057600080fd5b600061085b306106f7565b90506106f48161141d565b6000546001600160a01b031633146108905760405162461bcd60e51b81526004016105c090611cb3565b600e54600160a01b900460ff16156108ea5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c0565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561092a30826b033a5a7a8401b34f47000000610eb4565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611a35565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e357600080fd5b505afa1580156109f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b9190611a35565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a6357600080fd5b505af1158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190611a35565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d7194730610acb816106f7565b600080610ae06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b4357600080fd5b505af1158015610b57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b7c9190611c30565b5050600e80546a295be96e6406697200000060155563ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610bf757600080fd5b505af1158015610c0b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611be1565b6000546001600160a01b03163314610c595760405162461bcd60e51b81526004016105c090611cb3565b600c80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b600080546001600160a01b03163314610cbe5760405162461bcd60e51b81526004016105c090611cb3565b6103e8821115610d235760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b60648201526084016105c0565b42601455600e546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b158015610d6d57600080fd5b505afa158015610d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da59190611c17565b90506000610dbf612710610db984876115a6565b90611625565b90508015610de057600e54610de0906001600160a01b031661dead83610fd8565b600e546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015610e2a57600080fd5b505af1158015610e3e573d6000803e3d6000fd5b50506040517fb2c008fc733b2f8fc32b0ecd2b228e89b78b58bcd834ddde4b34f42495a92b80925060009150a1600193505050505b919050565b6000546001600160a01b03163314610ea25760405162461bcd60e51b81526004016105c090611cb3565b6b033a5a7a8401b34f47000000601555565b6001600160a01b038316610f165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c0565b6001600160a01b038216610f775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c0565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661103c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c0565b6001600160a01b03821661109e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c0565b600081116111005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c0565b6002600a556008600b556000546001600160a01b0384811691161480159061113657506000546001600160a01b03838116911614155b15611315576001600160a01b03831660009081526006602052604090205460ff1615801561117d57506001600160a01b03821660009081526006602052604090205460ff16155b61118657600080fd5b600e546001600160a01b0384811691161480156111b15750600d546001600160a01b03838116911614155b80156111d657506001600160a01b03821660009081526005602052604090205460ff16155b80156111eb5750600e54600160b81b900460ff165b15611248576015548111156111ff57600080fd5b6001600160a01b038216600090815260076020526040902054421161122357600080fd5b61122e42600a611d59565b6001600160a01b0383166000908152600760205260409020555b600e546001600160a01b0383811691161480156112735750600d546001600160a01b03848116911614155b801561129857506001600160a01b03831660009081526005602052604090205460ff16155b156112a8576002600a556008600b555b60006112b3306106f7565b600e54909150600160a81b900460ff161580156112de5750600e546001600160a01b03858116911614155b80156112f35750600e54600160b01b900460ff165b15611313576113018161141d565b478015611311576113114761135f565b505b505b611320838383611667565b505050565b600081848411156113495760405162461bcd60e51b81526004016105c09190611c5e565b5060006113568486611db2565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561082c573d6000803e3d6000fd5b60006008548211156114005760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c0565b600061140a611672565b90506114168382611625565b9392505050565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061146557611465611dfa565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114b957600080fd5b505afa1580156114cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f19190611a35565b8160018151811061150457611504611dfa565b6001600160a01b039283166020918202929092010152600d5461152a9130911684610eb4565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611563908590600090869030904290600401611ce8565b600060405180830381600087803b15801561157d57600080fd5b505af1158015611591573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6000826115b557506000610590565b60006115c18385611d93565b9050826115ce8583611d71565b146114165760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c0565b600061141683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611695565b6113208383836116c3565b600080600061167f6117ba565b909250905061168e8282611625565b9250505090565b600081836116b65760405162461bcd60e51b81526004016105c09190611c5e565b5060006113568486611d71565b6000806000806000806116d587611802565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611707908761185f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461173690866118a1565b6001600160a01b03891660009081526002602052604090205561175881611900565b611762848361194a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117a791815260200190565b60405180910390a3505050505050505050565b60085460009081906b033a5a7a8401b34f470000006117d98282611625565b8210156117f9575050600854926b033a5a7a8401b34f4700000092509050565b90939092509050565b600080600080600080600080600061181f8a600a54600b5461196e565b925092509250600061182f611672565b905060008060006118428e8787876119bd565b919e509c509a509598509396509194505050505091939550919395565b600061141683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611325565b6000806118ae8385611d59565b9050838110156114165760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c0565b600061190a611672565b9050600061191883836115a6565b3060009081526002602052604090205490915061193590826118a1565b30600090815260026020526040902055505050565b600854611957908361185f565b60085560095461196790826118a1565b6009555050565b60008080806119826064610db989896115a6565b905060006119956064610db98a896115a6565b905060006119ad826119a78b8661185f565b9061185f565b9992985090965090945050505050565b60008080806119cc88866115a6565b905060006119da88876115a6565b905060006119e888886115a6565b905060006119fa826119a7868661185f565b939b939a50919850919650505050505050565b8035610e7381611e26565b600060208284031215611a2a57600080fd5b813561141681611e26565b600060208284031215611a4757600080fd5b815161141681611e26565b60008060408385031215611a6557600080fd5b8235611a7081611e26565b91506020830135611a8081611e26565b809150509250929050565b600080600060608486031215611aa057600080fd5b8335611aab81611e26565b92506020840135611abb81611e26565b929592945050506040919091013590565b60008060408385031215611adf57600080fd5b8235611aea81611e26565b946020939093013593505050565b60006020808385031215611b0b57600080fd5b823567ffffffffffffffff80821115611b2357600080fd5b818501915085601f830112611b3757600080fd5b813581811115611b4957611b49611e10565b8060051b604051601f19603f83011681018181108582111715611b6e57611b6e611e10565b604052828152858101935084860182860187018a1015611b8d57600080fd5b600095505b83861015611bb757611ba381611a0d565b855260019590950194938601938601611b92565b5098975050505050505050565b600060208284031215611bd657600080fd5b813561141681611e3b565b600060208284031215611bf357600080fd5b815161141681611e3b565b600060208284031215611c1057600080fd5b5035919050565b600060208284031215611c2957600080fd5b5051919050565b600080600060608486031215611c4557600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611c8b57858101830151858201604001528201611c6f565b81811115611c9d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d385784516001600160a01b031683529383019391830191600101611d13565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611d6c57611d6c611de4565b500190565b600082611d8e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611dad57611dad611de4565b500290565b600082821015611dc457611dc4611de4565b500390565b6000600019821415611ddd57611ddd611de4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146106f457600080fd5b80151581146106f457600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e68b3ce4a8bc34c1129d65c7f9be31d5474dae87a9bf47ef7ff14abbc9794d6a64736f6c63430008060033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806370a08231116100f7578063b515566a11610095578063dd62ed3e11610064578063dd62ed3e146104e6578063e34d99bf1461052c578063fe72b27a1461054a578063ff2d76251461056a57600080fd5b8063b515566a1461047c578063c3c8cd801461049c578063c9567bf9146104b1578063d0d41fe1146104c657600080fd5b806395d89b41116100d157806395d89b41146103fd5780639ec22c0e14610430578063a4c82a0014610446578063a9059cbb1461045c57600080fd5b806370a0823114610396578063715018a6146103b65780638da5cb5b146103cb57600080fd5b8063273123b711610164578063313ce5671161013e578063313ce567146103305780635932ead11461034c5780636d8b05271461036c5780636fc3eaec1461038157600080fd5b8063273123b7146102e05780632c3e486c146103005780632e82f1a01461031657600080fd5b8063184c16c5116101a0578063184c16c514610272578063199ffc72146102885780631bbae6e01461029e57806323b872dd146102c057600080fd5b806306fdde03146101d2578063095ea7b31461021957806318160ddd1461024957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b5060408051808201909152600c81526b2122902ca7aaa91029a2a62360a11b60208201525b6040516102109190611c5e565b60405180910390f35b34801561022557600080fd5b50610239610234366004611acc565b61057f565b6040519015158152602001610210565b34801561025557600080fd5b506b033a5a7a8401b34f470000005b604051908152602001610210565b34801561027e57600080fd5b5061026460135481565b34801561029457600080fd5b50610264600f5481565b3480156102aa57600080fd5b506102be6102b9366004611bfe565b610596565b005b3480156102cc57600080fd5b506102396102db366004611a8b565b6105ce565b3480156102ec57600080fd5b506102be6102fb366004611a18565b610637565b34801561030c57600080fd5b5061026460115481565b34801561032257600080fd5b506010546102399060ff1681565b34801561033c57600080fd5b5060405160098152602001610210565b34801561035857600080fd5b506102be610367366004611bc4565b610682565b34801561037857600080fd5b50601554610264565b34801561038d57600080fd5b506102be6106ca565b3480156103a257600080fd5b506102646103b1366004611a18565b6106f7565b3480156103c257600080fd5b506102be610719565b3480156103d757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610210565b34801561040957600080fd5b5060408051808201909152600a8152692122aca7aaa929a2a62360b11b6020820152610203565b34801561043c57600080fd5b5061026460145481565b34801561045257600080fd5b5061026460125481565b34801561046857600080fd5b50610239610477366004611acc565b61078d565b34801561048857600080fd5b506102be610497366004611af8565b61079a565b3480156104a857600080fd5b506102be610830565b3480156104bd57600080fd5b506102be610866565b3480156104d257600080fd5b506102be6104e1366004611a18565b610c2f565b3480156104f257600080fd5b50610264610501366004611a52565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561053857600080fd5b50600c546001600160a01b03166103e5565b34801561055657600080fd5b50610239610565366004611bfe565b610c93565b34801561057657600080fd5b506102be610e78565b600061058c338484610eb4565b5060015b92915050565b6000546001600160a01b031633146105c95760405162461bcd60e51b81526004016105c090611cb3565b60405180910390fd5b601555565b60006105db848484610fd8565b61062d843361062885604051806060016040528060288152602001611e4a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611325565b610eb4565b5060019392505050565b6000546001600160a01b031633146106615760405162461bcd60e51b81526004016105c090611cb3565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146106ac5760405162461bcd60e51b81526004016105c090611cb3565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b0316146106ea57600080fd5b476106f48161135f565b50565b6001600160a01b03811660009081526002602052604081205461059090611399565b6000546001600160a01b031633146107435760405162461bcd60e51b81526004016105c090611cb3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061058c338484610fd8565b6000546001600160a01b031633146107c45760405162461bcd60e51b81526004016105c090611cb3565b60005b815181101561082c576001600660008484815181106107e8576107e8611dfa565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061082481611dc9565b9150506107c7565b5050565b600c546001600160a01b0316336001600160a01b03161461085057600080fd5b600061085b306106f7565b90506106f48161141d565b6000546001600160a01b031633146108905760405162461bcd60e51b81526004016105c090611cb3565b600e54600160a01b900460ff16156108ea5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c0565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561092a30826b033a5a7a8401b34f47000000610eb4565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611a35565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e357600080fd5b505afa1580156109f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b9190611a35565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a6357600080fd5b505af1158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190611a35565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d7194730610acb816106f7565b600080610ae06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b4357600080fd5b505af1158015610b57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b7c9190611c30565b5050600e80546a295be96e6406697200000060155563ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610bf757600080fd5b505af1158015610c0b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611be1565b6000546001600160a01b03163314610c595760405162461bcd60e51b81526004016105c090611cb3565b600c80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b600080546001600160a01b03163314610cbe5760405162461bcd60e51b81526004016105c090611cb3565b6103e8821115610d235760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b60648201526084016105c0565b42601455600e546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b158015610d6d57600080fd5b505afa158015610d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da59190611c17565b90506000610dbf612710610db984876115a6565b90611625565b90508015610de057600e54610de0906001600160a01b031661dead83610fd8565b600e546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015610e2a57600080fd5b505af1158015610e3e573d6000803e3d6000fd5b50506040517fb2c008fc733b2f8fc32b0ecd2b228e89b78b58bcd834ddde4b34f42495a92b80925060009150a1600193505050505b919050565b6000546001600160a01b03163314610ea25760405162461bcd60e51b81526004016105c090611cb3565b6b033a5a7a8401b34f47000000601555565b6001600160a01b038316610f165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c0565b6001600160a01b038216610f775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c0565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661103c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c0565b6001600160a01b03821661109e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c0565b600081116111005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c0565b6002600a556008600b556000546001600160a01b0384811691161480159061113657506000546001600160a01b03838116911614155b15611315576001600160a01b03831660009081526006602052604090205460ff1615801561117d57506001600160a01b03821660009081526006602052604090205460ff16155b61118657600080fd5b600e546001600160a01b0384811691161480156111b15750600d546001600160a01b03838116911614155b80156111d657506001600160a01b03821660009081526005602052604090205460ff16155b80156111eb5750600e54600160b81b900460ff165b15611248576015548111156111ff57600080fd5b6001600160a01b038216600090815260076020526040902054421161122357600080fd5b61122e42600a611d59565b6001600160a01b0383166000908152600760205260409020555b600e546001600160a01b0383811691161480156112735750600d546001600160a01b03848116911614155b801561129857506001600160a01b03831660009081526005602052604090205460ff16155b156112a8576002600a556008600b555b60006112b3306106f7565b600e54909150600160a81b900460ff161580156112de5750600e546001600160a01b03858116911614155b80156112f35750600e54600160b01b900460ff165b15611313576113018161141d565b478015611311576113114761135f565b505b505b611320838383611667565b505050565b600081848411156113495760405162461bcd60e51b81526004016105c09190611c5e565b5060006113568486611db2565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561082c573d6000803e3d6000fd5b60006008548211156114005760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c0565b600061140a611672565b90506114168382611625565b9392505050565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061146557611465611dfa565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114b957600080fd5b505afa1580156114cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f19190611a35565b8160018151811061150457611504611dfa565b6001600160a01b039283166020918202929092010152600d5461152a9130911684610eb4565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611563908590600090869030904290600401611ce8565b600060405180830381600087803b15801561157d57600080fd5b505af1158015611591573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6000826115b557506000610590565b60006115c18385611d93565b9050826115ce8583611d71565b146114165760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c0565b600061141683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611695565b6113208383836116c3565b600080600061167f6117ba565b909250905061168e8282611625565b9250505090565b600081836116b65760405162461bcd60e51b81526004016105c09190611c5e565b5060006113568486611d71565b6000806000806000806116d587611802565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611707908761185f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461173690866118a1565b6001600160a01b03891660009081526002602052604090205561175881611900565b611762848361194a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117a791815260200190565b60405180910390a3505050505050505050565b60085460009081906b033a5a7a8401b34f470000006117d98282611625565b8210156117f9575050600854926b033a5a7a8401b34f4700000092509050565b90939092509050565b600080600080600080600080600061181f8a600a54600b5461196e565b925092509250600061182f611672565b905060008060006118428e8787876119bd565b919e509c509a509598509396509194505050505091939550919395565b600061141683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611325565b6000806118ae8385611d59565b9050838110156114165760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c0565b600061190a611672565b9050600061191883836115a6565b3060009081526002602052604090205490915061193590826118a1565b30600090815260026020526040902055505050565b600854611957908361185f565b60085560095461196790826118a1565b6009555050565b60008080806119826064610db989896115a6565b905060006119956064610db98a896115a6565b905060006119ad826119a78b8661185f565b9061185f565b9992985090965090945050505050565b60008080806119cc88866115a6565b905060006119da88876115a6565b905060006119e888886115a6565b905060006119fa826119a7868661185f565b939b939a50919850919650505050505050565b8035610e7381611e26565b600060208284031215611a2a57600080fd5b813561141681611e26565b600060208284031215611a4757600080fd5b815161141681611e26565b60008060408385031215611a6557600080fd5b8235611a7081611e26565b91506020830135611a8081611e26565b809150509250929050565b600080600060608486031215611aa057600080fd5b8335611aab81611e26565b92506020840135611abb81611e26565b929592945050506040919091013590565b60008060408385031215611adf57600080fd5b8235611aea81611e26565b946020939093013593505050565b60006020808385031215611b0b57600080fd5b823567ffffffffffffffff80821115611b2357600080fd5b818501915085601f830112611b3757600080fd5b813581811115611b4957611b49611e10565b8060051b604051601f19603f83011681018181108582111715611b6e57611b6e611e10565b604052828152858101935084860182860187018a1015611b8d57600080fd5b600095505b83861015611bb757611ba381611a0d565b855260019590950194938601938601611b92565b5098975050505050505050565b600060208284031215611bd657600080fd5b813561141681611e3b565b600060208284031215611bf357600080fd5b815161141681611e3b565b600060208284031215611c1057600080fd5b5035919050565b600060208284031215611c2957600080fd5b5051919050565b600080600060608486031215611c4557600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611c8b57858101830151858201604001528201611c6f565b81811115611c9d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d385784516001600160a01b031683529383019391830191600101611d13565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611d6c57611d6c611de4565b500190565b600082611d8e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611dad57611dad611de4565b500290565b600082821015611dc457611dc4611de4565b500390565b6000600019821415611ddd57611ddd611de4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146106f457600080fd5b80151581146106f457600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e68b3ce4a8bc34c1129d65c7f9be31d5474dae87a9bf47ef7ff14abbc9794d6a64736f6c63430008060033

Deployed Bytecode Sourcemap

6133:11733:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8215:83;;;;;;;;;;-1:-1:-1;8285:5:0;;;;;;;;;;;;-1:-1:-1;;;8285:5:0;;;;8215:83;;;;;;;:::i;:::-;;;;;;;;9067:161;;;;;;;;;;-1:-1:-1;9067:161:0;;;;;:::i;:::-;;:::i;:::-;;;5726:14:1;;5719:22;5701:41;;5689:2;5674:18;9067:161:0;5656:92:1;8492:95:0;;;;;;;;;;-1:-1:-1;6638:26:0;8492:95;;;10822:25:1;;;10810:2;10795:18;8492:95:0;10777:76:1;7453:47:0;;;;;;;;;;;;;;;;7268:36;;;;;;;;;;;;;;;;17219:112;;;;;;;;;;-1:-1:-1;17219:112:0;;;;;:::i;:::-;;:::i;:::-;;9236:313;;;;;;;;;;-1:-1:-1;9236:313:0;;;;;:::i;:::-;;:::i;17511:88::-;;;;;;;;;;-1:-1:-1;17511:88:0;;;;;:::i;:::-;;:::i;7363:45::-;;;;;;;;;;;;;;;;7324:32;;;;;;;;;;-1:-1:-1;7324:32:0;;;;;;;;8401:83;;;;;;;;;;-1:-1:-1;8401:83:0;;7018:1;11985:36:1;;11973:2;11958:18;8401:83:0;11940:87:1;9557:103:0;;;;;;;;;;-1:-1:-1;9557:103:0;;;;;:::i;:::-;;:::i;12677:93::-;;;;;;;;;;-1:-1:-1;12750:12:0;;12677:93;;15595:193;;;;;;;;;;;;;:::i;8595:138::-;;;;;;;;;;-1:-1:-1;8595:138:0;;;;;:::i;:::-;;:::i;5214:148::-;;;;;;;;;;;;;:::i;5000:79::-;;;;;;;;;;-1:-1:-1;5038:7:0;5065:6;-1:-1:-1;;;;;5065:6:0;5000:79;;;-1:-1:-1;;;;;4317:32:1;;;4299:51;;4287:2;4272:18;5000:79:0;4254:102:1;8306:87:0;;;;;;;;;;-1:-1:-1;8378:7:0;;;;;;;;;;;;-1:-1:-1;;;8378:7:0;;;;8306:87;;7507:35;;;;;;;;;;;;;;;;7415:29;;;;;;;;;;;;;;;;8741:167;;;;;;;;;;-1:-1:-1;8741:167:0;;;;;:::i;:::-;;:::i;17339:164::-;;;;;;;;;;-1:-1:-1;17339:164:0;;;;;:::i;:::-;;:::i;15393:194::-;;;;;;;;;;;;;:::i;12778:828::-;;;;;;;;;;;;;:::i;12414:147::-;;;;;;;;;;-1:-1:-1;12414:147:0;;;;;:::i;:::-;;:::i;8916:143::-;;;;;;;;;;-1:-1:-1;8916:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9024:18:0;;;8997:7;9024:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8916:143;12311:94;;;;;;;;;;-1:-1:-1;12383:14:0;;-1:-1:-1;;;;;12383:14:0;12311:94;;13614:710;;;;;;;;;;-1:-1:-1;13614:710:0;;;;;:::i;:::-;;:::i;12569:100::-;;;;;;;;;;;;;:::i;9067:161::-;9142:4;9159:39;348:10;9182:7;9191:6;9159:8;:39::i;:::-;-1:-1:-1;9216:4:0;9067:161;;;;;:::o;17219:112::-;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;;;;;;;;;17297:12:::1;:26:::0;17219:112::o;9236:313::-;9334:4;9351:36;9361:6;9369:9;9380:6;9351:9;:36::i;:::-;9398:121;9407:6;348:10;9429:89;9467:6;9429:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9429:19:0;;;;;;:11;:19;;;;;;;;348:10;9429:33;;;;;;;;;;:37;:89::i;:::-;9398:8;:121::i;:::-;-1:-1:-1;9537:4:0;9236:313;;;;;:::o;17511:88::-;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17571:12:0::1;17586:5;17571:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;17571:20:0::1;::::0;;17511:88::o;9557:103::-;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;9629:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;9629:23:0::1;-1:-1:-1::0;;;;9629:23:0;;::::1;::::0;;;::::1;::::0;;9557:103::o;15595:193::-;15661:14;;-1:-1:-1;;;;;15661:14:0;348:10;-1:-1:-1;;;;;15645:30:0;;15637:39;;;;;;15716:21;15748:32;15716:21;15748:12;:32::i;:::-;15626:162;15595:193::o;8595:138::-;-1:-1:-1;;;;;8708:16:0;;8661:7;8708:16;;;:7;:16;;;;;;8688:37;;:19;:37::i;5214:148::-;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;5321:1:::1;5305:6:::0;;5284:40:::1;::::0;-1:-1:-1;;;;;5305:6:0;;::::1;::::0;5284:40:::1;::::0;5321:1;;5284:40:::1;5352:1;5335:19:::0;;-1:-1:-1;;;;;;5335:19:0::1;::::0;;5214:148::o;8741:167::-;8819:4;8836:42;348:10;8860:9;8871:6;8836:9;:42::i;17339:164::-;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;17413:6:::1;17408:88;17429:5;:12;17425:1;:16;17408:88;;;17480:4;17463;:14;17468:5;17474:1;17468:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17463:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17463:14:0;:21;;-1:-1:-1;;17463:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17443:3;::::1;::::0;::::1;:::i;:::-;;;;17408:88;;;;17339:164:::0;:::o;15393:194::-;15459:14;;-1:-1:-1;;;;;15459:14:0;348:10;-1:-1:-1;;;;;15443:30:0;;15435:39;;;;;;15485:23;15511:24;15529:4;15511:9;:24::i;:::-;15485:50;;15546:33;15563:15;15546:16;:33::i;12778:828::-;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;12842:11:::1;::::0;-1:-1:-1;;;12842:11:0;::::1;;;12841:12;12833:47;;;::::0;-1:-1:-1;;;12833:47:0;;10526:2:1;12833:47:0::1;::::0;::::1;10508:21:1::0;10565:2;10545:18;;;10538:30;10604:25;10584:18;;;10577:53;10647:18;;12833:47:0::1;10498:173:1::0;12833:47:0::1;13002:15;:34:::0;;-1:-1:-1;;;;;;13002:34:0::1;12948:42;13002:34:::0;;::::1;::::0;;;13047:58:::1;13064:4;12948:42:::0;6638:26:::1;13047:8;:58::i;:::-;13150:16;-1:-1:-1::0;;;;;13150:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13132:56:0::1;;13197:4;13204:16;-1:-1:-1::0;;;;;13204:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13132:96;::::0;-1:-1:-1;;;;;;13132:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4591:15:1;;;13132:96:0::1;::::0;::::1;4573:34:1::0;4643:15;;4623:18;;;4616:43;4508:18;;13132:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13116:13;:112:::0;;-1:-1:-1;;;;;;13116:112:0::1;-1:-1:-1::0;;;;;13116:112:0;;::::1;;::::0;;13239:15:::1;::::0;::::1;:31;13278:21;13309:4;13315:24;13309:4:::0;13315:9:::1;:24::i;:::-;13340:1;13342::::0;13344:7:::1;5038::::0;5065:6;-1:-1:-1;;;;;5065:6:0;;5000:79;13344:7:::1;13239:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13239:129:0;;;-1:-1:-1;;;;;5308:15:1;;;13239:129:0::1;::::0;::::1;5290:34:1::0;5340:18;;;5333:34;;;;5383:18;;;5376:34;;;;5426:18;;;5419:34;5490:15;;;5469:19;;;5462:44;13352:15:0::1;5522:19:1::0;;;5515:35;5224:19;;13239:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13379:11:0::1;:18:::0;;13456:25:::1;13441:12;:40:::0;-1:-1:-1;;;;13498:18:0;;-1:-1:-1;;;13498:18:0;;;;13565:15:::1;::::0;13527:71:::1;::::0;-1:-1:-1;;;13527:71:0;;-1:-1:-1;;;;;13565:15:0;;::::1;13527:71;::::0;::::1;4844:51:1::0;-1:-1:-1;;4911:18:1;;;4904:34;13534:13:0;;;-1:-1:-1;13527:29:0::1;::::0;4817:18:1;;13527:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12414:147::-:0;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;12481:14:::1;:30:::0;;-1:-1:-1;;;;;12481:30:0;;::::1;-1:-1:-1::0;;;;;;12481:30:0;;::::1;::::0;::::1;::::0;;:14:::1;12522:24:::0;;;:18:::1;:24;::::0;;;;:31;;-1:-1:-1;;12522:31:0::1;12481:30:::0;12522:31:::1;::::0;;12414:147::o;13614:710::-;13698:4;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;13733:4:::1;13722:7;:15;;13714:70;;;::::0;-1:-1:-1;;;13714:70:0;;9304:2:1;13714:70:0::1;::::0;::::1;9286:21:1::0;9343:2;9323:18;;;9316:30;9382:34;9362:18;;;9355:62;-1:-1:-1;;;9433:18:1;;;9426:40;9483:19;;13714:70:0::1;9276:232:1::0;13714:70:0::1;13818:15;13795:20;:38:::0;13892:13:::1;::::0;13877:29:::1;::::0;-1:-1:-1;;;13877:29:0;;-1:-1:-1;;;;;13892:13:0;;::::1;13877:29;::::0;::::1;4299:51:1::0;13846:28:0::1;::::0;13877:4:::1;::::0;:14:::1;::::0;4272:18:1;;13877:29:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13846:60:::0;-1:-1:-1;13919:20:0::1;13942:44;13980:5;13942:33;13846:60:::0;13967:7;13942:24:::1;:33::i;:::-;:37:::0;::::1;:44::i;:::-;13919:67:::0;-1:-1:-1;14003:16:0;;13999:103:::1;;14045:13;::::0;14035:55:::1;::::0;-1:-1:-1;;;;;14045:13:0::1;14068:6;14077:12:::0;14035:9:::1;:55::i;:::-;14214:13;::::0;14239:11:::1;::::0;;-1:-1:-1;;;;;;14239:11:0;;;;-1:-1:-1;;;;;14214:13:0;;::::1;::::0;;;14239:9:::1;::::0;:11:::1;::::0;;::::1;::::0;14177:19:::1;::::0;14239:11;;;;;;;14177:19;14214:13;14239:11;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14276:16:0::1;::::0;::::1;::::0;-1:-1:-1;14276:16:0;;-1:-1:-1;14276:16:0::1;14312:4;14305:11;;;;;5197:1;13614:710:::0;;;:::o;12569:100::-;5127:6;;-1:-1:-1;;;;;5127:6:0;348:10;5127:22;5119:67;;;;-1:-1:-1;;;5119:67:0;;;;;;;:::i;:::-;12635:26:::1;12620:12;:41:::0;12569:100::o;9930:335::-;-1:-1:-1;;;;;10023:19:0;;10015:68;;;;-1:-1:-1;;;10015:68:0;;10121:2:1;10015:68:0;;;10103:21:1;10160:2;10140:18;;;10133:30;10199:34;10179:18;;;10172:62;-1:-1:-1;;;10250:18:1;;;10243:34;10294:19;;10015:68:0;10093:226:1;10015:68:0;-1:-1:-1;;;;;10102:21:0;;10094:68;;;;-1:-1:-1;;;10094:68:0;;7372:2:1;10094:68:0;;;7354:21:1;7411:2;7391:18;;;7384:30;7450:34;7430:18;;;7423:62;-1:-1:-1;;;7501:18:1;;;7494:32;7543:19;;10094:68:0;7344:224:1;10094:68:0;-1:-1:-1;;;;;10173:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10225:32;;10822:25:1;;;10225:32:0;;10795:18:1;10225:32:0;;;;;;;9930:335;;;:::o;10273:1435::-;-1:-1:-1;;;;;10361:18:0;;10353:68;;;;-1:-1:-1;;;10353:68:0;;9715:2:1;10353:68:0;;;9697:21:1;9754:2;9734:18;;;9727:30;9793:34;9773:18;;;9766:62;-1:-1:-1;;;9844:18:1;;;9837:35;9889:19;;10353:68:0;9687:227:1;10353:68:0;-1:-1:-1;;;;;10440:16:0;;10432:64;;;;-1:-1:-1;;;10432:64:0;;6557:2:1;10432:64:0;;;6539:21:1;6596:2;6576:18;;;6569:30;6635:34;6615:18;;;6608:62;-1:-1:-1;;;6686:18:1;;;6679:33;6729:19;;10432:64:0;6529:225:1;10432:64:0;10524:1;10515:6;:10;10507:64;;;;-1:-1:-1;;;10507:64:0;;8894:2:1;10507:64:0;;;8876:21:1;8933:2;8913:18;;;8906:30;8972:34;8952:18;;;8945:62;-1:-1:-1;;;9023:18:1;;;9016:39;9072:19;;10507:64:0;8866:231:1;10507:64:0;10594:1;10582:9;:13;10618:1;10606:9;:13;-1:-1:-1;5065:6:0;-1:-1:-1;;;;;10634:15:0;;;5065:6;;10634:15;;;;:32;;-1:-1:-1;5038:7:0;5065:6;-1:-1:-1;;;;;10653:13:0;;;5065:6;;10653:13;;10634:32;10630:1028;;;-1:-1:-1;;;;;10692:10:0;;;;;;:4;:10;;;;;;;;10691:11;:24;;;;-1:-1:-1;;;;;;10707:8:0;;;;;;:4;:8;;;;;;;;10706:9;10691:24;10683:33;;;;;;10743:13;;-1:-1:-1;;;;;10735:21:0;;;10743:13;;10735:21;:55;;;;-1:-1:-1;10774:15:0;;-1:-1:-1;;;;;10760:30:0;;;10774:15;;10760:30;;10735:55;:83;;;;-1:-1:-1;;;;;;10796:22:0;;;;;;:18;:22;;;;;;;;10794:24;10735:83;:102;;;;-1:-1:-1;10822:15:0;;-1:-1:-1;;;10822:15:0;;;;10735:102;10731:325;;;10905:12;;10895:6;:22;;10887:31;;;;;;-1:-1:-1;;;;;10945:12:0;;;;;;:8;:12;;;;;;10960:15;-1:-1:-1;10937:39:0;;;;;;11010:30;:15;11029:10;11010:30;:::i;:::-;-1:-1:-1;;;;;10995:12:0;;;;;;:8;:12;;;;;:45;10731:325;11084:13;;-1:-1:-1;;;;;11078:19:0;;;11084:13;;11078:19;:55;;;;-1:-1:-1;11117:15:0;;-1:-1:-1;;;;;11101:32:0;;;11117:15;;11101:32;;11078:55;:85;;;;-1:-1:-1;;;;;;11139:24:0;;;;;;:18;:24;;;;;;;;11137:26;11078:85;11074:171;;;11196:1;11184:9;:13;11228:1;11216:9;:13;11074:171;11259:28;11290:24;11308:4;11290:9;:24::i;:::-;11334:6;;11259:55;;-1:-1:-1;;;;11334:6:0;;;;11333:7;:32;;;;-1:-1:-1;11352:13:0;;-1:-1:-1;;;;;11344:21:0;;;11352:13;;11344:21;;11333:32;:47;;;;-1:-1:-1;11369:11:0;;-1:-1:-1;;;11369:11:0;;;;11333:47;11329:318;;;11401:38;11418:20;11401:16;:38::i;:::-;11487:21;11530:22;;11527:105;;11577:35;11590:21;11577:12;:35::i;:::-;11382:265;11329:318;10668:990;10630:1028;11670:30;11685:4;11690:2;11693:6;11670:14;:30::i;:::-;10273:1435;;;:::o;3855:190::-;3941:7;3977:12;3969:6;;;;3961:29;;;;-1:-1:-1;;;3961:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4001:9:0;4013:5;4017:1;4013;:5;:::i;:::-;4001:17;3855:190;-1:-1:-1;;;;;3855:190:0:o;12207:96::-;12264:14;;:31;;-1:-1:-1;;;;;12264:14:0;;;;:31;;;;;12288:6;;12264:14;:31;:14;:31;12288:6;12264:14;:31;;;;;;;;;;;;;;;;;;;9668:254;9735:7;9774;;9763;:18;;9755:73;;;;-1:-1:-1;;;9755:73:0;;6961:2:1;9755:73:0;;;6943:21:1;7000:2;6980:18;;;6973:30;7039:34;7019:18;;;7012:62;-1:-1:-1;;;7090:18:1;;;7083:40;7140:19;;9755:73:0;6933:232:1;9755:73:0;9839:19;9862:10;:8;:10::i;:::-;9839:33;-1:-1:-1;9890:24:0;:7;9839:33;9890:11;:24::i;:::-;9883:31;9668:254;-1:-1:-1;;;9668:254:0:o;11716:483::-;7735:6;:13;;-1:-1:-1;;;;7735:13:0;-1:-1:-1;;;7735:13:0;;;11818:16:::1;::::0;;11832:1:::1;11818:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11818:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11818:16:0::1;11794:40;;11863:4;11845;11850:1;11845:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11845:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11889:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11889:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11845:7;;11889:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11879:4;11884:1;11879:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11879:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11954:15:::1;::::0;11922:62:::1;::::0;11939:4:::1;::::0;11954:15:::1;11972:11:::0;11922:8:::1;:62::i;:::-;11995:15;::::0;:196:::1;::::0;-1:-1:-1;;;11995:196:0;;-1:-1:-1;;;;;11995:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12076:11;;11995:15:::1;::::0;12118:4;;12145::::1;::::0;12165:15:::1;::::0;11995:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7771:6:0;:14;;-1:-1:-1;;;;7771:14:0;;;-1:-1:-1;;;;11716:483:0:o;4053:246::-;4111:7;4135:6;4131:47;;-1:-1:-1;4165:1:0;4158:8;;4131:47;4188:9;4200:5;4204:1;4200;:5;:::i;:::-;4188:17;-1:-1:-1;4233:1:0;4224:5;4228:1;4188:17;4224:5;:::i;:::-;:10;4216:56;;;;-1:-1:-1;;;4216:56:0;;8131:2:1;4216:56:0;;;8113:21:1;8170:2;8150:18;;;8143:30;8209:34;8189:18;;;8182:62;-1:-1:-1;;;8260:18:1;;;8253:31;8301:19;;4216:56:0;8103:223:1;4307:132:0;4365:7;4392:39;4396:1;4399;4392:39;;;;;;;;;;;;;;;;;:3;:39::i;14332:146::-;14426:44;14444:6;14452:9;14463:6;14426:17;:44::i;17048:163::-;17089:7;17110:15;17127;17146:19;:17;:19::i;:::-;17109:56;;-1:-1:-1;17109:56:0;-1:-1:-1;17183:20:0;17109:56;;17183:11;:20::i;:::-;17176:27;;;;17048:163;:::o;4447:189::-;4533:7;4568:12;4561:5;4553:28;;;;-1:-1:-1;;;4553:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4592:9:0;4604:5;4608:1;4604;:5;:::i;14486:487::-;14585:15;14602:23;14627:12;14641:23;14666:12;14680:13;14697:19;14708:7;14697:10;:19::i;:::-;-1:-1:-1;;;;;14745:15:0;;;;;;:7;:15;;;;;;14584:132;;-1:-1:-1;14584:132:0;;-1:-1:-1;14584:132:0;;-1:-1:-1;14584:132:0;-1:-1:-1;14584:132:0;-1:-1:-1;14584:132:0;-1:-1:-1;14745:28:0;;14584:132;14745:19;:28::i;:::-;-1:-1:-1;;;;;14727:15:0;;;;;;;:7;:15;;;;;;:46;;;;14805:18;;;;;;;:39;;14828:15;14805:22;:39::i;:::-;-1:-1:-1;;;;;14784:18:0;;;;;;:7;:18;;;;;:60;14855:16;14865:5;14855:9;:16::i;:::-;14882:23;14894:4;14900;14882:11;:23::i;:::-;14938:9;-1:-1:-1;;;;;14921:44:0;14930:6;-1:-1:-1;;;;;14921:44:0;;14949:15;14921:44;;;;10822:25:1;;10810:2;10795:18;;10777:76;14921:44:0;;;;;;;;14573:400;;;;;;14486:487;;;:::o;17607:256::-;17704:7;;17657;;;;6638:26;17772:20;17704:7;6638:26;17772:11;:20::i;:::-;17762:7;:30;17758:61;;;-1:-1:-1;;17802:7:0;;;6638:26;;-1:-1:-1;17607:256:0;-1:-1:-1;17607:256:0:o;17758:61::-;17838:7;;17847;;-1:-1:-1;17607:256:0;-1:-1:-1;17607:256:0:o;15796:471::-;15855:7;15864;15873;15882;15891;15900;15921:23;15946:12;15960:13;15977:42;15989:7;15998:9;;16009;;15977:11;:42::i;:::-;15920:99;;;;;;16030:19;16053:10;:8;:10::i;:::-;16030:33;;16075:15;16092:23;16117:12;16133:46;16145:7;16154:4;16160:5;16167:11;16133;:46::i;:::-;16074:105;;-1:-1:-1;16074:105:0;-1:-1:-1;16074:105:0;-1:-1:-1;16230:15:0;;-1:-1:-1;16247:4:0;;-1:-1:-1;16253:5:0;;-1:-1:-1;;;;;15796:471:0;;;;;;;:::o;3711:136::-;3769:7;3796:43;3800:1;3803;3796:43;;;;;;;;;;;;;;;;;:3;:43::i;3524:179::-;3582:7;;3614:5;3618:1;3614;:5;:::i;:::-;3602:17;;3643:1;3638;:6;;3630:46;;;;-1:-1:-1;;;3630:46:0;;7775:2:1;3630:46:0;;;7757:21:1;7814:2;7794:18;;;7787:30;7853:29;7833:18;;;7826:57;7900:18;;3630:46:0;7747:177:1;14981:212:0;15034:19;15057:10;:8;:10::i;:::-;15034:33;-1:-1:-1;15078:13:0;15094:22;:5;15034:33;15094:9;:22::i;:::-;15168:4;15152:22;;;;:7;:22;;;;;;15078:38;;-1:-1:-1;15152:33:0;;15078:38;15152:26;:33::i;:::-;15143:4;15127:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14981:212:0:o;15201:147::-;15279:7;;:17;;15291:4;15279:11;:17::i;:::-;15269:7;:27;15320:10;;:20;;15335:4;15320:14;:20::i;:::-;15307:10;:33;-1:-1:-1;;15201:147:0:o;16275:351::-;16368:7;;;;16421:28;16445:3;16421:19;:7;16433:6;16421:11;:19::i;:28::-;16406:43;-1:-1:-1;16460:13:0;16476:29;16501:3;16476:20;:7;16488;16476:11;:20::i;:29::-;16460:45;-1:-1:-1;16516:23:0;16542:28;16460:45;16542:17;:7;16554:4;16542:11;:17::i;:::-;:21;;:28::i;:::-;16516:54;16606:4;;-1:-1:-1;16612:5:0;;-1:-1:-1;16275:351:0;;-1:-1:-1;;;;;16275:351:0:o;16634:409::-;16744:7;;;;16800:24;:7;16812:11;16800;:24::i;:::-;16782:42;-1:-1:-1;16835:12:0;16850:21;:4;16859:11;16850:8;:21::i;:::-;16835:36;-1:-1:-1;16882:13:0;16898:22;:5;16908:11;16898:9;:22::i;:::-;16882:38;-1:-1:-1;16931:23:0;16957:28;16882:38;16957:17;:7;16969:4;16957:11;:17::i;:28::-;17004:7;;;;-1:-1:-1;17030:4:0;;-1:-1:-1;16634:409:0;;-1:-1:-1;;;;;;;16634:409:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;281:1;278;271:12;233:2;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:2;;;544:1;541;534:12;496:2;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:2;;;806:1;803;796:12;758:2;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;748:301;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:2;;;1216:1;1213;1206:12;1168:2;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1158:352;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1158:352::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:2;;;1660:1;1657;1650:12;1612:2;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1602:228:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:2;;;2009:1;2006;1999:12;1961:2;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:2;;;2135:1;2132;2125:12;2105:2;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:2;;2240:1;2237;2230:12;2189:2;2276;2263:16;2298:2;2294;2291:10;2288:2;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:2;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:2:1;;;2735:1;2732;2725:12;2686:2;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1930:1037;-1:-1:-1;;;;;;;;1930:1037:1:o;2972:241::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:2;;;3097:1;3094;3087:12;3049:2;3136:9;3123:23;3155:28;3177:5;3155:28;:::i;3218:245::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:2;;;3354:1;3351;3344:12;3306:2;3386:9;3380:16;3405:28;3427:5;3405:28;:::i;3468:180::-;3527:6;3580:2;3568:9;3559:7;3555:23;3551:32;3548:2;;;3596:1;3593;3586:12;3548:2;-1:-1:-1;3619:23:1;;3538:110;-1:-1:-1;3538:110:1:o;3653:184::-;3723:6;3776:2;3764:9;3755:7;3751:23;3747:32;3744:2;;;3792:1;3789;3782:12;3744:2;-1:-1:-1;3815:16:1;;3734:103;-1:-1:-1;3734:103:1:o;3842:306::-;3930:6;3938;3946;3999:2;3987:9;3978:7;3974:23;3970:32;3967:2;;;4015:1;4012;4005:12;3967:2;4044:9;4038:16;4028:26;;4094:2;4083:9;4079:18;4073:25;4063:35;;4138:2;4127:9;4123:18;4117:25;4107:35;;3957:191;;;;;:::o;5753:597::-;5865:4;5894:2;5923;5912:9;5905:21;5955:6;5949:13;5998:6;5993:2;5982:9;5978:18;5971:34;6023:1;6033:140;6047:6;6044:1;6041:13;6033:140;;;6142:14;;;6138:23;;6132:30;6108:17;;;6127:2;6104:26;6097:66;6062:10;;6033:140;;;6191:6;6188:1;6185:13;6182:2;;;6261:1;6256:2;6247:6;6236:9;6232:22;6228:31;6221:42;6182:2;-1:-1:-1;6334:2:1;6313:15;-1:-1:-1;;6309:29:1;6294:45;;;;6341:2;6290:54;;5874:476;-1:-1:-1;;;5874:476:1:o;8331:356::-;8533:2;8515:21;;;8552:18;;;8545:30;8611:34;8606:2;8591:18;;8584:62;8678:2;8663:18;;8505:182::o;10858:980::-;11120:4;11168:3;11157:9;11153:19;11199:6;11188:9;11181:25;11225:2;11263:6;11258:2;11247:9;11243:18;11236:34;11306:3;11301:2;11290:9;11286:18;11279:31;11330:6;11365;11359:13;11396:6;11388;11381:22;11434:3;11423:9;11419:19;11412:26;;11473:2;11465:6;11461:15;11447:29;;11494:1;11504:195;11518:6;11515:1;11512:13;11504:195;;;11583:13;;-1:-1:-1;;;;;11579:39:1;11567:52;;11674:15;;;;11639:12;;;;11615:1;11533:9;11504:195;;;-1:-1:-1;;;;;;;11755:32:1;;;;11750:2;11735:18;;11728:60;-1:-1:-1;;;11819:3:1;11804:19;11797:35;11716:3;11129:709;-1:-1:-1;;;11129:709:1:o;12032:128::-;12072:3;12103:1;12099:6;12096:1;12093:13;12090:2;;;12109:18;;:::i;:::-;-1:-1:-1;12145:9:1;;12080:80::o;12165:217::-;12205:1;12231;12221:2;;12275:10;12270:3;12266:20;12263:1;12256:31;12310:4;12307:1;12300:15;12338:4;12335:1;12328:15;12221:2;-1:-1:-1;12367:9:1;;12211:171::o;12387:168::-;12427:7;12493:1;12489;12485:6;12481:14;12478:1;12475:21;12470:1;12463:9;12456:17;12452:45;12449:2;;;12500:18;;:::i;:::-;-1:-1:-1;12540:9:1;;12439:116::o;12560:125::-;12600:4;12628:1;12625;12622:8;12619:2;;;12633:18;;:::i;:::-;-1:-1:-1;12670:9:1;;12609:76::o;12690:135::-;12729:3;-1:-1:-1;;12750:17:1;;12747:2;;;12770:18;;:::i;:::-;-1:-1:-1;12817:1:1;12806:13;;12737:88::o;12830:127::-;12891:10;12886:3;12882:20;12879:1;12872:31;12922:4;12919:1;12912:15;12946:4;12943:1;12936:15;12962:127;13023:10;13018:3;13014:20;13011:1;13004:31;13054:4;13051:1;13044:15;13078:4;13075:1;13068:15;13094:127;13155:10;13150:3;13146:20;13143:1;13136:31;13186:4;13183:1;13176:15;13210:4;13207:1;13200:15;13226:131;-1:-1:-1;;;;;13301:31:1;;13291:42;;13281:2;;13347:1;13344;13337:12;13362:118;13448:5;13441:13;13434:21;13427:5;13424:32;13414:2;;13470:1;13467;13460:12

Swarm Source

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