ETH Price: $2,671.52 (+10.02%)
Gas: 8 Gwei

Token

Floki V Pepe (FLOPE)
 

Overview

Max Total Supply

420,690,000,000,000 FLOPE

Holders

255

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
314,918,379,987.478274727 FLOPE

Value
$0.00
0xc21e8c52839d11b30ecda6211b6a9276a623f7d3
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:
FLOPE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

                                  .-.
     (___________________________()6 `-,
     (   _____FLOPE_____________   /''"`
     //\\                      //\\
     "" ""                     "" ""

Website: https://flokivspepe.lol
Telegram: https://t.me/flokivpepe_coin
Twitter: https://twitter.com/flokivpepe_coin

                                                                                                                                                                                                                                                                  
*/

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

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(
        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 FLOPE 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 18;
    uint256 private _initialSellTax = 30;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 10;

    uint256 private _initialBuyTax2Time = 10;
    uint256 private _initialSellTax2Time = 10;
    uint256 private _reduceBuyTaxAt2Time = 20;

    uint256 private _finalBuyTax = 1;
    uint256 private _finalSellTax = 1;
    
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"Floki V Pepe";
    string private constant _symbol = unicode"FLOPE";

    uint256 public _maxTxAmount =  2 * (_tTotal/100);   
    uint256 public _maxWalletSize =  2 * (_tTotal/100);
    uint256 public _taxSwapThreshold=  2 * (_tTotal/1000);
    uint256 public _maxTaxSwap=  1 * (_tTotal/100);

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

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

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

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

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

    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, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(_taxBuy()).div(100);

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

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_taxSell()).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                uint256 initialETH = address(this).balance;
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 ethForTransfer = address(this).balance.sub(initialETH).mul(80).div(100);
                if(ethForTransfer > 0) {
                    sendETHToFee(ethForTransfer);
                }
            }
        }

        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 _taxBuy() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialBuyTax;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialBuyTax2Time;
        }
         return _finalBuyTax;
    }

    function _taxSell() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialSellTax;
        }
        if(_buyCount > _reduceSellTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialSellTax2Time;
        }
         return _finalBuyTax;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

    receive() external payable {}

    function ManualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    
    function rescueTokens(address token) external {
        IERC20(token).transfer(_taxWallet, IERC20(token).balanceOf(address(this)));
    }    
}

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":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescueTokens","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600160055f6101000a81548160ff0219169083151502179055506012600655601e6007556014600855600a600955600a8055600a600b556014600c556001600d556001600e556014600f555f60105560646009600a620000659190620003e3565b620000789066017e9d8602b400620003fa565b62000084919062000414565b62000091906002620003fa565b6011556064620000a46009600a620003e3565b620000b79066017e9d8602b400620003fa565b620000c3919062000414565b620000d0906002620003fa565b6012556103e8620000e46009600a620003e3565b620000f79066017e9d8602b400620003fa565b62000103919062000414565b62000110906002620003fa565b6013556064620001236009600a620003e3565b620001369066017e9d8602b400620003fa565b62000142919062000414565b6200014f906001620003fa565b6014556016805461ffff60a81b191690553480156200016c575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319166101003302179055620001d26009600a620003e3565b620001e59066017e9d8602b400620003fa565b335f9081526001602081905260408220929092556003906200020e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002713390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002aa6009600a620003e3565b620002bd9066017e9d8602b400620003fa565b60405190815260200160405180910390a362000434565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200032857815f19048211156200030c576200030c620002d4565b808516156200031a57918102915b93841c9390800290620002ed565b509250929050565b5f826200034057506001620003dd565b816200034e57505f620003dd565b8160018114620003675760028114620003725762000392565b6001915050620003dd565b60ff841115620003865762000386620002d4565b50506001821b620003dd565b5060208310610133831016604e8410600b8410161715620003b7575081810a620003dd565b620003c38383620002e8565b805f1904821115620003d957620003d9620002d4565b0290505b92915050565b5f620003f360ff84168362000330565b9392505050565b8082028115828204841417620003dd57620003dd620002d4565b5f826200042f57634e487b7160e01b5f52601260045260245ffd5b500490565b6119a680620004425f395ff3fe60806040526004361061011d575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb1461031c578063bf474bed1461033b578063c876d0b914610350578063c9567bf914610369578063dd62ed3e1461037d575f80fd5b80637d1db4a51461028b5780638da5cb5b146102a05780638f9a55c0146102c657806395d89b41146102db578063a1780c1814610308575f80fd5b806323b872dd116100e357806323b872dd146101f5578063313ce5671461021457806370a082311461022f578063715018a614610263578063751039fc14610277575f80fd5b8062ae3bf81461012857806306fdde0314610149578063095ea7b31461018f5780630faee56f146101be57806318160ddd146101e1575f80fd5b3661012457005b5f80fd5b348015610133575f80fd5b50610147610142366004611599565b6103c1565b005b348015610154575f80fd5b5060408051808201909152600c81526b466c6f6b692056205065706560a01b60208201525b60405161018691906115b4565b60405180910390f35b34801561019a575f80fd5b506101ae6101a93660046115ff565b6104ad565b6040519015158152602001610186565b3480156101c9575f80fd5b506101d360145481565b604051908152602001610186565b3480156101ec575f80fd5b506101d36104c3565b348015610200575f80fd5b506101ae61020f366004611629565b6104e6565b34801561021f575f80fd5b5060405160098152602001610186565b34801561023a575f80fd5b506101d3610249366004611599565b6001600160a01b03165f9081526001602052604090205490565b34801561026e575f80fd5b5061014761054d565b348015610282575f80fd5b506101476105c7565b348015610296575f80fd5b506101d360115481565b3480156102ab575f80fd5b505f546040516001600160a01b039091168152602001610186565b3480156102d1575f80fd5b506101d360125481565b3480156102e6575f80fd5b50604080518082019091526005815264464c4f504560d81b6020820152610179565b348015610313575f80fd5b5061014761068b565b348015610327575f80fd5b506101ae6103363660046115ff565b6106dd565b348015610346575f80fd5b506101d360135481565b34801561035b575f80fd5b506005546101ae9060ff1681565b348015610374575f80fd5b506101476106e9565b348015610388575f80fd5b506101d3610397366004611667565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6005546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb926101009091049091169083906370a0823190602401602060405180830381865afa158015610419573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043d919061169e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a991906116b5565b5050565b5f6104b9338484610a95565b5060015b92915050565b5f6104d06009600a6117c8565b6104e19066017e9d8602b4006117d6565b905090565b5f6104f2848484610bb8565b610543843361053e85604051806060016040528060288152602001611949602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611187565b610a95565b5060019392505050565b5f546001600160a01b0316331461057f5760405162461bcd60e51b8152600401610576906117ed565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105f05760405162461bcd60e51b8152600401610576906117ed565b6105fc6009600a6117c8565b61060d9066017e9d8602b4006117d6565b60115561061c6009600a6117c8565b61062d9066017e9d8602b4006117d6565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106676009600a6117c8565b6106789066017e9d8602b4006117d6565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b0316146106af575f80fd5b305f9081526001602052604090205480156106cd576106cd816111bf565b4780156104a9576104a98161132f565b5f6104b9338484610bb8565b5f546001600160a01b031633146107125760405162461bcd60e51b8152600401610576906117ed565b601654600160a01b900460ff161561076c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610576565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b89030906107a76009600a6117c8565b61053e9066017e9d8602b4006117d6565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610808573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082c9190611822565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108af9190611822565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091d9190611822565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d7194730610964816001600160a01b03165f9081526001602052604090205490565b5f806109775f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109dd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a02919061183d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7b91906116b5565b506016805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610af75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610576565b6001600160a01b038216610b585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610576565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c1c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610576565b6001600160a01b038216610c7e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610576565b5f8111610cdf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610576565b5f80546001600160a01b03858116911614801590610d0a57505f546001600160a01b03848116911614155b1561104a57610d2c6064610d26610d1f61136a565b85906113a7565b9061142c565b60055490915060ff1615610e12576015546001600160a01b03848116911614801590610d6657506016546001600160a01b03848116911614155b15610e1257325f908152600460205260409020544311610e005760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610576565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610e3d57506015546001600160a01b03848116911614155b8015610e6157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f5d57601154821115610eb85760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610576565b60125482610eda856001600160a01b03165f9081526001602052604090205490565b610ee49190611868565b1115610f325760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610576565b60108054905f610f418361187b565b9190505550600f546010541115610f5d576005805460ff191690555b6016546001600160a01b038481169116148015610f8357506001600160a01b0384163014155b15610f9b57610f986064610d26610d1f61146d565b90505b305f90815260016020526040902054601654600160a81b900460ff16158015610fd157506016546001600160a01b038581169116145b8015610fe65750601654600160b01b900460ff165b8015610ff3575060135481115b15611048575f4790506110196110148561100f856014546114a3565b6114a3565b6111bf565b5f6110346064610d26605061102e47876114b7565b906113a7565b90508015611045576110458161132f565b50505b505b80156110c257305f9081526001602052604090205461106990826114f8565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110e490836114b7565b6001600160a01b0385165f9081526001602052604090205561112761110983836114b7565b6001600160a01b0385165f90815260016020526040902054906114f8565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61117085856114b7565b60405190815260200160405180910390a350505050565b5f81848411156111aa5760405162461bcd60e51b815260040161057691906115b4565b505f6111b68486611893565b95945050505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611205576112056118a6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112809190611822565b81600181518110611293576112936118a6565b6001600160a01b0392831660209182029290920101526015546112b99130911684610a95565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f19085905f908690309042906004016118ba565b5f604051808303815f87803b158015611308575f80fd5b505af115801561131a573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104a9573d5f803e3d5ffd5b5f6008546010541161137d575060065490565b6008546010541180156113945750600c5460105411155b156113a05750600a5490565b50600d5490565b5f825f036113b657505f6104bd565b5f6113c183856117d6565b9050826113ce8583611929565b146114255760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610576565b9392505050565b5f61142583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611556565b5f60085460105411611480575060075490565b6009546010541180156114975750600c5460105411155b156113a05750600b5490565b5f8183116114b15782611425565b50919050565b5f61142583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611187565b5f806115048385611868565b9050838110156114255760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610576565b5f81836115765760405162461bcd60e51b815260040161057691906115b4565b505f6111b68486611929565b6001600160a01b0381168114611596575f80fd5b50565b5f602082840312156115a9575f80fd5b813561142581611582565b5f6020808352835180828501525f5b818110156115df578581018301518582016040015282016115c3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611610575f80fd5b823561161b81611582565b946020939093013593505050565b5f805f6060848603121561163b575f80fd5b833561164681611582565b9250602084013561165681611582565b929592945050506040919091013590565b5f8060408385031215611678575f80fd5b823561168381611582565b9150602083013561169381611582565b809150509250929050565b5f602082840312156116ae575f80fd5b5051919050565b5f602082840312156116c5575f80fd5b81518015158114611425575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561172257815f1904821115611708576117086116d4565b8085161561171557918102915b93841c93908002906116ed565b509250929050565b5f82611738575060016104bd565b8161174457505f6104bd565b816001811461175a576002811461176457611780565b60019150506104bd565b60ff841115611775576117756116d4565b50506001821b6104bd565b5060208310610133831016604e8410600b84101617156117a3575081810a6104bd565b6117ad83836116e8565b805f19048211156117c0576117c06116d4565b029392505050565b5f61142560ff84168361172a565b80820281158282048414176104bd576104bd6116d4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611832575f80fd5b815161142581611582565b5f805f6060848603121561184f575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104bd576104bd6116d4565b5f6001820161188c5761188c6116d4565b5060010190565b818103818111156104bd576104bd6116d4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119085784516001600160a01b0316835293830193918301916001016118e3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261194357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b79dd8a721a0c4d56d5848fc864a5fd9ff853e3bbabda1fd5449feaf8ef0154064736f6c63430008150033

