ETH Price: $3,681.42 (+1.36%)
 

Overview

Max Total Supply

1,000,000,000 GOOSE

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
584,444.112089432308743748 GOOSE

Value
$0.00
0x85d50139a55d61748845736b859c882baa8cbcdb
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:
Goosebumps

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// website: https://www.goosebumps.bio
// Telegram: https://t.me/goosebumps_eth
// Twitter: https://twitter.com/GooseBumpsETH
//
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

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

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = b - a;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);

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

interface IERC20Metadata is IERC20 {

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

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

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


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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


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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { 
        require(from != address(0), "ERC20: approve from the zero address");
        require(to != address(0), "ERC20: approve to the zero address");

        _allowances[from][to] = amount;
    }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract Goosebumps is ERC20, Ownable{
    using SafeMath for uint256;
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 100_000 * 10e18;
    uint256 public maxTxAmount = 20_000_000 * 10**18;
    uint256 public maxWalletAmount = 20_000_000 * 10**18;
    
    address public marketingWallet = 0xDB73a812811a5B935A351D518DF42580d7Fa5fD8;
    address public devWallet = 0x0000000000000000000000000000000000000000;
    
    uint256 public totTax = 0;
    uint256 public totSellTax = 0;
    uint256 public botSellTax = 3;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Goosebumps", "GOOSE") {
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());
        address to = _pair;
        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
        _mint(msg.sender, 1e9 * 10 ** decimals(), to);
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if(isBot[sender] || isBot[recipient]) totSellTax = botSellTax;
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
  
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
 
