ETH Price: $3,058.72 (+1.14%)
Gas: 4 Gwei

Token

Dalmatian (DAL)
 

Overview

Max Total Supply

1,000,000 DAL

Holders

47

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Dalmatian

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
    Dalmatian Dex
    https://dalmatian.exchange
    https://eth.dalmatian.exchange/
    https://app.dalmatian.exchange
    https://twitter.com/DalmatianDex
    https://t.me/dalmatiandex
**/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IDalmationV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}



interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}
 
contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Dalmatian is ERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => bool) private _isExcludedFromFee;
    address public marketingWallet;

    IUniswapV2Router02 public uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 public swapTokensAtAmount = 1000 * (10**18);
      bool public limitsInEffect = true;
    

    uint256 public maxTransactionAmount;
    
    uint256 public maxWallet;

   
      mapping(address => bool) public _isExcludedMaxTransactionAmount;


    bool private swapping;
    uint256 public marketingFee;

    /**
     * @dev Constructor that gives msg.sender all of existing tokens.
     */
    constructor () ERC20("Dalmatian", "DAL") {

        _mint(msg.sender,(1_000_000*(10**18)));

        marketingFee = 5;

        marketingWallet = address(0x346C5bC36612BAC35C3D13B0591D7c010a13A41d);

         maxTransactionAmount = (totalSupply() * 2) / 100 ;          // 2% from total supply maxTransactionAmountTxn
        maxWallet = (totalSupply() * 3) / 100;                  /// 3% from total supply maxWallet



        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        address _uniswapV2Pair = IDalmationV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

         

              excludeFromMaxTransaction(address(_uniswapV2Router), true);
              excludeFromMaxTransaction(address(_uniswapV2Pair), true);
              excludeFromMaxTransaction(address(marketingWallet), true);
              excludeFromMaxTransaction(address(owner()), true);

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
    }

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

        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }


       if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
             

          

                //when buy
                if (
                    from==uniswapV2Pair &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    to==uniswapV2Pair &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

 
        if (from != owner() && to != owner()) {

            uint256 contractTokenBalance = balanceOf(address(this));
        
            bool canSwap = contractTokenBalance >= swapTokensAtAmount;
 
            if (canSwap && !swapping && from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapping = true;
                swapTokensForMarketing(contractTokenBalance);
                swapping = false;
            }
        }
        bool takeFee = true;
 
        //Transfer Tokens
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        if(takeFee) {
        	uint256 fees = amount.mul(marketingFee).div(100);

        	amount = amount.sub(fees);

            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForMarketing(uint256 tokenAmount) private {
        // generate the  pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            marketingWallet,
            block.timestamp + 5 minutes
        );
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }
  
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
        function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateSwapTokensAtAmount(uint256 value) public onlyOwner{
  	    swapTokensAtAmount = value;
  	}
    
    function updateMarketingFee (uint256 _newFee) public onlyOwner {
        require (_newFee <=100,"should be less or equal 100 ");
        marketingFee=_newFee;
    }


        function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
     
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
     
        maxWallet = newNum * (10**18);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"updateMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a0604052683635c9adc5dea00000600a556001600b60006101000a81548160ff0219169083151502179055503480156200003957600080fd5b506040518060400160405280600981526020017f44616c6d617469616e00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44414c00000000000000000000000000000000000000000000000000000000008152508160039081620000b7919062000bd8565b508060049081620000c9919062000bd8565b5050506000620000de6200060f60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001993369d3c21bcecceda10000006200061760201b60201c565b600560108190555073346c5bc36612bac35c3d13b0591d7c010a13a41d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460026200020a620007c560201b60201c565b62000216919062000cee565b62000222919062000d68565b600c81905550606460036200023c620007c560201b60201c565b62000248919062000cee565b62000254919062000d68565b600d8190555060016007600062000270620007cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000420919062000e0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000488573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ae919062000e0a565b6040518363ffffffff1660e01b8152600401620004cd92919062000e4d565b6020604051808303816000875af1158015620004ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000513919062000e0a565b905062000528826001620007f960201b60201c565b6200053b816001620007f960201b60201c565b62000570600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620007f960201b60201c565b6200059262000584620007cf60201b60201c565b6001620007f960201b60201c565b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506200104a565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000689576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006809062000edb565b60405180910390fd5b6200069d60008383620008f660201b60201c565b620006b981600254620008fb60201b620014461790919060201c565b60028190555062000717816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008fb60201b620014461790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007b9919062000f0e565b60405180910390a35050565b6000600254905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008096200060f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200089b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008929062000f7b565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b505050565b60008082846200090c919062000f9d565b90508381101562000954576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200094b9062001028565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009e057607f821691505b602082108103620009f657620009f562000998565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a21565b62000a6c868362000a21565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ab962000ab362000aad8462000a84565b62000a8e565b62000a84565b9050919050565b6000819050919050565b62000ad58362000a98565b62000aed62000ae48262000ac0565b84845462000a2e565b825550505050565b600090565b62000b0462000af5565b62000b1181848462000aca565b505050565b5b8181101562000b395762000b2d60008262000afa565b60018101905062000b17565b5050565b601f82111562000b885762000b5281620009fc565b62000b5d8462000a11565b8101602085101562000b6d578190505b62000b8562000b7c8562000a11565b83018262000b16565b50505b505050565b600082821c905092915050565b600062000bad6000198460080262000b8d565b1980831691505092915050565b600062000bc8838362000b9a565b9150826002028217905092915050565b62000be3826200095e565b67ffffffffffffffff81111562000bff5762000bfe62000969565b5b62000c0b8254620009c7565b62000c1882828562000b3d565b600060209050601f83116001811462000c50576000841562000c3b578287015190505b62000c47858262000bba565b86555062000cb7565b601f19841662000c6086620009fc565b60005b8281101562000c8a5784890151825560018201915060208501945060208101905062000c63565b8683101562000caa578489015162000ca6601f89168262000b9a565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000cfb8262000a84565b915062000d088362000a84565b925082820262000d188162000a84565b9150828204841483151762000d325762000d3162000cbf565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d758262000a84565b915062000d828362000a84565b92508262000d955762000d9462000d39565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dd28262000da5565b9050919050565b62000de48162000dc5565b811462000df057600080fd5b50565b60008151905062000e048162000dd9565b92915050565b60006020828403121562000e235762000e2262000da0565b5b600062000e338482850162000df3565b91505092915050565b62000e478162000dc5565b82525050565b600060408201905062000e64600083018562000e3c565b62000e73602083018462000e3c565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ec3601f8362000e7a565b915062000ed08262000e8b565b602082019050919050565b6000602082019050818103600083015262000ef68162000eb4565b9050919050565b62000f088162000a84565b82525050565b600060208201905062000f25600083018462000efd565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f6360208362000e7a565b915062000f708262000f2b565b602082019050919050565b6000602082019050818103600083015262000f968162000f54565b9050919050565b600062000faa8262000a84565b915062000fb78362000a84565b925082820190508082111562000fd25762000fd162000cbf565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001010601b8362000e7a565b91506200101d8262000fd8565b602082019050919050565b60006020820190508181036000830152620010438162001001565b9050919050565b60805161350a6200107b6000396000818161091c0152818161188a015281816119d60152611c2b015261350a6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637571336a11610104578063c492f046116100a2578063dd62ed3e11610071578063dd62ed3e14610549578063e2f4560514610579578063f2fde38b14610597578063f8b45b05146105b3576101da565b8063c492f046146104d7578063c8c8ebe4146104f3578063cf38287714610511578063d257b34f1461052d576101da565b806395d89b41116100de57806395d89b411461043d578063a457c2d71461045b578063a9059cbb1461048b578063c18bc195146104bb576101da565b80637571336a146103e557806375f0a874146104015780638da5cb5b1461041f576101da565b8063313ce5671161017c5780636b67c4df1161014b5780636b67c4df1461036f57806370a082311461038d578063715018a6146103bd578063751039fc146103c7576101da565b8063313ce567146102e5578063395093511461030357806349bd5a5e146103335780634a62bb6514610351576101da565b80631694505e116101b85780631694505e1461025d57806318160ddd1461027b578063203e727e1461029957806323b872dd146102b5576101da565b806306fdde03146101df578063095ea7b3146101fd57806310d5de531461022d575b600080fd5b6101e76105d1565b6040516101f491906125f4565b60405180910390f35b610217600480360381019061021291906126b4565b610663565b604051610224919061270f565b60405180910390f35b6102476004803603810190610242919061272a565b610681565b604051610254919061270f565b60405180910390f35b6102656106a1565b60405161027291906127b6565b60405180910390f35b6102836106c7565b60405161029091906127e0565b60405180910390f35b6102b360048036038101906102ae91906127fb565b6106d1565b005b6102cf60048036038101906102ca9190612828565b610785565b6040516102dc919061270f565b60405180910390f35b6102ed61085e565b6040516102fa9190612897565b60405180910390f35b61031d600480360381019061031891906126b4565b610867565b60405161032a919061270f565b60405180910390f35b61033b61091a565b60405161034891906128c1565b60405180910390f35b61035961093e565b604051610366919061270f565b60405180910390f35b610377610951565b60405161038491906127e0565b60405180910390f35b6103a760048036038101906103a2919061272a565b610957565b6040516103b491906127e0565b60405180910390f35b6103c561099f565b005b6103cf610af7565b6040516103dc919061270f565b60405180910390f35b6103ff60048036038101906103fa9190612908565b610bb2565b005b610409610ca4565b60405161041691906128c1565b60405180910390f35b610427610cca565b60405161043491906128c1565b60405180910390f35b610445610cf4565b60405161045291906125f4565b60405180910390f35b610475600480360381019061047091906126b4565b610d86565b604051610482919061270f565b60405180910390f35b6104a560048036038101906104a091906126b4565b610e53565b6040516104b2919061270f565b60405180910390f35b6104d560048036038101906104d091906127fb565b610e71565b005b6104f160048036038101906104ec91906129ad565b610f25565b005b6104fb611061565b60405161050891906127e0565b60405180910390f35b61052b600480360381019061052691906127fb565b611067565b005b610547600480360381019061054291906127fb565b61114c565b005b610563600480360381019061055e9190612a0d565b6111ed565b60405161057091906127e0565b60405180910390f35b610581611274565b60405161058e91906127e0565b60405180910390f35b6105b160048036038101906105ac919061272a565b61127a565b005b6105bb611440565b6040516105c891906127e0565b60405180910390f35b6060600380546105e090612a7c565b80601f016020809104026020016040519081016040528092919081815260200182805461060c90612a7c565b80156106595780601f1061062e57610100808354040283529160200191610659565b820191906000526020600020905b81548152906001019060200180831161063c57829003601f168201915b5050505050905090565b60006106776106706114a4565b84846114ac565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6106d96114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90612af9565b60405180910390fd5b670de0b6b3a76400008161077c9190612b48565b600c8190555050565b6000610792848484611675565b6108538461079e6114a4565b61084e8560405180606001604052806028815260200161348860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108046114a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e859092919063ffffffff16565b6114ac565b600190509392505050565b60006012905090565b60006109106108746114a4565b8461090b85600160006108856114a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461144690919063ffffffff16565b6114ac565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60009054906101000a900460ff1681565b60105481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a76114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d90612af9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610b016114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8790612af9565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b610bba6114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090612af9565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d0390612a7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2f90612a7c565b8015610d7c5780601f10610d5157610100808354040283529160200191610d7c565b820191906000526020600020905b815481529060010190602001808311610d5f57829003601f168201915b5050505050905090565b6000610e49610d936114a4565b84610e44856040518060600160405280602581526020016134b06025913960016000610dbd6114a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e859092919063ffffffff16565b6114ac565b6001905092915050565b6000610e67610e606114a4565b8484611675565b6001905092915050565b610e796114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90612af9565b60405180910390fd5b670de0b6b3a764000081610f1c9190612b48565b600d8190555050565b610f2d6114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb390612af9565b60405180910390fd5b60005b8383905081101561105b578160076000868685818110610fe257610fe1612b8a565b5b9050602002016020810190610ff7919061272a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061105390612bb9565b915050610fbf565b50505050565b600c5481565b61106f6114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612af9565b60405180910390fd5b6064811115611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990612c4d565b60405180910390fd5b8060108190555050565b6111546114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90612af9565b60405180910390fd5b80600a8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b6112826114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612af9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137790612cdf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b60008082846114559190612cff565b90508381101561149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149190612d7f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612e11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158190612ea3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161166891906127e0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90612f35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612fc7565b60405180910390fd5b6000810361176c5761176783836000611ee9565b611e80565b600b60009054906101000a900460ff1615611b7657611789610cca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f757506117c7610cca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118305750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561186a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118835750600f60009054906101000a900460ff16155b15611b75577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561192d5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d457600c54811115611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90613059565b60405180910390fd5b600d5461198383610957565b8261198e9190612cff565b11156119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906130c5565b60405180910390fd5b611b74565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a795750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac857600c54811115611ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aba90613157565b60405180910390fd5b611b73565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b7257600d54611b2583610957565b82611b309190612cff565b1115611b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b68906130c5565b60405180910390fd5b5b5b5b5b5b611b7e610cca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bec5750611bbc610cca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d6e576000611bfc30610957565b90506000600a548210159050808015611c225750600f60009054906101000a900460ff16155b8015611c7a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cd05750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d265750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d6b576001600f60006101000a81548160ff021916908315150217905550611d4f8261217c565b6000600f60006101000a81548160ff0219169083151502179055505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e155750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1f57600090505b8015611e73576000611e4f6064611e41601054866123ee90919063ffffffff16565b61246890919063ffffffff16565b9050611e6481846124b290919063ffffffff16565b9250611e71853083611ee9565b505b611e7e848484611ee9565b505b505050565b6000838311158290611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec491906125f4565b60405180910390fd5b5060008385611edc9190613177565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4f90612f35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbe90612fc7565b60405180910390fd5b611fd28383836124fc565b61203d81604051806060016040528060268152602001613462602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e859092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120d0816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461144690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216f91906127e0565b60405180910390a3505050565b6000600267ffffffffffffffff811115612199576121986131ab565b5b6040519080825280602002602001820160405280156121c75781602001602082028036833780820191505090505b50905030816000815181106121df576121de612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122aa91906131ef565b816001815181106122be576122bd612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114ac565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661012c426123989190612cff565b6040518663ffffffff1660e01b81526004016123b8959493929190613315565b600060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050505050565b60008083036124005760009050612462565b6000828461240e9190612b48565b905082848261241d919061339e565b1461245d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245490613441565b60405180910390fd5b809150505b92915050565b60006124aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612501565b905092915050565b60006124f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e85565b905092915050565b505050565b60008083118290612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f91906125f4565b60405180910390fd5b5060008385612557919061339e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259e578082015181840152602081019050612583565b60008484015250505050565b6000601f19601f8301169050919050565b60006125c682612564565b6125d0818561256f565b93506125e0818560208601612580565b6125e9816125aa565b840191505092915050565b6000602082019050818103600083015261260e81846125bb565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264b82612620565b9050919050565b61265b81612640565b811461266657600080fd5b50565b60008135905061267881612652565b92915050565b6000819050919050565b6126918161267e565b811461269c57600080fd5b50565b6000813590506126ae81612688565b92915050565b600080604083850312156126cb576126ca612616565b5b60006126d985828601612669565b92505060206126ea8582860161269f565b9150509250929050565b60008115159050919050565b612709816126f4565b82525050565b60006020820190506127246000830184612700565b92915050565b6000602082840312156127405761273f612616565b5b600061274e84828501612669565b91505092915050565b6000819050919050565b600061277c61277761277284612620565b612757565b612620565b9050919050565b600061278e82612761565b9050919050565b60006127a082612783565b9050919050565b6127b081612795565b82525050565b60006020820190506127cb60008301846127a7565b92915050565b6127da8161267e565b82525050565b60006020820190506127f560008301846127d1565b92915050565b60006020828403121561281157612810612616565b5b600061281f8482850161269f565b91505092915050565b60008060006060848603121561284157612840612616565b5b600061284f86828701612669565b935050602061286086828701612669565b92505060406128718682870161269f565b9150509250925092565b600060ff82169050919050565b6128918161287b565b82525050565b60006020820190506128ac6000830184612888565b92915050565b6128bb81612640565b82525050565b60006020820190506128d660008301846128b2565b92915050565b6128e5816126f4565b81146128f057600080fd5b50565b600081359050612902816128dc565b92915050565b6000806040838503121561291f5761291e612616565b5b600061292d85828601612669565b925050602061293e858286016128f3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261296d5761296c612948565b5b8235905067ffffffffffffffff81111561298a5761298961294d565b5b6020830191508360208202830111156129a6576129a5612952565b5b9250929050565b6000806000604084860312156129c6576129c5612616565b5b600084013567ffffffffffffffff8111156129e4576129e361261b565b5b6129f086828701612957565b93509350506020612a03868287016128f3565b9150509250925092565b60008060408385031215612a2457612a23612616565b5b6000612a3285828601612669565b9250506020612a4385828601612669565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a9457607f821691505b602082108103612aa757612aa6612a4d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ae360208361256f565b9150612aee82612aad565b602082019050919050565b60006020820190508181036000830152612b1281612ad6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b538261267e565b9150612b5e8361267e565b9250828202612b6c8161267e565b91508282048414831517612b8357612b82612b19565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612bc48261267e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bf657612bf5612b19565b5b600182019050919050565b7f73686f756c64206265206c657373206f7220657175616c203130302000000000600082015250565b6000612c37601c8361256f565b9150612c4282612c01565b602082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cc960268361256f565b9150612cd482612c6d565b604082019050919050565b60006020820190508181036000830152612cf881612cbc565b9050919050565b6000612d0a8261267e565b9150612d158361267e565b9250828201905080821115612d2d57612d2c612b19565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d69601b8361256f565b9150612d7482612d33565b602082019050919050565b60006020820190508181036000830152612d9881612d5c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dfb60248361256f565b9150612e0682612d9f565b604082019050919050565b60006020820190508181036000830152612e2a81612dee565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e8d60228361256f565b9150612e9882612e31565b604082019050919050565b60006020820190508181036000830152612ebc81612e80565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f1f60258361256f565b9150612f2a82612ec3565b604082019050919050565b60006020820190508181036000830152612f4e81612f12565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fb160238361256f565b9150612fbc82612f55565b604082019050919050565b60006020820190508181036000830152612fe081612fa4565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061304360358361256f565b915061304e82612fe7565b604082019050919050565b6000602082019050818103600083015261307281613036565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006130af60138361256f565b91506130ba82613079565b602082019050919050565b600060208201905081810360008301526130de816130a2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061314160368361256f565b915061314c826130e5565b604082019050919050565b6000602082019050818103600083015261317081613134565b9050919050565b60006131828261267e565b915061318d8361267e565b92508282039050818111156131a5576131a4612b19565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506131e981612652565b92915050565b60006020828403121561320557613204612616565b5b6000613213848285016131da565b91505092915050565b6000819050919050565b600061324161323c6132378461321c565b612757565b61267e565b9050919050565b61325181613226565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61328c81612640565b82525050565b600061329e8383613283565b60208301905092915050565b6000602082019050919050565b60006132c282613257565b6132cc8185613262565b93506132d783613273565b8060005b838110156133085781516132ef8882613292565b97506132fa836132aa565b9250506001810190506132db565b5085935050505092915050565b600060a08201905061332a60008301886127d1565b6133376020830187613248565b818103604083015261334981866132b7565b905061335860608301856128b2565b61336560808301846127d1565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a98261267e565b91506133b48361267e565b9250826133c4576133c361336f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061342b60218361256f565b9150613436826133cf565b604082019050919050565b6000602082019050818103600083015261345a8161341e565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203d271a810cce4df69cc8f76910ef5a50d91e667edeaf8d487b40c485da0d039c64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80637571336a11610104578063c492f046116100a2578063dd62ed3e11610071578063dd62ed3e14610549578063e2f4560514610579578063f2fde38b14610597578063f8b45b05146105b3576101da565b8063c492f046146104d7578063c8c8ebe4146104f3578063cf38287714610511578063d257b34f1461052d576101da565b806395d89b41116100de57806395d89b411461043d578063a457c2d71461045b578063a9059cbb1461048b578063c18bc195146104bb576101da565b80637571336a146103e557806375f0a874146104015780638da5cb5b1461041f576101da565b8063313ce5671161017c5780636b67c4df1161014b5780636b67c4df1461036f57806370a082311461038d578063715018a6146103bd578063751039fc146103c7576101da565b8063313ce567146102e5578063395093511461030357806349bd5a5e146103335780634a62bb6514610351576101da565b80631694505e116101b85780631694505e1461025d57806318160ddd1461027b578063203e727e1461029957806323b872dd146102b5576101da565b806306fdde03146101df578063095ea7b3146101fd57806310d5de531461022d575b600080fd5b6101e76105d1565b6040516101f491906125f4565b60405180910390f35b610217600480360381019061021291906126b4565b610663565b604051610224919061270f565b60405180910390f35b6102476004803603810190610242919061272a565b610681565b604051610254919061270f565b60405180910390f35b6102656106a1565b60405161027291906127b6565b60405180910390f35b6102836106c7565b60405161029091906127e0565b60405180910390f35b6102b360048036038101906102ae91906127fb565b6106d1565b005b6102cf60048036038101906102ca9190612828565b610785565b6040516102dc919061270f565b60405180910390f35b6102ed61085e565b6040516102fa9190612897565b60405180910390f35b61031d600480360381019061031891906126b4565b610867565b60405161032a919061270f565b60405180910390f35b61033b61091a565b60405161034891906128c1565b60405180910390f35b61035961093e565b604051610366919061270f565b60405180910390f35b610377610951565b60405161038491906127e0565b60405180910390f35b6103a760048036038101906103a2919061272a565b610957565b6040516103b491906127e0565b60405180910390f35b6103c561099f565b005b6103cf610af7565b6040516103dc919061270f565b60405180910390f35b6103ff60048036038101906103fa9190612908565b610bb2565b005b610409610ca4565b60405161041691906128c1565b60405180910390f35b610427610cca565b60405161043491906128c1565b60405180910390f35b610445610cf4565b60405161045291906125f4565b60405180910390f35b610475600480360381019061047091906126b4565b610d86565b604051610482919061270f565b60405180910390f35b6104a560048036038101906104a091906126b4565b610e53565b6040516104b2919061270f565b60405180910390f35b6104d560048036038101906104d091906127fb565b610e71565b005b6104f160048036038101906104ec91906129ad565b610f25565b005b6104fb611061565b60405161050891906127e0565b60405180910390f35b61052b600480360381019061052691906127fb565b611067565b005b610547600480360381019061054291906127fb565b61114c565b005b610563600480360381019061055e9190612a0d565b6111ed565b60405161057091906127e0565b60405180910390f35b610581611274565b60405161058e91906127e0565b60405180910390f35b6105b160048036038101906105ac919061272a565b61127a565b005b6105bb611440565b6040516105c891906127e0565b60405180910390f35b6060600380546105e090612a7c565b80601f016020809104026020016040519081016040528092919081815260200182805461060c90612a7c565b80156106595780601f1061062e57610100808354040283529160200191610659565b820191906000526020600020905b81548152906001019060200180831161063c57829003601f168201915b5050505050905090565b60006106776106706114a4565b84846114ac565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6106d96114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90612af9565b60405180910390fd5b670de0b6b3a76400008161077c9190612b48565b600c8190555050565b6000610792848484611675565b6108538461079e6114a4565b61084e8560405180606001604052806028815260200161348860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108046114a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e859092919063ffffffff16565b6114ac565b600190509392505050565b60006012905090565b60006109106108746114a4565b8461090b85600160006108856114a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461144690919063ffffffff16565b6114ac565b6001905092915050565b7f0000000000000000000000006d4718cc4b949d3cf277e67322529d36050bdd1281565b600b60009054906101000a900460ff1681565b60105481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a76114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d90612af9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610b016114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8790612af9565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b610bba6114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090612af9565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d0390612a7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2f90612a7c565b8015610d7c5780601f10610d5157610100808354040283529160200191610d7c565b820191906000526020600020905b815481529060010190602001808311610d5f57829003601f168201915b5050505050905090565b6000610e49610d936114a4565b84610e44856040518060600160405280602581526020016134b06025913960016000610dbd6114a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e859092919063ffffffff16565b6114ac565b6001905092915050565b6000610e67610e606114a4565b8484611675565b6001905092915050565b610e796114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90612af9565b60405180910390fd5b670de0b6b3a764000081610f1c9190612b48565b600d8190555050565b610f2d6114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb390612af9565b60405180910390fd5b60005b8383905081101561105b578160076000868685818110610fe257610fe1612b8a565b5b9050602002016020810190610ff7919061272a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061105390612bb9565b915050610fbf565b50505050565b600c5481565b61106f6114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612af9565b60405180910390fd5b6064811115611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990612c4d565b60405180910390fd5b8060108190555050565b6111546114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90612af9565b60405180910390fd5b80600a8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b6112826114a4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612af9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137790612cdf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b60008082846114559190612cff565b90508381101561149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149190612d7f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612e11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158190612ea3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161166891906127e0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90612f35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612fc7565b60405180910390fd5b6000810361176c5761176783836000611ee9565b611e80565b600b60009054906101000a900460ff1615611b7657611789610cca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f757506117c7610cca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118305750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561186a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118835750600f60009054906101000a900460ff16155b15611b75577f0000000000000000000000006d4718cc4b949d3cf277e67322529d36050bdd1273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561192d5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d457600c54811115611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90613059565b60405180910390fd5b600d5461198383610957565b8261198e9190612cff565b11156119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906130c5565b60405180910390fd5b611b74565b7f0000000000000000000000006d4718cc4b949d3cf277e67322529d36050bdd1273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a795750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac857600c54811115611ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aba90613157565b60405180910390fd5b611b73565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b7257600d54611b2583610957565b82611b309190612cff565b1115611b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b68906130c5565b60405180910390fd5b5b5b5b5b5b611b7e610cca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bec5750611bbc610cca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d6e576000611bfc30610957565b90506000600a548210159050808015611c225750600f60009054906101000a900460ff16155b8015611c7a57507f0000000000000000000000006d4718cc4b949d3cf277e67322529d36050bdd1273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cd05750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d265750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d6b576001600f60006101000a81548160ff021916908315150217905550611d4f8261217c565b6000600f60006101000a81548160ff0219169083151502179055505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e155750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1f57600090505b8015611e73576000611e4f6064611e41601054866123ee90919063ffffffff16565b61246890919063ffffffff16565b9050611e6481846124b290919063ffffffff16565b9250611e71853083611ee9565b505b611e7e848484611ee9565b505b505050565b6000838311158290611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec491906125f4565b60405180910390fd5b5060008385611edc9190613177565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4f90612f35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbe90612fc7565b60405180910390fd5b611fd28383836124fc565b61203d81604051806060016040528060268152602001613462602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e859092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120d0816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461144690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216f91906127e0565b60405180910390a3505050565b6000600267ffffffffffffffff811115612199576121986131ab565b5b6040519080825280602002602001820160405280156121c75781602001602082028036833780820191505090505b50905030816000815181106121df576121de612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122aa91906131ef565b816001815181106122be576122bd612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114ac565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661012c426123989190612cff565b6040518663ffffffff1660e01b81526004016123b8959493929190613315565b600060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050505050565b60008083036124005760009050612462565b6000828461240e9190612b48565b905082848261241d919061339e565b1461245d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245490613441565b60405180910390fd5b809150505b92915050565b60006124aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612501565b905092915050565b60006124f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e85565b905092915050565b505050565b60008083118290612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f91906125f4565b60405180910390fd5b5060008385612557919061339e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259e578082015181840152602081019050612583565b60008484015250505050565b6000601f19601f8301169050919050565b60006125c682612564565b6125d0818561256f565b93506125e0818560208601612580565b6125e9816125aa565b840191505092915050565b6000602082019050818103600083015261260e81846125bb565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264b82612620565b9050919050565b61265b81612640565b811461266657600080fd5b50565b60008135905061267881612652565b92915050565b6000819050919050565b6126918161267e565b811461269c57600080fd5b50565b6000813590506126ae81612688565b92915050565b600080604083850312156126cb576126ca612616565b5b60006126d985828601612669565b92505060206126ea8582860161269f565b9150509250929050565b60008115159050919050565b612709816126f4565b82525050565b60006020820190506127246000830184612700565b92915050565b6000602082840312156127405761273f612616565b5b600061274e84828501612669565b91505092915050565b6000819050919050565b600061277c61277761277284612620565b612757565b612620565b9050919050565b600061278e82612761565b9050919050565b60006127a082612783565b9050919050565b6127b081612795565b82525050565b60006020820190506127cb60008301846127a7565b92915050565b6127da8161267e565b82525050565b60006020820190506127f560008301846127d1565b92915050565b60006020828403121561281157612810612616565b5b600061281f8482850161269f565b91505092915050565b60008060006060848603121561284157612840612616565b5b600061284f86828701612669565b935050602061286086828701612669565b92505060406128718682870161269f565b9150509250925092565b600060ff82169050919050565b6128918161287b565b82525050565b60006020820190506128ac6000830184612888565b92915050565b6128bb81612640565b82525050565b60006020820190506128d660008301846128b2565b92915050565b6128e5816126f4565b81146128f057600080fd5b50565b600081359050612902816128dc565b92915050565b6000806040838503121561291f5761291e612616565b5b600061292d85828601612669565b925050602061293e858286016128f3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261296d5761296c612948565b5b8235905067ffffffffffffffff81111561298a5761298961294d565b5b6020830191508360208202830111156129a6576129a5612952565b5b9250929050565b6000806000604084860312156129c6576129c5612616565b5b600084013567ffffffffffffffff8111156129e4576129e361261b565b5b6129f086828701612957565b93509350506020612a03868287016128f3565b9150509250925092565b60008060408385031215612a2457612a23612616565b5b6000612a3285828601612669565b9250506020612a4385828601612669565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a9457607f821691505b602082108103612aa757612aa6612a4d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ae360208361256f565b9150612aee82612aad565b602082019050919050565b60006020820190508181036000830152612b1281612ad6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b538261267e565b9150612b5e8361267e565b9250828202612b6c8161267e565b91508282048414831517612b8357612b82612b19565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612bc48261267e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bf657612bf5612b19565b5b600182019050919050565b7f73686f756c64206265206c657373206f7220657175616c203130302000000000600082015250565b6000612c37601c8361256f565b9150612c4282612c01565b602082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cc960268361256f565b9150612cd482612c6d565b604082019050919050565b60006020820190508181036000830152612cf881612cbc565b9050919050565b6000612d0a8261267e565b9150612d158361267e565b9250828201905080821115612d2d57612d2c612b19565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d69601b8361256f565b9150612d7482612d33565b602082019050919050565b60006020820190508181036000830152612d9881612d5c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dfb60248361256f565b9150612e0682612d9f565b604082019050919050565b60006020820190508181036000830152612e2a81612dee565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e8d60228361256f565b9150612e9882612e31565b604082019050919050565b60006020820190508181036000830152612ebc81612e80565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f1f60258361256f565b9150612f2a82612ec3565b604082019050919050565b60006020820190508181036000830152612f4e81612f12565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fb160238361256f565b9150612fbc82612f55565b604082019050919050565b60006020820190508181036000830152612fe081612fa4565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061304360358361256f565b915061304e82612fe7565b604082019050919050565b6000602082019050818103600083015261307281613036565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006130af60138361256f565b91506130ba82613079565b602082019050919050565b600060208201905081810360008301526130de816130a2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061314160368361256f565b915061314c826130e5565b604082019050919050565b6000602082019050818103600083015261317081613134565b9050919050565b60006131828261267e565b915061318d8361267e565b92508282039050818111156131a5576131a4612b19565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506131e981612652565b92915050565b60006020828403121561320557613204612616565b5b6000613213848285016131da565b91505092915050565b6000819050919050565b600061324161323c6132378461321c565b612757565b61267e565b9050919050565b61325181613226565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61328c81612640565b82525050565b600061329e8383613283565b60208301905092915050565b6000602082019050919050565b60006132c282613257565b6132cc8185613262565b93506132d783613273565b8060005b838110156133085781516132ef8882613292565b97506132fa836132aa565b9250506001810190506132db565b5085935050505092915050565b600060a08201905061332a60008301886127d1565b6133376020830187613248565b818103604083015261334981866132b7565b905061335860608301856128b2565b61336560808301846127d1565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a98261267e565b91506133b48361267e565b9250826133c4576133c361336f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061342b60218361256f565b9150613436826133cf565b604082019050919050565b6000602082019050818103600083015261345a8161341e565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203d271a810cce4df69cc8f76910ef5a50d91e667edeaf8d487b40c485da0d039c64736f6c63430008120033

Deployed Bytecode Sourcemap

14150:6474:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7713:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14617:63;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14326:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6666:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20363:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8364:355;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6508:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9128:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14374:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14481:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14719:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6837:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1774:148;;;:::i;:::-;;19512:121;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19887:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14287:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1558:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5765:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9849:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7177:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20500:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19643:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14529:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20182:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20062:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7415:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14421:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1931:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14577:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5546:100;5600:13;5633:5;5626:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:100;:::o;7713:169::-;7796:4;7813:39;7822:12;:10;:12::i;:::-;7836:7;7845:6;7813:8;:39::i;:::-;7870:4;7863:11;;7713:169;;;;:::o;14617:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;14326:41::-;;;;;;;;;;;;;:::o;6666:108::-;6727:7;6754:12;;6747:19;;6666:108;:::o;20363:129::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20477:6:::1;20467;:17;;;;:::i;:::-;20444:20;:40;;;;20363:129:::0;:::o;8364:355::-;8504:4;8521:36;8531:6;8539:9;8550:6;8521:9;:36::i;:::-;8568:121;8577:6;8585:12;:10;:12::i;:::-;8599:89;8637:6;8599:89;;;;;;;;;;;;;;;;;:11;:19;8611:6;8599:19;;;;;;;;;;;;;;;:33;8619:12;:10;:12::i;:::-;8599:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8568:8;:121::i;:::-;8707:4;8700:11;;8364:355;;;;;:::o;6508:93::-;6566:5;6591:2;6584:9;;6508:93;:::o;9128:218::-;9216:4;9233:83;9242:12;:10;:12::i;:::-;9256:7;9265:50;9304:10;9265:11;:25;9277:12;:10;:12::i;:::-;9265:25;;;;;;;;;;;;;;;:34;9291:7;9265:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9233:8;:83::i;:::-;9334:4;9327:11;;9128:218;;;;:::o;14374:38::-;;;:::o;14481:33::-;;;;;;;;;;;;;:::o;14719:27::-;;;;:::o;6837:127::-;6911:7;6938:9;:18;6948:7;6938:18;;;;;;;;;;;;;;;;6931:25;;6837:127;;;:::o;1774:148::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1881:1:::1;1844:40;;1865:6;;;;;;;;;;;1844:40;;;;;;;;;;;;1912:1;1895:6;;:19;;;;;;;;;;;;;;;;;;1774:148::o:0;19512:121::-;19564:4;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19598:5:::1;19581:14;;:22;;;;;;;;;;;;;;;;;;19621:4;19614:11;;19512:121:::0;:::o;19887:167::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20042:4:::1;20000:31;:39;20032:6;20000:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;19887:167:::0;;:::o;14287:30::-;;;;;;;;;;;;;:::o;1558:79::-;1596:7;1623:6;;;;;;;;;;;1616:13;;1558:79;:::o;5765:104::-;5821:13;5854:7;5847:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5765:104;:::o;9849:269::-;9942:4;9959:129;9968:12;:10;:12::i;:::-;9982:7;9991:96;10030:15;9991:96;;;;;;;;;;;;;;;;;:11;:25;10003:12;:10;:12::i;:::-;9991:25;;;;;;;;;;;;;;;:34;10017:7;9991:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9959:8;:129::i;:::-;10106:4;10099:11;;9849:269;;;;:::o;7177:175::-;7263:4;7280:42;7290:12;:10;:12::i;:::-;7304:9;7315:6;7280:9;:42::i;:::-;7340:4;7333:11;;7177:175;;;;:::o;20500:121::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20606:6:::1;20596;:17;;;;:::i;:::-;20584:9;:29;;;;20500:121:::0;:::o;19643:234::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19760:9:::1;19756:114;19779:8;;:15;;19775:1;:19;19756:114;;;19850:8;19816:18;:31;19835:8;;19844:1;19835:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19816:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19796:3;;;;;:::i;:::-;;;;19756:114;;;;19643:234:::0;;;:::o;14529:35::-;;;;:::o;20182:167::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20275:3:::1;20265:7;:13;;20256:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20334:7;20321:12;:20;;;;20182:167:::0;:::o;20062:108::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20158:5:::1;20137:18;:26;;;;20062:108:::0;:::o;7415:151::-;7504:7;7531:11;:18;7543:5;7531:18;;;;;;;;;;;;;;;:27;7550:7;7531:27;;;;;;;;;;;;;;;;7524:34;;7415:151;;;;:::o;14421:51::-;;;;:::o;1931:244::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2040:1:::1;2020:22;;:8;:22;;::::0;2012:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2130:8;2101:38;;2122:6;;;;;;;;;;;2101:38;;;;;;;;;;;;2159:8;2150:6;;:17;;;;;;;;;;;;;;;;;;1931:244:::0;:::o;14577:24::-;;;;:::o;2210:179::-;2268:7;2288:9;2304:1;2300;:5;;;;:::i;:::-;2288:17;;2329:1;2324;:6;;2316:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2380:1;2373:8;;;2210:179;;;;:::o;307:98::-;360:7;387:10;380:17;;307:98;:::o;13035:380::-;13188:1;13171:19;;:5;:19;;;13163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13269:1;13250:21;;:7;:21;;;13242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13353:6;13323:11;:18;13335:5;13323:18;;;;;;;;;;;;;;;:27;13342:7;13323:27;;;;;;;;;;;;;;;:36;;;;13391:7;13375:32;;13384:5;13375:32;;;13400:6;13375:32;;;;;;:::i;:::-;;;;;;;;13035:380;;;:::o;16093:2757::-;16241:1;16225:18;;:4;:18;;;16217:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16318:1;16304:16;;:2;:16;;;16296:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16386:1;16376:6;:11;16373:92;;16404:28;16420:4;16426:2;16430:1;16404:15;:28::i;:::-;16447:7;;16373:92;16482:14;;;;;;;;;;;16478:1458;;;16543:7;:5;:7::i;:::-;16535:15;;:4;:15;;;;:49;;;;;16577:7;:5;:7::i;:::-;16571:13;;:2;:13;;;;16535:49;:86;;;;;16619:1;16605:16;;:2;:16;;;;16535:86;:128;;;;;16656:6;16642:21;;:2;:21;;;;16535:128;:158;;;;;16685:8;;;;;;;;;;;16684:9;16535:158;16513:1412;;;16819:13;16813:19;;:4;:19;;;:80;;;;;16858:31;:35;16890:2;16858:35;;;;;;;;;;;;;;;;;;;;;;;;;16857:36;16813:80;16787:1123;;;16980:20;;16970:6;:30;;16936:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;17188:9;;17171:13;17181:2;17171:9;:13::i;:::-;17162:6;:22;;;;:::i;:::-;:35;;17128:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;16787:1123;;;17370:13;17366:17;;:2;:17;;;:80;;;;;17409:31;:37;17441:4;17409:37;;;;;;;;;;;;;;;;;;;;;;;;;17408:38;17366:80;17340:570;;;17533:20;;17523:6;:30;;17489:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;17340:570;;;17690:31;:35;17722:2;17690:35;;;;;;;;;;;;;;;;;;;;;;;;;17685:225;;17810:9;;17793:13;17803:2;17793:9;:13::i;:::-;17784:6;:22;;;;:::i;:::-;:35;;17750:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;17685:225;17340:570;16787:1123;16513:1412;16478:1458;17963:7;:5;:7::i;:::-;17955:15;;:4;:15;;;;:32;;;;;17980:7;:5;:7::i;:::-;17974:13;;:2;:13;;;;17955:32;17951:476;;;18006:28;18037:24;18055:4;18037:9;:24::i;:::-;18006:55;;18086:12;18125:18;;18101:20;:42;;18086:57;;18165:7;:20;;;;;18177:8;;;;;;;;;;;18176:9;18165:20;:45;;;;;18197:13;18189:21;;:4;:21;;;;18165:45;:74;;;;;18215:18;:24;18234:4;18215:24;;;;;;;;;;;;;;;;;;;;;;;;;18214:25;18165:74;:101;;;;;18244:18;:22;18263:2;18244:22;;;;;;;;;;;;;;;;;;;;;;;;;18243:23;18165:101;18161:255;;;18298:4;18287:8;;:15;;;;;;;;;;;;;;;;;;18321:44;18344:20;18321:22;:44::i;:::-;18395:5;18384:8;;:16;;;;;;;;;;;;;;;;;;18161:255;17989:438;;17951:476;18437:12;18452:4;18437:19;;18501:18;:24;18520:4;18501:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;18529:18;:22;18548:2;18529:22;;;;;;;;;;;;;;;;;;;;;;;;;18501:50;18497:98;;;18578:5;18568:15;;18497:98;18618:7;18615:182;;;18639:12;18654:33;18683:3;18654:24;18665:12;;18654:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;18639:48;;18710:16;18721:4;18710:6;:10;;:16;;;;:::i;:::-;18701:25;;18743:42;18759:4;18773;18780;18743:15;:42::i;:::-;18627:170;18615:182;18809:33;18825:4;18831:2;18835:6;18809:15;:33::i;:::-;16206:2644;16093:2757;;;;:::o;2543:224::-;2663:7;2696:1;2691;:6;;2699:12;2683:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2723:9;2739:1;2735;:5;;;;:::i;:::-;2723:17;;2758:1;2751:8;;;2543:224;;;;;:::o;10608:573::-;10766:1;10748:20;;:6;:20;;;10740:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:1;10829:23;;:9;:23;;;10821:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10905:47;10926:6;10934:9;10945:6;10905:20;:47::i;:::-;10985:71;11007:6;10985:71;;;;;;;;;;;;;;;;;:9;:17;10995:6;10985:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;10965:9;:17;10975:6;10965:17;;;;;;;;;;;;;;;:91;;;;11090:32;11115:6;11090:9;:20;11100:9;11090:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11067:9;:20;11077:9;11067:20;;;;;;;;;;;;;;;:55;;;;11155:9;11138:35;;11147:6;11138:35;;;11166:6;11138:35;;;;;;:::i;:::-;;;;;;;;10608:573;;;:::o;18858:602::-;18983:21;19021:1;19007:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18983:40;;19052:4;19034;19039:1;19034:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19078:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19068:4;19073:1;19068:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19113:62;19130:4;19145:15;;;;;;;;;;;19163:11;19113:8;:62::i;:::-;19214:15;;;;;;;;;;;:66;;;19295:11;19321:1;19365:4;19384:15;;;;;;;;;;;19432:9;19414:15;:27;;;;:::i;:::-;19214:238;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18919:541;18858:602;:::o;2776:246::-;2834:7;2863:1;2858;:6;2854:47;;2888:1;2881:8;;;;2854:47;2911:9;2927:1;2923;:5;;;;:::i;:::-;2911:17;;2956:1;2951;2947;:5;;;;:::i;:::-;:10;2939:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3013:1;3006:8;;;2776:246;;;;;:::o;3031:132::-;3089:7;3116:39;3120:1;3123;3116:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3109:46;;3031:132;;;;:::o;2398:136::-;2456:7;2483:43;2487:1;2490;2483:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2476:50;;2398:136;;;;:::o;14018:125::-;;;;:::o;3172:223::-;3292:7;3324:1;3320;:5;3327:12;3312:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3351:9;3367:1;3363;:5;;;;:::i;:::-;3351:17;;3386:1;3379:8;;;3172:223;;;;;:::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;1553:117;1662:1;1659;1652: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:329::-;5165:6;5214:2;5202:9;5193:7;5189:23;5185:32;5182:119;;;5220:79;;:::i;:::-;5182:119;5340:1;5365:53;5410:7;5401:6;5390:9;5386:22;5365:53;:::i;:::-;5355:63;;5311:117;5106:329;;;;:::o;5441:619::-;5518:6;5526;5534;5583:2;5571:9;5562:7;5558:23;5554:32;5551:119;;;5589:79;;:::i;:::-;5551:119;5709:1;5734:53;5779:7;5770:6;5759:9;5755:22;5734:53;:::i;:::-;5724:63;;5680:117;5836:2;5862:53;5907:7;5898:6;5887:9;5883:22;5862:53;:::i;:::-;5852:63;;5807:118;5964:2;5990:53;6035:7;6026:6;6015:9;6011:22;5990:53;:::i;:::-;5980:63;;5935:118;5441:619;;;;;:::o;6066:86::-;6101:7;6141:4;6134:5;6130:16;6119:27;;6066:86;;;:::o;6158:112::-;6241:22;6257:5;6241:22;:::i;:::-;6236:3;6229:35;6158:112;;:::o;6276:214::-;6365:4;6403:2;6392:9;6388:18;6380:26;;6416:67;6480:1;6469:9;6465:17;6456:6;6416:67;:::i;:::-;6276:214;;;;:::o;6496:118::-;6583:24;6601:5;6583:24;:::i;:::-;6578:3;6571:37;6496:118;;:::o;6620:222::-;6713:4;6751:2;6740:9;6736:18;6728:26;;6764:71;6832:1;6821:9;6817:17;6808:6;6764:71;:::i;:::-;6620:222;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:117::-;7692:1;7689;7682:12;7706:117;7815:1;7812;7805:12;7829:117;7938:1;7935;7928:12;7969:568;8042:8;8052:6;8102:3;8095:4;8087:6;8083:17;8079:27;8069:122;;8110:79;;:::i;:::-;8069:122;8223:6;8210:20;8200:30;;8253:18;8245:6;8242:30;8239:117;;;8275:79;;:::i;:::-;8239:117;8389:4;8381:6;8377:17;8365:29;;8443:3;8435:4;8427:6;8423:17;8413:8;8409:32;8406:41;8403:128;;;8450:79;;:::i;:::-;8403:128;7969:568;;;;;:::o;8543:698::-;8635:6;8643;8651;8700:2;8688:9;8679:7;8675:23;8671:32;8668:119;;;8706:79;;:::i;:::-;8668:119;8854:1;8843:9;8839:17;8826:31;8884:18;8876:6;8873:30;8870:117;;;8906:79;;:::i;:::-;8870:117;9019:80;9091:7;9082:6;9071:9;9067:22;9019:80;:::i;:::-;9001:98;;;;8797:312;9148:2;9174:50;9216:7;9207:6;9196:9;9192:22;9174:50;:::i;:::-;9164:60;;9119:115;8543:698;;;;;:::o;9247:474::-;9315:6;9323;9372:2;9360:9;9351:7;9347:23;9343:32;9340:119;;;9378:79;;:::i;:::-;9340:119;9498:1;9523:53;9568:7;9559:6;9548:9;9544:22;9523:53;:::i;:::-;9513:63;;9469:117;9625:2;9651:53;9696:7;9687:6;9676:9;9672:22;9651:53;:::i;:::-;9641:63;;9596:118;9247:474;;;;;:::o;9727:180::-;9775:77;9772:1;9765:88;9872:4;9869:1;9862:15;9896:4;9893:1;9886:15;9913:320;9957:6;9994:1;9988:4;9984:12;9974:22;;10041:1;10035:4;10031:12;10062:18;10052:81;;10118:4;10110:6;10106:17;10096:27;;10052:81;10180:2;10172:6;10169:14;10149:18;10146:38;10143:84;;10199:18;;:::i;:::-;10143:84;9964:269;9913:320;;;:::o;10239:182::-;10379:34;10375:1;10367:6;10363:14;10356:58;10239:182;:::o;10427:366::-;10569:3;10590:67;10654:2;10649:3;10590:67;:::i;:::-;10583:74;;10666:93;10755:3;10666:93;:::i;:::-;10784:2;10779:3;10775:12;10768:19;;10427:366;;;:::o;10799:419::-;10965:4;11003:2;10992:9;10988:18;10980:26;;11052:9;11046:4;11042:20;11038:1;11027:9;11023:17;11016:47;11080:131;11206:4;11080:131;:::i;:::-;11072:139;;10799:419;;;:::o;11224:180::-;11272:77;11269:1;11262:88;11369:4;11366:1;11359:15;11393:4;11390:1;11383:15;11410:410;11450:7;11473:20;11491:1;11473:20;:::i;:::-;11468:25;;11507:20;11525:1;11507:20;:::i;:::-;11502:25;;11562:1;11559;11555:9;11584:30;11602:11;11584:30;:::i;:::-;11573:41;;11763:1;11754:7;11750:15;11747:1;11744:22;11724:1;11717:9;11697:83;11674:139;;11793:18;;:::i;:::-;11674:139;11458:362;11410:410;;;;:::o;11826:180::-;11874:77;11871:1;11864:88;11971:4;11968:1;11961:15;11995:4;11992:1;11985:15;12012:233;12051:3;12074:24;12092:5;12074:24;:::i;:::-;12065:33;;12120:66;12113:5;12110:77;12107:103;;12190:18;;:::i;:::-;12107:103;12237:1;12230:5;12226:13;12219:20;;12012:233;;;:::o;12251:178::-;12391:30;12387:1;12379:6;12375:14;12368:54;12251:178;:::o;12435:366::-;12577:3;12598:67;12662:2;12657:3;12598:67;:::i;:::-;12591:74;;12674:93;12763:3;12674:93;:::i;:::-;12792:2;12787:3;12783:12;12776:19;;12435:366;;;:::o;12807:419::-;12973:4;13011:2;13000:9;12996:18;12988:26;;13060:9;13054:4;13050:20;13046:1;13035:9;13031:17;13024:47;13088:131;13214:4;13088:131;:::i;:::-;13080:139;;12807:419;;;:::o;13232:225::-;13372:34;13368:1;13360:6;13356:14;13349:58;13441:8;13436:2;13428:6;13424:15;13417:33;13232:225;:::o;13463:366::-;13605:3;13626:67;13690:2;13685:3;13626:67;:::i;:::-;13619:74;;13702:93;13791:3;13702:93;:::i;:::-;13820:2;13815:3;13811:12;13804:19;;13463:366;;;:::o;13835:419::-;14001:4;14039:2;14028:9;14024:18;14016:26;;14088:9;14082:4;14078:20;14074:1;14063:9;14059:17;14052:47;14116:131;14242:4;14116:131;:::i;:::-;14108:139;;13835:419;;;:::o;14260:191::-;14300:3;14319:20;14337:1;14319:20;:::i;:::-;14314:25;;14353:20;14371:1;14353:20;:::i;:::-;14348:25;;14396:1;14393;14389:9;14382:16;;14417:3;14414:1;14411:10;14408:36;;;14424:18;;:::i;:::-;14408:36;14260:191;;;;:::o;14457:177::-;14597:29;14593:1;14585:6;14581:14;14574:53;14457:177;:::o;14640:366::-;14782:3;14803:67;14867:2;14862:3;14803:67;:::i;:::-;14796:74;;14879:93;14968:3;14879:93;:::i;:::-;14997:2;14992:3;14988:12;14981:19;;14640:366;;;:::o;15012:419::-;15178:4;15216:2;15205:9;15201:18;15193:26;;15265:9;15259:4;15255:20;15251:1;15240:9;15236:17;15229:47;15293:131;15419:4;15293:131;:::i;:::-;15285:139;;15012:419;;;:::o;15437:223::-;15577:34;15573:1;15565:6;15561:14;15554:58;15646:6;15641:2;15633:6;15629:15;15622:31;15437:223;:::o;15666:366::-;15808:3;15829:67;15893:2;15888:3;15829:67;:::i;:::-;15822:74;;15905:93;15994:3;15905:93;:::i;:::-;16023:2;16018:3;16014:12;16007:19;;15666:366;;;:::o;16038:419::-;16204:4;16242:2;16231:9;16227:18;16219:26;;16291:9;16285:4;16281:20;16277:1;16266:9;16262:17;16255:47;16319:131;16445:4;16319:131;:::i;:::-;16311:139;;16038:419;;;:::o;16463:221::-;16603:34;16599:1;16591:6;16587:14;16580:58;16672:4;16667:2;16659:6;16655:15;16648:29;16463:221;:::o;16690:366::-;16832:3;16853:67;16917:2;16912:3;16853:67;:::i;:::-;16846:74;;16929:93;17018:3;16929:93;:::i;:::-;17047:2;17042:3;17038:12;17031:19;;16690:366;;;:::o;17062:419::-;17228:4;17266:2;17255:9;17251:18;17243:26;;17315:9;17309:4;17305:20;17301:1;17290:9;17286:17;17279:47;17343:131;17469:4;17343:131;:::i;:::-;17335:139;;17062:419;;;:::o;17487:224::-;17627:34;17623:1;17615:6;17611:14;17604:58;17696:7;17691:2;17683:6;17679:15;17672:32;17487:224;:::o;17717:366::-;17859:3;17880:67;17944:2;17939:3;17880:67;:::i;:::-;17873:74;;17956:93;18045:3;17956:93;:::i;:::-;18074:2;18069:3;18065:12;18058:19;;17717:366;;;:::o;18089:419::-;18255:4;18293:2;18282:9;18278:18;18270:26;;18342:9;18336:4;18332:20;18328:1;18317:9;18313:17;18306:47;18370:131;18496:4;18370:131;:::i;:::-;18362:139;;18089:419;;;:::o;18514:222::-;18654:34;18650:1;18642:6;18638:14;18631:58;18723:5;18718:2;18710:6;18706:15;18699:30;18514:222;:::o;18742:366::-;18884:3;18905:67;18969:2;18964:3;18905:67;:::i;:::-;18898:74;;18981:93;19070:3;18981:93;:::i;:::-;19099:2;19094:3;19090:12;19083:19;;18742:366;;;:::o;19114:419::-;19280:4;19318:2;19307:9;19303:18;19295:26;;19367:9;19361:4;19357:20;19353:1;19342:9;19338:17;19331:47;19395:131;19521:4;19395:131;:::i;:::-;19387:139;;19114:419;;;:::o;19539:240::-;19679:34;19675:1;19667:6;19663:14;19656:58;19748:23;19743:2;19735:6;19731:15;19724:48;19539:240;:::o;19785:366::-;19927:3;19948:67;20012:2;20007:3;19948:67;:::i;:::-;19941:74;;20024:93;20113:3;20024:93;:::i;:::-;20142:2;20137:3;20133:12;20126:19;;19785:366;;;:::o;20157:419::-;20323:4;20361:2;20350:9;20346:18;20338:26;;20410:9;20404:4;20400:20;20396:1;20385:9;20381:17;20374:47;20438:131;20564:4;20438:131;:::i;:::-;20430:139;;20157:419;;;:::o;20582:169::-;20722:21;20718:1;20710:6;20706:14;20699:45;20582:169;:::o;20757:366::-;20899:3;20920:67;20984:2;20979:3;20920:67;:::i;:::-;20913:74;;20996:93;21085:3;20996:93;:::i;:::-;21114:2;21109:3;21105:12;21098:19;;20757:366;;;:::o;21129:419::-;21295:4;21333:2;21322:9;21318:18;21310:26;;21382:9;21376:4;21372:20;21368:1;21357:9;21353:17;21346:47;21410:131;21536:4;21410:131;:::i;:::-;21402:139;;21129:419;;;:::o;21554:241::-;21694:34;21690:1;21682:6;21678:14;21671:58;21763:24;21758:2;21750:6;21746:15;21739:49;21554:241;:::o;21801:366::-;21943:3;21964:67;22028:2;22023:3;21964:67;:::i;:::-;21957:74;;22040:93;22129:3;22040:93;:::i;:::-;22158:2;22153:3;22149:12;22142:19;;21801:366;;;:::o;22173:419::-;22339:4;22377:2;22366:9;22362:18;22354:26;;22426:9;22420:4;22416:20;22412:1;22401:9;22397:17;22390:47;22454:131;22580:4;22454:131;:::i;:::-;22446:139;;22173:419;;;:::o;22598:194::-;22638:4;22658:20;22676:1;22658:20;:::i;:::-;22653:25;;22692:20;22710:1;22692:20;:::i;:::-;22687:25;;22736:1;22733;22729:9;22721:17;;22760:1;22754:4;22751:11;22748:37;;;22765:18;;:::i;:::-;22748:37;22598:194;;;;:::o;22798:180::-;22846:77;22843:1;22836:88;22943:4;22940:1;22933:15;22967:4;22964:1;22957:15;22984:143;23041:5;23072:6;23066:13;23057:22;;23088:33;23115:5;23088:33;:::i;:::-;22984:143;;;;:::o;23133:351::-;23203:6;23252:2;23240:9;23231:7;23227:23;23223:32;23220:119;;;23258:79;;:::i;:::-;23220:119;23378:1;23403:64;23459:7;23450:6;23439:9;23435:22;23403:64;:::i;:::-;23393:74;;23349:128;23133:351;;;;:::o;23490:85::-;23535:7;23564:5;23553:16;;23490:85;;;:::o;23581:158::-;23639:9;23672:61;23690:42;23699:32;23725:5;23699:32;:::i;:::-;23690:42;:::i;:::-;23672:61;:::i;:::-;23659:74;;23581:158;;;:::o;23745:147::-;23840:45;23879:5;23840:45;:::i;:::-;23835:3;23828:58;23745:147;;:::o;23898:114::-;23965:6;23999:5;23993:12;23983:22;;23898:114;;;:::o;24018:184::-;24117:11;24151:6;24146:3;24139:19;24191:4;24186:3;24182:14;24167:29;;24018:184;;;;:::o;24208:132::-;24275:4;24298:3;24290:11;;24328:4;24323:3;24319:14;24311:22;;24208:132;;;:::o;24346:108::-;24423:24;24441:5;24423:24;:::i;:::-;24418:3;24411:37;24346:108;;:::o;24460:179::-;24529:10;24550:46;24592:3;24584:6;24550:46;:::i;:::-;24628:4;24623:3;24619:14;24605:28;;24460:179;;;;:::o;24645:113::-;24715:4;24747;24742:3;24738:14;24730:22;;24645:113;;;:::o;24794:732::-;24913:3;24942:54;24990:5;24942:54;:::i;:::-;25012:86;25091:6;25086:3;25012:86;:::i;:::-;25005:93;;25122:56;25172:5;25122:56;:::i;:::-;25201:7;25232:1;25217:284;25242:6;25239:1;25236:13;25217:284;;;25318:6;25312:13;25345:63;25404:3;25389:13;25345:63;:::i;:::-;25338:70;;25431:60;25484:6;25431:60;:::i;:::-;25421:70;;25277:224;25264:1;25261;25257:9;25252:14;;25217:284;;;25221:14;25517:3;25510:10;;24918:608;;;24794:732;;;;:::o;25532:831::-;25795:4;25833:3;25822:9;25818:19;25810:27;;25847:71;25915:1;25904:9;25900:17;25891:6;25847:71;:::i;:::-;25928:80;26004:2;25993:9;25989:18;25980:6;25928:80;:::i;:::-;26055:9;26049:4;26045:20;26040:2;26029:9;26025:18;26018:48;26083:108;26186:4;26177:6;26083:108;:::i;:::-;26075:116;;26201:72;26269:2;26258:9;26254:18;26245:6;26201:72;:::i;:::-;26283:73;26351:3;26340:9;26336:19;26327:6;26283:73;:::i;:::-;25532:831;;;;;;;;:::o;26369:180::-;26417:77;26414:1;26407:88;26514:4;26511:1;26504:15;26538:4;26535:1;26528:15;26555:185;26595:1;26612:20;26630:1;26612:20;:::i;:::-;26607:25;;26646:20;26664:1;26646:20;:::i;:::-;26641:25;;26685:1;26675:35;;26690:18;;:::i;:::-;26675:35;26732:1;26729;26725:9;26720:14;;26555:185;;;;:::o;26746:220::-;26886:34;26882:1;26874:6;26870:14;26863:58;26955:3;26950:2;26942:6;26938:15;26931:28;26746:220;:::o;26972:366::-;27114:3;27135:67;27199:2;27194:3;27135:67;:::i;:::-;27128:74;;27211:93;27300:3;27211:93;:::i;:::-;27329:2;27324:3;27320:12;27313:19;;26972:366;;;:::o;27344:419::-;27510:4;27548:2;27537:9;27533:18;27525:26;;27597:9;27591:4;27587:20;27583:1;27572:9;27568:17;27561:47;27625:131;27751:4;27625:131;:::i;:::-;27617:139;;27344:419;;;:::o

Swarm Source

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