Deployed Bytecode

0x60806040526004361061011d575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb1461031c578063bf474bed1461033b578063c876d0b914610350578063c9567bf914610369578063dd62ed3e1461037d575f80fd5b80637d1db4a51461028b5780638da5cb5b146102a05780638f9a55c0146102c657806395d89b41146102db578063a1780c1814610308575f80fd5b806323b872dd116100e357806323b872dd146101f5578063313ce5671461021457806370a082311461022f578063715018a614610263578063751039fc14610277575f80fd5b8062ae3bf81461012857806306fdde0314610149578063095ea7b31461018f5780630faee56f146101be57806318160ddd146101e1575f80fd5b3661012457005b5f80fd5b348015610133575f80fd5b50610147610142366004611599565b6103c1565b005b348015610154575f80fd5b5060408051808201909152600c81526b466c6f6b692056205065706560a01b60208201525b60405161018691906115b4565b60405180910390f35b34801561019a575f80fd5b506101ae6101a93660046115ff565b6104ad565b6040519015158152602001610186565b3480156101c9575f80fd5b506101d360145481565b604051908152602001610186565b3480156101ec575f80fd5b506101d36104c3565b348015610200575f80fd5b506101ae61020f366004611629565b6104e6565b34801561021f575f80fd5b5060405160098152602001610186565b34801561023a575f80fd5b506101d3610249366004611599565b6001600160a01b03165f9081526001602052604090205490565b34801561026e575f80fd5b5061014761054d565b348015610282575f80fd5b506101476105c7565b348015610296575f80fd5b506101d360115481565b3480156102ab575f80fd5b505f546040516001600160a01b039091168152602001610186565b3480156102d1575f80fd5b506101d360125481565b3480156102e6575f80fd5b50604080518082019091526005815264464c4f504560d81b6020820152610179565b348015610313575f80fd5b5061014761068b565b348015610327575f80fd5b506101ae6103363660046115ff565b6106dd565b348015610346575f80fd5b506101d360135481565b34801561035b575f80fd5b506005546101ae9060ff1681565b348015610374575f80fd5b506101476106e9565b348015610388575f80fd5b506101d3610397366004611667565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6005546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb926101009091049091169083906370a0823190602401602060405180830381865afa158015610419573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043d919061169e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a991906116b5565b5050565b5f6104b9338484610a95565b5060015b92915050565b5f6104d06009600a6117c8565b6104e19066017e9d8602b4006117d6565b905090565b5f6104f2848484610bb8565b610543843361053e85604051806060016040528060288152602001611949602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611187565b610a95565b5060019392505050565b5f546001600160a01b0316331461057f5760405162461bcd60e51b8152600401610576906117ed565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105f05760405162461bcd60e51b8152600401610576906117ed565b6105fc6009600a6117c8565b61060d9066017e9d8602b4006117d6565b60115561061c6009600a6117c8565b61062d9066017e9d8602b4006117d6565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106676009600a6117c8565b6106789066017e9d8602b4006117d6565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b0316146106af575f80fd5b305f9081526001602052604090205480156106cd576106cd816111bf565b4780156104a9576104a98161132f565b5f6104b9338484610bb8565b5f546001600160a01b031633146107125760405162461bcd60e51b8152600401610576906117ed565b601654600160a01b900460ff161561076c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610576565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b89030906107a76009600a6117c8565b61053e9066017e9d8602b4006117d6565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610808573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082c9190611822565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108af9190611822565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091d9190611822565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d7194730610964816001600160a01b03165f9081526001602052604090205490565b5f806109775f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109dd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a02919061183d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7b91906116b5565b506016805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610af75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610576565b6001600160a01b038216610b585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610576565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c1c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610576565b6001600160a01b038216610c7e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610576565b5f8111610cdf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610576565b5f80546001600160a01b03858116911614801590610d0a57505f546001600160a01b03848116911614155b1561104a57610d2c6064610d26610d1f61136a565b85906113a7565b9061142c565b60055490915060ff1615610e12576015546001600160a01b03848116911614801590610d6657506016546001600160a01b03848116911614155b15610e1257325f908152600460205260409020544311610e005760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610576565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610e3d57506015546001600160a01b03848116911614155b8015610e6157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f5d57601154821115610eb85760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610576565b60125482610eda856001600160a01b03165f9081526001602052604090205490565b610ee49190611868565b1115610f325760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610576565b60108054905f610f418361187b565b9190505550600f546010541115610f5d576005805460ff191690555b6016546001600160a01b038481169116148015610f8357506001600160a01b0384163014155b15610f9b57610f986064610d26610d1f61146d565b90505b305f90815260016020526040902054601654600160a81b900460ff16158015610fd157506016546001600160a01b038581169116145b8015610fe65750601654600160b01b900460ff165b8015610ff3575060135481115b15611048575f4790506110196110148561100f856014546114a3565b6114a3565b6111bf565b5f6110346064610d26605061102e47876114b7565b906113a7565b90508015611045576110458161132f565b50505b505b80156110c257305f9081526001602052604090205461106990826114f8565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110e490836114b7565b6001600160a01b0385165f9081526001602052604090205561112761110983836114b7565b6001600160a01b0385165f90815260016020526040902054906114f8565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61117085856114b7565b60405190815260200160405180910390a350505050565b5f81848411156111aa5760405162461bcd60e51b815260040161057691906115b4565b505f6111b68486611893565b95945050505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611205576112056118a6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112809190611822565b81600181518110611293576112936118a6565b6001600160a01b0392831660209182029290920101526015546112b99130911684610a95565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f19085905f908690309042906004016118ba565b5f604051808303815f87803b158015611308575f80fd5b505af115801561131a573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104a9573d5f803e3d5ffd5b5f6008546010541161137d575060065490565b6008546010541180156113945750600c5460105411155b156113a05750600a5490565b50600d5490565b5f825f036113b657505f6104bd565b5f6113c183856117d6565b9050826113ce8583611929565b146114255760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610576565b9392505050565b5f61142583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611556565b5f60085460105411611480575060075490565b6009546010541180156114975750600c5460105411155b156113a05750600b5490565b5f8183116114b15782611425565b50919050565b5f61142583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611187565b5f806115048385611868565b9050838110156114255760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610576565b5f81836115765760405162461bcd60e51b815260040161057691906115b4565b505f6111b68486611929565b6001600160a01b0381168114611596575f80fd5b50565b5f602082840312156115a9575f80fd5b813561142581611582565b5f6020808352835180828501525f5b818110156115df578581018301518582016040015282016115c3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611610575f80fd5b823561161b81611582565b946020939093013593505050565b5f805f6060848603121561163b575f80fd5b833561164681611582565b9250602084013561165681611582565b929592945050506040919091013590565b5f8060408385031215611678575f80fd5b823561168381611582565b9150602083013561169381611582565b809150509250929050565b5f602082840312156116ae575f80fd5b5051919050565b5f602082840312156116c5575f80fd5b81518015158114611425575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561172257815f1904821115611708576117086116d4565b8085161561171557918102915b93841c93908002906116ed565b509250929050565b5f82611738575060016104bd565b8161174457505f6104bd565b816001811461175a576002811461176457611780565b60019150506104bd565b60ff841115611775576117756116d4565b50506001821b6104bd565b5060208310610133831016604e8410600b84101617156117a3575081810a6104bd565b6117ad83836116e8565b805f19048211156117c0576117c06116d4565b029392505050565b5f61142560ff84168361172a565b80820281158282048414176104bd576104bd6116d4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611832575f80fd5b815161142581611582565b5f805f6060848603121561184f575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104bd576104bd6116d4565b5f6001820161188c5761188c6116d4565b5060010190565b818103818111156104bd576104bd6116d4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119085784516001600160a01b0316835293830193918301916001016118e3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261194357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b79dd8a721a0c4d56d5848fc864a5fd9ff853e3bbabda1fd5449feaf8ef0154064736f6c63430008150033

