ETH Price: $1,613.68 (-0.19%)
 

Overview

Max Total Supply

100,000 ELI5

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
949.05 ELI5

Value
$0.00
0x768da26146cbb01940b68f2bf527329b92b36f2e
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:
ELI5

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-31
*/

pragma solidity ^0.8.7;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

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

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function claimDividend(address shareholder) external;
    function setTreasury(address treasury) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;
    address public _treasury;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner, address treasury) {
        _token = msg.sender;
        _owner = payable(owner);
        _treasury =  payable(treasury);
    }

   // receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override {
       
        uint256 amount = msg.value;
        
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            payable(shareholder).transfer(amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }

    function setTreasury(address treasury) external override onlyToken {
        _treasury = payable(treasury);
    }

    function getDividendsClaimedOf (address shareholder) external override view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a ELI5 shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract ELI5 is IBEP20, Auth {
    using SafeMath for uint256;

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

    string private constant  _name = "ELI5";
    string private constant _symbol = "ELI5";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 100000 * (10 ** _decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;
    

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
        
    uint256 private totalFee = 5;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x6b2cBB0F2be3142A66eF1A168d95A46D2C436866);
    address payable public treasury = payable(0x6b2cBB0F2be3142A66eF1A168d95A46D2C436866);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = 1000 * (10 ** _decimals);

    DividendDistributor public distributor;

    
    
    
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (    ) Auth(0x6b2cBB0F2be3142A66eF1A168d95A46D2C436866) {
        address _owner = 0x6b2cBB0F2be3142A66eF1A168d95A46D2C436866;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(_owner, treasury);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[treasury] = true;        
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;        

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

    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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        require (!isBot[sender] && !isBot[recipient], "Nice try");
        if (buyLimit) { 
            if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir");        
        }
        if (block.number <= (launchedAt + 1)) { 
            isBot[recipient] = true;
            isDividendExempt[recipient] = true; 
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      
    
        bool shouldSwapBack = /*!inSwap &&*/ (recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

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

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

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        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 shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this));

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

        
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 amountTreasury = (address(this).balance).div(2);
        uint256 amountMarketing = (address(this).balance).div(2);

             
        payable(marketingWallet).transfer(amountMarketing);
        payable(treasury).transfer(amountTreasury);
    }

    
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setBot(address _address) external onlyOwner {
        isBot[_address] = true;
        _setIsDividendExempt(_address, true);
    }
    
    function setBulkBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
        isBot[bots_[i]] = true;
        _setIsDividendExempt(bots_[i], true);

        }
    }


    function delBulkBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
        isBot[bots_[i]] = false;
        _setIsDividendExempt(bots_[i], false);

        }
    }

    function isInBot(address _address) external view onlyOwner returns (bool) {
        return isBot[_address];
    }
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

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

    function setFee (uint256 _fee) external onlyOwner {
        require (_fee <= 14, "Fee can't exceed 14%");
        totalFee = _fee;
    }

  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setIsMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }

    function setTreasury(address _treasury) external onlyOwner {
        treasury = payable(_treasury);
        distributor.setTreasury(_treasury);
    }

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBulkBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBulkBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setIsMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a6200049b565b6200004190620186a06200055c565b60048190556005908155600b556064600c55600d80546001600160a01b0319908116736b2cbb0f2be3142a66ef1a168d95a46d2c436866908117909255600e805490911690911790556012805461ff001916610100179055620000a76009600a6200049b565b620000b5906103e86200055c565b601355348015620000c557600080fd5b5060008054736b2cbb0f2be3142a66ef1a168d95a46d2c4368666001600160a01b03199182168117909255600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c464891600480820192602092909190829003018186803b1580156200014657600080fd5b505afa1580156200015b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000181919062000420565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b158015620001db57600080fd5b505afa158015620001f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000216919062000420565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200026357600080fd5b505af115801562000278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029e919062000420565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600f5485168452909152908190206000199055600e54905183929190911690620002f69062000412565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156200032a573d6000803e3d6000fd5b50601480546001600160a01b0319166001600160a01b039283161790558181166000818152600860209081526040808320805460ff199081166001908117909255600d54871685528285208054821683179055600e548716855282852080548216831790556010548716855260098452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000594565b610d0480620025ae83390190565b6000602082840312156200043357600080fd5b81516001600160a01b03811681146200044b57600080fd5b9392505050565b600181815b80851115620004935781600019048211156200047757620004776200057e565b808516156200048557918102915b93841c939080029062000457565b509250929050565b60006200044b60ff841683600082620004b75750600162000556565b81620004c65750600062000556565b8160018114620004df5760028114620004ea576200050a565b600191505062000556565b60ff841115620004fe57620004fe6200057e565b50506001821b62000556565b5060208310610133831016604e8410600b84101617156200052f575081810a62000556565b6200053b838362000452565b80600019048211156200055257620005526200057e565b0290505b92915050565b60008160001904831182151516156200057957620005796200057e565b500290565b634e487b7160e01b600052601160045260246000fd5b61200a80620005a46000396000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063bfe04c25116100ab578063f0fc6bca1161006f578063f0fc6bca146106a9578063f2fde38b146106be578063f4293890146106de578063f708a64f146106f3578063f887ea401461071357600080fd5b8063bfe04c25146105ee578063bfe109281461060e578063c9567bf91461062e578063dd62ed3e14610643578063f0f442601461068957600080fd5b806395d89b41116100f257806395d89b4114610240578063a8aa1b3114610578578063a9059cbb14610598578063b89402a0146105b8578063bf56b371146105d857600080fd5b806370a08231146104cf578063736a83a11461050557806375f0a8741461051a578063893d20e81461053a5780638ecc37fb1461055857600080fd5b8063350fcdf9116101bc57806361d027b31161018057806361d027b314610422578063658d4b7f1461045a57806367ee5f091461047a57806369fe0e2d1461048f5780636b5caec4146104af57600080fd5b8063350fcdf91461038d5780633e07ce5b146103ad578063416501c8146103c2578063571ac8b0146103e25780635cc33f741461040257600080fd5b806323b635851161020357806323b63585146102ed57806323b872dd1461030d5780632b112e491461032d5780632f54bf6e14610342578063313ce5671461037157600080fd5b806306fdde0314610240578063095ea7b31461027c57806315f7e05e146102ac57806318160ddd146102ce57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b506040805180820182526004815263454c493560e01b602082015290516102739190611e0c565b60405180910390f35b34801561028857600080fd5b5061029c610297366004611ce2565b610733565b6040519015158152602001610273565b3480156102b857600080fd5b506102cc6102c7366004611c18565b6107a0565b005b3480156102da57600080fd5b506004545b604051908152602001610273565b3480156102f957600080fd5b5061029c610308366004611dda565b610836565b34801561031957600080fd5b5061029c610328366004611c6e565b610881565b34801561033957600080fd5b506102df610943565b34801561034e57600080fd5b5061029c61035d366004611c18565b6000546001600160a01b0391821691161490565b34801561037d57600080fd5b5060405160098152602001610273565b34801561039957600080fd5b506102cc6103a8366004611d0e565b610995565b3480156103b957600080fd5b506102cc610a5c565b3480156103ce57600080fd5b5061029c6103dd366004611c18565b610a93565b3480156103ee57600080fd5b5061029c6103fd366004611c18565b610add565b34801561040e57600080fd5b506102df61041d366004611c18565b610aeb565b34801561042e57600080fd5b50600e54610442906001600160a01b031681565b6040516001600160a01b039091168152602001610273565b34801561046657600080fd5b506102cc610475366004611caf565b610b6a565b34801561048657600080fd5b506102df610bbf565b34801561049b57600080fd5b506102cc6104aa366004611dda565b610c3c565b3480156104bb57600080fd5b506102cc6104ca366004611c18565b610cb3565b3480156104db57600080fd5b506102df6104ea366004611c18565b6001600160a01b031660009081526006602052604090205490565b34801561051157600080fd5b506102df610d11565b34801561052657600080fd5b50600d54610442906001600160a01b031681565b34801561054657600080fd5b506000546001600160a01b0316610442565b34801561056457600080fd5b506102df610573366004611c18565b610d56565b34801561058457600080fd5b50601054610442906001600160a01b031681565b3480156105a457600080fd5b5061029c6105b3366004611ce2565b610d89565b3480156105c457600080fd5b506102cc6105d3366004611d0e565b610d96565b3480156105e457600080fd5b506102df60115481565b3480156105fa57600080fd5b506102cc610609366004611c18565b610e59565b34801561061a57600080fd5b50601454610442906001600160a01b031681565b34801561063a57600080fd5b506102cc610ea5565b34801561064f57600080fd5b506102df61065e366004611c35565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069557600080fd5b506102cc6106a4366004611c18565b610ee2565b3480156106b557600080fd5b506102cc610f55565b3480156106ca57600080fd5b506102cc6106d9366004611c18565b610fb4565b3480156106ea57600080fd5b506102cc611032565b3480156106ff57600080fd5b506102cc61070e366004611caf565b611096565b34801561071f57600080fd5b50600f54610442906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061078e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107d35760405162461bcd60e51b81526004016107ca90611e61565b60405180910390fd5b601454604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e906024015b600060405180830381600087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108615760405162461bcd60e51b81526004016107ca90611e61565b6002546108799030906001600160a01b0316846110ca565b90505b919050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461092e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546109099184906111b0565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109398484846111ea565b90505b9392505050565b6003546001600160a01b0316600090815260066020526040812054610990906002546001600160a01b031660009081526006602052604090205461098a9060045490611694565b90611694565b905090565b6000546001600160a01b031633146109bf5760405162461bcd60e51b81526004016107ca90611e61565b60005b8151811015610a58576000600a60008484815181106109e3576109e3611f93565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550610a46828281518110610a3757610a37611f93565b602002602001015160006116d6565b80610a5081611f62565b9150506109c2565b5050565b6000546001600160a01b03163314610a865760405162461bcd60e51b81526004016107ca90611e61565b6012805461ff0019169055565b600080546001600160a01b03163314610abe5760405162461bcd60e51b81526004016107ca90611e61565b506001600160a01b03166000908152600a602052604090205460ff1690565b600061087982600019610733565b601454604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b60206040518083038186803b158015610b3257600080fd5b505afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108799190611df3565b6000546001600160a01b03163314610b945760405162461bcd60e51b81526004016107ca90611e61565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6014546040805163997664d760e01b815290516000926001600160a01b03169163997664d7916004808301926020929190829003018186803b158015610c0457600080fd5b505afa158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109909190611df3565b6000546001600160a01b03163314610c665760405162461bcd60e51b81526004016107ca90611e61565b600e811115610cae5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b60448201526064016107ca565b600b55565b6000546001600160a01b03163314610cdd5760405162461bcd60e51b81526004016107ca90611e61565b6001600160a01b0381166000908152600a60205260409020805460ff19166001908117909155610d0e9082906116d6565b50565b6014546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a1916004808301926020929190829003018186803b158015610c0457600080fd5b601454604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b1a565b600061093c3384846111ea565b6000546001600160a01b03163314610dc05760405162461bcd60e51b81526004016107ca90611e61565b60005b8151811015610a58576001600a6000848481518110610de457610de4611f93565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550610e47828281518110610e3857610e38611f93565b602002602001015160016116d6565b80610e5181611f62565b915050610dc3565b6000546001600160a01b03163314610e835760405162461bcd60e51b81526004016107ca90611e61565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b81526004016107ca90611e61565b436011556012805460ff19166001179055565b6000546001600160a01b03163314610f0c5760405162461bcd60e51b81526004016107ca90611e61565b600e80546001600160a01b0319166001600160a01b03838116918217909255601454604051630787a21360e51b815260048101929092529091169063f0f4426090602401610801565b601454604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610f9a57600080fd5b505af1158015610fae573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610fde5760405162461bcd60e51b81526004016107ca90611e61565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461105c5760405162461bcd60e51b81526004016107ca90611e61565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a58573d6000803e3d6000fd5b6000546001600160a01b031633146110c05760405162461bcd60e51b81526004016107ca90611e61565b610a5882826116d6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461111b9184906111b0565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461114a90836117e7565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119e9086815260200190565b60405180910390a35060019392505050565b600081848411156111d45760405162461bcd60e51b81526004016107ca9190611e0c565b5060006111e18486611f4b565b95945050505050565b600080546001600160a01b0385811691161480159061121757506000546001600160a01b03848116911614155b1561126e5760125460ff1661126e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016107ca565b6001600160a01b0384166000908152600a602052604090205460ff161580156112b057506001600160a01b0383166000908152600a602052604090205460ff16155b6112e75760405162461bcd60e51b81526020600482015260086024820152674e6963652074727960c01b60448201526064016107ca565b601254610100900460ff1615611369576000546001600160a01b0385811691161480159061132357506000546001600160a01b03848116911614155b15611369576013548211156113695760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107ca565b601154611377906001611ef2565b43116113b9576001600160a01b0383166000908152600a602090815260408083208054600160ff19918216811790925560099093529220805490911690911790555b601454600160a01b900460ff16156113dd576113d68484846110ca565b905061093c565b6010546000906001600160a01b03858116911614801561140a575030600090815260066020526040812054115b9050801561141a5761141a611846565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03881660009081526006909152919091205461146c9185906111b0565b6001600160a01b03861660009081526006602052604081209190915561149286866119fd565b61149c57836114a6565b6114a68685611a72565b6001600160a01b0386166000908152600660205260409020549091506114cc90826117e7565b6001600160a01b0380871660009081526006602052604090209190915560105487821691161480159061151857506001600160a01b03861660009081526009602052604090205460ff16155b1561158e576014546001600160a01b0387811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561157b57600080fd5b505af192505050801561158c575060015b505b6010546001600160a01b038681169116148015906115c557506001600160a01b03851660009081526009602052604090205460ff16155b1561163b576014546001600160a01b0386811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561162857600080fd5b505af1925050508015611639575060015b505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161168091815260200190565b60405180910390a350600195945050505050565b600061093c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b0565b6001600160a01b03821630148015906116fd57506010546001600160a01b03838116911614155b61170657600080fd5b6001600160a01b0382166000908152600960205260409020805460ff1916821580159190911790915561179e57601454604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561178257600080fd5b505af1158015611796573d6000803e3d6000fd5b505050505050565b6014546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611768565b6000806117f48385611ef2565b90508381101561093c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ca565b6014805460ff60a01b1916600160a01b17905530600090815260066020526040812054604080516002808252606082019092529192506000919081602001602082028036833701905050905030816000815181106118a6576118a6611f93565b6001600160a01b03928316602091820292909201015260018054835192169183919081106118d6576118d6611f93565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac9479061191c908590600090869030904290600401611e81565b600060405180830381600087803b15801561193657600080fd5b505af115801561194a573d6000803e3d6000fd5b505050506000611964600247611b1e90919063ffffffff16565b90506000611973476002611b1e565b600d546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156119ae573d6000803e3d6000fd5b50600e546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156119e9573d6000803e3d6000fd5b50506014805460ff60a01b19169055505050565b6001600160a01b03821660009081526008602052604081205460ff1680611a3c57506001600160a01b03821660009081526008602052604090205460ff165b15801561093c57506010546001600160a01b038481169116148061093c5750506010546001600160a01b03908116911614919050565b600080611a96600c54611a90600b5486611b6090919063ffffffff16565b90611b1e565b30600090815260066020526040902054909150611ab390826117e7565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b049085815260200190565b60405180910390a3611b168382611694565b949350505050565b600061093c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bdf565b600082611b6f5750600061079a565b6000611b7b8385611f2c565b905082611b888583611f0a565b1461093c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ca565b60008183611c005760405162461bcd60e51b81526004016107ca9190611e0c565b5060006111e18486611f0a565b803561087c81611fbf565b600060208284031215611c2a57600080fd5b813561093c81611fbf565b60008060408385031215611c4857600080fd5b8235611c5381611fbf565b91506020830135611c6381611fbf565b809150509250929050565b600080600060608486031215611c8357600080fd5b8335611c8e81611fbf565b92506020840135611c9e81611fbf565b929592945050506040919091013590565b60008060408385031215611cc257600080fd5b8235611ccd81611fbf565b915060208301358015158114611c6357600080fd5b60008060408385031215611cf557600080fd5b8235611d0081611fbf565b946020939093013593505050565b60006020808385031215611d2157600080fd5b823567ffffffffffffffff80821115611d3957600080fd5b818501915085601f830112611d4d57600080fd5b813581811115611d5f57611d5f611fa9565b8060051b604051601f19603f83011681018181108582111715611d8457611d84611fa9565b604052828152858101935084860182860187018a1015611da357600080fd5b600095505b83861015611dcd57611db981611c0d565b855260019590950194938601938601611da8565b5098975050505050505050565b600060208284031215611dec57600080fd5b5035919050565b600060208284031215611e0557600080fd5b5051919050565b600060208083528351808285015260005b81811015611e3957858101830151858201604001528201611e1d565b81811115611e4b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ed15784516001600160a01b031683529383019391830191600101611eac565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f0557611f05611f7d565b500190565b600082611f2757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f4657611f46611f7d565b500290565b600082821015611f5d57611f5d611f7d565b500390565b6000600019821415611f7657611f76611f7d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d0e57600080fdfea2646970667358221220427f705de4ab67941570c43b142e8f4b1be9bbeab8495f0121e5f60b2642218964736f6c6343000807003360806040526ec097ce7bc90715b34b9f1000000000600a5534801561002357600080fd5b50604051610d04380380610d048339810160408190526100429161009a565b600080546001600160a01b03199081163317909155600180546001600160a01b03948516908316179055600280549290931691161790556100cd565b80516001600160a01b038116811461009557600080fd5b919050565b600080604083850312156100ad57600080fd5b6100b68361007e565b91506100c46020840161007e565b90509250929050565b610c28806100dc6000396000f3fe6080604052600436106100e85760003560e01c8063b2bdfa7b1161008a578063e2d2e21911610059578063e2d2e2191461027b578063e319a3d914610291578063ecd0c0c3146102b1578063f0f44260146102d157600080fd5b8063b2bdfa7b146101ce578063ce7c2ac214610206578063d0e30db01461025d578063d54ad2a11461026557600080fd5b80633a98ef39116100c65780633a98ef391461014f5780635cc33f74146101785780638ecc37fb14610198578063997664d7146101b857600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f575b600080fd5b3480156100f957600080fd5b5061010d610108366004610abf565b6102f1565b005b34801561011b57600080fd5b5061010d61012a366004610a95565b610351565b34801561013b57600080fd5b5061010d61014a366004610a7a565b6104c9565b34801561015b57600080fd5b5061016560065481565b6040519081526020015b60405180910390f35b34801561018457600080fd5b50610165610193366004610a7a565b6104ec565b3480156101a457600080fd5b506101656101b3366004610a7a565b610575565b3480156101c457600080fd5b5061016560075481565b3480156101da57600080fd5b506001546101ee906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b34801561021257600080fd5b50610242610221366004610a7a565b60056020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161016f565b61010d6105fe565b34801561027157600080fd5b5061016560085481565b34801561028757600080fd5b5061016560095481565b34801561029d57600080fd5b506002546101ee906001600160a01b031681565b3480156102bd57600080fd5b506000546101ee906001600160a01b031681565b3480156102dd57600080fd5b5061010d6102ec366004610a7a565b61063d565b6001546001600160a01b0316331461030857600080fd5b476001600160a01b0382166108fc846103215782610323565b845b6040518115909202916000818181858888f1935050505015801561034b573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461036857600080fd5b6001600160a01b0382166000908152600560205260409020541561038f5761038f82610676565b6000811180156103b557506001600160a01b038216600090815260056020526040902054155b1561041b57600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916909117905561044e565b8015801561044057506001600160a01b03821660009081526005602052604090205415155b1561044e5761044e82610759565b6001600160a01b03821660009081526005602052604090205460065461047f9183916104799161086e565b906108b9565b6006556001600160a01b03821660009081526005602052604090208190556104a681610918565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6000546001600160a01b031633146104e057600080fd5b6104e981610676565b50565b6001600160a01b0381166000908152600560205260408120546105565760405162461bcd60e51b815260206004820152601e60248201527f596f75277265206e6f74206120454c4935207368617265686f6c64657221000060448201526064015b60405180910390fd5b506001600160a01b031660009081526005602052604090206002015490565b6001600160a01b03811660009081526005602052604081205461059a57506000919050565b6001600160a01b0382166000908152600560205260408120546105bc90610918565b6001600160a01b0384166000908152600560205260409020600101549091508082116105ec575060009392505050565b6105f6828261086e565b949350505050565b600754349061060d90826108b9565b600755600654600a546106379161062e916106289085610935565b906109b4565b600954906108b9565b60095550565b6000546001600160a01b0316331461065457600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600560205260409020546106965750565b60006106a182610575565b90508015610755576008546106b690826108b9565b6008556001600160a01b0382166000908152600560205260409020600201546106df90826108b9565b6001600160a01b038316600090815260056020526040902060028101919091555461070990610918565b6001600160a01b038316600081815260056020526040808220600101939093559151909183156108fc02918491818181858888f19350505050158015610753573d6000803e3d6000fd5b505b5050565b6003805461076990600190610b99565b8154811061077957610779610bdc565b60009182526020808320909101546001600160a01b03848116845260049092526040909220546003805492909316929181106107b7576107b7610bdc565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526004918290526040812054600380549193929161080390600190610b99565b8154811061081357610813610bdc565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600380548061084957610849610bc6565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006108b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109f6565b90505b92915050565b6000806108c68385610b40565b9050838110156108b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161054d565b60006108b3600a546106286009548561093590919063ffffffff16565b600082610944575060006108b3565b60006109508385610b7a565b90508261095d8583610b58565b146108b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161054d565b60006108b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a30565b60008184841115610a1a5760405162461bcd60e51b815260040161054d9190610aeb565b506000610a278486610b99565b95945050505050565b60008183610a515760405162461bcd60e51b815260040161054d9190610aeb565b506000610a278486610b58565b80356001600160a01b0381168114610a7557600080fd5b919050565b600060208284031215610a8c57600080fd5b6108b082610a5e565b60008060408385031215610aa857600080fd5b610ab183610a5e565b946020939093013593505050565b60008060408385031215610ad257600080fd5b82359150610ae260208401610a5e565b90509250929050565b600060208083528351808285015260005b81811015610b1857858101830151858201604001528201610afc565b81811115610b2a576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610b5357610b53610bb0565b500190565b600082610b7557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610b9457610b94610bb0565b500290565b600082821015610bab57610bab610bb0565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d3e81acb182e4bdfa53fdf8f8c9e0b15750d02df647198a6dcd89a2da3c31b6b64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102345760003560e01c806370a082311161012e578063bfe04c25116100ab578063f0fc6bca1161006f578063f0fc6bca146106a9578063f2fde38b146106be578063f4293890146106de578063f708a64f146106f3578063f887ea401461071357600080fd5b8063bfe04c25146105ee578063bfe109281461060e578063c9567bf91461062e578063dd62ed3e14610643578063f0f442601461068957600080fd5b806395d89b41116100f257806395d89b4114610240578063a8aa1b3114610578578063a9059cbb14610598578063b89402a0146105b8578063bf56b371146105d857600080fd5b806370a08231146104cf578063736a83a11461050557806375f0a8741461051a578063893d20e81461053a5780638ecc37fb1461055857600080fd5b8063350fcdf9116101bc57806361d027b31161018057806361d027b314610422578063658d4b7f1461045a57806367ee5f091461047a57806369fe0e2d1461048f5780636b5caec4146104af57600080fd5b8063350fcdf91461038d5780633e07ce5b146103ad578063416501c8146103c2578063571ac8b0146103e25780635cc33f741461040257600080fd5b806323b635851161020357806323b63585146102ed57806323b872dd1461030d5780632b112e491461032d5780632f54bf6e14610342578063313ce5671461037157600080fd5b806306fdde0314610240578063095ea7b31461027c57806315f7e05e146102ac57806318160ddd146102ce57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b506040805180820182526004815263454c493560e01b602082015290516102739190611e0c565b60405180910390f35b34801561028857600080fd5b5061029c610297366004611ce2565b610733565b6040519015158152602001610273565b3480156102b857600080fd5b506102cc6102c7366004611c18565b6107a0565b005b3480156102da57600080fd5b506004545b604051908152602001610273565b3480156102f957600080fd5b5061029c610308366004611dda565b610836565b34801561031957600080fd5b5061029c610328366004611c6e565b610881565b34801561033957600080fd5b506102df610943565b34801561034e57600080fd5b5061029c61035d366004611c18565b6000546001600160a01b0391821691161490565b34801561037d57600080fd5b5060405160098152602001610273565b34801561039957600080fd5b506102cc6103a8366004611d0e565b610995565b3480156103b957600080fd5b506102cc610a5c565b3480156103ce57600080fd5b5061029c6103dd366004611c18565b610a93565b3480156103ee57600080fd5b5061029c6103fd366004611c18565b610add565b34801561040e57600080fd5b506102df61041d366004611c18565b610aeb565b34801561042e57600080fd5b50600e54610442906001600160a01b031681565b6040516001600160a01b039091168152602001610273565b34801561046657600080fd5b506102cc610475366004611caf565b610b6a565b34801561048657600080fd5b506102df610bbf565b34801561049b57600080fd5b506102cc6104aa366004611dda565b610c3c565b3480156104bb57600080fd5b506102cc6104ca366004611c18565b610cb3565b3480156104db57600080fd5b506102df6104ea366004611c18565b6001600160a01b031660009081526006602052604090205490565b34801561051157600080fd5b506102df610d11565b34801561052657600080fd5b50600d54610442906001600160a01b031681565b34801561054657600080fd5b506000546001600160a01b0316610442565b34801561056457600080fd5b506102df610573366004611c18565b610d56565b34801561058457600080fd5b50601054610442906001600160a01b031681565b3480156105a457600080fd5b5061029c6105b3366004611ce2565b610d89565b3480156105c457600080fd5b506102cc6105d3366004611d0e565b610d96565b3480156105e457600080fd5b506102df60115481565b3480156105fa57600080fd5b506102cc610609366004611c18565b610e59565b34801561061a57600080fd5b50601454610442906001600160a01b031681565b34801561063a57600080fd5b506102cc610ea5565b34801561064f57600080fd5b506102df61065e366004611c35565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069557600080fd5b506102cc6106a4366004611c18565b610ee2565b3480156106b557600080fd5b506102cc610f55565b3480156106ca57600080fd5b506102cc6106d9366004611c18565b610fb4565b3480156106ea57600080fd5b506102cc611032565b3480156106ff57600080fd5b506102cc61070e366004611caf565b611096565b34801561071f57600080fd5b50600f54610442906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061078e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107d35760405162461bcd60e51b81526004016107ca90611e61565b60405180910390fd5b601454604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e906024015b600060405180830381600087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108615760405162461bcd60e51b81526004016107ca90611e61565b6002546108799030906001600160a01b0316846110ca565b90505b919050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461092e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546109099184906111b0565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109398484846111ea565b90505b9392505050565b6003546001600160a01b0316600090815260066020526040812054610990906002546001600160a01b031660009081526006602052604090205461098a9060045490611694565b90611694565b905090565b6000546001600160a01b031633146109bf5760405162461bcd60e51b81526004016107ca90611e61565b60005b8151811015610a58576000600a60008484815181106109e3576109e3611f93565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550610a46828281518110610a3757610a37611f93565b602002602001015160006116d6565b80610a5081611f62565b9150506109c2565b5050565b6000546001600160a01b03163314610a865760405162461bcd60e51b81526004016107ca90611e61565b6012805461ff0019169055565b600080546001600160a01b03163314610abe5760405162461bcd60e51b81526004016107ca90611e61565b506001600160a01b03166000908152600a602052604090205460ff1690565b600061087982600019610733565b601454604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b60206040518083038186803b158015610b3257600080fd5b505afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108799190611df3565b6000546001600160a01b03163314610b945760405162461bcd60e51b81526004016107ca90611e61565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6014546040805163997664d760e01b815290516000926001600160a01b03169163997664d7916004808301926020929190829003018186803b158015610c0457600080fd5b505afa158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109909190611df3565b6000546001600160a01b03163314610c665760405162461bcd60e51b81526004016107ca90611e61565b600e811115610cae5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b60448201526064016107ca565b600b55565b6000546001600160a01b03163314610cdd5760405162461bcd60e51b81526004016107ca90611e61565b6001600160a01b0381166000908152600a60205260409020805460ff19166001908117909155610d0e9082906116d6565b50565b6014546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a1916004808301926020929190829003018186803b158015610c0457600080fd5b601454604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b1a565b600061093c3384846111ea565b6000546001600160a01b03163314610dc05760405162461bcd60e51b81526004016107ca90611e61565b60005b8151811015610a58576001600a6000848481518110610de457610de4611f93565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550610e47828281518110610e3857610e38611f93565b602002602001015160016116d6565b80610e5181611f62565b915050610dc3565b6000546001600160a01b03163314610e835760405162461bcd60e51b81526004016107ca90611e61565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b81526004016107ca90611e61565b436011556012805460ff19166001179055565b6000546001600160a01b03163314610f0c5760405162461bcd60e51b81526004016107ca90611e61565b600e80546001600160a01b0319166001600160a01b03838116918217909255601454604051630787a21360e51b815260048101929092529091169063f0f4426090602401610801565b601454604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610f9a57600080fd5b505af1158015610fae573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610fde5760405162461bcd60e51b81526004016107ca90611e61565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461105c5760405162461bcd60e51b81526004016107ca90611e61565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a58573d6000803e3d6000fd5b6000546001600160a01b031633146110c05760405162461bcd60e51b81526004016107ca90611e61565b610a5882826116d6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461111b9184906111b0565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461114a90836117e7565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119e9086815260200190565b60405180910390a35060019392505050565b600081848411156111d45760405162461bcd60e51b81526004016107ca9190611e0c565b5060006111e18486611f4b565b95945050505050565b600080546001600160a01b0385811691161480159061121757506000546001600160a01b03848116911614155b1561126e5760125460ff1661126e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016107ca565b6001600160a01b0384166000908152600a602052604090205460ff161580156112b057506001600160a01b0383166000908152600a602052604090205460ff16155b6112e75760405162461bcd60e51b81526020600482015260086024820152674e6963652074727960c01b60448201526064016107ca565b601254610100900460ff1615611369576000546001600160a01b0385811691161480159061132357506000546001600160a01b03848116911614155b15611369576013548211156113695760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107ca565b601154611377906001611ef2565b43116113b9576001600160a01b0383166000908152600a602090815260408083208054600160ff19918216811790925560099093529220805490911690911790555b601454600160a01b900460ff16156113dd576113d68484846110ca565b905061093c565b6010546000906001600160a01b03858116911614801561140a575030600090815260066020526040812054115b9050801561141a5761141a611846565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03881660009081526006909152919091205461146c9185906111b0565b6001600160a01b03861660009081526006602052604081209190915561149286866119fd565b61149c57836114a6565b6114a68685611a72565b6001600160a01b0386166000908152600660205260409020549091506114cc90826117e7565b6001600160a01b0380871660009081526006602052604090209190915560105487821691161480159061151857506001600160a01b03861660009081526009602052604090205460ff16155b1561158e576014546001600160a01b0387811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561157b57600080fd5b505af192505050801561158c575060015b505b6010546001600160a01b038681169116148015906115c557506001600160a01b03851660009081526009602052604090205460ff16155b1561163b576014546001600160a01b0386811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561162857600080fd5b505af1925050508015611639575060015b505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161168091815260200190565b60405180910390a350600195945050505050565b600061093c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b0565b6001600160a01b03821630148015906116fd57506010546001600160a01b03838116911614155b61170657600080fd5b6001600160a01b0382166000908152600960205260409020805460ff1916821580159190911790915561179e57601454604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561178257600080fd5b505af1158015611796573d6000803e3d6000fd5b505050505050565b6014546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611768565b6000806117f48385611ef2565b90508381101561093c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ca565b6014805460ff60a01b1916600160a01b17905530600090815260066020526040812054604080516002808252606082019092529192506000919081602001602082028036833701905050905030816000815181106118a6576118a6611f93565b6001600160a01b03928316602091820292909201015260018054835192169183919081106118d6576118d6611f93565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac9479061191c908590600090869030904290600401611e81565b600060405180830381600087803b15801561193657600080fd5b505af115801561194a573d6000803e3d6000fd5b505050506000611964600247611b1e90919063ffffffff16565b90506000611973476002611b1e565b600d546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156119ae573d6000803e3d6000fd5b50600e546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156119e9573d6000803e3d6000fd5b50506014805460ff60a01b19169055505050565b6001600160a01b03821660009081526008602052604081205460ff1680611a3c57506001600160a01b03821660009081526008602052604090205460ff165b15801561093c57506010546001600160a01b038481169116148061093c5750506010546001600160a01b03908116911614919050565b600080611a96600c54611a90600b5486611b6090919063ffffffff16565b90611b1e565b30600090815260066020526040902054909150611ab390826117e7565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b049085815260200190565b60405180910390a3611b168382611694565b949350505050565b600061093c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bdf565b600082611b6f5750600061079a565b6000611b7b8385611f2c565b905082611b888583611f0a565b1461093c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ca565b60008183611c005760405162461bcd60e51b81526004016107ca9190611e0c565b5060006111e18486611f0a565b803561087c81611fbf565b600060208284031215611c2a57600080fd5b813561093c81611fbf565b60008060408385031215611c4857600080fd5b8235611c5381611fbf565b91506020830135611c6381611fbf565b809150509250929050565b600080600060608486031215611c8357600080fd5b8335611c8e81611fbf565b92506020840135611c9e81611fbf565b929592945050506040919091013590565b60008060408385031215611cc257600080fd5b8235611ccd81611fbf565b915060208301358015158114611c6357600080fd5b60008060408385031215611cf557600080fd5b8235611d0081611fbf565b946020939093013593505050565b60006020808385031215611d2157600080fd5b823567ffffffffffffffff80821115611d3957600080fd5b818501915085601f830112611d4d57600080fd5b813581811115611d5f57611d5f611fa9565b8060051b604051601f19603f83011681018181108582111715611d8457611d84611fa9565b604052828152858101935084860182860187018a1015611da357600080fd5b600095505b83861015611dcd57611db981611c0d565b855260019590950194938601938601611da8565b5098975050505050505050565b600060208284031215611dec57600080fd5b5035919050565b600060208284031215611e0557600080fd5b5051919050565b600060208083528351808285015260005b81811015611e3957858101830151858201604001528201611e1d565b81811115611e4b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ed15784516001600160a01b031683529383019391830191600101611eac565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f0557611f05611f7d565b500190565b600082611f2757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f4657611f46611f7d565b500290565b600082821015611f5d57611f5d611f7d565b500390565b6000600019821415611f7657611f76611f7d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d0e57600080fdfea2646970667358221220427f705de4ab67941570c43b142e8f4b1be9bbeab8495f0121e5f60b2642218964736f6c63430008070033

