ETH Price: $3,272.91 (+0.72%)
Gas: 1 Gwei

Token

PEPE20 (PEPE20)
 

Overview

Max Total Supply

420,690,000,000,000 PEPE20

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.901775504 PEPE20

Value
$0.00
0x94d181454f43117d2a73760dac9f6ea1389ec17f
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:
PEPE20

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-16
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

pragma solidity ^0.8.4;
/**
 * @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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

pragma solidity ^0.8.4;
/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

pragma solidity ^0.8.4;

library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @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 sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @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) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

pragma solidity ^0.8.4;

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

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

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

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

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

pragma solidity ^0.8.4;

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.8.4;

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.8.4;

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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

pragma solidity ^0.8.4;

contract PEPE20 is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    mapping (address => uint256) public _rOwned;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping(address => bool) public _isBlacklisted;

    bool public liquidityLaunched = false;
    bool public isFirstLaunch = true;
    uint256 public lastSnipeTaxBlock;
    uint8 public snipeBlocks = 0;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 42069 * (10**10) * (10**9);
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 1;
    
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 1;
    
    uint256 private _redisFee;
    uint256 private _taxFee;
    
    string private constant _name = "PEPE20";
    string private constant _symbol = "PEPE20";
    uint8 private constant _decimals = 9;
    

    address payable private _marketingAddress = payable(0x5a8EfA94fa070d2DA621c2Af8d282014b1F59417);
    address payable private _buybackAddress = payable(0xcC1a716c7e69e2b61C9EF015898c2B58b39A0255);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_buybackAddress] = true;

        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

    function setSnipeBlocks(uint8 _blocks) external onlyOwner {
        require(!liquidityLaunched);
        snipeBlocks = _blocks;
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isBlacklisted[from], 'Blacklisted address');

        _redisFee = 0;
        _taxFee = 0;

        // No adding liquidity before launched
        if (!liquidityLaunched) {
            if (to == uniswapV2Pair) {
                liquidityLaunched = true;
                // high tax ends in x blocks
                lastSnipeTaxBlock = block.number + snipeBlocks;
            }
        }

        //antibot block
        if(liquidityLaunched && block.number <= lastSnipeTaxBlock && !isFirstLaunch){
            _redisFee = _redisFeeOnBuy;
            _taxFee = _taxFeeOnBuy;
            _tokenTransfer(from,to,amount);
            if (to != address(uniswapV2Pair)) {
                _isBlacklisted[to]=true;
            }
            return;
        }

        if (liquidityLaunched && isFirstLaunch){
            isFirstLaunch = false;
        }
        
        if (from != owner() && to != owner()) {
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance > 0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
            if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
                _redisFee = 0;
                _taxFee = 0;
            }
            
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        uint256 mktAmount = amount.mul(1).div(2);
        uint256 buybackAmount = amount.sub(mktAmount);
        _marketingAddress.transfer(mktAmount);
        _buybackAddress.transfer(buybackAmount);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        uint256 tTransferAmount = tAmount.sub(tAmount.mul(_redisFee).div(100)).sub(tAmount.mul(_taxFee).div(100));
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tAmount.mul(_redisFee).div(100).mul(currentRate);
        uint256 rTeam = tAmount.mul(_taxFee).div(100).mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
        _reflectFee(rFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    /**
     * only thing to change _rTotal
     */
    function _reflectFee(uint256 rFee) private {
        _rTotal = _rTotal.sub(rFee);
    }

    receive() external payable {}

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
        emit ExcludeMultipleAccountsFromFees(accounts, excluded);
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    event BlacklistAddress(address indexed account, bool value);
    function blacklistAddress(address account, bool value) public onlyOwner{
        _isBlacklisted[account] = value;
        emit BlacklistAddress(account, value);
    }

    event BlacklistMultiAddresses(address[] accounts, bool value);
    function blacklistMultiAddresses(address[] calldata accounts, bool value) public onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++) {
            _isBlacklisted[accounts[i]] = value;
        }
        emit BlacklistMultiAddresses(accounts, value);
    }

}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistMultiAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","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":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklistMultiAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isFirstLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSnipeTaxBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_blocks","type":"uint8"}],"name":"setSnipeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipeBlocks","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600560006101000a81548160ff0219169083151502179055506001600560016101000a81548160ff0219169083151502179055506000600760006101000a81548160ff021916908360ff160217905550695915a68d88da6a0800006000196200007091906200084c565b6000196200007f9190620007d3565b60085560006009556001600a556000600b556001600c55735a8efa94fa070d2da621c2af8d282014b1f59417600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cc1a716c7e69e2b61c9ef015898c2b58b39a0255601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260146101000a81548160ff0219169083151502179055506001601260156101000a81548160ff0219169083151502179055503480156200018357600080fd5b50600062000196620006f360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600854600160006200024b620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032a57600080fd5b505afa1580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036591906200073b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c857600080fd5b505afa158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040391906200073b565b6040518363ffffffff1660e01b81526004016200042292919062000789565b602060405180830381600087803b1580156200043d57600080fd5b505af115801562000452573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047891906200073b565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004ce620006fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067b620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef695915a68d88da6a080000604051620006e49190620007b6565b60405180910390a350620008fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200073581620008e2565b92915050565b6000602082840312156200074e57600080fd5b60006200075e8482850162000724565b91505092915050565b62000772816200080e565b82525050565b620007838162000842565b82525050565b6000604082019050620007a0600083018562000767565b620007af602083018462000767565b9392505050565b6000602082019050620007cd600083018462000778565b92915050565b6000620007e08262000842565b9150620007ed8362000842565b92508282101562000803576200080262000884565b5b828203905092915050565b60006200081b8262000822565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008598262000842565b9150620008668362000842565b925082620008795762000878620008b3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620008ed816200080e565b8114620008f957600080fd5b50565b61370f806200090c6000396000f3fe6080604052600436106101855760003560e01c80636a1961c4116100d1578063a9059cbb1161008a578063c492f04611610064578063c492f046146105a7578063dd62ed3e146105d0578063f2fde38b1461060d578063fca419ae146106365761018c565b8063a9059cbb14610518578063a9f6151814610555578063c02466681461057e5761018c565b80636a1961c41461040657806370a0823114610431578063715018a61461046e578063768dc710146104855780638da5cb5b146104c257806395d89b41146104ed5761018c565b80631cdd3be31161013e5780632be29fa8116101185780632be29fa81461035c578063313ce56714610387578063455a4396146103b257806349bd5a5e146103db5761018c565b80631cdd3be3146102b75780631eb147d5146102f457806323b872dd1461031f5761018c565b806306fdde0314610191578063095ea7b3146101bc5780630cfc15f9146101f95780631694505e14610236578063181281291461026157806318160ddd1461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661065f565b6040516101b39190612e42565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612a0c565b61069c565b6040516101f09190612e0c565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b91906128f3565b6106ba565b60405161022d9190612fc4565b60405180910390f35b34801561024257600080fd5b5061024b6106d2565b6040516102589190612e27565b60405180910390f35b34801561026d57600080fd5b506102766106f8565b6040516102839190612e0c565b60405180910390f35b34801561029857600080fd5b506102a161070b565b6040516102ae9190612fc4565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d991906128f3565b61071d565b6040516102eb9190612e0c565b60405180910390f35b34801561030057600080fd5b5061030961073d565b6040516103169190612e0c565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190612981565b610750565b6040516103539190612e0c565b60405180910390f35b34801561036857600080fd5b50610371610829565b60405161037e9190613039565b60405180910390f35b34801561039357600080fd5b5061039c61083c565b6040516103a99190613039565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906129d0565b610845565b005b3480156103e757600080fd5b506103f0610983565b6040516103fd9190612dbf565b60405180910390f35b34801561041257600080fd5b5061041b6109a9565b6040516104289190612fc4565b60405180910390f35b34801561043d57600080fd5b50610458600480360381019061045391906128f3565b6109af565b6040516104659190612fc4565b60405180910390f35b34801561047a57600080fd5b50610483610a00565b005b34801561049157600080fd5b506104ac60048036038101906104a791906128f3565b610b53565b6040516104b99190612e0c565b60405180910390f35b3480156104ce57600080fd5b506104d7610b73565b6040516104e49190612dbf565b60405180910390f35b3480156104f957600080fd5b50610502610b9c565b60405161050f9190612e42565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a9190612a0c565b610bd9565b60405161054c9190612e0c565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612aa0565b610bf7565b005b34801561058a57600080fd5b506105a560048036038101906105a091906129d0565b610cc4565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190612a48565b610e02565b005b3480156105dc57600080fd5b506105f760048036038101906105f29190612945565b610f9d565b6040516106049190612fc4565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f91906128f3565b611024565b005b34801561064257600080fd5b5061065d60048036038101906106589190612a48565b6111e6565b005b60606040518060400160405280600681526020017f5045504532300000000000000000000000000000000000000000000000000000815250905090565b60006106b06106a9611381565b8484611389565b6001905092915050565b60016020528060005260406000206000915090505481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900460ff1681565b6000695915a68d88da6a080000905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600061075d848484611554565b61081e84610769611381565b610819856040518060600160405280602881526020016136b260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107cf611381565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d569092919063ffffffff16565b611389565b600190509392505050565b600760009054906101000a900460ff1681565b60006009905090565b61084d611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190612f44565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f09fb98d4f02479ce251faed0f992a3c326d006e19ffa4f7269239763a644f725826040516109779190612e0c565b60405180910390a25050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60006109f9600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dba565b9050919050565b610a08611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5045504532300000000000000000000000000000000000000000000000000000815250905090565b6000610bed610be6611381565b8484611554565b6001905092915050565b610bff611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390612f44565b60405180910390fd5b600560009054906101000a900460ff1615610ca657600080fd5b80600760006101000a81548160ff021916908360ff16021790555050565b610ccc611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5090612f44565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610df69190612e0c565b60405180910390a25050565b610e0a611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90612f44565b60405180910390fd5b60005b83839050811015610f5c578160036000868685818110610ee3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610ef891906128f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f54906132aa565b915050610e9a565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051610f9093929190612dda565b60405180910390a1505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61102c611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b090612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090612ea4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ee611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127290612f44565b60405180910390fd5b60005b838390508110156113405781600460008686858181106112c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906112dc91906128f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611338906132aa565b91505061127e565b507fd09d39390fc688d281adc0e04befeb10838d7a58109b6eb8c29db9b251ebccf683838360405161137493929190612dda565b60405180910390a1505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f090612fa4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090612ec4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115479190612fc4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90612f84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162b90612e64565b60405180910390fd5b60008111611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90612f64565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90612f04565b60405180910390fd5b6000600d819055506000600e81905550600560009054906101000a900460ff166117bf57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117be576001600560006101000a81548160ff021916908315150217905550600760009054906101000a900460ff1660ff16436117b791906130d7565b6006819055505b5b600560009054906101000a900460ff1680156117dd57506006544311155b80156117f65750600560019054906101000a900460ff16155b156118cb57600954600d81905550600a54600e81905550611818838383611e28565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118c6576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611d51565b600560009054906101000a900460ff1680156118f35750600560019054906101000a900460ff165b15611914576000600560016101000a81548160ff0219169083151502179055505b61191c610b73565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561198a575061195a610b73565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d4557600061199a306109af565b9050601260149054906101000a900460ff16158015611a075750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1f5750601260159054906101000a900460ff165b8015611a2b5750600081115b15611a5357611a3981611e38565b60004790506000811115611a5157611a5047612132565b5b505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611afe5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b1657600954600d81905550600a54600e819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bc15750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd957600b54600d81905550600c54600e819055505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c7a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d2d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d43576000600d819055506000600e819055505b505b611d50838383611e28565b5b505050565b6000838311158290611d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d959190612e42565b60405180910390fd5b5060008385611dad91906131b8565b9050809150509392505050565b6000600854821115611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df890612e84565b60405180910390fd5b6000611e0b61224b565b9050611e20818461227690919063ffffffff16565b915050919050565b611e338383836122c0565b505050565b6001601260146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e96577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611ec45781602001602082028036833780820191505090505b5090503081600081518110611f02577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fa457600080fd5b505afa158015611fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdc919061291c565b81600181518110612016577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611389565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120e1959493929190612fdf565b600060405180830381600087803b1580156120fb57600080fd5b505af115801561210f573d6000803e3d6000fd5b50505050506000601260146101000a81548160ff02191690831515021790555050565b600061215b600261214d60018561263790919063ffffffff16565b61227690919063ffffffff16565b9050600061217282846126b290919063ffffffff16565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156121dc573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612245573d6000803e3d6000fd5b50505050565b60008060006122586126fc565b9150915061226f818361227690919063ffffffff16565b9250505090565b60006122b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612761565b905092915050565b60006122ca61224b565b905060006123416122f960646122eb600e548761263790919063ffffffff16565b61227690919063ffffffff16565b6123336123246064612316600d548961263790919063ffffffff16565b61227690919063ffffffff16565b866126b290919063ffffffff16565b6126b290919063ffffffff16565b90506000612358838561263790919063ffffffff16565b9050600061239684612388606461237a600d548a61263790919063ffffffff16565b61227690919063ffffffff16565b61263790919063ffffffff16565b905060006123d4856123c660646123b8600e548b61263790919063ffffffff16565b61227690919063ffffffff16565b61263790919063ffffffff16565b905060006123fd826123ef85876126b290919063ffffffff16565b6126b290919063ffffffff16565b905061245184600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e681600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c490919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061257b82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125c783612822565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516126249190612fc4565b60405180910390a3505050505050505050565b60008083141561264a57600090506126ac565b60008284612658919061315e565b9050828482612667919061312d565b146126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e90612f24565b60405180910390fd5b809150505b92915050565b60006126f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d56565b905092915050565b600080600060085490506000695915a68d88da6a0800009050612734695915a68d88da6a08000060085461227690919063ffffffff16565b82101561275457600854695915a68d88da6a08000093509350505061275d565b81819350935050505b9091565b600080831182906127a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279f9190612e42565b60405180910390fd5b50600083856127b7919061312d565b9050809150509392505050565b60008082846127d391906130d7565b905083811015612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f90612ee4565b60405180910390fd5b8091505092915050565b612837816008546126b290919063ffffffff16565b60088190555050565b60008135905061284f81613655565b92915050565b60008151905061286481613655565b92915050565b60008083601f84011261287c57600080fd5b8235905067ffffffffffffffff81111561289557600080fd5b6020830191508360208202830111156128ad57600080fd5b9250929050565b6000813590506128c38161366c565b92915050565b6000813590506128d881613683565b92915050565b6000813590506128ed8161369a565b92915050565b60006020828403121561290557600080fd5b600061291384828501612840565b91505092915050565b60006020828403121561292e57600080fd5b600061293c84828501612855565b91505092915050565b6000806040838503121561295857600080fd5b600061296685828601612840565b925050602061297785828601612840565b9150509250929050565b60008060006060848603121561299657600080fd5b60006129a486828701612840565b93505060206129b586828701612840565b92505060406129c6868287016128c9565b9150509250925092565b600080604083850312156129e357600080fd5b60006129f185828601612840565b9250506020612a02858286016128b4565b9150509250929050565b60008060408385031215612a1f57600080fd5b6000612a2d85828601612840565b9250506020612a3e858286016128c9565b9150509250929050565b600080600060408486031215612a5d57600080fd5b600084013567ffffffffffffffff811115612a7757600080fd5b612a838682870161286a565b93509350506020612a96868287016128b4565b9150509250925092565b600060208284031215612ab257600080fd5b6000612ac0848285016128de565b91505092915050565b6000612ad58383612ae1565b60208301905092915050565b612aea816131ec565b82525050565b612af9816131ec565b82525050565b6000612b0b838561309e565b9350612b1682613054565b8060005b85811015612b4f57612b2c82846130c0565b612b368882612ac9565b9750612b4183613084565b925050600181019050612b1a565b5085925050509392505050565b6000612b678261306e565b612b71818561309e565b9350612b7c8361305e565b8060005b83811015612bad578151612b948882612ac9565b9750612b9f83613091565b925050600181019050612b80565b5085935050505092915050565b612bc3816131fe565b82525050565b612bd281613241565b82525050565b612be181613265565b82525050565b6000612bf282613079565b612bfc81856130af565b9350612c0c818560208601613277565b612c1581613351565b840191505092915050565b6000612c2d6023836130af565b9150612c3882613362565b604082019050919050565b6000612c50602a836130af565b9150612c5b826133b1565b604082019050919050565b6000612c736026836130af565b9150612c7e82613400565b604082019050919050565b6000612c966022836130af565b9150612ca18261344f565b604082019050919050565b6000612cb9601b836130af565b9150612cc48261349e565b602082019050919050565b6000612cdc6013836130af565b9150612ce7826134c7565b602082019050919050565b6000612cff6021836130af565b9150612d0a826134f0565b604082019050919050565b6000612d226020836130af565b9150612d2d8261353f565b602082019050919050565b6000612d456029836130af565b9150612d5082613568565b604082019050919050565b6000612d686025836130af565b9150612d73826135b7565b604082019050919050565b6000612d8b6024836130af565b9150612d9682613606565b604082019050919050565b612daa8161322a565b82525050565b612db981613234565b82525050565b6000602082019050612dd46000830184612af0565b92915050565b60006040820190508181036000830152612df5818587612aff565b9050612e046020830184612bba565b949350505050565b6000602082019050612e216000830184612bba565b92915050565b6000602082019050612e3c6000830184612bc9565b92915050565b60006020820190508181036000830152612e5c8184612be7565b905092915050565b60006020820190508181036000830152612e7d81612c20565b9050919050565b60006020820190508181036000830152612e9d81612c43565b9050919050565b60006020820190508181036000830152612ebd81612c66565b9050919050565b60006020820190508181036000830152612edd81612c89565b9050919050565b60006020820190508181036000830152612efd81612cac565b9050919050565b60006020820190508181036000830152612f1d81612ccf565b9050919050565b60006020820190508181036000830152612f3d81612cf2565b9050919050565b60006020820190508181036000830152612f5d81612d15565b9050919050565b60006020820190508181036000830152612f7d81612d38565b9050919050565b60006020820190508181036000830152612f9d81612d5b565b9050919050565b60006020820190508181036000830152612fbd81612d7e565b9050919050565b6000602082019050612fd96000830184612da1565b92915050565b600060a082019050612ff46000830188612da1565b6130016020830187612bd8565b81810360408301526130138186612b5c565b90506130226060830185612af0565b61302f6080830184612da1565b9695505050505050565b600060208201905061304e6000830184612db0565b92915050565b6000819050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130cf6020840184612840565b905092915050565b60006130e28261322a565b91506130ed8361322a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613122576131216132f3565b5b828201905092915050565b60006131388261322a565b91506131438361322a565b92508261315357613152613322565b5b828204905092915050565b60006131698261322a565b91506131748361322a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ad576131ac6132f3565b5b828202905092915050565b60006131c38261322a565b91506131ce8361322a565b9250828210156131e1576131e06132f3565b5b828203905092915050565b60006131f78261320a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061324c82613253565b9050919050565b600061325e8261320a565b9050919050565b60006132708261322a565b9050919050565b60005b8381101561329557808201518184015260208101905061327a565b838111156132a4576000848401525b50505050565b60006132b58261322a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132e8576132e76132f3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61365e816131ec565b811461366957600080fd5b50565b613675816131fe565b811461368057600080fd5b50565b61368c8161322a565b811461369757600080fd5b50565b6136a381613234565b81146136ae57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206af6f799e19b4606195d1cfda3061f0002e02b328383dfc3cc505c66069d64d764736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80636a1961c4116100d1578063a9059cbb1161008a578063c492f04611610064578063c492f046146105a7578063dd62ed3e146105d0578063f2fde38b1461060d578063fca419ae146106365761018c565b8063a9059cbb14610518578063a9f6151814610555578063c02466681461057e5761018c565b80636a1961c41461040657806370a0823114610431578063715018a61461046e578063768dc710146104855780638da5cb5b146104c257806395d89b41146104ed5761018c565b80631cdd3be31161013e5780632be29fa8116101185780632be29fa81461035c578063313ce56714610387578063455a4396146103b257806349bd5a5e146103db5761018c565b80631cdd3be3146102b75780631eb147d5146102f457806323b872dd1461031f5761018c565b806306fdde0314610191578063095ea7b3146101bc5780630cfc15f9146101f95780631694505e14610236578063181281291461026157806318160ddd1461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661065f565b6040516101b39190612e42565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612a0c565b61069c565b6040516101f09190612e0c565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b91906128f3565b6106ba565b60405161022d9190612fc4565b60405180910390f35b34801561024257600080fd5b5061024b6106d2565b6040516102589190612e27565b60405180910390f35b34801561026d57600080fd5b506102766106f8565b6040516102839190612e0c565b60405180910390f35b34801561029857600080fd5b506102a161070b565b6040516102ae9190612fc4565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d991906128f3565b61071d565b6040516102eb9190612e0c565b60405180910390f35b34801561030057600080fd5b5061030961073d565b6040516103169190612e0c565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190612981565b610750565b6040516103539190612e0c565b60405180910390f35b34801561036857600080fd5b50610371610829565b60405161037e9190613039565b60405180910390f35b34801561039357600080fd5b5061039c61083c565b6040516103a99190613039565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906129d0565b610845565b005b3480156103e757600080fd5b506103f0610983565b6040516103fd9190612dbf565b60405180910390f35b34801561041257600080fd5b5061041b6109a9565b6040516104289190612fc4565b60405180910390f35b34801561043d57600080fd5b50610458600480360381019061045391906128f3565b6109af565b6040516104659190612fc4565b60405180910390f35b34801561047a57600080fd5b50610483610a00565b005b34801561049157600080fd5b506104ac60048036038101906104a791906128f3565b610b53565b6040516104b99190612e0c565b60405180910390f35b3480156104ce57600080fd5b506104d7610b73565b6040516104e49190612dbf565b60405180910390f35b3480156104f957600080fd5b50610502610b9c565b60405161050f9190612e42565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a9190612a0c565b610bd9565b60405161054c9190612e0c565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612aa0565b610bf7565b005b34801561058a57600080fd5b506105a560048036038101906105a091906129d0565b610cc4565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190612a48565b610e02565b005b3480156105dc57600080fd5b506105f760048036038101906105f29190612945565b610f9d565b6040516106049190612fc4565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f91906128f3565b611024565b005b34801561064257600080fd5b5061065d60048036038101906106589190612a48565b6111e6565b005b60606040518060400160405280600681526020017f5045504532300000000000000000000000000000000000000000000000000000815250905090565b60006106b06106a9611381565b8484611389565b6001905092915050565b60016020528060005260406000206000915090505481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900460ff1681565b6000695915a68d88da6a080000905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600061075d848484611554565b61081e84610769611381565b610819856040518060600160405280602881526020016136b260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107cf611381565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d569092919063ffffffff16565b611389565b600190509392505050565b600760009054906101000a900460ff1681565b60006009905090565b61084d611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190612f44565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f09fb98d4f02479ce251faed0f992a3c326d006e19ffa4f7269239763a644f725826040516109779190612e0c565b60405180910390a25050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60006109f9600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dba565b9050919050565b610a08611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5045504532300000000000000000000000000000000000000000000000000000815250905090565b6000610bed610be6611381565b8484611554565b6001905092915050565b610bff611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390612f44565b60405180910390fd5b600560009054906101000a900460ff1615610ca657600080fd5b80600760006101000a81548160ff021916908360ff16021790555050565b610ccc611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5090612f44565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610df69190612e0c565b60405180910390a25050565b610e0a611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90612f44565b60405180910390fd5b60005b83839050811015610f5c578160036000868685818110610ee3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610ef891906128f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f54906132aa565b915050610e9a565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051610f9093929190612dda565b60405180910390a1505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61102c611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b090612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090612ea4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ee611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127290612f44565b60405180910390fd5b60005b838390508110156113405781600460008686858181106112c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906112dc91906128f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611338906132aa565b91505061127e565b507fd09d39390fc688d281adc0e04befeb10838d7a58109b6eb8c29db9b251ebccf683838360405161137493929190612dda565b60405180910390a1505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f090612fa4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090612ec4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115479190612fc4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90612f84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162b90612e64565b60405180910390fd5b60008111611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90612f64565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90612f04565b60405180910390fd5b6000600d819055506000600e81905550600560009054906101000a900460ff166117bf57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117be576001600560006101000a81548160ff021916908315150217905550600760009054906101000a900460ff1660ff16436117b791906130d7565b6006819055505b5b600560009054906101000a900460ff1680156117dd57506006544311155b80156117f65750600560019054906101000a900460ff16155b156118cb57600954600d81905550600a54600e81905550611818838383611e28565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118c6576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611d51565b600560009054906101000a900460ff1680156118f35750600560019054906101000a900460ff165b15611914576000600560016101000a81548160ff0219169083151502179055505b61191c610b73565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561198a575061195a610b73565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d4557600061199a306109af565b9050601260149054906101000a900460ff16158015611a075750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1f5750601260159054906101000a900460ff165b8015611a2b5750600081115b15611a5357611a3981611e38565b60004790506000811115611a5157611a5047612132565b5b505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611afe5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b1657600954600d81905550600a54600e819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bc15750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd957600b54600d81905550600c54600e819055505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c7a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d2d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d43576000600d819055506000600e819055505b505b611d50838383611e28565b5b505050565b6000838311158290611d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d959190612e42565b60405180910390fd5b5060008385611dad91906131b8565b9050809150509392505050565b6000600854821115611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df890612e84565b60405180910390fd5b6000611e0b61224b565b9050611e20818461227690919063ffffffff16565b915050919050565b611e338383836122c0565b505050565b6001601260146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e96577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611ec45781602001602082028036833780820191505090505b5090503081600081518110611f02577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fa457600080fd5b505afa158015611fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdc919061291c565b81600181518110612016577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611389565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120e1959493929190612fdf565b600060405180830381600087803b1580156120fb57600080fd5b505af115801561210f573d6000803e3d6000fd5b50505050506000601260146101000a81548160ff02191690831515021790555050565b600061215b600261214d60018561263790919063ffffffff16565b61227690919063ffffffff16565b9050600061217282846126b290919063ffffffff16565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156121dc573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612245573d6000803e3d6000fd5b50505050565b60008060006122586126fc565b9150915061226f818361227690919063ffffffff16565b9250505090565b60006122b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612761565b905092915050565b60006122ca61224b565b905060006123416122f960646122eb600e548761263790919063ffffffff16565b61227690919063ffffffff16565b6123336123246064612316600d548961263790919063ffffffff16565b61227690919063ffffffff16565b866126b290919063ffffffff16565b6126b290919063ffffffff16565b90506000612358838561263790919063ffffffff16565b9050600061239684612388606461237a600d548a61263790919063ffffffff16565b61227690919063ffffffff16565b61263790919063ffffffff16565b905060006123d4856123c660646123b8600e548b61263790919063ffffffff16565b61227690919063ffffffff16565b61263790919063ffffffff16565b905060006123fd826123ef85876126b290919063ffffffff16565b6126b290919063ffffffff16565b905061245184600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e681600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c490919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061257b82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125c783612822565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516126249190612fc4565b60405180910390a3505050505050505050565b60008083141561264a57600090506126ac565b60008284612658919061315e565b9050828482612667919061312d565b146126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e90612f24565b60405180910390fd5b809150505b92915050565b60006126f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d56565b905092915050565b600080600060085490506000695915a68d88da6a0800009050612734695915a68d88da6a08000060085461227690919063ffffffff16565b82101561275457600854695915a68d88da6a08000093509350505061275d565b81819350935050505b9091565b600080831182906127a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279f9190612e42565b60405180910390fd5b50600083856127b7919061312d565b9050809150509392505050565b60008082846127d391906130d7565b905083811015612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f90612ee4565b60405180910390fd5b8091505092915050565b612837816008546126b290919063ffffffff16565b60088190555050565b60008135905061284f81613655565b92915050565b60008151905061286481613655565b92915050565b60008083601f84011261287c57600080fd5b8235905067ffffffffffffffff81111561289557600080fd5b6020830191508360208202830111156128ad57600080fd5b9250929050565b6000813590506128c38161366c565b92915050565b6000813590506128d881613683565b92915050565b6000813590506128ed8161369a565b92915050565b60006020828403121561290557600080fd5b600061291384828501612840565b91505092915050565b60006020828403121561292e57600080fd5b600061293c84828501612855565b91505092915050565b6000806040838503121561295857600080fd5b600061296685828601612840565b925050602061297785828601612840565b9150509250929050565b60008060006060848603121561299657600080fd5b60006129a486828701612840565b93505060206129b586828701612840565b92505060406129c6868287016128c9565b9150509250925092565b600080604083850312156129e357600080fd5b60006129f185828601612840565b9250506020612a02858286016128b4565b9150509250929050565b60008060408385031215612a1f57600080fd5b6000612a2d85828601612840565b9250506020612a3e858286016128c9565b9150509250929050565b600080600060408486031215612a5d57600080fd5b600084013567ffffffffffffffff811115612a7757600080fd5b612a838682870161286a565b93509350506020612a96868287016128b4565b9150509250925092565b600060208284031215612ab257600080fd5b6000612ac0848285016128de565b91505092915050565b6000612ad58383612ae1565b60208301905092915050565b612aea816131ec565b82525050565b612af9816131ec565b82525050565b6000612b0b838561309e565b9350612b1682613054565b8060005b85811015612b4f57612b2c82846130c0565b612b368882612ac9565b9750612b4183613084565b925050600181019050612b1a565b5085925050509392505050565b6000612b678261306e565b612b71818561309e565b9350612b7c8361305e565b8060005b83811015612bad578151612b948882612ac9565b9750612b9f83613091565b925050600181019050612b80565b5085935050505092915050565b612bc3816131fe565b82525050565b612bd281613241565b82525050565b612be181613265565b82525050565b6000612bf282613079565b612bfc81856130af565b9350612c0c818560208601613277565b612c1581613351565b840191505092915050565b6000612c2d6023836130af565b9150612c3882613362565b604082019050919050565b6000612c50602a836130af565b9150612c5b826133b1565b604082019050919050565b6000612c736026836130af565b9150612c7e82613400565b604082019050919050565b6000612c966022836130af565b9150612ca18261344f565b604082019050919050565b6000612cb9601b836130af565b9150612cc48261349e565b602082019050919050565b6000612cdc6013836130af565b9150612ce7826134c7565b602082019050919050565b6000612cff6021836130af565b9150612d0a826134f0565b604082019050919050565b6000612d226020836130af565b9150612d2d8261353f565b602082019050919050565b6000612d456029836130af565b9150612d5082613568565b604082019050919050565b6000612d686025836130af565b9150612d73826135b7565b604082019050919050565b6000612d8b6024836130af565b9150612d9682613606565b604082019050919050565b612daa8161322a565b82525050565b612db981613234565b82525050565b6000602082019050612dd46000830184612af0565b92915050565b60006040820190508181036000830152612df5818587612aff565b9050612e046020830184612bba565b949350505050565b6000602082019050612e216000830184612bba565b92915050565b6000602082019050612e3c6000830184612bc9565b92915050565b60006020820190508181036000830152612e5c8184612be7565b905092915050565b60006020820190508181036000830152612e7d81612c20565b9050919050565b60006020820190508181036000830152612e9d81612c43565b9050919050565b60006020820190508181036000830152612ebd81612c66565b9050919050565b60006020820190508181036000830152612edd81612c89565b9050919050565b60006020820190508181036000830152612efd81612cac565b9050919050565b60006020820190508181036000830152612f1d81612ccf565b9050919050565b60006020820190508181036000830152612f3d81612cf2565b9050919050565b60006020820190508181036000830152612f5d81612d15565b9050919050565b60006020820190508181036000830152612f7d81612d38565b9050919050565b60006020820190508181036000830152612f9d81612d5b565b9050919050565b60006020820190508181036000830152612fbd81612d7e565b9050919050565b6000602082019050612fd96000830184612da1565b92915050565b600060a082019050612ff46000830188612da1565b6130016020830187612bd8565b81810360408301526130138186612b5c565b90506130226060830185612af0565b61302f6080830184612da1565b9695505050505050565b600060208201905061304e6000830184612db0565b92915050565b6000819050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130cf6020840184612840565b905092915050565b60006130e28261322a565b91506130ed8361322a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613122576131216132f3565b5b828201905092915050565b60006131388261322a565b91506131438361322a565b92508261315357613152613322565b5b828204905092915050565b60006131698261322a565b91506131748361322a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ad576131ac6132f3565b5b828202905092915050565b60006131c38261322a565b91506131ce8361322a565b9250828210156131e1576131e06132f3565b5b828203905092915050565b60006131f78261320a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061324c82613253565b9050919050565b600061325e8261320a565b9050919050565b60006132708261322a565b9050919050565b60005b8381101561329557808201518184015260208101905061327a565b838111156132a4576000848401525b50505050565b60006132b58261322a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132e8576132e76132f3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61365e816131ec565b811461366957600080fd5b50565b613675816131fe565b811461368057600080fd5b50565b61368c8161322a565b811461369757600080fd5b50565b6136a381613234565b81146136ae57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206af6f799e19b4606195d1cfda3061f0002e02b328383dfc3cc505c66069d64d764736f6c63430008040033

