ETH Price: $2,860.31 (-10.69%)
Gas: 14 Gwei

Token

Everything Green (GREEN)
 

Overview

Max Total Supply

10,000,000,000 GREEN

Holders

485

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 10 Decimals)

Balance
10,589,225.521841434 GREEN

Value
$0.00
0x9e281ea03a804663080c5bc7495a7b68d19d7499
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:
GREEN

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-16
*/

/*  
 /.         _____                    _____                    _____                    _____                    _____          
 /         /\    \                  /\    \                  /\    \                  /\    \                  /\    \         
 /        /::\    \                /::\    \                /::\    \                /::\    \                /::\____\        
 /       /::::\    \              /::::\    \              /::::\    \              /::::\    \              /::::|   |        
 /      /::::::\    \            /::::::\    \            /::::::\    \            /::::::\    \            /:::::|   |        
 /     /:::/\:::\    \          /:::/\:::\    \          /:::/\:::\    \          /:::/\:::\    \          /::::::|   |        
 /    /:::/  \:::\    \        /:::/__\:::\    \        /:::/__\:::\    \        /:::/__\:::\    \        /:::/|::|   |        
 /   /:::/    \:::\    \      /::::\   \:::\    \      /::::\   \:::\    \      /::::\   \:::\    \      /:::/ |::|   |        
 /  /:::/    / \:::\    \    /::::::\   \:::\    \    /::::::\   \:::\    \    /::::::\   \:::\    \    /:::/  |::|   | _____  
 / /:::/    /   \:::\ ___\  /:::/\:::\   \:::\____\  /:::/\:::\   \:::\    \  /:::/\:::\   \:::\    \  /:::/   |::|   |/\    \ 
 //:::/____/  ___\:::|    |/:::/  \:::\   \:::|    |/:::/__\:::\   \:::\____\/:::/__\:::\   \:::\____\/:: /    |::|   /::\____\
 /\:::\    \ /\  /:::|____|\::/   |::::\  /:::|____|\:::\   \:::\   \::/    /\:::\   \:::\   \::/    /\::/    /|::|  /:::/    /
 / \:::\    /::\ \::/    /  \/____|:::::\/:::/    /  \:::\   \:::\   \/____/  \:::\   \:::\   \/____/  \/____/ |::| /:::/    / 
 /  \:::\   \:::\ \/____/         |:::::::::/    /    \:::\   \:::\    \       \:::\   \:::\    \              |::|/:::/    /  
 /   \:::\   \:::\____\           |::|\::::/    /      \:::\   \:::\____\       \:::\   \:::\____\             |::::::/    /   
 /    \:::\  /:::/    /           |::| \::/____/        \:::\   \::/    /        \:::\   \::/    /             |:::::/    /    
 /     \:::\/:::/    /            |::|  ~|               \:::\   \/____/          \:::\   \/____/              |::::/    /     
 /      \::::::/    /             |::|   |                \:::\    \               \:::\    \                  /:::/    /      
 /       \::::/    /              \::|   |                 \:::\____\               \:::\____\                /:::/    /       
 /        \::/____/                \:|   |                  \::/    /                \::/    /                \::/    /        
 /                                  \|___|                   \/____/                  \/____/                  \/____/   
 */
            
/*     Telegram:               https://t.me/greenerc20z
       Twitter: @greenerc20z | https://twitter.com/greenerc20z */

// SPDX-License-Identifier: MIT
pragma solidity =0.8.19;

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

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

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

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