Deployed Bytecode Sourcemap

4065:8913:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12832:139;;;;;;;;;;-1:-1:-1;12832:139:0;;;;;:::i;:::-;;:::i;:::-;;6111:83;;;;;;;;;;-1:-1:-1;6181:5:0;;;;;;;;;;;;-1:-1:-1;;;6181:5:0;;;;6111:83;;;;;;;:::i;:::-;;;;;;;;6944:161;;;;;;;;;;-1:-1:-1;6944:161:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;6944:161:0;1275:187:1;5392:46:0;;;;;;;;;;;;;;;;;;;1613:25:1;;;1601:2;1586:18;5392:46:0;1467:177:1;6388:95:0;;;;;;;;;;;;;:::i;7113:313::-;;;;;;;;;;-1:-1:-1;7113:313:0;;;;;:::i;:::-;;:::i;6297:83::-;;;;;;;;;;-1:-1:-1;6297:83:0;;5019:1;2252:36:1;;2240:2;2225:18;6297:83:0;2110:184:1;6491:119:0;;;;;;;;;;-1:-1:-1;6491:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6584:18:0;6557:7;6584:18;;;:9;:18;;;;;;;6491:119;3146:148;;;;;;;;;;;;;:::i;11452:196::-;;;;;;;;;;;;;:::i;5217:48::-;;;;;;;;;;;;;;;;2932:79;;;;;;;;;;-1:-1:-1;2970:7:0;2997:6;2932:79;;-1:-1:-1;;;;;2997:6:0;;;2445:51:1;;2433:2;2418:18;2932:79:0;2299:203:1;5275:50:0;;;;;;;;;;;;;;;;6202:87;;;;;;;;;;-1:-1:-1;6274:7:0;;;;;;;;;;;;-1:-1:-1;;;6274:7:0;;;;6202:87;;12472:348;;;;;;;;;;;;;:::i;6618:167::-;;;;;;;;;;-1:-1:-1;6618:167:0;;;;;:::i;:::-;;:::i;5332:53::-;;;;;;;;;;;;;;;;4407:39;;;;;;;;;;-1:-1:-1;4407:39:0;;;;;;;;11756:671;;;;;;;;;;;;;:::i;6793:143::-;;;;;;;;;;-1:-1:-1;6793:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6901:18:0;;;6874:7;6901:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6793:143;12832:139;12912:10;;12924:38;;-1:-1:-1;;;12924:38:0;;12956:4;12924:38;;;2445:51:1;-1:-1:-1;;;;;12889:22:0;;;;;;12912:10;;;;;;;;12889:22;;12924:23;;2418:18:1;;12924:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12889:74;;-1:-1:-1;;;;;;12889:74:0;;;;;;;-1:-1:-1;;;;;3289:32:1;;;12889:74:0;;;3271:51:1;3338:18;;;3331:34;3244:18;;12889:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12832:139;:::o;6944:161::-;7019:4;7036:39;767:10;7059:7;7068:6;7036:8;:39::i;:::-;-1:-1:-1;7093:4:0;6944:161;;;;;:::o;6388:95::-;6441:7;5080:13;5019:1;5080:2;:13;:::i;:::-;5062:31;;:15;:31;:::i;:::-;6461:14;;6388:95;:::o;7113:313::-;7211:4;7228:36;7238:6;7246:9;7257:6;7228:9;:36::i;:::-;7275:121;7284:6;767:10;7306:89;7344:6;7306:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7306:19:0;;;;;;:11;:19;;;;;;;;767:10;7306:33;;;;;;;;;;:37;:89::i;:::-;7275:8;:121::i;:::-;-1:-1:-1;7414:4:0;7113:313;;;;;:::o;3146:148::-;3059:6;;-1:-1:-1;;;;;3059:6:0;767:10;3059:22;3051:67;;;;-1:-1:-1;;;3051:67:0;;;;;;;:::i;:::-;;;;;;;;;3253:1:::1;3237:6:::0;;3216:40:::1;::::0;-1:-1:-1;;;;;3237:6:0;;::::1;::::0;3216:40:::1;::::0;3253:1;;3216:40:::1;3284:1;3267:19:::0;;-1:-1:-1;;;;;;3267:19:0::1;::::0;;3146:148::o;11452:196::-;3059:6;;-1:-1:-1;;;;;3059:6:0;767:10;3059:22;3051:67;;;;-1:-1:-1;;;3051:67:0;;;;;;;:::i;:::-;5080:13:::1;5019:1;5080:2;:13;:::i;:::-;5062:31;::::0;:15:::1;:31;:::i;:::-;11505:12;:22:::0;5080:13:::1;5019:1;5080:2;:13;:::i;:::-;5062:31;::::0;:15:::1;:31;:::i;:::-;11538:14;:22:::0;11571:20:::1;:26:::0;;-1:-1:-1;;11571:26:0::1;::::0;;11613:27:::1;5080:13;5019:1;5080:2;:13;:::i;:::-;5062:31;::::0;:15:::1;:31;:::i;:::-;11613:27;::::0;1613:25:1;;;1601:2;1586:18;11613:27:0::1;;;;;;;11452:196::o:0;12472:348::-;12536:10;;;;;-1:-1:-1;;;;;12536:10:0;767;-1:-1:-1;;;;;12522:24:0;;12514:33;;;;;;12597:4;12558:20;6584:18;;;:9;:18;;;;;;12617:14;;12614:73;;12645:30;12662:12;12645:16;:30::i;:::-;12716:21;12751:12;;12748:65;;12777:24;12790:10;12777:12;:24::i;6618:167::-;6696:4;6713:42;767:10;6737:9;6748:6;6713:9;:42::i;11756:671::-;3059:6;;-1:-1:-1;;;;;3059:6:0;767:10;3059:22;3051:67;;;;-1:-1:-1;;;3051:67:0;;;;;;;:::i;:::-;11820:11:::1;::::0;-1:-1:-1;;;11820:11:0;::::1;;;11819:12;11811:47;;;::::0;-1:-1:-1;;;11811:47:0;;5909:2:1;11811:47:0::1;::::0;::::1;5891:21:1::0;5948:2;5928:18;;;5921:30;5987:25;5967:18;;;5960:53;6030:18;;11811:47:0::1;5707:347:1::0;11811:47:0::1;11869:15;:80:::0;;-1:-1:-1;;;;;;11869:80:0::1;11906:42;11869:80:::0;;::::1;::::0;;;11960:58:::1;::::0;11977:4:::1;::::0;5080:13:::1;5019:1;5080:2;:13;:::i;:::-;5062:31;::::0;:15:::1;:31;:::i;11960:58::-;12063:15;;;;;;;;;-1:-1:-1::0;;;;;12063:15:0::1;-1:-1:-1::0;;;;;12063:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12045:55:0::1;;12109:4;12116:15;;;;;;;;;-1:-1:-1::0;;;;;12116:15:0::1;-1:-1:-1::0;;;;;12116:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12045:94;::::0;-1:-1:-1;;;;;;12045:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6545:15:1;;;12045:94:0::1;::::0;::::1;6527:34:1::0;6597:15;;6577:18;;;6570:43;6462:18;;12045:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12029:13;:110:::0;;-1:-1:-1;;;;;12029:110:0;;::::1;-1:-1:-1::0;;;;;;12029:110:0;;::::1;;::::0;;12150:15:::1;::::0;::::1;:31;12189:21;12220:4;12226:24;12220:4:::0;-1:-1:-1;;;;;6584:18:0;6557:7;6584:18;;;:9;:18;;;;;;;6491:119;12226:24:::1;12251:1;12253::::0;12255:7:::1;2970::::0;2997:6;-1:-1:-1;;;;;2997:6:0;;2932:79;12255:7:::1;12150:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12150:129:0;;;-1:-1:-1;;;;;6983:15:1;;;12150:129:0::1;::::0;::::1;6965:34:1::0;7015:18;;;7008:34;;;;7058:18;;;7051:34;;;;7101:18;;;7094:34;7165:15;;;7144:19;;;7137:44;12263:15:0::1;7197:19:1::0;;;7190:35;6899:19;;12150:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12297:13:0::1;::::0;12328:15:::1;::::0;12290:71:::1;::::0;-1:-1:-1;;;12290:71:0;;-1:-1:-1;;;;;12328:15:0;;::::1;12290:71;::::0;::::1;3271:51:1::0;-1:-1:-1;;3338:18:1;;;3331:34;12297:13:0;::::1;::::0;-1:-1:-1;12290:29:0::1;::::0;3244:18:1;;12290:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12372:11:0::1;:18:::0;;-1:-1:-1;;;;12401:18:0;-1:-1:-1;;;12401:18:0;;;11756:671::o;7434:335::-;-1:-1:-1;;;;;7527:19:0;;7519:68;;;;-1:-1:-1;;;7519:68:0;;8028:2:1;7519:68:0;;;8010:21:1;8067:2;8047:18;;;8040:30;8106:34;8086:18;;;8079:62;-1:-1:-1;;;8157:18:1;;;8150:34;8201:19;;7519:68:0;7826:400:1;7519:68:0;-1:-1:-1;;;;;7606:21:0;;7598:68;;;;-1:-1:-1;;;7598:68:0;;8433:2:1;7598:68:0;;;8415:21:1;8472:2;8452:18;;;8445:30;8511:34;8491:18;;;8484:62;-1:-1:-1;;;8562:18:1;;;8555:32;8604:19;;7598:68:0;8231:398:1;7598:68:0;-1:-1:-1;;;;;7677:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7729:32;;1613:25:1;;;7729:32:0;;1586:18:1;7729:32:0;;;;;;;7434:335;;;:::o;7777:2430::-;-1:-1:-1;;;;;7865:18:0;;7857:68;;;;-1:-1:-1;;;7857:68:0;;8836:2:1;7857:68:0;;;8818:21:1;8875:2;8855:18;;;8848:30;8914:34;8894:18;;;8887:62;-1:-1:-1;;;8965:18:1;;;8958:35;9010:19;;7857:68:0;8634:401:1;7857:68:0;-1:-1:-1;;;;;7944:16:0;;7936:64;;;;-1:-1:-1;;;7936:64:0;;9242:2:1;7936:64:0;;;9224:21:1;9281:2;9261:18;;;9254:30;9320:34;9300:18;;;9293:62;-1:-1:-1;;;9371:18:1;;;9364:33;9414:19;;7936:64:0;9040:399:1;7936:64:0;8028:1;8019:6;:10;8011:64;;;;-1:-1:-1;;;8011:64:0;;9646:2:1;8011:64:0;;;9628:21:1;9685:2;9665:18;;;9658:30;9724:34;9704:18;;;9697:62;-1:-1:-1;;;9775:18:1;;;9768:39;9824:19;;8011:64:0;9444:405:1;8011:64:0;8086:17;2997:6;;-1:-1:-1;;;;;8120:15:0;;;2997:6;;8120:15;;;;:32;;-1:-1:-1;2970:7:0;2997:6;-1:-1:-1;;;;;8139:13:0;;;2997:6;;8139:13;;8120:32;8116:1735;;;8181:30;8207:3;8181:21;8192:9;:7;:9::i;:::-;8181:6;;:10;:21::i;:::-;:25;;:30::i;:::-;8232:20;;8169:42;;-1:-1:-1;8232:20:0;;8228:462;;;8291:15;;-1:-1:-1;;;;;8277:30:0;;;8291:15;;8277:30;;;;:62;;-1:-1:-1;8325:13:0;;-1:-1:-1;;;;;8311:28:0;;;8325:13;;8311:28;;8277:62;8273:402;;;8428:9;8399:39;;;;:28;:39;;;;;;8441:12;-1:-1:-1;8365:213:0;;;;-1:-1:-1;;;8365:213:0;;10056:2:1;8365:213:0;;;10038:21:1;10095:2;10075:18;;;10068:30;10134:34;10114:18;;;10107:62;10205:34;10185:18;;;10178:62;-1:-1:-1;;;10256:19:1;;;10249:40;10306:19;;8365:213:0;9854:477:1;8365:213:0;8630:9;8601:39;;;;:28;:39;;;;;8643:12;8601:54;;8273:402;8718:13;;-1:-1:-1;;;;;8710:21:0;;;8718:13;;8710:21;:55;;;;-1:-1:-1;8749:15:0;;-1:-1:-1;;;;;8735:30:0;;;8749:15;;8735:30;;8710:55;:83;;;;-1:-1:-1;;;;;;8771:22:0;;;;;;:18;:22;;;;;;;;8769:24;8710:83;8706:438;;;8833:12;;8823:6;:22;;8815:60;;;;-1:-1:-1;;;8815:60:0;;10538:2:1;8815:60:0;;;10520:21:1;10577:2;10557:18;;;10550:30;10616:27;10596:18;;;10589:55;10661:18;;8815:60:0;10336:349:1;8815:60:0;8928:14;;8918:6;8902:13;8912:2;-1:-1:-1;;;;;6584:18:0;6557:7;6584:18;;;:9;:18;;;;;;;6491:119;8902:13;:22;;;;:::i;:::-;:40;;8894:79;;;;-1:-1:-1;;;8894:79:0;;11022:2:1;8894:79:0;;;11004:21:1;11061:2;11041:18;;;11034:30;11100:28;11080:18;;;11073:56;11146:18;;8894:79:0;10820:350:1;8894:79:0;8992:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9038:18;;9026:9;;:30;9022:107;;;9081:20;:28;;-1:-1:-1;;9081:28:0;;;9022:107;9169:13;;-1:-1:-1;;;;;9163:19:0;;;9169:13;;9163:19;:43;;;;-1:-1:-1;;;;;;9186:20:0;;9201:4;9186:20;;9163:43;9160:126;;;9239:31;9266:3;9239:22;9250:10;:8;:10::i;9239:31::-;9227:43;;9160:126;9351:4;9302:28;6584:18;;;:9;:18;;;;;;9377:6;;-1:-1:-1;;;9377:6:0;;;;9376:7;:30;;;;-1:-1:-1;9393:13:0;;-1:-1:-1;;;;;9387:19:0;;;9393:13;;9387:19;9376:30;:45;;;;-1:-1:-1;9410:11:0;;-1:-1:-1;;;9410:11:0;;;;9376:45;:89;;;;;9448:17;;9425:20;:40;9376:89;9372:468;;;9486:18;9507:21;9486:42;;9547:67;9564:49;9568:6;9575:37;9579:20;9600:11;;9575:3;:37::i;:::-;9564:3;:49::i;:::-;9547:16;:67::i;:::-;9633:22;9658:54;9708:3;9658:45;9700:2;9658:37;:21;9684:10;9658:25;:37::i;:::-;:41;;:45::i;:54::-;9633:79;-1:-1:-1;9734:18:0;;9731:94;;9777:28;9790:14;9777:12;:28::i;:::-;9467:373;;9372:468;8154:1697;8116:1735;9866:11;;9863:161;;9934:4;9916:24;;;;:9;:24;;;;;;:39;;9945:9;9916:28;:39::i;:::-;9909:4;9891:24;;;;:9;:24;;;;;;;:64;;;;9973:39;;-1:-1:-1;;;;;9973:39:0;;;;;;;10002:9;1613:25:1;;1601:2;1586:18;;1467:177;9973:39:0;;;;;;;;9863:161;-1:-1:-1;;;;;10050:15:0;;;;;;:9;:15;;;;;;:27;;10070:6;10050:19;:27::i;:::-;-1:-1:-1;;;;;10034:15:0;;;;;;:9;:15;;;;;:43;10102:40;10120:21;:6;10131:9;10120:10;:21::i;:::-;-1:-1:-1;;;;;10102:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10088:13:0;;;;;;;:9;:13;;;;;:54;;;;10158:41;;;10177:21;:6;10188:9;10177:10;:21::i;:::-;10158:41;;1613:25:1;;;1601:2;1586:18;10158:41:0;;;;;;;7846:2361;7777:2430;;;:::o;1824:190::-;1910:7;1946:12;1938:6;;;;1930:29;;;;-1:-1:-1;;;1930:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1970:9:0;1982:5;1986:1;1982;:5;:::i;:::-;1970:17;1824:190;-1:-1:-1;;;;;1824:190:0:o;10961:483::-;5720:6;:13;;-1:-1:-1;;;;5720:13:0;-1:-1:-1;;;5720:13:0;;;11063:16:::1;::::0;;11077:1:::1;11063:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11063:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11063:16:0::1;11039:40;;11108:4;11090;11095:1;11090:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11090:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11134:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11134:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11090:7;;11134:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11124:4;11129:1;11124:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11124:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11199:15:::1;::::0;11167:62:::1;::::0;11184:4:::1;::::0;11199:15:::1;11217:11:::0;11167:8:::1;:62::i;:::-;11240:15;::::0;:196:::1;::::0;-1:-1:-1;;;11240:196:0;;-1:-1:-1;;;;;11240:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11321:11;;11240:15:::1;::::0;11363:4;;11390::::1;::::0;11410:15:::1;::::0;11240:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5756:6:0;:14;;-1:-1:-1;;;;5756:14:0;;;-1:-1:-1;;;;10961:483:0:o;11656:92::-;11713:10;;:27;;:10;;;;-1:-1:-1;;;;;11713:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;10215:310;10256:7;10292:15;;10279:9;;:28;10276:80;;-1:-1:-1;10330:14:0;;;10215:310::o;10276:80::-;10381:15;;10369:9;;:27;:64;;;;;10413:20;;10400:9;;:33;;10369:64;10366:121;;;-1:-1:-1;10456:19:0;;;10215:310::o;10366:121::-;-1:-1:-1;10505:12:0;;;10215:310::o;2022:246::-;2080:7;2104:1;2109;2104:6;2100:47;;-1:-1:-1;2134:1:0;2127:8;;2100:47;2157:9;2169:5;2173:1;2169;:5;:::i;:::-;2157:17;-1:-1:-1;2202:1:0;2193:5;2197:1;2157:17;2193:5;:::i;:::-;:10;2185:56;;;;-1:-1:-1;;;2185:56:0;;13121:2:1;2185:56:0;;;13103:21:1;13160:2;13140:18;;;13133:30;13199:34;13179:18;;;13172:62;-1:-1:-1;;;13250:18:1;;;13243:31;13291:19;;2185:56:0;12919:397:1;2185:56:0;2259:1;2022:246;-1:-1:-1;;;2022:246:0:o;2276:132::-;2334:7;2361:39;2365:1;2368;2361:39;;;;;;;;;;;;;;;;;:3;:39::i;10533:314::-;10575:7;10611:15;;10598:9;;:28;10595:81;;-1:-1:-1;10649:15:0;;;10533:314::o;10595:81::-;10701:16;;10689:9;;:28;:65;;;;;10734:20;;10721:9;;:33;;10689:65;10686:123;;;-1:-1:-1;10777:20:0;;;10533:314::o;10855:98::-;10912:7;10939:1;10937;:3;10936:9;;10944:1;10936:9;;;-1:-1:-1;10942:1:0;10855:98;-1:-1:-1;10855:98:0:o;1680:136::-;1738:7;1765:43;1769:1;1772;1765:43;;;;;;;;;;;;;;;;;:3;:43::i;1493:179::-;1551:7;;1583:5;1587:1;1583;:5;:::i;:::-;1571:17;;1612:1;1607;:6;;1599:46;;;;-1:-1:-1;;;1599:46:0;;13523:2:1;1599:46:0;;;13505:21:1;13562:2;13542:18;;;13535:30;13601:29;13581:18;;;13574:57;13648:18;;1599:46:0;13321:351:1;2416:189:0;2502:7;2537:12;2530:5;2522:28;;;;-1:-1:-1;;;2522:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2561:9:0;2573:5;2577:1;2573;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;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:184::-;2970:6;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;-1:-1:-1;3062:16:1;;2900:184;-1:-1:-1;2900:184:1:o;3376:277::-;3443:6;3496:2;3484:9;3475:7;3471:23;3467:32;3464:52;;;3512:1;3509;3502:12;3464:52;3544:9;3538:16;3597:5;3590:13;3583:21;3576:5;3573:32;3563:60;;3619:1;3616;3609:12;3658:127;3719:10;3714:3;3710:20;3707:1;3700:31;3750:4;3747:1;3740:15;3774:4;3771:1;3764:15;3790:422;3879:1;3922:5;3879:1;3936:270;3957:7;3947:8;3944:21;3936:270;;;4016:4;4012:1;4008:6;4004:17;3998:4;3995:27;3992:53;;;4025:18;;:::i;:::-;4075:7;4065:8;4061:22;4058:55;;;4095:16;;;;4058:55;4174:22;;;;4134:15;;;;3936:270;;;3940:3;3790:422;;;;;:::o;4217:806::-;4266:5;4296:8;4286:80;;-1:-1:-1;4337:1:1;4351:5;;4286:80;4385:4;4375:76;;-1:-1:-1;4422:1:1;4436:5;;4375:76;4467:4;4485:1;4480:59;;;;4553:1;4548:130;;;;4460:218;;4480:59;4510:1;4501:10;;4524:5;;;4548:130;4585:3;4575:8;4572:17;4569:43;;;4592:18;;:::i;:::-;-1:-1:-1;;4648:1:1;4634:16;;4663:5;;4460:218;;4762:2;4752:8;4749:16;4743:3;4737:4;4734:13;4730:36;4724:2;4714:8;4711:16;4706:2;4700:4;4697:12;4693:35;4690:77;4687:159;;;-1:-1:-1;4799:19:1;;;4831:5;;4687:159;4878:34;4903:8;4897:4;4878:34;:::i;:::-;4948:6;4944:1;4940:6;4936:19;4927:7;4924:32;4921:58;;;4959:18;;:::i;:::-;4997:20;;4217:806;-1:-1:-1;;;4217:806:1:o;5028:140::-;5086:5;5115:47;5156:4;5146:8;5142:19;5136:4;5115:47;:::i;5173:168::-;5246:9;;;5277;;5294:15;;;5288:22;;5274:37;5264:71;;5315:18;;:::i;5346:356::-;5548:2;5530:21;;;5567:18;;;5560:30;5626:34;5621:2;5606:18;;5599:62;5693:2;5678:18;;5346:356::o;6059:251::-;6129:6;6182:2;6170:9;6161:7;6157:23;6153:32;6150:52;;;6198:1;6195;6188:12;6150:52;6230:9;6224:16;6249:31;6274:5;6249:31;:::i;7236:306::-;7324:6;7332;7340;7393:2;7381:9;7372:7;7368:23;7364:32;7361:52;;;7409:1;7406;7399:12;7361:52;7438:9;7432:16;7422:26;;7488:2;7477:9;7473:18;7467:25;7457:35;;7532:2;7521:9;7517:18;7511:25;7501:35;;7236:306;;;;;:::o;10690:125::-;10755:9;;;10776:10;;;10773:36;;;10789:18;;:::i;11175:135::-;11214:3;11235:17;;;11232:43;;11255:18;;:::i;:::-;-1:-1:-1;11302:1:1;11291:13;;11175:135::o;11315:128::-;11382:9;;;11403:11;;;11400:37;;;11417:18;;:::i;11580:127::-;11641:10;11636:3;11632:20;11629:1;11622:31;11672:4;11669:1;11662:15;11696:4;11693:1;11686:15;11712:980;11974:4;12022:3;12011:9;12007:19;12053:6;12042:9;12035:25;12079:2;12117:6;12112:2;12101:9;12097:18;12090:34;12160:3;12155:2;12144:9;12140:18;12133:31;12184:6;12219;12213:13;12250:6;12242;12235:22;12288:3;12277:9;12273:19;12266:26;;12327:2;12319:6;12315:15;12301:29;;12348:1;12358:195;12372:6;12369:1;12366:13;12358:195;;;12437:13;;-1:-1:-1;;;;;12433:39:1;12421:52;;12528:15;;;;12493:12;;;;12469:1;12387:9;12358:195;;;-1:-1:-1;;;;;;;12609:32:1;;;;12604:2;12589:18;;12582:60;-1:-1:-1;;;12673:3:1;12658:19;12651:35;12570:3;11712:980;-1:-1:-1;;;11712:980:1:o;12697:217::-;12737:1;12763;12753:132;;12807:10;12802:3;12798:20;12795:1;12788:31;12842:4;12839:1;12832:15;12870:4;12867:1;12860:15;12753:132;-1:-1:-1;12899:9:1;;12697:217::o

Swarm Source

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