ETH Price: $3,122.23 (-0.73%)

Token

Bonk Inu (BONK)
 

Overview

Max Total Supply

1,000,000,000 BONK

Holders

199

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
fuzzyman410.eth
Balance
98,645.650644626403732294 BONK

Value
$0.00
0x5ef59cbf04975c799bc3dd1e75a3de70529c1d9a
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:
BONKINU

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.14;

/**
 * @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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

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

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

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

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


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 substraction 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;
        }
    }
}


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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


pragma solidity >=0.6.2;

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

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




pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}


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




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

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

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract BONKINU is Context, Ownable, IERC20, IERC20Metadata{
    using SafeMath for uint256;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _transferDelay;
    mapping (address => bool) private _holderDelay;
    mapping(address => bool) public actors;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private openedAt = 0;
    bool private tradingActive = false;

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExempt;


    constructor () {
        _name = 'Bonk Inu';
        _symbol = 'BONK';
        _decimals = 18;
        _totalSupply = 1_000_000_000 * 1e18;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        _isExempt[address(msg.sender)] = true;
        _isExempt[address(this)] = true;
        _isExempt[address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply); // Optional
    }

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 openTrade() external onlyOwner {
        tradingActive = true;
         openedAt = block.number;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(!actors[sender] && !actors[recipient], "TOKEN: You are a bad actor!");
        if (!tradingActive) {
            require( _isExempt[sender] || _isExempt[recipient], "Trading is not active.");
        }
        
        if (openedAt > block.number - 30) {
            bool oktoswap;
            address orig = tx.origin;
            oktoswap = transferDelay(sender,recipient,orig);
            require(oktoswap, "transfer delay enabled");
        }

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

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

  
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

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

    function airdropToWallets(address[] memory wallets, uint256[] memory amountsInTokens) external onlyOwner {
        require(wallets.length == amountsInTokens.length, "arrays must be the same length");
        require(wallets.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop + launch at the same exact time, reducing delays and reducing sniper input.
        for(uint256 i = 0; i < wallets.length; i++){
            address wallet = wallets[i];
            uint256 amount = amountsInTokens[i]*1e18;
            _transfer(msg.sender, wallet, amount);
        }
    }

   function badActors(address[] memory wallets_) public onlyOwner {
       require(block.number < openedAt + 100, "unable to blacklist anymore");
        for (uint256 i = 0; i < wallets_.length; i++) {
            actors[wallets_[i]] = true;
        }
    }

    function goodActors(address wallets) public onlyOwner {
        actors[wallets] = false;
    }



 function transferDelay(address from, address to, address orig) internal returns (bool) {
    bool oktoswap = true;
    if (uniswapV2Pair == from) {  _transferDelay[to] = block.number;  _transferDelay[orig] = block.number;}
    else if (uniswapV2Pair == to) {
            if (_transferDelay[from] >= block.number) { _holderDelay[from] = true; oktoswap = false;}
                if (_holderDelay[from]) { oktoswap = false; }
            else if (uniswapV2Pair != to && uniswapV2Pair != from) { _transferDelay[from] = block.number; _transferDelay[to] = block.number; _transferDelay[orig] = block.number;}
        }
        return (oktoswap);
    }
}

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":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"actors","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInTokens","type":"uint256[]"}],"name":"airdropToWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets_","type":"address[]"}],"name":"badActors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallets","type":"address"}],"name":"goodActors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526000600c556000600d60006101000a81548160ff0219169083151502179055503480156200003157600080fd5b506200005262000046620004ef60201b60201c565b620004f760201b60201c565b6040518060400160405280600881526020017f426f6e6b20496e75000000000000000000000000000000000000000000000000815250600990805190602001906200009f929190620005bb565b506040518060400160405280600481526020017f424f4e4b00000000000000000000000000000000000000000000000000000000815250600a9080519060200190620000ed929190620005bb565b506012600b60006101000a81548160ff021916908360ff1602179055506b033b2e3c9fd0803ce80000006008819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620006d5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000251573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002779190620006d5565b6040518363ffffffff1660e01b81526004016200029692919062000718565b6020604051808303816000875af1158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc9190620006d5565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600854600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620004e0919062000760565b60405180910390a350620007e1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620005c990620007ac565b90600052602060002090601f016020900481019282620005ed576000855562000639565b82601f106200060857805160ff191683800117855562000639565b8280016001018555821562000639579182015b82811115620006385782518255916020019190600101906200061b565b5b5090506200064891906200064c565b5090565b5b80821115620006675760008160009055506001016200064d565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200069d8262000670565b9050919050565b620006af8162000690565b8114620006bb57600080fd5b50565b600081519050620006cf81620006a4565b92915050565b600060208284031215620006ee57620006ed6200066b565b5b6000620006fe84828501620006be565b91505092915050565b620007128162000690565b82525050565b60006040820190506200072f600083018562000707565b6200073e602083018462000707565b9392505050565b6000819050919050565b6200075a8162000745565b82525050565b60006020820190506200077760008301846200074f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007c557607f821691505b602082108103620007db57620007da6200077d565b5b50919050565b6128fe80620007f16000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063d891316811610071578063d891316814610347578063dd62ed3e14610363578063eaa66a3c14610393578063f2fde38b146103c3578063fb201b1d146103df5761012c565b8063715018a6146102a15780638da5cb5b146102ab57806395d89b41146102c9578063a457c2d7146102e7578063a9059cbb146103175761012c565b8063313ce567116100f4578063313ce567146101e9578063395093511461020757806349bd5a5e14610237578063629bc45b1461025557806370a08231146102715761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f5780632307b4411461019d57806323b872dd146101b9575b600080fd5b6101396103e9565b6040516101469190611b20565b60405180910390f35b61016960048036038101906101649190611bea565b61047b565b6040516101769190611c45565b60405180910390f35b610187610499565b6040516101949190611c6f565b60405180910390f35b6101b760048036038101906101b29190611e95565b6104a3565b005b6101d360048036038101906101ce9190611f0d565b610629565b6040516101e09190611c45565b60405180910390f35b6101f1610702565b6040516101fe9190611f7c565b60405180910390f35b610221600480360381019061021c9190611bea565b610719565b60405161022e9190611c45565b60405180910390f35b61023f6107cc565b60405161024c9190611fa6565b60405180910390f35b61026f600480360381019061026a9190611fc1565b6107f2565b005b61028b60048036038101906102869190611fc1565b6108c9565b6040516102989190611c6f565b60405180910390f35b6102a9610912565b005b6102b361099a565b6040516102c09190611fa6565b60405180910390f35b6102d16109c3565b6040516102de9190611b20565b60405180910390f35b61030160048036038101906102fc9190611bea565b610a55565b60405161030e9190611c45565b60405180910390f35b610331600480360381019061032c9190611bea565b610b22565b60405161033e9190611c45565b60405180910390f35b610361600480360381019061035c9190611fee565b610b40565b005b61037d60048036038101906103789190612037565b610ca1565b60405161038a9190611c6f565b60405180910390f35b6103ad60048036038101906103a89190611fc1565b610d28565b6040516103ba9190611c45565b60405180910390f35b6103dd60048036038101906103d89190611fc1565b610d48565b005b6103e7610e3f565b005b6060600980546103f8906120a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610424906120a6565b80156104715780601f1061044657610100808354040283529160200191610471565b820191906000526020600020905b81548152906001019060200180831161045457829003601f168201915b5050505050905090565b600061048f610488610edf565b8484610ee7565b6001905092915050565b6000600854905090565b6104ab610edf565b73ffffffffffffffffffffffffffffffffffffffff166104c961099a565b73ffffffffffffffffffffffffffffffffffffffff161461051f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051690612123565b60405180910390fd5b8051825114610563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055a9061218f565b60405180910390fd5b60c88251106105a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059e90612221565b60405180910390fd5b60005b82518110156106245760008382815181106105c8576105c7612241565b5b602002602001015190506000670de0b6b3a76400008484815181106105f0576105ef612241565b5b6020026020010151610602919061229f565b905061060f3383836110b0565b5050808061061c906122f9565b9150506105aa565b505050565b60006106368484846110b0565b6106f784610642610edf565b6106f28560405180606001604052806028815260200161287c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a8610edf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b9092919063ffffffff16565b610ee7565b600190509392505050565b6000600b60009054906101000a900460ff16905090565b60006107c2610726610edf565b846107bd8560046000610737610edf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b610ee7565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107fa610edf565b73ffffffffffffffffffffffffffffffffffffffff1661081861099a565b73ffffffffffffffffffffffffffffffffffffffff161461086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590612123565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091a610edf565b73ffffffffffffffffffffffffffffffffffffffff1661093861099a565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590612123565b60405180910390fd5b61099860006115f6565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a80546109d2906120a6565b80601f01602080910402602001604051908101604052809291908181526020018280546109fe906120a6565b8015610a4b5780601f10610a2057610100808354040283529160200191610a4b565b820191906000526020600020905b815481529060010190602001808311610a2e57829003601f168201915b5050505050905090565b6000610b18610a62610edf565b84610b13856040518060600160405280602581526020016128a46025913960046000610a8c610edf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b9092919063ffffffff16565b610ee7565b6001905092915050565b6000610b36610b2f610edf565b84846110b0565b6001905092915050565b610b48610edf565b73ffffffffffffffffffffffffffffffffffffffff16610b6661099a565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612123565b60405180910390fd5b6064600c54610bcb9190612341565b4310610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c03906123e3565b60405180910390fd5b60005b8151811015610c9d57600160076000848481518110610c3157610c30612241565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c95906122f9565b915050610c0f565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b610d50610edf565b73ffffffffffffffffffffffffffffffffffffffff16610d6e61099a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb90612123565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a90612475565b60405180910390fd5b610e3c816115f6565b50565b610e47610edf565b73ffffffffffffffffffffffffffffffffffffffff16610e6561099a565b73ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290612123565b60405180910390fd5b6001600d60006101000a81548160ff02191690831515021790555043600c81905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d90612507565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90612599565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a39190611c6f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111169061262b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361118e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611185906126bd565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112325750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126890612729565b60405180910390fd5b600d60009054906101000a900460ff1661136657600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113265750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90612795565b60405180910390fd5b5b601e4361137391906127b5565b600c5411156113d25760008032905061138d8585836116ba565b9150816113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c690612835565b60405180910390fd5b50505b6113dd838383611a82565b6114498160405180606001604052806026815260200161285660269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114de81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161157e9190611c6f565b60405180910390a3505050565b60008383111582906115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca9190611b20565b60405180910390fd5b5082840390509392505050565b600081836115ee9190612341565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600190508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036117a35743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a77565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611a765743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061189b576001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118f65760009050611a75565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156119a257508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611a745743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ac1578082015181840152602081019050611aa6565b83811115611ad0576000848401525b50505050565b6000601f19601f8301169050919050565b6000611af282611a87565b611afc8185611a92565b9350611b0c818560208601611aa3565b611b1581611ad6565b840191505092915050565b60006020820190508181036000830152611b3a8184611ae7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8182611b56565b9050919050565b611b9181611b76565b8114611b9c57600080fd5b50565b600081359050611bae81611b88565b92915050565b6000819050919050565b611bc781611bb4565b8114611bd257600080fd5b50565b600081359050611be481611bbe565b92915050565b60008060408385031215611c0157611c00611b4c565b5b6000611c0f85828601611b9f565b9250506020611c2085828601611bd5565b9150509250929050565b60008115159050919050565b611c3f81611c2a565b82525050565b6000602082019050611c5a6000830184611c36565b92915050565b611c6981611bb4565b82525050565b6000602082019050611c846000830184611c60565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611cc782611ad6565b810181811067ffffffffffffffff82111715611ce657611ce5611c8f565b5b80604052505050565b6000611cf9611b42565b9050611d058282611cbe565b919050565b600067ffffffffffffffff821115611d2557611d24611c8f565b5b602082029050602081019050919050565b600080fd5b6000611d4e611d4984611d0a565b611cef565b90508083825260208201905060208402830185811115611d7157611d70611d36565b5b835b81811015611d9a5780611d868882611b9f565b845260208401935050602081019050611d73565b5050509392505050565b600082601f830112611db957611db8611c8a565b5b8135611dc9848260208601611d3b565b91505092915050565b600067ffffffffffffffff821115611ded57611dec611c8f565b5b602082029050602081019050919050565b6000611e11611e0c84611dd2565b611cef565b90508083825260208201905060208402830185811115611e3457611e33611d36565b5b835b81811015611e5d5780611e498882611bd5565b845260208401935050602081019050611e36565b5050509392505050565b600082601f830112611e7c57611e7b611c8a565b5b8135611e8c848260208601611dfe565b91505092915050565b60008060408385031215611eac57611eab611b4c565b5b600083013567ffffffffffffffff811115611eca57611ec9611b51565b5b611ed685828601611da4565b925050602083013567ffffffffffffffff811115611ef757611ef6611b51565b5b611f0385828601611e67565b9150509250929050565b600080600060608486031215611f2657611f25611b4c565b5b6000611f3486828701611b9f565b9350506020611f4586828701611b9f565b9250506040611f5686828701611bd5565b9150509250925092565b600060ff82169050919050565b611f7681611f60565b82525050565b6000602082019050611f916000830184611f6d565b92915050565b611fa081611b76565b82525050565b6000602082019050611fbb6000830184611f97565b92915050565b600060208284031215611fd757611fd6611b4c565b5b6000611fe584828501611b9f565b91505092915050565b60006020828403121561200457612003611b4c565b5b600082013567ffffffffffffffff81111561202257612021611b51565b5b61202e84828501611da4565b91505092915050565b6000806040838503121561204e5761204d611b4c565b5b600061205c85828601611b9f565b925050602061206d85828601611b9f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120be57607f821691505b6020821081036120d1576120d0612077565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061210d602083611a92565b9150612118826120d7565b602082019050919050565b6000602082019050818103600083015261213c81612100565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b6000612179601e83611a92565b915061218482612143565b602082019050919050565b600060208201905081810360008301526121a88161216c565b9050919050565b7f43616e206f6e6c792061697264726f70203230302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b600061220b603683611a92565b9150612216826121af565b604082019050919050565b6000602082019050818103600083015261223a816121fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006122aa82611bb4565b91506122b583611bb4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122ee576122ed612270565b5b828202905092915050565b600061230482611bb4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361233657612335612270565b5b600182019050919050565b600061234c82611bb4565b915061235783611bb4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561238c5761238b612270565b5b828201905092915050565b7f756e61626c6520746f20626c61636b6c69737420616e796d6f72650000000000600082015250565b60006123cd601b83611a92565b91506123d882612397565b602082019050919050565b600060208201905081810360008301526123fc816123c0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061245f602683611a92565b915061246a82612403565b604082019050919050565b6000602082019050818103600083015261248e81612452565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124f1602483611a92565b91506124fc82612495565b604082019050919050565b60006020820190508181036000830152612520816124e4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612583602283611a92565b915061258e82612527565b604082019050919050565b600060208201905081810360008301526125b281612576565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612615602583611a92565b9150612620826125b9565b604082019050919050565b6000602082019050818103600083015261264481612608565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006126a7602383611a92565b91506126b28261264b565b604082019050919050565b600060208201905081810360008301526126d68161269a565b9050919050565b7f544f4b454e3a20596f7520617265206120626164206163746f72210000000000600082015250565b6000612713601b83611a92565b915061271e826126dd565b602082019050919050565b6000602082019050818103600083015261274281612706565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061277f601683611a92565b915061278a82612749565b602082019050919050565b600060208201905081810360008301526127ae81612772565b9050919050565b60006127c082611bb4565b91506127cb83611bb4565b9250828210156127de576127dd612270565b5b828203905092915050565b7f7472616e736665722064656c617920656e61626c656400000000000000000000600082015250565b600061281f601683611a92565b915061282a826127e9565b602082019050919050565b6000602082019050818103600083015261284e81612812565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206da76eda3d2a5f107e54f6a1e66f83220746fda5248cd65d6170cce46b0c02ed64736f6c634300080e0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063d891316811610071578063d891316814610347578063dd62ed3e14610363578063eaa66a3c14610393578063f2fde38b146103c3578063fb201b1d146103df5761012c565b8063715018a6146102a15780638da5cb5b146102ab57806395d89b41146102c9578063a457c2d7146102e7578063a9059cbb146103175761012c565b8063313ce567116100f4578063313ce567146101e9578063395093511461020757806349bd5a5e14610237578063629bc45b1461025557806370a08231146102715761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f5780632307b4411461019d57806323b872dd146101b9575b600080fd5b6101396103e9565b6040516101469190611b20565b60405180910390f35b61016960048036038101906101649190611bea565b61047b565b6040516101769190611c45565b60405180910390f35b610187610499565b6040516101949190611c6f565b60405180910390f35b6101b760048036038101906101b29190611e95565b6104a3565b005b6101d360048036038101906101ce9190611f0d565b610629565b6040516101e09190611c45565b60405180910390f35b6101f1610702565b6040516101fe9190611f7c565b60405180910390f35b610221600480360381019061021c9190611bea565b610719565b60405161022e9190611c45565b60405180910390f35b61023f6107cc565b60405161024c9190611fa6565b60405180910390f35b61026f600480360381019061026a9190611fc1565b6107f2565b005b61028b60048036038101906102869190611fc1565b6108c9565b6040516102989190611c6f565b60405180910390f35b6102a9610912565b005b6102b361099a565b6040516102c09190611fa6565b60405180910390f35b6102d16109c3565b6040516102de9190611b20565b60405180910390f35b61030160048036038101906102fc9190611bea565b610a55565b60405161030e9190611c45565b60405180910390f35b610331600480360381019061032c9190611bea565b610b22565b60405161033e9190611c45565b60405180910390f35b610361600480360381019061035c9190611fee565b610b40565b005b61037d60048036038101906103789190612037565b610ca1565b60405161038a9190611c6f565b60405180910390f35b6103ad60048036038101906103a89190611fc1565b610d28565b6040516103ba9190611c45565b60405180910390f35b6103dd60048036038101906103d89190611fc1565b610d48565b005b6103e7610e3f565b005b6060600980546103f8906120a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610424906120a6565b80156104715780601f1061044657610100808354040283529160200191610471565b820191906000526020600020905b81548152906001019060200180831161045457829003601f168201915b5050505050905090565b600061048f610488610edf565b8484610ee7565b6001905092915050565b6000600854905090565b6104ab610edf565b73ffffffffffffffffffffffffffffffffffffffff166104c961099a565b73ffffffffffffffffffffffffffffffffffffffff161461051f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051690612123565b60405180910390fd5b8051825114610563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055a9061218f565b60405180910390fd5b60c88251106105a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059e90612221565b60405180910390fd5b60005b82518110156106245760008382815181106105c8576105c7612241565b5b602002602001015190506000670de0b6b3a76400008484815181106105f0576105ef612241565b5b6020026020010151610602919061229f565b905061060f3383836110b0565b5050808061061c906122f9565b9150506105aa565b505050565b60006106368484846110b0565b6106f784610642610edf565b6106f28560405180606001604052806028815260200161287c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a8610edf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b9092919063ffffffff16565b610ee7565b600190509392505050565b6000600b60009054906101000a900460ff16905090565b60006107c2610726610edf565b846107bd8560046000610737610edf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b610ee7565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107fa610edf565b73ffffffffffffffffffffffffffffffffffffffff1661081861099a565b73ffffffffffffffffffffffffffffffffffffffff161461086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590612123565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091a610edf565b73ffffffffffffffffffffffffffffffffffffffff1661093861099a565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590612123565b60405180910390fd5b61099860006115f6565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a80546109d2906120a6565b80601f01602080910402602001604051908101604052809291908181526020018280546109fe906120a6565b8015610a4b5780601f10610a2057610100808354040283529160200191610a4b565b820191906000526020600020905b815481529060010190602001808311610a2e57829003601f168201915b5050505050905090565b6000610b18610a62610edf565b84610b13856040518060600160405280602581526020016128a46025913960046000610a8c610edf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b9092919063ffffffff16565b610ee7565b6001905092915050565b6000610b36610b2f610edf565b84846110b0565b6001905092915050565b610b48610edf565b73ffffffffffffffffffffffffffffffffffffffff16610b6661099a565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612123565b60405180910390fd5b6064600c54610bcb9190612341565b4310610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c03906123e3565b60405180910390fd5b60005b8151811015610c9d57600160076000848481518110610c3157610c30612241565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c95906122f9565b915050610c0f565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b610d50610edf565b73ffffffffffffffffffffffffffffffffffffffff16610d6e61099a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb90612123565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a90612475565b60405180910390fd5b610e3c816115f6565b50565b610e47610edf565b73ffffffffffffffffffffffffffffffffffffffff16610e6561099a565b73ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290612123565b60405180910390fd5b6001600d60006101000a81548160ff02191690831515021790555043600c81905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d90612507565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90612599565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a39190611c6f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111169061262b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361118e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611185906126bd565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112325750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126890612729565b60405180910390fd5b600d60009054906101000a900460ff1661136657600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113265750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90612795565b60405180910390fd5b5b601e4361137391906127b5565b600c5411156113d25760008032905061138d8585836116ba565b9150816113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c690612835565b60405180910390fd5b50505b6113dd838383611a82565b6114498160405180606001604052806026815260200161285660269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114de81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161157e9190611c6f565b60405180910390a3505050565b60008383111582906115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca9190611b20565b60405180910390fd5b5082840390509392505050565b600081836115ee9190612341565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600190508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036117a35743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a77565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611a765743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061189b576001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118f65760009050611a75565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156119a257508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611a745743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ac1578082015181840152602081019050611aa6565b83811115611ad0576000848401525b50505050565b6000601f19601f8301169050919050565b6000611af282611a87565b611afc8185611a92565b9350611b0c818560208601611aa3565b611b1581611ad6565b840191505092915050565b60006020820190508181036000830152611b3a8184611ae7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8182611b56565b9050919050565b611b9181611b76565b8114611b9c57600080fd5b50565b600081359050611bae81611b88565b92915050565b6000819050919050565b611bc781611bb4565b8114611bd257600080fd5b50565b600081359050611be481611bbe565b92915050565b60008060408385031215611c0157611c00611b4c565b5b6000611c0f85828601611b9f565b9250506020611c2085828601611bd5565b9150509250929050565b60008115159050919050565b611c3f81611c2a565b82525050565b6000602082019050611c5a6000830184611c36565b92915050565b611c6981611bb4565b82525050565b6000602082019050611c846000830184611c60565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611cc782611ad6565b810181811067ffffffffffffffff82111715611ce657611ce5611c8f565b5b80604052505050565b6000611cf9611b42565b9050611d058282611cbe565b919050565b600067ffffffffffffffff821115611d2557611d24611c8f565b5b602082029050602081019050919050565b600080fd5b6000611d4e611d4984611d0a565b611cef565b90508083825260208201905060208402830185811115611d7157611d70611d36565b5b835b81811015611d9a5780611d868882611b9f565b845260208401935050602081019050611d73565b5050509392505050565b600082601f830112611db957611db8611c8a565b5b8135611dc9848260208601611d3b565b91505092915050565b600067ffffffffffffffff821115611ded57611dec611c8f565b5b602082029050602081019050919050565b6000611e11611e0c84611dd2565b611cef565b90508083825260208201905060208402830185811115611e3457611e33611d36565b5b835b81811015611e5d5780611e498882611bd5565b845260208401935050602081019050611e36565b5050509392505050565b600082601f830112611e7c57611e7b611c8a565b5b8135611e8c848260208601611dfe565b91505092915050565b60008060408385031215611eac57611eab611b4c565b5b600083013567ffffffffffffffff811115611eca57611ec9611b51565b5b611ed685828601611da4565b925050602083013567ffffffffffffffff811115611ef757611ef6611b51565b5b611f0385828601611e67565b9150509250929050565b600080600060608486031215611f2657611f25611b4c565b5b6000611f3486828701611b9f565b9350506020611f4586828701611b9f565b9250506040611f5686828701611bd5565b9150509250925092565b600060ff82169050919050565b611f7681611f60565b82525050565b6000602082019050611f916000830184611f6d565b92915050565b611fa081611b76565b82525050565b6000602082019050611fbb6000830184611f97565b92915050565b600060208284031215611fd757611fd6611b4c565b5b6000611fe584828501611b9f565b91505092915050565b60006020828403121561200457612003611b4c565b5b600082013567ffffffffffffffff81111561202257612021611b51565b5b61202e84828501611da4565b91505092915050565b6000806040838503121561204e5761204d611b4c565b5b600061205c85828601611b9f565b925050602061206d85828601611b9f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120be57607f821691505b6020821081036120d1576120d0612077565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061210d602083611a92565b9150612118826120d7565b602082019050919050565b6000602082019050818103600083015261213c81612100565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b6000612179601e83611a92565b915061218482612143565b602082019050919050565b600060208201905081810360008301526121a88161216c565b9050919050565b7f43616e206f6e6c792061697264726f70203230302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b600061220b603683611a92565b9150612216826121af565b604082019050919050565b6000602082019050818103600083015261223a816121fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006122aa82611bb4565b91506122b583611bb4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122ee576122ed612270565b5b828202905092915050565b600061230482611bb4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361233657612335612270565b5b600182019050919050565b600061234c82611bb4565b915061235783611bb4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561238c5761238b612270565b5b828201905092915050565b7f756e61626c6520746f20626c61636b6c69737420616e796d6f72650000000000600082015250565b60006123cd601b83611a92565b91506123d882612397565b602082019050919050565b600060208201905081810360008301526123fc816123c0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061245f602683611a92565b915061246a82612403565b604082019050919050565b6000602082019050818103600083015261248e81612452565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124f1602483611a92565b91506124fc82612495565b604082019050919050565b60006020820190508181036000830152612520816124e4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612583602283611a92565b915061258e82612527565b604082019050919050565b600060208201905081810360008301526125b281612576565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612615602583611a92565b9150612620826125b9565b604082019050919050565b6000602082019050818103600083015261264481612608565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006126a7602383611a92565b91506126b28261264b565b604082019050919050565b600060208201905081810360008301526126d68161269a565b9050919050565b7f544f4b454e3a20596f7520617265206120626164206163746f72210000000000600082015250565b6000612713601b83611a92565b915061271e826126dd565b602082019050919050565b6000602082019050818103600083015261274281612706565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061277f601683611a92565b915061278a82612749565b602082019050919050565b600060208201905081810360008301526127ae81612772565b9050919050565b60006127c082611bb4565b91506127cb83611bb4565b9250828210156127de576127dd612270565b5b828203905092915050565b7f7472616e736665722064656c617920656e61626c656400000000000000000000600082015250565b600061281f601683611a92565b915061282a826127e9565b602082019050919050565b6000602082019050818103600083015261284e81612812565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206da76eda3d2a5f107e54f6a1e66f83220746fda5248cd65d6170cce46b0c02ed64736f6c634300080e0033

Deployed Bytecode Sourcemap

20913:6750:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22432:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23286:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22709:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26011:617;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23463:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22618:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23792:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21064:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26902:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22817:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2416:103;;;:::i;:::-;;1765:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22523;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24018:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22944:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26635:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23127:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21343:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24295:114;;;:::i;:::-;;22432:83;22469:13;22502:5;22495:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22432:83;:::o;23286:169::-;23369:4;23386:39;23395:12;:10;:12::i;:::-;23409:7;23418:6;23386:8;:39::i;:::-;23443:4;23436:11;;23286:169;;;;:::o;22709:100::-;22762:7;22789:12;;22782:19;;22709:100;:::o;26011:617::-;1996:12;:10;:12::i;:::-;1985:23;;:7;:5;:7::i;:::-;:23;;;1977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26153:15:::1;:22;26135:7;:14;:40;26127:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;26246:3;26229:7;:14;:20;26221:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;26421:9;26417:204;26440:7;:14;26436:1;:18;26417:204;;;26475:14;26492:7;26500:1;26492:10;;;;;;;;:::i;:::-;;;;;;;;26475:27;;26517:14;26553:4;26534:15;26550:1;26534:18;;;;;;;;:::i;:::-;;;;;;;;:23;;;;:::i;:::-;26517:40;;26572:37;26582:10;26594:6;26602;26572:9;:37::i;:::-;26460:161;;26456:3;;;;;:::i;:::-;;;;26417:204;;;;26011:617:::0;;:::o;23463:321::-;23569:4;23586:36;23596:6;23604:9;23615:6;23586:9;:36::i;:::-;23633:121;23642:6;23650:12;:10;:12::i;:::-;23664:89;23702:6;23664:89;;;;;;;;;;;;;;;;;:11;:19;23676:6;23664:19;;;;;;;;;;;;;;;:33;23684:12;:10;:12::i;:::-;23664:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;23633:8;:121::i;:::-;23772:4;23765:11;;23463:321;;;;;:::o;22618:83::-;22659:5;22684:9;;;;;;;;;;;22677:16;;22618:83;:::o;23792:218::-;23880:4;23897:83;23906:12;:10;:12::i;:::-;23920:7;23929:50;23968:10;23929:11;:25;23941:12;:10;:12::i;:::-;23929:25;;;;;;;;;;;;;;;:34;23955:7;23929:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;23897:8;:83::i;:::-;23998:4;23991:11;;23792:218;;;;:::o;21064:28::-;;;;;;;;;;;;;:::o;26902:96::-;1996:12;:10;:12::i;:::-;1985:23;;:7;:5;:7::i;:::-;:23;;;1977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26985:5:::1;26967:6;:15;26974:7;26967:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;26902:96:::0;:::o;22817:119::-;22883:7;22910:9;:18;22920:7;22910:18;;;;;;;;;;;;;;;;22903:25;;22817:119;;;:::o;2416:103::-;1996:12;:10;:12::i;:::-;1985:23;;:7;:5;:7::i;:::-;:23;;;1977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2481:30:::1;2508:1;2481:18;:30::i;:::-;2416:103::o:0;1765:87::-;1811:7;1838:6;;;;;;;;;;;1831:13;;1765:87;:::o;22523:::-;22562:13;22595:7;22588:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22523:87;:::o;24018:269::-;24111:4;24128:129;24137:12;:10;:12::i;:::-;24151:7;24160:96;24199:15;24160:96;;;;;;;;;;;;;;;;;:11;:25;24172:12;:10;:12::i;:::-;24160:25;;;;;;;;;;;;;;;:34;24186:7;24160:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;24128:8;:129::i;:::-;24275:4;24268:11;;24018:269;;;;:::o;22944:175::-;23030:4;23047:42;23057:12;:10;:12::i;:::-;23071:9;23082:6;23047:9;:42::i;:::-;23107:4;23100:11;;22944:175;;;;:::o;26635:259::-;1996:12;:10;:12::i;:::-;1985:23;;:7;:5;:7::i;:::-;:23;;;1977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26742:3:::1;26731:8;;:14;;;;:::i;:::-;26716:12;:29;26708:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;26793:9;26788:99;26812:8;:15;26808:1;:19;26788:99;;;26871:4;26849:6;:19;26856:8;26865:1;26856:11;;;;;;;;:::i;:::-;;;;;;;;26849:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;26829:3;;;;;:::i;:::-;;;;26788:99;;;;26635:259:::0;:::o;23127:151::-;23216:7;23243:11;:18;23255:5;23243:18;;;;;;;;;;;;;;;:27;23262:7;23243:27;;;;;;;;;;;;;;;;23236:34;;23127:151;;;;:::o;21343:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;2674:201::-;1996:12;:10;:12::i;:::-;1985:23;;:7;:5;:7::i;:::-;:23;;;1977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2783:1:::1;2763:22;;:8;:22;;::::0;2755:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2839:28;2858:8;2839:18;:28::i;:::-;2674:201:::0;:::o;24295:114::-;1996:12;:10;:12::i;:::-;1985:23;;:7;:5;:7::i;:::-;:23;;;1977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24362:4:::1;24346:13;;:20;;;;;;;;;;;;;;;;;;24389:12;24378:8;:23;;;;24295:114::o:0;603:98::-;656:7;683:10;676:17;;603:98;:::o;25439:346::-;25558:1;25541:19;;:5;:19;;;25533:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25639:1;25620:21;;:7;:21;;;25612:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25723:6;25693:11;:18;25705:5;25693:18;;;;;;;;;;;;;;;:27;25712:7;25693:27;;;;;;;;;;;;;;;:36;;;;25761:7;25745:32;;25754:5;25745:32;;;25770:6;25745:32;;;;;;:::i;:::-;;;;;;;;25439:346;;;:::o;24417:1014::-;24541:1;24523:20;;:6;:20;;;24515:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;24625:1;24604:23;;:9;:23;;;24596:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24687:6;:14;24694:6;24687:14;;;;;;;;;;;;;;;;;;;;;;;;;24686:15;:37;;;;;24706:6;:17;24713:9;24706:17;;;;;;;;;;;;;;;;;;;;;;;;;24705:18;24686:37;24678:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;24771:13;;;;;;;;;;;24766:124;;24810:9;:17;24820:6;24810:17;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;24831:9;:20;24841:9;24831:20;;;;;;;;;;;;;;;;;;;;;;;;;24810:41;24801:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;24766:124;24940:2;24925:12;:17;;;;:::i;:::-;24914:8;;:28;24910:233;;;24959:13;24987:12;25002:9;24987:24;;25037:36;25051:6;25058:9;25068:4;25037:13;:36::i;:::-;25026:47;;25096:8;25088:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;24944:199;;24910:233;25155:47;25176:6;25184:9;25195:6;25155:20;:47::i;:::-;25235:71;25257:6;25235:71;;;;;;;;;;;;;;;;;:9;:17;25245:6;25235:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;25215:9;:17;25225:6;25215:17;;;;;;;;;;;;;;;:91;;;;25340:32;25365:6;25340:9;:20;25350:9;25340:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25317:9;:20;25327:9;25317:20;;;;;;;;;;;;;;;:55;;;;25405:9;25388:35;;25397:6;25388:35;;;25416:6;25388:35;;;;;;:::i;:::-;;;;;;;;24417:1014;;;:::o;7865:240::-;7985:7;8043:1;8038;:6;;8046:12;8030:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8085:1;8081;:5;8074:12;;7865:240;;;;;:::o;5586:98::-;5644:7;5675:1;5671;:5;;;;:::i;:::-;5664:12;;5586:98;;;;:::o;3035:191::-;3109:16;3128:6;;;;;;;;;;;3109:25;;3154:8;3145:6;;:17;;;;;;;;;;;;;;;;;;3209:8;3178:40;;3199:8;3178:40;;;;;;;;;;;;3098:128;3035:191;:::o;27007:653::-;27088:4;27101:13;27117:4;27101:20;;27149:4;27132:21;;:13;;;;;;;;;;;:21;;;27128:497;;27179:12;27158:14;:18;27173:2;27158:18;;;;;;;;;;;;;;;:33;;;;27217:12;27194:14;:20;27209:4;27194:20;;;;;;;;;;;;;;;:35;;;;27128:497;;;27263:2;27246:19;;:13;;;;;;;;;;;:19;;;27242:383;;27310:12;27286:14;:20;27301:4;27286:20;;;;;;;;;;;;;;;;:36;27282:89;;27347:4;27326:12;:18;27339:4;27326:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;27364:5;27353:16;;27282:89;27393:12;:18;27406:4;27393:18;;;;;;;;;;;;;;;;;;;;;;;;;27389:225;;;27426:5;27415:16;;27389:225;;;27474:2;27457:19;;:13;;;;;;;;;;;:19;;;;:44;;;;;27497:4;27480:21;;:13;;;;;;;;;;;:21;;;;27457:44;27453:161;;;27528:12;27505:14;:20;27520:4;27505:20;;;;;;;;;;;;;;;:35;;;;27563:12;27542:14;:18;27557:2;27542:18;;;;;;;;;;;;;;;:33;;;;27600:12;27577:14;:20;27592:4;27577:20;;;;;;;;;;;;;;;:35;;;;27453:161;27389:225;27242:383;27128:497;27643:8;27635:17;;;27007:653;;;;;:::o;25895:108::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:117::-;3955:1;3952;3945:12;3969:180;4017:77;4014:1;4007:88;4114:4;4111:1;4104:15;4138:4;4135:1;4128:15;4155:281;4238:27;4260:4;4238:27;:::i;:::-;4230:6;4226:40;4368:6;4356:10;4353:22;4332:18;4320:10;4317:34;4314:62;4311:88;;;4379:18;;:::i;:::-;4311:88;4419:10;4415:2;4408:22;4198:238;4155:281;;:::o;4442:129::-;4476:6;4503:20;;:::i;:::-;4493:30;;4532:33;4560:4;4552:6;4532:33;:::i;:::-;4442:129;;;:::o;4577:311::-;4654:4;4744:18;4736:6;4733:30;4730:56;;;4766:18;;:::i;:::-;4730:56;4816:4;4808:6;4804:17;4796:25;;4876:4;4870;4866:15;4858:23;;4577:311;;;:::o;4894:117::-;5003:1;5000;4993:12;5034:710;5130:5;5155:81;5171:64;5228:6;5171:64;:::i;:::-;5155:81;:::i;:::-;5146:90;;5256:5;5285:6;5278:5;5271:21;5319:4;5312:5;5308:16;5301:23;;5372:4;5364:6;5360:17;5352:6;5348:30;5401:3;5393:6;5390:15;5387:122;;;5420:79;;:::i;:::-;5387:122;5535:6;5518:220;5552:6;5547:3;5544:15;5518:220;;;5627:3;5656:37;5689:3;5677:10;5656:37;:::i;:::-;5651:3;5644:50;5723:4;5718:3;5714:14;5707:21;;5594:144;5578:4;5573:3;5569:14;5562:21;;5518:220;;;5522:21;5136:608;;5034:710;;;;;:::o;5767:370::-;5838:5;5887:3;5880:4;5872:6;5868:17;5864:27;5854:122;;5895:79;;:::i;:::-;5854:122;6012:6;5999:20;6037:94;6127:3;6119:6;6112:4;6104:6;6100:17;6037:94;:::i;:::-;6028:103;;5844:293;5767:370;;;;:::o;6143:311::-;6220:4;6310:18;6302:6;6299:30;6296:56;;;6332:18;;:::i;:::-;6296:56;6382:4;6374:6;6370:17;6362:25;;6442:4;6436;6432:15;6424:23;;6143:311;;;:::o;6477:710::-;6573:5;6598:81;6614:64;6671:6;6614:64;:::i;:::-;6598:81;:::i;:::-;6589:90;;6699:5;6728:6;6721:5;6714:21;6762:4;6755:5;6751:16;6744:23;;6815:4;6807:6;6803:17;6795:6;6791:30;6844:3;6836:6;6833:15;6830:122;;;6863:79;;:::i;:::-;6830:122;6978:6;6961:220;6995:6;6990:3;6987:15;6961:220;;;7070:3;7099:37;7132:3;7120:10;7099:37;:::i;:::-;7094:3;7087:50;7166:4;7161:3;7157:14;7150:21;;7037:144;7021:4;7016:3;7012:14;7005:21;;6961:220;;;6965:21;6579:608;;6477:710;;;;;:::o;7210:370::-;7281:5;7330:3;7323:4;7315:6;7311:17;7307:27;7297:122;;7338:79;;:::i;:::-;7297:122;7455:6;7442:20;7480:94;7570:3;7562:6;7555:4;7547:6;7543:17;7480:94;:::i;:::-;7471:103;;7287:293;7210:370;;;;:::o;7586:894::-;7704:6;7712;7761:2;7749:9;7740:7;7736:23;7732:32;7729:119;;;7767:79;;:::i;:::-;7729:119;7915:1;7904:9;7900:17;7887:31;7945:18;7937:6;7934:30;7931:117;;;7967:79;;:::i;:::-;7931:117;8072:78;8142:7;8133:6;8122:9;8118:22;8072:78;:::i;:::-;8062:88;;7858:302;8227:2;8216:9;8212:18;8199:32;8258:18;8250:6;8247:30;8244:117;;;8280:79;;:::i;:::-;8244:117;8385:78;8455:7;8446:6;8435:9;8431:22;8385:78;:::i;:::-;8375:88;;8170:303;7586:894;;;;;:::o;8486:619::-;8563:6;8571;8579;8628:2;8616:9;8607:7;8603:23;8599:32;8596:119;;;8634:79;;:::i;:::-;8596:119;8754:1;8779:53;8824:7;8815:6;8804:9;8800:22;8779:53;:::i;:::-;8769:63;;8725:117;8881:2;8907:53;8952:7;8943:6;8932:9;8928:22;8907:53;:::i;:::-;8897:63;;8852:118;9009:2;9035:53;9080:7;9071:6;9060:9;9056:22;9035:53;:::i;:::-;9025:63;;8980:118;8486:619;;;;;:::o;9111:86::-;9146:7;9186:4;9179:5;9175:16;9164:27;;9111:86;;;:::o;9203:112::-;9286:22;9302:5;9286:22;:::i;:::-;9281:3;9274:35;9203:112;;:::o;9321:214::-;9410:4;9448:2;9437:9;9433:18;9425:26;;9461:67;9525:1;9514:9;9510:17;9501:6;9461:67;:::i;:::-;9321:214;;;;:::o;9541:118::-;9628:24;9646:5;9628:24;:::i;:::-;9623:3;9616:37;9541:118;;:::o;9665:222::-;9758:4;9796:2;9785:9;9781:18;9773:26;;9809:71;9877:1;9866:9;9862:17;9853:6;9809:71;:::i;:::-;9665:222;;;;:::o;9893:329::-;9952:6;10001:2;9989:9;9980:7;9976:23;9972:32;9969:119;;;10007:79;;:::i;:::-;9969:119;10127:1;10152:53;10197:7;10188:6;10177:9;10173:22;10152:53;:::i;:::-;10142:63;;10098:117;9893:329;;;;:::o;10228:539::-;10312:6;10361:2;10349:9;10340:7;10336:23;10332:32;10329:119;;;10367:79;;:::i;:::-;10329:119;10515:1;10504:9;10500:17;10487:31;10545:18;10537:6;10534:30;10531:117;;;10567:79;;:::i;:::-;10531:117;10672:78;10742:7;10733:6;10722:9;10718:22;10672:78;:::i;:::-;10662:88;;10458:302;10228:539;;;;:::o;10773:474::-;10841:6;10849;10898:2;10886:9;10877:7;10873:23;10869:32;10866:119;;;10904:79;;:::i;:::-;10866:119;11024:1;11049:53;11094:7;11085:6;11074:9;11070:22;11049:53;:::i;:::-;11039:63;;10995:117;11151:2;11177:53;11222:7;11213:6;11202:9;11198:22;11177:53;:::i;:::-;11167:63;;11122:118;10773:474;;;;;:::o;11253:180::-;11301:77;11298:1;11291:88;11398:4;11395:1;11388:15;11422:4;11419:1;11412:15;11439:320;11483:6;11520:1;11514:4;11510:12;11500:22;;11567:1;11561:4;11557:12;11588:18;11578:81;;11644:4;11636:6;11632:17;11622:27;;11578:81;11706:2;11698:6;11695:14;11675:18;11672:38;11669:84;;11725:18;;:::i;:::-;11669:84;11490:269;11439:320;;;:::o;11765:182::-;11905:34;11901:1;11893:6;11889:14;11882:58;11765:182;:::o;11953:366::-;12095:3;12116:67;12180:2;12175:3;12116:67;:::i;:::-;12109:74;;12192:93;12281:3;12192:93;:::i;:::-;12310:2;12305:3;12301:12;12294:19;;11953:366;;;:::o;12325:419::-;12491:4;12529:2;12518:9;12514:18;12506:26;;12578:9;12572:4;12568:20;12564:1;12553:9;12549:17;12542:47;12606:131;12732:4;12606:131;:::i;:::-;12598:139;;12325:419;;;:::o;12750:180::-;12890:32;12886:1;12878:6;12874:14;12867:56;12750:180;:::o;12936:366::-;13078:3;13099:67;13163:2;13158:3;13099:67;:::i;:::-;13092:74;;13175:93;13264:3;13175:93;:::i;:::-;13293:2;13288:3;13284:12;13277:19;;12936:366;;;:::o;13308:419::-;13474:4;13512:2;13501:9;13497:18;13489:26;;13561:9;13555:4;13551:20;13547:1;13536:9;13532:17;13525:47;13589:131;13715:4;13589:131;:::i;:::-;13581:139;;13308:419;;;:::o;13733:241::-;13873:34;13869:1;13861:6;13857:14;13850:58;13942:24;13937:2;13929:6;13925:15;13918:49;13733:241;:::o;13980:366::-;14122:3;14143:67;14207:2;14202:3;14143:67;:::i;:::-;14136:74;;14219:93;14308:3;14219:93;:::i;:::-;14337:2;14332:3;14328:12;14321:19;;13980:366;;;:::o;14352:419::-;14518:4;14556:2;14545:9;14541:18;14533:26;;14605:9;14599:4;14595:20;14591:1;14580:9;14576:17;14569:47;14633:131;14759:4;14633:131;:::i;:::-;14625:139;;14352:419;;;:::o;14777:180::-;14825:77;14822:1;14815:88;14922:4;14919:1;14912:15;14946:4;14943:1;14936:15;14963:180;15011:77;15008:1;15001:88;15108:4;15105:1;15098:15;15132:4;15129:1;15122:15;15149:348;15189:7;15212:20;15230:1;15212:20;:::i;:::-;15207:25;;15246:20;15264:1;15246:20;:::i;:::-;15241:25;;15434:1;15366:66;15362:74;15359:1;15356:81;15351:1;15344:9;15337:17;15333:105;15330:131;;;15441:18;;:::i;:::-;15330:131;15489:1;15486;15482:9;15471:20;;15149:348;;;;:::o;15503:233::-;15542:3;15565:24;15583:5;15565:24;:::i;:::-;15556:33;;15611:66;15604:5;15601:77;15598:103;;15681:18;;:::i;:::-;15598:103;15728:1;15721:5;15717:13;15710:20;;15503:233;;;:::o;15742:305::-;15782:3;15801:20;15819:1;15801:20;:::i;:::-;15796:25;;15835:20;15853:1;15835:20;:::i;:::-;15830:25;;15989:1;15921:66;15917:74;15914:1;15911:81;15908:107;;;15995:18;;:::i;:::-;15908:107;16039:1;16036;16032:9;16025:16;;15742:305;;;;:::o;16053:177::-;16193:29;16189:1;16181:6;16177:14;16170:53;16053:177;:::o;16236:366::-;16378:3;16399:67;16463:2;16458:3;16399:67;:::i;:::-;16392:74;;16475:93;16564:3;16475:93;:::i;:::-;16593:2;16588:3;16584:12;16577:19;;16236:366;;;:::o;16608:419::-;16774:4;16812:2;16801:9;16797:18;16789:26;;16861:9;16855:4;16851:20;16847:1;16836:9;16832:17;16825:47;16889:131;17015:4;16889:131;:::i;:::-;16881:139;;16608:419;;;:::o;17033:225::-;17173:34;17169:1;17161:6;17157:14;17150:58;17242:8;17237:2;17229:6;17225:15;17218:33;17033:225;:::o;17264:366::-;17406:3;17427:67;17491:2;17486:3;17427:67;:::i;:::-;17420:74;;17503:93;17592:3;17503:93;:::i;:::-;17621:2;17616:3;17612:12;17605:19;;17264:366;;;:::o;17636:419::-;17802:4;17840:2;17829:9;17825:18;17817:26;;17889:9;17883:4;17879:20;17875:1;17864:9;17860:17;17853:47;17917:131;18043:4;17917:131;:::i;:::-;17909:139;;17636:419;;;:::o;18061:223::-;18201:34;18197:1;18189:6;18185:14;18178:58;18270:6;18265:2;18257:6;18253:15;18246:31;18061:223;:::o;18290:366::-;18432:3;18453:67;18517:2;18512:3;18453:67;:::i;:::-;18446:74;;18529:93;18618:3;18529:93;:::i;:::-;18647:2;18642:3;18638:12;18631:19;;18290:366;;;:::o;18662:419::-;18828:4;18866:2;18855:9;18851:18;18843:26;;18915:9;18909:4;18905:20;18901:1;18890:9;18886:17;18879:47;18943:131;19069:4;18943:131;:::i;:::-;18935:139;;18662:419;;;:::o;19087:221::-;19227:34;19223:1;19215:6;19211:14;19204:58;19296:4;19291:2;19283:6;19279:15;19272:29;19087:221;:::o;19314:366::-;19456:3;19477:67;19541:2;19536:3;19477:67;:::i;:::-;19470:74;;19553:93;19642:3;19553:93;:::i;:::-;19671:2;19666:3;19662:12;19655:19;;19314:366;;;:::o;19686:419::-;19852:4;19890:2;19879:9;19875:18;19867:26;;19939:9;19933:4;19929:20;19925:1;19914:9;19910:17;19903:47;19967:131;20093:4;19967:131;:::i;:::-;19959:139;;19686:419;;;:::o;20111:224::-;20251:34;20247:1;20239:6;20235:14;20228:58;20320:7;20315:2;20307:6;20303:15;20296:32;20111:224;:::o;20341:366::-;20483:3;20504:67;20568:2;20563:3;20504:67;:::i;:::-;20497:74;;20580:93;20669:3;20580:93;:::i;:::-;20698:2;20693:3;20689:12;20682:19;;20341:366;;;:::o;20713:419::-;20879:4;20917:2;20906:9;20902:18;20894:26;;20966:9;20960:4;20956:20;20952:1;20941:9;20937:17;20930:47;20994:131;21120:4;20994:131;:::i;:::-;20986:139;;20713:419;;;:::o;21138:222::-;21278:34;21274:1;21266:6;21262:14;21255:58;21347:5;21342:2;21334:6;21330:15;21323:30;21138:222;:::o;21366:366::-;21508:3;21529:67;21593:2;21588:3;21529:67;:::i;:::-;21522:74;;21605:93;21694:3;21605:93;:::i;:::-;21723:2;21718:3;21714:12;21707:19;;21366:366;;;:::o;21738:419::-;21904:4;21942:2;21931:9;21927:18;21919:26;;21991:9;21985:4;21981:20;21977:1;21966:9;21962:17;21955:47;22019:131;22145:4;22019:131;:::i;:::-;22011:139;;21738:419;;;:::o;22163:177::-;22303:29;22299:1;22291:6;22287:14;22280:53;22163:177;:::o;22346:366::-;22488:3;22509:67;22573:2;22568:3;22509:67;:::i;:::-;22502:74;;22585:93;22674:3;22585:93;:::i;:::-;22703:2;22698:3;22694:12;22687:19;;22346:366;;;:::o;22718:419::-;22884:4;22922:2;22911:9;22907:18;22899:26;;22971:9;22965:4;22961:20;22957:1;22946:9;22942:17;22935:47;22999:131;23125:4;22999:131;:::i;:::-;22991:139;;22718:419;;;:::o;23143:172::-;23283:24;23279:1;23271:6;23267:14;23260:48;23143:172;:::o;23321:366::-;23463:3;23484:67;23548:2;23543:3;23484:67;:::i;:::-;23477:74;;23560:93;23649:3;23560:93;:::i;:::-;23678:2;23673:3;23669:12;23662:19;;23321:366;;;:::o;23693:419::-;23859:4;23897:2;23886:9;23882:18;23874:26;;23946:9;23940:4;23936:20;23932:1;23921:9;23917:17;23910:47;23974:131;24100:4;23974:131;:::i;:::-;23966:139;;23693:419;;;:::o;24118:191::-;24158:4;24178:20;24196:1;24178:20;:::i;:::-;24173:25;;24212:20;24230:1;24212:20;:::i;:::-;24207:25;;24251:1;24248;24245:8;24242:34;;;24256:18;;:::i;:::-;24242:34;24301:1;24298;24294:9;24286:17;;24118:191;;;;:::o;24315:172::-;24455:24;24451:1;24443:6;24439:14;24432:48;24315:172;:::o;24493:366::-;24635:3;24656:67;24720:2;24715:3;24656:67;:::i;:::-;24649:74;;24732:93;24821:3;24732:93;:::i;:::-;24850:2;24845:3;24841:12;24834:19;;24493:366;;;:::o;24865:419::-;25031:4;25069:2;25058:9;25054:18;25046:26;;25118:9;25112:4;25108:20;25104:1;25093:9;25089:17;25082:47;25146:131;25272:4;25146:131;:::i;:::-;25138:139;;24865:419;;;:::o

Swarm Source

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