ETH Price: $2,437.59 (+0.96%)

Token

Cloud Storage (IAGON)
 

Overview

Max Total Supply

1,000,000 IAGON

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,999.150000000000000001 IAGON

Value
$0.00
0x78cd9617a707a0f08f716b1677588142063bde74
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:
IAGON

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-20
*/

/*

IAGON is a platform for harnessing processing power and the storage capacities of multiple smart devices over a decentralized blockchain grid.

Iagon has a fully secured and encrypted platform that seamlessly integrates blockchain, tangle, cryptography, and AI, enhancing the overall usability.

https://iagon.tech
https://twitter.com/IagonEthereum
https://t.me/IagonPortal

*/

pragma solidity 0.8.21;
// SPDX-License-Identifier: MIT

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}

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

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

contract IAGON is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _marketingWallet;

    string private constant _name =    unicode"Cloud Storage";
    string private constant _symbol =  unicode"IAGON";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1 * 1e6 * 10**_decimals;
    uint256 public _BuyLiquidityTax=   0;
    uint256 public _BuyMarketingTax=   15;
    uint256 public _SellLiquidityTax=  0;
    uint256 public _SellMarketingTax=  45;
    uint256 public _maxTxAmount =      _tTotal * 2 / 100;
    uint256 public _maxWalletSize =    _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold=  _tTotal * 5 / 10000;
    uint256 public _maxTaxSwap=        _tTotal * 1 / 100;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _marketingWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingWallet] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        require(_allowances[sender][_msgSender()] >= amount, "Transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: Can't transfer from the zero address");
        require(to != address(0), "ERC20: Can't transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 taxAmount = 0;
        uint256 lpAmount = 0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(amount < _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount < _maxWalletSize, "Exceeds the _maxWalletSize.");
            }

            if(to == uniswapV2Pair && from != address(this)){
                taxAmount = amount * _SellMarketingTax / 100;
                lpAmount = amount * _SellLiquidityTax / 100;
            }
            if(from == uniswapV2Pair && to != address(this)){
                taxAmount = amount * _BuyMarketingTax / 100;
                lpAmount = amount * _BuyLiquidityTax / 100;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                uint256 amountToSwap = (amount < contractTokenBalance && amount < _maxTaxSwap) ? amount : (contractTokenBalance < _maxTaxSwap) ? contractTokenBalance : _maxTaxSwap;
                swapTokensForEth(amountToSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    uint256 totalTokensToSwap = lpAmount + taxAmount;
                    uint256 tokensForLiquidity = amountToSwap * lpAmount / totalTokensToSwap / 2;
                    uint256 tokensToSwapForEth = amountToSwap - tokensForLiquidity;
                    uint256 ethForLiquidity = contractETHBalance * (tokensToSwapForEth - tokensForLiquidity) / tokensToSwapForEth;
                    addLiquidity(tokensForLiquidity, ethForLiquidity);
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(lpAmount > 0){
            _balances[address(this)] += lpAmount;
            emit Transfer(from, address(this), lpAmount);
        }

        if(taxAmount > 0){
            _balances[address(this)] += taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        if(tokenAmount == 0 || ethAmount == 0){return;}
        if(!tradingOpen){return;}
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            _marketingWallet,
            block.timestamp
        );
    }

    receive() external payable {}

    function manualSwap() external onlyOwner {
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function updateTax(uint256 BuyMarketingTax, uint256 BuyLiquidityTax, uint256 SellMarketingTax, uint256 SellLiquidityTax) external onlyOwner {
        _BuyMarketingTax = BuyMarketingTax;
        _BuyLiquidityTax = BuyLiquidityTax;
        _SellMarketingTax = SellMarketingTax;
        _SellLiquidityTax = SellLiquidityTax;
    }
  
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_BuyLiquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BuyMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellLiquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"BuyMarketingTax","type":"uint256"},{"internalType":"uint256","name":"BuyLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"SellMarketingTax","type":"uint256"},{"internalType":"uint256","name":"SellLiquidityTax","type":"uint256"}],"name":"updateTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6005819055600f600655600755602d6008556064620000276012600a62000385565b6200003690620f42406200039c565b620000439060026200039c565b6200004f9190620003b6565b6009556064620000626012600a62000385565b6200007190620f42406200039c565b6200007e9060026200039c565b6200008a9190620003b6565b600a556127106012600a620000a0919062000385565b620000af90620f42406200039c565b620000bc9060056200039c565b620000c89190620003b6565b600b556064620000db6012600a62000385565b620000ea90620f42406200039c565b620000f79060016200039c565b620001039190620003b6565b600c55600e805461ffff60a81b1916905534801562000120575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191633179055620001816012600a62000385565b6200019090620f42406200039c565b335f908152600160208190526040822092909255600390620001b95f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620002173390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002506012600a62000385565b6200025f90620f42406200039c565b60405190815260200160405180910390a3620003d6565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002ca57815f1904821115620002ae57620002ae62000276565b80851615620002bc57918102915b93841c93908002906200028f565b509250929050565b5f82620002e2575060016200037f565b81620002f057505f6200037f565b8160018114620003095760028114620003145762000334565b60019150506200037f565b60ff84111562000328576200032862000276565b50506001821b6200037f565b5060208310610133831016604e8410600b841016171562000359575081810a6200037f565b6200036583836200028a565b805f19048211156200037b576200037b62000276565b0290505b92915050565b5f6200039560ff841683620002d2565b9392505050565b80820281158282048414176200037f576200037f62000276565b5f82620003d157634e487b7160e01b5f52601260045260245ffd5b500490565b61186880620003e45f395ff3fe60806040526004361061013f575f3560e01c8063715018a6116100b3578063971cad2b1161006d578063971cad2b14610369578063a9059cbb1461037e578063bf474bed1461039d578063c9567bf9146103b2578063dd62ed3e146103c6578063e14f44af1461040a575f80fd5b8063715018a6146102c4578063751039fc146102d85780637d1db4a5146102ec5780638da5cb5b146103015780638f9a55c01461032757806395d89b411461033c575f80fd5b806323b872dd1161010457806323b872dd1461020c578063313ce5671461022b578063419b32d81461024657806351bc3c851461025b57806370a082311461027157806370e3e8b9146102a5575f80fd5b806306fdde031461014a578063095ea7b3146101915780630faee56f146101c057806315318444146101e357806318160ddd146101f8575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600d81526c436c6f75642053746f7261676560981b60208201525b604051610188919061142a565b60405180910390f35b34801561019c575f80fd5b506101b06101ab36600461148c565b61041f565b6040519015158152602001610188565b3480156101cb575f80fd5b506101d5600c5481565b604051908152602001610188565b3480156101ee575f80fd5b506101d560065481565b348015610203575f80fd5b506101d5610435565b348015610217575f80fd5b506101b06102263660046114b6565b610454565b348015610236575f80fd5b5060405160128152602001610188565b348015610251575f80fd5b506101d560085481565b348015610266575f80fd5b5061026f610524565b005b34801561027c575f80fd5b506101d561028b3660046114f4565b6001600160a01b03165f9081526001602052604090205490565b3480156102b0575f80fd5b5061026f6102bf366004611516565b61057f565b3480156102cf575f80fd5b5061026f6105bc565b3480156102e3575f80fd5b5061026f61062d565b3480156102f7575f80fd5b506101d560095481565b34801561030c575f80fd5b505f546040516001600160a01b039091168152602001610188565b348015610332575f80fd5b506101d5600a5481565b348015610347575f80fd5b5060408051808201909152600581526424a0a3a7a760d91b602082015261017b565b348015610374575f80fd5b506101d560055481565b348015610389575f80fd5b506101b061039836600461148c565b6106de565b3480156103a8575f80fd5b506101d5600b5481565b3480156103bd575f80fd5b5061026f6106ea565b3480156103d1575f80fd5b506101d56103e0366004611545565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610415575f80fd5b506101d560075481565b5f61042b338484610a6a565b5060015b92915050565b5f6104426012600a611670565b61044f90620f424061167e565b905090565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548211156104d55760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636044820152606560f81b60648201526084015b60405180910390fd5b6104e0848484610b9a565b6001600160a01b0384165f9081526002602090815260408083203380855292529091205461051a918691610515908690611695565b610a6a565b5060019392505050565b5f546001600160a01b0316331461054d5760405162461bcd60e51b81526004016104cc906116a8565b305f90815260016020526040902054801561056b5761056b816111a2565b47801561057b5761057b8161132b565b5050565b5f546001600160a01b031633146105a85760405162461bcd60e51b81526004016104cc906116a8565b600693909355600591909155600855600755565b5f546001600160a01b031633146105e55760405162461bcd60e51b81526004016104cc906116a8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106565760405162461bcd60e51b81526004016104cc906116a8565b6106626012600a611670565b61066f90620f424061167e565b60095561067e6012600a611670565b61068b90620f424061167e565b600a9081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106be90601290611670565b6106cb90620f424061167e565b60405190815260200160405180910390a1565b5f61042b338484610b9a565b5f546001600160a01b031633146107135760405162461bcd60e51b81526004016104cc906116a8565b600e54600160a01b900460ff161561076d5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104cc565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b59030906107a86012600a611670565b61051590620f424061167e565b600d5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610805573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082991906116dd565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac91906116dd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091a91906116dd565b600e80546001600160a01b039283166001600160a01b0319909116179055600d541663f305d7194730610961816001600160a01b03165f9081526001602052604090205490565b5f806109745f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610996969594939291906116f8565b60606040518083038185885af11580156109b2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d79190611733565b5050600e54600d5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a50919061175e565b50600e805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610ad35760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e277420617070726f76652066726f6d20746865207a65604482015269726f206164647265737360b01b60648201526084016104cc565b6001600160a01b038216610b3a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e277420617070726f766520746f20746865207a65726f604482015267206164647265737360c01b60648201526084016104cc565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c045760405162461bcd60e51b815260206004820152602b60248201527f45524332303a2043616e2774207472616e736665722066726f6d20746865207a60448201526a65726f206164647265737360a81b60648201526084016104cc565b6001600160a01b038216610c6c5760405162461bcd60e51b815260206004820152602960248201527f45524332303a2043616e2774207472616e7366657220746f20746865207a65726044820152686f206164647265737360b81b60648201526084016104cc565b5f8111610ccd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104cc565b6001600160a01b0383165f90815260036020526040812054819060ff16158015610d0f57506001600160a01b0384165f9081526003602052604090205460ff16155b15610ff057600e546001600160a01b038681169116148015610d3f5750600d546001600160a01b03858116911614155b15610e0e576009548310610d955760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104cc565b600a5483610db7866001600160a01b03165f9081526001602052604090205490565b610dc1919061177d565b10610e0e5760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e000000000060448201526064016104cc565b600e546001600160a01b038581169116148015610e3457506001600160a01b0385163014155b15610e7257606460085484610e49919061167e565b610e539190611790565b9150606460075484610e65919061167e565b610e6f9190611790565b90505b600e546001600160a01b038681169116148015610e9857506001600160a01b0384163014155b15610ed657606460065484610ead919061167e565b610eb79190611790565b9150606460055484610ec9919061167e565b610ed39190611790565b90505b305f90815260016020526040902054600e54600160a81b900460ff16158015610f0c5750600e546001600160a01b038681169116145b8015610f215750600e54600160b01b900460ff165b8015610f2e5750600b5481115b15610fee575f8185108015610f445750600c5485105b610f5f57600c548210610f5957600c54610f61565b81610f61565b845b9050610f6c816111a2565b478015610feb575f610f7e868661177d565b90505f600282610f8e888761167e565b610f989190611790565b610fa29190611790565b90505f610faf8286611695565b90505f81610fbd8482611695565b610fc7908761167e565b610fd19190611790565b9050610fdd8382611362565b610fe64761132b565b505050505b50505b505b801561105a57305f908152600160205260408120805483929061101490849061177d565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b81156110c457305f908152600160205260408120805484929061107e90849061177d565b909155505060405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6001600160a01b0385165f908152600160205260409020546110e7908490611695565b6001600160a01b0386165f908152600160205260409020558061110a8385611695565b6111149190611695565b6001600160a01b0385165f90815260016020526040902054611136919061177d565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836111808688611695565b61118a9190611695565b60405190815260200160405180910390a35050505050565b600e805460ff60a81b1916600160a81b179055801561131b57600e54600160a01b900460ff161561131b576040805160028082526060820183525f9260208301908036833701905050905030815f81518110611200576112006117af565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611257573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b91906116dd565b8160018151811061128e5761128e6117af565b6001600160a01b039283166020918202929092010152600d546112b49130911684610a6a565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ec9085905f908690309042906004016117c3565b5f604051808303815f87803b158015611303575f80fd5b505af1158015611315573d5f803e3d5ffd5b50505050505b50600e805460ff60a81b19169055565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561057b573d5f803e3d5ffd5b81158061136d575080155b15611376575050565b600e54600160a01b900460ff1661138b575050565b600d546113a39030906001600160a01b031684610a6a565b600d546004805460405163f305d71960e01b81526001600160a01b039384169363f305d7199386936113e29330938a935f9384939216914291016116f8565b60606040518083038185885af11580156113fe573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114239190611733565b5050505050565b5f6020808352835180828501525f5b8181101561145557858101830151858201604001528201611439565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611489575f80fd5b50565b5f806040838503121561149d575f80fd5b82356114a881611475565b946020939093013593505050565b5f805f606084860312156114c8575f80fd5b83356114d381611475565b925060208401356114e381611475565b929592945050506040919091013590565b5f60208284031215611504575f80fd5b813561150f81611475565b9392505050565b5f805f8060808587031215611529575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215611556575f80fd5b823561156181611475565b9150602083013561157181611475565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115ca57815f19048211156115b0576115b061157c565b808516156115bd57918102915b93841c9390800290611595565b509250929050565b5f826115e05750600161042f565b816115ec57505f61042f565b8160018114611602576002811461160c57611628565b600191505061042f565b60ff84111561161d5761161d61157c565b50506001821b61042f565b5060208310610133831016604e8410600b841016171561164b575081810a61042f565b6116558383611590565b805f19048211156116685761166861157c565b029392505050565b5f61150f60ff8416836115d2565b808202811582820484141761042f5761042f61157c565b8181038181111561042f5761042f61157c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116ed575f80fd5b815161150f81611475565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611745575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561176e575f80fd5b8151801515811461150f575f80fd5b8082018082111561042f5761042f61157c565b5f826117aa57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118115784516001600160a01b0316835293830193918301916001016117ec565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122021b975c627d9f1c62b02763f7c895188e67c4fc9cee4207e377e84f2391c89b164736f6c63430008150033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063715018a6116100b3578063971cad2b1161006d578063971cad2b14610369578063a9059cbb1461037e578063bf474bed1461039d578063c9567bf9146103b2578063dd62ed3e146103c6578063e14f44af1461040a575f80fd5b8063715018a6146102c4578063751039fc146102d85780637d1db4a5146102ec5780638da5cb5b146103015780638f9a55c01461032757806395d89b411461033c575f80fd5b806323b872dd1161010457806323b872dd1461020c578063313ce5671461022b578063419b32d81461024657806351bc3c851461025b57806370a082311461027157806370e3e8b9146102a5575f80fd5b806306fdde031461014a578063095ea7b3146101915780630faee56f146101c057806315318444146101e357806318160ddd146101f8575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600d81526c436c6f75642053746f7261676560981b60208201525b604051610188919061142a565b60405180910390f35b34801561019c575f80fd5b506101b06101ab36600461148c565b61041f565b6040519015158152602001610188565b3480156101cb575f80fd5b506101d5600c5481565b604051908152602001610188565b3480156101ee575f80fd5b506101d560065481565b348015610203575f80fd5b506101d5610435565b348015610217575f80fd5b506101b06102263660046114b6565b610454565b348015610236575f80fd5b5060405160128152602001610188565b348015610251575f80fd5b506101d560085481565b348015610266575f80fd5b5061026f610524565b005b34801561027c575f80fd5b506101d561028b3660046114f4565b6001600160a01b03165f9081526001602052604090205490565b3480156102b0575f80fd5b5061026f6102bf366004611516565b61057f565b3480156102cf575f80fd5b5061026f6105bc565b3480156102e3575f80fd5b5061026f61062d565b3480156102f7575f80fd5b506101d560095481565b34801561030c575f80fd5b505f546040516001600160a01b039091168152602001610188565b348015610332575f80fd5b506101d5600a5481565b348015610347575f80fd5b5060408051808201909152600581526424a0a3a7a760d91b602082015261017b565b348015610374575f80fd5b506101d560055481565b348015610389575f80fd5b506101b061039836600461148c565b6106de565b3480156103a8575f80fd5b506101d5600b5481565b3480156103bd575f80fd5b5061026f6106ea565b3480156103d1575f80fd5b506101d56103e0366004611545565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610415575f80fd5b506101d560075481565b5f61042b338484610a6a565b5060015b92915050565b5f6104426012600a611670565b61044f90620f424061167e565b905090565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548211156104d55760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636044820152606560f81b60648201526084015b60405180910390fd5b6104e0848484610b9a565b6001600160a01b0384165f9081526002602090815260408083203380855292529091205461051a918691610515908690611695565b610a6a565b5060019392505050565b5f546001600160a01b0316331461054d5760405162461bcd60e51b81526004016104cc906116a8565b305f90815260016020526040902054801561056b5761056b816111a2565b47801561057b5761057b8161132b565b5050565b5f546001600160a01b031633146105a85760405162461bcd60e51b81526004016104cc906116a8565b600693909355600591909155600855600755565b5f546001600160a01b031633146105e55760405162461bcd60e51b81526004016104cc906116a8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106565760405162461bcd60e51b81526004016104cc906116a8565b6106626012600a611670565b61066f90620f424061167e565b60095561067e6012600a611670565b61068b90620f424061167e565b600a9081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106be90601290611670565b6106cb90620f424061167e565b60405190815260200160405180910390a1565b5f61042b338484610b9a565b5f546001600160a01b031633146107135760405162461bcd60e51b81526004016104cc906116a8565b600e54600160a01b900460ff161561076d5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104cc565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b59030906107a86012600a611670565b61051590620f424061167e565b600d5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610805573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082991906116dd565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac91906116dd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091a91906116dd565b600e80546001600160a01b039283166001600160a01b0319909116179055600d541663f305d7194730610961816001600160a01b03165f9081526001602052604090205490565b5f806109745f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610996969594939291906116f8565b60606040518083038185885af11580156109b2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d79190611733565b5050600e54600d5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a50919061175e565b50600e805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610ad35760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e277420617070726f76652066726f6d20746865207a65604482015269726f206164647265737360b01b60648201526084016104cc565b6001600160a01b038216610b3a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e277420617070726f766520746f20746865207a65726f604482015267206164647265737360c01b60648201526084016104cc565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c045760405162461bcd60e51b815260206004820152602b60248201527f45524332303a2043616e2774207472616e736665722066726f6d20746865207a60448201526a65726f206164647265737360a81b60648201526084016104cc565b6001600160a01b038216610c6c5760405162461bcd60e51b815260206004820152602960248201527f45524332303a2043616e2774207472616e7366657220746f20746865207a65726044820152686f206164647265737360b81b60648201526084016104cc565b5f8111610ccd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104cc565b6001600160a01b0383165f90815260036020526040812054819060ff16158015610d0f57506001600160a01b0384165f9081526003602052604090205460ff16155b15610ff057600e546001600160a01b038681169116148015610d3f5750600d546001600160a01b03858116911614155b15610e0e576009548310610d955760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104cc565b600a5483610db7866001600160a01b03165f9081526001602052604090205490565b610dc1919061177d565b10610e0e5760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e000000000060448201526064016104cc565b600e546001600160a01b038581169116148015610e3457506001600160a01b0385163014155b15610e7257606460085484610e49919061167e565b610e539190611790565b9150606460075484610e65919061167e565b610e6f9190611790565b90505b600e546001600160a01b038681169116148015610e9857506001600160a01b0384163014155b15610ed657606460065484610ead919061167e565b610eb79190611790565b9150606460055484610ec9919061167e565b610ed39190611790565b90505b305f90815260016020526040902054600e54600160a81b900460ff16158015610f0c5750600e546001600160a01b038681169116145b8015610f215750600e54600160b01b900460ff165b8015610f2e5750600b5481115b15610fee575f8185108015610f445750600c5485105b610f5f57600c548210610f5957600c54610f61565b81610f61565b845b9050610f6c816111a2565b478015610feb575f610f7e868661177d565b90505f600282610f8e888761167e565b610f989190611790565b610fa29190611790565b90505f610faf8286611695565b90505f81610fbd8482611695565b610fc7908761167e565b610fd19190611790565b9050610fdd8382611362565b610fe64761132b565b505050505b50505b505b801561105a57305f908152600160205260408120805483929061101490849061177d565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b81156110c457305f908152600160205260408120805484929061107e90849061177d565b909155505060405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6001600160a01b0385165f908152600160205260409020546110e7908490611695565b6001600160a01b0386165f908152600160205260409020558061110a8385611695565b6111149190611695565b6001600160a01b0385165f90815260016020526040902054611136919061177d565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836111808688611695565b61118a9190611695565b60405190815260200160405180910390a35050505050565b600e805460ff60a81b1916600160a81b179055801561131b57600e54600160a01b900460ff161561131b576040805160028082526060820183525f9260208301908036833701905050905030815f81518110611200576112006117af565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611257573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b91906116dd565b8160018151811061128e5761128e6117af565b6001600160a01b039283166020918202929092010152600d546112b49130911684610a6a565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ec9085905f908690309042906004016117c3565b5f604051808303815f87803b158015611303575f80fd5b505af1158015611315573d5f803e3d5ffd5b50505050505b50600e805460ff60a81b19169055565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561057b573d5f803e3d5ffd5b81158061136d575080155b15611376575050565b600e54600160a01b900460ff1661138b575050565b600d546113a39030906001600160a01b031684610a6a565b600d546004805460405163f305d71960e01b81526001600160a01b039384169363f305d7199386936113e29330938a935f9384939216914291016116f8565b60606040518083038185885af11580156113fe573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114239190611733565b5050505050565b5f6020808352835180828501525f5b8181101561145557858101830151858201604001528201611439565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611489575f80fd5b50565b5f806040838503121561149d575f80fd5b82356114a881611475565b946020939093013593505050565b5f805f606084860312156114c8575f80fd5b83356114d381611475565b925060208401356114e381611475565b929592945050506040919091013590565b5f60208284031215611504575f80fd5b813561150f81611475565b9392505050565b5f805f8060808587031215611529575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215611556575f80fd5b823561156181611475565b9150602083013561157181611475565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115ca57815f19048211156115b0576115b061157c565b808516156115bd57918102915b93841c9390800290611595565b509250929050565b5f826115e05750600161042f565b816115ec57505f61042f565b8160018114611602576002811461160c57611628565b600191505061042f565b60ff84111561161d5761161d61157c565b50506001821b61042f565b5060208310610133831016604e8410600b841016171561164b575081810a61042f565b6116558383611590565b805f19048211156116685761166861157c565b029392505050565b5f61150f60ff8416836115d2565b808202811582820484141761042f5761042f61157c565b8181038181111561042f5761042f61157c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116ed575f80fd5b815161150f81611475565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611745575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561176e575f80fd5b8151801515811461150f575f80fd5b8082018082111561042f5761042f61157c565b5f826117aa57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118115784516001600160a01b0316835293830193918301916001016117ec565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122021b975c627d9f1c62b02763f7c895188e67c4fc9cee4207e377e84f2391c89b164736f6c63430008150033

Deployed Bytecode Sourcemap

2721:8741:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4521:83;;;;;;;;;;-1:-1:-1;4591:5:0;;;;;;;;;;;;-1:-1:-1;;;4591:5:0;;;;4521:83;;;;;;;:::i;:::-;;;;;;;;5160:161;;;;;;;;;;-1:-1:-1;5160:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5160:161:0;1023:187:1;3590:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;3590:52:0;1215:177:1;3280:37:0;;;;;;;;;;;;;;;;4418:95;;;;;;;;;;;;;:::i;5329:366::-;;;;;;;;;;-1:-1:-1;5329:366:0;;;;;:::i;:::-;;:::i;4327:83::-;;;;;;;;;;-1:-1:-1;4327:83:0;;3163:2;2000:36:1;;1988:2;1973:18;4327:83:0;1858:184:1;3367:37:0;;;;;;;;;;;;;;;;9849:314;;;;;;;;;;;;;:::i;:::-;;4707:119;;;;;;;;;;-1:-1:-1;4707:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4800:18:0;4773:7;4800:18;;;:9;:18;;;;;;;4707:119;11123:332;;;;;;;;;;-1:-1:-1;11123:332:0;;;;;:::i;:::-;;:::i;1802:148::-;;;;;;;;;;;;;:::i;10956:159::-;;;;;;;;;;;;;:::i;3411:52::-;;;;;;;;;;;;;;;;1588:79;;;;;;;;;;-1:-1:-1;1626:7:0;1653:6;1588:79;;-1:-1:-1;;;;;1653:6:0;;;2835:51:1;;2823:2;2808:18;1588:79:0;2689:203:1;3470:52:0;;;;;;;;;;;;;;;;4612:87;;;;;;;;;;-1:-1:-1;4684:7:0;;;;;;;;;;;;-1:-1:-1;;;4684:7:0;;;;4612:87;;3237:36;;;;;;;;;;;;;;;;4834:167;;;;;;;;;;-1:-1:-1;4834:167:0;;;;;:::i;:::-;;:::i;3529:54::-;;;;;;;;;;;;;;;;10277:671;;;;;;;;;;;;;:::i;5009:143::-;;;;;;;;;;-1:-1:-1;5009:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5117:18:0;;;5090:7;5117:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5009:143;3324:36;;;;;;;;;;;;;;;;5160:161;5235:4;5252:39;1245:10;5275:7;5284:6;5252:8;:39::i;:::-;-1:-1:-1;5309:4:0;5160:161;;;;;:::o;4418:95::-;4471:7;3217:13;3163:2;3217;:13;:::i;:::-;3207:23;;:7;:23;:::i;:::-;4491:14;;4418:95;:::o;5329:366::-;-1:-1:-1;;;;;5452:19:0;;5427:4;5452:19;;;:11;:19;;;;;;;;1245:10;5452:33;;;;;;;;:43;-1:-1:-1;5452:43:0;5444:89;;;;-1:-1:-1;;;5444:89:0;;5180:2:1;5444:89:0;;;5162:21:1;5219:2;5199:18;;;5192:30;5258:34;5238:18;;;5231:62;-1:-1:-1;;;5309:18:1;;;5302:31;5350:19;;5444:89:0;;;;;;;;;5544:36;5554:6;5562:9;5573:6;5544:9;:36::i;:::-;-1:-1:-1;;;;;5622:19:0;;;;;;:11;:19;;;;;;;;1245:10;5622:33;;;;;;;;;5591:74;;5600:6;;5622:42;;5658:6;;5622:42;:::i;:::-;5591:8;:74::i;:::-;-1:-1:-1;5683:4:0;5329:366;;;;;:::o;9849:314::-;1715:6;;-1:-1:-1;;;;;1715:6:0;1245:10;1715:22;1707:67;;;;-1:-1:-1;;;1707:67:0;;;;;;;:::i;:::-;9940:4:::1;9901:20;4800:18:::0;;;:9;:18;;;;;;9960:14;;9957:73:::1;;9988:30;10005:12;9988:16;:30::i;:::-;10059:21;10094:12:::0;;10091:65:::1;;10120:24;10133:10;10120:12;:24::i;:::-;9890:273;;9849:314::o:0;11123:332::-;1715:6;;-1:-1:-1;;;;;1715:6:0;1245:10;1715:22;1707:67;;;;-1:-1:-1;;;1707:67:0;;;;;;;:::i;:::-;11274:16:::1;:34:::0;;;;11319:16:::1;:34:::0;;;;11364:17:::1;:36:::0;11411:17:::1;:36:::0;11123:332::o;1802:148::-;1715:6;;-1:-1:-1;;;;;1715:6:0;1245:10;1715:22;1707:67;;;;-1:-1:-1;;;1707:67:0;;;;;;;:::i;:::-;1909:1:::1;1893:6:::0;;1872:40:::1;::::0;-1:-1:-1;;;;;1893:6:0;;::::1;::::0;1872:40:::1;::::0;1909:1;;1872:40:::1;1940:1;1923:19:::0;;-1:-1:-1;;;;;;1923:19:0::1;::::0;;1802:148::o;10956:159::-;1715:6;;-1:-1:-1;;;;;1715:6:0;1245:10;1715:22;1707:67;;;;-1:-1:-1;;;1707:67:0;;;;;;;:::i;:::-;3217:13:::1;3163:2;3217;:13;:::i;:::-;3207:23;::::0;:7:::1;:23;:::i;:::-;11009:12;:22:::0;3217:13:::1;3163:2;3217;:13;:::i;:::-;3207:23;::::0;:7:::1;:23;:::i;:::-;11042:14;:22:::0;;;11080:27:::1;::::0;3217:13:::1;::::0;3163:2:::1;::::0;3217:13:::1;:::i;:::-;3207:23;::::0;:7:::1;:23;:::i;:::-;11080:27;::::0;1361:25:1;;;1349:2;1334:18;11080:27:0::1;;;;;;;10956:159::o:0;4834:167::-;4912:4;4929:42;1245:10;4953:9;4964:6;4929:9;:42::i;10277:671::-;1715:6;;-1:-1:-1;;;;;1715:6:0;1245:10;1715:22;1707:67;;;;-1:-1:-1;;;1707:67:0;;;;;;;:::i;:::-;10341:11:::1;::::0;-1:-1:-1;;;10341:11:0;::::1;;;10340:12;10332:47;;;::::0;-1:-1:-1;;;10332:47:0;;6076:2:1;10332:47:0::1;::::0;::::1;6058:21:1::0;6115:2;6095:18;;;6088:30;6154:25;6134:18;;;6127:53;6197:18;;10332:47:0::1;5874:347:1::0;10332:47:0::1;10390:15;:80:::0;;-1:-1:-1;;;;;;10390:80:0::1;10427:42;10390:80:::0;;::::1;::::0;;;10481:58:::1;::::0;10498:4:::1;::::0;3217:13:::1;3163:2;3217;:13;:::i;:::-;3207:23;::::0;:7:::1;:23;:::i;10481:58::-;10584:15;;;;;;;;;-1:-1:-1::0;;;;;10584:15:0::1;-1:-1:-1::0;;;;;10584:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10566:55:0::1;;10630:4;10637:15;;;;;;;;;-1:-1:-1::0;;;;;10637:15:0::1;-1:-1:-1::0;;;;;10637:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10566:94;::::0;-1:-1:-1;;;;;;10566:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6712:15:1;;;10566:94:0::1;::::0;::::1;6694:34:1::0;6764:15;;6744:18;;;6737:43;6629:18;;10566:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10550:13;:110:::0;;-1:-1:-1;;;;;10550:110:0;;::::1;-1:-1:-1::0;;;;;;10550:110:0;;::::1;;::::0;;10671:15:::1;::::0;::::1;:31;10710:21;10741:4;10747:24;10741:4:::0;-1:-1:-1;;;;;4800:18:0;4773:7;4800:18;;;:9;:18;;;;;;;4707:119;10747:24:::1;10772:1;10774::::0;10776:7:::1;1626::::0;1653:6;-1:-1:-1;;;;;1653:6:0;;1588:79;10776:7:::1;10784:15;10671:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10818:13:0::1;::::0;10849:15:::1;::::0;10811:71:::1;::::0;-1:-1:-1;;;10811:71:0;;-1:-1:-1;;;;;10849:15:0;;::::1;10811:71;::::0;::::1;7888:51:1::0;-1:-1:-1;;7955:18:1;;;7948:34;10818:13:0;::::1;::::0;-1:-1:-1;10811:29:0::1;::::0;7861:18:1;;10811:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10893:11:0::1;:18:::0;;-1:-1:-1;;;;10922:18:0;-1:-1:-1;;;10922:18:0;;;10277:671::o;5703:347::-;-1:-1:-1;;;;;5796:19:0;;5788:74;;;;-1:-1:-1;;;5788:74:0;;8477:2:1;5788:74:0;;;8459:21:1;8516:2;8496:18;;;8489:30;8555:34;8535:18;;;8528:62;-1:-1:-1;;;8606:18:1;;;8599:40;8656:19;;5788:74:0;8275:406:1;5788:74:0;-1:-1:-1;;;;;5881:21:0;;5873:74;;;;-1:-1:-1;;;5873:74:0;;8888:2:1;5873:74:0;;;8870:21:1;8927:2;8907:18;;;8900:30;8966:34;8946:18;;;8939:62;-1:-1:-1;;;9017:18:1;;;9010:38;9065:19;;5873:74:0;8686:404:1;5873:74:0;-1:-1:-1;;;;;5958:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6010:32;;1361:25:1;;;6010:32:0;;1334:18:1;6010:32:0;;;;;;;5703:347;;;:::o;6058:2714::-;-1:-1:-1;;;;;6146:18:0;;6138:74;;;;-1:-1:-1;;;6138:74:0;;9297:2:1;6138:74:0;;;9279:21:1;9336:2;9316:18;;;9309:30;9375:34;9355:18;;;9348:62;-1:-1:-1;;;9426:18:1;;;9419:41;9477:19;;6138:74:0;9095:407:1;6138:74:0;-1:-1:-1;;;;;6231:16:0;;6223:70;;;;-1:-1:-1;;;6223:70:0;;9709:2:1;6223:70:0;;;9691:21:1;9748:2;9728:18;;;9721:30;9787:34;9767:18;;;9760:62;-1:-1:-1;;;9838:18:1;;;9831:39;9887:19;;6223:70:0;9507:405:1;6223:70:0;6321:1;6312:6;:10;6304:64;;;;-1:-1:-1;;;6304:64:0;;10119:2:1;6304:64:0;;;10101:21:1;10158:2;10138:18;;;10131:30;10197:34;10177:18;;;10170:62;-1:-1:-1;;;10248:18:1;;;10241:39;10297:19;;6304:64:0;9917:405:1;6304:64:0;-1:-1:-1;;;;;6451:24:0;;6381:17;6451:24;;;:18;:24;;;;;;6381:17;;6451:24;;6450:25;:52;;;;-1:-1:-1;;;;;;6480:22:0;;;;;;:18;:22;;;;;;;;6479:23;6450:52;6446:1822;;;6531:13;;-1:-1:-1;;;;;6523:21:0;;;6531:13;;6523:21;:55;;;;-1:-1:-1;6562:15:0;;-1:-1:-1;;;;;6548:30:0;;;6562:15;;6548:30;;6523:55;6519:253;;;6616:12;;6607:6;:21;6599:59;;;;-1:-1:-1;;;6599:59:0;;10529:2:1;6599:59:0;;;10511:21:1;10568:2;10548:18;;;10541:30;10607:27;10587:18;;;10580:55;10652:18;;6599:59:0;10327:349:1;6599:59:0;6710:14;;6701:6;6685:13;6695:2;-1:-1:-1;;;;;4800:18:0;4773:7;4800:18;;;:9;:18;;;;;;;4707:119;6685:13;:22;;;;:::i;:::-;:39;6677:79;;;;-1:-1:-1;;;6677:79:0;;11013:2:1;6677:79:0;;;10995:21:1;11052:2;11032:18;;;11025:30;11091:29;11071:18;;;11064:57;11138:18;;6677:79:0;10811:351:1;6677:79:0;6797:13;;-1:-1:-1;;;;;6791:19:0;;;6797:13;;6791:19;:44;;;;-1:-1:-1;;;;;;6814:21:0;;6830:4;6814:21;;6791:44;6788:189;;;6896:3;6876:17;;6867:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;6855:44;;6958:3;6938:17;;6929:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;6918:43;;6788:189;7002:13;;-1:-1:-1;;;;;6994:21:0;;;7002:13;;6994:21;:44;;;;-1:-1:-1;;;;;;7019:19:0;;7033:4;7019:19;;6994:44;6991:187;;;7098:3;7079:16;;7070:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;7058:43;;7159:3;7140:16;;7131:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;7120:42;;6991:187;7243:4;7194:28;4800:18;;;:9;:18;;;;;;7269:6;;-1:-1:-1;;;7269:6:0;;;;7268:7;:30;;;;-1:-1:-1;7285:13:0;;-1:-1:-1;;;;;7279:19:0;;;7285:13;;7279:19;7268:30;:45;;;;-1:-1:-1;7302:11:0;;-1:-1:-1;;;7302:11:0;;;;7268:45;:89;;;;;7340:17;;7317:20;:40;7268:89;7264:993;;;7378:20;7411;7402:6;:29;:53;;;;;7444:11;;7435:6;:20;7402:53;7401:140;;7492:11;;7469:20;:34;7468:73;;7530:11;;7401:140;;7468:73;7507:20;7401:140;;;7459:6;7401:140;7378:163;;7560:30;7577:12;7560:16;:30::i;:::-;7638:21;7681:22;;7678:564;;7728:25;7756:20;7767:9;7756:8;:20;:::i;:::-;7728:48;-1:-1:-1;7799:26:0;7874:1;7728:48;7828:23;7843:8;7828:12;:23;:::i;:::-;:43;;;;:::i;:::-;:47;;;;:::i;:::-;7799:76;-1:-1:-1;7898:26:0;7927:33;7799:76;7927:12;:33;:::i;:::-;7898:62;-1:-1:-1;7983:23:0;7898:62;8031:39;8052:18;7898:62;8031:39;:::i;:::-;8009:62;;:18;:62;:::i;:::-;:83;;;;:::i;:::-;7983:109;;8115:49;8128:18;8148:15;8115:12;:49::i;:::-;8187:35;8200:21;8187:12;:35::i;:::-;7705:537;;;;7678:564;7359:898;;7264:993;6504:1764;6446:1822;8283:12;;8280:138;;8329:4;8311:24;;;;:9;:24;;;;;:36;;8339:8;;8311:24;:36;;8339:8;;8311:36;:::i;:::-;;;;-1:-1:-1;;8367:39:0;;1361:25:1;;;8390:4:0;;-1:-1:-1;;;;;8367:39:0;;;;;1349:2:1;1334:18;8367:39:0;;;;;;;8280:138;8433:13;;8430:141;;8480:4;8462:24;;;;:9;:24;;;;;:37;;8490:9;;8462:24;:37;;8490:9;;8462:37;:::i;:::-;;;;-1:-1:-1;;8519:40:0;;1361:25:1;;;8542:4:0;;-1:-1:-1;;;;;8519:40:0;;;;;1349:2:1;1334:18;8519:40:0;;;;;;;8430:141;-1:-1:-1;;;;;8601:15:0;;;;;;:9;:15;;;;;;:24;;8619:6;;8601:24;:::i;:::-;-1:-1:-1;;;;;8583:15:0;;;;;;:9;:15;;;;;:42;8690:8;8669:18;8678:9;8669:6;:18;:::i;:::-;:29;;;;:::i;:::-;-1:-1:-1;;;;;8652:13:0;;;;;;:9;:13;;;;;;:47;;;;:::i;:::-;-1:-1:-1;;;;;8636:13:0;;;;;;;:9;:13;;;;;:63;;;;8715:49;;;8755:8;8734:18;8743:9;8734:6;:18;:::i;:::-;:29;;;;:::i;:::-;8715:49;;1361:25:1;;;1349:2;1334:18;8715:49:0;;;;;;;6127:2645;;6058:2714;;;:::o;8780:555::-;3924:6;:13;;-1:-1:-1;;;;3924:13:0;-1:-1:-1;;;3924:13:0;;;8858:27;;8877:7:::1;8858:27;8899:11;::::0;-1:-1:-1;;;8899:11:0;::::1;;;8895:25:::0;8912:7:::1;8895:25;8954:16;::::0;;8968:1:::1;8954:16:::0;;;;;::::1;::::0;;8930:21:::1;::::0;8954:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8954:16:0::1;8930:40;;8999:4;8981;8986:1;8981:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8981:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9025:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9025:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8981:7;;9025:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9015:4;9020:1;9015:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9015:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9090:15:::1;::::0;9058:62:::1;::::0;9075:4:::1;::::0;9090:15:::1;9108:11:::0;9058:8:::1;:62::i;:::-;9131:15;::::0;:196:::1;::::0;-1:-1:-1;;;9131:196:0;;-1:-1:-1;;;;;9131:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9212:11;;9131:15:::1;::::0;9254:4;;9281::::1;::::0;9301:15:::1;::::0;9131:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8847:488;3948:1;-1:-1:-1::0;3960:6:0;:14;;-1:-1:-1;;;;3960:14:0;;;8780:555::o;10171:98::-;10228:16;;:33;;-1:-1:-1;;;;;10228:16:0;;;;:33;;;;;10254:6;;10228:16;:33;:16;:33;10254:6;10228:16;:33;;;;;;;;;;;;;;;;;;;9343:461;9427:16;;;:34;;-1:-1:-1;9447:14:0;;9427:34;9424:47;;;9343:461;;:::o;9424:47::-;9485:11;;-1:-1:-1;;;9485:11:0;;;;9481:25;;9343:461;;:::o;9481:25::-;9548:15;;9516:62;;9533:4;;-1:-1:-1;;;;;9548:15:0;9566:11;9516:8;:62::i;:::-;9589:15;;9739:16;;;9589:207;;-1:-1:-1;;;9589:207:0;;-1:-1:-1;;;;;9589:15:0;;;;:31;;9628:9;;9589:207;;9661:4;;9681:11;;9589:15;;;;9739:16;;;9770:15;;9589:207;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9343:461;;:::o;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;:::-;2283:5;2047:247;-1:-1:-1;;;2047:247:1:o;2299:385::-;2385:6;2393;2401;2409;2462:3;2450:9;2441:7;2437:23;2433:33;2430:53;;;2479:1;2476;2469:12;2430:53;-1:-1:-1;;2502:23:1;;;2572:2;2557:18;;2544:32;;-1:-1:-1;2623:2:1;2608:18;;2595:32;;2674:2;2659:18;2646:32;;-1:-1:-1;2299:385:1;-1:-1:-1;2299:385:1:o;2897:388::-;2965:6;2973;3026:2;3014:9;3005:7;3001:23;2997:32;2994:52;;;3042:1;3039;3032:12;2994:52;3081:9;3068:23;3100:31;3125:5;3100:31;:::i;:::-;3150:5;-1:-1:-1;3207:2:1;3192:18;;3179:32;3220:33;3179:32;3220:33;:::i;:::-;3272:7;3262:17;;;2897:388;;;;;:::o;3290:127::-;3351:10;3346:3;3342:20;3339:1;3332:31;3382:4;3379:1;3372:15;3406:4;3403:1;3396:15;3422:422;3511:1;3554:5;3511:1;3568:270;3589:7;3579:8;3576:21;3568:270;;;3648:4;3644:1;3640:6;3636:17;3630:4;3627:27;3624:53;;;3657:18;;:::i;:::-;3707:7;3697:8;3693:22;3690:55;;;3727:16;;;;3690:55;3806:22;;;;3766:15;;;;3568:270;;;3572:3;3422:422;;;;;:::o;3849:806::-;3898:5;3928:8;3918:80;;-1:-1:-1;3969:1:1;3983:5;;3918:80;4017:4;4007:76;;-1:-1:-1;4054:1:1;4068:5;;4007:76;4099:4;4117:1;4112:59;;;;4185:1;4180:130;;;;4092:218;;4112:59;4142:1;4133:10;;4156:5;;;4180:130;4217:3;4207:8;4204:17;4201:43;;;4224:18;;:::i;:::-;-1:-1:-1;;4280:1:1;4266:16;;4295:5;;4092:218;;4394:2;4384:8;4381:16;4375:3;4369:4;4366:13;4362:36;4356:2;4346:8;4343:16;4338:2;4332:4;4329:12;4325:35;4322:77;4319:159;;;-1:-1:-1;4431:19:1;;;4463:5;;4319:159;4510:34;4535:8;4529:4;4510:34;:::i;:::-;4580:6;4576:1;4572:6;4568:19;4559:7;4556:32;4553:58;;;4591:18;;:::i;:::-;4629:20;;3849:806;-1:-1:-1;;;3849:806:1:o;4660:140::-;4718:5;4747:47;4788:4;4778:8;4774:19;4768:4;4747:47;:::i;4805:168::-;4878:9;;;4909;;4926:15;;;4920:22;;4906:37;4896:71;;4947:18;;:::i;5380:128::-;5447:9;;;5468:11;;;5465:37;;;5482:18;;:::i;5513:356::-;5715:2;5697:21;;;5734:18;;;5727:30;5793:34;5788:2;5773:18;;5766:62;5860:2;5845:18;;5513:356::o;6226:251::-;6296:6;6349:2;6337:9;6328:7;6324:23;6320:32;6317:52;;;6365:1;6362;6355:12;6317:52;6397:9;6391:16;6416:31;6441:5;6416:31;:::i;6791:607::-;-1:-1:-1;;;;;7150:15:1;;;7132:34;;7197:2;7182:18;;7175:34;;;;7240:2;7225:18;;7218:34;;;;7283:2;7268:18;;7261:34;;;;7332:15;;;7326:3;7311:19;;7304:44;7112:3;7364:19;;7357:35;;;;7081:3;7066:19;;6791:607::o;7403:306::-;7491:6;7499;7507;7560:2;7548:9;7539:7;7535:23;7531:32;7528:52;;;7576:1;7573;7566:12;7528:52;7605:9;7599:16;7589:26;;7655:2;7644:9;7640:18;7634:25;7624:35;;7699:2;7688:9;7684:18;7678:25;7668:35;;7403:306;;;;;:::o;7993:277::-;8060:6;8113:2;8101:9;8092:7;8088:23;8084:32;8081:52;;;8129:1;8126;8119:12;8081:52;8161:9;8155:16;8214:5;8207:13;8200:21;8193:5;8190:32;8180:60;;8236:1;8233;8226:12;10681:125;10746:9;;;10767:10;;;10764:36;;;10780:18;;:::i;11167:217::-;11207:1;11233;11223:132;;11277:10;11272:3;11268:20;11265:1;11258:31;11312:4;11309:1;11302:15;11340:4;11337:1;11330:15;11223:132;-1:-1:-1;11369:9:1;;11167:217::o;11521:127::-;11582:10;11577:3;11573:20;11570:1;11563:31;11613:4;11610:1;11603:15;11637:4;11634:1;11627:15;11653:980;11915:4;11963:3;11952:9;11948:19;11994:6;11983:9;11976:25;12020:2;12058:6;12053:2;12042:9;12038:18;12031:34;12101:3;12096:2;12085:9;12081:18;12074:31;12125:6;12160;12154:13;12191:6;12183;12176:22;12229:3;12218:9;12214:19;12207:26;;12268:2;12260:6;12256:15;12242:29;;12289:1;12299:195;12313:6;12310:1;12307:13;12299:195;;;12378:13;;-1:-1:-1;;;;;12374:39:1;12362:52;;12469:15;;;;12434:12;;;;12410:1;12328:9;12299:195;;;-1:-1:-1;;;;;;;12550:32:1;;;;12545:2;12530:18;;12523:60;-1:-1:-1;;;12614:3:1;12599:19;12592:35;12511:3;11653:980;-1:-1:-1;;;11653:980:1:o

Swarm Source

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