ETH Price: $3,398.96 (+0.87%)

Token

ERC20 ***
 

Overview

Max Total Supply

10,000,000 ERC20 ***

Holders

963

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 ERC20 ***

Value
$0.00
0x22c1bb7225afbe10785b36c128ca1d1a4b325d51
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BuildAI

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : BuildAI.sol
//SPDX-License-Identifier: UNLICENSED
/*
Telegram: https://t.me/BUILDAIHUB
Website: https://buildaierc.com/
X: https://twitter.com/BuildAI_erc
Linktree: https://linktr.ee/BuildAI
*/
pragma solidity ^0.8.7;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

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

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

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

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

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

    uint256 private _totalSupply = 10000000 * 10 ** decimals();

    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 recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

        _balances[account] = amount;
        emit Transfer(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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function WETH() external pure returns (address);

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

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

abstract contract ERC20Burnable is Context, ERC20, Ownable {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual onlyOwner {
        _burn(_msgSender(), amount * 10 ** decimals());
    }
}

contract BuildAI is ERC20, Ownable, ERC20Burnable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    uint256 public initialAirdrop = 2249936 * 10 ** decimals();

    bool public tradingEnabled = false;

    uint256 public ThresholdAmount = 10000 * 10 ** 18;

    address public marketingWallet;
    address public devWallet;
    address public constant deadWallet =
        0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 dev;
        uint256 liquidity;
    }

    Taxes public buyTaxes = Taxes(1000, 1000, 1000);
    Taxes public sellTaxes = Taxes(1000, 1000, 1000);

    mapping(address => bool) public exemptFee;

    constructor(
        address _marketingWallet,
        address _devWallet,
        string memory name,
        string memory symbol
    ) ERC20(name, symbol) {
        require(
            _marketingWallet != address(0),
            "Marketing wallet cannot be zero address"
        );
        require(_devWallet != address(0), "dev wallet cannot be zero address");

        _mint(
            address(0x6c233F2A4708E7a8Edd207E6C643E8C673d0a7f0),
            totalSupply() - (initialAirdrop)
        );

        _mint(address(this), initialAirdrop);

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IFactory(_router.factory()).createPair(
            address(this),
            _router.WETH()
        );
        router = _router;

        marketingWallet = _marketingWallet;
        devWallet = _devWallet;

        exemptFee[address(this)] = true;
        exemptFee[owner()] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, _msgSender(), currentAllowance - amount);

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public override returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        uint256 feeswap;
        uint256 fee;
        Taxes memory currentTaxes;

        if (
            exemptFee[sender] ||
            exemptFee[recipient] ||
            (sender != pair && recipient != pair)
        ) {
            fee = 0;
        } else {
            if (recipient == pair) {
                feeswap =
                    sellTaxes.marketing +
                    sellTaxes.dev +
                    sellTaxes.liquidity;
                currentTaxes = sellTaxes;
            } else {
                feeswap =
                    buyTaxes.marketing +
                    buyTaxes.dev +
                    buyTaxes.liquidity;
                currentTaxes = buyTaxes;
            }
            fee = ((amount * feeswap) / 10000);
        }

        if (sender != pair) handle_fees(feeswap, currentTaxes);

        super._transfer(sender, recipient, amount - fee);

        if (feeswap > 0) {
            super._transfer(sender, address(this), fee);
        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private {
        if (feeswap == 0) {
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= ThresholdAmount) {
            if (ThresholdAmount > 1) {
                contractBalance = ThresholdAmount;
            }

            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance *
                swapTaxes.liquidity) / denominator;
            uint256 AmountToSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(AmountToSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance /
                (denominator - swapTaxes.liquidity);
            uint256 bnbToAddLiquidityWith = (unitBalance * swapTaxes.liquidity);

            if (bnbToAddLiquidityWith > 0) {
                addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
            }

            uint256 marketingAmt = (unitBalance * 2 * swapTaxes.marketing);
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

            uint256 devAmt = (unitBalance * 2 * swapTaxes.dev);
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            deadWallet,
            block.timestamp
        );
    }

    function updateTreshhold(uint256 new_amount) external onlyOwner {
        ThresholdAmount = new_amount * 10 ** decimals();
    }

    function setBuyTaxes(
        uint256 _marketing,
        uint256 _dev,
        uint256 _liquidity
    ) external onlyOwner {
        uint256 totalTax = _marketing + _dev + _liquidity;
        require(totalTax <= 3000, "Must keep fees at 30% or less");
        if (totalTax > 5) {
            require(
                _marketing <= buyTaxes.marketing &&
                    _dev <= buyTaxes.dev &&
                    _liquidity <= buyTaxes.liquidity,
                "Only reductions allowed"
            );
        } else {
            require(totalTax <= 5, "Cannot exceed 5% after reduction to 5%");
        }
        buyTaxes = Taxes(_marketing, _dev, _liquidity);
    }

    function setSellTaxes(
        uint256 _marketing,
        uint256 _dev,
        uint256 _liquidity
    ) external onlyOwner {
        uint256 totalTax = _marketing + _dev + _liquidity;
        require(totalTax <= 3000, "Must keep fees at 30% or less");
        if (totalTax > 5) {
            require(
                _marketing <= sellTaxes.marketing &&
                    _dev <= sellTaxes.dev &&
                    _liquidity <= sellTaxes.liquidity,
                "Only reductions allowed"
            );
        } else {
            require(totalTax <= 5, "Cannot exceed 5% after reduction to 5%");
        }
        sellTaxes = Taxes(_marketing, _dev, _liquidity);
    }

    function sendInitialAirdrop(
        address[] memory recipients,
        uint256[] memory amounts
    ) external onlyOwner {
        require(recipients.length == amounts.length, "Array length mismatch");

        // Calculate the total amount to be distributed
        uint256 totalAmount = 0;
        for (uint256 i = 0; i < amounts.length; i++) {
            totalAmount += amounts[i];
        }

        // Ensure the total amount does not exceed the initial airdrop allocation
        require(
            totalAmount <= initialAirdrop,
            "Total amount exceeds initial airdrop allocation"
        );

        initialAirdrop = initialAirdrop - totalAmount;

        // Distribute tokens to each recipient
        for (uint256 i = 0; i < recipients.length; i++) {
            _transfer(address(this), recipients[i], amounts[i]);
        }
    }

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

    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        require(newWallet != address(this), "Fee Address cannot be CA");
        marketingWallet = newWallet;
    }

    function updatedevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        require(newWallet != address(this), "Fee Address cannot be CA");
        devWallet = newWallet;
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

    function bulkExemptFee(
        address[] memory accounts,
        bool state
    ) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }

    function rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ThresholdAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","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":"initialAirdrop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"sendInitialAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatedevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261001261073060201b60201c565b600a61001e9190610ae7565b6298968061002c9190610b32565b60025561003d61073060201b60201c565b600a6100499190610ae7565b622254d06100579190610b32565b6008556000600960006101000a81548160ff02191690831515021790555069021e19e0c9bab2400000600a5560405180606001604052806103e881526020016103e881526020016103e8815250600d600082015181600001556020820151816001015560408201518160020155505060405180606001604052806103e881526020016103e881526020016103e88152506010600082015181600001556020820151816001015560408201518160020155505034801561011557600080fd5b50604051615d9f380380615d9f83398181016040528101906101379190610d47565b818181600390816101489190610ffd565b5080600490816101589190610ffd565b50505061017761016c61073960201b60201c565b61074160201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036101e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dd90611152565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024c906111e4565b60405180910390fd5b610293736c233f2a4708e7a8edd207e6c643e8c673d0a7f060085461027e61080760201b60201c565b6102889190611204565b61081160201b60201c565b6102a53060085461081160201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032d9190611238565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b89190611238565b6040518363ffffffff1660e01b81526004016103d5929190611274565b6020604051808303816000875af11580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104189190611238565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600061058761093f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050611359565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600254905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108779061130f565b60405180910390fd5b6108926000838361096960201b60201c565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610933919061133e565b60405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156109f4578086048111156109d0576109cf61096e565b5b60018516156109df5780820291505b80810290506109ed8561099d565b94506109b4565b94509492505050565b600082610a0d5760019050610ac9565b81610a1b5760009050610ac9565b8160018114610a315760028114610a3b57610a6a565b6001915050610ac9565b60ff841115610a4d57610a4c61096e565b5b8360020a915084821115610a6457610a6361096e565b5b50610ac9565b5060208310610133831016604e8410600b8410161715610a9f5782820a905083811115610a9a57610a9961096e565b5b610ac9565b610aac84848460016109aa565b92509050818404811115610ac357610ac261096e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000610af282610ad0565b9150610afd83610ada565b9250610b2a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846109fd565b905092915050565b6000610b3d82610ad0565b9150610b4883610ad0565b9250828202610b5681610ad0565b91508282048414831517610b6d57610b6c61096e565b5b5092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb382610b88565b9050919050565b610bc381610ba8565b8114610bce57600080fd5b50565b600081519050610be081610bba565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c3982610bf0565b810181811067ffffffffffffffff82111715610c5857610c57610c01565b5b80604052505050565b6000610c6b610b74565b9050610c778282610c30565b919050565b600067ffffffffffffffff821115610c9757610c96610c01565b5b610ca082610bf0565b9050602081019050919050565b60005b83811015610ccb578082015181840152602081019050610cb0565b60008484015250505050565b6000610cea610ce584610c7c565b610c61565b905082815260208101848484011115610d0657610d05610beb565b5b610d11848285610cad565b509392505050565b600082601f830112610d2e57610d2d610be6565b5b8151610d3e848260208601610cd7565b91505092915050565b60008060008060808587031215610d6157610d60610b7e565b5b6000610d6f87828801610bd1565b9450506020610d8087828801610bd1565b935050604085015167ffffffffffffffff811115610da157610da0610b83565b5b610dad87828801610d19565b925050606085015167ffffffffffffffff811115610dce57610dcd610b83565b5b610dda87828801610d19565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e3857607f821691505b602082108103610e4b57610e4a610df1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610eb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610e76565b610ebd8683610e76565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610efa610ef5610ef084610ad0565b610ed5565b610ad0565b9050919050565b6000819050919050565b610f1483610edf565b610f28610f2082610f01565b848454610e83565b825550505050565b600090565b610f3d610f30565b610f48818484610f0b565b505050565b5b81811015610f6c57610f61600082610f35565b600181019050610f4e565b5050565b601f821115610fb157610f8281610e51565b610f8b84610e66565b81016020851015610f9a578190505b610fae610fa685610e66565b830182610f4d565b50505b505050565b600082821c905092915050565b6000610fd460001984600802610fb6565b1980831691505092915050565b6000610fed8383610fc3565b9150826002028217905092915050565b61100682610de6565b67ffffffffffffffff81111561101f5761101e610c01565b5b6110298254610e20565b611034828285610f70565b600060209050601f8311600181146110675760008415611055578287015190505b61105f8582610fe1565b8655506110c7565b601f19841661107586610e51565b60005b8281101561109d57848901518255600182019150602085019450602081019050611078565b868310156110ba57848901516110b6601f891682610fc3565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4d61726b6574696e672077616c6c65742063616e6e6f74206265207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b600061113c6027836110cf565b9150611147826110e0565b604082019050919050565b6000602082019050818103600083015261116b8161112f565b9050919050565b7f6465762077616c6c65742063616e6e6f74206265207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ce6021836110cf565b91506111d982611172565b604082019050919050565b600060208201905081810360008301526111fd816111c1565b9050919050565b600061120f82610ad0565b915061121a83610ad0565b92508282039050818111156112325761123161096e565b5b92915050565b60006020828403121561124e5761124d610b7e565b5b600061125c84828501610bd1565b91505092915050565b61126e81610ba8565b82525050565b60006040820190506112896000830185611265565b6112966020830184611265565b9392505050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006112f96025836110cf565b91506113048261129d565b604082019050919050565b60006020820190508181036000830152611328816112ec565b9050919050565b61133881610ad0565b82525050565b6000602082019050611353600083018461132f565b92915050565b614a37806113686000396000f3fe60806040526004361061021e5760003560e01c80638a8c523c11610123578063aacebbe3116100ab578063f2fde38b1161006f578063f2fde38b146107d0578063f66895a3146107f9578063f887ea4014610826578063fbb63ac314610851578063fc1704411461087a57610225565b8063aacebbe3146106d7578063bcd5dd9814610700578063c5d32bb21461072b578063da48567c14610768578063dd62ed3e1461079357610225565b806395d89b41116100f257806395d89b41146105de578063a3fce65e14610609578063a457c2d714610632578063a8aa1b311461066f578063a9059cbb1461069a57610225565b80638a8c523c146105485780638cd4426d1461055f5780638da5cb5b146105885780638ea5220f146105b357610225565b8063355496ca116101a657806370a082311161017557806370a0823114610471578063715018a6146104ae57806375f0a874146104c557806385141a77146104f0578063864701a51461051b57610225565b8063355496ca146103b757806339509351146103e057806342966c681461041d5780634ada218b1461044657610225565b806318160ddd116101ed57806318160ddd146102e45780631870517a1461030f57806320800a001461033857806323b872dd1461034f578063313ce5671461038c57610225565b806306fdde031461022a5780630873321414610255578063095ea7b31461027e5780630e375a5c146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108a3565b60405161024c91906130b7565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613123565b610935565b005b34801561028a57600080fd5b506102a560048036038101906102a091906131d4565b610b12565b6040516102b2919061322f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906133be565b610b30565b005b3480156102f057600080fd5b506102f9610c3b565b6040516103069190613429565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190613123565b610c45565b005b34801561034457600080fd5b5061034d610e22565b005b34801561035b57600080fd5b5061037660048036038101906103719190613444565b610ef4565b604051610383919061322f565b60405180910390f35b34801561039857600080fd5b506103a1610ff4565b6040516103ae91906134b3565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d991906134ce565b610ffd565b005b3480156103ec57600080fd5b50610407600480360381019061040291906131d4565b6110d4565b604051610414919061322f565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f919061350e565b611180565b005b34801561045257600080fd5b5061045b61122e565b604051610468919061322f565b60405180910390f35b34801561047d57600080fd5b506104986004803603810190610493919061353b565b611241565b6040516104a59190613429565b60405180910390f35b3480156104ba57600080fd5b506104c3611289565b005b3480156104d157600080fd5b506104da611311565b6040516104e79190613577565b60405180910390f35b3480156104fc57600080fd5b50610505611337565b6040516105129190613577565b60405180910390f35b34801561052757600080fd5b5061053061133d565b60405161053f93929190613592565b60405180910390f35b34801561055457600080fd5b5061055d611355565b005b34801561056b57600080fd5b50610586600480360381019061058191906131d4565b61143e565b005b34801561059457600080fd5b5061059d611544565b6040516105aa9190613577565b60405180910390f35b3480156105bf57600080fd5b506105c861156e565b6040516105d59190613577565b60405180910390f35b3480156105ea57600080fd5b506105f3611594565b60405161060091906130b7565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061368c565b611626565b005b34801561063e57600080fd5b50610659600480360381019061065491906131d4565b6117e0565b604051610666919061322f565b60405180910390f35b34801561067b57600080fd5b506106846118d4565b6040516106919190613577565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc91906131d4565b6118fa565b6040516106ce919061322f565b60405180910390f35b3480156106e357600080fd5b506106fe60048036038101906106f9919061353b565b611911565b005b34801561070c57600080fd5b50610715611aae565b6040516107229190613429565b60405180910390f35b34801561073757600080fd5b50610752600480360381019061074d919061353b565b611ab4565b60405161075f919061322f565b60405180910390f35b34801561077457600080fd5b5061077d611ad4565b60405161078a9190613429565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613704565b611ada565b6040516107c79190613429565b60405180910390f35b3480156107dc57600080fd5b506107f760048036038101906107f2919061353b565b611b61565b005b34801561080557600080fd5b5061080e611c58565b60405161081d93929190613592565b60405180910390f35b34801561083257600080fd5b5061083b611c70565b60405161084891906137a3565b60405180910390f35b34801561085d57600080fd5b506108786004803603810190610873919061350e565b611c96565b005b34801561088657600080fd5b506108a1600480360381019061089c919061353b565b611d3a565b005b6060600380546108b2906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546108de906137ed565b801561092b5780601f106109005761010080835404028352916020019161092b565b820191906000526020600020905b81548152906001019060200180831161090e57829003601f168201915b5050505050905090565b61093d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661095b611544565b73ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a89061386a565b60405180910390fd5b60008183856109c091906138b9565b6109ca91906138b9565b9050610bb8811115610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613939565b60405180910390fd5b6005811115610a89576010600001548411158015610a3457506010600101548311155b8015610a4557506010600201548211155b610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906139a5565b60405180910390fd5b610ace565b6005811115610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250601060008201518160000155602082015181600101556040820151816002015590505050505050565b6000610b26610b1f611ed7565b8484611edf565b6001905092915050565b610b38611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610b56611544565b73ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba39061386a565b60405180910390fd5b60005b8251811015610c36578160136000858481518110610bd057610bcf613a57565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610baf565b505050565b6000600254905090565b610c4d611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610c6b611544565b73ffffffffffffffffffffffffffffffffffffffff1614610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061386a565b60405180910390fd5b6000818385610cd091906138b9565b610cda91906138b9565b9050610bb8811115610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890613939565b60405180910390fd5b6005811115610d9957600d600001548411158015610d445750600d600101548311155b8015610d555750600d600201548211155b610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b906139a5565b60405180910390fd5b610dde565b6005811115610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250600d60008201518160000155602082015181600101556040820151816002015590505050505050565b610e2a611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610e48611544565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e959061386a565b60405180910390fd5b6000479050610eab611544565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ef0573d6000803e3d6000fd5b5050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f40611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613af8565b60405180910390fd5b610fdd85610fcc611ed7565b8584610fd89190613b18565b611edf565b610fe88585856120a8565b60019150509392505050565b60006012905090565b611005611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611023611544565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061386a565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111766110e1611ed7565b8484600160006110ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117191906138b9565b611edf565b6001905092915050565b611188611ed7565b73ffffffffffffffffffffffffffffffffffffffff166111a6611544565b73ffffffffffffffffffffffffffffffffffffffff16146111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f39061386a565b60405180910390fd5b61122b611207611ed7565b61120f610ff4565b600a61121b9190613c7f565b836112269190613cca565b612505565b50565b600960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611291611ed7565b73ffffffffffffffffffffffffffffffffffffffff166112af611544565b73ffffffffffffffffffffffffffffffffffffffff1614611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc9061386a565b60405180910390fd5b61130f60006126d8565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600d8060000154908060010154908060020154905083565b61135d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661137b611544565b73ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c89061386a565b60405180910390fd5b600960009054906101000a900460ff1615611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890613d58565b60405180910390fd5b6001600960006101000a81548160ff021916908315150217905550565b611446611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611464611544565b73ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b19061386a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114de611544565b836040518363ffffffff1660e01b81526004016114fc929190613d78565b6020604051808303816000875af115801561151b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153f9190613db6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115a3906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf906137ed565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b61162e611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661164c611544565b73ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061386a565b60405180910390fd5b80518251146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90613e2f565b60405180910390fd5b6000805b82518110156117285782818151811061170657611705613a57565b5b60200260200101518261171991906138b9565b915080806001019150506116ea565b5060085481111561176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590613ec1565b60405180910390fd5b8060085461177c9190613b18565b60088190555060005b83518110156117da576117cd308583815181106117a5576117a4613a57565b5b60200260200101518584815181106117c0576117bf613a57565b5b60200260200101516120a8565b8080600101915050611785565b50505050565b600080600160006117ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a390613f53565b60405180910390fd5b6118c96118b7611ed7565b8585846118c49190613b18565b611edf565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119073384846120a8565b6001905092915050565b611919611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611937611544565b73ffffffffffffffffffffffffffffffffffffffff161461198d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119849061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190614051565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60136020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b69611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611b87611544565b73ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd49061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c43906140e3565b60405180910390fd5b611c55816126d8565b50565b60108060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c9e611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611cbc611544565b73ffffffffffffffffffffffffffffffffffffffff1614611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061386a565b60405180910390fd5b611d1a610ff4565b600a611d269190613c7f565b81611d319190613cca565b600a8190555050565b611d42611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611d60611544565b73ffffffffffffffffffffffffffffffffffffffff1614611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad9061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a90614051565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4590614175565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490614207565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161209b9190613429565b60405180910390a3505050565b600081116120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290614299565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561218f5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e457600960009054906101000a900460ff166121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90614305565b60405180910390fd5b5b6000806121ef613006565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122905750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123435750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156123425750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b156123515760009150612472565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612400576010600201546010600101546010600001546123c291906138b9565b6123cc91906138b9565b9250601060405180606001604052908160008201548152602001600182015481526020016002820154815250509050612456565b600d60020154600d60010154600d6000015461241c91906138b9565b61242691906138b9565b9250600d604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b61271083856124659190613cca565b61246f9190614354565b91505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146124d2576124d1838261279e565b5b6124e8868684876124e39190613b18565b61296d565b60008311156124fd576124fc86308461296d565b5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b906143f7565b60405180910390fd5b61258082600083612bea565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614489565b60405180910390fd5b81816126129190613b18565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546126669190613b18565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126cb9190613429565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008203156129695760006127b230611241565b9050600a548110612967576001600a5411156127ce57600a5490505b60006002846127dd9190613cca565b90506000818460400151846127f29190613cca565b6127fc9190614354565b90506000818461280c9190613b18565b9050600047905061281c82612bef565b6000814761282a9190613b18565b9050600087604001518661283e9190613b18565b826128499190614354565b9050600088604001518261285d9190613cca565b90506000811115612873576128728682612e32565b5b600089600001516002846128879190613cca565b6128919190613cca565b905060008111156128e8576128e781600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b60008a602001516002856128fc9190613cca565b6129069190613cca565b9050600081111561295d5761295c81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b5050505050505050505b505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d39061451b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906145ad565b60405180910390fd5b612a56838383612bea565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad39061463f565b60405180910390fd5b8181612ae89190613b18565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7891906138b9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdc9190613429565b60405180910390a350505050565b505050565b6000600267ffffffffffffffff811115612c0c57612c0b61324f565b5b604051908082528060200260200182016040528015612c3a5781602001602082028036833780820191505090505b5090503081600081518110612c5257612c51613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1d9190614674565b81600181518110612d3157612d30613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dfc95949392919061479a565b600060405180830381600087803b158015612e1657600080fd5b505af1158015612e2a573d6000803e3d6000fd5b505050505050565b612e5f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612ec8969594939291906147f4565b60606040518083038185885af1158015612ee6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0b919061486a565b5050505050565b80471015612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c90614909565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7b9061495a565b60006040518083038185875af1925050503d8060008114612fb8576040519150601f19603f3d011682016040523d82523d6000602084013e612fbd565b606091505b5050905080613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff8906149e1565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613061578082015181840152602081019050613046565b60008484015250505050565b6000601f19601f8301169050919050565b600061308982613027565b6130938185613032565b93506130a3818560208601613043565b6130ac8161306d565b840191505092915050565b600060208201905081810360008301526130d1818461307e565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613100816130ed565b811461310b57600080fd5b50565b60008135905061311d816130f7565b92915050565b60008060006060848603121561313c5761313b6130e3565b5b600061314a8682870161310e565b935050602061315b8682870161310e565b925050604061316c8682870161310e565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131a182613176565b9050919050565b6131b181613196565b81146131bc57600080fd5b50565b6000813590506131ce816131a8565b92915050565b600080604083850312156131eb576131ea6130e3565b5b60006131f9858286016131bf565b925050602061320a8582860161310e565b9150509250929050565b60008115159050919050565b61322981613214565b82525050565b60006020820190506132446000830184613220565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132878261306d565b810181811067ffffffffffffffff821117156132a6576132a561324f565b5b80604052505050565b60006132b96130d9565b90506132c5828261327e565b919050565b600067ffffffffffffffff8211156132e5576132e461324f565b5b602082029050602081019050919050565b600080fd5b600061330e613309846132ca565b6132af565b90508083825260208201905060208402830185811115613331576133306132f6565b5b835b8181101561335a578061334688826131bf565b845260208401935050602081019050613333565b5050509392505050565b600082601f8301126133795761337861324a565b5b81356133898482602086016132fb565b91505092915050565b61339b81613214565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d46130e3565b5b600083013567ffffffffffffffff8111156133f3576133f26130e8565b5b6133ff85828601613364565b9250506020613410858286016133a9565b9150509250929050565b613423816130ed565b82525050565b600060208201905061343e600083018461341a565b92915050565b60008060006060848603121561345d5761345c6130e3565b5b600061346b868287016131bf565b935050602061347c868287016131bf565b925050604061348d8682870161310e565b9150509250925092565b600060ff82169050919050565b6134ad81613497565b82525050565b60006020820190506134c860008301846134a4565b92915050565b600080604083850312156134e5576134e46130e3565b5b60006134f3858286016131bf565b9250506020613504858286016133a9565b9150509250929050565b600060208284031215613524576135236130e3565b5b60006135328482850161310e565b91505092915050565b600060208284031215613551576135506130e3565b5b600061355f848285016131bf565b91505092915050565b61357181613196565b82525050565b600060208201905061358c6000830184613568565b92915050565b60006060820190506135a7600083018661341a565b6135b4602083018561341a565b6135c1604083018461341a565b949350505050565b600067ffffffffffffffff8211156135e4576135e361324f565b5b602082029050602081019050919050565b6000613608613603846135c9565b6132af565b9050808382526020820190506020840283018581111561362b5761362a6132f6565b5b835b818110156136545780613640888261310e565b84526020840193505060208101905061362d565b5050509392505050565b600082601f8301126136735761367261324a565b5b81356136838482602086016135f5565b91505092915050565b600080604083850312156136a3576136a26130e3565b5b600083013567ffffffffffffffff8111156136c1576136c06130e8565b5b6136cd85828601613364565b925050602083013567ffffffffffffffff8111156136ee576136ed6130e8565b5b6136fa8582860161365e565b9150509250929050565b6000806040838503121561371b5761371a6130e3565b5b6000613729858286016131bf565b925050602061373a858286016131bf565b9150509250929050565b6000819050919050565b600061376961376461375f84613176565b613744565b613176565b9050919050565b600061377b8261374e565b9050919050565b600061378d82613770565b9050919050565b61379d81613782565b82525050565b60006020820190506137b86000830184613794565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061380557607f821691505b602082108103613818576138176137be565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613854602083613032565b915061385f8261381e565b602082019050919050565b6000602082019050818103600083015261388381613847565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138c4826130ed565b91506138cf836130ed565b92508282019050808211156138e7576138e661388a565b5b92915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b6000613923601d83613032565b915061392e826138ed565b602082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f4f6e6c7920726564756374696f6e7320616c6c6f776564000000000000000000600082015250565b600061398f601783613032565b915061399a82613959565b602082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b7f43616e6e6f742065786365656420352520616674657220726564756374696f6e60008201527f20746f2035250000000000000000000000000000000000000000000000000000602082015250565b6000613a21602683613032565b9150613a2c826139c5565b604082019050919050565b60006020820190508181036000830152613a5081613a14565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ae2602883613032565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b6000613b23826130ed565b9150613b2e836130ed565b9250828203905081811115613b4657613b4561388a565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613ba357808604811115613b7f57613b7e61388a565b5b6001851615613b8e5780820291505b8081029050613b9c85613b4c565b9450613b63565b94509492505050565b600082613bbc5760019050613c78565b81613bca5760009050613c78565b8160018114613be05760028114613bea57613c19565b6001915050613c78565b60ff841115613bfc57613bfb61388a565b5b8360020a915084821115613c1357613c1261388a565b5b50613c78565b5060208310610133831016604e8410600b8410161715613c4e5782820a905083811115613c4957613c4861388a565b5b613c78565b613c5b8484846001613b59565b92509050818404811115613c7257613c7161388a565b5b81810290505b9392505050565b6000613c8a826130ed565b9150613c9583613497565b9250613cc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bac565b905092915050565b6000613cd5826130ed565b9150613ce0836130ed565b9250828202613cee816130ed565b91508282048414831517613d0557613d0461388a565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613d42601a83613032565b9150613d4d82613d0c565b602082019050919050565b60006020820190508181036000830152613d7181613d35565b9050919050565b6000604082019050613d8d6000830185613568565b613d9a602083018461341a565b9392505050565b600081519050613db081613392565b92915050565b600060208284031215613dcc57613dcb6130e3565b5b6000613dda84828501613da1565b91505092915050565b7f4172726179206c656e677468206d69736d617463680000000000000000000000600082015250565b6000613e19601583613032565b9150613e2482613de3565b602082019050919050565b60006020820190508181036000830152613e4881613e0c565b9050919050565b7f546f74616c20616d6f756e74206578636565647320696e697469616c2061697260008201527f64726f7020616c6c6f636174696f6e0000000000000000000000000000000000602082015250565b6000613eab602f83613032565b9150613eb682613e4f565b604082019050919050565b60006020820190508181036000830152613eda81613e9e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613f3d602583613032565b9150613f4882613ee1565b604082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fcf602283613032565b9150613fda82613f73565b604082019050919050565b60006020820190508181036000830152613ffe81613fc2565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b600061403b601883613032565b915061404682614005565b602082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140cd602683613032565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061415f602483613032565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141f1602283613032565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614283602983613032565b915061428e82614227565b604082019050919050565b600060208201905081810360008301526142b281614276565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006142ef601383613032565b91506142fa826142b9565b602082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061435f826130ed565b915061436a836130ed565b92508261437a57614379614325565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006143e1602183613032565b91506143ec82614385565b604082019050919050565b60006020820190508181036000830152614410816143d4565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614473602283613032565b915061447e82614417565b604082019050919050565b600060208201905081810360008301526144a281614466565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614505602583613032565b9150614510826144a9565b604082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614597602383613032565b91506145a28261453b565b604082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614629602683613032565b9150614634826145cd565b604082019050919050565b600060208201905081810360008301526146588161461c565b9050919050565b60008151905061466e816131a8565b92915050565b60006020828403121561468a576146896130e3565b5b60006146988482850161465f565b91505092915050565b6000819050919050565b60006146c66146c16146bc846146a1565b613744565b6130ed565b9050919050565b6146d6816146ab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61471181613196565b82525050565b60006147238383614708565b60208301905092915050565b6000602082019050919050565b6000614747826146dc565b61475181856146e7565b935061475c836146f8565b8060005b8381101561478d5781516147748882614717565b975061477f8361472f565b925050600181019050614760565b5085935050505092915050565b600060a0820190506147af600083018861341a565b6147bc60208301876146cd565b81810360408301526147ce818661473c565b90506147dd6060830185613568565b6147ea608083018461341a565b9695505050505050565b600060c0820190506148096000830189613568565b614816602083018861341a565b61482360408301876146cd565b61483060608301866146cd565b61483d6080830185613568565b61484a60a083018461341a565b979650505050505050565b600081519050614864816130f7565b92915050565b600080600060608486031215614883576148826130e3565b5b600061489186828701614855565b93505060206148a286828701614855565b92505060406148b386828701614855565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006148f3601d83613032565b91506148fe826148bd565b602082019050919050565b60006020820190508181036000830152614922816148e6565b9050919050565b600081905092915050565b50565b6000614944600083614929565b915061494f82614934565b600082019050919050565b600061496582614937565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006149cb603a83613032565b91506149d68261496f565b604082019050919050565b600060208201905081810360008301526149fa816149be565b905091905056fea26469706673582212203ae5d23dc39a66c63d51238ef3fcdb8a367552c97108833c6d0fd0e7e27a0f6f64736f6c634300081b00330000000000000000000000004ba12175e4bba78944d44f545ba8410a10c4b103000000000000000000000000b9d8272a392918d78585a57ce3f6343eddaebb7b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000074275696c6441490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054275696c64000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80638a8c523c11610123578063aacebbe3116100ab578063f2fde38b1161006f578063f2fde38b146107d0578063f66895a3146107f9578063f887ea4014610826578063fbb63ac314610851578063fc1704411461087a57610225565b8063aacebbe3146106d7578063bcd5dd9814610700578063c5d32bb21461072b578063da48567c14610768578063dd62ed3e1461079357610225565b806395d89b41116100f257806395d89b41146105de578063a3fce65e14610609578063a457c2d714610632578063a8aa1b311461066f578063a9059cbb1461069a57610225565b80638a8c523c146105485780638cd4426d1461055f5780638da5cb5b146105885780638ea5220f146105b357610225565b8063355496ca116101a657806370a082311161017557806370a0823114610471578063715018a6146104ae57806375f0a874146104c557806385141a77146104f0578063864701a51461051b57610225565b8063355496ca146103b757806339509351146103e057806342966c681461041d5780634ada218b1461044657610225565b806318160ddd116101ed57806318160ddd146102e45780631870517a1461030f57806320800a001461033857806323b872dd1461034f578063313ce5671461038c57610225565b806306fdde031461022a5780630873321414610255578063095ea7b31461027e5780630e375a5c146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108a3565b60405161024c91906130b7565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613123565b610935565b005b34801561028a57600080fd5b506102a560048036038101906102a091906131d4565b610b12565b6040516102b2919061322f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906133be565b610b30565b005b3480156102f057600080fd5b506102f9610c3b565b6040516103069190613429565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190613123565b610c45565b005b34801561034457600080fd5b5061034d610e22565b005b34801561035b57600080fd5b5061037660048036038101906103719190613444565b610ef4565b604051610383919061322f565b60405180910390f35b34801561039857600080fd5b506103a1610ff4565b6040516103ae91906134b3565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d991906134ce565b610ffd565b005b3480156103ec57600080fd5b50610407600480360381019061040291906131d4565b6110d4565b604051610414919061322f565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f919061350e565b611180565b005b34801561045257600080fd5b5061045b61122e565b604051610468919061322f565b60405180910390f35b34801561047d57600080fd5b506104986004803603810190610493919061353b565b611241565b6040516104a59190613429565b60405180910390f35b3480156104ba57600080fd5b506104c3611289565b005b3480156104d157600080fd5b506104da611311565b6040516104e79190613577565b60405180910390f35b3480156104fc57600080fd5b50610505611337565b6040516105129190613577565b60405180910390f35b34801561052757600080fd5b5061053061133d565b60405161053f93929190613592565b60405180910390f35b34801561055457600080fd5b5061055d611355565b005b34801561056b57600080fd5b50610586600480360381019061058191906131d4565b61143e565b005b34801561059457600080fd5b5061059d611544565b6040516105aa9190613577565b60405180910390f35b3480156105bf57600080fd5b506105c861156e565b6040516105d59190613577565b60405180910390f35b3480156105ea57600080fd5b506105f3611594565b60405161060091906130b7565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061368c565b611626565b005b34801561063e57600080fd5b50610659600480360381019061065491906131d4565b6117e0565b604051610666919061322f565b60405180910390f35b34801561067b57600080fd5b506106846118d4565b6040516106919190613577565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc91906131d4565b6118fa565b6040516106ce919061322f565b60405180910390f35b3480156106e357600080fd5b506106fe60048036038101906106f9919061353b565b611911565b005b34801561070c57600080fd5b50610715611aae565b6040516107229190613429565b60405180910390f35b34801561073757600080fd5b50610752600480360381019061074d919061353b565b611ab4565b60405161075f919061322f565b60405180910390f35b34801561077457600080fd5b5061077d611ad4565b60405161078a9190613429565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613704565b611ada565b6040516107c79190613429565b60405180910390f35b3480156107dc57600080fd5b506107f760048036038101906107f2919061353b565b611b61565b005b34801561080557600080fd5b5061080e611c58565b60405161081d93929190613592565b60405180910390f35b34801561083257600080fd5b5061083b611c70565b60405161084891906137a3565b60405180910390f35b34801561085d57600080fd5b506108786004803603810190610873919061350e565b611c96565b005b34801561088657600080fd5b506108a1600480360381019061089c919061353b565b611d3a565b005b6060600380546108b2906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546108de906137ed565b801561092b5780601f106109005761010080835404028352916020019161092b565b820191906000526020600020905b81548152906001019060200180831161090e57829003601f168201915b5050505050905090565b61093d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661095b611544565b73ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a89061386a565b60405180910390fd5b60008183856109c091906138b9565b6109ca91906138b9565b9050610bb8811115610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613939565b60405180910390fd5b6005811115610a89576010600001548411158015610a3457506010600101548311155b8015610a4557506010600201548211155b610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906139a5565b60405180910390fd5b610ace565b6005811115610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250601060008201518160000155602082015181600101556040820151816002015590505050505050565b6000610b26610b1f611ed7565b8484611edf565b6001905092915050565b610b38611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610b56611544565b73ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba39061386a565b60405180910390fd5b60005b8251811015610c36578160136000858481518110610bd057610bcf613a57565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610baf565b505050565b6000600254905090565b610c4d611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610c6b611544565b73ffffffffffffffffffffffffffffffffffffffff1614610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061386a565b60405180910390fd5b6000818385610cd091906138b9565b610cda91906138b9565b9050610bb8811115610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890613939565b60405180910390fd5b6005811115610d9957600d600001548411158015610d445750600d600101548311155b8015610d555750600d600201548211155b610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b906139a5565b60405180910390fd5b610dde565b6005811115610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250600d60008201518160000155602082015181600101556040820151816002015590505050505050565b610e2a611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610e48611544565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e959061386a565b60405180910390fd5b6000479050610eab611544565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ef0573d6000803e3d6000fd5b5050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f40611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613af8565b60405180910390fd5b610fdd85610fcc611ed7565b8584610fd89190613b18565b611edf565b610fe88585856120a8565b60019150509392505050565b60006012905090565b611005611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611023611544565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061386a565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111766110e1611ed7565b8484600160006110ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117191906138b9565b611edf565b6001905092915050565b611188611ed7565b73ffffffffffffffffffffffffffffffffffffffff166111a6611544565b73ffffffffffffffffffffffffffffffffffffffff16146111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f39061386a565b60405180910390fd5b61122b611207611ed7565b61120f610ff4565b600a61121b9190613c7f565b836112269190613cca565b612505565b50565b600960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611291611ed7565b73ffffffffffffffffffffffffffffffffffffffff166112af611544565b73ffffffffffffffffffffffffffffffffffffffff1614611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc9061386a565b60405180910390fd5b61130f60006126d8565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600d8060000154908060010154908060020154905083565b61135d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661137b611544565b73ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c89061386a565b60405180910390fd5b600960009054906101000a900460ff1615611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890613d58565b60405180910390fd5b6001600960006101000a81548160ff021916908315150217905550565b611446611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611464611544565b73ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b19061386a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114de611544565b836040518363ffffffff1660e01b81526004016114fc929190613d78565b6020604051808303816000875af115801561151b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153f9190613db6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115a3906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf906137ed565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b61162e611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661164c611544565b73ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061386a565b60405180910390fd5b80518251146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90613e2f565b60405180910390fd5b6000805b82518110156117285782818151811061170657611705613a57565b5b60200260200101518261171991906138b9565b915080806001019150506116ea565b5060085481111561176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590613ec1565b60405180910390fd5b8060085461177c9190613b18565b60088190555060005b83518110156117da576117cd308583815181106117a5576117a4613a57565b5b60200260200101518584815181106117c0576117bf613a57565b5b60200260200101516120a8565b8080600101915050611785565b50505050565b600080600160006117ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a390613f53565b60405180910390fd5b6118c96118b7611ed7565b8585846118c49190613b18565b611edf565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119073384846120a8565b6001905092915050565b611919611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611937611544565b73ffffffffffffffffffffffffffffffffffffffff161461198d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119849061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190614051565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60136020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b69611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611b87611544565b73ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd49061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c43906140e3565b60405180910390fd5b611c55816126d8565b50565b60108060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c9e611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611cbc611544565b73ffffffffffffffffffffffffffffffffffffffff1614611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061386a565b60405180910390fd5b611d1a610ff4565b600a611d269190613c7f565b81611d319190613cca565b600a8190555050565b611d42611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611d60611544565b73ffffffffffffffffffffffffffffffffffffffff1614611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad9061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a90614051565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4590614175565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490614207565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161209b9190613429565b60405180910390a3505050565b600081116120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290614299565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561218f5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e457600960009054906101000a900460ff166121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90614305565b60405180910390fd5b5b6000806121ef613006565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122905750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123435750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156123425750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b156123515760009150612472565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612400576010600201546010600101546010600001546123c291906138b9565b6123cc91906138b9565b9250601060405180606001604052908160008201548152602001600182015481526020016002820154815250509050612456565b600d60020154600d60010154600d6000015461241c91906138b9565b61242691906138b9565b9250600d604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b61271083856124659190613cca565b61246f9190614354565b91505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146124d2576124d1838261279e565b5b6124e8868684876124e39190613b18565b61296d565b60008311156124fd576124fc86308461296d565b5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b906143f7565b60405180910390fd5b61258082600083612bea565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614489565b60405180910390fd5b81816126129190613b18565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546126669190613b18565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126cb9190613429565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008203156129695760006127b230611241565b9050600a548110612967576001600a5411156127ce57600a5490505b60006002846127dd9190613cca565b90506000818460400151846127f29190613cca565b6127fc9190614354565b90506000818461280c9190613b18565b9050600047905061281c82612bef565b6000814761282a9190613b18565b9050600087604001518661283e9190613b18565b826128499190614354565b9050600088604001518261285d9190613cca565b90506000811115612873576128728682612e32565b5b600089600001516002846128879190613cca565b6128919190613cca565b905060008111156128e8576128e781600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b60008a602001516002856128fc9190613cca565b6129069190613cca565b9050600081111561295d5761295c81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b5050505050505050505b505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d39061451b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906145ad565b60405180910390fd5b612a56838383612bea565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad39061463f565b60405180910390fd5b8181612ae89190613b18565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7891906138b9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdc9190613429565b60405180910390a350505050565b505050565b6000600267ffffffffffffffff811115612c0c57612c0b61324f565b5b604051908082528060200260200182016040528015612c3a5781602001602082028036833780820191505090505b5090503081600081518110612c5257612c51613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1d9190614674565b81600181518110612d3157612d30613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dfc95949392919061479a565b600060405180830381600087803b158015612e1657600080fd5b505af1158015612e2a573d6000803e3d6000fd5b505050505050565b612e5f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612ec8969594939291906147f4565b60606040518083038185885af1158015612ee6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0b919061486a565b5050505050565b80471015612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c90614909565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7b9061495a565b60006040518083038185875af1925050503d8060008114612fb8576040519150601f19603f3d011682016040523d82523d6000602084013e612fbd565b606091505b5050905080613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff8906149e1565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613061578082015181840152602081019050613046565b60008484015250505050565b6000601f19601f8301169050919050565b600061308982613027565b6130938185613032565b93506130a3818560208601613043565b6130ac8161306d565b840191505092915050565b600060208201905081810360008301526130d1818461307e565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613100816130ed565b811461310b57600080fd5b50565b60008135905061311d816130f7565b92915050565b60008060006060848603121561313c5761313b6130e3565b5b600061314a8682870161310e565b935050602061315b8682870161310e565b925050604061316c8682870161310e565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131a182613176565b9050919050565b6131b181613196565b81146131bc57600080fd5b50565b6000813590506131ce816131a8565b92915050565b600080604083850312156131eb576131ea6130e3565b5b60006131f9858286016131bf565b925050602061320a8582860161310e565b9150509250929050565b60008115159050919050565b61322981613214565b82525050565b60006020820190506132446000830184613220565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132878261306d565b810181811067ffffffffffffffff821117156132a6576132a561324f565b5b80604052505050565b60006132b96130d9565b90506132c5828261327e565b919050565b600067ffffffffffffffff8211156132e5576132e461324f565b5b602082029050602081019050919050565b600080fd5b600061330e613309846132ca565b6132af565b90508083825260208201905060208402830185811115613331576133306132f6565b5b835b8181101561335a578061334688826131bf565b845260208401935050602081019050613333565b5050509392505050565b600082601f8301126133795761337861324a565b5b81356133898482602086016132fb565b91505092915050565b61339b81613214565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d46130e3565b5b600083013567ffffffffffffffff8111156133f3576133f26130e8565b5b6133ff85828601613364565b9250506020613410858286016133a9565b9150509250929050565b613423816130ed565b82525050565b600060208201905061343e600083018461341a565b92915050565b60008060006060848603121561345d5761345c6130e3565b5b600061346b868287016131bf565b935050602061347c868287016131bf565b925050604061348d8682870161310e565b9150509250925092565b600060ff82169050919050565b6134ad81613497565b82525050565b60006020820190506134c860008301846134a4565b92915050565b600080604083850312156134e5576134e46130e3565b5b60006134f3858286016131bf565b9250506020613504858286016133a9565b9150509250929050565b600060208284031215613524576135236130e3565b5b60006135328482850161310e565b91505092915050565b600060208284031215613551576135506130e3565b5b600061355f848285016131bf565b91505092915050565b61357181613196565b82525050565b600060208201905061358c6000830184613568565b92915050565b60006060820190506135a7600083018661341a565b6135b4602083018561341a565b6135c1604083018461341a565b949350505050565b600067ffffffffffffffff8211156135e4576135e361324f565b5b602082029050602081019050919050565b6000613608613603846135c9565b6132af565b9050808382526020820190506020840283018581111561362b5761362a6132f6565b5b835b818110156136545780613640888261310e565b84526020840193505060208101905061362d565b5050509392505050565b600082601f8301126136735761367261324a565b5b81356136838482602086016135f5565b91505092915050565b600080604083850312156136a3576136a26130e3565b5b600083013567ffffffffffffffff8111156136c1576136c06130e8565b5b6136cd85828601613364565b925050602083013567ffffffffffffffff8111156136ee576136ed6130e8565b5b6136fa8582860161365e565b9150509250929050565b6000806040838503121561371b5761371a6130e3565b5b6000613729858286016131bf565b925050602061373a858286016131bf565b9150509250929050565b6000819050919050565b600061376961376461375f84613176565b613744565b613176565b9050919050565b600061377b8261374e565b9050919050565b600061378d82613770565b9050919050565b61379d81613782565b82525050565b60006020820190506137b86000830184613794565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061380557607f821691505b602082108103613818576138176137be565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613854602083613032565b915061385f8261381e565b602082019050919050565b6000602082019050818103600083015261388381613847565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138c4826130ed565b91506138cf836130ed565b92508282019050808211156138e7576138e661388a565b5b92915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b6000613923601d83613032565b915061392e826138ed565b602082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f4f6e6c7920726564756374696f6e7320616c6c6f776564000000000000000000600082015250565b600061398f601783613032565b915061399a82613959565b602082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b7f43616e6e6f742065786365656420352520616674657220726564756374696f6e60008201527f20746f2035250000000000000000000000000000000000000000000000000000602082015250565b6000613a21602683613032565b9150613a2c826139c5565b604082019050919050565b60006020820190508181036000830152613a5081613a14565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ae2602883613032565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b6000613b23826130ed565b9150613b2e836130ed565b9250828203905081811115613b4657613b4561388a565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613ba357808604811115613b7f57613b7e61388a565b5b6001851615613b8e5780820291505b8081029050613b9c85613b4c565b9450613b63565b94509492505050565b600082613bbc5760019050613c78565b81613bca5760009050613c78565b8160018114613be05760028114613bea57613c19565b6001915050613c78565b60ff841115613bfc57613bfb61388a565b5b8360020a915084821115613c1357613c1261388a565b5b50613c78565b5060208310610133831016604e8410600b8410161715613c4e5782820a905083811115613c4957613c4861388a565b5b613c78565b613c5b8484846001613b59565b92509050818404811115613c7257613c7161388a565b5b81810290505b9392505050565b6000613c8a826130ed565b9150613c9583613497565b9250613cc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bac565b905092915050565b6000613cd5826130ed565b9150613ce0836130ed565b9250828202613cee816130ed565b91508282048414831517613d0557613d0461388a565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613d42601a83613032565b9150613d4d82613d0c565b602082019050919050565b60006020820190508181036000830152613d7181613d35565b9050919050565b6000604082019050613d8d6000830185613568565b613d9a602083018461341a565b9392505050565b600081519050613db081613392565b92915050565b600060208284031215613dcc57613dcb6130e3565b5b6000613dda84828501613da1565b91505092915050565b7f4172726179206c656e677468206d69736d617463680000000000000000000000600082015250565b6000613e19601583613032565b9150613e2482613de3565b602082019050919050565b60006020820190508181036000830152613e4881613e0c565b9050919050565b7f546f74616c20616d6f756e74206578636565647320696e697469616c2061697260008201527f64726f7020616c6c6f636174696f6e0000000000000000000000000000000000602082015250565b6000613eab602f83613032565b9150613eb682613e4f565b604082019050919050565b60006020820190508181036000830152613eda81613e9e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613f3d602583613032565b9150613f4882613ee1565b604082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fcf602283613032565b9150613fda82613f73565b604082019050919050565b60006020820190508181036000830152613ffe81613fc2565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b600061403b601883613032565b915061404682614005565b602082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140cd602683613032565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061415f602483613032565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141f1602283613032565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614283602983613032565b915061428e82614227565b604082019050919050565b600060208201905081810360008301526142b281614276565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006142ef601383613032565b91506142fa826142b9565b602082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061435f826130ed565b915061436a836130ed565b92508261437a57614379614325565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006143e1602183613032565b91506143ec82614385565b604082019050919050565b60006020820190508181036000830152614410816143d4565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614473602283613032565b915061447e82614417565b604082019050919050565b600060208201905081810360008301526144a281614466565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614505602583613032565b9150614510826144a9565b604082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614597602383613032565b91506145a28261453b565b604082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614629602683613032565b9150614634826145cd565b604082019050919050565b600060208201905081810360008301526146588161461c565b9050919050565b60008151905061466e816131a8565b92915050565b60006020828403121561468a576146896130e3565b5b60006146988482850161465f565b91505092915050565b6000819050919050565b60006146c66146c16146bc846146a1565b613744565b6130ed565b9050919050565b6146d6816146ab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61471181613196565b82525050565b60006147238383614708565b60208301905092915050565b6000602082019050919050565b6000614747826146dc565b61475181856146e7565b935061475c836146f8565b8060005b8381101561478d5781516147748882614717565b975061477f8361472f565b925050600181019050614760565b5085935050505092915050565b600060a0820190506147af600083018861341a565b6147bc60208301876146cd565b81810360408301526147ce818661473c565b90506147dd6060830185613568565b6147ea608083018461341a565b9695505050505050565b600060c0820190506148096000830189613568565b614816602083018861341a565b61482360408301876146cd565b61483060608301866146cd565b61483d6080830185613568565b61484a60a083018461341a565b979650505050505050565b600081519050614864816130f7565b92915050565b600080600060608486031215614883576148826130e3565b5b600061489186828701614855565b93505060206148a286828701614855565b92505060406148b386828701614855565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006148f3601d83613032565b91506148fe826148bd565b602082019050919050565b60006020820190508181036000830152614922816148e6565b9050919050565b600081905092915050565b50565b6000614944600083614929565b915061494f82614934565b600082019050919050565b600061496582614937565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006149cb603a83613032565b91506149d68261496f565b604082019050919050565b600060208201905081810360008301526149fa816149be565b905091905056fea26469706673582212203ae5d23dc39a66c63d51238ef3fcdb8a367552c97108833c6d0fd0e7e27a0f6f64736f6c634300081b0033

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

0000000000000000000000004ba12175e4bba78944d44f545ba8410a10c4b103000000000000000000000000b9d8272a392918d78585a57ce3f6343eddaebb7b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000074275696c6441490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054275696c64000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x4BA12175E4bBA78944D44F545Ba8410A10C4B103
Arg [1] : _devWallet (address): 0xb9D8272a392918D78585A57cE3F6343EddaEbB7B
Arg [2] : name (string): BuildAI
Arg [3] : symbol (string): Build

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000004ba12175e4bba78944d44f545ba8410a10c4b103
Arg [1] : 000000000000000000000000b9d8272a392918d78585a57ce3f6343eddaebb7b
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [5] : 4275696c64414900000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 4275696c64000000000000000000000000000000000000000000000000000000


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.