Deployed Bytecode Sourcemap

9408:10393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12072:80;;;;;;;;;;-1:-1:-1;12144:5:0;;;;;;;;;;;-1:-1:-1;;;12144:5:0;;;;12072:80;;;;12144:5;12072:80;:::i;:::-;;;;;;;;12494:216;;;;;;;;;;-1:-1:-1;12494:216:0;;;;;:::i;:::-;;:::i;:::-;;;5150:14:1;;5143:22;5125:41;;5113:2;5098:18;12494:216:0;4985:187:1;18410:110:0;;;;;;;;;;-1:-1:-1;18410:110:0;;;;;:::i;:::-;;:::i;:::-;;11802:88;;;;;;;;;;-1:-1:-1;11875:12:0;;11802:88;;;8857:25:1;;;8845:2;8830:18;11802:88:0;8711:177:1;18700:139:0;;;;;;;;;;-1:-1:-1;18700:139:0;;;;;:::i;:::-;;:::i;13012:370::-;;;;;;;;;;-1:-1:-1;13012:370:0;;;;;:::i;:::-;;:::i;18851:142::-;;;;;;;;;;;;;:::i;2789:103::-;;;;;;;;;;-1:-1:-1;2789:103:0;;;;;:::i;:::-;2844:4;2879:5;-1:-1:-1;;;;;2868:16:0;;;2879:5;;2868:16;;2789:103;11896:80;;;;;;;;;;-1:-1:-1;11896:80:0;;9781:1;10020:36:1;;10008:2;9993:18;11896:80:0;9878:184:1;17010:218:0;;;;;;;;;;-1:-1:-1;17010:218:0;;;;;:::i;:::-;;:::i;19718:80::-;;;;;;;;;;;;;:::i;17236:115::-;;;;;;;;;;-1:-1:-1;17236:115:0;;;;;:::i;:::-;;:::i;12718:122::-;;;;;;;;;;-1:-1:-1;12718:122:0;;;;;:::i;:::-;;:::i;19553:157::-;;;;;;;;;;-1:-1:-1;19553:157:0;;;;;:::i;:::-;;:::i;10391:85::-;;;;;;;;;;-1:-1:-1;10391:85:0;;;;-1:-1:-1;;;;;10391:85:0;;;;;;-1:-1:-1;;;;;3935:32:1;;;3917:51;;3905:2;3890:18;10391:85:0;3771:203:1;17848:119:0;;;;;;;;;;-1:-1:-1;17848:119:0;;;;;:::i;:::-;;:::i;19306:115::-;;;;;;;;;;;;;:::i;17975:139::-;;;;;;;;;;-1:-1:-1;17975:139:0;;;;;:::i;:::-;;:::i;16631:141::-;;;;;;;;;;-1:-1:-1;16631:141:0;;;;;:::i;:::-;;:::i;12242:105::-;;;;;;;;;;-1:-1:-1;12242:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;12326:18:0;12308:7;12326:18;;;:9;:18;;;;;;;12242:105;19433:111;;;;;;;;;;;;;:::i;10292:92::-;;;;;;;;;;-1:-1:-1;10292:92:0;;;;-1:-1:-1;;;;;10292:92:0;;;12158:78;;;;;;;;;;-1:-1:-1;12210:7:0;12228:5;-1:-1:-1;;;;;12228:5:0;12158:78;;18532:156;;;;;;;;;;-1:-1:-1;18532:156:0;;;;;:::i;:::-;;:::i;10516:19::-;;;;;;;;;;-1:-1:-1;10516:19:0;;;;-1:-1:-1;;;;;10516:19:0;;;12848:156;;;;;;;;;;-1:-1:-1;12848:156:0;;;;;:::i;:::-;;:::i;16784:216::-;;;;;;;;;;-1:-1:-1;16784:216:0;;;;;:::i;:::-;;:::i;10544:25::-;;;;;;;;;;;;;;;;19001:137;;;;;;;;;;-1:-1:-1;19001:137:0;;;;;:::i;:::-;;:::i;10700:38::-;;;;;;;;;;-1:-1:-1;10700:38:0;;;;-1:-1:-1;;;;;10700:38:0;;;16496:115;;;;;;;;;;;;;:::i;12353:133::-;;;;;;;;;;-1:-1:-1;12353:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12455:19:0;;;12437:7;12455:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12353:133;19146:152;;;;;;;;;;-1:-1:-1;19146:152:0;;;;;:::i;:::-;;:::i;18308:90::-;;;;;;;;;;;;;:::i;3017:136::-;;;;;;;;;;-1:-1:-1;3017:136:0;;;;;:::i;:::-;;:::i;18126:174::-;;;;;;;;;;;;;:::i;17708:132::-;;;;;;;;;;-1:-1:-1;17708:132:0;;;;;:::i;:::-;;:::i;10485:24::-;;;;;;;;;;-1:-1:-1;10485:24:0;;;;-1:-1:-1;;;;;10485:24:0;;;12494:216;12598:10;12569:4;12586:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12586:32:0;;;;;;;;;;:41;;;12643:37;12569:4;;12586:32;;12643:37;;;;12621:6;8857:25:1;;8845:2;8830:18;;8711:177;12643:37:0;;;;;;;;-1:-1:-1;12698:4:0;12494:216;;;;;:::o;18410:110::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;;;;;;;;;18479:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;18479:33:0;;-1:-1:-1;;;;;3935:32:1;;;18479:33:0::1;::::0;::::1;3917:51:1::0;18479:11:0;;::::1;::::0;:25:::1;::::0;3890:18:1;;18479:33:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18410:110:::0;:::o;18700:139::-;18764:4;2879:5;;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;18818:4:::1;::::0;18788:43:::1;::::0;18811:4:::1;::::0;-1:-1:-1;;;;;18818:4:0::1;18824:6:::0;18788:14:::1;:43::i;:::-;18781:50;;2720:1;18700:139:::0;;;:::o;13012:370::-;-1:-1:-1;;;;;13132:19:0;;13112:4;13132:19;;;:11;:19;;;;;;;;13152:10;13132:31;;;;;;;;-1:-1:-1;;13132:52:0;13129:186;;13234:69;;;;;;;;;;;-1:-1:-1;;;13234:69:0;;;;;;;;-1:-1:-1;;;;;13234:19:0;;-1:-1:-1;13234:19:0;;;:11;:19;;;;;13254:10;13234:31;;;;;;;;;;:69;;13270:6;;13234:35;:69::i;:::-;-1:-1:-1;;;;;13200:19:0;;;;;;:11;:19;;;;;;;;13220:10;13200:31;;;;;;;:103;13129:186;13334:40;13348:6;13356:9;13367:6;13334:13;:40::i;:::-;13327:47;;13012:370;;;;;;:::o;18851:142::-;18979:4;;-1:-1:-1;;;;;18979:4:0;18904:7;12326:18;;;:9;:18;;;;;;18931:54;;18958:4;;-1:-1:-1;;;;;18958:4:0;12308:7;12326:18;;;:9;:18;;;;;;18931:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18924:61;;18851:142;:::o;17010:218::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;17090:6:::1;17085:136;17106:5;:12;17102:1;:16;17085:136;;;17154:5;17136;:15;17142:5;17148:1;17142:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17136:15:0::1;-1:-1:-1::0;;;;;17136:15:0::1;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;17170:37;17191:5;17197:1;17191:8;;;;;;;;:::i;:::-;;;;;;;17201:5;17170:20;:37::i;:::-;17120:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17085:136;;;;17010:218:::0;:::o;19718:80::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;19774:8:::1;:16:::0;;-1:-1:-1;;19774:16:0::1;::::0;;19718:80::o;17236:115::-;17304:4;2879:5;;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17328:15:0::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;::::0;17236:115::o;12718:122::-;12773:4;12797:35;12805:7;-1:-1:-1;;12797:7:0;:35::i;19553:157::-;19656:11;;:46;;-1:-1:-1;;;19656:46:0;;-1:-1:-1;;;;;3935:32:1;;;19656:46:0;;;3917:51:1;19629:7:0;;19656:11;;:33;;3890:18:1;;19656:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17848:119::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17931:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17931:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17848:119::o;19306:115::-;19385:11;;:28;;;-1:-1:-1;;;19385:28:0;;;;19358:7;;-1:-1:-1;;;;;19385:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17975:139::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;18053:2:::1;18045:4;:10;;18036:44;;;::::0;-1:-1:-1;;;18036:44:0;;6776:2:1;18036:44:0::1;::::0;::::1;6758:21:1::0;6815:2;6795:18;;;6788:30;-1:-1:-1;;;6834:18:1;;;6827:50;6894:18;;18036:44:0::1;6574:344:1::0;18036:44:0::1;18091:8;:15:::0;17975:139::o;16631:141::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16695:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:22;;-1:-1:-1;;16695:22:0::1;16713:4;16695:22:::0;;::::1;::::0;;;16728:36:::1;::::0;16701:8;;16728:20:::1;:36::i;:::-;16631:141:::0;:::o;19433:111::-;19510:11;;:26;;;-1:-1:-1;;;19510:26:0;;;;19483:7;;-1:-1:-1;;;;;19510:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;18532:156;18633:11;;:47;;-1:-1:-1;;;18633:47:0;;-1:-1:-1;;;;;3935:32:1;;;18633:47:0;;;3917:51:1;18606:7:0;;18633:11;;:34;;3890:18:1;;18633:47:0;3771:203:1;12848:156:0;12928:4;12952:44;12966:10;12978:9;12989:6;12952:13;:44::i;16784:216::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;16864:6:::1;16859:134;16880:5;:12;16876:1;:16;16859:134;;;16928:4;16910:5;:15;16916:5;16922:1;16916:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;16910:15:0::1;-1:-1:-1::0;;;;;16910:15:0::1;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;16943:36;16964:5;16970:1;16964:8;;;;;;;;:::i;:::-;;;;;;;16974:4;16943:20;:36::i;:::-;16894:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16859:134;;19001:137:::0;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;19087:15:::1;:43:::0;;-1:-1:-1;;;;;;19087:43:0::1;-1:-1:-1::0;;;;;19087:43:0;;;::::1;::::0;;;::::1;::::0;;19001:137::o;16496:115::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;16562:12:::1;16549:10;:25:::0;16585:11:::1;:18:::0;;-1:-1:-1;;16585:18:0::1;16599:4;16585:18;::::0;;16496:115::o;19146:152::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;19216:8:::1;:29:::0;;-1:-1:-1;;;;;;19216:29:0::1;-1:-1:-1::0;;;;;19216:29:0;;::::1;::::0;;::::1;::::0;;;19256:11:::1;::::0;:34:::1;::::0;-1:-1:-1;;;19256:34:0;;::::1;::::0;::::1;3917:51:1::0;;;;19256:11:0;;::::1;::::0;:23:::1;::::0;3890:18:1;;19256:34:0::1;3771:203:1::0;18308:90:0;18353:11;;:37;;-1:-1:-1;;;18353:37:0;;18379:10;18353:37;;;3917:51:1;-1:-1:-1;;;;;18353:11:0;;;;:25;;3890:18:1;;18353:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18308:90::o;3017:136::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;3093:5:::1;:11:::0;;-1:-1:-1;;;;;;3093:11:0::1;-1:-1:-1::0;;;;;3093:11:0;::::1;::::0;;::::1;::::0;;;3120:25:::1;::::0;3917:51:1;;;3120:25:0::1;::::0;3905:2:1;3890:18;3120:25:0::1;;;;;;;3017:136:::0;:::o;18126:174::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;18247:15:::1;::::0;18239:53:::1;::::0;18207:21:::1;::::0;-1:-1:-1;;;;;18247:15:0::1;::::0;18239:53;::::1;;;::::0;18207:21;;18178:26:::1;18239:53:::0;18178:26;18239:53;18207:21;18247:15;18239:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;17708:132:::0;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2696:10;2868:16;2680:38;;;;-1:-1:-1;;;2680:38:0;;;;;;;:::i;:::-;17796:36:::1;17817:6;17825;17796:20;:36::i;14859:330::-:0;14989:53;;;;;;;;;;;-1:-1:-1;;;14989:53:0;;;;;;;;-1:-1:-1;;;;;14989:17:0;;14952:4;14989:17;;;:9;:17;;;;;;;:53;;15011:6;;14989:21;:53::i;:::-;-1:-1:-1;;;;;14969:17:0;;;;;;;:9;:17;;;;;;:73;;;;15076:20;;;;;;;:32;;15101:6;15076:24;:32::i;:::-;-1:-1:-1;;;;;15053:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15124:35;;;;;;;;;;15152:6;8857:25:1;;8845:2;8830:18;;8711:177;15124:35:0;;;;;;;;-1:-1:-1;15177:4:0;14859:330;;;;;:::o;451:192::-;537:7;573:12;565:6;;;;557:29;;;;-1:-1:-1;;;557:29:0;;;;;;;;:::i;:::-;-1:-1:-1;597:9:0;609:5;613:1;609;:5;:::i;:::-;597:17;451:192;-1:-1:-1;;;;;451:192:0:o;13390:1457::-;13482:4;13512:5;;-1:-1:-1;;;;;13503:14:0;;;13512:5;;13503:14;;;;:35;;-1:-1:-1;13533:5:0;;-1:-1:-1;;;;;13521:17:0;;;13533:5;;13521:17;;13503:35;13499:89;;;13548:11;;;;13540:48;;;;-1:-1:-1;;;13540:48:0;;8560:2:1;13540:48:0;;;8542:21:1;8599:2;8579:18;;;8572:30;8638:26;8618:18;;;8611:54;8682:18;;13540:48:0;8358:348:1;13540:48:0;-1:-1:-1;;;;;13649:13:0;;;;;;:5;:13;;;;;;;;13648:14;:35;;;;-1:-1:-1;;;;;;13667:16:0;;;;;;:5;:16;;;;;;;;13666:17;13648:35;13639:57;;;;-1:-1:-1;;;13639:57:0;;7125:2:1;13639:57:0;;;7107:21:1;7164:1;7144:18;;;7137:29;-1:-1:-1;;;7182:18:1;;;7175:38;7230:18;;13639:57:0;6923:331:1;13639:57:0;13711:8;;;;;;;13707:130;;;13749:5;;-1:-1:-1;;;;;13741:13:0;;;13749:5;;13741:13;;;;:34;;-1:-1:-1;13770:5:0;;-1:-1:-1;;;;;13758:17:0;;;13770:5;;13758:17;;13741:34;13737:80;;;13794:6;;13786;:14;;13777:40;;;;-1:-1:-1;;;13777:40:0;;7817:2:1;13777:40:0;;;7799:21:1;7856:2;7836:18;;;7829:30;-1:-1:-1;;;7875:18:1;;;7868:42;7927:18;;13777:40:0;7615:336:1;13777:40:0;13868:10;;:14;;13881:1;13868:14;:::i;:::-;13851:12;:32;13847:139;;-1:-1:-1;;;;;13901:16:0;;;;;;:5;:16;;;;;;;;:23;;13920:4;-1:-1:-1;;13901:23:0;;;;;;;;13939:16;:27;;;;;:34;;;;;;;;;;13847:139;14008:6;;-1:-1:-1;;;14008:6:0;;;;14005:63;;;14024:41;14039:6;14047:9;14058:6;14024:14;:41::i;:::-;14017:48;;;;14005:63;14139:4;;14090:19;;-1:-1:-1;;;;;14128:15:0;;;14139:4;;14128:15;:47;;;;-1:-1:-1;14165:4:0;14174:1;12326:18;;;:9;:18;;;;;;14147:28;14128:47;14090:86;;14190:14;14187:33;;;14207:10;:8;:10::i;:::-;14252:53;;;;;;;;;;;-1:-1:-1;;;14252:53:0;;;;;;;;-1:-1:-1;;;;;14252:17:0;;-1:-1:-1;14252:17:0;;;:9;:17;;;;;;;;:53;;14274:6;;14252:21;:53::i;:::-;-1:-1:-1;;;;;14232:17:0;;;;;;:9;:17;;;;;:73;;;;14343:32;14242:6;14365:9;14343:13;:32::i;:::-;:67;;14404:6;14343:67;;;14378:23;14386:6;14394;14378:7;:23::i;:::-;-1:-1:-1;;;;;14454:20:0;;;;;;:9;:20;;;;;;14318:92;;-1:-1:-1;14454:40:0;;14318:92;14454:24;:40::i;:::-;-1:-1:-1;;;;;14431:20:0;;;;;;;:9;:20;;;;;:63;;;;14520:4;;14510:14;;;14520:4;;14510:14;;;;:43;;-1:-1:-1;;;;;;14529:24:0;;;;;;:16;:24;;;;;;;;14528:25;14510:43;14507:114;;;14560:11;;-1:-1:-1;;;;;14589:17:0;;;14560:11;14589:17;;;:9;:17;;;;;;;;14560:47;;-1:-1:-1;;;14560:47:0;;;;;4601:51:1;;;;4668:18;;;4661:34;14560:11:0;;;:20;;4574:18:1;;14560:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14556:63;;14647:4;;-1:-1:-1;;;;;14634:17:0;;;14647:4;;14634:17;;;;:49;;-1:-1:-1;;;;;;14656:27:0;;;;;;:16;:27;;;;;;;;14655:28;14634:49;14631:126;;;14690:11;;-1:-1:-1;;;;;14722:20:0;;;14690:11;14722:20;;;:9;:20;;;;;;;;14690:53;;-1:-1:-1;;;14690:53:0;;;;;4601:51:1;;;;4668:18;;;4661:34;14690:11:0;;;:20;;4574:18:1;;14690:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14686:69;;14791:9;-1:-1:-1;;;;;14774:43:0;14783:6;-1:-1:-1;;;;;14774:43:0;;14802:14;14774:43;;;;8857:25:1;;8845:2;8830:18;;8711:177;14774:43:0;;;;;;;;-1:-1:-1;14835:4:0;;13390:1457;-1:-1:-1;;;;;13390:1457:0:o;309:136::-;367:7;394:43;398:1;401;394:43;;;;;;;;;;;;;;;;;:3;:43::i;17363:337::-;-1:-1:-1;;;;;17450:23:0;;17468:4;17450:23;;;;:41;;-1:-1:-1;17487:4:0;;-1:-1:-1;;;;;17477:14:0;;;17487:4;;17477:14;;17450:41;17442:50;;;;;;-1:-1:-1;;;;;17503:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;17503:33:0;;;;;;;;;;;;17547:146;;17572:11;;:31;;-1:-1:-1;;;17572:31:0;;-1:-1:-1;;;;;4619:32:1;;;17572:31:0;;;4601:51:1;17572:11:0;4668:18:1;;;4661:34;17572:11:0;;;;:20;;4574:18:1;;17572:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17085:136:::1;17010:218:::0;:::o;17547:146::-;17634:11;;-1:-1:-1;;;;;17663:17:0;;;17634:11;17663:17;;;:9;:17;;;;;;;;17634:47;;-1:-1:-1;;;17634:47:0;;;;;4601:51:1;;;;4668:18;;;4661:34;17634:11:0;;;:20;;4574:18:1;;17634:47:0;4419:282:1;122:181:0;180:7;;212:5;216:1;212;:5;:::i;:::-;200:17;;241:1;236;:6;;228:46;;;;-1:-1:-1;;;228:46:0;;7461:2:1;228:46:0;;;7443:21:1;7500:2;7480:18;;;7473:30;7539:29;7519:18;;;7512:57;7586:18;;228:46:0;7259:351:1;15781:701:0;10813:6;:13;;-1:-1:-1;;;;10813:13:0;-1:-1:-1;;;10813:13:0;;;15871:4:::1;-1:-1:-1::0;12326:18:0;;;:9;:18;;;;;;15914:16:::1;::::0;;15928:1:::1;15914:16:::0;;;;;::::1;::::0;;;15830:47;;-1:-1:-1;15890:21:0::1;::::0;15914:16;::::1;;;;;;;;;;;::::0;-1:-1:-1;15914:16:0::1;15890:40;;15959:4;15941;15946:1;15941:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15941:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15985:4:::1;::::0;;15975:7;;15985:4;::::1;::::0;15975;;15985;15975:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15975:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16012:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16012:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16084:12;;16012:6:::1;::::0;16127:4;;16154::::1;::::0;16174:15:::1;::::0;16012:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16221:22;16246:30;16274:1;16247:21;16246:27;;:30;;;;:::i;:::-;16221:55:::0;-1:-1:-1;16287:23:0::1;16313:30;16314:21;16341:1;16313:27;:30::i;:::-;16379:15;::::0;16371:50:::1;::::0;16287:56;;-1:-1:-1;;;;;;16379:15:0::1;::::0;16371:50;::::1;;;::::0;16287:56;;16379:15:::1;16371:50:::0;16379:15;16371:50;16287:56;16379:15;16371:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;16440:8:0::1;::::0;16432:42:::1;::::0;-1:-1:-1;;;;;16440:8:0;;::::1;::::0;16432:42;::::1;;;::::0;16459:14;;16440:8:::1;16432:42:::0;16440:8;16432:42;16459:14;16440:8;16432:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10831:6:0;:14;;-1:-1:-1;;;;10831:14:0;;;-1:-1:-1;;;15781:701:0:o;15200:206::-;-1:-1:-1;;;;;15309:19:0;;15281:4;15309:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;15332:22:0;;;;;;:11;:22;;;;;;;;15309:45;15307:48;:90;;;;-1:-1:-1;15371:4:0;;-1:-1:-1;;;;;15361:14:0;;;15371:4;;15361:14;;:35;;-1:-1:-1;;15392:4:0;;-1:-1:-1;;;;;15392:4:0;;;15379:17;;;;15200:206;-1:-1:-1;15200:206:0:o;15414:354::-;15481:7;15501:17;15541:40;15566:14;;15541:20;15552:8;;15541:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;15637:4;15619:24;;;;:9;:24;;;;;;15529:52;;-1:-1:-1;15619:39:0;;15529:52;15619:28;:39::i;:::-;15610:4;15592:24;;;;:9;:24;;;;;;;:66;;;;15674:42;;-1:-1:-1;;;;;15674:42:0;;;;;;;15706:9;8857:25:1;;8845:2;8830:18;;8711:177;15674:42:0;;;;;;;;15739:21;:6;15750:9;15739:10;:21::i;:::-;15732:28;15414:354;-1:-1:-1;;;;15414:354:0:o;905:132::-;963:7;990:39;994:1;997;990:39;;;;;;;;;;;;;;;;;:3;:39::i;649:250::-;707:7;731:6;727:47;;-1:-1:-1;761:1:0;754:8;;727:47;786:9;798:5;802:1;798;:5;:::i;:::-;786:17;-1:-1:-1;831:1:0;822:5;826:1;786:17;822:5;:::i;:::-;:10;814:56;;;;-1:-1:-1;;;814:56:0;;8158:2:1;814:56:0;;;8140:21:1;8197:2;8177:18;;;8170:30;8236:34;8216:18;;;8209:62;-1:-1:-1;;;8287:18:1;;;8280:31;8328:19;;814:56:0;7956:397:1;1043:345:0;1129:7;1231:12;1224:5;1216:28;;;;-1:-1:-1;;;1216:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1255:9:0;1267:5;1271:1;1267;:5;:::i;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:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;665:388::-;733:6;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;849:9;836:23;868:31;893:5;868:31;:::i;:::-;918:5;-1:-1:-1;975:2:1;960:18;;947:32;988:33;947:32;988:33;:::i;:::-;1040:7;1030:17;;;665:388;;;;;:::o;1058:456::-;1135:6;1143;1151;1204:2;1192:9;1183:7;1179:23;1175:32;1172:52;;;1220:1;1217;1210:12;1172:52;1259:9;1246:23;1278:31;1303:5;1278:31;:::i;:::-;1328:5;-1:-1:-1;1385:2:1;1370:18;;1357:32;1398:33;1357:32;1398:33;:::i;:::-;1058:456;;1450:7;;-1:-1:-1;;;1504:2:1;1489:18;;;;1476:32;;1058:456::o;1519:416::-;1584:6;1592;1645:2;1633:9;1624:7;1620:23;1616:32;1613:52;;;1661:1;1658;1651:12;1613:52;1700:9;1687:23;1719:31;1744:5;1719:31;:::i;:::-;1769:5;-1:-1:-1;1826:2:1;1811:18;;1798:32;1868:15;;1861:23;1849:36;;1839:64;;1899:1;1896;1889:12;1940:315;2008:6;2016;2069:2;2057:9;2048:7;2044:23;2040:32;2037:52;;;2085:1;2082;2075:12;2037:52;2124:9;2111:23;2143:31;2168:5;2143:31;:::i;:::-;2193:5;2245:2;2230:18;;;;2217:32;;-1:-1:-1;;;1940:315:1:o;2260:1132::-;2344:6;2375:2;2418;2406:9;2397:7;2393:23;2389:32;2386:52;;;2434:1;2431;2424:12;2386:52;2474:9;2461:23;2503:18;2544:2;2536:6;2533:14;2530:34;;;2560:1;2557;2550:12;2530:34;2598:6;2587:9;2583:22;2573:32;;2643:7;2636:4;2632:2;2628:13;2624:27;2614:55;;2665:1;2662;2655:12;2614:55;2701:2;2688:16;2723:2;2719;2716:10;2713:36;;;2729:18;;:::i;:::-;2775:2;2772:1;2768:10;2807:2;2801:9;2870:2;2866:7;2861:2;2857;2853:11;2849:25;2841:6;2837:38;2925:6;2913:10;2910:22;2905:2;2893:10;2890:18;2887:46;2884:72;;;2936:18;;:::i;:::-;2972:2;2965:22;3022:18;;;3056:15;;;;-1:-1:-1;3091:11:1;;;3121;;;3117:20;;3114:33;-1:-1:-1;3111:53:1;;;3160:1;3157;3150:12;3111:53;3182:1;3173:10;;3192:169;3206:2;3203:1;3200:9;3192:169;;;3263:23;3282:3;3263:23;:::i;:::-;3251:36;;3224:1;3217:9;;;;;3307:12;;;;3339;;3192:169;;;-1:-1:-1;3380:6:1;2260:1132;-1:-1:-1;;;;;;;;2260:1132:1:o;3397:180::-;3456:6;3509:2;3497:9;3488:7;3484:23;3480:32;3477:52;;;3525:1;3522;3515:12;3477:52;-1:-1:-1;3548:23:1;;3397:180;-1:-1:-1;3397:180:1:o;3582:184::-;3652:6;3705:2;3693:9;3684:7;3680:23;3676:32;3673:52;;;3721:1;3718;3711:12;3673:52;-1:-1:-1;3744:16:1;;3582:184;-1:-1:-1;3582:184:1:o;5638:597::-;5750:4;5779:2;5808;5797:9;5790:21;5840:6;5834:13;5883:6;5878:2;5867:9;5863:18;5856:34;5908:1;5918:140;5932:6;5929:1;5926:13;5918:140;;;6027:14;;;6023:23;;6017:30;5993:17;;;6012:2;5989:26;5982:66;5947:10;;5918:140;;;6076:6;6073:1;6070:13;6067:91;;;6146:1;6141:2;6132:6;6121:9;6117:22;6113:31;6106:42;6067:91;-1:-1:-1;6219:2:1;6198:15;-1:-1:-1;;6194:29:1;6179:45;;;;6226:2;6175:54;;5638:597;-1:-1:-1;;;5638:597:1:o;6240:329::-;6442:2;6424:21;;;6481:1;6461:18;;;6454:29;-1:-1:-1;;;6514:2:1;6499:18;;6492:36;6560:2;6545:18;;6240:329::o;8893:980::-;9155:4;9203:3;9192:9;9188:19;9234:6;9223:9;9216:25;9260:2;9298:6;9293:2;9282:9;9278:18;9271:34;9341:3;9336:2;9325:9;9321:18;9314:31;9365:6;9400;9394:13;9431:6;9423;9416:22;9469:3;9458:9;9454:19;9447:26;;9508:2;9500:6;9496:15;9482:29;;9529:1;9539:195;9553:6;9550:1;9547:13;9539:195;;;9618:13;;-1:-1:-1;;;;;9614:39:1;9602:52;;9709:15;;;;9674:12;;;;9650:1;9568:9;9539:195;;;-1:-1:-1;;;;;;;9790:32:1;;;;9785:2;9770:18;;9763:60;-1:-1:-1;;;9854:3:1;9839:19;9832:35;9751:3;8893:980;-1:-1:-1;;;8893:980:1:o;10067:128::-;10107:3;10138:1;10134:6;10131:1;10128:13;10125:39;;;10144:18;;:::i;:::-;-1:-1:-1;10180:9:1;;10067:128::o;10200:217::-;10240:1;10266;10256:132;;10310:10;10305:3;10301:20;10298:1;10291:31;10345:4;10342:1;10335:15;10373:4;10370:1;10363:15;10256:132;-1:-1:-1;10402:9:1;;10200:217::o;10422:168::-;10462:7;10528:1;10524;10520:6;10516:14;10513:1;10510:21;10505:1;10498:9;10491:17;10487:45;10484:71;;;10535:18;;:::i;:::-;-1:-1:-1;10575:9:1;;10422:168::o;10595:125::-;10635:4;10663:1;10660;10657:8;10654:34;;;10668:18;;:::i;:::-;-1:-1:-1;10705:9:1;;10595:125::o;10725:135::-;10764:3;-1:-1:-1;;10785:17:1;;10782:43;;;10805:18;;:::i;:::-;-1:-1:-1;10852:1:1;10841:13;;10725:135::o;10865:127::-;10926:10;10921:3;10917:20;10914:1;10907:31;10957:4;10954:1;10947:15;10981:4;10978:1;10971:15;10997:127;11058:10;11053:3;11049:20;11046:1;11039:31;11089:4;11086:1;11079:15;11113:4;11110:1;11103:15;11129:127;11190:10;11185:3;11181:20;11178:1;11171:31;11221:4;11218:1;11211:15;11245:4;11242:1;11235:15;11261:131;-1:-1:-1;;;;;11336:31:1;;11326:42;;11316:70;;11382:1;11379;11372:12

Swarm Source

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