ETH Price: $2,514.58 (+0.58%)

Token

KIMPSONS (KAWS)
 

Overview

Max Total Supply

69,000,000 KAWS

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,110.840113947517481385 KAWS

Value
$0.00
0xB44032677e437E7B9ec4e1e5D7d1061C6eFBCDF6
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:
KIMPSONS

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-02
*/

/*



 .----------------.  .----------------.  .----------------.  .----------------.  .----------------.  .----------------.  .-----------------. .----------------. 
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
| |  ___  ____   | || |     _____    | || | ____    ____ | || |   ______     | || |    _______   | || |     ____     | || | ____  _____  | || |    _______   | |
| | |_  ||_  _|  | || |    |_   _|   | || ||_   \  /   _|| || |  |_   __ \   | || |   /  ___  |  | || |   .'    `.   | || ||_   \|_   _| | || |   /  ___  |  | |
| |   | |_/ /    | || |      | |     | || |  |   \/   |  | || |    | |__) |  | || |  |  (__ \_|  | || |  /  .--.  \  | || |  |   \ | |   | || |  |  (__ \_|  | |
| |   |  __'.    | || |      | |     | || |  | |\  /| |  | || |    |  ___/   | || |   '.___`-.   | || |  | |    | |  | || |  | |\ \| |   | || |   '.___`-.   | |
| |  _| |  \ \_  | || |     _| |_    | || | _| |_\/_| |_ | || |   _| |_      | || |  |`\____) |  | || |  \  `--'  /  | || | _| |_\   |_  | || |  |`\____) |  | |
| | |____||____| | || |    |_____|   | || ||_____||_____|| || |  |_____|     | || |  |_______.'  | || |   `.____.'   | || ||_____|\____| | || |  |_______.'  | |
| |              | || |              | || |              | || |              | || |              | || |              | || |              | || |              | |
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |
 '----------------'  '----------------'  '----------------'  '----------------'  '----------------'  '----------------'  '----------------'  '----------------' 

                                                                                                                                                                         
Website: https://KAWSETH.io/
Twitter: https://twitter.com/KIMPSONSETH
Telegram: https://t.me/KIMPSONS
https://www.reddit.com/user/Kimpsons/
*/

// SPDX-License-Identifier: MIT
// File: contracts/interfaces/IUniswapV2Factory.sol



pragma solidity 0.8.23;

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);

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

// File: contracts/interfaces/IUniswapV2Router.sol



pragma solidity 0.8.23;

interface IUniswapV2Router {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

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

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;
}
// File: @openzeppelin/contracts/interfaces/draft-IERC6093.sol
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
pragma solidity ^0.8.20;
interface IERC20Errors {
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);
}
interface IERC721Errors {
    error ERC721InvalidOwner(address owner);
    error ERC721NonexistentToken(uint256 tokenId);
    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);
    error ERC721InvalidSender(address sender);
    error ERC721InvalidReceiver(address receiver);
    error ERC721InsufficientApproval(address operator, uint256 tokenId);
    error ERC721InvalidApprover(address approver);
    error ERC721InvalidOperator(address operator);
}
interface IERC1155Errors {
    error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
    error ERC1155InvalidSender(address sender);
    error ERC1155InvalidReceiver(address receiver);
    error ERC1155MissingApprovalForAll(address operator, address owner);
    error ERC1155InvalidApprover(address approver);
    error ERC1155InvalidOperator(address operator);
    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
     function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
abstract contract Ownable is Context {
    address private _owner;
    error OwnableUnauthorizedAccount(address account);
    error OwnableInvalidOwner(address owner);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;
interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.20;
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
// File: @openzeppelin/contracts/token/ERC20/ERC20.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.20;
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address account => uint256) private _balances;
    mapping(address account => mapping(address spender => uint256)) private _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 returns (string memory) {
        return _name;
    }
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual returns (uint8) {
        return 18;
    }
    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }
    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

    function allowance(address owner, address spender) public view virtual returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, value);
        return true;
    }
    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }
    function _transfer(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }
    function _update(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }
    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }
    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }
    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }
    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }
    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, value);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}