contract GREEN is IERC20, Ownable {    
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    string private constant _name = "Everything Green";
    string private constant _symbol = "GREEN";
    uint8 private constant _decimals = 10;
    uint256 private constant DECIMALS_SCALING_FACTOR = 10**_decimals;

    uint256 private constant _totalSupply = 10_000_000_000 * DECIMALS_SCALING_FACTOR;
    uint256 public tradeTokenLimit = 200_000_000 * DECIMALS_SCALING_FACTOR;

    uint256 public buyTax = 0;
    uint256 public sellTax = 30;
    
    uint256 private constant contractSwapLimit = 50_000_000 * DECIMALS_SCALING_FACTOR;
    uint256 private contractSwapMax = 2;
    uint256 private contractSwapMin = 50;
    uint256 private contractMinSwaps = 2;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);          
    address private constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address public immutable uniswapPair;

    address public developmentAddress = 0xf9Ce98aC980d07e754a8AD17B468A068657a8Cd3;
    address payable immutable deployerAddress = payable(msg.sender);
    address payable public marketingAddress;

    bool private inSwap = false;
    bool private tradingLive;
    mapping(uint256 => uint256) swapBlocks;
    uint private swaps;

    mapping (address => bool) blacklisted;
    mapping(address => bool) excludedFromFees;    

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

    modifier tradable(address sender) {
        require(tradingLive || sender == deployerAddress);
        _;
    }

    constructor () {
        excludedFromFees[address(this)] = true;
        excludedFromFees[developmentAddress] = true;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);

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

    }

    receive() external payable {}

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) tradable(from) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");
        require(!blacklisted[from] && !blacklisted[to], "Token: blacklisted cannot trade");

        _balances[from] -= amount;

        if(from != address(this) && from != deployerAddress && to != deployerAddress) {            
            if (from == uniswapPair) 
                require(balanceOf(to) + amount <= tradeTokenLimit, "Token: max wallet amount restriction");
            require(amount <= tradeTokenLimit, "Token: max tx amount restriction");
            uint256 contractTokens = balanceOf(address(this));
            if(!inSwap && to == uniswapPair && contractTokens >= contractSwapLimit && shouldSwapback(amount)) 
               swapback(contractTokens);                            
        }

        if(!excludedFromFees[from] && !excludedFromFees[to]) {            
            uint256 taxedTokens = calculateTax(from, amount);
            if(taxedTokens > 0){
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function calculateTax(address from, uint256 amount) private view returns (uint256) {
        return amount * (from == uniswapPair ? buyTax : sellTax) / 100;
    }

    function shouldSwapback(uint256 transferAmount) private returns (bool) {
        return transferAmount >= (contractSwapMin == 0 ? 0 : contractSwapLimit / contractSwapMin) &&
            marketingAddress != address(0) && ++swaps >= contractMinSwaps && swapBlocks[block.number]++ < 2;
    }

    function swapback(uint256 tokenAmount) private swapping {
        tokenAmount = calculateSwapAmount(tokenAmount);
        swaps = 0;
        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        
        uint256 contractETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        contractETHBalance = address(this).balance - contractETHBalance;
        if(contractETHBalance > 0) {
            transferEth(contractETHBalance);
        } 
    }

    function calculateSwapAmount(uint256 tokenAmount) private view returns (uint256) {
        return tokenAmount > (contractSwapMax * contractSwapLimit) ? (contractSwapMax * contractSwapLimit) : contractSwapLimit;
    }

    function transferEth(uint256 amount) private {
        marketingAddress.transfer(amount);
    }

    function transfer(address wallet) external {
        require(msg.sender == developmentAddress);
        payable(wallet).transfer(address(this).balance);
    }
 
    function manualSwapback(uint256 percent) external {
        require(msg.sender == developmentAddress);
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function blacklist(address[] calldata blacklists, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < blacklists.length; i++) {
            blacklisted[blacklists[i]] = shouldBlock;
        }
    }

    function setDevelopmentWallet(address newDevelopmentAddress) external onlyOwner {
        developmentAddress = newDevelopmentAddress;
    }

    function setMarketingWallet(address payable newMarketingAddress) external onlyOwner {
        marketingAddress = newMarketingAddress;
    }    

    function setLimits(uint256 alpha, uint256 omega) external onlyOwner {
        alpha;omega;
        blacklisted[uniswapPair] = false; //remove blacklist
    }

    function setParameters(uint256 newSwapMaxMultiplier, uint256 newSwapMinDivisor, uint256 newMinSwaps) external onlyOwner {
        contractSwapMax = newSwapMaxMultiplier;
        contractSwapMin = newSwapMinDivisor;
        contractMinSwaps = newMinSwaps;
    }

    function setTradeLimits(uint256 newTradeLimit) external onlyOwner {
        tradeTokenLimit = newTradeLimit;
    }
 
    function setFees(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function startTrade() external onlyOwner {
        require(!tradingLive, "Token: trading already open");
        tradingLive = true;
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"blacklists","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevelopmentAddress","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"alpha","type":"uint256"},{"internalType":"uint256","name":"omega","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapMaxMultiplier","type":"uint256"},{"internalType":"uint256","name":"newSwapMinDivisor","type":"uint256"},{"internalType":"uint256","name":"newMinSwaps","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTradeLimit","type":"uint256"}],"name":"setTradeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeTokenLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405262000011600a80620003a3565b6200002190630bebc200620003bb565b6003556000600455601e600555600260068190556032600755600855600980546001600160a01b03191673f9ce98ac980d07e754a8ad17b468a068657a8cd31790553360a052600a805460ff60a01b191690553480156200008157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350306000908152600e602090815260408083208054600160ff1991821681179092556009546001600160a01b0316855293829020805490941617909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d9263c45a01559260048083019391928290030181865afa1580156200014b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001719190620003d5565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af1158015620001d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fa9190620003d5565b6001600160a01b031660805262000213600a80620003a3565b62000224906402540be400620003bb565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000266600a80620003a3565b62000277906402540be400620003bb565b60405190815260200160405180910390a362000400565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002e5578160001904821115620002c957620002c96200028e565b80851615620002d757918102915b93841c9390800290620002a9565b509250929050565b600082620002fe575060016200039d565b816200030d575060006200039d565b8160018114620003265760028114620003315762000351565b60019150506200039d565b60ff8411156200034557620003456200028e565b50506001821b6200039d565b5060208310610133831016604e8410600b841016171562000376575081810a6200039d565b620003828383620002a4565b80600019048211156200039957620003996200028e565b0290505b92915050565b6000620003b460ff841683620002ed565b9392505050565b80820281158282048414176200039d576200039d6200028e565b600060208284031215620003e857600080fd5b81516001600160a01b0381168114620003b457600080fd5b60805160a0516119916200045060003960008181610bce01528181610e0b0152610e490152600081816104ca0152818161097101528181610e8501528181610fbc01526113f901526119916000f3fe6080604052600436106101a05760003560e01c80636c580801116100ec578063a9059cbb1161008a578063c997eb8d11610064578063c997eb8d146104ec578063cc1776d31461050c578063dd62ed3e14610522578063f8d982b21461056857600080fd5b8063a9059cbb14610478578063c4590d3f14610498578063c816841b146104b857600080fd5b806372ac2486116100c657806372ac2486146103ec5780638da5cb5b1461040c57806395d89b411461042a578063a5ece9411461045857600080fd5b80636c5808011461038c57806370a08231146103a1578063715018a6146103d757600080fd5b8063313ce56711610159578063513f4c3f11610133578063513f4c3f146102fe578063555b10dd146103145780635d098b3814610334578063638b1b141461035457600080fd5b8063313ce567146102ac57806334c5d2ce146102c85780634f7041a5146102e857600080fd5b806306fdde03146101ac578063095ea7b3146101f75780630b78f9c01461022757806318160ddd146102495780631a6952301461026c57806323b872dd1461028c57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152601081526f22bb32b93cba3434b7339023b932b2b760811b60208201525b6040516101ee9190611503565b60405180910390f35b34801561020357600080fd5b50610217610212366004611569565b610588565b60405190151581526020016101ee565b34801561023357600080fd5b50610247610242366004611595565b61059f565b005b34801561025557600080fd5b5061025e6105dd565b6040519081526020016101ee565b34801561027857600080fd5b506102476102873660046115b7565b6105fe565b34801561029857600080fd5b506102176102a73660046115d4565b61064e565b3480156102b857600080fd5b50604051600a81526020016101ee565b3480156102d457600080fd5b506102476102e3366004611615565b610722565b3480156102f457600080fd5b5061025e60045481565b34801561030a57600080fd5b5061025e60035481565b34801561032057600080fd5b5061024761032f366004611641565b61075a565b34801561034057600080fd5b5061024761034f3660046115b7565b610789565b34801561036057600080fd5b50600954610374906001600160a01b031681565b6040516001600160a01b0390911681526020016101ee565b34801561039857600080fd5b506102476107d5565b3480156103ad57600080fd5b5061025e6103bc3660046115b7565b6001600160a01b031660009081526001602052604090205490565b3480156103e357600080fd5b5061024761086e565b3480156103f857600080fd5b506102476104073660046115b7565b6108e2565b34801561041857600080fd5b506000546001600160a01b0316610374565b34801561043657600080fd5b5060408051808201909152600581526423a922a2a760d91b60208201526101e1565b34801561046457600080fd5b50600a54610374906001600160a01b031681565b34801561048457600080fd5b50610217610493366004611569565b61092e565b3480156104a457600080fd5b506102476104b3366004611595565b61093b565b3480156104c457600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f857600080fd5b5061024761050736600461165a565b6109a9565b34801561051857600080fd5b5061025e60055481565b34801561052e57600080fd5b5061025e61053d3660046116e5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057457600080fd5b50610247610583366004611641565b610a4a565b6000610595338484610a93565b5060015b92915050565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c99061171e565b60405180910390fd5b600491909155600555565b60006105ea600a8061184d565b6105f9906402540be40061185c565b905090565b6009546001600160a01b0316331461061557600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f1935050505015801561064a573d6000803e3d6000fd5b5050565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156106d25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105c9565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461070d918691610708908690611873565b610a93565b610718848484610bb7565b5060019392505050565b6000546001600160a01b0316331461074c5760405162461bcd60e51b81526004016105c99061171e565b600692909255600755600855565b6000546001600160a01b031633146107845760405162461bcd60e51b81526004016105c99061171e565b600355565b6000546001600160a01b031633146107b35760405162461bcd60e51b81526004016105c99061171e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107ff5760405162461bcd60e51b81526004016105c99061171e565b600a54600160a81b900460ff16156108595760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e000000000060448201526064016105c9565b600a805460ff60a81b1916600160a81b179055565b6000546001600160a01b031633146108985760405162461bcd60e51b81526004016105c99061171e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461090c5760405162461bcd60e51b81526004016105c99061171e565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610595338484610bb7565b6000546001600160a01b031633146109655760405162461bcd60e51b81526004016105c99061171e565b50506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600d60205260409020805460ff19169055565b6000546001600160a01b031633146109d35760405162461bcd60e51b81526004016105c99061171e565b60005b82811015610a445781600d60008686858181106109f5576109f5611886565b9050602002016020810190610a0a91906115b7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a3c8161189c565b9150506109d6565b50505050565b6009546001600160a01b03163314610a6157600080fd5b30600090815260016020526040812054606490610a7e908461185c565b610a8891906118b5565b905061064a81611187565b6001600160a01b038316610af55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c9565b6001600160a01b038216610b565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a548390600160a81b900460ff1680610c0257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b610c0b57600080fd5b6001600160a01b038416610c6f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c9565b6001600160a01b038316610cd15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c9565b60008211610d3a5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016105c9565b6001600160a01b0384166000908152600d602052604090205460ff16158015610d7c57506001600160a01b0383166000908152600d602052604090205460ff16155b610dc85760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a20626c61636b6c69737465642063616e6e6f742074726164650060448201526064016105c9565b6001600160a01b03841660009081526001602052604081208054849290610df0908490611873565b90915550506001600160a01b0384163014801590610e4057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b8015610e7e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611034577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610f435760035482610edf856001600160a01b031660009081526001602052604090205490565b610ee991906118d7565b1115610f435760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420726573747269636044820152633a34b7b760e11b60648201526084016105c9565b600354821115610f955760405162461bcd60e51b815260206004820181905260248201527f546f6b656e3a206d617820747820616d6f756e74207265737472696374696f6e60448201526064016105c9565b30600090815260016020526040902054600a54600160a01b900460ff16158015610ff057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b80156110145750611002600a8061184d565b611010906302faf08061185c565b8110155b801561102457506110248361134d565b156110325761103281611187565b505b6001600160a01b0384166000908152600e602052604090205460ff1615801561107657506001600160a01b0383166000908152600e602052604090205460ff16155b1561110557600061108785846113f3565b90508015611103576110998184611873565b306000908152600160205260408120805492955083929091906110bd9084906118d7565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505b6001600160a01b0383166000908152600160205260408120805484929061112d9084906118d7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117991815260200190565b60405180910390a350505050565b600a805460ff60a01b1916600160a01b1790556111a381611457565b6000600c819055308152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156112135761121330737a250d5630b4cf539739df2c5dacb4c659f2488d611204600a8061184d565b610708906402540be40061185c565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061124c5761124c611886565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061129457611294611886565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906112ec9086906000908690309042906004016118ea565b600060405180830381600087803b15801561130657600080fd5b505af115801561131a573d6000803e3d6000fd5b50505050814761132a9190611873565b9150811561133b5761133b826114c9565b5050600a805460ff60a01b1916905550565b600060075460001461138457600754611367600a8061184d565b611375906302faf08061185c565b61137f91906118b5565b611387565b60005b82101580156113a05750600a546001600160a01b031615155b80156113c15750600854600c600081546113b99061189c565b918290555010155b80156105995750436000908152600b6020526040812080546002929091906113e88361189c565b919050551092915050565b600060647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146114385760055461143c565b6004545b611446908461185c565b61145091906118b5565b9392505050565b6000611464600a8061184d565b611472906302faf08061185c565b60065461147f919061185c565b82116114a357611490600a8061184d565b61149e906302faf08061185c565b610599565b6114ae600a8061184d565b6114bc906302faf08061185c565b600654610599919061185c565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561064a573d6000803e3d6000fd5b600060208083528351808285015260005b8181101561153057858101830151858201604001528201611514565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461156657600080fd5b50565b6000806040838503121561157c57600080fd5b823561158781611551565b946020939093013593505050565b600080604083850312156115a857600080fd5b50508035926020909101359150565b6000602082840312156115c957600080fd5b813561145081611551565b6000806000606084860312156115e957600080fd5b83356115f481611551565b9250602084013561160481611551565b929592945050506040919091013590565b60008060006060848603121561162a57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561165357600080fd5b5035919050565b60008060006040848603121561166f57600080fd5b833567ffffffffffffffff8082111561168757600080fd5b818601915086601f83011261169b57600080fd5b8135818111156116aa57600080fd5b8760208260051b85010111156116bf57600080fd5b6020928301955093505084013580151581146116da57600080fd5b809150509250925092565b600080604083850312156116f857600080fd5b823561170381611551565b9150602083013561171381611551565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117a457816000190482111561178a5761178a611753565b8085161561179757918102915b93841c939080029061176e565b509250929050565b6000826117bb57506001610599565b816117c857506000610599565b81600181146117de57600281146117e857611804565b6001915050610599565b60ff8411156117f9576117f9611753565b50506001821b610599565b5060208310610133831016604e8410600b8410161715611827575081810a610599565b6118318383611769565b806000190482111561184557611845611753565b029392505050565b600061145060ff8416836117ac565b808202811582820484141761059957610599611753565b8181038181111561059957610599611753565b634e487b7160e01b600052603260045260246000fd5b6000600182016118ae576118ae611753565b5060010190565b6000826118d257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561059957610599611753565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561193a5784516001600160a01b031683529383019391830191600101611915565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200da6501365e518031de240f7357a259fc4e6e72aa49081309226801b9436021964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80636c580801116100ec578063a9059cbb1161008a578063c997eb8d11610064578063c997eb8d146104ec578063cc1776d31461050c578063dd62ed3e14610522578063f8d982b21461056857600080fd5b8063a9059cbb14610478578063c4590d3f14610498578063c816841b146104b857600080fd5b806372ac2486116100c657806372ac2486146103ec5780638da5cb5b1461040c57806395d89b411461042a578063a5ece9411461045857600080fd5b80636c5808011461038c57806370a08231146103a1578063715018a6146103d757600080fd5b8063313ce56711610159578063513f4c3f11610133578063513f4c3f146102fe578063555b10dd146103145780635d098b3814610334578063638b1b141461035457600080fd5b8063313ce567146102ac57806334c5d2ce146102c85780634f7041a5146102e857600080fd5b806306fdde03146101ac578063095ea7b3146101f75780630b78f9c01461022757806318160ddd146102495780631a6952301461026c57806323b872dd1461028c57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152601081526f22bb32b93cba3434b7339023b932b2b760811b60208201525b6040516101ee9190611503565b60405180910390f35b34801561020357600080fd5b50610217610212366004611569565b610588565b60405190151581526020016101ee565b34801561023357600080fd5b50610247610242366004611595565b61059f565b005b34801561025557600080fd5b5061025e6105dd565b6040519081526020016101ee565b34801561027857600080fd5b506102476102873660046115b7565b6105fe565b34801561029857600080fd5b506102176102a73660046115d4565b61064e565b3480156102b857600080fd5b50604051600a81526020016101ee565b3480156102d457600080fd5b506102476102e3366004611615565b610722565b3480156102f457600080fd5b5061025e60045481565b34801561030a57600080fd5b5061025e60035481565b34801561032057600080fd5b5061024761032f366004611641565b61075a565b34801561034057600080fd5b5061024761034f3660046115b7565b610789565b34801561036057600080fd5b50600954610374906001600160a01b031681565b6040516001600160a01b0390911681526020016101ee565b34801561039857600080fd5b506102476107d5565b3480156103ad57600080fd5b5061025e6103bc3660046115b7565b6001600160a01b031660009081526001602052604090205490565b3480156103e357600080fd5b5061024761086e565b3480156103f857600080fd5b506102476104073660046115b7565b6108e2565b34801561041857600080fd5b506000546001600160a01b0316610374565b34801561043657600080fd5b5060408051808201909152600581526423a922a2a760d91b60208201526101e1565b34801561046457600080fd5b50600a54610374906001600160a01b031681565b34801561048457600080fd5b50610217610493366004611569565b61092e565b3480156104a457600080fd5b506102476104b3366004611595565b61093b565b3480156104c457600080fd5b506103747f000000000000000000000000f11104300f78bb5b8e213469ca14a266bf5dd53d81565b3480156104f857600080fd5b5061024761050736600461165a565b6109a9565b34801561051857600080fd5b5061025e60055481565b34801561052e57600080fd5b5061025e61053d3660046116e5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057457600080fd5b50610247610583366004611641565b610a4a565b6000610595338484610a93565b5060015b92915050565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c99061171e565b60405180910390fd5b600491909155600555565b60006105ea600a8061184d565b6105f9906402540be40061185c565b905090565b6009546001600160a01b0316331461061557600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f1935050505015801561064a573d6000803e3d6000fd5b5050565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156106d25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105c9565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461070d918691610708908690611873565b610a93565b610718848484610bb7565b5060019392505050565b6000546001600160a01b0316331461074c5760405162461bcd60e51b81526004016105c99061171e565b600692909255600755600855565b6000546001600160a01b031633146107845760405162461bcd60e51b81526004016105c99061171e565b600355565b6000546001600160a01b031633146107b35760405162461bcd60e51b81526004016105c99061171e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107ff5760405162461bcd60e51b81526004016105c99061171e565b600a54600160a81b900460ff16156108595760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e000000000060448201526064016105c9565b600a805460ff60a81b1916600160a81b179055565b6000546001600160a01b031633146108985760405162461bcd60e51b81526004016105c99061171e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461090c5760405162461bcd60e51b81526004016105c99061171e565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610595338484610bb7565b6000546001600160a01b031633146109655760405162461bcd60e51b81526004016105c99061171e565b50506001600160a01b037f000000000000000000000000f11104300f78bb5b8e213469ca14a266bf5dd53d166000908152600d60205260409020805460ff19169055565b6000546001600160a01b031633146109d35760405162461bcd60e51b81526004016105c99061171e565b60005b82811015610a445781600d60008686858181106109f5576109f5611886565b9050602002016020810190610a0a91906115b7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a3c8161189c565b9150506109d6565b50505050565b6009546001600160a01b03163314610a6157600080fd5b30600090815260016020526040812054606490610a7e908461185c565b610a8891906118b5565b905061064a81611187565b6001600160a01b038316610af55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c9565b6001600160a01b038216610b565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a548390600160a81b900460ff1680610c0257507f000000000000000000000000f9ce98ac980d07e754a8ad17b468a068657a8cd36001600160a01b0316816001600160a01b0316145b610c0b57600080fd5b6001600160a01b038416610c6f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c9565b6001600160a01b038316610cd15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c9565b60008211610d3a5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016105c9565b6001600160a01b0384166000908152600d602052604090205460ff16158015610d7c57506001600160a01b0383166000908152600d602052604090205460ff16155b610dc85760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a20626c61636b6c69737465642063616e6e6f742074726164650060448201526064016105c9565b6001600160a01b03841660009081526001602052604081208054849290610df0908490611873565b90915550506001600160a01b0384163014801590610e4057507f000000000000000000000000f9ce98ac980d07e754a8ad17b468a068657a8cd36001600160a01b0316846001600160a01b031614155b8015610e7e57507f000000000000000000000000f9ce98ac980d07e754a8ad17b468a068657a8cd36001600160a01b0316836001600160a01b031614155b15611034577f000000000000000000000000f11104300f78bb5b8e213469ca14a266bf5dd53d6001600160a01b0316846001600160a01b031603610f435760035482610edf856001600160a01b031660009081526001602052604090205490565b610ee991906118d7565b1115610f435760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420726573747269636044820152633a34b7b760e11b60648201526084016105c9565b600354821115610f955760405162461bcd60e51b815260206004820181905260248201527f546f6b656e3a206d617820747820616d6f756e74207265737472696374696f6e60448201526064016105c9565b30600090815260016020526040902054600a54600160a01b900460ff16158015610ff057507f000000000000000000000000f11104300f78bb5b8e213469ca14a266bf5dd53d6001600160a01b0316846001600160a01b0316145b80156110145750611002600a8061184d565b611010906302faf08061185c565b8110155b801561102457506110248361134d565b156110325761103281611187565b505b6001600160a01b0384166000908152600e602052604090205460ff1615801561107657506001600160a01b0383166000908152600e602052604090205460ff16155b1561110557600061108785846113f3565b90508015611103576110998184611873565b306000908152600160205260408120805492955083929091906110bd9084906118d7565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505b6001600160a01b0383166000908152600160205260408120805484929061112d9084906118d7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117991815260200190565b60405180910390a350505050565b600a805460ff60a01b1916600160a01b1790556111a381611457565b6000600c819055308152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156112135761121330737a250d5630b4cf539739df2c5dacb4c659f2488d611204600a8061184d565b610708906402540be40061185c565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061124c5761124c611886565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061129457611294611886565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906112ec9086906000908690309042906004016118ea565b600060405180830381600087803b15801561130657600080fd5b505af115801561131a573d6000803e3d6000fd5b50505050814761132a9190611873565b9150811561133b5761133b826114c9565b5050600a805460ff60a01b1916905550565b600060075460001461138457600754611367600a8061184d565b611375906302faf08061185c565b61137f91906118b5565b611387565b60005b82101580156113a05750600a546001600160a01b031615155b80156113c15750600854600c600081546113b99061189c565b918290555010155b80156105995750436000908152600b6020526040812080546002929091906113e88361189c565b919050551092915050565b600060647f000000000000000000000000f11104300f78bb5b8e213469ca14a266bf5dd53d6001600160a01b0316846001600160a01b0316146114385760055461143c565b6004545b611446908461185c565b61145091906118b5565b9392505050565b6000611464600a8061184d565b611472906302faf08061185c565b60065461147f919061185c565b82116114a357611490600a8061184d565b61149e906302faf08061185c565b610599565b6114ae600a8061184d565b6114bc906302faf08061185c565b600654610599919061185c565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561064a573d6000803e3d6000fd5b600060208083528351808285015260005b8181101561153057858101830151858201604001528201611514565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461156657600080fd5b50565b6000806040838503121561157c57600080fd5b823561158781611551565b946020939093013593505050565b600080604083850312156115a857600080fd5b50508035926020909101359150565b6000602082840312156115c957600080fd5b813561145081611551565b6000806000606084860312156115e957600080fd5b83356115f481611551565b9250602084013561160481611551565b929592945050506040919091013590565b60008060006060848603121561162a57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561165357600080fd5b5035919050565b60008060006040848603121561166f57600080fd5b833567ffffffffffffffff8082111561168757600080fd5b818601915086601f83011261169b57600080fd5b8135818111156116aa57600080fd5b8760208260051b85010111156116bf57600080fd5b6020928301955093505084013580151581146116da57600080fd5b809150509250925092565b600080604083850312156116f857600080fd5b823561170381611551565b9150602083013561171381611551565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117a457816000190482111561178a5761178a611753565b8085161561179757918102915b93841c939080029061176e565b509250929050565b6000826117bb57506001610599565b816117c857506000610599565b81600181146117de57600281146117e857611804565b6001915050610599565b60ff8411156117f9576117f9611753565b50506001821b610599565b5060208310610133831016604e8410600b8410161715611827575081810a610599565b6118318383611769565b806000190482111561184557611845611753565b029392505050565b600061145060ff8416836117ac565b808202811582820484141761059957610599611753565b8181038181111561059957610599611753565b634e487b7160e01b600052603260045260246000fd5b6000600182016118ae576118ae611753565b5060010190565b6000826118d257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561059957610599611753565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561193a5784516001600160a01b031683529383019391830191600101611915565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200da6501365e518031de240f7357a259fc4e6e72aa49081309226801b9436021964736f6c63430008130033

Deployed Bytecode Sourcemap

4749:8770:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6896:83;;;;;;;;;;-1:-1:-1;6966:5:0;;;;;;;;;;;;-1:-1:-1;;;6966:5:0;;;;6896:83;;;;;;;:::i;:::-;;;;;;;;7696:150;;;;;;;;;;-1:-1:-1;7696:150:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7696:150:0;1023:187:1;13224:143:0;;;;;;;;;;-1:-1:-1;13224:143:0;;;;;:::i;:::-;;:::i;:::-;;7173:91;;;;;;;;;;;;;:::i;:::-;;;1614:25:1;;;1602:2;1587:18;7173:91:0;1468:177:1;11737:161:0;;;;;;;;;;-1:-1:-1;11737:161:0;;;;;:::i;:::-;;:::i;7854:358::-;;;;;;;;;;-1:-1:-1;7854:358:0;;;;;:::i;:::-;;:::i;7082:83::-;;;;;;;;;;-1:-1:-1;7082:83:0;;5069:2;2505:36:1;;2493:2;2478:18;7082:83:0;2363:184:1;12827:264:0;;;;;;;;;;-1:-1:-1;12827:264:0;;;;;:::i;:::-;;:::i;5317:25::-;;;;;;;;;;;;;;;;5238:70;;;;;;;;;;;;;;;;13099:116;;;;;;;;;;-1:-1:-1;13099:116:0;;;;;:::i;:::-;;:::i;12506:141::-;;;;;;;;;;-1:-1:-1;12506:141:0;;;;;:::i;:::-;;:::i;5859:78::-;;;;;;;;;;-1:-1:-1;5859:78:0;;;;-1:-1:-1;;;;;5859:78:0;;;;;;-1:-1:-1;;;;;3482:32:1;;;3464:51;;3452:2;3437:18;5859:78:0;3318:203:1;13375:141:0;;;;;;;;;;;;;:::i;7272:110::-;;;;;;;;;;-1:-1:-1;7272:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;7356:18:0;7329:7;7356:18;;;:9;:18;;;;;;;7272:110;4594:148;;;;;;;;;;;;;:::i;12357:141::-;;;;;;;;;;-1:-1:-1;12357:141:0;;;;;:::i;:::-;;:::i;4507:79::-;;;;;;;;;;-1:-1:-1;4545:7:0;4572:6;-1:-1:-1;;;;;4572:6:0;4507:79;;6987:87;;;;;;;;;;-1:-1:-1;7059:7:0;;;;;;;;;;;;-1:-1:-1;;;7059:7:0;;;;6987:87;;6014:39;;;;;;;;;;-1:-1:-1;6014:39:0;;;;-1:-1:-1;;;;;6014:39:0;;;7390:156;;;;;;;;;;-1:-1:-1;7390:156:0;;;;;:::i;:::-;;:::i;12659:160::-;;;;;;;;;;-1:-1:-1;12659:160:0;;;;;:::i;:::-;;:::i;5814:36::-;;;;;;;;;;;;;;;12132:217;;;;;;;;;;-1:-1:-1;12132:217:0;;;;;:::i;:::-;;:::i;5349:27::-;;;;;;;;;;;;;;;;7554:134;;;;;;;;;;-1:-1:-1;7554:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;7653:18:0;;;7626:7;7653:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7554:134;11907:217;;;;;;;;;;-1:-1:-1;11907:217:0;;;;;:::i;:::-;;:::i;7696:150::-;7762:4;7779:37;7788:10;7800:7;7809:6;7779:8;:37::i;:::-;-1:-1:-1;7834:4:0;7696:150;;;;;:::o;13224:143::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;;;;;;;;;13310:6:::1;:18:::0;;;;13339:7:::1;:20:::0;13224:143::o;7173:91::-;7217:7;5129:13;5069:2;;5129:13;:::i;:::-;5191:40;;:14;:40;:::i;:::-;7237:19;;7173:91;:::o;11737:161::-;11813:18;;-1:-1:-1;;;;;11813:18:0;11799:10;:32;11791:41;;;;;;11843:47;;-1:-1:-1;;;;;11843:24:0;;;11868:21;11843:47;;;;;;;;;11868:21;11843:24;:47;;;;;;;;;;;;;;;;;;;;;11737:161;:::o;7854:358::-;-1:-1:-1;;;;;7968:19:0;;7943:4;7968:19;;;:11;:19;;;;;;;;7988:10;7968:31;;;;;;;;:41;-1:-1:-1;7968:41:0;7960:94;;;;-1:-1:-1;;;7960:94:0;;7181:2:1;7960:94:0;;;7163:21:1;7220:2;7200:18;;;7193:30;7259:34;7239:18;;;7232:62;-1:-1:-1;;;7310:18:1;;;7303:38;7358:19;;7960:94:0;6979:404:1;7960:94:0;-1:-1:-1;;;;;8094:19:0;;;;;;:11;:19;;;;;;;;8082:10;8094:31;;;;;;;;;8065:70;;8074:6;;8094:40;;8128:6;;8094:40;:::i;:::-;8065:8;:70::i;:::-;8146:36;8156:6;8164:9;8175:6;8146:9;:36::i;:::-;-1:-1:-1;8200:4:0;7854:358;;;;;:::o;12827:264::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;12958:15:::1;:38:::0;;;;13007:15:::1;:35:::0;13053:16:::1;:30:::0;12827:264::o;13099:116::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;13176:15:::1;:31:::0;13099:116::o;12506:141::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;12601:16:::1;:38:::0;;-1:-1:-1;;;;;;12601:38:0::1;-1:-1:-1::0;;;;;12601:38:0;;;::::1;::::0;;;::::1;::::0;;12506:141::o;13375:::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;13436:11:::1;::::0;-1:-1:-1;;;13436:11:0;::::1;;;13435:12;13427:52;;;::::0;-1:-1:-1;;;13427:52:0;;7723:2:1;13427:52:0::1;::::0;::::1;7705:21:1::0;7762:2;7742:18;;;7735:30;7801:29;7781:18;;;7774:57;7848:18;;13427:52:0::1;7521:351:1::0;13427:52:0::1;13490:11;:18:::0;;-1:-1:-1;;;;13490:18:0::1;-1:-1:-1::0;;;13490:18:0::1;::::0;;13375:141::o;4594:148::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;4701:1:::1;4685:6:::0;;4664:40:::1;::::0;-1:-1:-1;;;;;4685:6:0;;::::1;::::0;4664:40:::1;::::0;4701:1;;4664:40:::1;4732:1;4715:19:::0;;-1:-1:-1;;;;;;4715:19:0::1;::::0;;4594:148::o;12357:141::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;12448:18:::1;:42:::0;;-1:-1:-1;;;;;;12448:42:0::1;-1:-1:-1::0;;;;;12448:42:0;;;::::1;::::0;;;::::1;::::0;;12357:141::o;7390:156::-;7459:4;7476:40;7486:10;7498:9;7509:6;7476:9;:40::i;12659:160::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;12772:11:0::1;12760:24;12787:5;12760:24:::0;;;:11:::1;:24;::::0;;;;:32;;-1:-1:-1;;12760:32:0::1;::::0;;12659:160::o;12132:217::-;4264:6;;-1:-1:-1;;;;;4264:6:0;4274:10;4264:20;4256:65;;;;-1:-1:-1;;;4256:65:0;;;;;;;:::i;:::-;12235:6:::1;12230:112;12247:21:::0;;::::1;12230:112;;;12319:11;12290;:26;12302:10;;12313:1;12302:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12290:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12290:26:0;:40;;-1:-1:-1;;12290:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12270:3;::::1;::::0;::::1;:::i;:::-;;;;12230:112;;;;12132:217:::0;;;:::o;11907:::-;11990:18;;-1:-1:-1;;;;;11990:18:0;11976:10;:32;11968:41;;;;;;12071:4;12020:20;7356:18;;;:9;:18;;;;;;12080:3;;12043:34;;:7;:34;:::i;:::-;:40;;;;:::i;:::-;12020:63;;12094:22;12103:12;12094:8;:22::i;8220:335::-;-1:-1:-1;;;;;8313:19:0;;8305:68;;;;-1:-1:-1;;;8305:68:0;;8573:2:1;8305:68:0;;;8555:21:1;8612:2;8592:18;;;8585:30;8651:34;8631:18;;;8624:62;-1:-1:-1;;;8702:18:1;;;8695:34;8746:19;;8305:68:0;8371:400:1;8305:68:0;-1:-1:-1;;;;;8392:21:0;;8384:68;;;;-1:-1:-1;;;8384:68:0;;8978:2:1;8384:68:0;;;8960:21:1;9017:2;8997:18;;;8990:30;9056:34;9036:18;;;9029:62;-1:-1:-1;;;9107:18:1;;;9100:32;9149:19;;8384:68:0;8776:398:1;8384:68:0;-1:-1:-1;;;;;8463:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8515:32;;1614:25:1;;;8515:32:0;;1587:18:1;8515:32:0;;;;;;;8220:335;;;:::o;8563:1495::-;6445:11;;8633:4;;-1:-1:-1;;;6445:11:0;;;;;:40;;;6470:15;-1:-1:-1;;;;;6460:25:0;:6;-1:-1:-1;;;;;6460:25:0;;6445:40;6437:49;;;;;;-1:-1:-1;;;;;8666:18:0;::::1;8658:68;;;::::0;-1:-1:-1;;;8658:68:0;;9381:2:1;8658:68:0::1;::::0;::::1;9363:21:1::0;9420:2;9400:18;;;9393:30;9459:34;9439:18;;;9432:62;-1:-1:-1;;;9510:18:1;;;9503:35;9555:19;;8658:68:0::1;9179:401:1::0;8658:68:0::1;-1:-1:-1::0;;;;;8745:16:0;::::1;8737:64;;;::::0;-1:-1:-1;;;8737:64:0;;9787:2:1;8737:64:0::1;::::0;::::1;9769:21:1::0;9826:2;9806:18;;;9799:30;9865:34;9845:18;;;9838:62;-1:-1:-1;;;9916:18:1;;;9909:33;9959:19;;8737:64:0::1;9585:399:1::0;8737:64:0::1;8829:1;8820:6;:10;8812:71;;;::::0;-1:-1:-1;;;8812:71:0;;10191:2:1;8812:71:0::1;::::0;::::1;10173:21:1::0;10230:2;10210:18;;;10203:30;10269:34;10249:18;;;10242:62;-1:-1:-1;;;10320:18:1;;;10313:46;10376:19;;8812:71:0::1;9989:412:1::0;8812:71:0::1;-1:-1:-1::0;;;;;8903:17:0;::::1;;::::0;;;:11:::1;:17;::::0;;;;;::::1;;8902:18;:38:::0;::::1;;;-1:-1:-1::0;;;;;;8925:15:0;::::1;;::::0;;;:11:::1;:15;::::0;;;;;::::1;;8924:16;8902:38;8894:82;;;::::0;-1:-1:-1;;;8894:82:0;;10608:2:1;8894:82:0::1;::::0;::::1;10590:21:1::0;10647:2;10627:18;;;10620:30;10686:33;10666:18;;;10659:61;10737:18;;8894:82:0::1;10406:355:1::0;8894:82:0::1;-1:-1:-1::0;;;;;8989:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:25;;9008:6;;8989:15;:25:::1;::::0;9008:6;;8989:25:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;9030:21:0;::::1;9046:4;9030:21;::::0;::::1;::::0;:48:::1;;;9063:15;-1:-1:-1::0;;;;;9055:23:0::1;:4;-1:-1:-1::0;;;;;9055:23:0::1;;;9030:48;:73;;;;;9088:15;-1:-1:-1::0;;;;;9082:21:0::1;:2;-1:-1:-1::0;;;;;9082:21:0::1;;;9030:73;9027:581;;;9144:11;-1:-1:-1::0;;;;;9136:19:0::1;:4;-1:-1:-1::0;;;;;9136:19:0::1;::::0;9132:133:::1;;9209:15;;9199:6;9183:13;9193:2;-1:-1:-1::0;;;;;7356:18:0;7329:7;7356:18;;;:9;:18;;;;;;;7272:110;9183:13:::1;:22;;;;:::i;:::-;:41;;9175:90;;;::::0;-1:-1:-1;;;9175:90:0;;11098:2:1;9175:90:0::1;::::0;::::1;11080:21:1::0;11137:2;11117:18;;;11110:30;11176:34;11156:18;;;11149:62;-1:-1:-1;;;11227:18:1;;;11220:34;11271:19;;9175:90:0::1;10896:400:1::0;9175:90:0::1;9298:15;;9288:6;:25;;9280:70;;;::::0;-1:-1:-1;;;9280:70:0;;11503:2:1;9280:70:0::1;::::0;::::1;11485:21:1::0;;;11522:18;;;11515:30;11581:34;11561:18;;;11554:62;11633:18;;9280:70:0::1;11301:356:1::0;9280:70:0::1;9408:4;9365:22;7356:18:::0;;;:9;:18;;;;;;9433:6:::1;::::0;-1:-1:-1;;;9433:6:0;::::1;;;9432:7;:28:::0;::::1;;;;9449:11;-1:-1:-1::0;;;;;9443:17:0::1;:2;-1:-1:-1::0;;;;;9443:17:0::1;;9432:28;:67;;;;-1:-1:-1::0;5129:13:0::1;5069:2;::::0;5129:13:::1;:::i;:::-;5434:36;::::0;:10:::1;:36;:::i;:::-;9464:14;:35;;9432:67;:93;;;;;9503:22;9518:6;9503:14;:22::i;:::-;9429:139;;;9544:24;9553:14;9544:8;:24::i;:::-;9105:503;9027:581;-1:-1:-1::0;;;;;9624:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;9623:23;:48:::0;::::1;;;-1:-1:-1::0;;;;;;9651:20:0;::::1;;::::0;;;:16:::1;:20;::::0;;;;;::::1;;9650:21;9623:48;9620:353;;;9700:19;9722:26;9735:4;9741:6;9722:12;:26::i;:::-;9700:48:::0;-1:-1:-1;9766:15:0;;9763:199:::1;;9801:21;9811:11:::0;9801:21;::::1;:::i;:::-;9859:4;9841:24;::::0;;;:9:::1;:24;::::0;;;;:39;;9801:21;;-1:-1:-1;9869:11:0;;9841:24;;;:39:::1;::::0;9869:11;;9841:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;9904:42:0::1;::::0;1614:25:1;;;9927:4:0::1;::::0;-1:-1:-1;;;;;9904:42:0;::::1;::::0;::::1;::::0;1602:2:1;1587:18;9904:42:0::1;;;;;;;9763:199;9673:300;9620:353;-1:-1:-1::0;;;;;9985:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;:23;;10002:6;;9985:13;:23:::1;::::0;10002:6;;9985:23:::1;:::i;:::-;;;;;;;;10039:2;-1:-1:-1::0;;;;;10024:26:0::1;10033:4;-1:-1:-1::0;;;;;10024:26:0::1;;10043:6;10024:26;;;;1614:25:1::0;;1602:2;1587:18;;1468:177;10024:26:0::1;;;;;;;;8563:1495:::0;;;;:::o;10537:861::-;6326:6;:13;;-1:-1:-1;;;;6326:13:0;-1:-1:-1;;;6326:13:0;;;10618:32:::1;10638:11:::0;10618:19:::1;:32::i;:::-;10669:1;10661:5;:9:::0;;;10702:4:::1;7653:18:::0;;:11;:18;;;;;;;;5674:42:::1;7653:27:::0;;;;;;;;10604:46;;-1:-1:-1;10604:46:0;-1:-1:-1;10681:155:0::1;;;10763:61;10780:4;5674:42;5129:13;5069:2;::::0;5129:13:::1;:::i;:::-;5191:40;::::0;:14:::1;:40;:::i;10763:61::-;10941:16;::::0;;10955:1:::1;10941:16:::0;;;;;::::1;::::0;;10885:21:::1;::::0;10856:26:::1;::::0;10941:16;10955:1;10941:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10941:16:0::1;10917:40;;10986:4;10968;10973:1;10968:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;10968:23:0::1;;;-1:-1:-1::0;;;;;10968:23:0::1;;;::::0;::::1;5765:42;11002:4;11007:1;11002:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11002:13:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:13;11026:194:::1;::::0;-1:-1:-1;;;11026:194:0;;5674:42:::1;::::0;11026:64:::1;::::0;:194:::1;::::0;11105:11;;11131:1:::1;::::0;11147:4;;11174::::1;::::0;11194:15:::1;::::0;11026:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11276:18;11252:21;:42;;;;:::i;:::-;11231:63:::0;-1:-1:-1;11308:22:0;;11305:85:::1;;11347:31;11359:18;11347:11;:31::i;:::-;-1:-1:-1::0;;6362:6:0;:14;;-1:-1:-1;;;;6362:14:0;;;-1:-1:-1;10537:861:0:o;10238:291::-;10303:4;10346:15;;10365:1;10346:20;:62;;10393:15;;5129:13;5069:2;;5129:13;:::i;:::-;5434:36;;:10;:36;:::i;:::-;10373:35;;;;:::i;:::-;10346:62;;;10369:1;10346:62;10327:14;:82;;:129;;;;-1:-1:-1;10426:16:0;;-1:-1:-1;;;;;10426:16:0;:30;;10327:129;:160;;;;;10471:16;;10462:5;;10460:7;;;;;:::i;:::-;;;;;-1:-1:-1;10460:27:0;;10327:160;:194;;;;-1:-1:-1;10502:12:0;10491:24;;;;:10;:24;;;;;:26;;10520:1;;10491:26;;:24;:26;;;:::i;:::-;;;;;:30;10320:201;10238:291;-1:-1:-1;;10238:291:0:o;10066:164::-;10140:7;10219:3;10185:11;-1:-1:-1;;;;;10177:19:0;:4;-1:-1:-1;;;;;10177:19:0;;:38;;10208:7;;10177:38;;;10199:6;;10177:38;10167:49;;:6;:49;:::i;:::-;:55;;;;:::i;:::-;10160:62;10066:164;-1:-1:-1;;;10066:164:0:o;11406:218::-;11478:7;5129:13;5069:2;;5129:13;:::i;:::-;5434:36;;:10;:36;:::i;:::-;11520:15;;:35;;;;:::i;:::-;11505:11;:51;:111;;5129:13;5069:2;;5129:13;:::i;:::-;5434:36;;:10;:36;:::i;:::-;11505:111;;;5129:13;5069:2;;5129:13;:::i;:::-;5434:36;;:10;:36;:::i;:::-;11560:15;;:35;;;;:::i;11632:97::-;11688:16;;:33;;-1:-1:-1;;;;;11688:16:0;;;;:33;;;;;11714:6;;11688:16;:33;:16;:33;11714:6;11688:16;:33;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1650:247::-;1709:6;1762:2;1750:9;1741:7;1737:23;1733:32;1730:52;;;1778:1;1775;1768:12;1730:52;1817:9;1804:23;1836:31;1861:5;1836:31;:::i;1902:456::-;1979:6;1987;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2103:9;2090:23;2122:31;2147:5;2122:31;:::i;:::-;2172:5;-1:-1:-1;2229:2:1;2214:18;;2201:32;2242:33;2201:32;2242:33;:::i;:::-;1902:456;;2294:7;;-1:-1:-1;;;2348:2:1;2333:18;;;;2320:32;;1902:456::o;2552:316::-;2629:6;2637;2645;2698:2;2686:9;2677:7;2673:23;2669:32;2666:52;;;2714:1;2711;2704:12;2666:52;-1:-1:-1;;2737:23:1;;;2807:2;2792:18;;2779:32;;-1:-1:-1;2858:2:1;2843:18;;;2830:32;;2552:316;-1:-1:-1;2552:316:1:o;2873:180::-;2932:6;2985:2;2973:9;2964:7;2960:23;2956:32;2953:52;;;3001:1;2998;2991:12;2953:52;-1:-1:-1;3024:23:1;;2873:180;-1:-1:-1;2873:180:1:o;3750:782::-;3842:6;3850;3858;3911:2;3899:9;3890:7;3886:23;3882:32;3879:52;;;3927:1;3924;3917:12;3879:52;3967:9;3954:23;3996:18;4037:2;4029:6;4026:14;4023:34;;;4053:1;4050;4043:12;4023:34;4091:6;4080:9;4076:22;4066:32;;4136:7;4129:4;4125:2;4121:13;4117:27;4107:55;;4158:1;4155;4148:12;4107:55;4198:2;4185:16;4224:2;4216:6;4213:14;4210:34;;;4240:1;4237;4230:12;4210:34;4295:7;4288:4;4278:6;4275:1;4271:14;4267:2;4263:23;4259:34;4256:47;4253:67;;;4316:1;4313;4306:12;4253:67;4347:4;4339:13;;;;-1:-1:-1;4371:6:1;-1:-1:-1;;4412:20:1;;4399:34;4469:13;;4462:21;4452:32;;4442:60;;4498:1;4495;4488:12;4442:60;4521:5;4511:15;;;3750:782;;;;;:::o;4537:388::-;4605:6;4613;4666:2;4654:9;4645:7;4641:23;4637:32;4634:52;;;4682:1;4679;4672:12;4634:52;4721:9;4708:23;4740:31;4765:5;4740:31;:::i;:::-;4790:5;-1:-1:-1;4847:2:1;4832:18;;4819:32;4860:33;4819:32;4860:33;:::i;:::-;4912:7;4902:17;;;4537:388;;;;;:::o;4930:356::-;5132:2;5114:21;;;5151:18;;;5144:30;5210:34;5205:2;5190:18;;5183:62;5277:2;5262:18;;4930:356::o;5291:127::-;5352:10;5347:3;5343:20;5340:1;5333:31;5383:4;5380:1;5373:15;5407:4;5404:1;5397:15;5423:422;5512:1;5555:5;5512:1;5569:270;5590:7;5580:8;5577:21;5569:270;;;5649:4;5645:1;5641:6;5637:17;5631:4;5628:27;5625:53;;;5658:18;;:::i;:::-;5708:7;5698:8;5694:22;5691:55;;;5728:16;;;;5691:55;5807:22;;;;5767:15;;;;5569:270;;;5573:3;5423:422;;;;;:::o;5850:806::-;5899:5;5929:8;5919:80;;-1:-1:-1;5970:1:1;5984:5;;5919:80;6018:4;6008:76;;-1:-1:-1;6055:1:1;6069:5;;6008:76;6100:4;6118:1;6113:59;;;;6186:1;6181:130;;;;6093:218;;6113:59;6143:1;6134:10;;6157:5;;;6181:130;6218:3;6208:8;6205:17;6202:43;;;6225:18;;:::i;:::-;-1:-1:-1;;6281:1:1;6267:16;;6296:5;;6093:218;;6395:2;6385:8;6382:16;6376:3;6370:4;6367:13;6363:36;6357:2;6347:8;6344:16;6339:2;6333:4;6330:12;6326:35;6323:77;6320:159;;;-1:-1:-1;6432:19:1;;;6464:5;;6320:159;6511:34;6536:8;6530:4;6511:34;:::i;:::-;6581:6;6577:1;6573:6;6569:19;6560:7;6557:32;6554:58;;;6592:18;;:::i;:::-;6630:20;;5850:806;-1:-1:-1;;;5850:806:1:o;6661:140::-;6719:5;6748:47;6789:4;6779:8;6775:19;6769:4;6748:47;:::i;6806:168::-;6879:9;;;6910;;6927:15;;;6921:22;;6907:37;6897:71;;6948:18;;:::i;7388:128::-;7455:9;;;7476:11;;;7473:37;;;7490:18;;:::i;7877:127::-;7938:10;7933:3;7929:20;7926:1;7919:31;7969:4;7966:1;7959:15;7993:4;7990:1;7983:15;8009:135;8048:3;8069:17;;;8066:43;;8089:18;;:::i;:::-;-1:-1:-1;8136:1:1;8125:13;;8009:135::o;8149:217::-;8189:1;8215;8205:132;;8259:10;8254:3;8250:20;8247:1;8240:31;8294:4;8291:1;8284:15;8322:4;8319:1;8312:15;8205:132;-1:-1:-1;8351:9:1;;8149:217::o;10766:125::-;10831:9;;;10852:10;;;10849:36;;;10865:18;;:::i;11794:980::-;12056:4;12104:3;12093:9;12089:19;12135:6;12124:9;12117:25;12161:2;12199:6;12194:2;12183:9;12179:18;12172:34;12242:3;12237:2;12226:9;12222:18;12215:31;12266:6;12301;12295:13;12332:6;12324;12317:22;12370:3;12359:9;12355:19;12348:26;;12409:2;12401:6;12397:15;12383:29;;12430:1;12440:195;12454:6;12451:1;12448:13;12440:195;;;12519:13;;-1:-1:-1;;;;;12515:39:1;12503:52;;12610:15;;;;12575:12;;;;12551:1;12469:9;12440:195;;;-1:-1:-1;;;;;;;12691:32:1;;;;12686:2;12671:18;;12664:60;-1:-1:-1;;;12755:3:1;12740:19;12733:35;12652:3;11794:980;-1:-1:-1;;;11794:980:1:o

Swarm Source

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