ETH Price: $2,375.56 (+8.58%)
 

Overview

Max Total Supply

420,000,000,000 BOB

Holders

242

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Bubblez

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : Bubblez.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/*

    ______ _   _____________ _      _____ ______
    | ___ \ | | | ___ \ ___ \ |    |  ___|___  /
    | |_/ / | | | |_/ / |_/ / |    | |__    / /
    | ___ \ | | | ___ \ ___ \ |    |  __|  / /
    | |_/ / |_| | |_/ / |_/ / |____| |___./ /___
    \____/ \___/\____/\____/\_____/\____/\_____/


              WWW: bubblezonbase.com
              X:   x.com/bubblezonbase
              TG:  t.me/bubblezonbase

*/

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

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

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

interface IRouter {
    function factory() external view returns (address);

    function WETH() external view returns (address);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

interface IWETH is IERC20 {
    function withdraw(uint256) external;
}

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

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
        // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    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;
        unchecked {
        // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    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;
        // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract Bubblez is ERC20, Ownable {

    modifier lockTheFeeProcessing() {
        processing = true;
        _;
        processing = false;
    }

    bool private processing = false;

    IRouter public router;
    address public automatedMarketMakerAddress;
    mapping(address => bool) public automatedMarketMakerPair;

    uint256 public buyFee;
    uint256 public sellFee;

    bool public limitsInPlace = true;
    bool public takingTax = true;
    uint256 public maxWallet;
    uint256 public maxTransaction;
    uint256 public thresholdToProcessFees;

    address public julianWallet;

    mapping(address => bool) public excludedAddresses;

    bool public tradingEnabled = false;

    event AMMSet(address indexed pairAddress, bool isAMM);
    event TradingEnabled();
    event NewMarketingWalletSet(address newDevWallet);
    event ThresholdToProcessFeesSet(uint256 oldThreshold, uint256 newThreshold);
    event LimitsDisabled();
    event FeeSet(uint256 buyFee, uint256 sellFee);
    event FeesDisabled();
    event FeesProcessed();
    event ExcludedAddressSet(address indexed excludedAddress, bool isExcluded);

    constructor(address routerAddress)
    ERC20("Bubblez", "BOB")
    {
        _mint(_msgSender(), 420000000000 * 1e18);

        excludedAddresses[address(_msgSender())] = true;
        excludedAddresses[address(this)] = true;

        router = IRouter(routerAddress);
        address _pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        setAMM(address(_pair), true);

        julianWallet = address(0x57d48ec30Fe6Ad0A3c1bac5eB6892Ae5B11f93D4);

        excludedAddresses[address(router)] = true;
        excludedAddresses[address(julianWallet)] = true;

        buyFee = 80000;
        sellFee = 80000;

        maxWallet = 4200000000 * 1e18;
        maxTransaction = 2100000000 * 1e18;
        thresholdToProcessFees = 105000000 * 1e18;
    }

    receive() external payable {}

    function setExcludedAddress(address excludedAddress, bool isExcluded) public onlyOwner {
        require(excludedAddress != address(0), "(New) excluded address can not be address 0x");
        excludedAddresses[excludedAddress] = isExcluded;
        emit ExcludedAddressSet(excludedAddress, isExcluded);
    }

    function setAMM(address ammAddress, bool isAMM) public onlyOwner {
        require(ammAddress != address(0), "(New) AMM address can not be address 0x");
        automatedMarketMakerPair[ammAddress] = isAMM;
        automatedMarketMakerAddress = ammAddress;
        emit AMMSet(ammAddress, isAMM);
    }

    function setThresholdToProcessFees(uint256 newThreshold) external onlyOwner {
        require(newThreshold >= 1000 * 1e18, "1000 is the minimum");
        uint256 _oldThreshold = thresholdToProcessFees;
        thresholdToProcessFees = newThreshold;
        emit ThresholdToProcessFeesSet(_oldThreshold, newThreshold);
    }

    function disableLimits() external onlyOwner {
        require(limitsInPlace, "Limits are already disabled");
        limitsInPlace = false;
        emit LimitsDisabled();
    }

    function setFee(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee != buyFee, "Buy fee is already that percentage");
        require(newSellFee != sellFee, "Sell fee is already that percentage");

        buyFee = newBuyFee;
        sellFee = newSellFee;

        if (newBuyFee == 0 && newSellFee == 0) {
            takingTax = false;
            emit FeesDisabled();
        }

        emit FeeSet(newBuyFee, newSellFee);
    }