Deployed Bytecode Sourcemap

16377:10271:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18736:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19588:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16467:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17643:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16752:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19013:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16653:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16708:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19757:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16830:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18922:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26127:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17691:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16791:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19116:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15796:148;;;;;;;;;;;;;:::i;:::-;;16595:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15154:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18827:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19262:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18592:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25872:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25493:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19437:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16099:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26372:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18736:83;18773:13;18806:5;;;;;;;;;;;;;;;;;18799:12;;18736:83;:::o;19588:161::-;19663:4;19680:39;19689:12;:10;:12::i;:::-;19703:7;19712:6;19680:8;:39::i;:::-;19737:4;19730:11;;19588:161;;;;:::o;16467:43::-;;;;;;;;;;;;;;;;;:::o;17643:41::-;;;;;;;;;;;;;:::o;16752:32::-;;;;;;;;;;;;;:::o;19013:95::-;19066:7;16955:26;19086:14;;19013:95;:::o;16653:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;16708:37::-;;;;;;;;;;;;;:::o;19757:313::-;19855:4;19872:36;19882:6;19890:9;19901:6;19872:9;:36::i;:::-;19919:121;19928:6;19936:12;:10;:12::i;:::-;19950:89;19988:6;19950:89;;;;;;;;;;;;;;;;;:11;:19;19962:6;19950:19;;;;;;;;;;;;;;;:33;19970:12;:10;:12::i;:::-;19950:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19919:8;:121::i;:::-;20058:4;20051:11;;19757:313;;;;;:::o;16830:28::-;;;;;;;;;;;;;:::o;18922:83::-;18963:5;17423:1;18981:16;;18922:83;:::o;26127:169::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26235:5:::1;26209:14;:23;26224:7;26209:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;26273:7;26256:32;;;26282:5;26256:32;;;;;;:::i;:::-;;;;;;;;26127:169:::0;;:::o;17691:28::-;;;;;;;;;;;;;:::o;16791:32::-;;;;:::o;19116:138::-;19182:7;19209:37;19229:7;:16;19237:7;19229:16;;;;;;;;;;;;;;;;19209:19;:37::i;:::-;19202:44;;19116:138;;;:::o;15796:148::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15903:1:::1;15866:40;;15887:6;::::0;::::1;;;;;;;;15866:40;;;;;;;;;;;;15934:1;15917:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15796:148::o:0;16595:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15154:79::-;15192:7;15219:6;;;;;;;;;;;15212:13;;15154:79;:::o;18827:87::-;18866:13;18899:7;;;;;;;;;;;;;;;;;18892:14;;18827:87;:::o;19262:167::-;19340:4;19357:42;19367:12;:10;:12::i;:::-;19381:9;19392:6;19357:9;:42::i;:::-;19417:4;19410:11;;19262:167;;;;:::o;18592:136::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18670:17:::1;;;;;;;;;;;18669:18;18661:27;;;::::0;::::1;;18713:7;18699:11;;:21;;;;;;;;;;;;;;;;;;18592:136:::0;:::o;25872:181::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25987:8:::1;25957:18;:27;25976:7;25957:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;26027:7;26011:34;;;26036:8;26011:34;;;;;;:::i;:::-;;;;;;;;25872:181:::0;;:::o;25493:301::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25610:9:::1;25606:114;25629:8;;:15;;25625:1;:19;25606:114;;;25700:8;25666:18;:31;25685:8;;25694:1;25685:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25666:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;25646:3;;;;;:::i;:::-;;;;25606:114;;;;25735:51;25767:8;;25777;25735:51;;;;;;;;:::i;:::-;;;;;;;;25493:301:::0;;;:::o;19437:143::-;19518:7;19545:11;:18;19557:5;19545:18;;;;;;;;;;;;;;;:27;19564:7;19545:27;;;;;;;;;;;;;;;;19538:34;;19437:143;;;;:::o;16099:244::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16208:1:::1;16188:22;;:8;:22;;;;16180:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16298:8;16269:38;;16290:6;::::0;::::1;;;;;;;;16269:38;;;;;;;;;;;;16327:8;16318:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16099:244:::0;:::o;26372:271::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26477:9:::1;26473:107;26496:8;;:15;;26492:1;:19;26473:107;;;26563:5;26533:14;:27;26548:8;;26557:1;26548:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26533:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;26513:3;;;;;:::i;:::-;;;;26473:107;;;;26595:40;26619:8;;26629:5;26595:40;;;;;;;;:::i;:::-;;;;;;;;26372:271:::0;;;:::o;3372:98::-;3425:7;3452:10;3445:17;;3372:98;:::o;20340:335::-;20450:1;20433:19;;:5;:19;;;;20425:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20531:1;20512:21;;:7;:21;;;;20504:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20613:6;20583:11;:18;20595:5;20583:18;;;;;;;;;;;;;;;:27;20602:7;20583:27;;;;;;;;;;;;;;;:36;;;;20651:7;20635:32;;20644:5;20635:32;;;20660:6;20635:32;;;;;;:::i;:::-;;;;;;;;20340:335;;;:::o;20683:2357::-;20787:1;20771:18;;:4;:18;;;;20763:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20864:1;20850:16;;:2;:16;;;;20842:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20934:1;20925:6;:10;20917:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21001:14;:20;21016:4;21001:20;;;;;;;;;;;;;;;;;;;;;;;;;21000:21;20992:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;21070:1;21058:9;:13;;;;21092:1;21082:7;:11;;;;21159:17;;;;;;;;;;;21154:245;;21203:13;;;;;;;;;;;21197:19;;:2;:19;;;21193:195;;;21257:4;21237:17;;:24;;;;;;;;;;;;;;;;;;21361:11;;;;;;;;;;;21346:26;;:12;:26;;;;:::i;:::-;21326:17;:46;;;;21193:195;21154:245;21439:17;;;;;;;;;;;:54;;;;;21476:17;;21460:12;:33;;21439:54;:72;;;;;21498:13;;;;;;;;;;;21497:14;21439:72;21436:338;;;21539:14;;21527:9;:26;;;;21578:12;;21568:7;:22;;;;21605:30;21620:4;21625:2;21628:6;21605:14;:30::i;:::-;21668:13;;;;;;;;;;;21654:28;;:2;:28;;;21650:92;;21722:4;21703:14;:18;21718:2;21703:18;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;21650:92;21756:7;;21436:338;21790:17;;;;;;;;;;;:34;;;;;21811:13;;;;;;;;;;;21790:34;21786:87;;;21856:5;21840:13;;:21;;;;;;;;;;;;;;;;;;21786:87;21905:7;:5;:7::i;:::-;21897:15;;:4;:15;;;;:32;;;;;21922:7;:5;:7::i;:::-;21916:13;;:2;:13;;;;21897:32;21893:1097;;;21960:28;21991:24;22009:4;21991:9;:24::i;:::-;21960:55;;22035:6;;;;;;;;;;;22034:7;:32;;;;;22053:13;;;;;;;;;;;22045:21;;:4;:21;;;;22034:32;:47;;;;;22070:11;;;;;;;;;;;22034:47;:75;;;;;22108:1;22085:20;:24;22034:75;22030:346;;;22130:38;22147:20;22130:16;:38::i;:::-;22187:26;22216:21;22187:50;;22280:1;22259:18;:22;22256:105;;;22306:35;22319:21;22306:12;:35::i;:::-;22256:105;22030:346;;22415:13;;;;;;;;;;;22407:21;;:4;:21;;;:55;;;;;22446:15;;;;;;;;;;;22432:30;;:2;:30;;;;22407:55;22404:162;;;22495:14;;22483:9;:26;;;;22538:12;;22528:7;:22;;;;22404:162;22596:13;;;;;;;;;;;22590:19;;:2;:19;;;:55;;;;;22629:15;;;;;;;;;;;22613:32;;:4;:32;;;;22590:55;22586:165;;;22678:15;;22666:9;:27;;;;22722:13;;22712:7;:23;;;;22586:165;22784:18;:24;22803:4;22784:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;22812:18;:22;22831:2;22812:22;;;;;;;;;;;;;;;;;;;;;;;;;22784:50;22783:102;;;;22848:13;;;;;;;;;;;22840:21;;:4;:21;;;;:44;;;;;22871:13;;;;;;;;;;;22865:19;;:2;:19;;;;22840:44;22783:102;22779:186;;;22918:1;22906:9;:13;;;;22948:1;22938:7;:11;;;;22779:186;21893:1097;;23002:30;23017:4;23022:2;23025:6;23002:14;:30::i;:::-;20683:2357;;;;:::o;5484:192::-;5570:7;5603:1;5598;:6;;5606:12;5590:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5630:9;5646:1;5642;:5;;;;:::i;:::-;5630:17;;5667:1;5660:8;;;5484:192;;;;;:::o;20078:254::-;20145:7;20184;;20173;:18;;20165:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20249:19;20272:10;:8;:10::i;:::-;20249:33;;20300:24;20312:11;20300:7;:11;;:24;;;;:::i;:::-;20293:31;;;20078:254;;;:::o;23818:146::-;23912:44;23930:6;23938:9;23949:6;23912:17;:44::i;:::-;23818:146;;;:::o;23048:483::-;17851:4;17842:6;;:13;;;;;;;;;;;;;;;;;;23126:21:::1;23164:1;23150:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23126:40;;23195:4;23177;23182:1;23177:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;23221:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23211:4;23216:1;23211:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;23254:62;23271:4;23286:15;;;;;;;;;;;23304:11;23254:8;:62::i;:::-;23327:15;;;;;;;;;;;:66;;;23408:11;23434:1;23450:4;23477;23497:15;23327:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17866:1;17887:5:::0;17878:6;;:14;;;;;;;;;;;;;;;;;;23048:483;:::o;23547:259::-;23604:17;23624:20;23642:1;23624:13;23635:1;23624:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;23604:40;;23655:21;23679;23690:9;23679:6;:10;;:21;;;;:::i;:::-;23655:45;;23711:17;;;;;;;;;;;:26;;:37;23738:9;23711:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23759:15;;;;;;;;;;;:24;;:39;23784:13;23759:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23547:259;;;:::o;24971:163::-;25012:7;25033:15;25050;25069:19;:17;:19::i;:::-;25032:56;;;;25106:20;25118:7;25106;:11;;:20;;;;:::i;:::-;25099:27;;;;24971:163;:::o;6882:132::-;6940:7;6967:39;6971:1;6974;6967:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6960:46;;6882:132;;;;:::o;23972:805::-;24070:19;24093:10;:8;:10::i;:::-;24070:33;;24114:23;24140:79;24189:29;24214:3;24189:20;24201:7;;24189;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;24140:44;24152:31;24179:3;24152:22;24164:9;;24152:7;:11;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;24140:7;:11;;:44;;;;:::i;:::-;:48;;:79;;;;:::i;:::-;24114:105;;24230:15;24248:24;24260:11;24248:7;:11;;:24;;;;:::i;:::-;24230:42;;24283:12;24298:48;24334:11;24298:31;24325:3;24298:22;24310:9;;24298:7;:11;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;:35;;:48;;;;:::i;:::-;24283:63;;24357:13;24373:46;24407:11;24373:29;24398:3;24373:20;24385:7;;24373;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;24357:62;;24430:23;24456:28;24478:5;24456:17;24468:4;24456:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;24430:54;;24513:28;24533:7;24513;:15;24521:6;24513:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24495:7;:15;24503:6;24495:15;;;;;;;;;;;;;;;:46;;;;24573:39;24596:15;24573:7;:18;24581:9;24573:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24552:7;:18;24560:9;24552:18;;;;;;;;;;;;;;;:60;;;;24648:33;24675:5;24648:7;:22;24664:4;24648:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;24623:7;:22;24639:4;24623:22;;;;;;;;;;;;;;;:58;;;;24692:17;24704:4;24692:11;:17::i;:::-;24742:9;24725:44;;24734:6;24725:44;;;24753:15;24725:44;;;;;;:::i;:::-;;;;;;;;23972:805;;;;;;;;;:::o;5935:471::-;5993:7;6243:1;6238;:6;6234:47;;;6268:1;6261:8;;;;6234:47;6293:9;6309:1;6305;:5;;;;:::i;:::-;6293:17;;6338:1;6333;6329;:5;;;;:::i;:::-;:10;6321:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6397:1;6390:8;;;5935:471;;;;;:::o;5045:136::-;5103:7;5130:43;5134:1;5137;5130:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5123:50;;5045:136;;;;:::o;25142:262::-;25192:7;25201;25221:15;25239:7;;25221:25;;25257:15;16955:26;25257:25;;25313:20;16955:26;25313:7;;:11;;:20;;;;:::i;:::-;25303:7;:30;25299:61;;;25343:7;;16955:26;25335:25;;;;;;;;25299:61;25379:7;25388;25371:25;;;;;;25142:262;;;:::o;7510:278::-;7596:7;7628:1;7624;:5;7631:12;7616:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7655:9;7671:1;7667;:5;;;;:::i;:::-;7655:17;;7779:1;7772:8;;;7510:278;;;;;:::o;4581:181::-;4639:7;4659:9;4675:1;4671;:5;;;;:::i;:::-;4659:17;;4700:1;4695;:6;;4687:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4753:1;4746:8;;;4581:181;;;;:::o;24840:89::-;24904:17;24916:4;24904:7;;:11;;:17;;;;:::i;:::-;24894:7;:27;;;;24840:89;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:367::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;691:133::-;734:5;772:6;759:20;750:29;;788:30;812:5;788:30;:::i;:::-;740:84;;;;:::o;830:139::-;876:5;914:6;901:20;892:29;;930:33;957:5;930:33;:::i;:::-;882:87;;;;:::o;975:135::-;1019:5;1057:6;1044:20;1035:29;;1073:31;1098:5;1073:31;:::i;:::-;1025:85;;;;:::o;1116:262::-;1175:6;1224:2;1212:9;1203:7;1199:23;1195:32;1192:2;;;1240:1;1237;1230:12;1192:2;1283:1;1308:53;1353:7;1344:6;1333:9;1329:22;1308:53;:::i;:::-;1298:63;;1254:117;1182:196;;;;:::o;1384:284::-;1454:6;1503:2;1491:9;1482:7;1478:23;1474:32;1471:2;;;1519:1;1516;1509:12;1471:2;1562:1;1587:64;1643:7;1634:6;1623:9;1619:22;1587:64;:::i;:::-;1577:74;;1533:128;1461:207;;;;:::o;1674:407::-;1742:6;1750;1799:2;1787:9;1778:7;1774:23;1770:32;1767:2;;;1815:1;1812;1805:12;1767:2;1858:1;1883:53;1928:7;1919:6;1908:9;1904:22;1883:53;:::i;:::-;1873:63;;1829:117;1985:2;2011:53;2056:7;2047:6;2036:9;2032:22;2011:53;:::i;:::-;2001:63;;1956:118;1757:324;;;;;:::o;2087:552::-;2164:6;2172;2180;2229:2;2217:9;2208:7;2204:23;2200:32;2197:2;;;2245:1;2242;2235:12;2197:2;2288:1;2313:53;2358:7;2349:6;2338:9;2334:22;2313:53;:::i;:::-;2303:63;;2259:117;2415:2;2441:53;2486:7;2477:6;2466:9;2462:22;2441:53;:::i;:::-;2431:63;;2386:118;2543:2;2569:53;2614:7;2605:6;2594:9;2590:22;2569:53;:::i;:::-;2559:63;;2514:118;2187:452;;;;;:::o;2645:401::-;2710:6;2718;2767:2;2755:9;2746:7;2742:23;2738:32;2735:2;;;2783:1;2780;2773:12;2735:2;2826:1;2851:53;2896:7;2887:6;2876:9;2872:22;2851:53;:::i;:::-;2841:63;;2797:117;2953:2;2979:50;3021:7;3012:6;3001:9;2997:22;2979:50;:::i;:::-;2969:60;;2924:115;2725:321;;;;;:::o;3052:407::-;3120:6;3128;3177:2;3165:9;3156:7;3152:23;3148:32;3145:2;;;3193:1;3190;3183:12;3145:2;3236:1;3261:53;3306:7;3297:6;3286:9;3282:22;3261:53;:::i;:::-;3251:63;;3207:117;3363:2;3389:53;3434:7;3425:6;3414:9;3410:22;3389:53;:::i;:::-;3379:63;;3334:118;3135:324;;;;;:::o;3465:564::-;3557:6;3565;3573;3622:2;3610:9;3601:7;3597:23;3593:32;3590:2;;;3638:1;3635;3628:12;3590:2;3709:1;3698:9;3694:17;3681:31;3739:18;3731:6;3728:30;3725:2;;;3771:1;3768;3761:12;3725:2;3807:80;3879:7;3870:6;3859:9;3855:22;3807:80;:::i;:::-;3789:98;;;;3652:245;3936:2;3962:50;4004:7;3995:6;3984:9;3980:22;3962:50;:::i;:::-;3952:60;;3907:115;3580:449;;;;;:::o;4035:258::-;4092:6;4141:2;4129:9;4120:7;4116:23;4112:32;4109:2;;;4157:1;4154;4147:12;4109:2;4200:1;4225:51;4268:7;4259:6;4248:9;4244:22;4225:51;:::i;:::-;4215:61;;4171:115;4099:194;;;;:::o;4299:179::-;4368:10;4389:46;4431:3;4423:6;4389:46;:::i;:::-;4467:4;4462:3;4458:14;4444:28;;4379:99;;;;:::o;4484:108::-;4561:24;4579:5;4561:24;:::i;:::-;4556:3;4549:37;4539:53;;:::o;4598:118::-;4685:24;4703:5;4685:24;:::i;:::-;4680:3;4673:37;4663:53;;:::o;4752:699::-;4881:3;4904:86;4983:6;4978:3;4904:86;:::i;:::-;4897:93;;5014:58;5066:5;5014:58;:::i;:::-;5095:7;5126:1;5111:315;5136:6;5133:1;5130:13;5111:315;;;5206:42;5241:6;5232:7;5206:42;:::i;:::-;5268:63;5327:3;5312:13;5268:63;:::i;:::-;5261:70;;5354:62;5409:6;5354:62;:::i;:::-;5344:72;;5171:255;5158:1;5155;5151:9;5146:14;;5111:315;;;5115:14;5442:3;5435:10;;4886:565;;;;;;;:::o;5487:732::-;5606:3;5635:54;5683:5;5635:54;:::i;:::-;5705:86;5784:6;5779:3;5705:86;:::i;:::-;5698:93;;5815:56;5865:5;5815:56;:::i;:::-;5894:7;5925:1;5910:284;5935:6;5932:1;5929:13;5910:284;;;6011:6;6005:13;6038:63;6097:3;6082:13;6038:63;:::i;:::-;6031:70;;6124:60;6177:6;6124:60;:::i;:::-;6114:70;;5970:224;5957:1;5954;5950:9;5945:14;;5910:284;;;5914:14;6210:3;6203:10;;5611:608;;;;;;;:::o;6225:109::-;6306:21;6321:5;6306:21;:::i;:::-;6301:3;6294:34;6284:50;;:::o;6340:183::-;6453:63;6510:5;6453:63;:::i;:::-;6448:3;6441:76;6431:92;;:::o;6529:147::-;6624:45;6663:5;6624:45;:::i;:::-;6619:3;6612:58;6602:74;;:::o;6682:364::-;6770:3;6798:39;6831:5;6798:39;:::i;:::-;6853:71;6917:6;6912:3;6853:71;:::i;:::-;6846:78;;6933:52;6978:6;6973:3;6966:4;6959:5;6955:16;6933:52;:::i;:::-;7010:29;7032:6;7010:29;:::i;:::-;7005:3;7001:39;6994:46;;6774:272;;;;;:::o;7052:366::-;7194:3;7215:67;7279:2;7274:3;7215:67;:::i;:::-;7208:74;;7291:93;7380:3;7291:93;:::i;:::-;7409:2;7404:3;7400:12;7393:19;;7198:220;;;:::o;7424:366::-;7566:3;7587:67;7651:2;7646:3;7587:67;:::i;:::-;7580:74;;7663:93;7752:3;7663:93;:::i;:::-;7781:2;7776:3;7772:12;7765:19;;7570:220;;;:::o;7796:366::-;7938:3;7959:67;8023:2;8018:3;7959:67;:::i;:::-;7952:74;;8035:93;8124:3;8035:93;:::i;:::-;8153:2;8148:3;8144:12;8137:19;;7942:220;;;:::o;8168:366::-;8310:3;8331:67;8395:2;8390:3;8331:67;:::i;:::-;8324:74;;8407:93;8496:3;8407:93;:::i;:::-;8525:2;8520:3;8516:12;8509:19;;8314:220;;;:::o;8540:366::-;8682:3;8703:67;8767:2;8762:3;8703:67;:::i;:::-;8696:74;;8779:93;8868:3;8779:93;:::i;:::-;8897:2;8892:3;8888:12;8881:19;;8686:220;;;:::o;8912:366::-;9054:3;9075:67;9139:2;9134:3;9075:67;:::i;:::-;9068:74;;9151:93;9240:3;9151:93;:::i;:::-;9269:2;9264:3;9260:12;9253:19;;9058:220;;;:::o;9284:366::-;9426:3;9447:67;9511:2;9506:3;9447:67;:::i;:::-;9440:74;;9523:93;9612:3;9523:93;:::i;:::-;9641:2;9636:3;9632:12;9625:19;;9430:220;;;:::o;9656:366::-;9798:3;9819:67;9883:2;9878:3;9819:67;:::i;:::-;9812:74;;9895:93;9984:3;9895:93;:::i;:::-;10013:2;10008:3;10004:12;9997:19;;9802:220;;;:::o;10028:366::-;10170:3;10191:67;10255:2;10250:3;10191:67;:::i;:::-;10184:74;;10267:93;10356:3;10267:93;:::i;:::-;10385:2;10380:3;10376:12;10369:19;;10174:220;;;:::o;10400:366::-;10542:3;10563:67;10627:2;10622:3;10563:67;:::i;:::-;10556:74;;10639:93;10728:3;10639:93;:::i;:::-;10757:2;10752:3;10748:12;10741:19;;10546:220;;;:::o;10772:366::-;10914:3;10935:67;10999:2;10994:3;10935:67;:::i;:::-;10928:74;;11011:93;11100:3;11011:93;:::i;:::-;11129:2;11124:3;11120:12;11113:19;;10918:220;;;:::o;11144:118::-;11231:24;11249:5;11231:24;:::i;:::-;11226:3;11219:37;11209:53;;:::o;11268:112::-;11351:22;11367:5;11351:22;:::i;:::-;11346:3;11339:35;11329:51;;:::o;11386:222::-;11479:4;11517:2;11506:9;11502:18;11494:26;;11530:71;11598:1;11587:9;11583:17;11574:6;11530:71;:::i;:::-;11484:124;;;;:::o;11614:491::-;11789:4;11827:2;11816:9;11812:18;11804:26;;11876:9;11870:4;11866:20;11862:1;11851:9;11847:17;11840:47;11904:118;12017:4;12008:6;12000;11904:118;:::i;:::-;11896:126;;12032:66;12094:2;12083:9;12079:18;12070:6;12032:66;:::i;:::-;11794:311;;;;;;:::o;12111:210::-;12198:4;12236:2;12225:9;12221:18;12213:26;;12249:65;12311:1;12300:9;12296:17;12287:6;12249:65;:::i;:::-;12203:118;;;;:::o;12327:274::-;12446:4;12484:2;12473:9;12469:18;12461:26;;12497:97;12591:1;12580:9;12576:17;12567:6;12497:97;:::i;:::-;12451:150;;;;:::o;12607:313::-;12720:4;12758:2;12747:9;12743:18;12735:26;;12807:9;12801:4;12797:20;12793:1;12782:9;12778:17;12771:47;12835:78;12908:4;12899:6;12835:78;:::i;:::-;12827:86;;12725:195;;;;:::o;12926:419::-;13092:4;13130:2;13119:9;13115:18;13107:26;;13179:9;13173:4;13169:20;13165:1;13154:9;13150:17;13143:47;13207:131;13333:4;13207:131;:::i;:::-;13199:139;;13097:248;;;:::o;13351:419::-;13517:4;13555:2;13544:9;13540:18;13532:26;;13604:9;13598:4;13594:20;13590:1;13579:9;13575:17;13568:47;13632:131;13758:4;13632:131;:::i;:::-;13624:139;;13522:248;;;:::o;13776:419::-;13942:4;13980:2;13969:9;13965:18;13957:26;;14029:9;14023:4;14019:20;14015:1;14004:9;14000:17;13993:47;14057:131;14183:4;14057:131;:::i;:::-;14049:139;;13947:248;;;:::o;14201:419::-;14367:4;14405:2;14394:9;14390:18;14382:26;;14454:9;14448:4;14444:20;14440:1;14429:9;14425:17;14418:47;14482:131;14608:4;14482:131;:::i;:::-;14474:139;;14372:248;;;:::o;14626:419::-;14792:4;14830:2;14819:9;14815:18;14807:26;;14879:9;14873:4;14869:20;14865:1;14854:9;14850:17;14843:47;14907:131;15033:4;14907:131;:::i;:::-;14899:139;;14797:248;;;:::o;15051:419::-;15217:4;15255:2;15244:9;15240:18;15232:26;;15304:9;15298:4;15294:20;15290:1;15279:9;15275:17;15268:47;15332:131;15458:4;15332:131;:::i;:::-;15324:139;;15222:248;;;:::o;15476:419::-;15642:4;15680:2;15669:9;15665:18;15657:26;;15729:9;15723:4;15719:20;15715:1;15704:9;15700:17;15693:47;15757:131;15883:4;15757:131;:::i;:::-;15749:139;;15647:248;;;:::o;15901:419::-;16067:4;16105:2;16094:9;16090:18;16082:26;;16154:9;16148:4;16144:20;16140:1;16129:9;16125:17;16118:47;16182:131;16308:4;16182:131;:::i;:::-;16174:139;;16072:248;;;:::o;16326:419::-;16492:4;16530:2;16519:9;16515:18;16507:26;;16579:9;16573:4;16569:20;16565:1;16554:9;16550:17;16543:47;16607:131;16733:4;16607:131;:::i;:::-;16599:139;;16497:248;;;:::o;16751:419::-;16917:4;16955:2;16944:9;16940:18;16932:26;;17004:9;16998:4;16994:20;16990:1;16979:9;16975:17;16968:47;17032:131;17158:4;17032:131;:::i;:::-;17024:139;;16922:248;;;:::o;17176:419::-;17342:4;17380:2;17369:9;17365:18;17357:26;;17429:9;17423:4;17419:20;17415:1;17404:9;17400:17;17393:47;17457:131;17583:4;17457:131;:::i;:::-;17449:139;;17347:248;;;:::o;17601:222::-;17694:4;17732:2;17721:9;17717:18;17709:26;;17745:71;17813:1;17802:9;17798:17;17789:6;17745:71;:::i;:::-;17699:124;;;;:::o;17829:831::-;18092:4;18130:3;18119:9;18115:19;18107:27;;18144:71;18212:1;18201:9;18197:17;18188:6;18144:71;:::i;:::-;18225:80;18301:2;18290:9;18286:18;18277:6;18225:80;:::i;:::-;18352:9;18346:4;18342:20;18337:2;18326:9;18322:18;18315:48;18380:108;18483:4;18474:6;18380:108;:::i;:::-;18372:116;;18498:72;18566:2;18555:9;18551:18;18542:6;18498:72;:::i;:::-;18580:73;18648:3;18637:9;18633:19;18624:6;18580:73;:::i;:::-;18097:563;;;;;;;;:::o;18666:214::-;18755:4;18793:2;18782:9;18778:18;18770:26;;18806:67;18870:1;18859:9;18855:17;18846:6;18806:67;:::i;:::-;18760:120;;;;:::o;18886:102::-;18955:4;18978:3;18970:11;;18960:28;;;:::o;18994:132::-;19061:4;19084:3;19076:11;;19114:4;19109:3;19105:14;19097:22;;19066:60;;;:::o;19132:114::-;19199:6;19233:5;19227:12;19217:22;;19206:40;;;:::o;19252:99::-;19304:6;19338:5;19332:12;19322:22;;19311:40;;;:::o;19357:115::-;19429:4;19461;19456:3;19452:14;19444:22;;19434:38;;;:::o;19478:113::-;19548:4;19580;19575:3;19571:14;19563:22;;19553:38;;;:::o;19597:184::-;19696:11;19730:6;19725:3;19718:19;19770:4;19765:3;19761:14;19746:29;;19708:73;;;;:::o;19787:169::-;19871:11;19905:6;19900:3;19893:19;19945:4;19940:3;19936:14;19921:29;;19883:73;;;;:::o;19962:122::-;20014:5;20039:39;20074:2;20069:3;20065:12;20060:3;20039:39;:::i;:::-;20030:48;;20020:64;;;;:::o;20090:305::-;20130:3;20149:20;20167:1;20149:20;:::i;:::-;20144:25;;20183:20;20201:1;20183:20;:::i;:::-;20178:25;;20337:1;20269:66;20265:74;20262:1;20259:81;20256:2;;;20343:18;;:::i;:::-;20256:2;20387:1;20384;20380:9;20373:16;;20134:261;;;;:::o;20401:185::-;20441:1;20458:20;20476:1;20458:20;:::i;:::-;20453:25;;20492:20;20510:1;20492:20;:::i;:::-;20487:25;;20531:1;20521:2;;20536:18;;:::i;:::-;20521:2;20578:1;20575;20571:9;20566:14;;20443:143;;;;:::o;20592:348::-;20632:7;20655:20;20673:1;20655:20;:::i;:::-;20650:25;;20689:20;20707:1;20689:20;:::i;:::-;20684:25;;20877:1;20809:66;20805:74;20802:1;20799:81;20794:1;20787:9;20780:17;20776:105;20773:2;;;20884:18;;:::i;:::-;20773:2;20932:1;20929;20925:9;20914:20;;20640:300;;;;:::o;20946:191::-;20986:4;21006:20;21024:1;21006:20;:::i;:::-;21001:25;;21040:20;21058:1;21040:20;:::i;:::-;21035:25;;21079:1;21076;21073:8;21070:2;;;21084:18;;:::i;:::-;21070:2;21129:1;21126;21122:9;21114:17;;20991:146;;;;:::o;21143:96::-;21180:7;21209:24;21227:5;21209:24;:::i;:::-;21198:35;;21188:51;;;:::o;21245:90::-;21279:7;21322:5;21315:13;21308:21;21297:32;;21287:48;;;:::o;21341:126::-;21378:7;21418:42;21411:5;21407:54;21396:65;;21386:81;;;:::o;21473:77::-;21510:7;21539:5;21528:16;;21518:32;;;:::o;21556:86::-;21591:7;21631:4;21624:5;21620:16;21609:27;;21599:43;;;:::o;21648:178::-;21724:9;21757:63;21814:5;21757:63;:::i;:::-;21744:76;;21734:92;;;:::o;21832:139::-;21908:9;21941:24;21959:5;21941:24;:::i;:::-;21928:37;;21918:53;;;:::o;21977:121::-;22035:9;22068:24;22086:5;22068:24;:::i;:::-;22055:37;;22045:53;;;:::o;22104:307::-;22172:1;22182:113;22196:6;22193:1;22190:13;22182:113;;;22281:1;22276:3;22272:11;22266:18;22262:1;22257:3;22253:11;22246:39;22218:2;22215:1;22211:10;22206:15;;22182:113;;;22313:6;22310:1;22307:13;22304:2;;;22393:1;22384:6;22379:3;22375:16;22368:27;22304:2;22153:258;;;;:::o;22417:233::-;22456:3;22479:24;22497:5;22479:24;:::i;:::-;22470:33;;22525:66;22518:5;22515:77;22512:2;;;22595:18;;:::i;:::-;22512:2;22642:1;22635:5;22631:13;22624:20;;22460:190;;;:::o;22656:180::-;22704:77;22701:1;22694:88;22801:4;22798:1;22791:15;22825:4;22822:1;22815:15;22842:180;22890:77;22887:1;22880:88;22987:4;22984:1;22977:15;23011:4;23008:1;23001:15;23028:102;23069:6;23120:2;23116:7;23111:2;23104:5;23100:14;23096:28;23086:38;;23076:54;;;:::o;23136:222::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:5;23340:2;23332:6;23328:15;23321:30;23242:116;:::o;23364:229::-;23504:34;23500:1;23492:6;23488:14;23481:58;23573:12;23568:2;23560:6;23556:15;23549:37;23470:123;:::o;23599:225::-;23739:34;23735:1;23727:6;23723:14;23716:58;23808:8;23803:2;23795:6;23791:15;23784:33;23705:119;:::o;23830:221::-;23970:34;23966:1;23958:6;23954:14;23947:58;24039:4;24034:2;24026:6;24022:15;24015:29;23936:115;:::o;24057:177::-;24197:29;24193:1;24185:6;24181:14;24174:53;24163:71;:::o;24240:169::-;24380:21;24376:1;24368:6;24364:14;24357:45;24346:63;:::o;24415:220::-;24555:34;24551:1;24543:6;24539:14;24532:58;24624:3;24619:2;24611:6;24607:15;24600:28;24521:114;:::o;24641:182::-;24781:34;24777:1;24769:6;24765:14;24758:58;24747:76;:::o;24829:228::-;24969:34;24965:1;24957:6;24953:14;24946:58;25038:11;25033:2;25025:6;25021:15;25014:36;24935:122;:::o;25063:224::-;25203:34;25199:1;25191:6;25187:14;25180:58;25272:7;25267:2;25259:6;25255:15;25248:32;25169:118;:::o;25293:223::-;25433:34;25429:1;25421:6;25417:14;25410:58;25502:6;25497:2;25489:6;25485:15;25478:31;25399:117;:::o;25522:122::-;25595:24;25613:5;25595:24;:::i;:::-;25588:5;25585:35;25575:2;;25634:1;25631;25624:12;25575:2;25565:79;:::o;25650:116::-;25720:21;25735:5;25720:21;:::i;:::-;25713:5;25710:32;25700:2;;25756:1;25753;25746:12;25700:2;25690:76;:::o;25772:122::-;25845:24;25863:5;25845:24;:::i;:::-;25838:5;25835:35;25825:2;;25884:1;25881;25874:12;25825:2;25815:79;:::o;25900:118::-;25971:22;25987:5;25971:22;:::i;:::-;25964:5;25961:33;25951:2;;26008:1;26005;25998:12;25951:2;25941:77;:::o

Swarm Source

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