pragma solidity 0.8.23;
contract KIMPSONS is ERC20, Ownable {
    address private  marketingWallet;
    uint16 public buyFee = 0;
    uint16 public sellFee = 0;
    uint256 public swapTokensAtAmount = 30_000 * 1e18; 
    bool private _distributingFees;

    mapping(address => bool) private _excludedFromFees;

    bool public limitsInEffect = true;
    uint256 public maxWalletBalance = 1_035_000 * 1e18; // 1.5% of Tokens
    mapping(address => bool) private _excludedFromMaxWalletBalance;

    address public immutable uniV2Pair;
    IUniswapV2Router public constant uniV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    bool public tradingEnabled;

    event LimitsRemoved();
    event TradingEnabled();
    event BuyFeeSet(uint16 newBuyFee);
    event SellFeeSet(uint16 newSellFee);
    event MarketingWalletUpdated(address newAddress);
    event SwapTokensAtAmountSet(uint256 newSwapTokensAtAmount);
    event FeesDistributed(uint256 totalTokensDistributed);
    constructor() ERC20("KIMPSONS", "KAWS") Ownable(msg.sender) {
        uniV2Pair = IUniswapV2Factory(uniV2Router.factory()).createPair(address(this), uniV2Router.WETH());
        _excludedFromMaxWalletBalance[uniV2Pair] = true;

        _excludedFromFees[owner()] = true;
        marketingWallet = owner();

        _mint(owner(), 69_000_000 * 1e18);

        _approve(address(this), address(uniV2Router), type(uint256).max);
    }

    receive() external payable {}
    function _transfer(address from, address to, uint256 amount) internal override {
        require(amount > 0, "KIMPSONS: transfer amount must be greater than 0");

        // Check if trading has been enabled
        if (!tradingEnabled) {
            require(from == owner() || to == owner(), "KIMPSONS: trading has not been enabled yet");
        }

        // Max TX and Max Balance Limits
        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_distributingFees) {
                // On Buys
                if (from == uniV2Pair && !_excludedFromMaxWalletBalance[to]) {
                    require(
                        amount + balanceOf(to) <= maxWalletBalance, "KIMPSONS: balance would exceed max wallet balance"
                    );
                }
                // On Transfers to non-excluded "to" address
                else if (!_excludedFromMaxWalletBalance[to]) {
                    require(
                        amount + balanceOf(to) <= maxWalletBalance, "KIMPSONS: balance would exceed max wallet balance"
                    );
                }
            }
        }

        // Swap any tokens held as fees for ETH and distribute
        bool shouldSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if (shouldSwap && !_distributingFees && from != uniV2Pair && !_excludedFromFees[from] && !_excludedFromFees[to])
        {
            _distributingFees = true;
            _distributeFees();
            _distributingFees = false;
        }

        // Determine if we should take fees
        bool takeFees = !_distributingFees;
        if (_excludedFromFees[from] || _excludedFromFees[to]) {
            takeFees = false;
        }

        uint256 fees = 0;
        // Take Fees if necessary
        if (takeFees) {
            // Fees on buys
            if (from == uniV2Pair && buyFee > 0) {
                fees = (amount * buyFee) / 1_000;
            }
            // Fees on sells
            else if (to == uniV2Pair && sellFee > 0) {
                fees = (amount * sellFee) / 1_000;
            }

            // If there are fees to be taken, transfer and substract from amount
            if (fees > 0) {
                super._transfer(from, address(this), fees);
                amount -= fees;
            }
        }

        // Make final transfer
        super._transfer(from, to, amount);
    }
    function _distributeFees() private {
        // Determine amount of held fees to distribute
        uint256 tokensToDistribute = balanceOf(address(this));
        if (tokensToDistribute > swapTokensAtAmount * 20) {
            tokensToDistribute = swapTokensAtAmount * 20;
        }

        // Swap tokens for ETH
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniV2Router.WETH();
        try uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokensToDistribute, 0, path, address(this), block.timestamp
        ) {} catch {}

        // Send ETH to Marketing
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            (bool success,) = marketingWallet.call{value: ethBalance}("");
            if (success) {
                emit FeesDistributed(tokensToDistribute);
            }
        }
    }
    function isExcludedFromFees(address account) public view returns (bool) {
        return _excludedFromFees[account];
    }

    function isExcludedFromMaxWalletBalance(address account) public view returns (bool) {
        return _excludedFromMaxWalletBalance[account];
    }
    function enableTrading() external onlyOwner {
        tradingEnabled = true;
        emit TradingEnabled();
    }
    function updateMarketingWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "KIMPSONS: address cannot be 0 address");
        marketingWallet = newAddress;
        emit MarketingWalletUpdated(newAddress);
    }
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit LimitsRemoved();
    }
    function setSwapTokensAtAmount(uint256 newSwapTokensAtAmount) external onlyOwner {
        require(
            newSwapTokensAtAmount >= totalSupply() / 69_000,
            "KIMPSONS: swap tokens at amount cannot be lower than 0.001% of total supply"
        );
        require(
            newSwapTokensAtAmount <= (totalSupply() * 5) / 1_000,
            "KIMPSONS: swap tokens at amount cannot be higher than 0.5% of total supply"
        );
        swapTokensAtAmount = newSwapTokensAtAmount;
        emit SwapTokensAtAmountSet(newSwapTokensAtAmount);
    }
    function setBuyFee(uint16 newBuyFee) external onlyOwner {
        require(newBuyFee <= 400, "KIMPSONS: fee cannot be greater than 40%");
        buyFee = newBuyFee;
        emit BuyFeeSet(newBuyFee);
    }
    function setSellFee(uint16 newSellFee) external onlyOwner {
        require(newSellFee <= 400, "KIMPSONS: fee cannot be greater than 40%");
        sellFee = newSellFee;
        emit SellFeeSet(newSellFee);
    }
    function setExcludedFromFees(address account, bool excluded) external onlyOwner {
        _excludedFromFees[account] = excluded;
    }
    function setExcludedFromMaxWalletBalance(address account, bool excluded) external onlyOwner {
        _excludedFromMaxWalletBalance[account] = excluded;
    }
      function setFees(uint16 newSellFee, uint16 newBuyFee) external onlyOwner {
        require(newSellFee <= 400 && newBuyFee <=400, "KIMPSONS fee cannot be greater than 40%");
        sellFee = newSellFee;
        buyFee = newBuyFee;
        emit SellFeeSet(newSellFee);
        emit BuyFeeSet(newBuyFee);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"newBuyFee","type":"uint16"}],"name":"BuyFeeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalTokensDistributed","type":"uint256"}],"name":"FeesDistributed","type":"event"},{"anonymous":false,"inputs":[],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"MarketingWalletUpdated","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":false,"internalType":"uint16","name":"newSellFee","type":"uint16"}],"name":"SellFeeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newSwapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountSet","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingEnabled","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":"value","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":"buyFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"newBuyFee","type":"uint16"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newSellFee","type":"uint16"},{"internalType":"uint16","name":"newBuyFee","type":"uint16"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newSellFee","type":"uint16"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTokensAtAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040525f600660146101000a81548161ffff021916908361ffff1602179055505f600660166101000a81548161ffff021916908361ffff16021790555069065a4da25d3016c000006007556001600a5f6101000a81548160ff02191690831515021790555069db2b76618efb10e00000600b5534801562000080575f80fd5b50336040518060400160405280600881526020017f4b494d50534f4e530000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4b415753000000000000000000000000000000000000000000000000000000008152508160039081620000ff919062000cc4565b50806004908162000111919062000cc4565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000187575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200017e919062000deb565b60405180910390fd5b6200019881620004d560201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021d919062000e39565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000297573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002bd919062000e39565b6040518363ffffffff1660e01b8152600401620002dc92919062000e69565b6020604051808303815f875af1158015620002f9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200031f919062000e39565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600c5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f620003be6200059860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200041d6200059860201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000488620004706200059860201b60201c565b6a3913517ebd3c0c65000000620005c060201b60201c565b620004cf30737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200064a60201b60201c565b62000f62565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000633575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200062a919062000deb565b60405180910390fd5b620006465f83836200066460201b60201c565b5050565b6200065f83838360016200088860201b60201c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006b8578060025f828254620006ab919062000ec1565b9250508190555062000789565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000744578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200073b9392919062000f0c565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007d2578060025f82825403925050819055506200081c565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200087b919062000f47565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620008fb575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401620008f2919062000deb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200096e575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040162000965919062000deb565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801562000a5a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000a51919062000f47565b60405180910390a35b50505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000adc57607f821691505b60208210810362000af25762000af162000a97565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b19565b62000b62868362000b19565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000bac62000ba662000ba08462000b7a565b62000b83565b62000b7a565b9050919050565b5f819050919050565b62000bc78362000b8c565b62000bdf62000bd68262000bb3565b84845462000b25565b825550505050565b5f90565b62000bf562000be7565b62000c0281848462000bbc565b505050565b5b8181101562000c295762000c1d5f8262000beb565b60018101905062000c08565b5050565b601f82111562000c785762000c428162000af8565b62000c4d8462000b0a565b8101602085101562000c5d578190505b62000c7562000c6c8562000b0a565b83018262000c07565b50505b505050565b5f82821c905092915050565b5f62000c9a5f198460080262000c7d565b1980831691505092915050565b5f62000cb4838362000c89565b9150826002028217905092915050565b62000ccf8262000a60565b67ffffffffffffffff81111562000ceb5762000cea62000a6a565b5b62000cf7825462000ac4565b62000d0482828562000c2d565b5f60209050601f83116001811462000d3a575f841562000d25578287015190505b62000d31858262000ca7565b86555062000da0565b601f19841662000d4a8662000af8565b5f5b8281101562000d735784890151825560018201915060208501945060208101905062000d4c565b8683101562000d93578489015162000d8f601f89168262000c89565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dd38262000da8565b9050919050565b62000de58162000dc7565b82525050565b5f60208201905062000e005f83018462000dda565b92915050565b5f80fd5b62000e158162000dc7565b811462000e20575f80fd5b50565b5f8151905062000e338162000e0a565b92915050565b5f6020828403121562000e515762000e5062000e06565b5b5f62000e608482850162000e23565b91505092915050565b5f60408201905062000e7e5f83018562000dda565b62000e8d602083018462000dda565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000ecd8262000b7a565b915062000eda8362000b7a565b925082820190508082111562000ef55762000ef462000e94565b5b92915050565b62000f068162000b7a565b82525050565b5f60608201905062000f215f83018662000dda565b62000f30602083018562000efb565b62000f3f604083018462000efb565b949350505050565b5f60208201905062000f5c5f83018462000efb565b92915050565b60805161300a62000f975f395f8181610b100152818161140f015281816115ee015281816117e4015261188b015261300a5ff3fe6080604052600436106101db575f3560e01c8063751039fc11610101578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e14610678578063e064648a146106b4578063e2f45605146106dc578063f2fde38b14610706576101e2565b8063a9059cbb146105c2578063aacebbe3146105fe578063afa4f3b214610626578063bbde77c11461064e576101e2565b806394a98390116100d057806394a983901461051e578063958c2e521461054657806395d89b41146105705780639ef833d41461059a576101e2565b8063751039fc1461049e5780638a8c523c146104b45780638bcea939146104ca5780638da5cb5b146104f4576101e2565b80634a62bb6511610179578063686d83c311610148578063686d83c3146103e857806370a082311461042457806370c4767114610460578063715018a614610488576101e2565b80634a62bb65146103305780634ada218b1461035a5780634fbee19314610384578063590ffdce146103c0576101e2565b806323b872dd116101b557806323b872dd146102765780632b14ca56146102b2578063313ce567146102dc5780634706240214610306576101e2565b806306fdde03146101e6578063095ea7b31461021057806318160ddd1461024c576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61072e565b6040516102079190612305565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906123b6565b6107be565b604051610243919061240e565b60405180910390f35b348015610257575f80fd5b506102606107e0565b60405161026d9190612436565b60405180910390f35b348015610281575f80fd5b5061029c6004803603810190610297919061244f565b6107e9565b6040516102a9919061240e565b60405180910390f35b3480156102bd575f80fd5b506102c6610817565b6040516102d391906124bb565b60405180910390f35b3480156102e7575f80fd5b506102f061082b565b6040516102fd91906124ef565b60405180910390f35b348015610311575f80fd5b5061031a610833565b60405161032791906124bb565b60405180910390f35b34801561033b575f80fd5b50610344610847565b604051610351919061240e565b60405180910390f35b348015610365575f80fd5b5061036e610859565b60405161037b919061240e565b60405180910390f35b34801561038f575f80fd5b506103aa60048036038101906103a59190612508565b61086b565b6040516103b7919061240e565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e1919061255d565b6108bd565b005b3480156103f3575f80fd5b5061040e60048036038101906104099190612508565b61091d565b60405161041b919061240e565b60405180910390f35b34801561042f575f80fd5b5061044a60048036038101906104459190612508565b61096f565b6040516104579190612436565b60405180910390f35b34801561046b575f80fd5b50610486600480360381019061048191906125c5565b6109b4565b005b348015610493575f80fd5b5061049c610a5c565b005b3480156104a9575f80fd5b506104b2610a6f565b005b3480156104bf575f80fd5b506104c8610abe565b005b3480156104d5575f80fd5b506104de610b0e565b6040516104eb91906125ff565b60405180910390f35b3480156104ff575f80fd5b50610508610b32565b60405161051591906125ff565b60405180910390f35b348015610529575f80fd5b50610544600480360381019061053f919061255d565b610b5a565b005b348015610551575f80fd5b5061055a610bba565b6040516105679190612673565b60405180910390f35b34801561057b575f80fd5b50610584610bd2565b6040516105919190612305565b60405180910390f35b3480156105a5575f80fd5b506105c060048036038101906105bb919061268c565b610c62565b005b3480156105cd575f80fd5b506105e860048036038101906105e391906123b6565b610d71565b6040516105f5919061240e565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f9190612508565b610d93565b005b348015610631575f80fd5b5061064c600480360381019061064791906126ca565b610e83565b005b348015610659575f80fd5b50610662610f87565b60405161066f9190612436565b60405180910390f35b348015610683575f80fd5b5061069e600480360381019061069991906126f5565b610f8d565b6040516106ab9190612436565b60405180910390f35b3480156106bf575f80fd5b506106da60048036038101906106d591906125c5565b61100f565b005b3480156106e7575f80fd5b506106f06110b7565b6040516106fd9190612436565b60405180910390f35b348015610711575f80fd5b5061072c60048036038101906107279190612508565b6110bd565b005b60606003805461073d90612760565b80601f016020809104026020016040519081016040528092919081815260200182805461076990612760565b80156107b45780601f1061078b576101008083540402835291602001916107b4565b820191905f5260205f20905b81548152906001019060200180831161079757829003601f168201915b5050505050905090565b5f806107c8611141565b90506107d5818585611148565b600191505092915050565b5f600254905090565b5f806107f3611141565b905061080085828561115a565b61080b8585856111ec565b60019150509392505050565b600660169054906101000a900461ffff1681565b5f6012905090565b600660149054906101000a900461ffff1681565b600a5f9054906101000a900460ff1681565b600d5f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6108c5611963565b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109bc611963565b6101908161ffff161115610a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fc90612800565b60405180910390fd5b80600660146101000a81548161ffff021916908361ffff1602179055507f36fa651f7bdbb8a6a7289ed4df5a6e3efb1fdcaef87c1f88dfd66b08d2007dc281604051610a5191906124bb565b60405180910390a150565b610a64611963565b610a6d5f6119ea565b565b610a77611963565b5f600a5f6101000a81548160ff0219169083151502179055507f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef60405160405180910390a1565b610ac6611963565b6001600d5f6101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b62611963565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b606060048054610be190612760565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0d90612760565b8015610c585780601f10610c2f57610100808354040283529160200191610c58565b820191905f5260205f20905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905090565b610c6a611963565b6101908261ffff1611158015610c8657506101908161ffff1611155b610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc9061288e565b60405180910390fd5b81600660166101000a81548161ffff021916908361ffff16021790555080600660146101000a81548161ffff021916908361ffff1602179055507f625428ca3cfddf32cf909a4d7ae5a8b942d838319ae2a8055f271ad78033c2f682604051610d2e91906124bb565b60405180910390a17f36fa651f7bdbb8a6a7289ed4df5a6e3efb1fdcaef87c1f88dfd66b08d2007dc281604051610d6591906124bb565b60405180910390a15050565b5f80610d7b611141565b9050610d888185856111ec565b600191505092915050565b610d9b611963565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e009061291c565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e781604051610e7891906125ff565b60405180910390a150565b610e8b611963565b62010d88610e976107e0565b610ea19190612994565b811015610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90612a5a565b60405180910390fd5b6103e86005610ef06107e0565b610efa9190612a78565b610f049190612994565b811115610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90612b4f565b60405180910390fd5b806007819055507f9efd5e66ee602c629f311865749d9af922866664ad3ff96bbfaf8035f5d24b2681604051610f7c9190612436565b60405180910390a150565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611017611963565b6101908161ffff161115611060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105790612800565b60405180910390fd5b80600660166101000a81548161ffff021916908361ffff1602179055507f625428ca3cfddf32cf909a4d7ae5a8b942d838319ae2a8055f271ad78033c2f6816040516110ac91906124bb565b60405180910390a150565b60075481565b6110c5611963565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611135575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161112c91906125ff565b60405180910390fd5b61113e816119ea565b50565b5f33905090565b6111558383836001611aad565b505050565b5f6111658484610f8d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111e657818110156111d7578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016111ce93929190612b6d565b60405180910390fd5b6111e584848484035f611aad565b5b50505050565b5f811161122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590612c12565b60405180910390fd5b600d5f9054906101000a900460ff166112f457611249610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112b45750611285610b32565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90612ca0565b60405180910390fd5b5b600a5f9054906101000a900460ff16156115bb57611310610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561137e575061134e610b32565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113b657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113f0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611408575060085f9054906101000a900460ff16155b156115ba577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114af5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561151157600b546114c08361096f565b826114cb9190612cbe565b111561150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150390612d61565b60405180910390fd5b6115b9565b600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166115b857600b5461156b8361096f565b826115769190612cbe565b11156115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90612d61565b60405180910390fd5b5b5b5b5b5f6007546115c83061096f565b101590508080156115e5575060085f9054906101000a900460ff16155b801561163d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611690575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156116e3575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561172457600160085f6101000a81548160ff02191690831515021790555061170a611c7c565b5f60085f6101000a81548160ff0219169083151502179055505b5f60085f9054906101000a900460ff1615905060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806117d2575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156117db575f90505b5f8115611950577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561185057505f600660149054906101000a900461ffff1661ffff16115b15611889576103e8600660149054906101000a900461ffff1661ffff16856118789190612a78565b6118829190612994565b905061192d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118f757505f600660169054906101000a900461ffff1661ffff16115b1561192c576103e8600660169054906101000a900461ffff1661ffff168561191f9190612a78565b6119299190612994565b90505b5b5f81111561194f57611940863083611f72565b808461194c9190612d7f565b93505b5b61195b868686611f72565b505050505050565b61196b611141565b73ffffffffffffffffffffffffffffffffffffffff16611989610b32565b73ffffffffffffffffffffffffffffffffffffffff16146119e8576119ac611141565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016119df91906125ff565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b1d575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611b1491906125ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b8d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611b8491906125ff565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611c76578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611c6d9190612436565b60405180910390a35b50505050565b5f611c863061096f565b90506014600754611c979190612a78565b811115611cb0576014600754611cad9190612a78565b90505b5f600267ffffffffffffffff811115611ccc57611ccb612db2565b5b604051908082528060200260200182016040528015611cfa5781602001602082028036833780820191505090505b50905030815f81518110611d1157611d10612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dcc9190612e20565b81600181518110611de057611ddf612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e6f959493929190612f3b565b5f604051808303815f87803b158015611e86575f80fd5b505af1925050508015611e97575060015b505f4790505f811115611f6d575f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611eea90612fc0565b5f6040518083038185875af1925050503d805f8114611f24576040519150601f19603f3d011682016040523d82523d5f602084013e611f29565b606091505b505090508015611f6b577f8959421a1320789a49eeec01a4750caf8a30733c3db14f000d84484df89300f984604051611f629190612436565b60405180910390a15b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fe2575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611fd991906125ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612052575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161204991906125ff565b60405180910390fd5b61205d838383612062565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120b2578060025f8282546120a69190612cbe565b92505081905550612180565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561213b578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161213293929190612b6d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c7578060025f8282540392505081905550612211565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161226e9190612436565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122b2578082015181840152602081019050612297565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122d78261227b565b6122e18185612285565b93506122f1818560208601612295565b6122fa816122bd565b840191505092915050565b5f6020820190508181035f83015261231d81846122cd565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61235282612329565b9050919050565b61236281612348565b811461236c575f80fd5b50565b5f8135905061237d81612359565b92915050565b5f819050919050565b61239581612383565b811461239f575f80fd5b50565b5f813590506123b08161238c565b92915050565b5f80604083850312156123cc576123cb612325565b5b5f6123d98582860161236f565b92505060206123ea858286016123a2565b9150509250929050565b5f8115159050919050565b612408816123f4565b82525050565b5f6020820190506124215f8301846123ff565b92915050565b61243081612383565b82525050565b5f6020820190506124495f830184612427565b92915050565b5f805f6060848603121561246657612465612325565b5b5f6124738682870161236f565b93505060206124848682870161236f565b9250506040612495868287016123a2565b9150509250925092565b5f61ffff82169050919050565b6124b58161249f565b82525050565b5f6020820190506124ce5f8301846124ac565b92915050565b5f60ff82169050919050565b6124e9816124d4565b82525050565b5f6020820190506125025f8301846124e0565b92915050565b5f6020828403121561251d5761251c612325565b5b5f61252a8482850161236f565b91505092915050565b61253c816123f4565b8114612546575f80fd5b50565b5f8135905061255781612533565b92915050565b5f806040838503121561257357612572612325565b5b5f6125808582860161236f565b925050602061259185828601612549565b9150509250929050565b6125a48161249f565b81146125ae575f80fd5b50565b5f813590506125bf8161259b565b92915050565b5f602082840312156125da576125d9612325565b5b5f6125e7848285016125b1565b91505092915050565b6125f981612348565b82525050565b5f6020820190506126125f8301846125f0565b92915050565b5f819050919050565b5f61263b61263661263184612329565b612618565b612329565b9050919050565b5f61264c82612621565b9050919050565b5f61265d82612642565b9050919050565b61266d81612653565b82525050565b5f6020820190506126865f830184612664565b92915050565b5f80604083850312156126a2576126a1612325565b5b5f6126af858286016125b1565b92505060206126c0858286016125b1565b9150509250929050565b5f602082840312156126df576126de612325565b5b5f6126ec848285016123a2565b91505092915050565b5f806040838503121561270b5761270a612325565b5b5f6127188582860161236f565b92505060206127298582860161236f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061277757607f821691505b60208210810361278a57612789612733565b5b50919050565b7f4b494d50534f4e533a206665652063616e6e6f742062652067726561746572205f8201527f7468616e20343025000000000000000000000000000000000000000000000000602082015250565b5f6127ea602883612285565b91506127f582612790565b604082019050919050565b5f6020820190508181035f830152612817816127de565b9050919050565b7f4b494d50534f4e53206665652063616e6e6f74206265206772656174657220745f8201527f68616e2034302500000000000000000000000000000000000000000000000000602082015250565b5f612878602783612285565b91506128838261281e565b604082019050919050565b5f6020820190508181035f8301526128a58161286c565b9050919050565b7f4b494d50534f4e533a20616464726573732063616e6e6f7420626520302061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612906602583612285565b9150612911826128ac565b604082019050919050565b5f6020820190508181035f830152612933816128fa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61299e82612383565b91506129a983612383565b9250826129b9576129b861293a565b5b828204905092915050565b7f4b494d50534f4e533a207377617020746f6b656e7320617420616d6f756e74205f8201527f63616e6e6f74206265206c6f776572207468616e20302e30303125206f66207460208201527f6f74616c20737570706c79000000000000000000000000000000000000000000604082015250565b5f612a44604b83612285565b9150612a4f826129c4565b606082019050919050565b5f6020820190508181035f830152612a7181612a38565b9050919050565b5f612a8282612383565b9150612a8d83612383565b9250828202612a9b81612383565b91508282048414831517612ab257612ab1612967565b5b5092915050565b7f4b494d50534f4e533a207377617020746f6b656e7320617420616d6f756e74205f8201527f63616e6e6f7420626520686967686572207468616e20302e3525206f6620746f60208201527f74616c20737570706c7900000000000000000000000000000000000000000000604082015250565b5f612b39604a83612285565b9150612b4482612ab9565b606082019050919050565b5f6020820190508181035f830152612b6681612b2d565b9050919050565b5f606082019050612b805f8301866125f0565b612b8d6020830185612427565b612b9a6040830184612427565b949350505050565b7f4b494d50534f4e533a207472616e7366657220616d6f756e74206d75737420625f8201527f652067726561746572207468616e203000000000000000000000000000000000602082015250565b5f612bfc603083612285565b9150612c0782612ba2565b604082019050919050565b5f6020820190508181035f830152612c2981612bf0565b9050919050565b7f4b494d50534f4e533a2074726164696e6720686173206e6f74206265656e20655f8201527f6e61626c65642079657400000000000000000000000000000000000000000000602082015250565b5f612c8a602a83612285565b9150612c9582612c30565b604082019050919050565b5f6020820190508181035f830152612cb781612c7e565b9050919050565b5f612cc882612383565b9150612cd383612383565b9250828201905080821115612ceb57612cea612967565b5b92915050565b7f4b494d50534f4e533a2062616c616e636520776f756c6420657863656564206d5f8201527f61782077616c6c65742062616c616e6365000000000000000000000000000000602082015250565b5f612d4b603183612285565b9150612d5682612cf1565b604082019050919050565b5f6020820190508181035f830152612d7881612d3f565b9050919050565b5f612d8982612383565b9150612d9483612383565b9250828203905081811115612dac57612dab612967565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e1a81612359565b92915050565b5f60208284031215612e3557612e34612325565b5b5f612e4284828501612e0c565b91505092915050565b5f819050919050565b5f612e6e612e69612e6484612e4b565b612618565b612383565b9050919050565b612e7e81612e54565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612eb681612348565b82525050565b5f612ec78383612ead565b60208301905092915050565b5f602082019050919050565b5f612ee982612e84565b612ef38185612e8e565b9350612efe83612e9e565b805f5b83811015612f2e578151612f158882612ebc565b9750612f2083612ed3565b925050600181019050612f01565b5085935050505092915050565b5f60a082019050612f4e5f830188612427565b612f5b6020830187612e75565b8181036040830152612f6d8186612edf565b9050612f7c60608301856125f0565b612f896080830184612427565b9695505050505050565b5f81905092915050565b50565b5f612fab5f83612f93565b9150612fb682612f9d565b5f82019050919050565b5f612fca82612fa0565b915081905091905056fea264697066735822122073af0fa0607f064bcfb3e03d469f1c641744fae87c5e67da3c07ee8b41954fec64736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101db575f3560e01c8063751039fc11610101578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e14610678578063e064648a146106b4578063e2f45605146106dc578063f2fde38b14610706576101e2565b8063a9059cbb146105c2578063aacebbe3146105fe578063afa4f3b214610626578063bbde77c11461064e576101e2565b806394a98390116100d057806394a983901461051e578063958c2e521461054657806395d89b41146105705780639ef833d41461059a576101e2565b8063751039fc1461049e5780638a8c523c146104b45780638bcea939146104ca5780638da5cb5b146104f4576101e2565b80634a62bb6511610179578063686d83c311610148578063686d83c3146103e857806370a082311461042457806370c4767114610460578063715018a614610488576101e2565b80634a62bb65146103305780634ada218b1461035a5780634fbee19314610384578063590ffdce146103c0576101e2565b806323b872dd116101b557806323b872dd146102765780632b14ca56146102b2578063313ce567146102dc5780634706240214610306576101e2565b806306fdde03146101e6578063095ea7b31461021057806318160ddd1461024c576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61072e565b6040516102079190612305565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906123b6565b6107be565b604051610243919061240e565b60405180910390f35b348015610257575f80fd5b506102606107e0565b60405161026d9190612436565b60405180910390f35b348015610281575f80fd5b5061029c6004803603810190610297919061244f565b6107e9565b6040516102a9919061240e565b60405180910390f35b3480156102bd575f80fd5b506102c6610817565b6040516102d391906124bb565b60405180910390f35b3480156102e7575f80fd5b506102f061082b565b6040516102fd91906124ef565b60405180910390f35b348015610311575f80fd5b5061031a610833565b60405161032791906124bb565b60405180910390f35b34801561033b575f80fd5b50610344610847565b604051610351919061240e565b60405180910390f35b348015610365575f80fd5b5061036e610859565b60405161037b919061240e565b60405180910390f35b34801561038f575f80fd5b506103aa60048036038101906103a59190612508565b61086b565b6040516103b7919061240e565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e1919061255d565b6108bd565b005b3480156103f3575f80fd5b5061040e60048036038101906104099190612508565b61091d565b60405161041b919061240e565b60405180910390f35b34801561042f575f80fd5b5061044a60048036038101906104459190612508565b61096f565b6040516104579190612436565b60405180910390f35b34801561046b575f80fd5b50610486600480360381019061048191906125c5565b6109b4565b005b348015610493575f80fd5b5061049c610a5c565b005b3480156104a9575f80fd5b506104b2610a6f565b005b3480156104bf575f80fd5b506104c8610abe565b005b3480156104d5575f80fd5b506104de610b0e565b6040516104eb91906125ff565b60405180910390f35b3480156104ff575f80fd5b50610508610b32565b60405161051591906125ff565b60405180910390f35b348015610529575f80fd5b50610544600480360381019061053f919061255d565b610b5a565b005b348015610551575f80fd5b5061055a610bba565b6040516105679190612673565b60405180910390f35b34801561057b575f80fd5b50610584610bd2565b6040516105919190612305565b60405180910390f35b3480156105a5575f80fd5b506105c060048036038101906105bb919061268c565b610c62565b005b3480156105cd575f80fd5b506105e860048036038101906105e391906123b6565b610d71565b6040516105f5919061240e565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f9190612508565b610d93565b005b348015610631575f80fd5b5061064c600480360381019061064791906126ca565b610e83565b005b348015610659575f80fd5b50610662610f87565b60405161066f9190612436565b60405180910390f35b348015610683575f80fd5b5061069e600480360381019061069991906126f5565b610f8d565b6040516106ab9190612436565b60405180910390f35b3480156106bf575f80fd5b506106da60048036038101906106d591906125c5565b61100f565b005b3480156106e7575f80fd5b506106f06110b7565b6040516106fd9190612436565b60405180910390f35b348015610711575f80fd5b5061072c60048036038101906107279190612508565b6110bd565b005b60606003805461073d90612760565b80601f016020809104026020016040519081016040528092919081815260200182805461076990612760565b80156107b45780601f1061078b576101008083540402835291602001916107b4565b820191905f5260205f20905b81548152906001019060200180831161079757829003601f168201915b5050505050905090565b5f806107c8611141565b90506107d5818585611148565b600191505092915050565b5f600254905090565b5f806107f3611141565b905061080085828561115a565b61080b8585856111ec565b60019150509392505050565b600660169054906101000a900461ffff1681565b5f6012905090565b600660149054906101000a900461ffff1681565b600a5f9054906101000a900460ff1681565b600d5f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6108c5611963565b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109bc611963565b6101908161ffff161115610a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fc90612800565b60405180910390fd5b80600660146101000a81548161ffff021916908361ffff1602179055507f36fa651f7bdbb8a6a7289ed4df5a6e3efb1fdcaef87c1f88dfd66b08d2007dc281604051610a5191906124bb565b60405180910390a150565b610a64611963565b610a6d5f6119ea565b565b610a77611963565b5f600a5f6101000a81548160ff0219169083151502179055507f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef60405160405180910390a1565b610ac6611963565b6001600d5f6101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b7f00000000000000000000000086fd84329a7169e7920ba9ff6f5cf9ed916c434c81565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b62611963565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b606060048054610be190612760565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0d90612760565b8015610c585780601f10610c2f57610100808354040283529160200191610c58565b820191905f5260205f20905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905090565b610c6a611963565b6101908261ffff1611158015610c8657506101908161ffff1611155b610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc9061288e565b60405180910390fd5b81600660166101000a81548161ffff021916908361ffff16021790555080600660146101000a81548161ffff021916908361ffff1602179055507f625428ca3cfddf32cf909a4d7ae5a8b942d838319ae2a8055f271ad78033c2f682604051610d2e91906124bb565b60405180910390a17f36fa651f7bdbb8a6a7289ed4df5a6e3efb1fdcaef87c1f88dfd66b08d2007dc281604051610d6591906124bb565b60405180910390a15050565b5f80610d7b611141565b9050610d888185856111ec565b600191505092915050565b610d9b611963565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e009061291c565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e781604051610e7891906125ff565b60405180910390a150565b610e8b611963565b62010d88610e976107e0565b610ea19190612994565b811015610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90612a5a565b60405180910390fd5b6103e86005610ef06107e0565b610efa9190612a78565b610f049190612994565b811115610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90612b4f565b60405180910390fd5b806007819055507f9efd5e66ee602c629f311865749d9af922866664ad3ff96bbfaf8035f5d24b2681604051610f7c9190612436565b60405180910390a150565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611017611963565b6101908161ffff161115611060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105790612800565b60405180910390fd5b80600660166101000a81548161ffff021916908361ffff1602179055507f625428ca3cfddf32cf909a4d7ae5a8b942d838319ae2a8055f271ad78033c2f6816040516110ac91906124bb565b60405180910390a150565b60075481565b6110c5611963565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611135575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161112c91906125ff565b60405180910390fd5b61113e816119ea565b50565b5f33905090565b6111558383836001611aad565b505050565b5f6111658484610f8d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111e657818110156111d7578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016111ce93929190612b6d565b60405180910390fd5b6111e584848484035f611aad565b5b50505050565b5f811161122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590612c12565b60405180910390fd5b600d5f9054906101000a900460ff166112f457611249610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112b45750611285610b32565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90612ca0565b60405180910390fd5b5b600a5f9054906101000a900460ff16156115bb57611310610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561137e575061134e610b32565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113b657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113f0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611408575060085f9054906101000a900460ff16155b156115ba577f00000000000000000000000086fd84329a7169e7920ba9ff6f5cf9ed916c434c73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114af5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561151157600b546114c08361096f565b826114cb9190612cbe565b111561150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150390612d61565b60405180910390fd5b6115b9565b600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166115b857600b5461156b8361096f565b826115769190612cbe565b11156115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90612d61565b60405180910390fd5b5b5b5b5b5f6007546115c83061096f565b101590508080156115e5575060085f9054906101000a900460ff16155b801561163d57507f00000000000000000000000086fd84329a7169e7920ba9ff6f5cf9ed916c434c73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611690575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156116e3575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561172457600160085f6101000a81548160ff02191690831515021790555061170a611c7c565b5f60085f6101000a81548160ff0219169083151502179055505b5f60085f9054906101000a900460ff1615905060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806117d2575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156117db575f90505b5f8115611950577f00000000000000000000000086fd84329a7169e7920ba9ff6f5cf9ed916c434c73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561185057505f600660149054906101000a900461ffff1661ffff16115b15611889576103e8600660149054906101000a900461ffff1661ffff16856118789190612a78565b6118829190612994565b905061192d565b7f00000000000000000000000086fd84329a7169e7920ba9ff6f5cf9ed916c434c73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118f757505f600660169054906101000a900461ffff1661ffff16115b1561192c576103e8600660169054906101000a900461ffff1661ffff168561191f9190612a78565b6119299190612994565b90505b5b5f81111561194f57611940863083611f72565b808461194c9190612d7f565b93505b5b61195b868686611f72565b505050505050565b61196b611141565b73ffffffffffffffffffffffffffffffffffffffff16611989610b32565b73ffffffffffffffffffffffffffffffffffffffff16146119e8576119ac611141565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016119df91906125ff565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b1d575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611b1491906125ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b8d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611b8491906125ff565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611c76578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611c6d9190612436565b60405180910390a35b50505050565b5f611c863061096f565b90506014600754611c979190612a78565b811115611cb0576014600754611cad9190612a78565b90505b5f600267ffffffffffffffff811115611ccc57611ccb612db2565b5b604051908082528060200260200182016040528015611cfa5781602001602082028036833780820191505090505b50905030815f81518110611d1157611d10612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dcc9190612e20565b81600181518110611de057611ddf612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e6f959493929190612f3b565b5f604051808303815f87803b158015611e86575f80fd5b505af1925050508015611e97575060015b505f4790505f811115611f6d575f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611eea90612fc0565b5f6040518083038185875af1925050503d805f8114611f24576040519150601f19603f3d011682016040523d82523d5f602084013e611f29565b606091505b505090508015611f6b577f8959421a1320789a49eeec01a4750caf8a30733c3db14f000d84484df89300f984604051611f629190612436565b60405180910390a15b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fe2575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611fd991906125ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612052575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161204991906125ff565b60405180910390fd5b61205d838383612062565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120b2578060025f8282546120a69190612cbe565b92505081905550612180565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561213b578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161213293929190612b6d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c7578060025f8282540392505081905550612211565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161226e9190612436565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122b2578082015181840152602081019050612297565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122d78261227b565b6122e18185612285565b93506122f1818560208601612295565b6122fa816122bd565b840191505092915050565b5f6020820190508181035f83015261231d81846122cd565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61235282612329565b9050919050565b61236281612348565b811461236c575f80fd5b50565b5f8135905061237d81612359565b92915050565b5f819050919050565b61239581612383565b811461239f575f80fd5b50565b5f813590506123b08161238c565b92915050565b5f80604083850312156123cc576123cb612325565b5b5f6123d98582860161236f565b92505060206123ea858286016123a2565b9150509250929050565b5f8115159050919050565b612408816123f4565b82525050565b5f6020820190506124215f8301846123ff565b92915050565b61243081612383565b82525050565b5f6020820190506124495f830184612427565b92915050565b5f805f6060848603121561246657612465612325565b5b5f6124738682870161236f565b93505060206124848682870161236f565b9250506040612495868287016123a2565b9150509250925092565b5f61ffff82169050919050565b6124b58161249f565b82525050565b5f6020820190506124ce5f8301846124ac565b92915050565b5f60ff82169050919050565b6124e9816124d4565b82525050565b5f6020820190506125025f8301846124e0565b92915050565b5f6020828403121561251d5761251c612325565b5b5f61252a8482850161236f565b91505092915050565b61253c816123f4565b8114612546575f80fd5b50565b5f8135905061255781612533565b92915050565b5f806040838503121561257357612572612325565b5b5f6125808582860161236f565b925050602061259185828601612549565b9150509250929050565b6125a48161249f565b81146125ae575f80fd5b50565b5f813590506125bf8161259b565b92915050565b5f602082840312156125da576125d9612325565b5b5f6125e7848285016125b1565b91505092915050565b6125f981612348565b82525050565b5f6020820190506126125f8301846125f0565b92915050565b5f819050919050565b5f61263b61263661263184612329565b612618565b612329565b9050919050565b5f61264c82612621565b9050919050565b5f61265d82612642565b9050919050565b61266d81612653565b82525050565b5f6020820190506126865f830184612664565b92915050565b5f80604083850312156126a2576126a1612325565b5b5f6126af858286016125b1565b92505060206126c0858286016125b1565b9150509250929050565b5f602082840312156126df576126de612325565b5b5f6126ec848285016123a2565b91505092915050565b5f806040838503121561270b5761270a612325565b5b5f6127188582860161236f565b92505060206127298582860161236f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061277757607f821691505b60208210810361278a57612789612733565b5b50919050565b7f4b494d50534f4e533a206665652063616e6e6f742062652067726561746572205f8201527f7468616e20343025000000000000000000000000000000000000000000000000602082015250565b5f6127ea602883612285565b91506127f582612790565b604082019050919050565b5f6020820190508181035f830152612817816127de565b9050919050565b7f4b494d50534f4e53206665652063616e6e6f74206265206772656174657220745f8201527f68616e2034302500000000000000000000000000000000000000000000000000602082015250565b5f612878602783612285565b91506128838261281e565b604082019050919050565b5f6020820190508181035f8301526128a58161286c565b9050919050565b7f4b494d50534f4e533a20616464726573732063616e6e6f7420626520302061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612906602583612285565b9150612911826128ac565b604082019050919050565b5f6020820190508181035f830152612933816128fa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61299e82612383565b91506129a983612383565b9250826129b9576129b861293a565b5b828204905092915050565b7f4b494d50534f4e533a207377617020746f6b656e7320617420616d6f756e74205f8201527f63616e6e6f74206265206c6f776572207468616e20302e30303125206f66207460208201527f6f74616c20737570706c79000000000000000000000000000000000000000000604082015250565b5f612a44604b83612285565b9150612a4f826129c4565b606082019050919050565b5f6020820190508181035f830152612a7181612a38565b9050919050565b5f612a8282612383565b9150612a8d83612383565b9250828202612a9b81612383565b91508282048414831517612ab257612ab1612967565b5b5092915050565b7f4b494d50534f4e533a207377617020746f6b656e7320617420616d6f756e74205f8201527f63616e6e6f7420626520686967686572207468616e20302e3525206f6620746f60208201527f74616c20737570706c7900000000000000000000000000000000000000000000604082015250565b5f612b39604a83612285565b9150612b4482612ab9565b606082019050919050565b5f6020820190508181035f830152612b6681612b2d565b9050919050565b5f606082019050612b805f8301866125f0565b612b8d6020830185612427565b612b9a6040830184612427565b949350505050565b7f4b494d50534f4e533a207472616e7366657220616d6f756e74206d75737420625f8201527f652067726561746572207468616e203000000000000000000000000000000000602082015250565b5f612bfc603083612285565b9150612c0782612ba2565b604082019050919050565b5f6020820190508181035f830152612c2981612bf0565b9050919050565b7f4b494d50534f4e533a2074726164696e6720686173206e6f74206265656e20655f8201527f6e61626c65642079657400000000000000000000000000000000000000000000602082015250565b5f612c8a602a83612285565b9150612c9582612c30565b604082019050919050565b5f6020820190508181035f830152612cb781612c7e565b9050919050565b5f612cc882612383565b9150612cd383612383565b9250828201905080821115612ceb57612cea612967565b5b92915050565b7f4b494d50534f4e533a2062616c616e636520776f756c6420657863656564206d5f8201527f61782077616c6c65742062616c616e6365000000000000000000000000000000602082015250565b5f612d4b603183612285565b9150612d5682612cf1565b604082019050919050565b5f6020820190508181035f830152612d7881612d3f565b9050919050565b5f612d8982612383565b9150612d9483612383565b9250828203905081811115612dac57612dab612967565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e1a81612359565b92915050565b5f60208284031215612e3557612e34612325565b5b5f612e4284828501612e0c565b91505092915050565b5f819050919050565b5f612e6e612e69612e6484612e4b565b612618565b612383565b9050919050565b612e7e81612e54565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612eb681612348565b82525050565b5f612ec78383612ead565b60208301905092915050565b5f602082019050919050565b5f612ee982612e84565b612ef38185612e8e565b9350612efe83612e9e565b805f5b83811015612f2e578151612f158882612ebc565b9750612f2083612ed3565b925050600181019050612f01565b5085935050505092915050565b5f60a082019050612f4e5f830188612427565b612f5b6020830187612e75565b8181036040830152612f6d8186612edf565b9050612f7c60608301856125f0565b612f896080830184612427565b9695505050505050565b5f81905092915050565b50565b5f612fab5f83612f93565b9150612fb682612f9d565b5f82019050919050565b5f612fca82612fa0565b915081905091905056fea264697066735822122073af0fa0607f064bcfb3e03d469f1c641744fae87c5e67da3c07ee8b41954fec64736f6c63430008170033

Deployed Bytecode Sourcemap

13463:7355:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9156:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10011:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9444:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10207:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13576:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9354:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13545:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13763:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14106:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18389:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20191:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18521:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9549:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19754:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6798:103;;;;;;;;;;;;;:::i;:::-;;19055:115;;;;;;;;;;;;;:::i;:::-;;18675:116;;;;;;;;;;;;;:::i;:::-;;13949:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6533:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20333:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13990:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9253:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20501:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9673:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18797:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19176:572;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13803:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9863:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19969:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13608:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6907:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9156:91;9201:13;9234:5;9227:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9156:91;:::o;10011:190::-;10084:4;10101:13;10117:12;:10;:12::i;:::-;10101:28;;10140:31;10149:5;10156:7;10165:5;10140:8;:31::i;:::-;10189:4;10182:11;;;10011:190;;;;:::o;9444:99::-;9496:7;9523:12;;9516:19;;9444:99;:::o;10207:249::-;10294:4;10311:15;10329:12;:10;:12::i;:::-;10311:30;;10352:37;10368:4;10374:7;10383:5;10352:15;:37::i;:::-;10400:26;10410:4;10416:2;10420:5;10400:9;:26::i;:::-;10444:4;10437:11;;;10207:249;;;;;:::o;13576:25::-;;;;;;;;;;;;;:::o;9354:84::-;9403:5;9428:2;9421:9;;9354:84;:::o;13545:24::-;;;;;;;;;;;;;:::o;13763:33::-;;;;;;;;;;;;;:::o;14106:26::-;;;;;;;;;;;;;:::o;18389:124::-;18455:4;18479:17;:26;18497:7;18479:26;;;;;;;;;;;;;;;;;;;;;;;;;18472:33;;18389:124;;;:::o;20191:136::-;6494:13;:11;:13::i;:::-;20311:8:::1;20282:17;:26;20300:7;20282:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;20191:136:::0;;:::o;18521:148::-;18599:4;18623:29;:38;18653:7;18623:38;;;;;;;;;;;;;;;;;;;;;;;;;18616:45;;18521:148;;;:::o;9549:118::-;9614:7;9641:9;:18;9651:7;9641:18;;;;;;;;;;;;;;;;9634:25;;9549:118;;;:::o;19754:209::-;6494:13;:11;:13::i;:::-;19842:3:::1;19829:9;:16;;;;19821:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;19910:9;19901:6;;:18;;;;;;;;;;;;;;;;;;19935:20;19945:9;19935:20;;;;;;:::i;:::-;;;;;;;;19754:209:::0;:::o;6798:103::-;6494:13;:11;:13::i;:::-;6863:30:::1;6890:1;6863:18;:30::i;:::-;6798:103::o:0;19055:115::-;6494:13;:11;:13::i;:::-;19126:5:::1;19109:14;;:22;;;;;;;;;;;;;;;;;;19147:15;;;;;;;;;;19055:115::o:0;18675:116::-;6494:13;:11;:13::i;:::-;18747:4:::1;18730:14;;:21;;;;;;;;;;;;;;;;;;18767:16;;;;;;;;;;18675:116::o:0;13949:34::-;;;:::o;6533:87::-;6579:7;6606:6;;;;;;;;;;;6599:13;;6533:87;:::o;20333:160::-;6494:13;:11;:13::i;:::-;20477:8:::1;20436:29;:38;20466:7;20436:38;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;20333:160:::0;;:::o;13990:107::-;14054:42;13990:107;:::o;9253:95::-;9300:13;9333:7;9326:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9253:95;:::o;20501:314::-;6494:13;:11;:13::i;:::-;20607:3:::1;20593:10;:17;;;;:36;;;;;20626:3;20614:9;:15;;;;20593:36;20585:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;20694:10;20684:7;;:20;;;;;;;;;;;;;;;;;;20724:9;20715:6;;:18;;;;;;;;;;;;;;;;;;20749:22;20760:10;20749:22;;;;;;:::i;:::-;;;;;;;;20787:20;20797:9;20787:20;;;;;;:::i;:::-;;;;;;;;20501:314:::0;;:::o;9673:182::-;9742:4;9759:13;9775:12;:10;:12::i;:::-;9759:28;;9798:27;9808:5;9815:2;9819:5;9798:9;:27::i;:::-;9843:4;9836:11;;;9673:182;;;;:::o;18797:252::-;6494:13;:11;:13::i;:::-;18908:1:::1;18886:24;;:10;:24;;::::0;18878:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18981:10;18963:15;;:28;;;;;;;;;;;;;;;;;;19007:34;19030:10;19007:34;;;;;;:::i;:::-;;;;;;;;18797:252:::0;:::o;19176:572::-;6494:13;:11;:13::i;:::-;19331:6:::1;19315:13;:11;:13::i;:::-;:22;;;;:::i;:::-;19290:21;:47;;19268:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;19520:5;19515:1;19499:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19498:27;;;;:::i;:::-;19473:21;:52;;19451:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;19659:21;19638:18;:42;;;;19696:44;19718:21;19696:44;;;;;;:::i;:::-;;;;;;;;19176:572:::0;:::o;13803:50::-;;;;:::o;9863:142::-;9943:7;9970:11;:18;9982:5;9970:18;;;;;;;;;;;;;;;:27;9989:7;9970:27;;;;;;;;;;;;;;;;9963:34;;9863:142;;;;:::o;19969:216::-;6494:13;:11;:13::i;:::-;20060:3:::1;20046:10;:17;;;;20038:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20129:10;20119:7;;:20;;;;;;;;;;;;;;;;;;20155:22;20166:10;20155:22;;;;;;:::i;:::-;;;;;;;;19969:216:::0;:::o;13608:49::-;;;;:::o;6907:220::-;6494:13;:11;:13::i;:::-;7012:1:::1;6992:22;;:8;:22;;::::0;6988:93:::1;;7066:1;7038:31;;;;;;;;;;;:::i;:::-;;;;;;;;6988:93;7091:28;7110:8;7091:18;:28::i;:::-;6907:220:::0;:::o;5531:98::-;5584:7;5611:10;5604:17;;5531:98;:::o;12361:130::-;12446:37;12455:5;12462:7;12471:5;12478:4;12446:8;:37::i;:::-;12361:130;;;:::o;12946:487::-;13046:24;13073:25;13083:5;13090:7;13073:9;:25::i;:::-;13046:52;;13133:17;13113:16;:37;13109:317;;13190:5;13171:16;:24;13167:132;;;13250:7;13259:16;13277:5;13223:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;13167:132;13342:57;13351:5;13358:7;13386:5;13367:16;:24;13393:5;13342:8;:57::i;:::-;13109:317;13035:398;12946:487;;;:::o;14943:2500::-;15050:1;15041:6;:10;15033:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15168:14;;;;;;;;;;;15163:135;;15215:7;:5;:7::i;:::-;15207:15;;:4;:15;;;:32;;;;15232:7;:5;:7::i;:::-;15226:13;;:2;:13;;;15207:32;15199:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;15163:135;15356:14;;;;;;;;;;;15352:789;;;15399:7;:5;:7::i;:::-;15391:15;;:4;:15;;;;:32;;;;;15416:7;:5;:7::i;:::-;15410:13;;:2;:13;;;;15391:32;:52;;;;;15441:1;15427:16;;:2;:16;;;;15391:52;:77;;;;;15461:6;15447:21;;:2;:21;;;;15391:77;:99;;;;;15473:17;;;;;;;;;;;15472:18;15391:99;15387:743;;;15551:9;15543:17;;:4;:17;;;:55;;;;;15565:29;:33;15595:2;15565:33;;;;;;;;;;;;;;;;;;;;;;;;;15564:34;15543:55;15539:576;;;15683:16;;15666:13;15676:2;15666:9;:13::i;:::-;15657:6;:22;;;;:::i;:::-;:42;;15623:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;15539:576;;;15885:29;:33;15915:2;15885:33;;;;;;;;;;;;;;;;;;;;;;;;;15880:235;;16003:16;;15986:13;15996:2;15986:9;:13::i;:::-;15977:6;:22;;;;:::i;:::-;:42;;15943:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;15880:235;15539:576;15387:743;15352:789;16217:15;16263:18;;16235:24;16253:4;16235:9;:24::i;:::-;:46;;16217:64;;16296:10;:32;;;;;16311:17;;;;;;;;;;;16310:18;16296:32;:53;;;;;16340:9;16332:17;;:4;:17;;;;16296:53;:81;;;;;16354:17;:23;16372:4;16354:23;;;;;;;;;;;;;;;;;;;;;;;;;16353:24;16296:81;:107;;;;;16382:17;:21;16400:2;16382:21;;;;;;;;;;;;;;;;;;;;;;;;;16381:22;16296:107;16292:245;;;16449:4;16429:17;;:24;;;;;;;;;;;;;;;;;;16468:17;:15;:17::i;:::-;16520:5;16500:17;;:25;;;;;;;;;;;;;;;;;;16292:245;16594:13;16611:17;;;;;;;;;;;16610:18;16594:34;;16643:17;:23;16661:4;16643:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;16670:17;:21;16688:2;16670:21;;;;;;;;;;;;;;;;;;;;;;;;;16643:48;16639:97;;;16719:5;16708:16;;16639:97;16748:12;16814:8;16810:548;;;16880:9;16872:17;;:4;:17;;;:31;;;;;16902:1;16893:6;;;;;;;;;;;:10;;;16872:31;16868:257;;;16951:5;16941:6;;;;;;;;;;;16932:15;;:6;:15;;;;:::i;:::-;16931:25;;;;:::i;:::-;16924:32;;16868:257;;;17031:9;17025:15;;:2;:15;;;:30;;;;;17054:1;17044:7;;;;;;;;;;;:11;;;17025:30;17021:104;;;17104:5;17093:7;;;;;;;;;;;17084:16;;:6;:16;;;;:::i;:::-;17083:26;;;;:::i;:::-;17076:33;;17021:104;16868:257;17234:1;17227:4;:8;17223:124;;;17256:42;17272:4;17286;17293;17256:15;:42::i;:::-;17327:4;17317:14;;;;;:::i;:::-;;;17223:124;16810:548;17402:33;17418:4;17424:2;17428:6;17402:15;:33::i;:::-;15022:2421;;;14943:2500;;;:::o;6626:166::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6682:103;;6760:12;:10;:12::i;:::-;6733:40;;;;;;;;;;;:::i;:::-;;;;;;;;6682:103;6626:166::o;7133:191::-;7207:16;7226:6;;;;;;;;;;;7207:25;;7252:8;7243:6;;:17;;;;;;;;;;;;;;;;;;7307:8;7276:40;;7297:8;7276:40;;;;;;;;;;;;7196:128;7133:191;:::o;12497:443::-;12627:1;12610:19;;:5;:19;;;12606:91;;12682:1;12653:32;;;;;;;;;;;:::i;:::-;;;;;;;;12606:91;12730:1;12711:21;;:7;:21;;;12707:92;;12784:1;12756:31;;;;;;;;;;;:::i;:::-;;;;;;;;12707:92;12839:5;12809:11;:18;12821:5;12809:18;;;;;;;;;;;;;;;:27;12828:7;12809:27;;;;;;;;;;;;;;;:35;;;;12859:9;12855:78;;;12906:7;12890:31;;12899:5;12890:31;;;12915:5;12890:31;;;;;;:::i;:::-;;;;;;;;12855:78;12497:443;;;;:::o;17449:934::-;17551:26;17580:24;17598:4;17580:9;:24::i;:::-;17551:53;;17661:2;17640:18;;:23;;;;:::i;:::-;17619:18;:44;17615:121;;;17722:2;17701:18;;:23;;;;:::i;:::-;17680:44;;17615:121;17780:21;17818:1;17804:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17780:40;;17849:4;17831;17836:1;17831:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14054:42;17875:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17865:4;17870:1;17865:7;;;;;;;;:::i;:::-;;;;;;;:28;;;;;;;;;;;14054:42;17908:62;;;17985:18;18005:1;18008:4;18022;18029:15;17908:147;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17904:163;18113:18;18134:21;18113:42;;18183:1;18170:10;:14;18166:210;;;18202:12;18219:15;;;;;;;;;;;:20;;18247:10;18219:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18201:61;;;18281:7;18277:88;;;18314:35;18330:18;18314:35;;;;;;:::i;:::-;;;;;;;;18277:88;18186:190;18166:210;17484:899;;;17449:934::o;10462:316::-;10570:1;10554:18;;:4;:18;;;10550:88;;10623:1;10596:30;;;;;;;;;;;:::i;:::-;;;;;;;;10550:88;10666:1;10652:16;;:2;:16;;;10648:88;;10721:1;10692:32;;;;;;;;;;;:::i;:::-;;;;;;;;10648:88;10746:24;10754:4;10760:2;10764:5;10746:7;:24::i;:::-;10462:316;;;:::o;10784:1135::-;10890:1;10874:18;;:4;:18;;;10870:552;;11028:5;11012:12;;:21;;;;;;;:::i;:::-;;;;;;;;10870:552;;;11066:19;11088:9;:15;11098:4;11088:15;;;;;;;;;;;;;;;;11066:37;;11136:5;11122:11;:19;11118:117;;;11194:4;11200:11;11213:5;11169:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;11118:117;11390:5;11376:11;:19;11358:9;:15;11368:4;11358:15;;;;;;;;;;;;;;;:37;;;;11051:371;10870:552;11452:1;11438:16;;:2;:16;;;11434:435;;11620:5;11604:12;;:21;;;;;;;;;;;11434:435;;;11837:5;11820:9;:13;11830:2;11820:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;11434:435;11901:2;11886:25;;11895:4;11886:25;;;11905:5;11886:25;;;;;;:::i;:::-;;;;;;;;10784:1135;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:89::-;4459:7;4499:6;4492:5;4488:18;4477:29;;4423:89;;;:::o;4518:115::-;4603:23;4620:5;4603:23;:::i;:::-;4598:3;4591:36;4518:115;;:::o;4639:218::-;4730:4;4768:2;4757:9;4753:18;4745:26;;4781:69;4847:1;4836:9;4832:17;4823:6;4781:69;:::i;:::-;4639:218;;;;:::o;4863:86::-;4898:7;4938:4;4931:5;4927:16;4916:27;;4863:86;;;:::o;4955:112::-;5038:22;5054:5;5038:22;:::i;:::-;5033:3;5026:35;4955:112;;:::o;5073:214::-;5162:4;5200:2;5189:9;5185:18;5177:26;;5213:67;5277:1;5266:9;5262:17;5253:6;5213:67;:::i;:::-;5073:214;;;;:::o;5293:329::-;5352:6;5401:2;5389:9;5380:7;5376:23;5372:32;5369:119;;;5407:79;;:::i;:::-;5369:119;5527:1;5552:53;5597:7;5588:6;5577:9;5573:22;5552:53;:::i;:::-;5542:63;;5498:117;5293:329;;;;:::o;5628:116::-;5698:21;5713:5;5698:21;:::i;:::-;5691:5;5688:32;5678:60;;5734:1;5731;5724:12;5678:60;5628:116;:::o;5750:133::-;5793:5;5831:6;5818:20;5809:29;;5847:30;5871:5;5847:30;:::i;:::-;5750:133;;;;:::o;5889:468::-;5954:6;5962;6011:2;5999:9;5990:7;5986:23;5982:32;5979:119;;;6017:79;;:::i;:::-;5979:119;6137:1;6162:53;6207:7;6198:6;6187:9;6183:22;6162:53;:::i;:::-;6152:63;;6108:117;6264:2;6290:50;6332:7;6323:6;6312:9;6308:22;6290:50;:::i;:::-;6280:60;;6235:115;5889:468;;;;;:::o;6363:120::-;6435:23;6452:5;6435:23;:::i;:::-;6428:5;6425:34;6415:62;;6473:1;6470;6463:12;6415:62;6363:120;:::o;6489:137::-;6534:5;6572:6;6559:20;6550:29;;6588:32;6614:5;6588:32;:::i;:::-;6489:137;;;;:::o;6632:327::-;6690:6;6739:2;6727:9;6718:7;6714:23;6710:32;6707:119;;;6745:79;;:::i;:::-;6707:119;6865:1;6890:52;6934:7;6925:6;6914:9;6910:22;6890:52;:::i;:::-;6880:62;;6836:116;6632:327;;;;:::o;6965:118::-;7052:24;7070:5;7052:24;:::i;:::-;7047:3;7040:37;6965:118;;:::o;7089:222::-;7182:4;7220:2;7209:9;7205:18;7197:26;;7233:71;7301:1;7290:9;7286:17;7277:6;7233:71;:::i;:::-;7089:222;;;;:::o;7317:60::-;7345:3;7366:5;7359:12;;7317:60;;;:::o;7383:142::-;7433:9;7466:53;7484:34;7493:24;7511:5;7493:24;:::i;:::-;7484:34;:::i;:::-;7466:53;:::i;:::-;7453:66;;7383:142;;;:::o;7531:126::-;7581:9;7614:37;7645:5;7614:37;:::i;:::-;7601:50;;7531:126;;;:::o;7663:150::-;7737:9;7770:37;7801:5;7770:37;:::i;:::-;7757:50;;7663:150;;;:::o;7819:179::-;7930:61;7985:5;7930:61;:::i;:::-;7925:3;7918:74;7819:179;;:::o;8004:270::-;8121:4;8159:2;8148:9;8144:18;8136:26;;8172:95;8264:1;8253:9;8249:17;8240:6;8172:95;:::i;:::-;8004:270;;;;:::o;8280:470::-;8346:6;8354;8403:2;8391:9;8382:7;8378:23;8374:32;8371:119;;;8409:79;;:::i;:::-;8371:119;8529:1;8554:52;8598:7;8589:6;8578:9;8574:22;8554:52;:::i;:::-;8544:62;;8500:116;8655:2;8681:52;8725:7;8716:6;8705:9;8701:22;8681:52;:::i;:::-;8671:62;;8626:117;8280:470;;;;;:::o;8756:329::-;8815:6;8864:2;8852:9;8843:7;8839:23;8835:32;8832:119;;;8870:79;;:::i;:::-;8832:119;8990:1;9015:53;9060:7;9051:6;9040:9;9036:22;9015:53;:::i;:::-;9005:63;;8961:117;8756:329;;;;:::o;9091:474::-;9159:6;9167;9216:2;9204:9;9195:7;9191:23;9187:32;9184:119;;;9222:79;;:::i;:::-;9184:119;9342:1;9367:53;9412:7;9403:6;9392:9;9388:22;9367:53;:::i;:::-;9357:63;;9313:117;9469:2;9495:53;9540:7;9531:6;9520:9;9516:22;9495:53;:::i;:::-;9485:63;;9440:118;9091:474;;;;;:::o;9571:180::-;9619:77;9616:1;9609:88;9716:4;9713:1;9706:15;9740:4;9737:1;9730:15;9757:320;9801:6;9838:1;9832:4;9828:12;9818:22;;9885:1;9879:4;9875:12;9906:18;9896:81;;9962:4;9954:6;9950:17;9940:27;;9896:81;10024:2;10016:6;10013:14;9993:18;9990:38;9987:84;;10043:18;;:::i;:::-;9987:84;9808:269;9757:320;;;:::o;10083:227::-;10223:34;10219:1;10211:6;10207:14;10200:58;10292:10;10287:2;10279:6;10275:15;10268:35;10083:227;:::o;10316:366::-;10458:3;10479:67;10543:2;10538:3;10479:67;:::i;:::-;10472:74;;10555:93;10644:3;10555:93;:::i;:::-;10673:2;10668:3;10664:12;10657:19;;10316:366;;;:::o;10688:419::-;10854:4;10892:2;10881:9;10877:18;10869:26;;10941:9;10935:4;10931:20;10927:1;10916:9;10912:17;10905:47;10969:131;11095:4;10969:131;:::i;:::-;10961:139;;10688:419;;;:::o;11113:226::-;11253:34;11249:1;11241:6;11237:14;11230:58;11322:9;11317:2;11309:6;11305:15;11298:34;11113:226;:::o;11345:366::-;11487:3;11508:67;11572:2;11567:3;11508:67;:::i;:::-;11501:74;;11584:93;11673:3;11584:93;:::i;:::-;11702:2;11697:3;11693:12;11686:19;;11345:366;;;:::o;11717:419::-;11883:4;11921:2;11910:9;11906:18;11898:26;;11970:9;11964:4;11960:20;11956:1;11945:9;11941:17;11934:47;11998:131;12124:4;11998:131;:::i;:::-;11990:139;;11717:419;;;:::o;12142:224::-;12282:34;12278:1;12270:6;12266:14;12259:58;12351:7;12346:2;12338:6;12334:15;12327:32;12142:224;:::o;12372:366::-;12514:3;12535:67;12599:2;12594:3;12535:67;:::i;:::-;12528:74;;12611:93;12700:3;12611:93;:::i;:::-;12729:2;12724:3;12720:12;12713:19;;12372:366;;;:::o;12744:419::-;12910:4;12948:2;12937:9;12933:18;12925:26;;12997:9;12991:4;12987:20;12983:1;12972:9;12968:17;12961:47;13025:131;13151:4;13025:131;:::i;:::-;13017:139;;12744:419;;;:::o;13169:180::-;13217:77;13214:1;13207:88;13314:4;13311:1;13304:15;13338:4;13335:1;13328:15;13355:180;13403:77;13400:1;13393:88;13500:4;13497:1;13490:15;13524:4;13521:1;13514:15;13541:185;13581:1;13598:20;13616:1;13598:20;:::i;:::-;13593:25;;13632:20;13650:1;13632:20;:::i;:::-;13627:25;;13671:1;13661:35;;13676:18;;:::i;:::-;13661:35;13718:1;13715;13711:9;13706:14;;13541:185;;;;:::o;13732:299::-;13872:34;13868:1;13860:6;13856:14;13849:58;13941:34;13936:2;13928:6;13924:15;13917:59;14010:13;14005:2;13997:6;13993:15;13986:38;13732:299;:::o;14037:366::-;14179:3;14200:67;14264:2;14259:3;14200:67;:::i;:::-;14193:74;;14276:93;14365:3;14276:93;:::i;:::-;14394:2;14389:3;14385:12;14378:19;;14037:366;;;:::o;14409:419::-;14575:4;14613:2;14602:9;14598:18;14590:26;;14662:9;14656:4;14652:20;14648:1;14637:9;14633:17;14626:47;14690:131;14816:4;14690:131;:::i;:::-;14682:139;;14409:419;;;:::o;14834:410::-;14874:7;14897:20;14915:1;14897:20;:::i;:::-;14892:25;;14931:20;14949:1;14931:20;:::i;:::-;14926:25;;14986:1;14983;14979:9;15008:30;15026:11;15008:30;:::i;:::-;14997:41;;15187:1;15178:7;15174:15;15171:1;15168:22;15148:1;15141:9;15121:83;15098:139;;15217:18;;:::i;:::-;15098:139;14882:362;14834:410;;;;:::o;15250:298::-;15390:34;15386:1;15378:6;15374:14;15367:58;15459:34;15454:2;15446:6;15442:15;15435:59;15528:12;15523:2;15515:6;15511:15;15504:37;15250:298;:::o;15554:366::-;15696:3;15717:67;15781:2;15776:3;15717:67;:::i;:::-;15710:74;;15793:93;15882:3;15793:93;:::i;:::-;15911:2;15906:3;15902:12;15895:19;;15554:366;;;:::o;15926:419::-;16092:4;16130:2;16119:9;16115:18;16107:26;;16179:9;16173:4;16169:20;16165:1;16154:9;16150:17;16143:47;16207:131;16333:4;16207:131;:::i;:::-;16199:139;;15926:419;;;:::o;16351:442::-;16500:4;16538:2;16527:9;16523:18;16515:26;;16551:71;16619:1;16608:9;16604:17;16595:6;16551:71;:::i;:::-;16632:72;16700:2;16689:9;16685:18;16676:6;16632:72;:::i;:::-;16714;16782:2;16771:9;16767:18;16758:6;16714:72;:::i;:::-;16351:442;;;;;;:::o;16799:235::-;16939:34;16935:1;16927:6;16923:14;16916:58;17008:18;17003:2;16995:6;16991:15;16984:43;16799:235;:::o;17040:366::-;17182:3;17203:67;17267:2;17262:3;17203:67;:::i;:::-;17196:74;;17279:93;17368:3;17279:93;:::i;:::-;17397:2;17392:3;17388:12;17381:19;;17040:366;;;:::o;17412:419::-;17578:4;17616:2;17605:9;17601:18;17593:26;;17665:9;17659:4;17655:20;17651:1;17640:9;17636:17;17629:47;17693:131;17819:4;17693:131;:::i;:::-;17685:139;;17412:419;;;:::o;17837:229::-;17977:34;17973:1;17965:6;17961:14;17954:58;18046:12;18041:2;18033:6;18029:15;18022:37;17837:229;:::o;18072:366::-;18214:3;18235:67;18299:2;18294:3;18235:67;:::i;:::-;18228:74;;18311:93;18400:3;18311:93;:::i;:::-;18429:2;18424:3;18420:12;18413:19;;18072:366;;;:::o;18444:419::-;18610:4;18648:2;18637:9;18633:18;18625:26;;18697:9;18691:4;18687:20;18683:1;18672:9;18668:17;18661:47;18725:131;18851:4;18725:131;:::i;:::-;18717:139;;18444:419;;;:::o;18869:191::-;18909:3;18928:20;18946:1;18928:20;:::i;:::-;18923:25;;18962:20;18980:1;18962:20;:::i;:::-;18957:25;;19005:1;19002;18998:9;18991:16;;19026:3;19023:1;19020:10;19017:36;;;19033:18;;:::i;:::-;19017:36;18869:191;;;;:::o;19066:236::-;19206:34;19202:1;19194:6;19190:14;19183:58;19275:19;19270:2;19262:6;19258:15;19251:44;19066:236;:::o;19308:366::-;19450:3;19471:67;19535:2;19530:3;19471:67;:::i;:::-;19464:74;;19547:93;19636:3;19547:93;:::i;:::-;19665:2;19660:3;19656:12;19649:19;;19308:366;;;:::o;19680:419::-;19846:4;19884:2;19873:9;19869:18;19861:26;;19933:9;19927:4;19923:20;19919:1;19908:9;19904:17;19897:47;19961:131;20087:4;19961:131;:::i;:::-;19953:139;;19680:419;;;:::o;20105:194::-;20145:4;20165:20;20183:1;20165:20;:::i;:::-;20160:25;;20199:20;20217:1;20199:20;:::i;:::-;20194:25;;20243:1;20240;20236:9;20228:17;;20267:1;20261:4;20258:11;20255:37;;;20272:18;;:::i;:::-;20255:37;20105:194;;;;:::o;20305:180::-;20353:77;20350:1;20343:88;20450:4;20447:1;20440:15;20474:4;20471:1;20464:15;20491:180;20539:77;20536:1;20529:88;20636:4;20633:1;20626:15;20660:4;20657:1;20650:15;20677:143;20734:5;20765:6;20759:13;20750:22;;20781:33;20808:5;20781:33;:::i;:::-;20677:143;;;;:::o;20826:351::-;20896:6;20945:2;20933:9;20924:7;20920:23;20916:32;20913:119;;;20951:79;;:::i;:::-;20913:119;21071:1;21096:64;21152:7;21143:6;21132:9;21128:22;21096:64;:::i;:::-;21086:74;;21042:128;20826:351;;;;:::o;21183:85::-;21228:7;21257:5;21246:16;;21183:85;;;:::o;21274:158::-;21332:9;21365:61;21383:42;21392:32;21418:5;21392:32;:::i;:::-;21383:42;:::i;:::-;21365:61;:::i;:::-;21352:74;;21274:158;;;:::o;21438:147::-;21533:45;21572:5;21533:45;:::i;:::-;21528:3;21521:58;21438:147;;:::o;21591:114::-;21658:6;21692:5;21686:12;21676:22;;21591:114;;;:::o;21711:184::-;21810:11;21844:6;21839:3;21832:19;21884:4;21879:3;21875:14;21860:29;;21711:184;;;;:::o;21901:132::-;21968:4;21991:3;21983:11;;22021:4;22016:3;22012:14;22004:22;;21901:132;;;:::o;22039:108::-;22116:24;22134:5;22116:24;:::i;:::-;22111:3;22104:37;22039:108;;:::o;22153:179::-;22222:10;22243:46;22285:3;22277:6;22243:46;:::i;:::-;22321:4;22316:3;22312:14;22298:28;;22153:179;;;;:::o;22338:113::-;22408:4;22440;22435:3;22431:14;22423:22;;22338:113;;;:::o;22487:732::-;22606:3;22635:54;22683:5;22635:54;:::i;:::-;22705:86;22784:6;22779:3;22705:86;:::i;:::-;22698:93;;22815:56;22865:5;22815:56;:::i;:::-;22894:7;22925:1;22910:284;22935:6;22932:1;22929:13;22910:284;;;23011:6;23005:13;23038:63;23097:3;23082:13;23038:63;:::i;:::-;23031:70;;23124:60;23177:6;23124:60;:::i;:::-;23114:70;;22970:224;22957:1;22954;22950:9;22945:14;;22910:284;;;22914:14;23210:3;23203:10;;22611:608;;;22487:732;;;;:::o;23225:831::-;23488:4;23526:3;23515:9;23511:19;23503:27;;23540:71;23608:1;23597:9;23593:17;23584:6;23540:71;:::i;:::-;23621:80;23697:2;23686:9;23682:18;23673:6;23621:80;:::i;:::-;23748:9;23742:4;23738:20;23733:2;23722:9;23718:18;23711:48;23776:108;23879:4;23870:6;23776:108;:::i;:::-;23768:116;;23894:72;23962:2;23951:9;23947:18;23938:6;23894:72;:::i;:::-;23976:73;24044:3;24033:9;24029:19;24020:6;23976:73;:::i;:::-;23225:831;;;;;;;;:::o;24062:147::-;24163:11;24200:3;24185:18;;24062:147;;;;:::o;24215:114::-;;:::o;24335:398::-;24494:3;24515:83;24596:1;24591:3;24515:83;:::i;:::-;24508:90;;24607:93;24696:3;24607:93;:::i;:::-;24725:1;24720:3;24716:11;24709:18;;24335:398;;;:::o;24739:379::-;24923:3;24945:147;25088:3;24945:147;:::i;:::-;24938:154;;25109:3;25102:10;;24739:379;;;:::o

Swarm Source

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