    function setMarketingWallet(address newMarketingWallet) public onlyOwner {
        require(newMarketingWallet != address(0), "New operations wallet can not be address 0x");
        excludedAddresses[address(julianWallet)] = false;
        julianWallet = newMarketingWallet;
        excludedAddresses[address(newMarketingWallet)] = true;
        emit NewMarketingWalletSet(newMarketingWallet);
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        emit TradingEnabled();
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(tradingEnabled || from == owner(), "Trading will enable when AMM is set");

        if (excludedAddresses[from] || excludedAddresses[to]) {
            super._transfer(from, to, amount);
            return;
        }

        if (limitsInPlace) {
            if (automatedMarketMakerPair[from] && !excludedAddresses[to]) {
                require(amount <= maxTransaction, "Max transaction exceeded.");
                require(balanceOf(to) + amount <= maxWallet, "Max wallet exceeded.");
            } else if (automatedMarketMakerPair[to] && !excludedAddresses[from]) {
                require(amount <= maxTransaction, "Max transaction exceeded.");
            } else if (!excludedAddresses[to] && !excludedAddresses[from]) {
                require(amount <= maxTransaction, "Max transaction exceeded.");
                require(balanceOf(to) + amount <= maxWallet, "Max wallet exceeded.");
            }
        }

        uint256 _transferAmount = amount;

        if (takingTax) {
            if (automatedMarketMakerPair[from] || automatedMarketMakerPair[to]) {
                uint256 _txnFee;

                if (automatedMarketMakerPair[from]) {
                    _txnFee = (_transferAmount * buyFee) / 100000;
                }

                if (automatedMarketMakerPair[to]) {
                    _txnFee = (_transferAmount * sellFee) / 100000;

                    if (!processing && balanceOf(address(this)) >= thresholdToProcessFees) {
                        processFees();
                    }
                }

                _transferAmount = _transferAmount - _txnFee;

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

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

    function processFees() public lockTheFeeProcessing {
        uint256 _contractBalance = balanceOf(address(this));

        require(_contractBalance != 0, "Token balance cannot be 0");

        uint256 _swapAmount = _contractBalance;

        _swapTokensForEth(_swapAmount);

        uint256 _balance = address(this).balance;

        require(_balance != 0, "ETH balance cannot be 0");

        (bool sendSuccess,) = julianWallet.call{value : _balance}("");
        require(sendSuccess, "Transfer to dev failed.");

        emit FeesProcessed();
    }

    function _swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function rescueWETH() external onlyOwner {
        address wethAddress = router.WETH();
        IWETH(wethAddress).withdraw(
            IERC20(wethAddress).balanceOf(address(this))
        );
    }

    function rescueETH() external onlyOwner {
        uint256 _balance = address(this).balance;
        require(_balance > 0, "No ETH to withdraw");

        (bool success,) = julianWallet.call{value : _balance}("");
        require(success, "ETH transfer failed");
    }

    function rescueTokens(address tokenAddress) external onlyOwner {
        IERC20 tokenContract = IERC20(tokenAddress);
        tokenContract.transfer(address(julianWallet), tokenContract.balanceOf(address(this)));
    }

}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pairAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isAMM","type":"bool"}],"name":"AMMSet","type":"event"},{"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":"excludedAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeeSet","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesDisabled","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesProcessed","type":"event"},{"anonymous":false,"inputs":[],"name":"LimitsDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newDevWallet","type":"address"}],"name":"NewMarketingWalletSet","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":"uint256","name":"oldThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"ThresholdToProcessFeesSet","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"automatedMarketMakerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"julianWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInPlace","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueWETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"setThresholdToProcessFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takingTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdToProcessFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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"},{"stateMutability":"payable","type":"receive"}]

60806040526000600560146101000a81548160ff0219169083151502179055506001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff0219169083151502179055506000601160006101000a81548160ff0219169083151502179055503480156200007d57600080fd5b50604051620050a6380380620050a68339818101604052810190620000a3919062000ab8565b6040518060400160405280600781526020017f427562626c657a000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f424f420000000000000000000000000000000000000000000000000000000000815250816003908162000120919062000d64565b50806004908162000132919062000d64565b5050506200015562000149620005e060201b60201c565b620005e860201b60201c565b6200018362000169620005e060201b60201c565b6c054d17db76321263eca0000000620006ae60201b60201c565b60016010600062000199620005e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000319919062000ab8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c9919062000ab8565b6040518363ffffffff1660e01b8152600401620003e892919062000e5c565b6020604051808303816000875af115801562000408573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042e919062000ab8565b9050620004438160016200081b60201b60201c565b7357d48ec30fe6ad0a3c1bac5eb6892ae5b11f93d4600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506201388060098190555062013880600a819055506b0d92289838d21a9968000000600c819055506b06c9144c1c690d4cb4000000600d819055506a56da9d67d20d7709000000600e819055505050620010e8565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000720576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007179062000eea565b60405180910390fd5b62000734600083836200098960201b60201c565b806002600082825462000748919062000f3b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007fb919062000f87565b60405180910390a362000817600083836200098e60201b60201c565b5050565b6200082b6200099360201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000894906200101a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87826040516200097d919062001059565b60405180910390a25050565b505050565b505050565b620009a3620005e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620009c962000a2460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a1990620010c6565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a808262000a53565b9050919050565b62000a928162000a73565b811462000a9e57600080fd5b50565b60008151905062000ab28162000a87565b92915050565b60006020828403121562000ad15762000ad062000a4e565b5b600062000ae18482850162000aa1565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b6c57607f821691505b60208210810362000b825762000b8162000b24565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bad565b62000bf8868362000bad565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c4562000c3f62000c398462000c10565b62000c1a565b62000c10565b9050919050565b6000819050919050565b62000c618362000c24565b62000c7962000c708262000c4c565b84845462000bba565b825550505050565b600090565b62000c9062000c81565b62000c9d81848462000c56565b505050565b5b8181101562000cc55762000cb960008262000c86565b60018101905062000ca3565b5050565b601f82111562000d145762000cde8162000b88565b62000ce98462000b9d565b8101602085101562000cf9578190505b62000d1162000d088562000b9d565b83018262000ca2565b50505b505050565b600082821c905092915050565b600062000d396000198460080262000d19565b1980831691505092915050565b600062000d54838362000d26565b9150826002028217905092915050565b62000d6f8262000aea565b67ffffffffffffffff81111562000d8b5762000d8a62000af5565b5b62000d97825462000b53565b62000da482828562000cc9565b600060209050601f83116001811462000ddc576000841562000dc7578287015190505b62000dd3858262000d46565b86555062000e43565b601f19841662000dec8662000b88565b60005b8281101562000e165784890151825560018201915060208501945060208101905062000def565b8683101562000e36578489015162000e32601f89168262000d26565b8355505b6001600288020188555050505b505050505050565b62000e568162000a73565b82525050565b600060408201905062000e73600083018562000e4b565b62000e82602083018462000e4b565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ed2601f8362000e89565b915062000edf8262000e9a565b602082019050919050565b6000602082019050818103600083015262000f058162000ec3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f488262000c10565b915062000f558362000c10565b925082820190508082111562000f705762000f6f62000f0c565b5b92915050565b62000f818162000c10565b82525050565b600060208201905062000f9e600083018462000f76565b92915050565b7f284e65772920414d4d20616464726573732063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b60006200100260278362000e89565b91506200100f8262000fa4565b604082019050919050565b60006020820190508181036000830152620010358162000ff3565b9050919050565b60008115159050919050565b62001053816200103c565b82525050565b600060208201905062001070600083018462001048565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620010ae60208362000e89565b9150620010bb8262001076565b602082019050919050565b60006020820190508181036000830152620010e1816200109f565b9050919050565b613fae80620010f86000396000f3fe6080604052600436106102285760003560e01c80638a8c523c11610123578063c38ec0b6116100ab578063f196782c1161006f578063f196782c146107f3578063f2fde38b1461081c578063f887ea4014610845578063f8b45b0514610870578063f928364c1461089b5761022f565b8063c38ec0b61461070c578063c3f70b5214610723578063cf011b261461074e578063d368371e1461078b578063dd62ed3e146107b65761022f565b806395d89b41116100f257806395d89b4114610627578063a457c2d714610652578063a9059cbb1461068f578063a9d3cd8a146106cc578063ba69ebed146106f55761022f565b80638a8c523c1461057d5780638da5cb5b146105945780638fe82647146105bf57806390aa2ea6146105ea5761022f565b806331cd08ad116101b157806352f7c9881161017557806352f7c988146104ac57806355da1ccb146104d55780635d098b381461050057806370a0823114610529578063715018a6146105665761022f565b806331cd08ad146103c557806339509351146103f0578063470624021461042d5780634ada218b1461045857806350b9a9f5146104835761022f565b806318160ddd116101f857806318160ddd146102f057806320800a001461031b57806323b872dd146103325780632b14ca561461036f578063313ce5671461039a5761022f565b8062ae3bf81461023457806306fdde031461025d578063095ea7b3146102885780630ac249d5146102c55761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612a5a565b6108b2565b005b34801561026957600080fd5b506102726109dd565b60405161027f9190612b17565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190612b6f565b610a6f565b6040516102bc9190612bca565b60405180910390f35b3480156102d157600080fd5b506102da610a92565b6040516102e79190612bf4565b60405180910390f35b3480156102fc57600080fd5b50610305610ab8565b6040516103129190612c1e565b60405180910390f35b34801561032757600080fd5b50610330610ac2565b005b34801561033e57600080fd5b5061035960048036038101906103549190612c39565b610be4565b6040516103669190612bca565b60405180910390f35b34801561037b57600080fd5b50610384610c13565b6040516103919190612c1e565b60405180910390f35b3480156103a657600080fd5b506103af610c19565b6040516103bc9190612ca8565b60405180910390f35b3480156103d157600080fd5b506103da610c22565b6040516103e79190612bca565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190612b6f565b610c35565b6040516104249190612bca565b60405180910390f35b34801561043957600080fd5b50610442610c6c565b60405161044f9190612c1e565b60405180910390f35b34801561046457600080fd5b5061046d610c72565b60405161047a9190612bca565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190612cc3565b610c85565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190612cf0565b610d24565b005b3480156104e157600080fd5b506104ea610e5c565b6040516104f79190612bca565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612a5a565b610e6f565b005b34801561053557600080fd5b50610550600480360381019061054b9190612a5a565b611033565b60405161055d9190612c1e565b60405180910390f35b34801561057257600080fd5b5061057b61107b565b005b34801561058957600080fd5b5061059261108f565b005b3480156105a057600080fd5b506105a9611130565b6040516105b69190612bf4565b60405180910390f35b3480156105cb57600080fd5b506105d461115a565b6040516105e19190612bf4565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190612a5a565b611180565b60405161061e9190612bca565b60405180910390f35b34801561063357600080fd5b5061063c6111a0565b6040516106499190612b17565b60405180910390f35b34801561065e57600080fd5b5061067960048036038101906106749190612b6f565b611232565b6040516106869190612bca565b60405180910390f35b34801561069b57600080fd5b506106b660048036038101906106b19190612b6f565b6112a9565b6040516106c39190612bca565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190612d5c565b6112cc565b005b34801561070157600080fd5b5061070a61142d565b005b34801561071857600080fd5b50610721611609565b005b34801561072f57600080fd5b5061073861178d565b6040516107459190612c1e565b60405180910390f35b34801561075a57600080fd5b5061077560048036038101906107709190612a5a565b611793565b6040516107829190612bca565b60405180910390f35b34801561079757600080fd5b506107a06117b3565b6040516107ad9190612c1e565b60405180910390f35b3480156107c257600080fd5b506107dd60048036038101906107d89190612d9c565b6117b9565b6040516107ea9190612c1e565b60405180910390f35b3480156107ff57600080fd5b5061081a60048036038101906108159190612d5c565b611840565b005b34801561082857600080fd5b50610843600480360381019061083e9190612a5a565b611960565b005b34801561085157600080fd5b5061085a6119e3565b6040516108679190612e3b565b60405180910390f35b34801561087c57600080fd5b50610885611a09565b6040516108929190612c1e565b60405180910390f35b3480156108a757600080fd5b506108b0611a0f565b005b6108ba611aaf565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109379190612bf4565b602060405180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612e6b565b6040518363ffffffff1660e01b8152600401610995929190612e98565b6020604051808303816000875af11580156109b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d89190612ed6565b505050565b6060600380546109ec90612f32565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1890612f32565b8015610a655780601f10610a3a57610100808354040283529160200191610a65565b820191906000526020600020905b815481529060010190602001808311610a4857829003601f168201915b5050505050905090565b600080610a7a611b2d565b9050610a87818585611b35565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610aca611aaf565b600047905060008111610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990612faf565b60405180910390fd5b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610b5a90613000565b60006040518083038185875af1925050503d8060008114610b97576040519150601f19603f3d011682016040523d82523d6000602084013e610b9c565b606091505b5050905080610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd790613061565b60405180910390fd5b5050565b600080610bef611b2d565b9050610bfc858285611cfe565b610c07858585611d8a565b60019150509392505050565b600a5481565b60006012905090565b600b60009054906101000a900460ff1681565b600080610c40611b2d565b9050610c61818585610c5285896117b9565b610c5c91906130b0565b611b35565b600191505092915050565b60095481565b601160009054906101000a900460ff1681565b610c8d611aaf565b683635c9adc5dea00000811015610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090613130565b60405180910390fd5b6000600e54905081600e819055507f046078a3b350ab7ef8b49720ee84ad777c5172459d33cff8e353c3b9b04757ea8183604051610d18929190613150565b60405180910390a15050565b610d2c611aaf565b6009548203610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d67906131eb565b60405180910390fd5b600a548103610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab9061327d565b60405180910390fd5b8160098190555080600a81905550600082148015610dd25750600081145b15610e1f576000600b60016101000a81548160ff0219169083151502179055507f36c13ba18a0a22fbc6fa29968c7ddbcabe3c8096339dc284da5e79ae81dcbb1360405160405180910390a15b7f74dbbbe280ef27b79a8a0c449d5ae2ba7a31849103241d0f98df70bbc9d03e378282604051610e50929190613150565b60405180910390a15050565b600b60019054906101000a900460ff1681565b610e77611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd9061330f565b60405180910390fd5b600060106000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507feda80b7b41c9a2fed990518087869468a994f28f0f6fc9a0c011b03612c5cca4816040516110289190612bf4565b60405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611083611aaf565b61108d600061246e565b565b611097611aaf565b601160009054906101000a900460ff16156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de9061337b565b60405180910390fd5b6001601160006101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6060600480546111af90612f32565b80601f01602080910402602001604051908101604052809291908181526020018280546111db90612f32565b80156112285780601f106111fd57610100808354040283529160200191611228565b820191906000526020600020905b81548152906001019060200180831161120b57829003601f168201915b5050505050905090565b60008061123d611b2d565b9050600061124b82866117b9565b905083811015611290576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112879061340d565b60405180910390fd5b61129d8286868403611b35565b60019250505092915050565b6000806112b4611b2d565b90506112c1818585611d8a565b600191505092915050565b6112d4611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a9061349f565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87826040516114219190612bca565b60405180910390a25050565b6001600560146101000a81548160ff021916908315150217905550600061145330611033565b905060008103611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f9061350b565b60405180910390fd5b60008190506114a681612534565b6000479050600081036114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590613577565b60405180910390fd5b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161153690613000565b60006040518083038185875af1925050503d8060008114611573576040519150601f19603f3d011682016040523d82523d6000602084013e611578565b606091505b50509050806115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b3906135e3565b60405180910390fd5b7f073f67f6b2a495a773c8f33582c762d9c1a89fec310d1e2ce2808b4ff65d829060405160405180910390a1505050506000600560146101000a81548160ff021916908315150217905550565b611611611aaf565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a49190613618565b90508073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116fb9190612bf4565b602060405180830381865afa158015611718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173c9190612e6b565b6040518263ffffffff1660e01b81526004016117589190612c1e565b600060405180830381600087803b15801561177257600080fd5b505af1158015611786573d6000803e3d6000fd5b5050505050565b600d5481565b60106020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611848611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ae906136b7565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f33e99dbd8a2fdf021abaf8531c98838a37f8e85fd3cbf0e897047074f9c4ecf4826040516119549190612bca565b60405180910390a25050565b611968611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce90613749565b60405180910390fd5b6119e08161246e565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b611a17611aaf565b600b60009054906101000a900460ff16611a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5d906137b5565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055507fd0a8ff473dcac5e83a30583490a7d6b4eea5bbb9dd4aa26182b0fa8a231e0c9860405160405180910390a1565b611ab7611b2d565b73ffffffffffffffffffffffffffffffffffffffff16611ad5611130565b73ffffffffffffffffffffffffffffffffffffffff1614611b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2290613821565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b906138b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90613945565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cf19190612c1e565b60405180910390a3505050565b6000611d0a84846117b9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d845781811015611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d906139b1565b60405180910390fd5b611d838484848403611b35565b5b50505050565b601160009054906101000a900460ff1680611dd75750611da8611130565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613a43565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb75750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ecc57611ec7838383612777565b612469565b600b60009054906101000a900460ff161561226757600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561202b57600d54811115611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc590613aaf565b60405180910390fd5b600c5481611fdb84611033565b611fe591906130b0565b1115612026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201d90613b1b565b60405180910390fd5b612266565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120ce5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211d57600d54811115612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613aaf565b60405180910390fd5b612265565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121c15750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561226457600d5481111561220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220290613aaf565b60405180910390fd5b600c548161221884611033565b61222291906130b0565b1115612263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225a90613b1b565b60405180910390fd5b5b5b5b5b6000819050600b60019054906101000a900460ff161561245c57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123225750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561245b576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561239a57620186a06009548361238d9190613b3b565b6123979190613bac565b90505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561244057620186a0600a54836123fe9190613b3b565b6124089190613bac565b9050600560149054906101000a900460ff161580156124315750600e5461242e30611033565b10155b1561243f5761243e61142d565b5b5b808261244c9190613bdd565b9150612459853083612777565b505b5b612467848483612777565b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff81111561255157612550613c11565b5b60405190808252806020026020018201604052801561257f5781602001602082028036833780820191505090505b509050308160008151811061259757612596613c40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126629190613618565b8160018151811061267657612675613c40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126dd30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b35565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612741959493929190613d68565b600060405180830381600087803b15801561275b57600080fd5b505af115801561276f573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127dd90613e34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284c90613ec6565b60405180910390fd5b6128608383836129ed565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128dd90613f58565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129d49190612c1e565b60405180910390a36129e78484846129f2565b50505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a27826129fc565b9050919050565b612a3781612a1c565b8114612a4257600080fd5b50565b600081359050612a5481612a2e565b92915050565b600060208284031215612a7057612a6f6129f7565b5b6000612a7e84828501612a45565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ac1578082015181840152602081019050612aa6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ae982612a87565b612af38185612a92565b9350612b03818560208601612aa3565b612b0c81612acd565b840191505092915050565b60006020820190508181036000830152612b318184612ade565b905092915050565b6000819050919050565b612b4c81612b39565b8114612b5757600080fd5b50565b600081359050612b6981612b43565b92915050565b60008060408385031215612b8657612b856129f7565b5b6000612b9485828601612a45565b9250506020612ba585828601612b5a565b9150509250929050565b60008115159050919050565b612bc481612baf565b82525050565b6000602082019050612bdf6000830184612bbb565b92915050565b612bee81612a1c565b82525050565b6000602082019050612c096000830184612be5565b92915050565b612c1881612b39565b82525050565b6000602082019050612c336000830184612c0f565b92915050565b600080600060608486031215612c5257612c516129f7565b5b6000612c6086828701612a45565b9350506020612c7186828701612a45565b9250506040612c8286828701612b5a565b9150509250925092565b600060ff82169050919050565b612ca281612c8c565b82525050565b6000602082019050612cbd6000830184612c99565b92915050565b600060208284031215612cd957612cd86129f7565b5b6000612ce784828501612b5a565b91505092915050565b60008060408385031215612d0757612d066129f7565b5b6000612d1585828601612b5a565b9250506020612d2685828601612b5a565b9150509250929050565b612d3981612baf565b8114612d4457600080fd5b50565b600081359050612d5681612d30565b92915050565b60008060408385031215612d7357612d726129f7565b5b6000612d8185828601612a45565b9250506020612d9285828601612d47565b9150509250929050565b60008060408385031215612db357612db26129f7565b5b6000612dc185828601612a45565b9250506020612dd285828601612a45565b9150509250929050565b6000819050919050565b6000612e01612dfc612df7846129fc565b612ddc565b6129fc565b9050919050565b6000612e1382612de6565b9050919050565b6000612e2582612e08565b9050919050565b612e3581612e1a565b82525050565b6000602082019050612e506000830184612e2c565b92915050565b600081519050612e6581612b43565b92915050565b600060208284031215612e8157612e806129f7565b5b6000612e8f84828501612e56565b91505092915050565b6000604082019050612ead6000830185612be5565b612eba6020830184612c0f565b9392505050565b600081519050612ed081612d30565b92915050565b600060208284031215612eec57612eeb6129f7565b5b6000612efa84828501612ec1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f4a57607f821691505b602082108103612f5d57612f5c612f03565b5b50919050565b7f4e6f2045544820746f2077697468647261770000000000000000000000000000600082015250565b6000612f99601283612a92565b9150612fa482612f63565b602082019050919050565b60006020820190508181036000830152612fc881612f8c565b9050919050565b600081905092915050565b50565b6000612fea600083612fcf565b9150612ff582612fda565b600082019050919050565b600061300b82612fdd565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b600061304b601383612a92565b915061305682613015565b602082019050919050565b6000602082019050818103600083015261307a8161303e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130bb82612b39565b91506130c683612b39565b92508282019050808211156130de576130dd613081565b5b92915050565b7f3130303020697320746865206d696e696d756d00000000000000000000000000600082015250565b600061311a601383612a92565b9150613125826130e4565b602082019050919050565b600060208201905081810360008301526131498161310d565b9050919050565b60006040820190506131656000830185612c0f565b6131726020830184612c0f565b9392505050565b7f4275792066656520697320616c726561647920746861742070657263656e746160008201527f6765000000000000000000000000000000000000000000000000000000000000602082015250565b60006131d5602283612a92565b91506131e082613179565b604082019050919050565b60006020820190508181036000830152613204816131c8565b9050919050565b7f53656c6c2066656520697320616c726561647920746861742070657263656e7460008201527f6167650000000000000000000000000000000000000000000000000000000000602082015250565b6000613267602383612a92565b91506132728261320b565b604082019050919050565b600060208201905081810360008301526132968161325a565b9050919050565b7f4e6577206f7065726174696f6e732077616c6c65742063616e206e6f7420626560008201527f2061646472657373203078000000000000000000000000000000000000000000602082015250565b60006132f9602b83612a92565b91506133048261329d565b604082019050919050565b60006020820190508181036000830152613328816132ec565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613365601a83612a92565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006133f7602583612a92565b91506134028261339b565b604082019050919050565b60006020820190508181036000830152613426816133ea565b9050919050565b7f284e65772920414d4d20616464726573732063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b6000613489602783612a92565b91506134948261342d565b604082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f546f6b656e2062616c616e63652063616e6e6f74206265203000000000000000600082015250565b60006134f5601983612a92565b9150613500826134bf565b602082019050919050565b60006020820190508181036000830152613524816134e8565b9050919050565b7f4554482062616c616e63652063616e6e6f742062652030000000000000000000600082015250565b6000613561601783612a92565b915061356c8261352b565b602082019050919050565b6000602082019050818103600083015261359081613554565b9050919050565b7f5472616e7366657220746f20646576206661696c65642e000000000000000000600082015250565b60006135cd601783612a92565b91506135d882613597565b602082019050919050565b600060208201905081810360008301526135fc816135c0565b9050919050565b60008151905061361281612a2e565b92915050565b60006020828403121561362e5761362d6129f7565b5b600061363c84828501613603565b91505092915050565b7f284e657729206578636c7564656420616464726573732063616e206e6f74206260008201527f6520616464726573732030780000000000000000000000000000000000000000602082015250565b60006136a1602c83612a92565b91506136ac82613645565b604082019050919050565b600060208201905081810360008301526136d081613694565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613733602683612a92565b915061373e826136d7565b604082019050919050565b6000602082019050818103600083015261376281613726565b9050919050565b7f4c696d6974732061726520616c72656164792064697361626c65640000000000600082015250565b600061379f601b83612a92565b91506137aa82613769565b602082019050919050565b600060208201905081810360008301526137ce81613792565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061380b602083612a92565b9150613816826137d5565b602082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061389d602483612a92565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061392f602283612a92565b915061393a826138d3565b604082019050919050565b6000602082019050818103600083015261395e81613922565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061399b601d83612a92565b91506139a682613965565b602082019050919050565b600060208201905081810360008301526139ca8161398e565b9050919050565b7f54726164696e672077696c6c20656e61626c65207768656e20414d4d2069732060008201527f7365740000000000000000000000000000000000000000000000000000000000602082015250565b6000613a2d602383612a92565b9150613a38826139d1565b604082019050919050565b60006020820190508181036000830152613a5c81613a20565b9050919050565b7f4d6178207472616e73616374696f6e2065786365656465642e00000000000000600082015250565b6000613a99601983612a92565b9150613aa482613a63565b602082019050919050565b60006020820190508181036000830152613ac881613a8c565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b6000613b05601483612a92565b9150613b1082613acf565b602082019050919050565b60006020820190508181036000830152613b3481613af8565b9050919050565b6000613b4682612b39565b9150613b5183612b39565b9250828202613b5f81612b39565b91508282048414831517613b7657613b75613081565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bb782612b39565b9150613bc283612b39565b925082613bd257613bd1613b7d565b5b828204905092915050565b6000613be882612b39565b9150613bf383612b39565b9250828203905081811115613c0b57613c0a613081565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613c94613c8f613c8a84613c6f565b612ddc565b612b39565b9050919050565b613ca481613c79565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cdf81612a1c565b82525050565b6000613cf18383613cd6565b60208301905092915050565b6000602082019050919050565b6000613d1582613caa565b613d1f8185613cb5565b9350613d2a83613cc6565b8060005b83811015613d5b578151613d428882613ce5565b9750613d4d83613cfd565b925050600181019050613d2e565b5085935050505092915050565b600060a082019050613d7d6000830188612c0f565b613d8a6020830187613c9b565b8181036040830152613d9c8186613d0a565b9050613dab6060830185612be5565b613db86080830184612c0f565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e1e602583612a92565b9150613e2982613dc2565b604082019050919050565b60006020820190508181036000830152613e4d81613e11565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613eb0602383612a92565b9150613ebb82613e54565b604082019050919050565b60006020820190508181036000830152613edf81613ea3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f42602683612a92565b9150613f4d82613ee6565b604082019050919050565b60006020820190508181036000830152613f7181613f35565b905091905056fea264697066735822122059542420b32aa4069ab3bf3052efa69dbfa530018bcef9f5e3dfa1d74f813a4664736f6c634300081700330000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24

Deployed Bytecode

0x6080604052600436106102285760003560e01c80638a8c523c11610123578063c38ec0b6116100ab578063f196782c1161006f578063f196782c146107f3578063f2fde38b1461081c578063f887ea4014610845578063f8b45b0514610870578063f928364c1461089b5761022f565b8063c38ec0b61461070c578063c3f70b5214610723578063cf011b261461074e578063d368371e1461078b578063dd62ed3e146107b65761022f565b806395d89b41116100f257806395d89b4114610627578063a457c2d714610652578063a9059cbb1461068f578063a9d3cd8a146106cc578063ba69ebed146106f55761022f565b80638a8c523c1461057d5780638da5cb5b146105945780638fe82647146105bf57806390aa2ea6146105ea5761022f565b806331cd08ad116101b157806352f7c9881161017557806352f7c988146104ac57806355da1ccb146104d55780635d098b381461050057806370a0823114610529578063715018a6146105665761022f565b806331cd08ad146103c557806339509351146103f0578063470624021461042d5780634ada218b1461045857806350b9a9f5146104835761022f565b806318160ddd116101f857806318160ddd146102f057806320800a001461031b57806323b872dd146103325780632b14ca561461036f578063313ce5671461039a5761022f565b8062ae3bf81461023457806306fdde031461025d578063095ea7b3146102885780630ac249d5146102c55761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612a5a565b6108b2565b005b34801561026957600080fd5b506102726109dd565b60405161027f9190612b17565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190612b6f565b610a6f565b6040516102bc9190612bca565b60405180910390f35b3480156102d157600080fd5b506102da610a92565b6040516102e79190612bf4565b60405180910390f35b3480156102fc57600080fd5b50610305610ab8565b6040516103129190612c1e565b60405180910390f35b34801561032757600080fd5b50610330610ac2565b005b34801561033e57600080fd5b5061035960048036038101906103549190612c39565b610be4565b6040516103669190612bca565b60405180910390f35b34801561037b57600080fd5b50610384610c13565b6040516103919190612c1e565b60405180910390f35b3480156103a657600080fd5b506103af610c19565b6040516103bc9190612ca8565b60405180910390f35b3480156103d157600080fd5b506103da610c22565b6040516103e79190612bca565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190612b6f565b610c35565b6040516104249190612bca565b60405180910390f35b34801561043957600080fd5b50610442610c6c565b60405161044f9190612c1e565b60405180910390f35b34801561046457600080fd5b5061046d610c72565b60405161047a9190612bca565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190612cc3565b610c85565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190612cf0565b610d24565b005b3480156104e157600080fd5b506104ea610e5c565b6040516104f79190612bca565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612a5a565b610e6f565b005b34801561053557600080fd5b50610550600480360381019061054b9190612a5a565b611033565b60405161055d9190612c1e565b60405180910390f35b34801561057257600080fd5b5061057b61107b565b005b34801561058957600080fd5b5061059261108f565b005b3480156105a057600080fd5b506105a9611130565b6040516105b69190612bf4565b60405180910390f35b3480156105cb57600080fd5b506105d461115a565b6040516105e19190612bf4565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190612a5a565b611180565b60405161061e9190612bca565b60405180910390f35b34801561063357600080fd5b5061063c6111a0565b6040516106499190612b17565b60405180910390f35b34801561065e57600080fd5b5061067960048036038101906106749190612b6f565b611232565b6040516106869190612bca565b60405180910390f35b34801561069b57600080fd5b506106b660048036038101906106b19190612b6f565b6112a9565b6040516106c39190612bca565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190612d5c565b6112cc565b005b34801561070157600080fd5b5061070a61142d565b005b34801561071857600080fd5b50610721611609565b005b34801561072f57600080fd5b5061073861178d565b6040516107459190612c1e565b60405180910390f35b34801561075a57600080fd5b5061077560048036038101906107709190612a5a565b611793565b6040516107829190612bca565b60405180910390f35b34801561079757600080fd5b506107a06117b3565b6040516107ad9190612c1e565b60405180910390f35b3480156107c257600080fd5b506107dd60048036038101906107d89190612d9c565b6117b9565b6040516107ea9190612c1e565b60405180910390f35b3480156107ff57600080fd5b5061081a60048036038101906108159190612d5c565b611840565b005b34801561082857600080fd5b50610843600480360381019061083e9190612a5a565b611960565b005b34801561085157600080fd5b5061085a6119e3565b6040516108679190612e3b565b60405180910390f35b34801561087c57600080fd5b50610885611a09565b6040516108929190612c1e565b60405180910390f35b3480156108a757600080fd5b506108b0611a0f565b005b6108ba611aaf565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109379190612bf4565b602060405180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612e6b565b6040518363ffffffff1660e01b8152600401610995929190612e98565b6020604051808303816000875af11580156109b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d89190612ed6565b505050565b6060600380546109ec90612f32565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1890612f32565b8015610a655780601f10610a3a57610100808354040283529160200191610a65565b820191906000526020600020905b815481529060010190602001808311610a4857829003601f168201915b5050505050905090565b600080610a7a611b2d565b9050610a87818585611b35565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610aca611aaf565b600047905060008111610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990612faf565b60405180910390fd5b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610b5a90613000565b60006040518083038185875af1925050503d8060008114610b97576040519150601f19603f3d011682016040523d82523d6000602084013e610b9c565b606091505b5050905080610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd790613061565b60405180910390fd5b5050565b600080610bef611b2d565b9050610bfc858285611cfe565b610c07858585611d8a565b60019150509392505050565b600a5481565b60006012905090565b600b60009054906101000a900460ff1681565b600080610c40611b2d565b9050610c61818585610c5285896117b9565b610c5c91906130b0565b611b35565b600191505092915050565b60095481565b601160009054906101000a900460ff1681565b610c8d611aaf565b683635c9adc5dea00000811015610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090613130565b60405180910390fd5b6000600e54905081600e819055507f046078a3b350ab7ef8b49720ee84ad777c5172459d33cff8e353c3b9b04757ea8183604051610d18929190613150565b60405180910390a15050565b610d2c611aaf565b6009548203610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d67906131eb565b60405180910390fd5b600a548103610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab9061327d565b60405180910390fd5b8160098190555080600a81905550600082148015610dd25750600081145b15610e1f576000600b60016101000a81548160ff0219169083151502179055507f36c13ba18a0a22fbc6fa29968c7ddbcabe3c8096339dc284da5e79ae81dcbb1360405160405180910390a15b7f74dbbbe280ef27b79a8a0c449d5ae2ba7a31849103241d0f98df70bbc9d03e378282604051610e50929190613150565b60405180910390a15050565b600b60019054906101000a900460ff1681565b610e77611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd9061330f565b60405180910390fd5b600060106000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507feda80b7b41c9a2fed990518087869468a994f28f0f6fc9a0c011b03612c5cca4816040516110289190612bf4565b60405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611083611aaf565b61108d600061246e565b565b611097611aaf565b601160009054906101000a900460ff16156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de9061337b565b60405180910390fd5b6001601160006101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6060600480546111af90612f32565b80601f01602080910402602001604051908101604052809291908181526020018280546111db90612f32565b80156112285780601f106111fd57610100808354040283529160200191611228565b820191906000526020600020905b81548152906001019060200180831161120b57829003601f168201915b5050505050905090565b60008061123d611b2d565b9050600061124b82866117b9565b905083811015611290576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112879061340d565b60405180910390fd5b61129d8286868403611b35565b60019250505092915050565b6000806112b4611b2d565b90506112c1818585611d8a565b600191505092915050565b6112d4611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a9061349f565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87826040516114219190612bca565b60405180910390a25050565b6001600560146101000a81548160ff021916908315150217905550600061145330611033565b905060008103611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f9061350b565b60405180910390fd5b60008190506114a681612534565b6000479050600081036114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590613577565b60405180910390fd5b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161153690613000565b60006040518083038185875af1925050503d8060008114611573576040519150601f19603f3d011682016040523d82523d6000602084013e611578565b606091505b50509050806115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b3906135e3565b60405180910390fd5b7f073f67f6b2a495a773c8f33582c762d9c1a89fec310d1e2ce2808b4ff65d829060405160405180910390a1505050506000600560146101000a81548160ff021916908315150217905550565b611611611aaf565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a49190613618565b90508073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116fb9190612bf4565b602060405180830381865afa158015611718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173c9190612e6b565b6040518263ffffffff1660e01b81526004016117589190612c1e565b600060405180830381600087803b15801561177257600080fd5b505af1158015611786573d6000803e3d6000fd5b5050505050565b600d5481565b60106020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611848611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ae906136b7565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f33e99dbd8a2fdf021abaf8531c98838a37f8e85fd3cbf0e897047074f9c4ecf4826040516119549190612bca565b60405180910390a25050565b611968611aaf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce90613749565b60405180910390fd5b6119e08161246e565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b611a17611aaf565b600b60009054906101000a900460ff16611a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5d906137b5565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055507fd0a8ff473dcac5e83a30583490a7d6b4eea5bbb9dd4aa26182b0fa8a231e0c9860405160405180910390a1565b611ab7611b2d565b73ffffffffffffffffffffffffffffffffffffffff16611ad5611130565b73ffffffffffffffffffffffffffffffffffffffff1614611b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2290613821565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b906138b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90613945565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cf19190612c1e565b60405180910390a3505050565b6000611d0a84846117b9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d845781811015611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d906139b1565b60405180910390fd5b611d838484848403611b35565b5b50505050565b601160009054906101000a900460ff1680611dd75750611da8611130565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613a43565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb75750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ecc57611ec7838383612777565b612469565b600b60009054906101000a900460ff161561226757600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561202b57600d54811115611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc590613aaf565b60405180910390fd5b600c5481611fdb84611033565b611fe591906130b0565b1115612026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201d90613b1b565b60405180910390fd5b612266565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120ce5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211d57600d54811115612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613aaf565b60405180910390fd5b612265565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121c15750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561226457600d5481111561220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220290613aaf565b60405180910390fd5b600c548161221884611033565b61222291906130b0565b1115612263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225a90613b1b565b60405180910390fd5b5b5b5b5b6000819050600b60019054906101000a900460ff161561245c57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123225750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561245b576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561239a57620186a06009548361238d9190613b3b565b6123979190613bac565b90505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561244057620186a0600a54836123fe9190613b3b565b6124089190613bac565b9050600560149054906101000a900460ff161580156124315750600e5461242e30611033565b10155b1561243f5761243e61142d565b5b5b808261244c9190613bdd565b9150612459853083612777565b505b5b612467848483612777565b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff81111561255157612550613c11565b5b60405190808252806020026020018201604052801561257f5781602001602082028036833780820191505090505b509050308160008151811061259757612596613c40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126629190613618565b8160018151811061267657612675613c40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126dd30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b35565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612741959493929190613d68565b600060405180830381600087803b15801561275b57600080fd5b505af115801561276f573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127dd90613e34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284c90613ec6565b60405180910390fd5b6128608383836129ed565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128dd90613f58565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129d49190612c1e565b60405180910390a36129e78484846129f2565b50505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a27826129fc565b9050919050565b612a3781612a1c565b8114612a4257600080fd5b50565b600081359050612a5481612a2e565b92915050565b600060208284031215612a7057612a6f6129f7565b5b6000612a7e84828501612a45565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ac1578082015181840152602081019050612aa6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ae982612a87565b612af38185612a92565b9350612b03818560208601612aa3565b612b0c81612acd565b840191505092915050565b60006020820190508181036000830152612b318184612ade565b905092915050565b6000819050919050565b612b4c81612b39565b8114612b5757600080fd5b50565b600081359050612b6981612b43565b92915050565b60008060408385031215612b8657612b856129f7565b5b6000612b9485828601612a45565b9250506020612ba585828601612b5a565b9150509250929050565b60008115159050919050565b612bc481612baf565b82525050565b6000602082019050612bdf6000830184612bbb565b92915050565b612bee81612a1c565b82525050565b6000602082019050612c096000830184612be5565b92915050565b612c1881612b39565b82525050565b6000602082019050612c336000830184612c0f565b92915050565b600080600060608486031215612c5257612c516129f7565b5b6000612c6086828701612a45565b9350506020612c7186828701612a45565b9250506040612c8286828701612b5a565b9150509250925092565b600060ff82169050919050565b612ca281612c8c565b82525050565b6000602082019050612cbd6000830184612c99565b92915050565b600060208284031215612cd957612cd86129f7565b5b6000612ce784828501612b5a565b91505092915050565b60008060408385031215612d0757612d066129f7565b5b6000612d1585828601612b5a565b9250506020612d2685828601612b5a565b9150509250929050565b612d3981612baf565b8114612d4457600080fd5b50565b600081359050612d5681612d30565b92915050565b60008060408385031215612d7357612d726129f7565b5b6000612d8185828601612a45565b9250506020612d9285828601612d47565b9150509250929050565b60008060408385031215612db357612db26129f7565b5b6000612dc185828601612a45565b9250506020612dd285828601612a45565b9150509250929050565b6000819050919050565b6000612e01612dfc612df7846129fc565b612ddc565b6129fc565b9050919050565b6000612e1382612de6565b9050919050565b6000612e2582612e08565b9050919050565b612e3581612e1a565b82525050565b6000602082019050612e506000830184612e2c565b92915050565b600081519050612e6581612b43565b92915050565b600060208284031215612e8157612e806129f7565b5b6000612e8f84828501612e56565b91505092915050565b6000604082019050612ead6000830185612be5565b612eba6020830184612c0f565b9392505050565b600081519050612ed081612d30565b92915050565b600060208284031215612eec57612eeb6129f7565b5b6000612efa84828501612ec1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f4a57607f821691505b602082108103612f5d57612f5c612f03565b5b50919050565b7f4e6f2045544820746f2077697468647261770000000000000000000000000000600082015250565b6000612f99601283612a92565b9150612fa482612f63565b602082019050919050565b60006020820190508181036000830152612fc881612f8c565b9050919050565b600081905092915050565b50565b6000612fea600083612fcf565b9150612ff582612fda565b600082019050919050565b600061300b82612fdd565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b600061304b601383612a92565b915061305682613015565b602082019050919050565b6000602082019050818103600083015261307a8161303e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130bb82612b39565b91506130c683612b39565b92508282019050808211156130de576130dd613081565b5b92915050565b7f3130303020697320746865206d696e696d756d00000000000000000000000000600082015250565b600061311a601383612a92565b9150613125826130e4565b602082019050919050565b600060208201905081810360008301526131498161310d565b9050919050565b60006040820190506131656000830185612c0f565b6131726020830184612c0f565b9392505050565b7f4275792066656520697320616c726561647920746861742070657263656e746160008201527f6765000000000000000000000000000000000000000000000000000000000000602082015250565b60006131d5602283612a92565b91506131e082613179565b604082019050919050565b60006020820190508181036000830152613204816131c8565b9050919050565b7f53656c6c2066656520697320616c726561647920746861742070657263656e7460008201527f6167650000000000000000000000000000000000000000000000000000000000602082015250565b6000613267602383612a92565b91506132728261320b565b604082019050919050565b600060208201905081810360008301526132968161325a565b9050919050565b7f4e6577206f7065726174696f6e732077616c6c65742063616e206e6f7420626560008201527f2061646472657373203078000000000000000000000000000000000000000000602082015250565b60006132f9602b83612a92565b91506133048261329d565b604082019050919050565b60006020820190508181036000830152613328816132ec565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613365601a83612a92565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006133f7602583612a92565b91506134028261339b565b604082019050919050565b60006020820190508181036000830152613426816133ea565b9050919050565b7f284e65772920414d4d20616464726573732063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b6000613489602783612a92565b91506134948261342d565b604082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f546f6b656e2062616c616e63652063616e6e6f74206265203000000000000000600082015250565b60006134f5601983612a92565b9150613500826134bf565b602082019050919050565b60006020820190508181036000830152613524816134e8565b9050919050565b7f4554482062616c616e63652063616e6e6f742062652030000000000000000000600082015250565b6000613561601783612a92565b915061356c8261352b565b602082019050919050565b6000602082019050818103600083015261359081613554565b9050919050565b7f5472616e7366657220746f20646576206661696c65642e000000000000000000600082015250565b60006135cd601783612a92565b91506135d882613597565b602082019050919050565b600060208201905081810360008301526135fc816135c0565b9050919050565b60008151905061361281612a2e565b92915050565b60006020828403121561362e5761362d6129f7565b5b600061363c84828501613603565b91505092915050565b7f284e657729206578636c7564656420616464726573732063616e206e6f74206260008201527f6520616464726573732030780000000000000000000000000000000000000000602082015250565b60006136a1602c83612a92565b91506136ac82613645565b604082019050919050565b600060208201905081810360008301526136d081613694565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613733602683612a92565b915061373e826136d7565b604082019050919050565b6000602082019050818103600083015261376281613726565b9050919050565b7f4c696d6974732061726520616c72656164792064697361626c65640000000000600082015250565b600061379f601b83612a92565b91506137aa82613769565b602082019050919050565b600060208201905081810360008301526137ce81613792565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061380b602083612a92565b9150613816826137d5565b602082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061389d602483612a92565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061392f602283612a92565b915061393a826138d3565b604082019050919050565b6000602082019050818103600083015261395e81613922565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061399b601d83612a92565b91506139a682613965565b602082019050919050565b600060208201905081810360008301526139ca8161398e565b9050919050565b7f54726164696e672077696c6c20656e61626c65207768656e20414d4d2069732060008201527f7365740000000000000000000000000000000000000000000000000000000000602082015250565b6000613a2d602383612a92565b9150613a38826139d1565b604082019050919050565b60006020820190508181036000830152613a5c81613a20565b9050919050565b7f4d6178207472616e73616374696f6e2065786365656465642e00000000000000600082015250565b6000613a99601983612a92565b9150613aa482613a63565b602082019050919050565b60006020820190508181036000830152613ac881613a8c565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b6000613b05601483612a92565b9150613b1082613acf565b602082019050919050565b60006020820190508181036000830152613b3481613af8565b9050919050565b6000613b4682612b39565b9150613b5183612b39565b9250828202613b5f81612b39565b91508282048414831517613b7657613b75613081565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bb782612b39565b9150613bc283612b39565b925082613bd257613bd1613b7d565b5b828204905092915050565b6000613be882612b39565b9150613bf383612b39565b9250828203905081811115613c0b57613c0a613081565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613c94613c8f613c8a84613c6f565b612ddc565b612b39565b9050919050565b613ca481613c79565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cdf81612a1c565b82525050565b6000613cf18383613cd6565b60208301905092915050565b6000602082019050919050565b6000613d1582613caa565b613d1f8185613cb5565b9350613d2a83613cc6565b8060005b83811015613d5b578151613d428882613ce5565b9750613d4d83613cfd565b925050600181019050613d2e565b5085935050505092915050565b600060a082019050613d7d6000830188612c0f565b613d8a6020830187613c9b565b8181036040830152613d9c8186613d0a565b9050613dab6060830185612be5565b613db86080830184612c0f565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e1e602583612a92565b9150613e2982613dc2565b604082019050919050565b60006020820190508181036000830152613e4d81613e11565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613eb0602383612a92565b9150613ebb82613e54565b604082019050919050565b60006020820190508181036000830152613edf81613ea3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f42602683612a92565b9150613f4d82613ee6565b604082019050919050565b60006020820190508181036000830152613f7181613f35565b905091905056fea264697066735822122059542420b32aa4069ab3bf3052efa69dbfa530018bcef9f5e3dfa1d74f813a4664736f6c63430008170033

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

0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24


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.