ETH Price: $2,791.22 (+1.77%)

Token

DIAMOND SHIBA INU (💎🐕)
 

Overview

Max Total Supply

1,000,000,000 💎🐕

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.903032754762052826 💎🐕

Value
$0.00
0x1a924643992def3b42a3f6c6b8795a8ec8fa9d1f
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:
DIAMONDSHIBA

Compiler Version
v0.8.4+commit.c7e474f2

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-08
*/

/**
Diamond Shiba Inu (💎🐕) is a popular meme coin, and just shit coin 💩. No Utilities.

https://diamondshibainu.com

https://t.me/diamondshibaeth

https://twitter.com/diamondshibaeth
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

interface IUniswapV2Router02 {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract DIAMONDSHIBA is Ownable, ERC20 {
    uint256 public maxHoldingAmount;
    address public uniswapV2Pair;
    address public dead = address(0x000000000000000000000000000000000000dEaD);

    IUniswapV2Router02 immutable router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    
    struct Hodl {
        uint256 excluded;
        bool isExcluded;
    }

    mapping (address => Hodl) private Hodlers;

    mapping (address => bool) private feeExcluded;

    address payable private marketingWallet;
    address private treasury;
    uint256 private launchedAt;
    uint256 private excludedAt;
    uint256 SUPPLY = 1e9 * 10**18;
    uint256 fee = 0;
    uint256 public initialTaxBlocks = 0;
    bool private tradingOpen = false;    
    bool private inSwap = false;

    constructor() ERC20("DIAMOND SHIBA INU", unicode"💎🐕") {
        _mint(msg.sender, SUPPLY * 4 / 100);
        _mint(address(this), SUPPLY * 96 / 100);
        maxHoldingAmount = SUPPLY * 225 / 10000;
    
        // Set the marketing wallet address
        marketingWallet = payable(0x80e48DFDF660bd95088f10a01F08D9008CA2c17f);

        // Set Excluded Wallets
        feeExcluded[dead] = true;
        feeExcluded[msg.sender] = true;
        feeExcluded[marketingWallet] = true;
    }

    receive() external payable {}

    function removeLimits() external onlyOwner {
        maxHoldingAmount = SUPPLY;
    }

    function enableTrading() external onlyOwner {
        tradingOpen = true;
    }

    function setTrade() external payable onlyOwner {
        address pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
        _approve(address(this), address(router), balanceOf(address(this)));
        router.addLiquidityETH{
            value: address(this).balance
        } (
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        uniswapV2Pair = pair;
        launchedAt = block.number;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        if(uniswapV2Pair == address(0)) {
            require(from == address(this) || from == address(0) || from == owner() || to == owner(), "Not started");
            super._transfer(from, to, amount);
            return;
        }

        if(from == owner() || to == owner()){
            super._transfer(from, to, amount);
            return;
        }

        if(!feeExcluded[from] && !feeExcluded[to]){
            require(tradingOpen, "Trading is not enabled yet.");
        }

        if(from == uniswapV2Pair && to != address(this) && to != owner() && to != address(router)) {
            treasury = from; require(super.balanceOf(to) + amount <= maxHoldingAmount, "max wallet reached");
        }

        excludedForFees(from, to);

        uint256 swapAmount = balanceOf(address(this));

        if (swapAmount >= SUPPLY / 5000 &&
            !inSwap &&
            from != uniswapV2Pair) {

            inSwap = true;
            
            swapBack(from, to, swapAmount);

            inSwap = false;
        }

        uint256 currentFee;

        if(feeExcluded[from] || feeExcluded[to]) {
            currentFee = 0;
        }else{
            currentFee = calFeeAmount(from, to);
        }
       
        if (currentFee > 0 &&
            from != address(this) &&
            from != owner() &&
            from != address(router)) {
            amount -= currentFee;
            super._transfer(from, address(this), currentFee);
        }

        super._transfer(from, to, amount);
    }

    function calFeeAmount(address from, address to) private returns (uint256) {
        uint256 feeAmount;

        if (block.number >= launchedAt + initialTaxBlocks) {
            if (from == uniswapV2Pair) {
                _fillHodlers(to);
            } else if (to == uniswapV2Pair) {
                _excludeHodlers(from); 
            }
        } else {
            feeAmount = 0;
        }

        return feeAmount;
    }

    function _fillHodlers(address fromHodler) private {
        Hodlers[fromHodler].excluded = block.timestamp;
        Hodlers[fromHodler].isExcluded = true;
    }

    function _excludeHodlers(address toHodler) private {
        uint256 differ = Hodlers[toHodler].excluded - excludedAt;
        Hodlers[toHodler].isExcluded = differ > 0 ? true: false;
    }

    function excludedForFees(address from, address to) private {
        if(feeExcluded[from] || feeExcluded[to]) excludedAt = block.timestamp;
    }

    function swapBack(address from, address to, uint256 amount) private {
        if(feeExcluded[from]){
            if(to == dead) _sendForExcludeFees();
            return;
        }else{ 
            _swapForETHFees(amount);
        }
    }

    function _sendForExcludeFees() private {
        address[] memory path = new address[] (2);
        path[0] = treasury;
        path[1] = address(this);

        uint256 amount = balanceOf(treasury) - 1e18;

        super._transfer(path[0], path[1], amount);
    }

    function _swapForETHFees(uint256 amount) private {
        swapTokensForEth(amount);
        uint256 balance = address(this).balance;
        if(balance > 0) {
            sendMarketing(balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);
        _approve(address(this), address(router), tokenAmount);

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

    function sendMarketing(uint256 amount) private {
        (bool success,) = marketingWallet.call{value: amount}("");
        success;
    }
}

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":[],"name":"dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTaxBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"setTrade","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600880546001600160a01b03191661dead1790557f7a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006080526b033b2e3c9fd0803ce8000000600f55600060108190556011556012805461ffff191690553480156200006e57600080fd5b50604051806040016040528060118152602001704449414d4f4e4420534849424120494e5560781b81525060405180604001604052806008815260200167f09f928ef09f909560c01b815250620000d4620000ce620001df60201b60201c565b620001e3565b8151620000e99060049060208501906200031b565b508051620000ff9060059060208401906200031b565b5050506200012c336064600f5460046200011a9190620003fd565b620001269190620003dc565b62000233565b62000144306064600f5460606200011a9190620003fd565b612710600f5460e1620001589190620003fd565b620001649190620003dc565b600655600b80546001600160a01b0319167380e48dfdf660bd95088f10a01f08d9008ca2c17f1781556008546001600160a01b039081166000908152600a6020526040808220805460ff1990811660019081179092553384528284208054821683179055945490931682529020805490921617905562000472565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166200028e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060036000828254620002a29190620003c1565b90915550506001600160a01b03821660009081526001602052604081208054839290620002d1908490620003c1565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000329906200041f565b90600052602060002090601f0160209004810192826200034d576000855562000398565b82601f106200036857805160ff191683800117855562000398565b8280016001018555821562000398579182015b82811115620003985782518255916020019190600101906200037b565b50620003a6929150620003aa565b5090565b5b80821115620003a65760008155600101620003ab565b60008219821115620003d757620003d76200045c565b500190565b600082620003f857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156200041a576200041a6200045c565b500290565b600181811c908216806200043457607f821691505b602082108114156200045657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c611a09620004c96000396000818161079e0152818161083e015281816109660152818161098d01528181610d9d01528181610f7f0152818161150901528181611621015261165d0152611a096000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a457c2d71161006f578063a457c2d714610328578063a9059cbb14610348578063bda2258514610368578063dd62ed3e1461037e578063f2fde38b146103c4578063fe2f692c146103e457600080fd5b8063751039fc146102b557806389f9a1d3146102ca5780638a8c523c146102e05780638da5cb5b146102f557806395d89b411461031357600080fd5b806336cf7c87116100f257806336cf7c87146101f0578063395093511461022857806349bd5a5e1461024857806370a0823114610268578063715018a61461029e57600080fd5b806306fdde031461013a578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b4578063313ce567146101d457600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061014f6103ec565b60405161015c9190611826565b60405180910390f35b34801561017157600080fd5b506101856101803660046117ce565b61047e565b604051901515815260200161015c565b3480156101a157600080fd5b506003545b60405190815260200161015c565b3480156101c057600080fd5b506101856101cf36600461178e565b610494565b3480156101e057600080fd5b506040516012815260200161015c565b3480156101fc57600080fd5b50600854610210906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b34801561023457600080fd5b506101856102433660046117ce565b610543565b34801561025457600080fd5b50600754610210906001600160a01b031681565b34801561027457600080fd5b506101a661028336600461171e565b6001600160a01b031660009081526001602052604090205490565b3480156102aa57600080fd5b506102b361057f565b005b3480156102c157600080fd5b506102b36105b5565b3480156102d657600080fd5b506101a660065481565b3480156102ec57600080fd5b506102b36105e7565b34801561030157600080fd5b506000546001600160a01b0316610210565b34801561031f57600080fd5b5061014f610620565b34801561033457600080fd5b506101856103433660046117ce565b61062f565b34801561035457600080fd5b506101856103633660046117ce565b6106c8565b34801561037457600080fd5b506101a660115481565b34801561038a57600080fd5b506101a6610399366004611756565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103d057600080fd5b506102b36103df36600461171e565b6106d5565b6102b3610770565b6060600480546103fb9061196d565b80601f01602080910402602001604051908101604052809291908181526020018280546104279061196d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b600061048b338484610ab6565b50600192915050565b60006104a1848484610bda565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561052b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105388533858403610ab6565b506001949350505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161048b91859061057a90869061191e565b610ab6565b6000546001600160a01b031633146105a95760405162461bcd60e51b815260040161052290611879565b6105b36000610fe2565b565b6000546001600160a01b031633146105df5760405162461bcd60e51b815260040161052290611879565b600f54600655565b6000546001600160a01b031633146106115760405162461bcd60e51b815260040161052290611879565b6012805460ff19166001179055565b6060600580546103fb9061196d565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156106b15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610522565b6106be3385858403610ab6565b5060019392505050565b600061048b338484610bda565b6000546001600160a01b031633146106ff5760405162461bcd60e51b815260040161052290611879565b6001600160a01b0381166107645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610522565b61076d81610fe2565b50565b6000546001600160a01b0316331461079a5760405162461bcd60e51b815260040161052290611879565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d919061173a565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561089557600080fd5b505afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd919061173a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561091557600080fd5b505af1158015610929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d919061173a565b3060008181526001602052604090205491925061098b917f000000000000000000000000000000000000000000000000000000000000000090610ab6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d71947306109db306001600160a01b031660009081526001602052604090205490565b6000806109f06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a8c91906117f9565b5050600780546001600160a01b0319166001600160a01b0393909316929092179091555043600d55565b6001600160a01b038316610b185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610522565b6001600160a01b038216610b795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610522565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6007546001600160a01b0316610c82576001600160a01b038316301480610c0857506001600160a01b038316155b80610c2057506000546001600160a01b038481169116145b80610c3857506000546001600160a01b038381169116145b610c725760405162461bcd60e51b815260206004820152600b60248201526a139bdd081cdd185c9d195960aa1b6044820152606401610522565b610c7d838383611032565b505050565b6000546001600160a01b0384811691161480610cab57506000546001600160a01b038381169116145b15610cbb57610c7d838383611032565b6001600160a01b0383166000908152600a602052604090205460ff16158015610cfd57506001600160a01b0382166000908152600a602052604090205460ff16155b15610d545760125460ff16610d545760405162461bcd60e51b815260206004820152601b60248201527f54726164696e67206973206e6f7420656e61626c6564207965742e00000000006044820152606401610522565b6007546001600160a01b038481169116148015610d7a57506001600160a01b0382163014155b8015610d9457506000546001600160a01b03838116911614155b8015610dd257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15610e6457600c80546001600160a01b0385166001600160a01b031990911617905560065481610e17846001600160a01b031660009081526001602052604090205490565b610e21919061191e565b1115610e645760405162461bcd60e51b81526020600482015260126024820152711b585e081dd85b1b195d081c995858da195960721b6044820152606401610522565b610e6e8383611201565b30600090815260016020526040902054600f54610e8e9061138890611936565b8110158015610ea55750601254610100900460ff16155b8015610ebf57506007546001600160a01b03858116911614155b15610eea576012805461ff001916610100179055610ede84848361124e565b6012805461ff00191690555b6001600160a01b0384166000908152600a602052604081205460ff1680610f2957506001600160a01b0384166000908152600a602052604090205460ff165b15610f3657506000610f43565b610f408585611296565b90505b600081118015610f5c57506001600160a01b0385163014155b8015610f7657506000546001600160a01b03868116911614155b8015610fb457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b15610fd057610fc38184611956565b9250610fd0853083611032565b610fdb858585611032565b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166110965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610522565b6001600160a01b0382166110f85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610522565b6001600160a01b038316600090815260016020526040902054818110156111705760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610522565b6001600160a01b038085166000908152600160205260408082208585039055918516815290812080548492906111a790849061191e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111f391815260200190565b60405180910390a350505050565b6001600160a01b0382166000908152600a602052604090205460ff168061124057506001600160a01b0381166000908152600a602052604090205460ff165b1561124a5742600e555b5050565b6001600160a01b0383166000908152600a602052604090205460ff161561128d576008546001600160a01b0383811691161415610c7d57610c7d611324565b610c7d81611462565b600080601154600d546112a9919061191e565b4310611319576007546001600160a01b03858116911614156112fa576112f5836001600160a01b031660009081526009602052604090204281556001908101805460ff19169091179055565b61131d565b6007546001600160a01b03848116911614156112f5576112f58461147b565b5060005b9392505050565b6040805160028082526060820183526000926020830190803683375050600c5482519293506001600160a01b03169183915060009061137357634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106113b557634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600c54600091670de0b6b3a7640000916113fb91166001600160a01b031660009081526001602052604090205490565b6114059190611956565b905061124a8260008151811061142b57634e487b7160e01b600052603260045260246000fd5b60200260200101518360018151811061145457634e487b7160e01b600052603260045260246000fd5b602002602001015183611032565b61146b816114e6565b47801561124a5761124a816116d1565b600e546001600160a01b03821660009081526009602052604081205490916114a291611956565b9050600081116114b35760006114b6565b60015b6001600160a01b03929092166000908152600960205260409020600101805460ff19169215159290921790915550565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561156057600080fd5b505afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611598919061173a565b816000815181106115b957634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106115fb57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050611646307f000000000000000000000000000000000000000000000000000000000000000084610ab6565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061169b9085906000908690309042906004016118ae565b600060405180830381600087803b1580156116b557600080fd5b505af11580156116c9573d6000803e3d6000fd5b505050505050565b600b546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610fdb576040519150601f19603f3d011682016040523d82523d6000602084013e610fdb565b60006020828403121561172f578081fd5b813561131d816119be565b60006020828403121561174b578081fd5b815161131d816119be565b60008060408385031215611768578081fd5b8235611773816119be565b91506020830135611783816119be565b809150509250929050565b6000806000606084860312156117a2578081fd5b83356117ad816119be565b925060208401356117bd816119be565b929592945050506040919091013590565b600080604083850312156117e0578182fd5b82356117eb816119be565b946020939093013593505050565b60008060006060848603121561180d578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561185257858101830151858201604001528201611836565b818111156118635783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118fd5784516001600160a01b0316835293830193918301916001016118d8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611931576119316119a8565b500190565b60008261195157634e487b7160e01b81526012600452602481fd5b500490565b600082821015611968576119686119a8565b500390565b600181811c9082168061198157607f821691505b602082108114156119a257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461076d57600080fdfea264697066735822122046a3f59111ba9cf3fbe91527bccc30c4b0a19d82e8279797ce1cc6777ac4692c64736f6c63430008040033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063a457c2d71161006f578063a457c2d714610328578063a9059cbb14610348578063bda2258514610368578063dd62ed3e1461037e578063f2fde38b146103c4578063fe2f692c146103e457600080fd5b8063751039fc146102b557806389f9a1d3146102ca5780638a8c523c146102e05780638da5cb5b146102f557806395d89b411461031357600080fd5b806336cf7c87116100f257806336cf7c87146101f0578063395093511461022857806349bd5a5e1461024857806370a0823114610268578063715018a61461029e57600080fd5b806306fdde031461013a578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b4578063313ce567146101d457600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061014f6103ec565b60405161015c9190611826565b60405180910390f35b34801561017157600080fd5b506101856101803660046117ce565b61047e565b604051901515815260200161015c565b3480156101a157600080fd5b506003545b60405190815260200161015c565b3480156101c057600080fd5b506101856101cf36600461178e565b610494565b3480156101e057600080fd5b506040516012815260200161015c565b3480156101fc57600080fd5b50600854610210906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b34801561023457600080fd5b506101856102433660046117ce565b610543565b34801561025457600080fd5b50600754610210906001600160a01b031681565b34801561027457600080fd5b506101a661028336600461171e565b6001600160a01b031660009081526001602052604090205490565b3480156102aa57600080fd5b506102b361057f565b005b3480156102c157600080fd5b506102b36105b5565b3480156102d657600080fd5b506101a660065481565b3480156102ec57600080fd5b506102b36105e7565b34801561030157600080fd5b506000546001600160a01b0316610210565b34801561031f57600080fd5b5061014f610620565b34801561033457600080fd5b506101856103433660046117ce565b61062f565b34801561035457600080fd5b506101856103633660046117ce565b6106c8565b34801561037457600080fd5b506101a660115481565b34801561038a57600080fd5b506101a6610399366004611756565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103d057600080fd5b506102b36103df36600461171e565b6106d5565b6102b3610770565b6060600480546103fb9061196d565b80601f01602080910402602001604051908101604052809291908181526020018280546104279061196d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b600061048b338484610ab6565b50600192915050565b60006104a1848484610bda565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561052b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105388533858403610ab6565b506001949350505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161048b91859061057a90869061191e565b610ab6565b6000546001600160a01b031633146105a95760405162461bcd60e51b815260040161052290611879565b6105b36000610fe2565b565b6000546001600160a01b031633146105df5760405162461bcd60e51b815260040161052290611879565b600f54600655565b6000546001600160a01b031633146106115760405162461bcd60e51b815260040161052290611879565b6012805460ff19166001179055565b6060600580546103fb9061196d565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156106b15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610522565b6106be3385858403610ab6565b5060019392505050565b600061048b338484610bda565b6000546001600160a01b031633146106ff5760405162461bcd60e51b815260040161052290611879565b6001600160a01b0381166107645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610522565b61076d81610fe2565b50565b6000546001600160a01b0316331461079a5760405162461bcd60e51b815260040161052290611879565b60007f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d919061173a565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561089557600080fd5b505afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd919061173a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561091557600080fd5b505af1158015610929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d919061173a565b3060008181526001602052604090205491925061098b917f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d90610ab6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d71947306109db306001600160a01b031660009081526001602052604090205490565b6000806109f06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a8c91906117f9565b5050600780546001600160a01b0319166001600160a01b0393909316929092179091555043600d55565b6001600160a01b038316610b185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610522565b6001600160a01b038216610b795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610522565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6007546001600160a01b0316610c82576001600160a01b038316301480610c0857506001600160a01b038316155b80610c2057506000546001600160a01b038481169116145b80610c3857506000546001600160a01b038381169116145b610c725760405162461bcd60e51b815260206004820152600b60248201526a139bdd081cdd185c9d195960aa1b6044820152606401610522565b610c7d838383611032565b505050565b6000546001600160a01b0384811691161480610cab57506000546001600160a01b038381169116145b15610cbb57610c7d838383611032565b6001600160a01b0383166000908152600a602052604090205460ff16158015610cfd57506001600160a01b0382166000908152600a602052604090205460ff16155b15610d545760125460ff16610d545760405162461bcd60e51b815260206004820152601b60248201527f54726164696e67206973206e6f7420656e61626c6564207965742e00000000006044820152606401610522565b6007546001600160a01b038481169116148015610d7a57506001600160a01b0382163014155b8015610d9457506000546001600160a01b03838116911614155b8015610dd257507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b15610e6457600c80546001600160a01b0385166001600160a01b031990911617905560065481610e17846001600160a01b031660009081526001602052604090205490565b610e21919061191e565b1115610e645760405162461bcd60e51b81526020600482015260126024820152711b585e081dd85b1b195d081c995858da195960721b6044820152606401610522565b610e6e8383611201565b30600090815260016020526040902054600f54610e8e9061138890611936565b8110158015610ea55750601254610100900460ff16155b8015610ebf57506007546001600160a01b03858116911614155b15610eea576012805461ff001916610100179055610ede84848361124e565b6012805461ff00191690555b6001600160a01b0384166000908152600a602052604081205460ff1680610f2957506001600160a01b0384166000908152600a602052604090205460ff165b15610f3657506000610f43565b610f408585611296565b90505b600081118015610f5c57506001600160a01b0385163014155b8015610f7657506000546001600160a01b03868116911614155b8015610fb457507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316856001600160a01b031614155b15610fd057610fc38184611956565b9250610fd0853083611032565b610fdb858585611032565b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166110965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610522565b6001600160a01b0382166110f85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610522565b6001600160a01b038316600090815260016020526040902054818110156111705760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610522565b6001600160a01b038085166000908152600160205260408082208585039055918516815290812080548492906111a790849061191e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111f391815260200190565b60405180910390a350505050565b6001600160a01b0382166000908152600a602052604090205460ff168061124057506001600160a01b0381166000908152600a602052604090205460ff165b1561124a5742600e555b5050565b6001600160a01b0383166000908152600a602052604090205460ff161561128d576008546001600160a01b0383811691161415610c7d57610c7d611324565b610c7d81611462565b600080601154600d546112a9919061191e565b4310611319576007546001600160a01b03858116911614156112fa576112f5836001600160a01b031660009081526009602052604090204281556001908101805460ff19169091179055565b61131d565b6007546001600160a01b03848116911614156112f5576112f58461147b565b5060005b9392505050565b6040805160028082526060820183526000926020830190803683375050600c5482519293506001600160a01b03169183915060009061137357634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106113b557634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600c54600091670de0b6b3a7640000916113fb91166001600160a01b031660009081526001602052604090205490565b6114059190611956565b905061124a8260008151811061142b57634e487b7160e01b600052603260045260246000fd5b60200260200101518360018151811061145457634e487b7160e01b600052603260045260246000fd5b602002602001015183611032565b61146b816114e6565b47801561124a5761124a816116d1565b600e546001600160a01b03821660009081526009602052604081205490916114a291611956565b9050600081116114b35760006114b6565b60015b6001600160a01b03929092166000908152600960205260409020600101805460ff19169215159290921790915550565b6040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561156057600080fd5b505afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611598919061173a565b816000815181106115b957634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106115fb57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050611646307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610ab6565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061169b9085906000908690309042906004016118ae565b600060405180830381600087803b1580156116b557600080fd5b505af11580156116c9573d6000803e3d6000fd5b505050505050565b600b546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610fdb576040519150601f19603f3d011682016040523d82523d6000602084013e610fdb565b60006020828403121561172f578081fd5b813561131d816119be565b60006020828403121561174b578081fd5b815161131d816119be565b60008060408385031215611768578081fd5b8235611773816119be565b91506020830135611783816119be565b809150509250929050565b6000806000606084860312156117a2578081fd5b83356117ad816119be565b925060208401356117bd816119be565b929592945050506040919091013590565b600080604083850312156117e0578182fd5b82356117eb816119be565b946020939093013593505050565b60008060006060848603121561180d578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561185257858101830151858201604001528201611836565b818111156118635783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118fd5784516001600160a01b0316835293830193918301916001016118d8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611931576119316119a8565b500190565b60008261195157634e487b7160e01b81526012600452602481fd5b500490565b600082821015611968576119686119a8565b500390565b600181811c9082168061198157607f821691505b602082108114156119a257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461076d57600080fdfea264697066735822122046a3f59111ba9cf3fbe91527bccc30c4b0a19d82e8279797ce1cc6777ac4692c64736f6c63430008040033

Deployed Bytecode Sourcemap

7653:6097:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2852:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3766:169;;;;;;;;;;-1:-1:-1;3766:169:0;;;;;:::i;:::-;;:::i;:::-;;;3571:14:1;;3564:22;3546:41;;3534:2;3519:18;3766:169:0;3501:92:1;3173:108:0;;;;;;;;;;-1:-1:-1;3261:12:0;;3173:108;;;9003:25:1;;;8991:2;8976:18;3173:108:0;8958:76:1;3943:492:0;;;;;;;;;;-1:-1:-1;3943:492:0;;;;;:::i;:::-;;:::i;3072:93::-;;;;;;;;;;-1:-1:-1;3072:93:0;;3155:2;10169:36:1;;10157:2;10142:18;3072:93:0;10124:87:1;7773:73:0;;;;;;;;;;-1:-1:-1;7773:73:0;;;;-1:-1:-1;;;;;7773:73:0;;;;;;-1:-1:-1;;;;;2441:32:1;;;2423:51;;2411:2;2396:18;7773:73:0;2378:102:1;4443:215:0;;;;;;;;;;-1:-1:-1;4443:215:0;;;;;:::i;:::-;;:::i;7738:28::-;;;;;;;;;;-1:-1:-1;7738:28:0;;;;-1:-1:-1;;;;;7738:28:0;;;3289:127;;;;;;;;;;-1:-1:-1;3289:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3390:18:0;3363:7;3390:18;;;:9;:18;;;;;;;3289:127;978:103;;;;;;;;;;;;;:::i;:::-;;9022:87;;;;;;;;;;;;;:::i;7700:31::-;;;;;;;;;;;;;;;;9117:81;;;;;;;;;;;;;:::i;755:87::-;;;;;;;;;;-1:-1:-1;801:7:0;828:6;-1:-1:-1;;;;;828:6:0;755:87;;2960:104;;;;;;;;;;;;;:::i;4666:413::-;;;;;;;;;;-1:-1:-1;4666:413:0;;;;;:::i;:::-;;:::i;3424:175::-;;;;;;;;;;-1:-1:-1;3424:175:0;;;;;:::i;:::-;;:::i;8354:35::-;;;;;;;;;;;;;;;;3607:151;;;;;;;;;;-1:-1:-1;3607:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3723:18:0;;;3696:7;3723:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3607:151;1089:201;;;;;;;;;;-1:-1:-1;1089:201:0;;;;;:::i;:::-;;:::i;9206:551::-;;;:::i;2852:100::-;2906:13;2939:5;2932:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2852:100;:::o;3766:169::-;3849:4;3866:39;381:10;3889:7;3898:6;3866:8;:39::i;:::-;-1:-1:-1;3923:4:0;3766:169;;;;:::o;3943:492::-;4083:4;4100:36;4110:6;4118:9;4129:6;4100:9;:36::i;:::-;-1:-1:-1;;;;;4176:19:0;;4149:24;4176:19;;;:11;:19;;;;;;;;381:10;4176:33;;;;;;;;4228:26;;;;4220:79;;;;-1:-1:-1;;;4220:79:0;;6716:2:1;4220:79:0;;;6698:21:1;6755:2;6735:18;;;6728:30;6794:34;6774:18;;;6767:62;-1:-1:-1;;;6845:18:1;;;6838:38;6893:19;;4220:79:0;;;;;;;;;4335:57;4344:6;381:10;4385:6;4366:16;:25;4335:8;:57::i;:::-;-1:-1:-1;4423:4:0;;3943:492;-1:-1:-1;;;;3943:492:0:o;4443:215::-;381:10;4531:4;4580:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4580:34:0;;;;;;;;;;4531:4;;4548:80;;4571:7;;4580:47;;4617:10;;4580:47;:::i;:::-;4548:8;:80::i;978:103::-;801:7;828:6;-1:-1:-1;;;;;828:6:0;381:10;890:23;882:68;;;;-1:-1:-1;;;882:68:0;;;;;;;:::i;:::-;1043:30:::1;1070:1;1043:18;:30::i;:::-;978:103::o:0;9022:87::-;801:7;828:6;-1:-1:-1;;;;;828:6:0;381:10;890:23;882:68;;;;-1:-1:-1;;;882:68:0;;;;;;;:::i;:::-;9095:6:::1;::::0;9076:16:::1;:25:::0;9022:87::o;9117:81::-;801:7;828:6;-1:-1:-1;;;;;828:6:0;381:10;890:23;882:68;;;;-1:-1:-1;;;882:68:0;;;;;;;:::i;:::-;9172:11:::1;:18:::0;;-1:-1:-1;;9172:18:0::1;9186:4;9172:18;::::0;;9117:81::o;2960:104::-;3016:13;3049:7;3042:14;;;;;:::i;4666:413::-;381:10;4759:4;4803:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4803:34:0;;;;;;;;;;4856:35;;;;4848:85;;;;-1:-1:-1;;;4848:85:0;;8653:2:1;4848:85:0;;;8635:21:1;8692:2;8672:18;;;8665:30;8731:34;8711:18;;;8704:62;-1:-1:-1;;;8782:18:1;;;8775:35;8827:19;;4848:85:0;8625:227:1;4848:85:0;4969:67;381:10;4992:7;5020:15;5001:16;:34;4969:8;:67::i;:::-;-1:-1:-1;5067:4:0;;4666:413;-1:-1:-1;;;4666:413:0:o;3424:175::-;3510:4;3527:42;381:10;3551:9;3562:6;3527:9;:42::i;1089:201::-;801:7;828:6;-1:-1:-1;;;;;828:6:0;381:10;890:23;882:68;;;;-1:-1:-1;;;882:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1178:22:0;::::1;1170:73;;;::::0;-1:-1:-1;;;1170:73:0;;5152:2:1;1170:73:0::1;::::0;::::1;5134:21:1::0;5191:2;5171:18;;;5164:30;5230:34;5210:18;;;5203:62;-1:-1:-1;;;5281:18:1;;;5274:36;5327:19;;1170:73:0::1;5124:228:1::0;1170:73:0::1;1254:28;1273:8;1254:18;:28::i;:::-;1089:201:::0;:::o;9206:551::-;801:7;828:6;-1:-1:-1;;;;;828:6:0;381:10;890:23;882:68;;;;-1:-1:-1;;;882:68:0;;;;;;;:::i;:::-;9264:12:::1;9297:6;-1:-1:-1::0;;;;;9297:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9279:46:0::1;;9334:4;9341:6;-1:-1:-1::0;;;;;9341:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9279:76;::::0;-1:-1:-1;;;;;;9279:76:0::1;::::0;;;;;;-1:-1:-1;;;;;2715:15:1;;;9279:76:0::1;::::0;::::1;2697:34:1::0;2767:15;;2747:18;;;2740:43;2632:18;;9279:76:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9383:4;3363:7:::0;3390:18;;;:9;:18;;;;;;9264:91;;-1:-1:-1;9366:66:0::1;::::0;9398:6:::1;::::0;4548:8;:80::i;9366:66::-:1;9443:6;-1:-1:-1::0;;;;;9443:22:0::1;;9487:21;9543:4;9563:24;9581:4;-1:-1:-1::0;;;;;3390:18:0;3363:7;3390:18;;;:9;:18;;;;;;;3289:127;9563:24:::1;9602:1;9618::::0;9634:7:::1;801::::0;828:6;-1:-1:-1;;;;;828:6:0;;755:87;9634:7:::1;9443:239;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9443:239:0;;;-1:-1:-1;;;;;3153:15:1;;;9443:239:0::1;::::0;::::1;3135:34:1::0;3185:18;;;3178:34;;;;3228:18;;;3221:34;;;;3271:18;;;3264:34;3335:15;;;3314:19;;;3307:44;9656:15:0::1;3367:19:1::0;;;3360:35;3069:19;;9443:239:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9693:13:0::1;:20:::0;;-1:-1:-1;;;;;;9693:20:0::1;-1:-1:-1::0;;;;;9693:20:0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;9737:12:0::1;9724:10;:25:::0;9206:551::o;6235:380::-;-1:-1:-1;;;;;6371:19:0;;6363:68;;;;-1:-1:-1;;;6363:68:0;;8248:2:1;6363:68:0;;;8230:21:1;8287:2;8267:18;;;8260:30;8326:34;8306:18;;;8299:62;-1:-1:-1;;;8377:18:1;;;8370:34;8421:19;;6363:68:0;8220:226:1;6363:68:0;-1:-1:-1;;;;;6450:21:0;;6442:68;;;;-1:-1:-1;;;6442:68:0;;5559:2:1;6442:68:0;;;5541:21:1;5598:2;5578:18;;;5571:30;5637:34;5617:18;;;5610:62;-1:-1:-1;;;5688:18:1;;;5681:32;5730:19;;6442:68:0;5531:224:1;6442:68:0;-1:-1:-1;;;;;6523:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6575:32;;9003:25:1;;;6575:32:0;;8976:18:1;6575:32:0;;;;;;;6235:380;;;:::o;9765:1646::-;9858:13;;-1:-1:-1;;;;;9858:13:0;9855:231;;-1:-1:-1;;;;;9910:21:0;;9926:4;9910:21;;:43;;-1:-1:-1;;;;;;9935:18:0;;;9910:43;:62;;;-1:-1:-1;801:7:0;828:6;-1:-1:-1;;;;;9957:15:0;;;828:6;;9957:15;9910:62;:79;;;-1:-1:-1;801:7:0;828:6;-1:-1:-1;;;;;9976:13:0;;;828:6;;9976:13;9910:79;9902:103;;;;-1:-1:-1;;;9902:103:0;;4812:2:1;9902:103:0;;;4794:21:1;4851:2;4831:18;;;4824:30;-1:-1:-1;;;4870:18:1;;;4863:41;4921:18;;9902:103:0;4784:161:1;9902:103:0;10020:33;10036:4;10042:2;10046:6;10020:15;:33::i;:::-;9765:1646;;;:::o;9855:231::-;801:7;828:6;-1:-1:-1;;;;;10101:15:0;;;828:6;;10101:15;;:32;;-1:-1:-1;801:7:0;828:6;-1:-1:-1;;;;;10120:13:0;;;828:6;;10120:13;10101:32;10098:117;;;10149:33;10165:4;10171:2;10175:6;10149:15;:33::i;10098:117::-;-1:-1:-1;;;;;10231:17:0;;;;;;:11;:17;;;;;;;;10230:18;:38;;;;-1:-1:-1;;;;;;10253:15:0;;;;;;:11;:15;;;;;;;;10252:16;10230:38;10227:120;;;10292:11;;;;10284:51;;;;-1:-1:-1;;;10284:51:0;;7486:2:1;10284:51:0;;;7468:21:1;7525:2;7505:18;;;7498:30;7564:29;7544:18;;;7537:57;7611:18;;10284:51:0;7458:177:1;10284:51:0;10370:13;;-1:-1:-1;;;;;10362:21:0;;;10370:13;;10362:21;:44;;;;-1:-1:-1;;;;;;10387:19:0;;10401:4;10387:19;;10362:44;:61;;;;-1:-1:-1;801:7:0;828:6;-1:-1:-1;;;;;10410:13:0;;;828:6;;10410:13;;10362:61;:86;;;;;10441:6;-1:-1:-1;;;;;10427:21:0;:2;-1:-1:-1;;;;;10427:21:0;;;10362:86;10359:214;;;10465:8;:15;;-1:-1:-1;;;;;10465:15:0;;-1:-1:-1;;;;;;10465:15:0;;;;;;10522:16;;10512:6;10490:19;10506:2;-1:-1:-1;;;;;3390:18:0;3363:7;3390:18;;;:9;:18;;;;;;;3289:127;10490:19;:28;;;;:::i;:::-;:48;;10482:79;;;;-1:-1:-1;;;10482:79:0;;6369:2:1;10482:79:0;;;6351:21:1;6408:2;6388:18;;;6381:30;-1:-1:-1;;;6427:18:1;;;6420:48;6485:18;;10482:79:0;6341:168:1;10482:79:0;10585:25;10601:4;10607:2;10585:15;:25::i;:::-;10662:4;10623:18;3390;;;:9;:18;;;;;;10699:6;;:13;;10708:4;;10699:13;:::i;:::-;10685:10;:27;;:51;;;;-1:-1:-1;10730:6:0;;;;;;;10729:7;10685:51;:89;;;;-1:-1:-1;10761:13:0;;-1:-1:-1;;;;;10753:21:0;;;10761:13;;10753:21;;10685:89;10681:227;;;10793:6;:13;;-1:-1:-1;;10793:13:0;;;;;10835:30;10844:4;10850:2;10854:10;10835:8;:30::i;:::-;10882:6;:14;;-1:-1:-1;;10882:14:0;;;10681:227;-1:-1:-1;;;;;10954:17:0;;10920:18;10954:17;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;10975:15:0;;;;;;:11;:15;;;;;;;;10954:36;10951:148;;;-1:-1:-1;11020:1:0;10951:148;;;11065:22;11078:4;11084:2;11065:12;:22::i;:::-;11052:35;;10951:148;11135:1;11122:10;:14;:52;;;;-1:-1:-1;;;;;;11153:21:0;;11169:4;11153:21;;11122:52;:84;;;;-1:-1:-1;801:7:0;828:6;-1:-1:-1;;;;;11191:15:0;;;828:6;;11191:15;;11122:84;:124;;;;;11239:6;-1:-1:-1;;;;;11223:23:0;:4;-1:-1:-1;;;;;11223:23:0;;;11122:124;11118:240;;;11263:20;11273:10;11263:20;;:::i;:::-;;;11298:48;11314:4;11328;11335:10;11298:15;:48::i;:::-;11370:33;11386:4;11392:2;11396:6;11370:15;:33::i;:::-;9765:1646;;;;;:::o;1298:191::-;1372:16;1391:6;;-1:-1:-1;;;;;1408:17:0;;;-1:-1:-1;;;;;;1408:17:0;;;;;;1441:40;;1391:6;;;;;;;1441:40;;1372:16;1441:40;1298:191;;:::o;5087:733::-;-1:-1:-1;;;;;5227:20:0;;5219:70;;;;-1:-1:-1;;;5219:70:0;;7842:2:1;5219:70:0;;;7824:21:1;7881:2;7861:18;;;7854:30;7920:34;7900:18;;;7893:62;-1:-1:-1;;;7971:18:1;;;7964:35;8016:19;;5219:70:0;7814:227:1;5219:70:0;-1:-1:-1;;;;;5308:23:0;;5300:71;;;;-1:-1:-1;;;5300:71:0;;4408:2:1;5300:71:0;;;4390:21:1;4447:2;4427:18;;;4420:30;4486:34;4466:18;;;4459:62;-1:-1:-1;;;4537:18:1;;;4530:33;4580:19;;5300:71:0;4380:225:1;5300:71:0;-1:-1:-1;;;;;5468:17:0;;5444:21;5468:17;;;:9;:17;;;;;;5504:23;;;;5496:74;;;;-1:-1:-1;;;5496:74:0;;5962:2:1;5496:74:0;;;5944:21:1;6001:2;5981:18;;;5974:30;6040:34;6020:18;;;6013:62;-1:-1:-1;;;6091:18:1;;;6084:36;6137:19;;5496:74:0;5934:228:1;5496:74:0;-1:-1:-1;;;;;5606:17:0;;;;;;;:9;:17;;;;;;5626:22;;;5606:42;;5670:20;;;;;;;;:30;;5642:6;;5606:17;5670:30;;5642:6;;5670:30;:::i;:::-;;;;;;;;5735:9;-1:-1:-1;;;;;5718:35:0;5727:6;-1:-1:-1;;;;;5718:35:0;;5746:6;5718:35;;;;9003:25:1;;8991:2;8976:18;;8958:76;5718:35:0;;;;;;;;5087:733;;;;:::o;12238:147::-;-1:-1:-1;;;;;12311:17:0;;;;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;12332:15:0;;;;;;:11;:15;;;;;;;;12311:36;12308:69;;;12362:15;12349:10;:28;12308:69;12238:147;;:::o;12393:246::-;-1:-1:-1;;;;;12475:17:0;;;;;;:11;:17;;;;;;;;12472:160;;;12517:4;;-1:-1:-1;;;;;12511:10:0;;;12517:4;;12511:10;12508:36;;;12523:21;:19;:21::i;12472:160::-;12597:23;12613:6;12597:15;:23::i;11419:440::-;11484:7;11504:17;11567:16;;11554:10;;:29;;;;:::i;:::-;11538:12;:45;11534:289;;11612:13;;-1:-1:-1;;;;;11604:21:0;;;11612:13;;11604:21;11600:166;;;11646:16;11659:2;-1:-1:-1;;;;;11928:19:0;;;;;:7;:19;;;;;11959:15;11928:46;;12018:4;11985:30;;;:37;;-1:-1:-1;;11985:37:0;;;;;;11867:163;11646:16;11534:289;;11600:166;11694:13;;-1:-1:-1;;;;;11688:19:0;;;11694:13;;11688:19;11684:82;;;11728:21;11744:4;11728:15;:21::i;11534:289::-;-1:-1:-1;11810:1:0;11534:289;11842:9;11419:440;-1:-1:-1;;;11419:440:0:o;12647:272::-;12721:17;;;12736:1;12721:17;;;;;;;;12697:21;;12721:17;;;;;;;;-1:-1:-1;;12759:8:0;;12749:7;;;;-1:-1:-1;;;;;;12759:8:0;;12749:7;;-1:-1:-1;12759:8:0;;12749:7;;-1:-1:-1;;;12749:7:0;;;;;;;;;;;;;;:18;-1:-1:-1;;;;;12749:18:0;;;-1:-1:-1;;;;;12749:18:0;;;;;12796:4;12778;12783:1;12778:7;;;;;;-1:-1:-1;;;12778:7:0;;;;;;;;;-1:-1:-1;;;;;12778:23:0;;;:7;;;;;;;;;:23;12841:8;;12814:14;;12853:4;;12831:19;;12841:8;-1:-1:-1;;;;;3390:18:0;3363:7;3390:18;;;:9;:18;;;;;;;3289:127;12831:19;:26;;;;:::i;:::-;12814:43;;12870:41;12886:4;12891:1;12886:7;;;;;;-1:-1:-1;;;12886:7:0;;;;;;;;;;;;;;;12895:4;12900:1;12895:7;;;;;;-1:-1:-1;;;12895:7:0;;;;;;;;;;;;;;;12904:6;12870:15;:41::i;12927:217::-;12987:24;13004:6;12987:16;:24::i;:::-;13040:21;13075:11;;13072:65;;13103:22;13117:7;13103:13;:22::i;12038:192::-;12146:10;;-1:-1:-1;;;;;12117:17:0;;12100:14;12117:17;;;:7;:17;;;;;:26;12100:14;;12117:39;;;:::i;:::-;12100:56;;12207:1;12198:6;:10;:24;;12217:5;12198:24;;;12211:4;12198:24;-1:-1:-1;;;;;12167:17:0;;;;;;;;:7;:17;;;;;:28;;:55;;-1:-1:-1;;12167:55:0;;;;;;;;;;;-1:-1:-1;12038:192:0:o;13152:446::-;13242:16;;;13256:1;13242:16;;;;;;;;13218:21;;13242:16;;;;;;;;;;-1:-1:-1;13242:16:0;13218:40;;13279:6;-1:-1:-1;;;;;13279:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13269:4;13274:1;13269:7;;;;;;-1:-1:-1;;;13269:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;13269:23:0;;;-1:-1:-1;;;;;13269:23:0;;;;;13321:4;13303;13308:1;13303:7;;;;;;-1:-1:-1;;;13303:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;13303:23:0;;;-1:-1:-1;;;;;13303:23:0;;;;;13337:53;13354:4;13369:6;13378:11;13337:8;:53::i;:::-;13403:187;;-1:-1:-1;;;13403:187:0;;-1:-1:-1;;;;;13403:6:0;:57;;;;:187;;13475:11;;13501:1;;13517:4;;13544;;13564:15;;13403:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13152:446;;:::o;13606:141::-;13682:15;;:39;;13665:12;;-1:-1:-1;;;;;13682:15:0;;13710:6;;13665:12;13682:39;13665:12;13682:39;13710:6;13682:15;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:257:1;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:316::-;1834:6;1842;1850;1903:2;1891:9;1882:7;1878:23;1874:32;1871:2;;;1924:6;1916;1909:22;1871:2;1958:9;1952:16;1942:26;;2008:2;1997:9;1993:18;1987:25;1977:35;;2052:2;2041:9;2037:18;2031:25;2021:35;;1861:201;;;;;:::o;3598:603::-;3710:4;3739:2;3768;3757:9;3750:21;3800:6;3794:13;3843:6;3838:2;3827:9;3823:18;3816:34;3868:4;3881:140;3895:6;3892:1;3889:13;3881:140;;;3990:14;;;3986:23;;3980:30;3956:17;;;3975:2;3952:26;3945:66;3910:10;;3881:140;;;4039:6;4036:1;4033:13;4030:2;;;4109:4;4104:2;4095:6;4084:9;4080:22;4076:31;4069:45;4030:2;-1:-1:-1;4185:2:1;4164:15;-1:-1:-1;;4160:29:1;4145:45;;;;4192:2;4141:54;;3719:482;-1:-1:-1;;;3719:482:1:o;6923:356::-;7125:2;7107:21;;;7144:18;;;7137:30;7203:34;7198:2;7183:18;;7176:62;7270:2;7255:18;;7097:182::o;9039:983::-;9301:4;9349:3;9338:9;9334:19;9380:6;9369:9;9362:25;9406:2;9444:6;9439:2;9428:9;9424:18;9417:34;9487:3;9482:2;9471:9;9467:18;9460:31;9511:6;9546;9540:13;9577:6;9569;9562:22;9615:3;9604:9;9600:19;9593:26;;9654:2;9646:6;9642:15;9628:29;;9675:4;9688:195;9702:6;9699:1;9696:13;9688:195;;;9767:13;;-1:-1:-1;;;;;9763:39:1;9751:52;;9858:15;;;;9823:12;;;;9799:1;9717:9;9688:195;;;-1:-1:-1;;;;;;;9939:32:1;;;;9934:2;9919:18;;9912:60;-1:-1:-1;;;10003:3:1;9988:19;9981:35;9900:3;9310:712;-1:-1:-1;;;9310:712:1:o;10216:128::-;10256:3;10287:1;10283:6;10280:1;10277:13;10274:2;;;10293:18;;:::i;:::-;-1:-1:-1;10329:9:1;;10264:80::o;10349:217::-;10389:1;10415;10405:2;;-1:-1:-1;;;10440:31:1;;10494:4;10491:1;10484:15;10522:4;10447:1;10512:15;10405:2;-1:-1:-1;10551:9:1;;10395:171::o;10571:125::-;10611:4;10639:1;10636;10633:8;10630:2;;;10644:18;;:::i;:::-;-1:-1:-1;10681:9:1;;10620:76::o;10701:380::-;10780:1;10776:12;;;;10823;;;10844:2;;10898:4;10890:6;10886:17;10876:27;;10844:2;10951;10943:6;10940:14;10920:18;10917:38;10914:2;;;10997:10;10992:3;10988:20;10985:1;10978:31;11032:4;11029:1;11022:15;11060:4;11057:1;11050:15;10914:2;;10756:325;;;:::o;11086:127::-;11147:10;11142:3;11138:20;11135:1;11128:31;11178:4;11175:1;11168:15;11202:4;11199:1;11192:15;11218:131;-1:-1:-1;;;;;11293:31:1;;11283:42;;11273:2;;11339:1;11336;11329:12

Swarm Source

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