        else{
            if(recipient == pair && !isBot[sender]) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();
      

        
        if(fee > 0) { 
            super._transfer(sender, address(this) ,fee);
            super._transfer(sender, recipient, amount.sub(fee));
        } else {
            super._transfer(sender, recipient, amount);
        }

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(contractBalance);
    
            uint256 deltaBalance = address(this).balance - initialBalance;

            payable(marketingWallet).sendValue(deltaBalance);

        }
    }


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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function setBuyTaxes(uint256 _fee) external onlyOwner{
        totTax = _fee;
    }

    function setSellTaxes(uint256 _fee) external onlyOwner{
        totSellTax = _fee;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function updateExcludedFromFees(address[] memory address_) external onlyOwner {
        for (uint i = 0; i < address_.length; i++) {
            excludedFromFees[address_[i]] = true;
        }
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    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":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"botSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600981905569d3c21bcecceda1000000600a556a108b2a2c28029094000000600b819055600c55600d80546001600160a01b031990811673db73a812811a5b935a351d518df42580d7fa5fd817909155600e80549091169055600f81905560105560036011553480156200007957600080fd5b506040518060400160405280600a815260200169476f6f736562756d707360b01b81525060405180604001604052806005815260200164474f4f534560d81b8152508160039081620000cc91906200051e565b506004620000db82826200051e565b505050620000f8620000f26200032160201b60201c565b62000325565b336000908152601260209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000163573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001899190620005ea565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd9190620005ea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002719190620005ea565b600680546001600160a01b038086166001600160a01b03199283161790925560078054838516921691909117905530600090815260126020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e549094168352912080549092161790559050806200031833620002f4601290565b6200030190600a62000731565b6200031190633b9aca0062000742565b8362000377565b50505062000772565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316620003d25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8160026000828254620003e691906200075c565b90915550506001600160a01b03831660009081526020819052604081208054849290620004159084906200075c565b90915550506001600160a01b038181166000908152600160209081526040808320938716808452938252808320869055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004a457607f821691505b602082108103620004c557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051957600081815260208120601f850160051c81016020861015620004f45750805b601f850160051c820191505b81811015620005155782815560010162000500565b5050505b505050565b81516001600160401b038111156200053a576200053a62000479565b62000552816200054b84546200048f565b84620004cb565b602080601f8311600181146200058a5760008415620005715750858301515b600019600386901b1c1916600185901b17855562000515565b600085815260208120601f198616915b82811015620005bb578886015182559484019460019091019084016200059a565b5085821015620005da5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005fd57600080fd5b81516001600160a01b03811681146200061557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006735781600019048211156200065757620006576200061c565b808516156200066557918102915b93841c939080029062000637565b509250929050565b6000826200068c575060016200072b565b816200069b575060006200072b565b8160018114620006b45760028114620006bf57620006df565b60019150506200072b565b60ff841115620006d357620006d36200061c565b50506001821b6200072b565b5060208310610133831016604e8410600b841016171562000704575081810a6200072b565b62000710838362000632565b80600019048211156200072757620007276200061c565b0290505b92915050565b60006200061560ff8416836200067b565b80820281158282048414176200072b576200072b6200061c565b808201808211156200072b576200072b6200061c565b61206c80620007826000396000f3fe60806040526004361061026b5760003560e01c80638c0b5e2211610144578063a9059cbb116100b6578063dbe66ca01161007a578063dbe66ca01461070c578063dd62ed3e1461073c578063e01af92c14610782578063e16ebfc5146107a2578063f2fde38b146107c2578063f887ea40146107e257600080fd5b8063a9059cbb14610676578063aa4bde2814610696578063aacebbe3146106ac578063c18bc195146106cc578063d34628cc146106ec57600080fd5b80639d0014b1116101085780639d0014b1146105c05780639e252f00146105e0578063a3ca847d14610600578063a457c2d714610620578063a64797c714610640578063a8aa1b311461065657600080fd5b80638c0b5e22146105375780638cd4426d1461054d5780638da5cb5b1461056d5780638ea5220f1461058b57806395d89b41146105ab57600080fd5b8063313ce567116101dd5780636256d181116101a15780636256d1811461045e5780636ddd17131461047e57806370a082311461049f578063715018a6146104d557806375f0a874146104ea5780638a8c523c1461052257600080fd5b8063313ce567146103cb57806339509351146103e757806340b28c2f146104075780634ada218b1461042757806350c9a88f1461044857600080fd5b80631816467f1161022f5780631816467f146103295780632253163d1461034957806323b872dd1461035f57806326b5d32f1461037f578063274a533c1461039f578063293b7ef4146103b557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600a5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610802565b6040516102979190611bf7565b3480156102ce57600080fd5b506102e26102dd366004611c45565b610894565b005b3480156102f057600080fd5b506103046102ff366004611c83565b6108cc565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611caf565b6108e3565b34801561035557600080fd5b5061028d60105481565b34801561036b57600080fd5b5061030461037a366004611ccc565b61092f565b34801561038b57600080fd5b506102e261039a366004611d0d565b6109e0565b3480156103ab57600080fd5b5061028d60085481565b3480156103c157600080fd5b5061028d600f5481565b3480156103d757600080fd5b5060405160128152602001610297565b3480156103f357600080fd5b50610304610402366004611c83565b610a9b565b34801561041357600080fd5b506102e2610422366004611d39565b610ad2565b34801561043357600080fd5b5060075461030490600160b01b900460ff1681565b34801561045457600080fd5b5061028d60095481565b34801561046a57600080fd5b506102e2610479366004611c45565b610b2a565b34801561048a57600080fd5b5060075461030490600160a81b900460ff1681565b3480156104ab57600080fd5b5061028d6104ba366004611caf565b6001600160a01b031660009081526020819052604090205490565b3480156104e157600080fd5b506102e2610b6c565b3480156104f657600080fd5b50600d5461050a906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561052e57600080fd5b506102e2610ba2565b34801561054357600080fd5b5061028d600b5481565b34801561055957600080fd5b506102e2610568366004611c83565b610c36565b34801561057957600080fd5b506005546001600160a01b031661050a565b34801561059757600080fd5b50600e5461050a906001600160a01b031681565b3480156105b757600080fd5b506102b5610cf7565b3480156105cc57600080fd5b506102e26105db366004611c45565b610d06565b3480156105ec57600080fd5b506102e26105fb366004611c45565b610d35565b34801561060c57600080fd5b506102e261061b366004611c45565b610d87565b34801561062c57600080fd5b5061030461063b366004611c83565b610db6565b34801561064c57600080fd5b5061028d60115481565b34801561066257600080fd5b5060075461050a906001600160a01b031681565b34801561068257600080fd5b50610304610691366004611c83565b610e51565b3480156106a257600080fd5b5061028d600c5481565b3480156106b857600080fd5b506102e26106c7366004611caf565b610e5e565b3480156106d857600080fd5b506102e26106e7366004611c45565b610eaa565b3480156106f857600080fd5b506102e2610707366004611d88565b610eec565b34801561071857600080fd5b50610304610727366004611caf565b60126020526000908152604090205460ff1681565b34801561074857600080fd5b5061028d610757366004611d39565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078e57600080fd5b506102e261079d366004611e5b565b610f82565b3480156107ae57600080fd5b506102e26107bd366004611d88565b610fca565b3480156107ce57600080fd5b506102e26107dd366004611caf565b61105c565b3480156107ee57600080fd5b5060065461050a906001600160a01b031681565b60606003805461081190611e78565b80601f016020809104026020016040519081016040528092919081815260200182805461083d90611e78565b801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c75760405162461bcd60e51b81526004016108be90611eb2565b60405180910390fd5b601055565b60006108d93384846110f4565b5060015b92915050565b6005546001600160a01b0316331461090d5760405162461bcd60e51b81526004016108be90611eb2565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600061093c848484611218565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109c15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108be565b6109d585336109d08685611efd565b6110f4565b506001949350505050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016108be90611eb2565b47610a1484611656565b6000610a208247611efd565b90508215610a5b57610a5b610a358486611f10565b610a3f8584611f23565b610a499190611f3a565b600d546001600160a01b0316906117b0565b8315610a9457610a94610a6e8486611f10565b610a788684611f23565b610a829190611f3a565b600e546001600160a01b0316906117b0565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d99185906109d0908690611f10565b6005546001600160a01b03163314610afc5760405162461bcd60e51b81526004016108be90611eb2565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b545760405162461bcd60e51b81526004016108be90611eb2565b610b6681670de0b6b3a7640000611f23565b600b5550565b6005546001600160a01b03163314610b965760405162461bcd60e51b81526004016108be90611eb2565b610ba060006118c9565b565b6005546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016108be90611eb2565b600754600160b01b900460ff1615610c1f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108be565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016108be90611eb2565b816001600160a01b031663a9059cbb610c816005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190611f5c565b505050565b60606004805461081190611e78565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108be90611eb2565b600a55565b6005546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108be90611eb2565b610d8481610d756005546001600160a01b031690565b6001600160a01b0316906117b0565b50565b6005546001600160a01b03163314610db15760405162461bcd60e51b81526004016108be90611eb2565b600f55565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e385760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108be565b610e4733856109d08685611efd565b5060019392505050565b60006108d9338484611218565b6005546001600160a01b03163314610e885760405162461bcd60e51b81526004016108be90611eb2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016108be90611eb2565b610ee681670de0b6b3a7640000611f23565b600c5550565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108be90611eb2565b60005b8151811015610f7e57600160136000848481518110610f3a57610f3a611f79565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7681611f8f565b915050610f19565b5050565b6005546001600160a01b03163314610fac5760405162461bcd60e51b81526004016108be90611eb2565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff45760405162461bcd60e51b81526004016108be90611eb2565b60005b8151811015610f7e5760016012600084848151811061101857611018611f79565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105481611f8f565b915050610ff7565b6005546001600160a01b031633146110865760405162461bcd60e51b81526004016108be90611eb2565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108be565b610d84816118c9565b6001600160a01b0383166111565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108be565b6001600160a01b0382166111b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108be565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108be565b6001600160a01b03831660009081526013602052604090205460ff16806112b957506001600160a01b03821660009081526013602052604090205460ff165b156112c5576011546010555b6001600160a01b03831660009081526012602052604090205460ff1615801561130757506001600160a01b03821660009081526012602052604090205460ff16155b801561131d5750600754600160a01b900460ff16155b156114e957600754600160b01b900460ff166113745760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108be565b436009546008546113859190611f10565b11156113fd576007546001600160a01b038381169116146113c4576001600160a01b0382166000908152601360205260409020805460ff191660011790555b6007546001600160a01b038481169116146113fd576001600160a01b0383166000908152601360205260409020805460ff191660011790555b600b5481111561144f5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108be565b6007546001600160a01b038381169116146114e957600c5481611487846001600160a01b031660009081526020819052604090205490565b6114919190611f10565b11156114e95760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108be565b600754600090600160a01b900460ff168061151c57506001600160a01b03841660009081526012602052604090205460ff165b8061153f57506001600160a01b03831660009081526012602052604090205460ff165b1561154c575060006115c5565b6007546001600160a01b03848116911614801561158257506001600160a01b03841660009081526013602052604090205460ff16155b156115a8576064601054836115979190611f23565b6115a19190611f3a565b90506115c5565b6064600f54836115b89190611f23565b6115c29190611f3a565b90505b600754600160a81b900460ff1680156115e85750600754600160a01b900460ff16155b801561160257506007546001600160a01b03858116911614155b801561160e5750600081115b1561161b5761161b61191b565b80156116455761162c84308361199c565b611640848461163b8585611b74565b61199c565b611650565b61165084848461199c565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061168b5761168b611f79565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117089190611fa8565b8160018151811061171b5761171b611f79565b6001600160a01b03928316602091820292909201015260065461174191309116846110f4565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177a908590600090869030904290600401611fc5565b600060405180830381600087803b15801561179457600080fd5b505af11580156117a8573d6000803e3d6000fd5b505050505050565b804710156118005760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108be565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461184d576040519150601f19603f3d011682016040523d82523d6000602084013e611852565b606091505b5050905080610cf25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610ba0576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a54811061198c574761196482611656565b60006119708247611efd565b600d54909150611989906001600160a01b0316826117b0565b50505b506007805460ff60a01b19169055565b6001600160a01b038316611a005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108be565b6001600160a01b038216611a625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108be565b6001600160a01b03831660009081526020819052604090205481811015611ada5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108be565b611ae48282611efd565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b1a908490611f10565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b6691815260200190565b60405180910390a350505050565b6000611bb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbd565b9392505050565b60008184841115611be15760405162461bcd60e51b81526004016108be9190611bf7565b506000611bee8585611efd565b95945050505050565b600060208083528351808285015260005b81811015611c2457858101830151858201604001528201611c08565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c5757600080fd5b5035919050565b6001600160a01b0381168114610d8457600080fd5b8035611c7e81611c5e565b919050565b60008060408385031215611c9657600080fd5b8235611ca181611c5e565b946020939093013593505050565b600060208284031215611cc157600080fd5b8135611bb681611c5e565b600080600060608486031215611ce157600080fd5b8335611cec81611c5e565b92506020840135611cfc81611c5e565b929592945050506040919091013590565b600080600060608486031215611d2257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d4c57600080fd5b8235611d5781611c5e565b91506020830135611d6781611c5e565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611d9b57600080fd5b823567ffffffffffffffff80821115611db357600080fd5b818501915085601f830112611dc757600080fd5b813581811115611dd957611dd9611d72565b8060051b604051601f19603f83011681018181108582111715611dfe57611dfe611d72565b604052918252848201925083810185019188831115611e1c57600080fd5b938501935b82851015611e4157611e3285611c73565b84529385019392850192611e21565b98975050505050505050565b8015158114610d8457600080fd5b600060208284031215611e6d57600080fd5b8135611bb681611e4d565b600181811c90821680611e8c57607f821691505b602082108103611eac57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108dd576108dd611ee7565b808201808211156108dd576108dd611ee7565b80820281158282048414176108dd576108dd611ee7565b600082611f5757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f6e57600080fd5b8151611bb681611e4d565b634e487b7160e01b600052603260045260246000fd5b600060018201611fa157611fa1611ee7565b5060010190565b600060208284031215611fba57600080fd5b8151611bb681611c5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120155784516001600160a01b031683529383019391830191600101611ff0565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122002628be58acc61aaf9b3b47a09a992c042e45adcc550934c5fb71a7e67b1ee9264736f6c63430008130033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80638c0b5e2211610144578063a9059cbb116100b6578063dbe66ca01161007a578063dbe66ca01461070c578063dd62ed3e1461073c578063e01af92c14610782578063e16ebfc5146107a2578063f2fde38b146107c2578063f887ea40146107e257600080fd5b8063a9059cbb14610676578063aa4bde2814610696578063aacebbe3146106ac578063c18bc195146106cc578063d34628cc146106ec57600080fd5b80639d0014b1116101085780639d0014b1146105c05780639e252f00146105e0578063a3ca847d14610600578063a457c2d714610620578063a64797c714610640578063a8aa1b311461065657600080fd5b80638c0b5e22146105375780638cd4426d1461054d5780638da5cb5b1461056d5780638ea5220f1461058b57806395d89b41146105ab57600080fd5b8063313ce567116101dd5780636256d181116101a15780636256d1811461045e5780636ddd17131461047e57806370a082311461049f578063715018a6146104d557806375f0a874146104ea5780638a8c523c1461052257600080fd5b8063313ce567146103cb57806339509351146103e757806340b28c2f146104075780634ada218b1461042757806350c9a88f1461044857600080fd5b80631816467f1161022f5780631816467f146103295780632253163d1461034957806323b872dd1461035f57806326b5d32f1461037f578063274a533c1461039f578063293b7ef4146103b557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600a5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610802565b6040516102979190611bf7565b3480156102ce57600080fd5b506102e26102dd366004611c45565b610894565b005b3480156102f057600080fd5b506103046102ff366004611c83565b6108cc565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611caf565b6108e3565b34801561035557600080fd5b5061028d60105481565b34801561036b57600080fd5b5061030461037a366004611ccc565b61092f565b34801561038b57600080fd5b506102e261039a366004611d0d565b6109e0565b3480156103ab57600080fd5b5061028d60085481565b3480156103c157600080fd5b5061028d600f5481565b3480156103d757600080fd5b5060405160128152602001610297565b3480156103f357600080fd5b50610304610402366004611c83565b610a9b565b34801561041357600080fd5b506102e2610422366004611d39565b610ad2565b34801561043357600080fd5b5060075461030490600160b01b900460ff1681565b34801561045457600080fd5b5061028d60095481565b34801561046a57600080fd5b506102e2610479366004611c45565b610b2a565b34801561048a57600080fd5b5060075461030490600160a81b900460ff1681565b3480156104ab57600080fd5b5061028d6104ba366004611caf565b6001600160a01b031660009081526020819052604090205490565b3480156104e157600080fd5b506102e2610b6c565b3480156104f657600080fd5b50600d5461050a906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561052e57600080fd5b506102e2610ba2565b34801561054357600080fd5b5061028d600b5481565b34801561055957600080fd5b506102e2610568366004611c83565b610c36565b34801561057957600080fd5b506005546001600160a01b031661050a565b34801561059757600080fd5b50600e5461050a906001600160a01b031681565b3480156105b757600080fd5b506102b5610cf7565b3480156105cc57600080fd5b506102e26105db366004611c45565b610d06565b3480156105ec57600080fd5b506102e26105fb366004611c45565b610d35565b34801561060c57600080fd5b506102e261061b366004611c45565b610d87565b34801561062c57600080fd5b5061030461063b366004611c83565b610db6565b34801561064c57600080fd5b5061028d60115481565b34801561066257600080fd5b5060075461050a906001600160a01b031681565b34801561068257600080fd5b50610304610691366004611c83565b610e51565b3480156106a257600080fd5b5061028d600c5481565b3480156106b857600080fd5b506102e26106c7366004611caf565b610e5e565b3480156106d857600080fd5b506102e26106e7366004611c45565b610eaa565b3480156106f857600080fd5b506102e2610707366004611d88565b610eec565b34801561071857600080fd5b50610304610727366004611caf565b60126020526000908152604090205460ff1681565b34801561074857600080fd5b5061028d610757366004611d39565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078e57600080fd5b506102e261079d366004611e5b565b610f82565b3480156107ae57600080fd5b506102e26107bd366004611d88565b610fca565b3480156107ce57600080fd5b506102e26107dd366004611caf565b61105c565b3480156107ee57600080fd5b5060065461050a906001600160a01b031681565b60606003805461081190611e78565b80601f016020809104026020016040519081016040528092919081815260200182805461083d90611e78565b801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c75760405162461bcd60e51b81526004016108be90611eb2565b60405180910390fd5b601055565b60006108d93384846110f4565b5060015b92915050565b6005546001600160a01b0316331461090d5760405162461bcd60e51b81526004016108be90611eb2565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600061093c848484611218565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109c15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108be565b6109d585336109d08685611efd565b6110f4565b506001949350505050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016108be90611eb2565b47610a1484611656565b6000610a208247611efd565b90508215610a5b57610a5b610a358486611f10565b610a3f8584611f23565b610a499190611f3a565b600d546001600160a01b0316906117b0565b8315610a9457610a94610a6e8486611f10565b610a788684611f23565b610a829190611f3a565b600e546001600160a01b0316906117b0565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d99185906109d0908690611f10565b6005546001600160a01b03163314610afc5760405162461bcd60e51b81526004016108be90611eb2565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b545760405162461bcd60e51b81526004016108be90611eb2565b610b6681670de0b6b3a7640000611f23565b600b5550565b6005546001600160a01b03163314610b965760405162461bcd60e51b81526004016108be90611eb2565b610ba060006118c9565b565b6005546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016108be90611eb2565b600754600160b01b900460ff1615610c1f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108be565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016108be90611eb2565b816001600160a01b031663a9059cbb610c816005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190611f5c565b505050565b60606004805461081190611e78565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108be90611eb2565b600a55565b6005546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108be90611eb2565b610d8481610d756005546001600160a01b031690565b6001600160a01b0316906117b0565b50565b6005546001600160a01b03163314610db15760405162461bcd60e51b81526004016108be90611eb2565b600f55565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e385760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108be565b610e4733856109d08685611efd565b5060019392505050565b60006108d9338484611218565b6005546001600160a01b03163314610e885760405162461bcd60e51b81526004016108be90611eb2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016108be90611eb2565b610ee681670de0b6b3a7640000611f23565b600c5550565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108be90611eb2565b60005b8151811015610f7e57600160136000848481518110610f3a57610f3a611f79565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7681611f8f565b915050610f19565b5050565b6005546001600160a01b03163314610fac5760405162461bcd60e51b81526004016108be90611eb2565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff45760405162461bcd60e51b81526004016108be90611eb2565b60005b8151811015610f7e5760016012600084848151811061101857611018611f79565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105481611f8f565b915050610ff7565b6005546001600160a01b031633146110865760405162461bcd60e51b81526004016108be90611eb2565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108be565b610d84816118c9565b6001600160a01b0383166111565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108be565b6001600160a01b0382166111b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108be565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108be565b6001600160a01b03831660009081526013602052604090205460ff16806112b957506001600160a01b03821660009081526013602052604090205460ff165b156112c5576011546010555b6001600160a01b03831660009081526012602052604090205460ff1615801561130757506001600160a01b03821660009081526012602052604090205460ff16155b801561131d5750600754600160a01b900460ff16155b156114e957600754600160b01b900460ff166113745760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108be565b436009546008546113859190611f10565b11156113fd576007546001600160a01b038381169116146113c4576001600160a01b0382166000908152601360205260409020805460ff191660011790555b6007546001600160a01b038481169116146113fd576001600160a01b0383166000908152601360205260409020805460ff191660011790555b600b5481111561144f5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108be565b6007546001600160a01b038381169116146114e957600c5481611487846001600160a01b031660009081526020819052604090205490565b6114919190611f10565b11156114e95760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108be565b600754600090600160a01b900460ff168061151c57506001600160a01b03841660009081526012602052604090205460ff165b8061153f57506001600160a01b03831660009081526012602052604090205460ff165b1561154c575060006115c5565b6007546001600160a01b03848116911614801561158257506001600160a01b03841660009081526013602052604090205460ff16155b156115a8576064601054836115979190611f23565b6115a19190611f3a565b90506115c5565b6064600f54836115b89190611f23565b6115c29190611f3a565b90505b600754600160a81b900460ff1680156115e85750600754600160a01b900460ff16155b801561160257506007546001600160a01b03858116911614155b801561160e5750600081115b1561161b5761161b61191b565b80156116455761162c84308361199c565b611640848461163b8585611b74565b61199c565b611650565b61165084848461199c565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061168b5761168b611f79565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117089190611fa8565b8160018151811061171b5761171b611f79565b6001600160a01b03928316602091820292909201015260065461174191309116846110f4565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177a908590600090869030904290600401611fc5565b600060405180830381600087803b15801561179457600080fd5b505af11580156117a8573d6000803e3d6000fd5b505050505050565b804710156118005760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108be565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461184d576040519150601f19603f3d011682016040523d82523d6000602084013e611852565b606091505b5050905080610cf25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610ba0576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a54811061198c574761196482611656565b60006119708247611efd565b600d54909150611989906001600160a01b0316826117b0565b50505b506007805460ff60a01b19169055565b6001600160a01b038316611a005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108be565b6001600160a01b038216611a625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108be565b6001600160a01b03831660009081526020819052604090205481811015611ada5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108be565b611ae48282611efd565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b1a908490611f10565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b6691815260200190565b60405180910390a350505050565b6000611bb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbd565b9392505050565b60008184841115611be15760405162461bcd60e51b81526004016108be9190611bf7565b506000611bee8585611efd565b95945050505050565b600060208083528351808285015260005b81811015611c2457858101830151858201604001528201611c08565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c5757600080fd5b5035919050565b6001600160a01b0381168114610d8457600080fd5b8035611c7e81611c5e565b919050565b60008060408385031215611c9657600080fd5b8235611ca181611c5e565b946020939093013593505050565b600060208284031215611cc157600080fd5b8135611bb681611c5e565b600080600060608486031215611ce157600080fd5b8335611cec81611c5e565b92506020840135611cfc81611c5e565b929592945050506040919091013590565b600080600060608486031215611d2257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d4c57600080fd5b8235611d5781611c5e565b91506020830135611d6781611c5e565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611d9b57600080fd5b823567ffffffffffffffff80821115611db357600080fd5b818501915085601f830112611dc757600080fd5b813581811115611dd957611dd9611d72565b8060051b604051601f19603f83011681018181108582111715611dfe57611dfe611d72565b604052918252848201925083810185019188831115611e1c57600080fd5b938501935b82851015611e4157611e3285611c73565b84529385019392850192611e21565b98975050505050505050565b8015158114610d8457600080fd5b600060208284031215611e6d57600080fd5b8135611bb681611e4d565b600181811c90821680611e8c57607f821691505b602082108103611eac57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108dd576108dd611ee7565b808201808211156108dd576108dd611ee7565b80820281158282048414176108dd576108dd611ee7565b600082611f5757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f6e57600080fd5b8151611bb681611e4d565b634e487b7160e01b600052603260045260246000fd5b600060018201611fa157611fa1611ee7565b5060010190565b600060208284031215611fba57600080fd5b8151611bb681611c5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120155784516001600160a01b031683529383019391830191600101611ff0565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122002628be58acc61aaf9b3b47a09a992c042e45adcc550934c5fb71a7e67b1ee9264736f6c63430008130033

Deployed Bytecode Sourcemap

12756:7029:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13109:46;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13109:46:0;;;;;;;;6549:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17782:90::-;;;;;;;;;;-1:-1:-1;17782:90:0;;;;;:::i;:::-;;:::i;:::-;;7463:169;;;;;;;;;;-1:-1:-1;7463:169:0;;;;;:::i;:::-;;:::i;:::-;;;1694:14:1;;1687:22;1669:41;;1657:2;1642:18;7463:169:0;1529:187:1;6870:108:0;;;;;;;;;;-1:-1:-1;6958:12:0;;6870:108;;18010:102;;;;;;;;;;-1:-1:-1;18010:102:0;;;;;:::i;:::-;;:::i;13478:29::-;;;;;;;;;;;;;;;;7640:422;;;;;;;;;;-1:-1:-1;7640:422:0;;;;;:::i;:::-;;:::i;19175:546::-;;;;;;;;;;-1:-1:-1;19175:546:0;;;;;:::i;:::-;;:::i;13032:28::-;;;;;;;;;;;;;;;;13446:25;;;;;;;;;;;;;;;;6769:93;;;;;;;;;;-1:-1:-1;6769:93:0;;6852:2;2897:36:1;;2885:2;2870:18;6769:93:0;2755:184:1;8070:215:0;;;;;;;;;;-1:-1:-1;8070:215:0;;;;;:::i;:::-;;:::i;18120:137::-;;;;;;;;;;-1:-1:-1;18120:137:0;;;;;:::i;:::-;;:::i;12997:26::-;;;;;;;;;;-1:-1:-1;12997:26:0;;;;-1:-1:-1;;;12997:26:0;;;;;;13067:29;;;;;;;;;;;;;;;;18659:109;;;;;;;;;;-1:-1:-1;18659:109:0;;;;;:::i;:::-;;:::i;12967:23::-;;;;;;;;;;-1:-1:-1;12967:23:0;;;;-1:-1:-1;;;12967:23:0;;;;;;6986:127;;;;;;;;;;-1:-1:-1;6986:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7087:18:0;7060:7;7087:18;;;;;;;;;;;;6986:127;11533:94;;;;;;;;;;;;;:::i;13282:75::-;;;;;;;;;;-1:-1:-1;13282:75:0;;;;-1:-1:-1;;;;;13282:75:0;;;;;;-1:-1:-1;;;;;3516:32:1;;;3498:51;;3486:2;3471:18;13282:75:0;3352:203:1;17508:173:0;;;;;;;;;;;;;:::i;13162:48::-;;;;;;;;;;;;;;;;18905:142;;;;;;;;;;-1:-1:-1;18905:142:0;;;;;:::i;:::-;;:::i;11310:87::-;;;;;;;;;;-1:-1:-1;11383:6:0;;-1:-1:-1;;;;;11383:6:0;11310:87;;13364:69;;;;;;;;;;-1:-1:-1;13364:69:0;;;;-1:-1:-1;;;;;13364:69:0;;;6657:104;;;;;;;;;;;;;:::i;17390:110::-;;;;;;;;;;-1:-1:-1;17390:110:0;;;;;:::i;:::-;;:::i;19055:112::-;;;;;;;;;;-1:-1:-1;19055:112:0;;;;;:::i;:::-;;:::i;17689:85::-;;;;;;;;;;-1:-1:-1;17689:85:0;;;;;:::i;:::-;;:::i;8293:377::-;;;;;;;;;;-1:-1:-1;8293:377:0;;;;;:::i;:::-;;:::i;13514:29::-;;;;;;;;;;;;;;;;12907:19;;;;;;;;;;-1:-1:-1;12907:19:0;;;;-1:-1:-1;;;;;12907:19:0;;;7121:175;;;;;;;;;;-1:-1:-1;7121:175:0;;;;;:::i;:::-;;:::i;13217:52::-;;;;;;;;;;;;;;;;17884:114;;;;;;;;;;-1:-1:-1;17884:114:0;;;;;:::i;:::-;;:::i;18780:117::-;;;;;;;;;;-1:-1:-1;18780:117:0;;;;;:::i;:::-;;:::i;18269:168::-;;;;;;;;;;-1:-1:-1;18269:168:0;;;;;:::i;:::-;;:::i;13556:49::-;;;;;;;;;;-1:-1:-1;13556:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7304:151;;;;;;;;;;-1:-1:-1;7304:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;7420:18:0;;;7393:7;7420:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7304:151;17289:93;;;;;;;;;;-1:-1:-1;17289:93:0;;;;;:::i;:::-;;:::i;18445:202::-;;;;;;;;;;-1:-1:-1;18445:202:0;;;;;:::i;:::-;;:::i;11635:192::-;;;;;;;;;;-1:-1:-1;11635:192:0;;;;;:::i;:::-;;:::i;12879:21::-;;;;;;;;;;-1:-1:-1;12879:21:0;;;;-1:-1:-1;;;;;12879:21:0;;;6549:100;6603:13;6636:5;6629:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6549:100;:::o;17782:90::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;;;;;;;;;17847:10:::1;:17:::0;17782:90::o;7463:169::-;7546:4;7563:39;308:10;7586:7;7595:6;7563:8;:39::i;:::-;-1:-1:-1;7620:4:0;7463:169;;;;;:::o;18010:102::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;18083:9:::1;:21:::0;;-1:-1:-1;;;;;;18083:21:0::1;-1:-1:-1::0;;;;;18083:21:0;;;::::1;::::0;;;::::1;::::0;;18010:102::o;7640:422::-;7746:4;7763:36;7773:6;7781:9;7792:6;7763:9;:36::i;:::-;-1:-1:-1;;;;;7839:19:0;;7812:24;7839:19;;;:11;:19;;;;;;;;308:10;7839:33;;;;;;;;7891:26;;;;7883:79;;;;-1:-1:-1;;;7883:79:0;;6751:2:1;7883:79:0;;;6733:21:1;6790:2;6770:18;;;6763:30;6829:34;6809:18;;;6802:62;-1:-1:-1;;;6880:18:1;;;6873:38;6928:19;;7883:79:0;6549:404:1;7883:79:0;7973:57;7982:6;308:10;8004:25;8023:6;8004:16;:25;:::i;:::-;7973:8;:57::i;:::-;-1:-1:-1;8050:4:0;;7640:422;-1:-1:-1;;;;7640:422:0:o;19175:546::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;19314:21:::1;19346:24;19363:6:::0;19346:16:::1;:24::i;:::-;19381:18;19402:35;19426:11:::0;19402:21:::1;:35;:::i;:::-;19381:56:::0;-1:-1:-1;19451:23:0;;19448:136:::1;;19476:108;19547:35;19563:19:::0;19547:13;:35:::1;:::i;:::-;19511:32;19524:19:::0;19511:10;:32:::1;:::i;:::-;:72;;;;:::i;:::-;19484:15;::::0;-1:-1:-1;;;;;19484:15:0::1;::::0;19476:34:::1;:108::i;:::-;19598:17:::0;;19595:118:::1;;19617:96;19676:35;19692:19:::0;19676:13;:35:::1;:::i;:::-;19646:26;19659:13:::0;19646:10;:26:::1;:::i;:::-;:66;;;;:::i;:::-;19625:9;::::0;-1:-1:-1;;;;;19625:9:0::1;::::0;19617:28:::1;:96::i;:::-;19281:440;;19175:546:::0;;;:::o;8070:215::-;308:10;8158:4;8207:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8207:34:0;;;;;;;;;;8158:4;;8175:80;;8198:7;;8207:47;;8244:10;;8207:47;:::i;18120:137::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;18210:6:::1;:16:::0;;-1:-1:-1;;;;;18210:16:0;;::::1;-1:-1:-1::0;;;;;;18210:16:0;;::::1;;::::0;;;18237:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;18120:137::o;18659:109::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;18745:15:::1;:6:::0;18754::::1;18745:15;:::i;:::-;18731:11;:29:::0;-1:-1:-1;18659:109:0:o;11533:94::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;11598:21:::1;11616:1;11598:9;:21::i;:::-;11533:94::o:0;17508:173::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;17571:14:::1;::::0;-1:-1:-1;;;17571:14:0;::::1;;;17570:15;17562:50;;;::::0;-1:-1:-1;;;17562:50:0;;7950:2:1;17562:50:0::1;::::0;::::1;7932:21:1::0;7989:2;7969:18;;;7962:30;-1:-1:-1;;;8008:18:1;;;8001:52;8070:18;;17562:50:0::1;7748:346:1::0;17562:50:0::1;17623:14;:21:::0;;-1:-1:-1;;;;17655:18:0;-1:-1:-1;;;17655:18:0;;;17508:173::o;18905:142::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;19000:12:::1;-1:-1:-1::0;;;;;18993:29:0::1;;19023:7;11383:6:::0;;-1:-1:-1;;;;;11383:6:0;;11310:87;19023:7:::1;18993:46;::::0;-1:-1:-1;;;;;;18993:46:0::1;::::0;;;;;;-1:-1:-1;;;;;8291:32:1;;;18993:46:0::1;::::0;::::1;8273:51:1::0;8340:18;;;8333:34;;;8246:18;;18993:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18905:142:::0;;:::o;6657:104::-;6713:13;6746:7;6739:14;;;;;:::i;17390:110::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;17466:13:::1;:26:::0;17390:110::o;19055:112::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;19122:37:::1;19149:9;19130:7;11383:6:::0;;-1:-1:-1;;;;;11383:6:0;;11310:87;19130:7:::1;-1:-1:-1::0;;;;;19122:26:0::1;::::0;::::1;:37::i;:::-;19055:112:::0;:::o;17689:85::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;17753:6:::1;:13:::0;17689:85::o;8293:377::-;308:10;8386:4;8430:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8430:34:0;;;;;;;;;;8483:35;;;;8475:85;;;;-1:-1:-1;;;8475:85:0;;8830:2:1;8475:85:0;;;8812:21:1;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:1;;;8952:35;9004:19;;8475:85:0;8628:401:1;8475:85:0;8571:67;308:10;8594:7;8603:34;8622:15;8603:16;:34;:::i;8571:67::-;-1:-1:-1;8658:4:0;;8293:377;-1:-1:-1;;;8293:377:0:o;7121:175::-;7207:4;7224:42;308:10;7248:9;7259:6;7224:9;:42::i;17884:114::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;17963:15:::1;:27:::0;;-1:-1:-1;;;;;;17963:27:0::1;-1:-1:-1::0;;;;;17963:27:0;;;::::1;::::0;;;::::1;::::0;;17884:114::o;18780:117::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;18874:15:::1;:6:::0;18883::::1;18874:15;:::i;:::-;18856;:33:::0;-1:-1:-1;18780:117:0:o;18269:168::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;18344:6:::1;18339:91;18360:6;:13;18356:1;:17;18339:91;;;18414:4;18395:5;:16;18401:6;18408:1;18401:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18395:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18395:16:0;:23;;-1:-1:-1;;18395:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18375:3;::::1;::::0;::::1;:::i;:::-;;;;18339:91;;;;18269:168:::0;:::o;17289:93::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;17355:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;17355:19:0::1;-1:-1:-1::0;;;;17355:19:0;;::::1;::::0;;;::::1;::::0;;17289:93::o;18445:202::-;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;18539:6:::1;18534:106;18555:8;:15;18551:1;:19;18534:106;;;18624:4;18592:16;:29;18609:8;18618:1;18609:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18592:29:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18592:29:0;:36;;-1:-1:-1;;18592:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18572:3;::::1;::::0;::::1;:::i;:::-;;;;18534:106;;11635:192:::0;11383:6;;-1:-1:-1;;;;;11383:6:0;308:10;11445:23;11437:68;;;;-1:-1:-1;;;11437:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11724:22:0;::::1;11716:73;;;::::0;-1:-1:-1;;;11716:73:0;;9508:2:1;11716:73:0::1;::::0;::::1;9490:21:1::0;9547:2;9527:18;;;9520:30;9586:34;9566:18;;;9559:62;-1:-1:-1;;;9637:18:1;;;9630:36;9683:19;;11716:73:0::1;9306:402:1::0;11716:73:0::1;11800:19;11810:8;11800:9;:19::i;10079:346::-:0;-1:-1:-1;;;;;10181:19:0;;10173:68;;;;-1:-1:-1;;;10173:68:0;;9915:2:1;10173:68:0;;;9897:21:1;9954:2;9934:18;;;9927:30;9993:34;9973:18;;;9966:62;-1:-1:-1;;;10044:18:1;;;10037:34;10088:19;;10173:68:0;9713:400:1;10173:68:0;-1:-1:-1;;;;;10260:21:0;;10252:68;;;;-1:-1:-1;;;10252:68:0;;10320:2:1;10252:68:0;;;10302:21:1;10359:2;10339:18;;;10332:30;10398:34;10378:18;;;10371:62;-1:-1:-1;;;10449:18:1;;;10442:32;10491:19;;10252:68:0;10118:398:1;10252:68:0;-1:-1:-1;;;;;10333:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10385:32;;160:25:1;;;10385:32:0;;133:18:1;10385:32:0;;;;;;;10079:346;;;:::o;14401:1522::-;14517:1;14508:6;:10;14500:64;;;;-1:-1:-1;;;14500:64:0;;10723:2:1;14500:64:0;;;10705:21:1;10762:2;10742:18;;;10735:30;10801:34;10781:18;;;10774:62;-1:-1:-1;;;10852:18:1;;;10845:39;10901:19;;14500:64:0;10521:405:1;14500:64:0;-1:-1:-1;;;;;14578:13:0;;;;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;14595:16:0;;;;;;:5;:16;;;;;;;;14578:33;14575:61;;;14626:10;;14613;:23;14575:61;-1:-1:-1;;;;;14679:24:0;;;;;;:16;:24;;;;;;;;14678:25;:57;;;;-1:-1:-1;;;;;;14708:27:0;;;;;;:16;:27;;;;;;;;14707:28;14678:57;:70;;;;-1:-1:-1;14740:8:0;;-1:-1:-1;;;14740:8:0;;;;14739:9;14678:70;14675:589;;;14772:14;;-1:-1:-1;;;14772:14:0;;;;14764:49;;;;-1:-1:-1;;;14764:49:0;;11133:2:1;14764:49:0;;;11115:21:1;11172:2;11152:18;;;11145:30;-1:-1:-1;;;11191:18:1;;;11184:52;11253:18;;14764:49:0;10931:346:1;14764:49:0;14860:12;14847:10;;14831:13;;:26;;;;:::i;:::-;:41;14828:183;;;14908:4;;-1:-1:-1;;;;;14895:17:0;;;14908:4;;14895:17;14892:45;;-1:-1:-1;;;;;14914:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;14914:23:0;14933:4;14914:23;;;14892:45;14969:4;;-1:-1:-1;;;;;14959:14:0;;;14969:4;;14959:14;14956:39;;-1:-1:-1;;;;;14975:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;14975:20:0;14991:4;14975:20;;;14956:39;15043:11;;15033:6;:21;;15025:63;;;;-1:-1:-1;;;15025:63:0;;11484:2:1;15025:63:0;;;11466:21:1;11523:2;11503:18;;;11496:30;11562:31;11542:18;;;11535:59;11611:18;;15025:63:0;11282:353:1;15025:63:0;15119:4;;-1:-1:-1;;;;;15106:17:0;;;15119:4;;15106:17;15103:150;;15184:15;;15174:6;15151:20;15161:9;-1:-1:-1;;;;;7087:18:0;7060:7;7087:18;;;;;;;;;;;;6986:127;15151:20;:29;;;;:::i;:::-;:48;;15143:94;;;;-1:-1:-1;;;15143:94:0;;11842:2:1;15143:94:0;;;11824:21:1;11881:2;11861:18;;;11854:30;11920:34;11900:18;;;11893:62;-1:-1:-1;;;11971:18:1;;;11964:31;12012:19;;15143:94:0;11640:397:1;15143:94:0;15316:8;;15276:11;;-1:-1:-1;;;15316:8:0;;;;;:36;;-1:-1:-1;;;;;;15328:24:0;;;;;;:16;:24;;;;;;;;15316:36;:67;;;-1:-1:-1;;;;;;15356:27:0;;;;;;:16;:27;;;;;;;;15316:67;15312:253;;;-1:-1:-1;15391:1:0;15312:253;;;15451:4;;-1:-1:-1;;;;;15438:17:0;;;15451:4;;15438:17;:35;;;;-1:-1:-1;;;;;;15460:13:0;;;;;;:5;:13;;;;;;;;15459:14;15438:35;15435:118;;;15503:3;15490:10;;15481:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;15475:31;;15435:118;;;15550:3;15541:6;;15532;:15;;;;:::i;:::-;:21;;;;:::i;:::-;15526:27;;15435:118;15591:11;;-1:-1:-1;;;15591:11:0;;;;:24;;;;-1:-1:-1;15607:8:0;;-1:-1:-1;;;15607:8:0;;;;15606:9;15591:24;:42;;;;-1:-1:-1;15629:4:0;;-1:-1:-1;;;;;15619:14:0;;;15629:4;;15619:14;;15591:42;:53;;;;;15643:1;15637:3;:7;15591:53;15587:72;;;15646:13;:11;:13::i;:::-;15693:7;;15690:224;;15718:43;15734:6;15750:4;15757:3;15718:15;:43::i;:::-;15776:51;15792:6;15800:9;15811:15;:6;15822:3;15811:10;:15::i;:::-;15776;:51::i;:::-;15690:224;;;15860:42;15876:6;15884:9;15895:6;15860:15;:42::i;:::-;14489:1434;14401:1522;;;:::o;16378:398::-;16468:16;;;16482:1;16468:16;;;;;;;;16444:21;;16468:16;;;;;;;;;;-1:-1:-1;16468:16:0;16444:40;;16513:4;16495;16500:1;16495:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16495:23:0;;;:7;;;;;;;;;;:23;;;;16539:6;;:13;;;-1:-1:-1;;;16539:13:0;;;;:6;;;;;:11;;:13;;;;;16495:7;;16539:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16529:4;16534:1;16529:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16529:23:0;;;:7;;;;;;;;;:23;16595:6;;16563:53;;16580:4;;16595:6;16604:11;16563:8;:53::i;:::-;16655:6;;:111;;-1:-1:-1;;;16655:111:0;;-1:-1:-1;;;;;16655:6:0;;;;:57;;:111;;16713:11;;16655:6;;16729:4;;16743;;16750:15;;16655:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16433:343;16378:398;:::o;10755:317::-;10870:6;10845:21;:31;;10837:73;;;;-1:-1:-1;;;10837:73:0;;13485:2:1;10837:73:0;;;13467:21:1;13524:2;13504:18;;;13497:30;13563:31;13543:18;;;13536:59;13612:18;;10837:73:0;13283:353:1;10837:73:0;10924:12;10942:9;-1:-1:-1;;;;;10942:14:0;10964:6;10942:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10923:52;;;10994:7;10986:78;;;;-1:-1:-1;;;10986:78:0;;14053:2:1;10986:78:0;;;14035:21:1;14092:2;14072:18;;;14065:30;14131:34;14111:18;;;14104:62;14202:28;14182:18;;;14175:56;14248:19;;10986:78:0;13851:422:1;11835:173:0;11910:6;;;-1:-1:-1;;;;;11927:17:0;;;-1:-1:-1;;;;;;11927:17:0;;;;;;;11960:40;;11910:6;;;11927:17;11910:6;;11960:40;;11891:16;;11960:40;11880:128;11835:173;:::o;15931:437::-;13698:8;;-1:-1:-1;;;13698:8:0;;;;13693:104;;13723:8;:15;;-1:-1:-1;;;;13723:15:0;-1:-1:-1;;;13723:15:0;;;16024:4:::1;-1:-1:-1::0;7087:18:0;;;;;;;;;;;15980:50:::1;;16064:13;;16045:15;:32;16041:320;;16125:21;16167:33;16184:15:::0;16167:16:::1;:33::i;:::-;16221:20;16244:38;16268:14:::0;16244:21:::1;:38;:::i;:::-;16307:15;::::0;16221:61;;-1:-1:-1;16299:48:0::1;::::0;-1:-1:-1;;;;;16307:15:0::1;16221:61:::0;16299:34:::1;:48::i;:::-;16079:282;;16041:320;-1:-1:-1::0;13769:8:0;:16;;-1:-1:-1;;;;13769:16:0;;;15931:437::o;8678:544::-;-1:-1:-1;;;;;8784:20:0;;8776:70;;;;-1:-1:-1;;;8776:70:0;;14480:2:1;8776:70:0;;;14462:21:1;14519:2;14499:18;;;14492:30;14558:34;14538:18;;;14531:62;-1:-1:-1;;;14609:18:1;;;14602:35;14654:19;;8776:70:0;14278:401:1;8776:70:0;-1:-1:-1;;;;;8865:23:0;;8857:71;;;;-1:-1:-1;;;8857:71:0;;14886:2:1;8857:71:0;;;14868:21:1;14925:2;14905:18;;;14898:30;14964:34;14944:18;;;14937:62;-1:-1:-1;;;15015:18:1;;;15008:33;15058:19;;8857:71:0;14684:399:1;8857:71:0;-1:-1:-1;;;;;8965:17:0;;8941:21;8965:17;;;;;;;;;;;9001:23;;;;8993:74;;;;-1:-1:-1;;;8993:74:0;;15290:2:1;8993:74:0;;;15272:21:1;15329:2;15309:18;;;15302:30;15368:34;15348:18;;;15341:62;-1:-1:-1;;;15419:18:1;;;15412:36;15465:19;;8993:74:0;15088:402:1;8993:74:0;9098:22;9114:6;9098:13;:22;:::i;:::-;-1:-1:-1;;;;;9078:17:0;;;:9;:17;;;;;;;;;;;:42;;;;9131:20;;;;;;;;:30;;9155:6;;9078:9;9131:30;;9155:6;;9131:30;:::i;:::-;;;;;;;;9196:9;-1:-1:-1;;;;;9179:35:0;9188:6;-1:-1:-1;;;;;9179:35:0;;9207:6;9179:35;;;;160:25:1;;148:2;133:18;;14:177;9179:35:0;;;;;;;;8765:457;8678:544;;;:::o;1185:136::-;1243:7;1270:43;1274:1;1277;1270:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1263:50;1185:136;-1:-1:-1;;;1185:136:0:o;1624:192::-;1710:7;1746:12;1738:6;;;;1730:29;;;;-1:-1:-1;;;1730:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1770:9:0;1782:5;1786:1;1782;:5;:::i;:::-;1770:17;1624:192;-1:-1:-1;;;;;1624:192:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:180::-;808:6;861:2;849:9;840:7;836:23;832:32;829:52;;;877:1;874;867:12;829:52;-1:-1:-1;900:23:1;;749:180;-1:-1:-1;749:180:1:o;934:131::-;-1:-1:-1;;;;;1009:31:1;;999:42;;989:70;;1055:1;1052;1045:12;1070:134;1138:20;;1167:31;1138:20;1167:31;:::i;:::-;1070:134;;;:::o;1209:315::-;1277:6;1285;1338:2;1326:9;1317:7;1313:23;1309:32;1306:52;;;1354:1;1351;1344:12;1306:52;1393:9;1380:23;1412:31;1437:5;1412:31;:::i;:::-;1462:5;1514:2;1499:18;;;;1486:32;;-1:-1:-1;;;1209:315:1:o;1721:247::-;1780:6;1833:2;1821:9;1812:7;1808:23;1804:32;1801:52;;;1849:1;1846;1839:12;1801:52;1888:9;1875:23;1907:31;1932:5;1907:31;:::i;1973:456::-;2050:6;2058;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2174:9;2161:23;2193:31;2218:5;2193:31;:::i;:::-;2243:5;-1:-1:-1;2300:2:1;2285:18;;2272:32;2313:33;2272:32;2313:33;:::i;:::-;1973:456;;2365:7;;-1:-1:-1;;;2419:2:1;2404:18;;;;2391:32;;1973:456::o;2434:316::-;2511:6;2519;2527;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;-1:-1:-1;;2619:23:1;;;2689:2;2674:18;;2661:32;;-1:-1:-1;2740:2:1;2725:18;;;2712:32;;2434:316;-1:-1:-1;2434:316:1:o;2944:403::-;3027:6;3035;3088:2;3076:9;3067:7;3063:23;3059:32;3056:52;;;3104:1;3101;3094:12;3056:52;3143:9;3130:23;3162:31;3187:5;3162:31;:::i;:::-;3212:5;-1:-1:-1;3269:2:1;3254:18;;3241:32;3282:33;3241:32;3282:33;:::i;:::-;3334:7;3324:17;;;2944:403;;;;;:::o;3560:127::-;3621:10;3616:3;3612:20;3609:1;3602:31;3652:4;3649:1;3642:15;3676:4;3673:1;3666:15;3692:1121;3776:6;3807:2;3850;3838:9;3829:7;3825:23;3821:32;3818:52;;;3866:1;3863;3856:12;3818:52;3906:9;3893:23;3935:18;3976:2;3968:6;3965:14;3962:34;;;3992:1;3989;3982:12;3962:34;4030:6;4019:9;4015:22;4005:32;;4075:7;4068:4;4064:2;4060:13;4056:27;4046:55;;4097:1;4094;4087:12;4046:55;4133:2;4120:16;4155:2;4151;4148:10;4145:36;;;4161:18;;:::i;:::-;4207:2;4204:1;4200:10;4239:2;4233:9;4302:2;4298:7;4293:2;4289;4285:11;4281:25;4273:6;4269:38;4357:6;4345:10;4342:22;4337:2;4325:10;4322:18;4319:46;4316:72;;;4368:18;;:::i;:::-;4404:2;4397:22;4454:18;;;4488:15;;;;-1:-1:-1;4530:11:1;;;4526:20;;;4558:19;;;4555:39;;;4590:1;4587;4580:12;4555:39;4614:11;;;;4634:148;4650:6;4645:3;4642:15;4634:148;;;4716:23;4735:3;4716:23;:::i;:::-;4704:36;;4667:12;;;;4760;;;;4634:148;;;4801:6;3692:1121;-1:-1:-1;;;;;;;;3692:1121:1:o;5211:118::-;5297:5;5290:13;5283:21;5276:5;5273:32;5263:60;;5319:1;5316;5309:12;5334:241;5390:6;5443:2;5431:9;5422:7;5418:23;5414:32;5411:52;;;5459:1;5456;5449:12;5411:52;5498:9;5485:23;5517:28;5539:5;5517:28;:::i;5803:380::-;5882:1;5878:12;;;;5925;;;5946:61;;6000:4;5992:6;5988:17;5978:27;;5946:61;6053:2;6045:6;6042:14;6022:18;6019:38;6016:161;;6099:10;6094:3;6090:20;6087:1;6080:31;6134:4;6131:1;6124:15;6162:4;6159:1;6152:15;6016:161;;5803:380;;;:::o;6188:356::-;6390:2;6372:21;;;6409:18;;;6402:30;6468:34;6463:2;6448:18;;6441:62;6535:2;6520:18;;6188:356::o;6958:127::-;7019:10;7014:3;7010:20;7007:1;7000:31;7050:4;7047:1;7040:15;7074:4;7071:1;7064:15;7090:128;7157:9;;;7178:11;;;7175:37;;;7192:18;;:::i;7223:125::-;7288:9;;;7309:10;;;7306:36;;;7322:18;;:::i;7353:168::-;7426:9;;;7457;;7474:15;;;7468:22;;7454:37;7444:71;;7495:18;;:::i;7526:217::-;7566:1;7592;7582:132;;7636:10;7631:3;7627:20;7624:1;7617:31;7671:4;7668:1;7661:15;7699:4;7696:1;7689:15;7582:132;-1:-1:-1;7728:9:1;;7526:217::o;8378:245::-;8445:6;8498:2;8486:9;8477:7;8473:23;8469:32;8466:52;;;8514:1;8511;8504:12;8466:52;8546:9;8540:16;8565:28;8587:5;8565:28;:::i;9034:127::-;9095:10;9090:3;9086:20;9083:1;9076:31;9126:4;9123:1;9116:15;9150:4;9147:1;9140:15;9166:135;9205:3;9226:17;;;9223:43;;9246:18;;:::i;:::-;-1:-1:-1;9293:1:1;9282:13;;9166:135::o;12042:251::-;12112:6;12165:2;12153:9;12144:7;12140:23;12136:32;12133:52;;;12181:1;12178;12171:12;12133:52;12213:9;12207:16;12232:31;12257:5;12232:31;:::i;12298:980::-;12560:4;12608:3;12597:9;12593:19;12639:6;12628:9;12621:25;12665:2;12703:6;12698:2;12687:9;12683:18;12676:34;12746:3;12741:2;12730:9;12726:18;12719:31;12770:6;12805;12799:13;12836:6;12828;12821:22;12874:3;12863:9;12859:19;12852:26;;12913:2;12905:6;12901:15;12887:29;;12934:1;12944:195;12958:6;12955:1;12952:13;12944:195;;;13023:13;;-1:-1:-1;;;;;13019:39:1;13007:52;;13114:15;;;;13079:12;;;;13055:1;12973:9;12944:195;;;-1:-1:-1;;;;;;;13195:32:1;;;;13190:2;13175:18;;13168:60;-1:-1:-1;;;13259:3:1;13244:19;13237:35;13156:3;12298:980;-1:-1:-1;;;12298:980:1:o

Swarm Source

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