ETH Price: $3,908.11 (+0.07%)

Token

ERC-20: COSMIC (COSMIC)
 

Overview

Max Total Supply

1,000,000,000 COSMIC

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
0.0717 COSMIC

Value
$0.00
0x4b71039B78c052E6eC1166f72661E9166e048FaC
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:
COSMIC

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

  Today after 13.8 Billion years we emerge.

  Website  - https://www.cosmicerc.com/
  Twitter  - https://twitter.com/CosmicErc
  Telegram - https://t.me/cosmicercportal
  Medium   - https://medium.com/@cosmicerc

*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.12;

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

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

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

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

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

interface ERC20 {
    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 Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(address(0));
        owner = address(0);
    }
    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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract COSMIC is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "COSMIC";
    string public constant symbol = "COSMIC";
    uint8 public constant decimals = 4;

    uint256 public totalSupply = 1 * 10**9 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

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

    uint256 public marketingFee = 30;
    uint256 public teamFee = 30;
    uint256 public buybackFee = 10;
    uint256 public burnFee = 0;
    uint256 public totalFee = marketingFee + teamFee + burnFee + buybackFee;
    uint256 public constant feeDenominator = 1000;

    uint256 sellMultiplier = 150;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 100;

    address public marketingFeeReceiver;
    address public teamFeeReceiver;
    address public buybackFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 500;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x72ef5982d80EAd232a665B0AD929A8ECd7a36780;
        buybackFeeReceiver = 0x72ef5982d80EAd232a665B0AD929A8ECd7a36780;
        teamFeeReceiver = 0x72ef5982d80EAd232a665B0AD929A8ECd7a36780;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    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 setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 1,"Cannot set max wallet less than 0.1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 1,"Cannot set max transaction less than 0.1%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

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

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

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

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);


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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        if(contractTokens > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(contractTokens);
            emit Transfer(sender, address(this), contractTokens);
        }
        
        if(burnTokens > 0){
            totalSupply = totalSupply - burnTokens;
            emit Transfer(sender,DEAD,burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        require(amountPercentage < 101, "Max 100%");
        uint256 amountETH = address(this).balance;
        uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external authorized returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }

        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }


    function swapBack() internal swapping {

        uint256 totalETHFee = totalFee - burnFee;
        uint256 amountToSwap = swapThreshold;

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

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

        uint256 amountETH = address(this).balance;
        
        uint256 amountETHMarketing = (amountETH * marketingFee) / totalETHFee;
        uint256 amountETHteam = (amountETH * teamFee) / totalETHFee;
        uint256 amountETHbuyback = (amountETH * buybackFee) / totalETHFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(teamFeeReceiver).transfer(amountETHteam);
        payable(buybackFeeReceiver).transfer(amountETHbuyback);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setFees_base1000(uint256 _marketingFee, uint256 _teamFee, uint256 _buybackFee, uint256 _burnFee) external onlyOwner {
        marketingFee = _marketingFee;
        teamFee = _teamFee;
        buybackFee = _buybackFee;
        burnFee = _burnFee;
        totalFee =  _marketingFee + _teamFee + _burnFee + _buybackFee;
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _teamFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount < (totalSupply/10), "Amount too high");

        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - 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":"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":[],"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":[{"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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"setFees_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","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":"view","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60c0604052620000126004600a62000509565b6200002290633b9aca0062000521565b600255606460025462000036919062000543565b60035560646002546200004a919062000543565b600455601e600a55601e600b55600a600c556000600d55600c54600d54600b54600a5462000079919062000566565b62000085919062000566565b62000091919062000566565b600e556096600f55606460108190556011556015805460ff60a01b1916600160a01b179055600254620000c8906101f49062000543565b601655348015620000d857600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000185919062000581565b6001600160a01b039081166080526015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc919062000581565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200024e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000274919062000581565b6001600160a01b0390811660a05230600081815260066020908152604080832060155490951683529381528382206000199055601280547372ef5982d80ead232a665b0ad929a8ecd7a367806001600160a01b03199182168117909255601480548216831790556013805490911690911790553380835260078252848320805460ff1990811660019081179092556008845286852080548216831790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548216831790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805482168317905560098452868520805482168317905594845285842080548616821790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb193075003785805490951617909355600254838352600582528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005ac565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200044b5781600019048211156200042f576200042f620003f4565b808516156200043d57918102915b93841c93908002906200040f565b509250929050565b600082620004645750600162000503565b81620004735750600062000503565b81600181146200048c57600281146200049757620004b7565b600191505062000503565b60ff841115620004ab57620004ab620003f4565b50506001821b62000503565b5060208310610133831016604e8410600b8410161715620004dc575081810a62000503565b620004e883836200040a565b8060001904821115620004ff57620004ff620003f4565b0290505b92915050565b60006200051a60ff84168362000453565b9392505050565b60008160001904831182151516156200053e576200053e620003f4565b500290565b6000826200056157634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200057c576200057c620003f4565b500190565b6000602082840312156200059457600080fd5b81516001600160a01b03811681146200051a57600080fd5b60805160a051611cf0620005ee6000396000818161060001528181610fb80152818161131d015281816115ed0152611630015260006114020152611cf06000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063bd9ab537116100b6578063df20fd491161007a578063df20fd491461070e578063e96fada21461072e578063efa5e3471461074e578063f887ea401461076e578063fce589d81461078e578063fe9fbb80146107a457600080fd5b8063bd9ab53714610642578063c867d60b14610662578063d7c0103214610692578063d7c94efd146106b2578063dd62ed3e146106c857600080fd5b8063893d20e8116100fd578063893d20e8146105a05780638b42507f146105be57806395d89b411461027f578063a8aa1b31146105ee578063a9059cbb1461062257600080fd5b8063715018a61461051f57806377b54bad1461053457806378109e54146105545780637d1db4a51461056a57806384b1d1ef1461058057600080fd5b80632f54bf6e116101c7578063571ac8b01161018b578063571ac8b01461047b5780636b67c4df1461049b5780636ce46bc3146104b15780636ddd1713146104d157806370a08231146104f257600080fd5b80632f54bf6e146103a7578063313ce567146103d65780633b2d081c146103fd5780633f4218e014610413578063402911431461044357600080fd5b806318160ddd1161020e57806318160ddd146103265780631da1db5e1461033c5780631df4ccfc1461035c57806323b872dd146103725780632b112e491461039257600080fd5b80630445b6671461025657806306fdde031461027f57806309302dc6146102be578063095ea7b3146102e0578063180b0d7e1461031057600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c60165481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506102b160405180604001604052806006815260200165434f534d494360d01b81525081565b6040516102769190611929565b3480156102ca57600080fd5b506102de6102d936600461197e565b6107dd565b005b3480156102ec57600080fd5b506103006102fb3660046119b3565b61088e565b6040519015158152602001610276565b34801561031c57600080fd5b5061026c6103e881565b34801561033257600080fd5b5061026c60025481565b34801561034857600080fd5b506102de61035736600461197e565b6108fb565b34801561036857600080fd5b5061026c600e5481565b34801561037e57600080fd5b5061030061038d3660046119dd565b6109af565b34801561039e57600080fd5b5061026c610a71565b3480156103b357600080fd5b506103006103c2366004611a19565b6000546001600160a01b0391821691161490565b3480156103e257600080fd5b506103eb600481565b60405160ff9091168152602001610276565b34801561040957600080fd5b5061026c600c5481565b34801561041f57600080fd5b5061030061042e366004611a19565b60076020526000908152604090205460ff1681565b34801561044f57600080fd5b50601354610463906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b34801561048757600080fd5b50610300610496366004611a19565b610ae1565b3480156104a757600080fd5b5061026c600a5481565b3480156104bd57600080fd5b506102de6104cc366004611a34565b610aef565b3480156104dd57600080fd5b5060155461030090600160a01b900460ff1681565b3480156104fe57600080fd5b5061026c61050d366004611a19565b60056020526000908152604090205481565b34801561052b57600080fd5b506102de610b2a565b34801561054057600080fd5b5061030061054f3660046119b3565b610b9a565b34801561056057600080fd5b5061026c60045481565b34801561057657600080fd5b5061026c60035481565b34801561058c57600080fd5b50601454610463906001600160a01b031681565b3480156105ac57600080fd5b506000546001600160a01b0316610463565b3480156105ca57600080fd5b506103006105d9366004611a19565b60086020526000908152604090205460ff1681565b3480156105fa57600080fd5b506104637f000000000000000000000000000000000000000000000000000000000000000081565b34801561062e57600080fd5b5061030061063d3660046119b3565b610cc8565b34801561064e57600080fd5b506102de61065d36600461197e565b610cd5565b34801561066e57600080fd5b5061030061067d366004611a19565b60096020526000908152604090205460ff1681565b34801561069e57600080fd5b506102de6106ad366004611a60565b610d83565b3480156106be57600080fd5b5061026c600b5481565b3480156106d457600080fd5b5061026c6106e3366004611aa3565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561071a57600080fd5b506102de610729366004611ae7565b610dec565b34801561073a57600080fd5b50601254610463906001600160a01b031681565b34801561075a57600080fd5b506102de610769366004611b05565b610e87565b34801561077a57600080fd5b50601554610463906001600160a01b031681565b34801561079a57600080fd5b5061026c600d5481565b3480156107b057600080fd5b506103006107bf366004611a19565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b031633146108105760405162461bcd60e51b815260040161080790611b37565b60405180910390fd5b600181101561086d5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610807565b6103e88160025461087e9190611b6d565b6108889190611b8c565b60045550565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e99086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109255760405162461bcd60e51b815260040161080790611b37565b606581106109605760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610807565b476000606461096f8484611b6d565b6109799190611b8c565b604051909150339082156108fc029083906000818181858888f193505050501580156109a9573d6000803e3d6000fd5b50505050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610a5c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610a37918490610eee565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610a67848484610f28565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919291610ad29190611bae565b610adc9190611bae565b905090565b60006108f58260001961088e565b6000546001600160a01b03163314610b195760405162461bcd60e51b815260040161080790611b37565b600f91909155601091909155601155565b6000546001600160a01b03163314610b545760405162461bcd60e51b815260040161080790611b37565b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b3360009081526001602052604081205460ff16610be75760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610807565b81610c57576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c549190611bc5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a9190611bde565b6000610a6a338484610f28565b6000546001600160a01b03163314610cff5760405162461bcd60e51b815260040161080790611b37565b6001811015610d625760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610807565b6103e881600254610d739190611b6d565b610d7d9190611b8c565b60035550565b6000546001600160a01b03163314610dad5760405162461bcd60e51b815260040161080790611b37565b601280546001600160a01b039485166001600160a01b031991821617909155601380549385169382169390931790925560148054919093169116179055565b6000546001600160a01b03163314610e165760405162461bcd60e51b815260040161080790611b37565b600a600254610e259190611b8c565b8110610e655760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610807565b60158054921515600160a01b0260ff60a01b1990931692909217909155601655565b6000546001600160a01b03163314610eb15760405162461bcd60e51b815260040161080790611b37565b600a849055600b839055600c829055600d8190558181610ed18587611bfb565b610edb9190611bfb565b610ee59190611bfb565b600e5550505050565b60008184841115610f125760405162461bcd60e51b81526004016108079190611929565b506000610f1f8486611bae565b95945050505050565b60175460009060ff1615610f4857610f4184848461123c565b9050610a6a565b6001600160a01b03841660009081526001602052604090205460ff16158015610f8a57506001600160a01b03841660009081526009602052604090205460ff16155b8015610faf57506001600160a01b03831660009081526009602052604090205460ff16155b8015610fed57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611067576004546001600160a01b038416600090815260056020526040902054611019908490611bfb565b11156110675760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610807565b6003548211158061109057506001600160a01b03841660009081526008602052604090205460ff165b806110b357506001600160a01b03831660009081526008602052604090205460ff165b6110f75760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610807565b6110ff611310565b1561110c5761110c611383565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461115e918490610eee565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16806111ab57506001600160a01b03841660009081526007602052604090205460ff165b6111bf576111ba8584866115c9565b6111c1565b825b6001600160a01b0385166000908152600560205260409020549091506111e79082611799565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020611c9b833981519152906112299085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461128d918490610eee565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546112bc9083611799565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020611c9b833981519152906112fe9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061134e575060175460ff16155b80156113635750601554600160a01b900460ff165b8015610adc57505060165430600090815260056020526040902054101590565b6017805460ff19166001179055600d54600e546000916113a291611bae565b60165460408051600280825260608201835293945091926000929160208301908036833701905050905030816000815181106113e0576113e0611c13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061143457611434611c13565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac9479061147a908590600090869030904290600401611c29565b600060405180830381600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b5050600a544792506000915085906114c09084611b6d565b6114ca9190611b8c565b9050600085600b54846114dd9190611b6d565b6114e79190611b8c565b9050600086600c54856114fa9190611b6d565b6115049190611b8c565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f1935050505015801561153f573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561157a573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156115b5573d6000803e3d6000fd5b50506017805460ff19169055505050505050565b60008215806115d85750600e54155b156115e4575081610a6a565b600060115490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561162e5750600f5461166d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316141561166d57506010545b60006116a461167f6103e86064611b6d565b61169e84611698600e548a6117f890919063ffffffff16565b906117f8565b90611877565b905060006116c3600e5461169e600d54856117f890919063ffffffff16565b905060006116d183836118b9565b9050801561173b57306000908152600560205260409020546116f39082611799565b30600081815260056020526040908190209290925590516001600160a01b038a1690600080516020611c9b833981519152906117329085815260200190565b60405180910390a35b8115611783578160025461174f9190611bae565b60025560405182815261dead906001600160a01b038a1690600080516020611c9b8339815191529060200160405180910390a35b61178d87846118b9565b98975050505050505050565b6000806117a68385611bfb565b905083811015610a6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610807565b600082611807575060006108f5565b60006118138385611b6d565b9050826118208583611b8c565b14610a6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610807565b6000610a6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118fb565b6000610a6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eee565b6000818361191c5760405162461bcd60e51b81526004016108079190611929565b506000610f1f8486611b8c565b600060208083528351808285015260005b818110156119565785810183015185820160400152820161193a565b81811115611968576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561199057600080fd5b5035919050565b80356001600160a01b03811681146119ae57600080fd5b919050565b600080604083850312156119c657600080fd5b6119cf83611997565b946020939093013593505050565b6000806000606084860312156119f257600080fd5b6119fb84611997565b9250611a0960208501611997565b9150604084013590509250925092565b600060208284031215611a2b57600080fd5b610a6a82611997565b600080600060608486031215611a4957600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611a7557600080fd5b611a7e84611997565b9250611a8c60208501611997565b9150611a9a60408501611997565b90509250925092565b60008060408385031215611ab657600080fd5b611abf83611997565b9150611acd60208401611997565b90509250929050565b8015158114611ae457600080fd5b50565b60008060408385031215611afa57600080fd5b82356119cf81611ad6565b60008060008060808587031215611b1b57600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611b8757611b87611b57565b500290565b600082611ba957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611bc057611bc0611b57565b500390565b600060208284031215611bd757600080fd5b5051919050565b600060208284031215611bf057600080fd5b8151610a6a81611ad6565b60008219821115611c0e57611c0e611b57565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c795784516001600160a01b031683529383019391830191600101611c54565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122027beeb4849d1e244699aa0a22caf45609e8f70ff5f5d92fef90406be2d5f6c4164736f6c634300080c0033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063715018a611610139578063bd9ab537116100b6578063df20fd491161007a578063df20fd491461070e578063e96fada21461072e578063efa5e3471461074e578063f887ea401461076e578063fce589d81461078e578063fe9fbb80146107a457600080fd5b8063bd9ab53714610642578063c867d60b14610662578063d7c0103214610692578063d7c94efd146106b2578063dd62ed3e146106c857600080fd5b8063893d20e8116100fd578063893d20e8146105a05780638b42507f146105be57806395d89b411461027f578063a8aa1b31146105ee578063a9059cbb1461062257600080fd5b8063715018a61461051f57806377b54bad1461053457806378109e54146105545780637d1db4a51461056a57806384b1d1ef1461058057600080fd5b80632f54bf6e116101c7578063571ac8b01161018b578063571ac8b01461047b5780636b67c4df1461049b5780636ce46bc3146104b15780636ddd1713146104d157806370a08231146104f257600080fd5b80632f54bf6e146103a7578063313ce567146103d65780633b2d081c146103fd5780633f4218e014610413578063402911431461044357600080fd5b806318160ddd1161020e57806318160ddd146103265780631da1db5e1461033c5780631df4ccfc1461035c57806323b872dd146103725780632b112e491461039257600080fd5b80630445b6671461025657806306fdde031461027f57806309302dc6146102be578063095ea7b3146102e0578063180b0d7e1461031057600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c60165481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506102b160405180604001604052806006815260200165434f534d494360d01b81525081565b6040516102769190611929565b3480156102ca57600080fd5b506102de6102d936600461197e565b6107dd565b005b3480156102ec57600080fd5b506103006102fb3660046119b3565b61088e565b6040519015158152602001610276565b34801561031c57600080fd5b5061026c6103e881565b34801561033257600080fd5b5061026c60025481565b34801561034857600080fd5b506102de61035736600461197e565b6108fb565b34801561036857600080fd5b5061026c600e5481565b34801561037e57600080fd5b5061030061038d3660046119dd565b6109af565b34801561039e57600080fd5b5061026c610a71565b3480156103b357600080fd5b506103006103c2366004611a19565b6000546001600160a01b0391821691161490565b3480156103e257600080fd5b506103eb600481565b60405160ff9091168152602001610276565b34801561040957600080fd5b5061026c600c5481565b34801561041f57600080fd5b5061030061042e366004611a19565b60076020526000908152604090205460ff1681565b34801561044f57600080fd5b50601354610463906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b34801561048757600080fd5b50610300610496366004611a19565b610ae1565b3480156104a757600080fd5b5061026c600a5481565b3480156104bd57600080fd5b506102de6104cc366004611a34565b610aef565b3480156104dd57600080fd5b5060155461030090600160a01b900460ff1681565b3480156104fe57600080fd5b5061026c61050d366004611a19565b60056020526000908152604090205481565b34801561052b57600080fd5b506102de610b2a565b34801561054057600080fd5b5061030061054f3660046119b3565b610b9a565b34801561056057600080fd5b5061026c60045481565b34801561057657600080fd5b5061026c60035481565b34801561058c57600080fd5b50601454610463906001600160a01b031681565b3480156105ac57600080fd5b506000546001600160a01b0316610463565b3480156105ca57600080fd5b506103006105d9366004611a19565b60086020526000908152604090205460ff1681565b3480156105fa57600080fd5b506104637f0000000000000000000000003f53a0705d437ffd31b211f8d955ddb26098df0381565b34801561062e57600080fd5b5061030061063d3660046119b3565b610cc8565b34801561064e57600080fd5b506102de61065d36600461197e565b610cd5565b34801561066e57600080fd5b5061030061067d366004611a19565b60096020526000908152604090205460ff1681565b34801561069e57600080fd5b506102de6106ad366004611a60565b610d83565b3480156106be57600080fd5b5061026c600b5481565b3480156106d457600080fd5b5061026c6106e3366004611aa3565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561071a57600080fd5b506102de610729366004611ae7565b610dec565b34801561073a57600080fd5b50601254610463906001600160a01b031681565b34801561075a57600080fd5b506102de610769366004611b05565b610e87565b34801561077a57600080fd5b50601554610463906001600160a01b031681565b34801561079a57600080fd5b5061026c600d5481565b3480156107b057600080fd5b506103006107bf366004611a19565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b031633146108105760405162461bcd60e51b815260040161080790611b37565b60405180910390fd5b600181101561086d5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610807565b6103e88160025461087e9190611b6d565b6108889190611b8c565b60045550565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e99086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109255760405162461bcd60e51b815260040161080790611b37565b606581106109605760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610807565b476000606461096f8484611b6d565b6109799190611b8c565b604051909150339082156108fc029083906000818181858888f193505050501580156109a9573d6000803e3d6000fd5b50505050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610a5c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610a37918490610eee565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610a67848484610f28565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919291610ad29190611bae565b610adc9190611bae565b905090565b60006108f58260001961088e565b6000546001600160a01b03163314610b195760405162461bcd60e51b815260040161080790611b37565b600f91909155601091909155601155565b6000546001600160a01b03163314610b545760405162461bcd60e51b815260040161080790611b37565b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b3360009081526001602052604081205460ff16610be75760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610807565b81610c57576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c549190611bc5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a9190611bde565b6000610a6a338484610f28565b6000546001600160a01b03163314610cff5760405162461bcd60e51b815260040161080790611b37565b6001811015610d625760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610807565b6103e881600254610d739190611b6d565b610d7d9190611b8c565b60035550565b6000546001600160a01b03163314610dad5760405162461bcd60e51b815260040161080790611b37565b601280546001600160a01b039485166001600160a01b031991821617909155601380549385169382169390931790925560148054919093169116179055565b6000546001600160a01b03163314610e165760405162461bcd60e51b815260040161080790611b37565b600a600254610e259190611b8c565b8110610e655760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610807565b60158054921515600160a01b0260ff60a01b1990931692909217909155601655565b6000546001600160a01b03163314610eb15760405162461bcd60e51b815260040161080790611b37565b600a849055600b839055600c829055600d8190558181610ed18587611bfb565b610edb9190611bfb565b610ee59190611bfb565b600e5550505050565b60008184841115610f125760405162461bcd60e51b81526004016108079190611929565b506000610f1f8486611bae565b95945050505050565b60175460009060ff1615610f4857610f4184848461123c565b9050610a6a565b6001600160a01b03841660009081526001602052604090205460ff16158015610f8a57506001600160a01b03841660009081526009602052604090205460ff16155b8015610faf57506001600160a01b03831660009081526009602052604090205460ff16155b8015610fed57507f0000000000000000000000003f53a0705d437ffd31b211f8d955ddb26098df036001600160a01b0316836001600160a01b031614155b15611067576004546001600160a01b038416600090815260056020526040902054611019908490611bfb565b11156110675760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610807565b6003548211158061109057506001600160a01b03841660009081526008602052604090205460ff165b806110b357506001600160a01b03831660009081526008602052604090205460ff165b6110f75760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610807565b6110ff611310565b1561110c5761110c611383565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461115e918490610eee565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16806111ab57506001600160a01b03841660009081526007602052604090205460ff165b6111bf576111ba8584866115c9565b6111c1565b825b6001600160a01b0385166000908152600560205260409020549091506111e79082611799565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020611c9b833981519152906112299085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461128d918490610eee565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546112bc9083611799565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020611c9b833981519152906112fe9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000003f53a0705d437ffd31b211f8d955ddb26098df03161480159061134e575060175460ff16155b80156113635750601554600160a01b900460ff165b8015610adc57505060165430600090815260056020526040902054101590565b6017805460ff19166001179055600d54600e546000916113a291611bae565b60165460408051600280825260608201835293945091926000929160208301908036833701905050905030816000815181106113e0576113e0611c13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061143457611434611c13565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac9479061147a908590600090869030904290600401611c29565b600060405180830381600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b5050600a544792506000915085906114c09084611b6d565b6114ca9190611b8c565b9050600085600b54846114dd9190611b6d565b6114e79190611b8c565b9050600086600c54856114fa9190611b6d565b6115049190611b8c565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f1935050505015801561153f573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561157a573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156115b5573d6000803e3d6000fd5b50506017805460ff19169055505050505050565b60008215806115d85750600e54155b156115e4575081610a6a565b600060115490507f0000000000000000000000003f53a0705d437ffd31b211f8d955ddb26098df036001600160a01b0316836001600160a01b0316141561162e5750600f5461166d565b7f0000000000000000000000003f53a0705d437ffd31b211f8d955ddb26098df036001600160a01b0316856001600160a01b0316141561166d57506010545b60006116a461167f6103e86064611b6d565b61169e84611698600e548a6117f890919063ffffffff16565b906117f8565b90611877565b905060006116c3600e5461169e600d54856117f890919063ffffffff16565b905060006116d183836118b9565b9050801561173b57306000908152600560205260409020546116f39082611799565b30600081815260056020526040908190209290925590516001600160a01b038a1690600080516020611c9b833981519152906117329085815260200190565b60405180910390a35b8115611783578160025461174f9190611bae565b60025560405182815261dead906001600160a01b038a1690600080516020611c9b8339815191529060200160405180910390a35b61178d87846118b9565b98975050505050505050565b6000806117a68385611bfb565b905083811015610a6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610807565b600082611807575060006108f5565b60006118138385611b6d565b9050826118208583611b8c565b14610a6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610807565b6000610a6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118fb565b6000610a6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eee565b6000818361191c5760405162461bcd60e51b81526004016108079190611929565b506000610f1f8486611b8c565b600060208083528351808285015260005b818110156119565785810183015185820160400152820161193a565b81811115611968576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561199057600080fd5b5035919050565b80356001600160a01b03811681146119ae57600080fd5b919050565b600080604083850312156119c657600080fd5b6119cf83611997565b946020939093013593505050565b6000806000606084860312156119f257600080fd5b6119fb84611997565b9250611a0960208501611997565b9150604084013590509250925092565b600060208284031215611a2b57600080fd5b610a6a82611997565b600080600060608486031215611a4957600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611a7557600080fd5b611a7e84611997565b9250611a8c60208501611997565b9150611a9a60408501611997565b90509250925092565b60008060408385031215611ab657600080fd5b611abf83611997565b9150611acd60208401611997565b90509250929050565b8015158114611ae457600080fd5b50565b60008060408385031215611afa57600080fd5b82356119cf81611ad6565b60008060008060808587031215611b1b57600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611b8757611b87611b57565b500290565b600082611ba957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611bc057611bc0611b57565b500390565b600060208284031215611bd757600080fd5b5051919050565b600060208284031215611bf057600080fd5b8151610a6a81611ad6565b60008219821115611c0e57611c0e611b57565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c795784516001600160a01b031683529383019391830191600101611c54565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122027beeb4849d1e244699aa0a22caf45609e8f70ff5f5d92fef90406be2d5f6c4164736f6c634300080c0033

Deployed Bytecode Sourcemap

3420:9610:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4881:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4881:48:0;;;;;;;;3670:38;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3670:38:0;;;;;;;;;;;;:::i;7132:261::-;;;;;;;;;;-1:-1:-1;7132:261:0;;;;;:::i;:::-;;:::i;:::-;;6236:216;;;;;;;;;;-1:-1:-1;6236:216:0;;;;;:::i;:::-;;:::i;:::-;;;1585:14:1;;1578:22;1560:41;;1548:2;1533:18;6236:216:0;1420:187:1;4490:45:0;;;;;;;;;;;;4531:4;4490:45;;3805:53;;;;;;;;;;;;;;;;10236:313;;;;;;;;;;-1:-1:-1;10236:313:0;;;;;:::i;:::-;;:::i;4412:71::-;;;;;;;;;;;;;;;;6754:370;;;;;;;;;;-1:-1:-1;6754:370:0;;;;;:::i;:::-;;:::i;12888:137::-;;;;;;;;;;;;;:::i;2533:103::-;;;;;;;;;;-1:-1:-1;2533:103:0;;;;;:::i;:::-;2588:4;2623:5;-1:-1:-1;;;;;2612:16:0;;;2623:5;;2612:16;;2533:103;3762:34;;;;;;;;;;;;3795:1;3762:34;;;;;2308:4:1;2296:17;;;2278:36;;2266:2;2251:18;3762:34:0;2136:184:1;4342:30:0;;;;;;;;;;;;;;;;4102:44;;;;;;;;;;-1:-1:-1;4102:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4696:30;;;;;;;;;;-1:-1:-1;4696:30:0;;;;-1:-1:-1;;;;;4696:30:0;;;;;;-1:-1:-1;;;;;2489:32:1;;;2471:51;;2459:2;2444:18;4696:30:0;2325:203:1;6460:122:0;;;;;;;;;;-1:-1:-1;6460:122:0;;;;;:::i;:::-;;:::i;4269:32::-;;;;;;;;;;;;;;;;11806:198;;;;;;;;;;-1:-1:-1;11806:198:0;;;;;:::i;:::-;;:::i;4844:30::-;;;;;;;;;;-1:-1:-1;4844:30:0;;;;-1:-1:-1;;;4844:30:0;;;;;;3980:45;;;;;;;;;;-1:-1:-1;3980:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2759:131;;;;;;;;;;;;;:::i;10557:287::-;;;;;;;;;;-1:-1:-1;10557:287:0;;;;;:::i;:::-;;:::i;3921:50::-;;;;;;;;;;;;;;;;3867:47;;;;;;;;;;;;;;;;4733:33;;;;;;;;;;-1:-1:-1;4733:33:0;;;;-1:-1:-1;;;;;4733:33:0;;;6011:78;;;;;;;;;;-1:-1:-1;6063:7:0;6081:5;-1:-1:-1;;;;;6081:5:0;6011:78;;4153:48;;;;;;;;;;-1:-1:-1;4153:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4806:29;;;;;;;;;;;;;;;6590:156;;;;;;;;;;-1:-1:-1;6590:156:0;;;;;:::i;:::-;;:::i;7399:262::-;;;;;;;;;;-1:-1:-1;7399:262:0;;;;;:::i;:::-;;:::i;4208:52::-;;;;;;;;;;-1:-1:-1;4208:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12357:289;;;;;;;;;;-1:-1:-1;12357:289:0;;;;;:::i;:::-;;:::i;4308:27::-;;;;;;;;;;;;;;;;6095:133;;;;;;;;;;-1:-1:-1;6095:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6197:19:0;;;6179:7;6197:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6095:133;12654:222;;;;;;;;;;-1:-1:-1;12654:222:0;;;;;:::i;:::-;;:::i;4654:35::-;;;;;;;;;;-1:-1:-1;4654:35:0;;;;-1:-1:-1;;;;;4654:35:0;;;12012:337;;;;;;;;;;-1:-1:-1;12012:337:0;;;;;:::i;:::-;;:::i;4775:24::-;;;;;;;;;;-1:-1:-1;4775:24:0;;;;-1:-1:-1;;;;;4775:24:0;;;4379:26;;;;;;;;;;;;;;;;2644:107;;;;;;;;;;-1:-1:-1;2644:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;2724:19:0;2700:4;2724:19;;;:14;:19;;;;;;;;;2644:107;7132:261;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;;;;;;;;;7268:1:::1;7241:23;:28;;7233:76;;;::::0;-1:-1:-1;;;7233:76:0;;5047:2:1;7233:76:0::1;::::0;::::1;5029:21:1::0;5086:2;5066:18;;;5059:30;5125:34;5105:18;;;5098:62;-1:-1:-1;;;5176:18:1;;;5169:34;5220:19;;7233:76:0::1;4845:400:1::0;7233:76:0::1;7381:4;7353:23;7339:11;;:37;;;;:::i;:::-;7338:47;;;;:::i;:::-;7320:15;:65:::0;-1:-1:-1;7132:261:0:o;6236:216::-;6340:10;6311:4;6328:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6328:32:0;;;;;;;;;;:41;;;6385:37;6311:4;;6328:32;;6385:37;;;;6363:6;160:25:1;;148:2;133:18;;14:177;6385:37:0;;;;;;;;-1:-1:-1;6440:4:0;6236:216;;;;;:::o;10236:313::-;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;10346:3:::1;10327:16;:22;10319:43;;;::::0;-1:-1:-1;;;10319:43:0;;5979:2:1;10319:43:0::1;::::0;::::1;5961:21:1::0;6018:1;5998:18;;;5991:29;-1:-1:-1;;;6036:18:1;;;6029:38;6084:18;;10319:43:0::1;5777:331:1::0;10319:43:0::1;10393:21;10373:17;10484:3;10451:28;10463:16:::0;10393:21;10451:28:::1;:::i;:::-;10449:38;;;;:::i;:::-;10498:43;::::0;10425:62;;-1:-1:-1;10506:10:0::1;::::0;10498:43;::::1;;;::::0;10425:62;;10498:43:::1;::::0;;;10425:62;10506:10;10498:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10308:241;;10236:313:::0;:::o;6754:370::-;-1:-1:-1;;;;;6874:19:0;;6854:4;6874:19;;;:11;:19;;;;;;;;6894:10;6874:31;;;;;;;;-1:-1:-1;;6874:52:0;6871:186;;6976:69;;;;;;;;;;;-1:-1:-1;;;6976:69:0;;;;;;;;-1:-1:-1;;;;;6976:19:0;;-1:-1:-1;6976:19:0;;;:11;:19;;;;;6996:10;6976:31;;;;;;;;;;:69;;7012:6;;6976:35;:69::i;:::-;-1:-1:-1;;;;;6942:19:0;;;;;;:11;:19;;;;;;;;6962:10;6942:31;;;;;;;:103;6871:186;7076:40;7090:6;7098:9;7109:6;7076:13;:40::i;:::-;7069:47;;6754:370;;;;;;:::o;12888:137::-;13001:9;:15;;;;3546:42;12941:7;12983:15;;;;;12969:11;;12941:7;;13001:15;12969:29;;12983:15;12969:29;:::i;:::-;:47;;;;:::i;:::-;12961:56;;12888:137;:::o;6460:122::-;6515:4;6539:35;6547:7;-1:-1:-1;;6539:7:0;:35::i;11806:198::-;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;11905:14:::1;:22:::0;;;;11938:13:::1;:20:::0;;;;11969:18:::1;:27:::0;11806:198::o;2759:131::-;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;2821:32:::1;::::0;2850:1:::1;2471:51:1::0;;2821:32:0::1;::::0;2459:2:1;2444:18;2821:32:0::1;;;;;;;2880:1;2864:18:::0;;-1:-1:-1;;;;;;2864:18:0::1;::::0;;2759:131::o;10557:287::-;2487:10;10649:12;2724:19;;;:14;:19;;;;;;;;2466:48;;;;-1:-1:-1;;;2466:48:0;;6445:2:1;2466:48:0;;;6427:21:1;6484:2;6464:18;;;6457:30;-1:-1:-1;;;6503:18:1;;;6496:41;6554:18;;2466:48:0;6243:335:1;2466:48:0;10677:11;10674:95:::1;;10713:44;::::0;-1:-1:-1;;;10713:44:0;;10751:4:::1;10713:44;::::0;::::1;2471:51:1::0;-1:-1:-1;;;;;10713:29:0;::::1;::::0;::::1;::::0;2444:18:1;;10713:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10704:53;;10674:95;10788:48;::::0;-1:-1:-1;;;10788:48:0;;10817:10:::1;10788:48;::::0;::::1;6946:51:1::0;7013:18;;;7006:34;;;-1:-1:-1;;;;;10788:28:0;::::1;::::0;::::1;::::0;6919:18:1;;10788:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6590:156::-:0;6670:4;6694:44;6708:10;6720:9;6731:6;6694:13;:44::i;7399:262::-;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;7533:1:::1;7505:24;:29;;7497:82;;;::::0;-1:-1:-1;;;7497:82:0;;7503:2:1;7497:82:0::1;::::0;::::1;7485:21:1::0;7542:2;7522:18;;;7515:30;7581:34;7561:18;;;7554:62;-1:-1:-1;;;7632:18:1;;;7625:39;7681:19;;7497:82:0::1;7301:405:1::0;7497:82:0::1;7649:4;7620:24;7606:11;;:38;;;;:::i;:::-;7605:48;;;;:::i;:::-;7590:12;:63:::0;-1:-1:-1;7399:262:0:o;12357:289::-;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;12498:20:::1;:44:::0;;-1:-1:-1;;;;;12498:44:0;;::::1;-1:-1:-1::0;;;;;;12498:44:0;;::::1;;::::0;;;12553:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;12598:18:::1;:40:::0;;;;;::::1;::::0;::::1;;::::0;;12357:289::o;12654:222::-;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;12776:2:::1;12764:11;;:14;;;;:::i;:::-;12753:7;:26;12745:54;;;::::0;-1:-1:-1;;;12745:54:0;;7913:2:1;12745:54:0::1;::::0;::::1;7895:21:1::0;7952:2;7932:18;;;7925:30;-1:-1:-1;;;7971:18:1;;;7964:45;8026:18;;12745:54:0::1;7711:339:1::0;12745:54:0::1;12812:11;:22:::0;;;::::1;;-1:-1:-1::0;;;12812:22:0::1;-1:-1:-1::0;;;;12812:22:0;;::::1;::::0;;;::::1;::::0;;;12845:13:::1;:23:::0;12654:222::o;12012:337::-;2588:4;2623:5;-1:-1:-1;;;;;2623:5:0;2392:10;2612:16;2376:38;;;;-1:-1:-1;;;2376:38:0;;;;;;;:::i;:::-;12148:12:::1;:28:::0;;;12187:7:::1;:18:::0;;;12216:10:::1;:24:::0;;;12251:7:::1;:18:::0;;;12229:11;12261:8;12292:24:::1;12197:8:::0;12163:13;12292:24:::1;:::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;12280:8;:61:::0;-1:-1:-1;;;;12012:337:0:o;656:192::-;742:7;778:12;770:6;;;;762:29;;;;-1:-1:-1;;;762:29:0;;;;;;;;:::i;:::-;-1:-1:-1;802:9:0;814:5;818:1;814;:5;:::i;:::-;802:17;656:192;-1:-1:-1;;;;;656:192:0:o;7669:978::-;7781:6;;7761:4;;7781:6;;7778:63;;;7797:41;7812:6;7820:9;7831:6;7797:14;:41::i;:::-;7790:48;;;;7778:63;-1:-1:-1;;;;;7858:22:0;;;;;;:14;:22;;;;;;;;7857:23;:55;;;;-1:-1:-1;;;;;;7885:27:0;;;;;;:19;:27;;;;;;;;7884:28;7857:55;:90;;;;-1:-1:-1;;;;;;7917:30:0;;;;;;:19;:30;;;;;;;;7916:31;7857:90;:111;;;;;7964:4;-1:-1:-1;;;;;7951:17:0;:9;-1:-1:-1;;;;;7951:17:0;;;7857:111;7853:230;;;8028:15;;-1:-1:-1;;;;;7994:20:0;;;;;;:9;:20;;;;;;:29;;8017:6;;7994:29;:::i;:::-;7993:50;;7985:86;;;;-1:-1:-1;;;7985:86:0;;8390:2:1;7985:86:0;;;8372:21:1;8429:2;8409:18;;;8402:30;8468:26;8448:18;;;8441:54;8512:18;;7985:86:0;8188:348:1;7985:86:0;8118:12;;8108:6;:22;;8107:51;;;-1:-1:-1;;;;;;8135:23:0;;;;;;:15;:23;;;;;;;;8107:51;:81;;;-1:-1:-1;;;;;;8162:26:0;;;;;;:15;:26;;;;;;;;8107:81;8099:115;;;;-1:-1:-1;;;8099:115:0;;8743:2:1;8099:115:0;;;8725:21:1;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:51;8862:18;;8099:115:0;8541:345:1;8099:115:0;8230:16;:14;:16::i;:::-;8227:35;;;8249:10;:8;:10::i;:::-;8294:53;;;;;;;;;;;-1:-1:-1;;;8294:53:0;;;;;;;;-1:-1:-1;;;;;8294:17:0;;-1:-1:-1;8294:17:0;;;:9;:17;;;;;;;;:53;;8316:6;;8294:21;:53::i;:::-;-1:-1:-1;;;;;8274:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8386:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;8409:22:0;;;;;;:11;:22;;;;;;;;8386:45;8385:93;;8444:34;8452:6;8460;8468:9;8444:7;:34::i;:::-;8385:93;;;8435:6;8385:93;-1:-1:-1;;;;;8514:20:0;;;;;;:9;:20;;;;;;8360:118;;-1:-1:-1;8514:40:0;;8360:118;8514:24;:40::i;:::-;-1:-1:-1;;;;;8491:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8574:43;;;;;;-1:-1:-1;;;;;;;;;;;8574:43:0;;;8602:14;160:25:1;;148:2;133:18;;14:177;8574:43:0;;;;;;;;-1:-1:-1;8635:4:0;;7669:978;-1:-1:-1;;;;7669:978:0:o;8659:330::-;8789:53;;;;;;;;;;;-1:-1:-1;;;8789:53:0;;;;;;;;-1:-1:-1;;;;;8789:17:0;;8752:4;8789:17;;;:9;:17;;;;;;;:53;;8811:6;;8789:21;:53::i;:::-;-1:-1:-1;;;;;8769:17:0;;;;;;;:9;:17;;;;;;:73;;;;8876:20;;;;;;;:32;;8901:6;8876:24;:32::i;:::-;-1:-1:-1;;;;;8853:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8924:35;;;;;;-1:-1:-1;;;;;;;;;;;8924:35:0;;;8952:6;160:25:1;;148:2;133:18;;14:177;8924:35:0;;;;;;;;-1:-1:-1;8977:4:0;8659:330;;;;;:::o;10031:197::-;10080:4;10104:10;-1:-1:-1;;;;;10118:4:0;10104:18;;;;;:38;;-1:-1:-1;10136:6:0;;;;10135:7;10104:38;:62;;;;-1:-1:-1;10155:11:0;;-1:-1:-1;;;10155:11:0;;;;10104:62;:116;;;;-1:-1:-1;;10207:13:0;;10197:4;10179:24;;;;:9;:24;;;;;;:41;;;10031:197::o;10854:944::-;4976:6;:13;;-1:-1:-1;;4976:13:0;4985:4;4976:13;;;10938:7:::1;::::0;10927:8:::1;::::0;4976:6;;10927:18:::1;::::0;::::1;:::i;:::-;10979:13;::::0;11029:16:::1;::::0;;11043:1:::1;11029:16:::0;;;;;::::1;::::0;;10905:40;;-1:-1:-1;10979:13:0;;10956:20:::1;::::0;11029:16;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11029:16:0::1;11005:40;;11074:4;11056;11061:1;11056:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11056:23:0::1;;;-1:-1:-1::0;;;;;11056:23:0::1;;;::::0;::::1;11100:4;11090;11095:1;11090:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11090:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11117:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;11117:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;11189:12;;11117:6:::1;::::0;11232:4;;11259::::1;::::0;11279:15:::1;::::0;11117:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11422:12:0::1;::::0;11338:21:::1;::::0;-1:-1:-1;11318:17:0::1;::::0;-1:-1:-1;11438:11:0;;11410:24:::1;::::0;11338:21;11410:24:::1;:::i;:::-;11409:40;;;;:::i;:::-;11380:69;;11460:21;11508:11;11497:7;;11485:9;:19;;;;:::i;:::-;11484:35;;;;:::i;:::-;11460:59;;11530:24;11584:11;11570:10;;11558:9;:22;;;;:::i;:::-;11557:38;;;;:::i;:::-;11616:20;::::0;11608:58:::1;::::0;11530:65;;-1:-1:-1;;;;;;11616:20:0::1;::::0;11608:58;::::1;;;::::0;11647:18;;11616:20:::1;11608:58:::0;11616:20;11608:58;11647:18;11616:20;11608:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11685:15:0::1;::::0;11677:48:::1;::::0;-1:-1:-1;;;;;11685:15:0;;::::1;::::0;11677:48;::::1;;;::::0;11711:13;;11685:15:::1;11677:48:::0;11685:15;11677:48;11711:13;11685:15;11677:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11744:18:0::1;::::0;11736:54:::1;::::0;-1:-1:-1;;;;;11744:18:0;;::::1;::::0;11736:54;::::1;;;::::0;11773:16;;11744:18:::1;11736:54:::0;11744:18;11736:54;11773:16;11744:18;11736:54;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4994:6:0;:14;;-1:-1:-1;;4994:14:0;;;-1:-1:-1;;;;;;10854:944:0:o;8997:1026::-;9083:7;9106:11;;;:28;;-1:-1:-1;9121:8:0;;:13;9106:28;9103:72;;;-1:-1:-1;9157:6:0;9150:13;;9103:72;9187:18;9208;;9187:39;;9255:4;-1:-1:-1;;;;;9242:17:0;:9;-1:-1:-1;;;;;9242:17:0;;9239:154;;;-1:-1:-1;9289:14:0;;9239:154;;;9334:4;-1:-1:-1;;;;;9324:14:0;:6;-1:-1:-1;;;;;9324:14:0;;9321:72;;;-1:-1:-1;9368:13:0;;9321:72;9405:17;9425:62;9466:20;4531:4;9483:3;9466:20;:::i;:::-;9425:36;9450:10;9425:20;9436:8;;9425:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;9405:82;;9498:18;9519:36;9546:8;;9519:22;9533:7;;9519:9;:13;;:22;;;;:::i;:36::-;9498:57;-1:-1:-1;9566:22:0;9591:25;:9;9498:57;9591:13;:25::i;:::-;9566:50;-1:-1:-1;9632:18:0;;9629:187;;9711:4;9693:24;;;;:9;:24;;;;;;:44;;9722:14;9693:28;:44::i;:::-;9684:4;9666:24;;;;:9;:24;;;;;;;:71;;;;9757:47;;-1:-1:-1;;;;;9757:47:0;;;-1:-1:-1;;;;;;;;;;;9757:47:0;;;9789:14;160:25:1;;148:2;133:18;;14:177;9757:47:0;;;;;;;;9629:187;9839:14;;9836:139;;9897:10;9883:11;;:24;;;;:::i;:::-;9869:11;:38;9927:32;;160:25:1;;;3546:42:0;;-1:-1:-1;;;;;9927:32:0;;;-1:-1:-1;;;;;;;;;;;9927:32:0;148:2:1;133:18;9927:32:0;;;;;;;9836:139;9994:21;:6;10005:9;9994:10;:21::i;:::-;9987:28;8997:1026;-1:-1:-1;;;;;;;;8997:1026:0:o;327:181::-;385:7;;417:5;421:1;417;:5;:::i;:::-;405:17;;446:1;441;:6;;433:46;;;;-1:-1:-1;;;433:46:0;;10342:2:1;433:46:0;;;10324:21:1;10381:2;10361:18;;;10354:30;10420:29;10400:18;;;10393:57;10467:18;;433:46:0;10140:351:1;854:250:0;912:7;936:6;932:47;;-1:-1:-1;966:1:0;959:8;;932:47;991:9;1003:5;1007:1;1003;:5;:::i;:::-;991:17;-1:-1:-1;1036:1:0;1027:5;1031:1;991:17;1027:5;:::i;:::-;:10;1019:56;;;;-1:-1:-1;;;1019:56:0;;10698:2:1;1019:56:0;;;10680:21:1;10737:2;10717:18;;;10710:30;10776:34;10756:18;;;10749:62;-1:-1:-1;;;10827:18:1;;;10820:31;10868:19;;1019:56:0;10496:397:1;1110:132:0;1168:7;1195:39;1199:1;1202;1195:39;;;;;;;;;;;;;;;;;:3;:39::i;514:136::-;572:7;599:43;603:1;606;599:43;;;;;;;;;;;;;;;;;:3;:43::i;1248:189::-;1334:7;1369:12;1362:5;1354:28;;;;-1:-1:-1;;;1354:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1393:9:0;1405:5;1409:1;1405;:5;:::i;196:597: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;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:180::-;857:6;910:2;898:9;889:7;885:23;881:32;878:52;;;926:1;923;916:12;878:52;-1:-1:-1;949:23:1;;798:180;-1:-1:-1;798:180:1:o;983:173::-;1051:20;;-1:-1:-1;;;;;1100:31:1;;1090:42;;1080:70;;1146:1;1143;1136:12;1080:70;983:173;;;:::o;1161:254::-;1229:6;1237;1290:2;1278:9;1269:7;1265:23;1261:32;1258:52;;;1306:1;1303;1296:12;1258:52;1329:29;1348:9;1329:29;:::i;:::-;1319:39;1405:2;1390:18;;;;1377:32;;-1:-1:-1;;;1161:254:1:o;1612:328::-;1689:6;1697;1705;1758:2;1746:9;1737:7;1733:23;1729:32;1726:52;;;1774:1;1771;1764:12;1726:52;1797:29;1816:9;1797:29;:::i;:::-;1787:39;;1845:38;1879:2;1868:9;1864:18;1845:38;:::i;:::-;1835:48;;1930:2;1919:9;1915:18;1902:32;1892:42;;1612:328;;;;;:::o;1945:186::-;2004:6;2057:2;2045:9;2036:7;2032:23;2028:32;2025:52;;;2073:1;2070;2063:12;2025:52;2096:29;2115:9;2096:29;:::i;2533:316::-;2610:6;2618;2626;2679:2;2667:9;2658:7;2654:23;2650:32;2647:52;;;2695:1;2692;2685:12;2647:52;-1:-1:-1;;2718:23:1;;;2788:2;2773:18;;2760:32;;-1:-1:-1;2839:2:1;2824:18;;;2811:32;;2533:316;-1:-1:-1;2533:316:1:o;2854:334::-;2931:6;2939;2947;3000:2;2988:9;2979:7;2975:23;2971:32;2968:52;;;3016:1;3013;3006:12;2968:52;3039:29;3058:9;3039:29;:::i;:::-;3029:39;;3087:38;3121:2;3110:9;3106:18;3087:38;:::i;:::-;3077:48;;3144:38;3178:2;3167:9;3163:18;3144:38;:::i;:::-;3134:48;;2854:334;;;;;:::o;3193:260::-;3261:6;3269;3322:2;3310:9;3301:7;3297:23;3293:32;3290:52;;;3338:1;3335;3328:12;3290:52;3361:29;3380:9;3361:29;:::i;:::-;3351:39;;3409:38;3443:2;3432:9;3428:18;3409:38;:::i;:::-;3399:48;;3193:260;;;;;:::o;3458:118::-;3544:5;3537:13;3530:21;3523:5;3520:32;3510:60;;3566:1;3563;3556:12;3510:60;3458:118;:::o;3581:309::-;3646:6;3654;3707:2;3695:9;3686:7;3682:23;3678:32;3675:52;;;3723:1;3720;3713:12;3675:52;3762:9;3749:23;3781:28;3803:5;3781:28;:::i;3895:385::-;3981:6;3989;3997;4005;4058:3;4046:9;4037:7;4033:23;4029:33;4026:53;;;4075:1;4072;4065:12;4026:53;-1:-1:-1;;4098:23:1;;;4168:2;4153:18;;4140:32;;-1:-1:-1;4219:2:1;4204:18;;4191:32;;4270:2;4255:18;4242:32;;-1:-1:-1;3895:385:1;-1:-1:-1;3895:385:1:o;4511:329::-;4713:2;4695:21;;;4752:1;4732:18;;;4725:29;-1:-1:-1;;;4785:2:1;4770:18;;4763:36;4831:2;4816:18;;4511:329::o;5250:127::-;5311:10;5306:3;5302:20;5299:1;5292:31;5342:4;5339:1;5332:15;5366:4;5363:1;5356:15;5382:168;5422:7;5488:1;5484;5480:6;5476:14;5473:1;5470:21;5465:1;5458:9;5451:17;5447:45;5444:71;;;5495:18;;:::i;:::-;-1:-1:-1;5535:9:1;;5382:168::o;5555:217::-;5595:1;5621;5611:132;;5665:10;5660:3;5656:20;5653:1;5646:31;5700:4;5697:1;5690:15;5728:4;5725:1;5718:15;5611:132;-1:-1:-1;5757:9:1;;5555:217::o;6113:125::-;6153:4;6181:1;6178;6175:8;6172:34;;;6186:18;;:::i;:::-;-1:-1:-1;6223:9:1;;6113:125::o;6583:184::-;6653:6;6706:2;6694:9;6685:7;6681:23;6677:32;6674:52;;;6722:1;6719;6712:12;6674:52;-1:-1:-1;6745:16:1;;6583:184;-1:-1:-1;6583:184:1:o;7051:245::-;7118:6;7171:2;7159:9;7150:7;7146:23;7142:32;7139:52;;;7187:1;7184;7177:12;7139:52;7219:9;7213:16;7238:28;7260:5;7238:28;:::i;8055:128::-;8095:3;8126:1;8122:6;8119:1;8116:13;8113:39;;;8132:18;;:::i;:::-;-1:-1:-1;8168:9:1;;8055:128::o;9023:127::-;9084:10;9079:3;9075:20;9072:1;9065:31;9115:4;9112:1;9105:15;9139:4;9136:1;9129:15;9155:980;9417:4;9465:3;9454:9;9450:19;9496:6;9485:9;9478:25;9522:2;9560:6;9555:2;9544:9;9540:18;9533:34;9603:3;9598:2;9587:9;9583:18;9576:31;9627:6;9662;9656:13;9693:6;9685;9678:22;9731:3;9720:9;9716:19;9709:26;;9770:2;9762:6;9758:15;9744:29;;9791:1;9801:195;9815:6;9812:1;9809:13;9801:195;;;9880:13;;-1:-1:-1;;;;;9876:39:1;9864:52;;9971:15;;;;9936:12;;;;9912:1;9830:9;9801:195;;;-1:-1:-1;;;;;;;10052:32:1;;;;10047:2;10032:18;;10025:60;-1:-1:-1;;;10116:3:1;10101:19;10094:35;10013:3;9155:980;-1:-1:-1;;;9155:980:1:o

Swarm Source

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