ETH Price: $3,507.54 (+3.04%)
Gas: 4 Gwei

Token

Fine Inu (FINU)
 

Overview

Max Total Supply

420,690,000 FINU

Holders

112

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 FINU

Value
$0.00
0x40cc5c077d67cdcbd9976ff60d7ca39d2bc96d3f
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:
FineInu

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-19
*/

// SPDX-License-Identifier: MIT
/*  
    https://fineinu.live/
    https://twitter.com/Fine_Inu_
    https://t.me/fineinuentry
*/
pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address _owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract FineInu is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Fine Inu";
    string private constant _symbol = "FINU";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 420690000 * 10 ** _decimals;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderCheckpoint;

    uint256 private _iBuyTax = 15;
    uint256 private _fBuyTax = 2;

    uint256 private _iSellTax = 30;
    uint256 private _fSellTax = 2;

    uint256 private _swapPreventLimit = 15;
    uint256 private _buyCounter = 0;

    uint256 public maxTxnAmount = 8413800 * 10 ** _decimals;
    uint256 public maxWalletLimit = 8413800 * 10 ** _decimals;
    uint256 public taxSwapThreshold = 8413800 * 10 ** _decimals;
    uint256 public maxTaxSwap = 8413800 * 10 ** _decimals;

    IDexRouter private router;
    address private pair;
    address payable private feeWallet;
    bool private _buyTaxSwitch;
    bool private _sellTaxSwitch;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public transferLimitEnabled = true;

    event MaxTxnAmountUpdated(uint maxTxnAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        feeWallet = payable(_msgSender());
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeWallet] = true;

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

    receive() external payable {}

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

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

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

    function totalSupply() public pure 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 _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, "ERC20: Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount
                .mul(_buyTaxSwitch ? _fBuyTax : _iBuyTax)
                .div(100);

            if (transferLimitEnabled) {
                if (to != address(router) && to != address(pair)) {
                    require(
                        _holderCheckpoint[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderCheckpoint[tx.origin] = block.number;
                }
            }

            if (
                from == pair && to != address(router) && !_isExcludedFromFee[to]
            ) {
                require(amount <= maxTxnAmount, "Exceeds the maxTxnAmount.");
                require(
                    balanceOf(to) + amount <= maxWalletLimit,
                    "Exceeds the maxWalletLimit."
                );
                _buyCounter++;
            }

            if (to == pair && from != address(this)) {
                taxAmount = amount
                    .mul(_sellTaxSwitch ? _fSellTax : _iSellTax)
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == pair &&
                swapEnabled &&
                contractTokenBalance > taxSwapThreshold &&
                _buyCounter > _swapPreventLimit
            ) {
                swapTokensForEth(
                    getMin(amount, getMin(contractTokenBalance, maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0.005 ether) {
                    transferFee(address(this).balance);
                }
            }
        }

        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 transferFee(uint256 amount) private {
        feeWallet.transfer(amount);
    }

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

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

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(router), _totalSupply);
        pair = IDexFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(pair).approve(address(router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function clearTransferLimits() external onlyOwner {
        maxTxnAmount = _totalSupply;
        maxWalletLimit = _totalSupply;
        transferLimitEnabled = false;
        emit MaxTxnAmountUpdated(_totalSupply);
    }

    function setBuyFee(
        uint256 _iBuy,
        uint256 _fBuy
    ) external onlyOwner {
        _iBuyTax = _iBuy;
        _fBuyTax = _fBuy;
    }

    function setSellFee(
        uint256 _iSell,
        uint256 _fSell
    ) external onlyOwner {
        _iSellTax = _iSell;
        _fSellTax = _fSell;
    }

    function swapFee() external {
        require(_msgSender() == feeWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            transferFee(ethBalance);
        }
    }

    function removeStuckToken(address _token, uint256 _amount) external {
        require(_msgSender() == feeWallet);
        IERC20(_token).transfer(feeWallet, _amount);
    }

    function switchTax(bool _buy, bool _sell) external {
        require(_msgSender() == feeWallet);
        _buyTaxSwitch = _buy;
        _sellTaxSwitch = _sell;
    }
}

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 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":"maxTxnAmount","type":"uint256"}],"name":"MaxTxnAmountUpdated","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":"clearTransferLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_iBuy","type":"uint256"},{"internalType":"uint256","name":"_fBuy","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_iSell","type":"uint256"},{"internalType":"uint256","name":"_fSell","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_buy","type":"bool"},{"internalType":"bool","name":"_sell","type":"bool"}],"name":"switchTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f6005556002600655601e6007556002600855600f6009556000600a556009600a620000329190620002eb565b62000041906280626862000303565b600b55620000526009600a620002eb565b62000061906280626862000303565b600c55620000726009600a620002eb565b62000081906280626862000303565b600d55620000926009600a620002eb565b620000a1906280626862000303565b600e556011805462ffffff60b81b1916600160c81b179055348015620000c657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b03191633179055620001286009600a620002eb565b6200013890631913385062000303565b3360008181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556011546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001af6009600a620002eb565b620001bf90631913385062000303565b60405190815260200160405180910390a36200031d565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200022d578160001904821115620002115762000211620001d6565b808516156200021f57918102915b93841c9390800290620001f1565b509250929050565b6000826200024657506001620002e5565b816200025557506000620002e5565b81600181146200026e5760028114620002795762000299565b6001915050620002e5565b60ff8411156200028d576200028d620001d6565b50506001821b620002e5565b5060208310610133831016604e8410600b8410161715620002be575081810a620002e5565b620002ca8383620001ec565b8060001904821115620002e157620002e1620001d6565b0290505b92915050565b6000620002fc60ff84168362000235565b9392505050565b8082028115828204841417620002e557620002e5620001d6565b611b03806200032d6000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610391578063ce261d10146103b1578063cf46f24c146103d1578063dd62ed3e146103e7578063e54081d01461042d578063fb0ecfa41461044257600080fd5b8063715018a6146102d1578063717944e0146102e65780638a8c523c146103075780638da5cb5b1461031c578063937628281461034457806395d89b411461036457600080fd5b806354cf2aeb1161010857806354cf2aeb146102225780635e7b655c1461023957806362997f8c1461024f57806366a88d96146102655780636ac9a8701461027b57806370a082311461029b57600080fd5b806306fdde0314610150578063095ea7b31461019357806318160ddd146101c357806323b872dd146101e6578063313ce5671461020657600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600881526746696e6520496e7560c01b60208201525b60405161018a9190611679565b60405180910390f35b34801561019f57600080fd5b506101b36101ae3660046116df565b610462565b604051901515815260200161018a565b3480156101cf57600080fd5b506101d8610479565b60405190815260200161018a565b3480156101f257600080fd5b506101b361020136600461170b565b61049a565b34801561021257600080fd5b506040516009815260200161018a565b34801561022e57600080fd5b50610237610503565b005b34801561024557600080fd5b506101d8600d5481565b34801561025b57600080fd5b506101d8600e5481565b34801561027157600080fd5b506101d8600c5481565b34801561028757600080fd5b5061023761029636600461174c565b610556565b3480156102a757600080fd5b506101d86102b636600461176e565b6001600160a01b031660009081526001602052604090205490565b3480156102dd57600080fd5b50610237610594565b3480156102f257600080fd5b506011546101b390600160c81b900460ff1681565b34801561031357600080fd5b50610237610608565b34801561032857600080fd5b506000546040516001600160a01b03909116815260200161018a565b34801561035057600080fd5b5061023761035f366004611799565b6109c4565b34801561037057600080fd5b5060408051808201909152600481526346494e5560e01b602082015261017d565b34801561039d57600080fd5b506101b36103ac3660046116df565b610a18565b3480156103bd57600080fd5b506102376103cc3660046116df565b610a25565b3480156103dd57600080fd5b506101d8600b5481565b3480156103f357600080fd5b506101d86104023660046117d2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043957600080fd5b50610237610ac1565b34801561044e57600080fd5b5061023761045d36600461174c565b610b80565b600061046f338484610bb5565b5060015b92915050565b60006104876009600a6118fa565b610495906319133850611909565b905090565b60006104a7848484610cd9565b6104f984336104f485604051806060016040528060288152602001611aa6602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112dc565b610bb5565b5060019392505050565b6011546001600160a01b0316336001600160a01b03161461052357600080fd5b3060009081526001602052604090205480156105425761054281611316565b4780156105525761055281611490565b5050565b6000546001600160a01b031633146105895760405162461bcd60e51b815260040161058090611920565b60405180910390fd5b600791909155600855565b6000546001600160a01b031633146105be5760405162461bcd60e51b815260040161058090611920565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106325760405162461bcd60e51b815260040161058090611920565b601154600160b01b900460ff161561068c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610580565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106d59030906106c76009600a6118fa565b6104f4906319133850611909565b600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074c9190611955565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d29190611955565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190611955565b601080546001600160a01b039283166001600160a01b0319909116179055600f541663f305d719473061088b816001600160a01b031660009081526001602052604090205490565b6000806108a06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610908573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061092d9190611972565b5050601054600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa91906119a0565b506011805462ff00ff60b01b19166201000160b01b179055565b6011546001600160a01b0316336001600160a01b0316146109e457600080fd5b6011805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055565b600061046f338484610cd9565b6011546001600160a01b0316336001600160a01b031614610a4557600080fd5b60115460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc91906119a0565b505050565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161058090611920565b610af76009600a6118fa565b610b05906319133850611909565b600b55610b146009600a6118fa565b610b22906319133850611909565b600c556011805460ff60c81b191690557ff7376c86cf503c5788ae74467ebc95b750bc4d5c64790343f9b4f42bdf376eee610b5f6009600a6118fa565b610b6d906319133850611909565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610baa5760405162461bcd60e51b815260040161058090611920565b600591909155600655565b6001600160a01b038316610c175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610580565b6001600160a01b038216610c785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610580565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d3d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610580565b6001600160a01b038216610d9f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610580565b60008111610e085760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610580565b600080546001600160a01b03858116911614801590610e3557506000546001600160a01b03848116911614155b1561119957610e6f6064610e69601160149054906101000a900460ff16610e5e57600554610e62565b6006545b85906114ca565b90611553565b601154909150600160c81b900460ff1615610f5e57600f546001600160a01b03848116911614801590610eb057506010546001600160a01b03848116911614155b15610f5e57326000908152600460205260409020544311610f4b5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610580565b3260009081526004602052604090204390555b6010546001600160a01b038581169116148015610f895750600f546001600160a01b03848116911614155b8015610fae57506001600160a01b03831660009081526003602052604090205460ff16155b1561109657600b548211156110055760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865206d617854786e416d6f756e742e000000000000006044820152606401610580565b600c5482611028856001600160a01b031660009081526001602052604090205490565b61103291906119bd565b11156110805760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865206d617857616c6c65744c696d69742e00000000006044820152606401610580565b600a8054906000611090836119d0565b91905055505b6010546001600160a01b0384811691161480156110bc57506001600160a01b0384163014155b156110f2576110ef6064610e69601160159054906101000a900460ff166110e557600754610e62565b60085485906114ca565b90505b30600090815260016020526040902054601154600160b81b900460ff1615801561112957506010546001600160a01b038581169116145b801561113e5750601154600160c01b900460ff165b801561114b5750600d5481115b801561115a5750600954600a54115b156111975761117c6111778461117284600e54611595565b611595565b611316565b476611c37937e080008111156111955761119547611490565b505b505b801561121357306000908152600160205260409020546111b990826115aa565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120a9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546112369083611609565b6001600160a01b03851660009081526001602052604090205561127b61125c8383611609565b6001600160a01b038516600090815260016020526040902054906115aa565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112c58585611609565b60405190815260200160405180910390a350505050565b600081848411156113005760405162461bcd60e51b81526004016105809190611679565b50600061130d84866119e9565b95945050505050565b6011805460ff60b81b1916600160b81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061135e5761135e6119fc565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113db9190611955565b816001815181106113ee576113ee6119fc565b6001600160a01b039283166020918202929092010152600f546114149130911684610bb5565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061144d908590600090869030904290600401611a12565b600060405180830381600087803b15801561146757600080fd5b505af115801561147b573d6000803e3d6000fd5b50506011805460ff60b81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610552573d6000803e3d6000fd5b6000826000036114dc57506000610473565b60006114e88385611909565b9050826114f58583611a83565b1461154c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610580565b9392505050565b600061154c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061164b565b60008183116115a4578261154c565b50919050565b6000806115b783856119bd565b90508381101561154c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610580565b600061154c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112dc565b6000818361166c5760405162461bcd60e51b81526004016105809190611679565b50600061130d8486611a83565b600060208083528351808285015260005b818110156116a65785810183015185820160400152820161168a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116dc57600080fd5b50565b600080604083850312156116f257600080fd5b82356116fd816116c7565b946020939093013593505050565b60008060006060848603121561172057600080fd5b833561172b816116c7565b9250602084013561173b816116c7565b929592945050506040919091013590565b6000806040838503121561175f57600080fd5b50508035926020909101359150565b60006020828403121561178057600080fd5b813561154c816116c7565b80151581146116dc57600080fd5b600080604083850312156117ac57600080fd5b82356117b78161178b565b915060208301356117c78161178b565b809150509250929050565b600080604083850312156117e557600080fd5b82356117f0816116c7565b915060208301356117c7816116c7565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561185157816000190482111561183757611837611800565b8085161561184457918102915b93841c939080029061181b565b509250929050565b60008261186857506001610473565b8161187557506000610473565b816001811461188b5760028114611895576118b1565b6001915050610473565b60ff8411156118a6576118a6611800565b50506001821b610473565b5060208310610133831016604e8410600b84101617156118d4575081810a610473565b6118de8383611816565b80600019048211156118f2576118f2611800565b029392505050565b600061154c60ff841683611859565b808202811582820484141761047357610473611800565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561196757600080fd5b815161154c816116c7565b60008060006060848603121561198757600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119b257600080fd5b815161154c8161178b565b8082018082111561047357610473611800565b6000600182016119e2576119e2611800565b5060010190565b8181038181111561047357610473611800565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a625784516001600160a01b031683529383019391830191600101611a3d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611aa057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206db42be47c43dbaf08289f8307a452c1e5da7370eb546a3afab0ffb31f44aa4d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610391578063ce261d10146103b1578063cf46f24c146103d1578063dd62ed3e146103e7578063e54081d01461042d578063fb0ecfa41461044257600080fd5b8063715018a6146102d1578063717944e0146102e65780638a8c523c146103075780638da5cb5b1461031c578063937628281461034457806395d89b411461036457600080fd5b806354cf2aeb1161010857806354cf2aeb146102225780635e7b655c1461023957806362997f8c1461024f57806366a88d96146102655780636ac9a8701461027b57806370a082311461029b57600080fd5b806306fdde0314610150578063095ea7b31461019357806318160ddd146101c357806323b872dd146101e6578063313ce5671461020657600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600881526746696e6520496e7560c01b60208201525b60405161018a9190611679565b60405180910390f35b34801561019f57600080fd5b506101b36101ae3660046116df565b610462565b604051901515815260200161018a565b3480156101cf57600080fd5b506101d8610479565b60405190815260200161018a565b3480156101f257600080fd5b506101b361020136600461170b565b61049a565b34801561021257600080fd5b506040516009815260200161018a565b34801561022e57600080fd5b50610237610503565b005b34801561024557600080fd5b506101d8600d5481565b34801561025b57600080fd5b506101d8600e5481565b34801561027157600080fd5b506101d8600c5481565b34801561028757600080fd5b5061023761029636600461174c565b610556565b3480156102a757600080fd5b506101d86102b636600461176e565b6001600160a01b031660009081526001602052604090205490565b3480156102dd57600080fd5b50610237610594565b3480156102f257600080fd5b506011546101b390600160c81b900460ff1681565b34801561031357600080fd5b50610237610608565b34801561032857600080fd5b506000546040516001600160a01b03909116815260200161018a565b34801561035057600080fd5b5061023761035f366004611799565b6109c4565b34801561037057600080fd5b5060408051808201909152600481526346494e5560e01b602082015261017d565b34801561039d57600080fd5b506101b36103ac3660046116df565b610a18565b3480156103bd57600080fd5b506102376103cc3660046116df565b610a25565b3480156103dd57600080fd5b506101d8600b5481565b3480156103f357600080fd5b506101d86104023660046117d2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043957600080fd5b50610237610ac1565b34801561044e57600080fd5b5061023761045d36600461174c565b610b80565b600061046f338484610bb5565b5060015b92915050565b60006104876009600a6118fa565b610495906319133850611909565b905090565b60006104a7848484610cd9565b6104f984336104f485604051806060016040528060288152602001611aa6602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112dc565b610bb5565b5060019392505050565b6011546001600160a01b0316336001600160a01b03161461052357600080fd5b3060009081526001602052604090205480156105425761054281611316565b4780156105525761055281611490565b5050565b6000546001600160a01b031633146105895760405162461bcd60e51b815260040161058090611920565b60405180910390fd5b600791909155600855565b6000546001600160a01b031633146105be5760405162461bcd60e51b815260040161058090611920565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106325760405162461bcd60e51b815260040161058090611920565b601154600160b01b900460ff161561068c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610580565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106d59030906106c76009600a6118fa565b6104f4906319133850611909565b600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074c9190611955565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d29190611955565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190611955565b601080546001600160a01b039283166001600160a01b0319909116179055600f541663f305d719473061088b816001600160a01b031660009081526001602052604090205490565b6000806108a06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610908573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061092d9190611972565b5050601054600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa91906119a0565b506011805462ff00ff60b01b19166201000160b01b179055565b6011546001600160a01b0316336001600160a01b0316146109e457600080fd5b6011805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055565b600061046f338484610cd9565b6011546001600160a01b0316336001600160a01b031614610a4557600080fd5b60115460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc91906119a0565b505050565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161058090611920565b610af76009600a6118fa565b610b05906319133850611909565b600b55610b146009600a6118fa565b610b22906319133850611909565b600c556011805460ff60c81b191690557ff7376c86cf503c5788ae74467ebc95b750bc4d5c64790343f9b4f42bdf376eee610b5f6009600a6118fa565b610b6d906319133850611909565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610baa5760405162461bcd60e51b815260040161058090611920565b600591909155600655565b6001600160a01b038316610c175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610580565b6001600160a01b038216610c785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610580565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d3d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610580565b6001600160a01b038216610d9f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610580565b60008111610e085760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610580565b600080546001600160a01b03858116911614801590610e3557506000546001600160a01b03848116911614155b1561119957610e6f6064610e69601160149054906101000a900460ff16610e5e57600554610e62565b6006545b85906114ca565b90611553565b601154909150600160c81b900460ff1615610f5e57600f546001600160a01b03848116911614801590610eb057506010546001600160a01b03848116911614155b15610f5e57326000908152600460205260409020544311610f4b5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610580565b3260009081526004602052604090204390555b6010546001600160a01b038581169116148015610f895750600f546001600160a01b03848116911614155b8015610fae57506001600160a01b03831660009081526003602052604090205460ff16155b1561109657600b548211156110055760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865206d617854786e416d6f756e742e000000000000006044820152606401610580565b600c5482611028856001600160a01b031660009081526001602052604090205490565b61103291906119bd565b11156110805760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865206d617857616c6c65744c696d69742e00000000006044820152606401610580565b600a8054906000611090836119d0565b91905055505b6010546001600160a01b0384811691161480156110bc57506001600160a01b0384163014155b156110f2576110ef6064610e69601160159054906101000a900460ff166110e557600754610e62565b60085485906114ca565b90505b30600090815260016020526040902054601154600160b81b900460ff1615801561112957506010546001600160a01b038581169116145b801561113e5750601154600160c01b900460ff165b801561114b5750600d5481115b801561115a5750600954600a54115b156111975761117c6111778461117284600e54611595565b611595565b611316565b476611c37937e080008111156111955761119547611490565b505b505b801561121357306000908152600160205260409020546111b990826115aa565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120a9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546112369083611609565b6001600160a01b03851660009081526001602052604090205561127b61125c8383611609565b6001600160a01b038516600090815260016020526040902054906115aa565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112c58585611609565b60405190815260200160405180910390a350505050565b600081848411156113005760405162461bcd60e51b81526004016105809190611679565b50600061130d84866119e9565b95945050505050565b6011805460ff60b81b1916600160b81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061135e5761135e6119fc565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113db9190611955565b816001815181106113ee576113ee6119fc565b6001600160a01b039283166020918202929092010152600f546114149130911684610bb5565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061144d908590600090869030904290600401611a12565b600060405180830381600087803b15801561146757600080fd5b505af115801561147b573d6000803e3d6000fd5b50506011805460ff60b81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610552573d6000803e3d6000fd5b6000826000036114dc57506000610473565b60006114e88385611909565b9050826114f58583611a83565b1461154c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610580565b9392505050565b600061154c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061164b565b60008183116115a4578261154c565b50919050565b6000806115b783856119bd565b90508381101561154c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610580565b600061154c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112dc565b6000818361166c5760405162461bcd60e51b81526004016105809190611679565b50600061130d8486611a83565b600060208083528351808285015260005b818110156116a65785810183015185820160400152820161168a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116dc57600080fd5b50565b600080604083850312156116f257600080fd5b82356116fd816116c7565b946020939093013593505050565b60008060006060848603121561172057600080fd5b833561172b816116c7565b9250602084013561173b816116c7565b929592945050506040919091013590565b6000806040838503121561175f57600080fd5b50508035926020909101359150565b60006020828403121561178057600080fd5b813561154c816116c7565b80151581146116dc57600080fd5b600080604083850312156117ac57600080fd5b82356117b78161178b565b915060208301356117c78161178b565b809150509250929050565b600080604083850312156117e557600080fd5b82356117f0816116c7565b915060208301356117c7816116c7565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561185157816000190482111561183757611837611800565b8085161561184457918102915b93841c939080029061181b565b509250929050565b60008261186857506001610473565b8161187557506000610473565b816001811461188b5760028114611895576118b1565b6001915050610473565b60ff8411156118a6576118a6611800565b50506001821b610473565b5060208310610133831016604e8410600b84101617156118d4575081810a610473565b6118de8383611816565b80600019048211156118f2576118f2611800565b029392505050565b600061154c60ff841683611859565b808202811582820484141761047357610473611800565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561196757600080fd5b815161154c816116c7565b60008060006060848603121561198757600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119b257600080fd5b815161154c8161178b565b8082018082111561047357610473611800565b6000600182016119e2576119e2611800565b5060010190565b8181038181111561047357610473611800565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a625784516001600160a01b031683529383019391830191600101611a3d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611aa057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206db42be47c43dbaf08289f8307a452c1e5da7370eb546a3afab0ffb31f44aa4d64736f6c63430008130033

Deployed Bytecode Sourcemap

2810:9007:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4638:83;;;;;;;;;;-1:-1:-1;4708:5:0;;;;;;;;;;;;-1:-1:-1;;;4708:5:0;;;;4638:83;;;;;;;:::i;:::-;;;;;;;;5526:186;;;;;;;;;;-1:-1:-1;5526:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5526:186:0;1023:187:1;4915:100:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;4915:100:0;1215:177:1;5720:446:0;;;;;;;;;;-1:-1:-1;5720:446:0;;;;;:::i;:::-;;:::i;4824:83::-;;;;;;;;;;-1:-1:-1;4824:83:0;;3028:1;2000:36:1;;1988:2;1973:18;4824:83:0;1858:184:1;11094:361:0;;;;;;;;;;;;;:::i;:::-;;3717:59;;;;;;;;;;;;;;;;3783:53;;;;;;;;;;;;;;;;3653:57;;;;;;;;;;;;;;;;10924:162;;;;;;;;;;-1:-1:-1;10924:162:0;;;;;:::i;:::-;;:::i;5023:119::-;;;;;;;;;;-1:-1:-1;5023:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5116:18:0;5089:7;5116:18;;;:9;:18;;;;;;;5023:119;1849:148;;;;;;;;;;;;;:::i;4115:39::-;;;;;;;;;;-1:-1:-1;4115:39:0;;;;-1:-1:-1;;;4115:39:0;;;;;;9799:722;;;;;;;;;;;;;:::i;1635:79::-;;;;;;;;;;-1:-1:-1;1673:7:0;1700:6;1635:79;;-1:-1:-1;;;;;1700:6:0;;;2698:51:1;;2686:2;2671:18;1635:79:0;2552:203:1;11646:168:0;;;;;;;;;;-1:-1:-1;11646:168:0;;;;;:::i;:::-;;:::i;4729:87::-;;;;;;;;;;-1:-1:-1;4801:7:0;;;;;;;;;;;;-1:-1:-1;;;4801:7:0;;;;4729:87;;5150:192;;;;;;;;;;-1:-1:-1;5150:192:0;;;;;:::i;:::-;;:::i;11463:175::-;;;;;;;;;;-1:-1:-1;11463:175:0;;;;;:::i;:::-;;:::i;3591:55::-;;;;;;;;;;;;;;;;5350:168;;;;;;;;;;-1:-1:-1;5350:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;5483:18:0;;;5456:7;5483:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5350:168;10529:224;;;;;;;;;;;;;:::i;10761:155::-;;;;;;;;;;-1:-1:-1;10761:155:0;;;;;:::i;:::-;;:::i;5526:186::-;5626:4;5643:39;1268:10;5666:7;5675:6;5643:8;:39::i;:::-;-1:-1:-1;5700:4:0;5526:186;;;;;:::o;4915:100::-;4968:7;3088:15;3028:1;3088:2;:15;:::i;:::-;3076:27;;:9;:27;:::i;:::-;4988:19;;4915:100;:::o;5720:446::-;5852:4;5869:36;5879:6;5887:9;5898:6;5869:9;:36::i;:::-;5916:220;5939:6;1268:10;5987:138;6043:6;5987:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5987:19:0;;;;;;:11;:19;;;;;;;;1268:10;5987:33;;;;;;;;;;:37;:138::i;:::-;5916:8;:220::i;:::-;-1:-1:-1;6154:4:0;5720:446;;;;;:::o;11094:361::-;11157:9;;-1:-1:-1;;;;;11157:9:0;1268:10;-1:-1:-1;;;;;11141:25:0;;11133:34;;;;;;11219:4;11178:20;5116:18;;;:9;:18;;;;;;11240:16;;11236:79;;11273:30;11290:12;11273:16;:30::i;:::-;11346:21;11382:14;;11378:70;;11413:23;11425:10;11413:11;:23::i;:::-;11122:333;;11094:361::o;10924:162::-;1762:6;;-1:-1:-1;;;;;1762:6:0;1268:10;1762:22;1754:67;;;;-1:-1:-1;;;1754:67:0;;;;;;;:::i;:::-;;;;;;;;;11031:9:::1;:18:::0;;;;11060:9:::1;:18:::0;10924:162::o;1849:148::-;1762:6;;-1:-1:-1;;;;;1762:6:0;1268:10;1762:22;1754:67;;;;-1:-1:-1;;;1754:67:0;;;;;;;:::i;:::-;1956:1:::1;1940:6:::0;;1919:40:::1;::::0;-1:-1:-1;;;;;1940:6:0;;::::1;::::0;1919:40:::1;::::0;1956:1;;1919:40:::1;1987:1;1970:19:::0;;-1:-1:-1;;;;;;1970:19:0::1;::::0;;1849:148::o;9799:722::-;1762:6;;-1:-1:-1;;;;;1762:6:0;1268:10;1762:22;1754:67;;;;-1:-1:-1;;;1754:67:0;;;;;;;:::i;:::-;9863:11:::1;::::0;-1:-1:-1;;;9863:11:0;::::1;;;9862:12;9854:48;;;::::0;-1:-1:-1;;;9854:48:0;;5908:2:1;9854:48:0::1;::::0;::::1;5890:21:1::0;5947:2;5927:18;;;5920:30;5986:25;5966:18;;;5959:53;6029:18;;9854:48:0::1;5706:347:1::0;9854:48:0::1;9913:6;:63:::0;;-1:-1:-1;;;;;;9913:63:0::1;9933:42;9913:63:::0;;::::1;::::0;;;9987:54:::1;::::0;10004:4:::1;::::0;3088:15:::1;3028:1;3088:2;:15;:::i;:::-;3076:27;::::0;:9:::1;:27;:::i;9987:54::-;10071:6;;;;;;;;;-1:-1:-1::0;;;;;10071:6:0::1;-1:-1:-1::0;;;;;10071:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10059:40:0::1;;10122:4;10142:6;;;;;;;;;-1:-1:-1::0;;;;;10142:6:0::1;-1:-1:-1::0;;;;;10142:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10059:107;::::0;-1:-1:-1;;;;;;10059:107:0::1;::::0;;;;;;-1:-1:-1;;;;;6544:15:1;;;10059:107:0::1;::::0;::::1;6526:34:1::0;6596:15;;6576:18;;;6569:43;6461:18;;10059:107:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10052:4;:114:::0;;-1:-1:-1;;;;;10052:114:0;;::::1;-1:-1:-1::0;;;;;;10052:114:0;;::::1;;::::0;;10177:6:::1;::::0;::::1;:22;10207:21;10252:4;10272:24;10252:4:::0;-1:-1:-1;;;;;5116:18:0;5089:7;5116:18;;;:9;:18;;;;;;;5023:119;10272:24:::1;10311:1;10327::::0;10343:7:::1;1673::::0;1700:6;-1:-1:-1;;;;;1700:6:0;;1635:79;10343:7:::1;10177:214;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10177:214:0;;;-1:-1:-1;;;;;6982:15:1;;;10177:214:0::1;::::0;::::1;6964:34:1::0;7014:18;;;7007:34;;;;7057:18;;;7050:34;;;;7100:18;;;7093:34;7164:15;;;7143:19;;;7136:44;10365:15:0::1;7196:19:1::0;;;7189:35;6898:19;;10177:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10409:4:0::1;::::0;10431:6:::1;::::0;10402:53:::1;::::0;-1:-1:-1;;;10402:53:0;;-1:-1:-1;;;;;10431:6:0;;::::1;10402:53;::::0;::::1;7720:51:1::0;-1:-1:-1;;7787:18:1;;;7780:34;10409:4:0;::::1;::::0;-1:-1:-1;10402:20:0::1;::::0;7693:18:1;;10402:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10466:11:0::1;:18:::0;;-1:-1:-1;;;;10495:18:0;-1:-1:-1;;;10495:18:0;;;9799:722::o;11646:168::-;11732:9;;-1:-1:-1;;;;;11732:9:0;1268:10;-1:-1:-1;;;;;11716:25:0;;11708:34;;;;;;11753:13;:20;;-1:-1:-1;;;;11784:22:0;-1:-1:-1;;;11753:20:0;;;;;;;-1:-1:-1;;;;11784:22:0;;;;;-1:-1:-1;;;11784:22:0;;;;;;;;;;11646:168::o;5150:192::-;5253:4;5270:42;1268:10;5294:9;5305:6;5270:9;:42::i;11463:175::-;11566:9;;-1:-1:-1;;;;;11566:9:0;1268:10;-1:-1:-1;;;;;11550:25:0;;11542:34;;;;;;11611:9;;11587:43;;-1:-1:-1;;;11587:43:0;;-1:-1:-1;;;;;11611:9:0;;;11587:43;;;7720:51:1;7787:18;;;7780:34;;;11587:23:0;;;;;;7693:18:1;;11587:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11463:175;;:::o;10529:224::-;1762:6;;-1:-1:-1;;;;;1762:6:0;1268:10;1762:22;1754:67;;;;-1:-1:-1;;;1754:67:0;;;;;;;:::i;:::-;3088:15:::1;3028:1;3088:2;:15;:::i;:::-;3076:27;::::0;:9:::1;:27;:::i;:::-;10590:12;:27:::0;3088:15:::1;3028:1;3088:2;:15;:::i;:::-;3076:27;::::0;:9:::1;:27;:::i;:::-;10628:14;:29:::0;10668:20:::1;:28:::0;;-1:-1:-1;;;;10668:28:0::1;::::0;;10712:33:::1;3088:15;3028:1;3088:2;:15;:::i;:::-;3076:27;::::0;:9:::1;:27;:::i;:::-;10712:33;::::0;1361:25:1;;;1349:2;1334:18;10712:33:0::1;;;;;;;10529:224::o:0;10761:155::-;1762:6;;-1:-1:-1;;;;;1762:6:0;1268:10;1762:22;1754:67;;;;-1:-1:-1;;;1754:67:0;;;;;;;:::i;:::-;10865:8:::1;:16:::0;;;;10892:8:::1;:16:::0;10761:155::o;6174:335::-;-1:-1:-1;;;;;6267:19:0;;6259:68;;;;-1:-1:-1;;;6259:68:0;;8564:2:1;6259:68:0;;;8546:21:1;8603:2;8583:18;;;8576:30;8642:34;8622:18;;;8615:62;-1:-1:-1;;;8693:18:1;;;8686:34;8737:19;;6259:68:0;8362:400:1;6259:68:0;-1:-1:-1;;;;;6346:21:0;;6338:68;;;;-1:-1:-1;;;6338:68:0;;8969:2:1;6338:68:0;;;8951:21:1;9008:2;8988:18;;;8981:30;9047:34;9027:18;;;9020:62;-1:-1:-1;;;9098:18:1;;;9091:32;9140:19;;6338:68:0;8767:398:1;6338:68:0;-1:-1:-1;;;;;6417:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6469:32;;1361:25:1;;;6469:32:0;;1334:18:1;6469:32:0;;;;;;;6174:335;;;:::o;6517:2594::-;-1:-1:-1;;;;;6605:18:0;;6597:68;;;;-1:-1:-1;;;6597:68:0;;9372:2:1;6597:68:0;;;9354:21:1;9411:2;9391:18;;;9384:30;9450:34;9430:18;;;9423:62;-1:-1:-1;;;9501:18:1;;;9494:35;9546:19;;6597:68:0;9170:401:1;6597:68:0;-1:-1:-1;;;;;6684:16:0;;6676:64;;;;-1:-1:-1;;;6676:64:0;;9778:2:1;6676:64:0;;;9760:21:1;9817:2;9797:18;;;9790:30;9856:34;9836:18;;;9829:62;-1:-1:-1;;;9907:18:1;;;9900:33;9950:19;;6676:64:0;9576:399:1;6676:64:0;6768:1;6759:6;:10;6751:71;;;;-1:-1:-1;;;6751:71:0;;10182:2:1;6751:71:0;;;10164:21:1;10221:2;10201:18;;;10194:30;10260:34;10240:18;;;10233:62;-1:-1:-1;;;10311:18:1;;;10304:46;10367:19;;6751:71:0;9980:412:1;6751:71:0;6833:17;1700:6;;-1:-1:-1;;;;;6869:15:0;;;1700:6;;6869:15;;;;:32;;-1:-1:-1;1673:7:0;1700:6;-1:-1:-1;;;;;6888:13:0;;;1700:6;;6888:13;;6869:32;6865:1875;;;6930:92;7018:3;6930:65;6959:13;;;;;;;;;;;:35;;6986:8;;6959:35;;;6975:8;;6959:35;6930:6;;:28;:65::i;:::-;:87;;:92::i;:::-;7043:20;;6918:104;;-1:-1:-1;;;;7043:20:0;;;;7039:421;;;7102:6;;-1:-1:-1;;;;;7088:21:0;;;7102:6;;7088:21;;;;:44;;-1:-1:-1;7127:4:0;;-1:-1:-1;;;;;7113:19:0;;;7127:4;;7113:19;;7088:44;7084:361;;;7209:9;7191:28;;;;:17;:28;;;;;;7222:12;-1:-1:-1;7157:202:0;;;;-1:-1:-1;;;7157:202:0;;10599:2:1;7157:202:0;;;10581:21:1;10638:2;10618:18;;;10611:30;10677:34;10657:18;;;10650:62;10748:34;10728:18;;;10721:62;-1:-1:-1;;;10799:19:1;;;10792:40;10849:19;;7157:202:0;10397:477:1;7157:202:0;7400:9;7382:28;;;;:17;:28;;;;;7413:12;7382:43;;7084:361;7506:4;;-1:-1:-1;;;;;7498:12:0;;;7506:4;;7498:12;:37;;;;-1:-1:-1;7528:6:0;;-1:-1:-1;;;;;7514:21:0;;;7528:6;;7514:21;;7498:37;:64;;;;-1:-1:-1;;;;;;7540:22:0;;;;;;:18;:22;;;;;;;;7539:23;7498:64;7476:389;;;7615:12;;7605:6;:22;;7597:60;;;;-1:-1:-1;;;7597:60:0;;11081:2:1;7597:60:0;;;11063:21:1;11120:2;11100:18;;;11093:30;11159:27;11139:18;;;11132:55;11204:18;;7597:60:0;10879:349:1;7597:60:0;7732:14;;7722:6;7706:13;7716:2;-1:-1:-1;;;;;5116:18:0;5089:7;5116:18;;;:9;:18;;;;;;;5023:119;7706:13;:22;;;;:::i;:::-;:40;;7676:141;;;;-1:-1:-1;;;7676:141:0;;11565:2:1;7676:141:0;;;11547:21:1;11604:2;11584:18;;;11577:30;11643:29;11623:18;;;11616:57;11690:18;;7676:141:0;11363:351:1;7676:141:0;7836:11;:13;;;:11;:13;;;:::i;:::-;;;;;;7476:389;7891:4;;-1:-1:-1;;;;;7885:10:0;;;7891:4;;7885:10;:35;;;;-1:-1:-1;;;;;;7899:21:0;;7915:4;7899:21;;7885:35;7881:191;;;7953:103;8052:3;7953:72;7986:14;;;;;;;;;;;:38;;8015:9;;7986:38;;;8003:9;;7953:6;;:32;:72::i;:103::-;7941:115;;7881:191;8137:4;8088:28;5116:18;;;:9;:18;;;;;;8181:6;;-1:-1:-1;;;8181:6:0;;;;8180:7;:38;;;;-1:-1:-1;8214:4:0;;-1:-1:-1;;;;;8208:10:0;;;8214:4;;8208:10;8180:38;:70;;;;-1:-1:-1;8239:11:0;;-1:-1:-1;;;8239:11:0;;;;8180:70;:130;;;;;8294:16;;8271:20;:39;8180:130;:182;;;;;8345:17;;8331:11;;:31;8180:182;8158:571;;;8397:114;8436:56;8443:6;8451:40;8458:20;8480:10;;8451:6;:40::i;:::-;8436:6;:56::i;:::-;8397:16;:114::i;:::-;8559:21;8624:11;8603:32;;8599:115;;;8660:34;8672:21;8660:11;:34::i;:::-;8378:351;8158:571;6903:1837;6865:1875;8756:13;;8752:172;;8831:4;8813:24;;;;:9;:24;;;;;;:39;;8842:9;8813:28;:39::i;:::-;8804:4;8786:24;;;;:9;:24;;;;;;;:66;;;;8872:40;;-1:-1:-1;;;;;8872:40:0;;;;;;;8902:9;1361:25:1;;1349:2;1334:18;;1215:177;8872:40:0;;;;;;;;8752:172;-1:-1:-1;;;;;8952:15:0;;;;;;:9;:15;;;;;;:27;;8972:6;8952:19;:27::i;:::-;-1:-1:-1;;;;;8934:15:0;;;;;;:9;:15;;;;;:45;9006:40;9024:21;:6;9035:9;9024:10;:21::i;:::-;-1:-1:-1;;;;;9006:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;8990:13:0;;;;;;;:9;:13;;;;;:56;;;;9062:41;;;9081:21;:6;9092:9;9081:10;:21::i;:::-;9062:41;;1361:25:1;;;1349:2;1334:18;9062:41:0;;;;;;;6586:2525;6517:2594;;;:::o;12176:224::-;12296:7;12332:12;12324:6;;;;12316:29;;;;-1:-1:-1;;;12316:29:0;;;;;;;;:::i;:::-;-1:-1:-1;12356:9:0;12368:5;12372:1;12368;:5;:::i;:::-;12356:17;12176:224;-1:-1:-1;;;;;12176:224:0:o;9217:456::-;4248:6;:13;;-1:-1:-1;;;;4248:13:0;-1:-1:-1;;;4248:13:0;;;9319:16:::1;::::0;;9333:1:::1;9319:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9319:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9319:16:0::1;9295:40;;9364:4;9346;9351:1;9346:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9346:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9390:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9390:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9346:7;;9390:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9380:4;9385:1;9380:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9380:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9446:6:::1;::::0;9414:53:::1;::::0;9431:4:::1;::::0;9446:6:::1;9455:11:::0;9414:8:::1;:53::i;:::-;9478:6;::::0;:187:::1;::::0;-1:-1:-1;;;9478:187:0;;-1:-1:-1;;;;;9478:6:0;;::::1;::::0;:57:::1;::::0;:187:::1;::::0;9550:11;;9478:6:::1;::::0;9592:4;;9619::::1;::::0;9639:15:::1;::::0;9478:187:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4284:6:0;:14;;-1:-1:-1;;;;4284:14:0;;;-1:-1:-1;;;;9217:456:0:o;9119:90::-;9175:9;;:26;;-1:-1:-1;;;;;9175:9:0;;;;:26;;;;;9194:6;;9175:9;:26;:9;:26;9194:6;9175:9;:26;;;;;;;;;;;;;;;;;;;12408:246;12466:7;12490:1;12495;12490:6;12486:47;;-1:-1:-1;12520:1:0;12513:8;;12486:47;12543:9;12555:5;12559:1;12555;:5;:::i;:::-;12543:17;-1:-1:-1;12588:1:0;12579:5;12583:1;12543:17;12579:5;:::i;:::-;:10;12571:56;;;;-1:-1:-1;;;12571:56:0;;13665:2:1;12571:56:0;;;13647:21:1;13704:2;13684:18;;;13677:30;13743:34;13723:18;;;13716:62;-1:-1:-1;;;13794:18:1;;;13787:31;13835:19;;12571:56:0;13463:397:1;12571:56:0;12645:1;12408:246;-1:-1:-1;;;12408:246:0:o;12662:132::-;12720:7;12747:39;12751:1;12754;12747:39;;;;;;;;;;;;;;;;;:3;:39::i;9681:110::-;9741:7;9773:1;9769;:5;9768:15;;9782:1;9768:15;;;-1:-1:-1;9778:1:0;9681:110;-1:-1:-1;9681:110:0:o;11845:179::-;11903:7;;11935:5;11939:1;11935;:5;:::i;:::-;11923:17;;11964:1;11959;:6;;11951:46;;;;-1:-1:-1;;;11951:46:0;;14067:2:1;11951:46:0;;;14049:21:1;14106:2;14086:18;;;14079:30;14145:29;14125:18;;;14118:57;14192:18;;11951:46:0;13865:351:1;12032:136:0;12090:7;12117:43;12121:1;12124;12117:43;;;;;;;;;;;;;;;;;:3;:43::i;12802:223::-;12922:7;12957:12;12950:5;12942:28;;;;-1:-1:-1;;;12942:28:0;;;;;;;;:::i;:::-;-1:-1:-1;12981:9:0;12993:5;12997:1;12993;: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;2047:248::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;-1:-1:-1;;2215:23:1;;;2285:2;2270:18;;;2257:32;;-1:-1:-1;2047:248:1:o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2760:118::-;2846:5;2839:13;2832:21;2825:5;2822:32;2812:60;;2868:1;2865;2858:12;2883:376;2945:6;2953;3006:2;2994:9;2985:7;2981:23;2977:32;2974:52;;;3022:1;3019;3012:12;2974:52;3061:9;3048:23;3080:28;3102:5;3080:28;:::i;:::-;3127:5;-1:-1:-1;3184:2:1;3169:18;;3156:32;3197:30;3156:32;3197:30;:::i;:::-;3246:7;3236:17;;;2883:376;;;;;:::o;3264:388::-;3332:6;3340;3393:2;3381:9;3372:7;3368:23;3364:32;3361:52;;;3409:1;3406;3399:12;3361:52;3448:9;3435:23;3467:31;3492:5;3467:31;:::i;:::-;3517:5;-1:-1:-1;3574:2:1;3559:18;;3546:32;3587:33;3546:32;3587:33;:::i;3657:127::-;3718:10;3713:3;3709:20;3706:1;3699:31;3749:4;3746:1;3739:15;3773:4;3770:1;3763:15;3789:422;3878:1;3921:5;3878:1;3935:270;3956:7;3946:8;3943:21;3935:270;;;4015:4;4011:1;4007:6;4003:17;3997:4;3994:27;3991:53;;;4024:18;;:::i;:::-;4074:7;4064:8;4060:22;4057:55;;;4094:16;;;;4057:55;4173:22;;;;4133:15;;;;3935:270;;;3939:3;3789:422;;;;;:::o;4216:806::-;4265:5;4295:8;4285:80;;-1:-1:-1;4336:1:1;4350:5;;4285:80;4384:4;4374:76;;-1:-1:-1;4421:1:1;4435:5;;4374:76;4466:4;4484:1;4479:59;;;;4552:1;4547:130;;;;4459:218;;4479:59;4509:1;4500:10;;4523:5;;;4547:130;4584:3;4574:8;4571:17;4568:43;;;4591:18;;:::i;:::-;-1:-1:-1;;4647:1:1;4633:16;;4662:5;;4459:218;;4761:2;4751:8;4748:16;4742:3;4736:4;4733:13;4729:36;4723:2;4713:8;4710:16;4705:2;4699:4;4696:12;4692:35;4689:77;4686:159;;;-1:-1:-1;4798:19:1;;;4830:5;;4686:159;4877:34;4902:8;4896:4;4877:34;:::i;:::-;4947:6;4943:1;4939:6;4935:19;4926:7;4923:32;4920:58;;;4958:18;;:::i;:::-;4996:20;;4216:806;-1:-1:-1;;;4216:806:1:o;5027:140::-;5085:5;5114:47;5155:4;5145:8;5141:19;5135:4;5114:47;:::i;5172:168::-;5245:9;;;5276;;5293:15;;;5287:22;;5273:37;5263:71;;5314:18;;:::i;5345:356::-;5547:2;5529:21;;;5566:18;;;5559:30;5625:34;5620:2;5605:18;;5598:62;5692:2;5677:18;;5345:356::o;6058:251::-;6128:6;6181:2;6169:9;6160:7;6156:23;6152:32;6149:52;;;6197:1;6194;6187:12;6149:52;6229:9;6223:16;6248:31;6273:5;6248:31;:::i;7235:306::-;7323:6;7331;7339;7392:2;7380:9;7371:7;7367:23;7363:32;7360:52;;;7408:1;7405;7398:12;7360:52;7437:9;7431:16;7421:26;;7487:2;7476:9;7472:18;7466:25;7456:35;;7531:2;7520:9;7516:18;7510:25;7500:35;;7235:306;;;;;:::o;7825:245::-;7892:6;7945:2;7933:9;7924:7;7920:23;7916:32;7913:52;;;7961:1;7958;7951:12;7913:52;7993:9;7987:16;8012:28;8034:5;8012:28;:::i;11233:125::-;11298:9;;;11319:10;;;11316:36;;;11332:18;;:::i;11719:135::-;11758:3;11779:17;;;11776:43;;11799:18;;:::i;:::-;-1:-1:-1;11846:1:1;11835:13;;11719:135::o;11859:128::-;11926:9;;;11947:11;;;11944:37;;;11961:18;;:::i;12124:127::-;12185:10;12180:3;12176:20;12173:1;12166:31;12216:4;12213:1;12206:15;12240:4;12237:1;12230:15;12256:980;12518:4;12566:3;12555:9;12551:19;12597:6;12586:9;12579:25;12623:2;12661:6;12656:2;12645:9;12641:18;12634:34;12704:3;12699:2;12688:9;12684:18;12677:31;12728:6;12763;12757:13;12794:6;12786;12779:22;12832:3;12821:9;12817:19;12810:26;;12871:2;12863:6;12859:15;12845:29;;12892:1;12902:195;12916:6;12913:1;12910:13;12902:195;;;12981:13;;-1:-1:-1;;;;;12977:39:1;12965:52;;13072:15;;;;13037:12;;;;13013:1;12931:9;12902:195;;;-1:-1:-1;;;;;;;13153:32:1;;;;13148:2;13133:18;;13126:60;-1:-1:-1;;;13217:3:1;13202:19;13195:35;13114:3;12256:980;-1:-1:-1;;;12256:980:1:o;13241:217::-;13281:1;13307;13297:132;;13351:10;13346:3;13342:20;13339:1;13332:31;13386:4;13383:1;13376:15;13414:4;13411:1;13404:15;13297:132;-1:-1:-1;13443:9:1;;13241:217::o

Swarm Source

ipfs://6db42be47c43dbaf08289f8307a452c1e5da7370eb546a3afab0ffb31f44aa4d
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.