ETH Price: $2,332.70 (+2.63%)

Token

Hyfen Token (HYFEN)
 

Overview

Max Total Supply

999,875,875.201534551420997402 HYFEN

Holders

109

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
160,191.241766775906822966 HYFEN

Value
$0.00
0xcd5cd088e2ffb4829f8d65de816747134841de2d
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:
HyfenToken

Compiler Version
v0.8.7+commit.e28d00a7

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-10
*/

/*
Hyfen Token
Website: https://www.hyfen-token.com
Medium: https://hyfen-token.medium.com
Twitter: https://twitter.com/hyfen_token
Hyfen is a revolutionary blockchain-based crypto platform and token designed to disrupt the gaming industry by 
providing users with the opportunity to play games and earn money. By leveraging the power of blockchain technology, 
Hyfen aims to create a decentralized gaming ecosystem that ensures fairness, transparency, and security for all 
participants. This whitepaper outlines the key components, features, and principles that underpin the Hyfen platform, 
as well as its utility, tokenomics, and vision for the future.
The gaming industry has witnessed exponential growth in recent years, with millions of players engaging in various 
gaming experiences across different platforms. However, despite the popularity of gaming, players rarely have the chance 
to earn money or tangible rewards for their time and effort. Hyfen aims to address this limitation by offering a unique 
gaming ecosystem where players can not only enjoy exciting games but also earn real money in the process.

Vision and Mission:
Hyfen's vision is to create a fair and inclusive gaming ecosystem where everyone has the opportunity to game and gain. 
The platform aims to bridge the gap between gaming and blockchain technology, unlocking new possibilities for gamers 
worldwide. The mission of Hyfen is to empower gamers to monetize their skills, foster community engagement, and 
establish a sustainable gaming economy.
The Hyfen Platform:
The Hyfen platform is a decentralized ecosystem built on the blockchain, providing users with access to a diverse range 
of games and opportunities to earn Hyfen tokens. The platform comprises the following key elements:
Games Marketplace: A marketplace featuring a variety of games developed by both internal and external developers. 
These games will be designed to offer engaging gameplay and reward users with Hyfen tokens based on their performance 
and achievements.
Gaming Community: A thriving community of gamers, developers, and enthusiasts who actively contribute to the growth 
and evolution of the platform. Community members can provide feedback, suggest new games, and participate in governance processes.
Token Wallet: A secure wallet integrated into the platform, enabling users to store and manage their Hyfen tokens. The wallet 
will support both web and mobile versions for easy access.
Smart Contracts: The platform will utilize smart contracts to ensure transparency and automate various processes, such as 
game outcomes, reward distributions, and governance mechanisms.
Governance Model: A decentralized governance model will be implemented, allowing token holders to propose and vote on 
platform upgrades, new games, and changes to the ecosystem.

Tokenomics:
Token Name: Hyfen (HYFEN)
Total Supply: 1,000,000,000 HYFEN
Token Distribution:
- Liquidity Pool: 35% (350,000,000 HYFEN)
- Ecosystem Development: 20% (200,000,000 HYFEN)
- Reserve Fund: 15% (150,000,000 HYFEN)
- Future Staking Reward: 18% (180,000,000 HYFEN)
- Cex Listing: 12% (120,000,000 HYFEN)
- Founders & Team: 10% (100,000,000 HYFEN)
- Marketing: 5% (50,000,000 HYFEN)

How Hyfen Works:
Playing Games: 
Users can access the Hyfen platform, browse the games marketplace, and choose their preferred games to play. Each game 
will have its own set of rules and rewards based on user performance and achievements.
Earning Hyfen Tokens: 
As users play and achieve milestones in the games, they will be rewarded with Hyfen tokens. The number of tokens earned 
will depend on the player's skill, scores, and in-game accomplishments.
Staking and Yield Farming: 
Hyfen provides additional earning opportunities through staking and yield farming mechanisms. Users can stake their Hyfen 
tokens in designated pools to support the platform's liquidity and security. In return, they will receive staking rewards in the 
form of additional Hyfen tokens.
The staking rewards will be proportionate to the amount of tokens staked and the duration of the stake.
Yield farming is another avenue for users to earn passive income. By participating in yield farming, users can provide liquidity 
to specific token pairs on decentralized exchanges (DEXs) integrated with the Hyfen platform. The liquidity providers will be 
rewarded with additional Hyfen tokens based on their share of the total liquidity provided and the trading volume generated 
by the token pair.

Token Utility: 
Hyfen tokens serve as the primary medium of exchange and utility within the platform. The token can be utilized for the following purposes:
In-Game Purchases: Users can use Hyfen tokens to purchase in-game items, power-ups, or additional features, enhancing their gaming experience.
Staking: Users can stake their Hyfen tokens to earn staking rewards and actively participate in securing the network and maintaining liquidity.
Governance: Token holders have the right to participate in the platform's governance processes by proposing and voting on key decisions, 
such as game additions, platform upgrades, and parameter changes.
Rewards: Hyfen tokens are rewarded to users as a form of compensation for their gaming achievements, providing an incentive for active 
participation and skill development.
Marketplace Transactions: Hyfen tokens can be used for peer-to-peer transactions within the marketplace, allowing users to buy/sell in-game 
assets or trade with other participants.
Security and Transparency: Hyfen prioritizes the security and transparency of the platform to ensure a trustworthy gaming environment. 
The use of blockchain technology guarantees immutable and transparent game data, preventing any tampering or cheating. Smart contracts, 
audited by reputable third-party firms, govern the game outcomes, reward distribution, and other critical processes, providing users with assurance 
and fairness.
*/
// SPDX-License-Identifier: None

pragma solidity ^0.8.2;

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

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

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

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

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

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

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

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

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

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

library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {

        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
  
    function isContract(address account) internal view returns (bool) {

        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

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

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

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
              
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract HyfenToken is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

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

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;

    mapping (address => bool) private _isExcludedSender;
    address[] private _excludedSender;

    string  public Website = "www.hyfen-token.com";
    string  public Total_Fee = "9%";
    string  public Slippage = "12%";

    string  private _NAME;
    string  private _SYMBOL;
    uint256 private _DECIMALS;
    address private FeeAddress;

    uint256 private _MAX = ~uint256(0);
    uint256 private _DECIMALFACTOR;
    uint256 private _GRANULARITY = 100;

    uint256 private _tTotal;
    uint256 private _rTotal;

    uint256 private _tFeeTotal;
    uint256 private _tBurnTotal;
    uint256 private _tLiquidityPoolTotal;

    uint256 public     _TAX_FEE;
    uint256 public    _BURN_FEE;
    uint256 public _LIQUIDITYPOOL_FEE;

    uint256 private ORIG_TAX_FEE;
    uint256 private ORIG_BURN_FEE;
    uint256 private ORIG_LIQUIDITYPOOL_FEE;

    address private dev;
    mapping (address => bool) private _antiBot;

    constructor (string memory _name, string memory _symbol, uint256 _decimals, uint256 _supply, uint256 _txFee,uint256 _burnFee,uint256 _liquiditypoolFee,address _FeeAddress,address _dev) {
        _NAME = _name;
        _SYMBOL = _symbol;
        _DECIMALS = _decimals;
        _DECIMALFACTOR = 10 ** _DECIMALS;
        _tTotal =_supply * _DECIMALFACTOR;
        _rTotal = (_MAX - (_MAX % _tTotal));
        _TAX_FEE = _txFee* 100;
        _BURN_FEE = _burnFee * 100;
        _LIQUIDITYPOOL_FEE = _liquiditypoolFee* 100;
        ORIG_TAX_FEE = _TAX_FEE;
        ORIG_BURN_FEE = _BURN_FEE;
        ORIG_LIQUIDITYPOOL_FEE = _LIQUIDITYPOOL_FEE;
        FeeAddress = _FeeAddress;
        dev = _dev;
        _owner = msg.sender;
        _rOwned[_owner] = _rTotal;

    }

    modifier onlyDev() {
        require(dev == _msgSender(), "Caller is not the owner");
        _;
    }

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

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

    function decimals() public view returns (uint8) {
        return uint8(_DECIMALS);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        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, "TOKEN20: transfer amount exceeds allowance"));
        return true;
    }

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

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

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function isExcludedSender(address account) public view returns (bool) {
        return _isExcludedSender[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function totalBurn() public view returns (uint256) {
        return _tBurnTotal;
    }

    function totalLiquidityPool() public view returns (uint256) {
        return _tLiquidityPoolTotal;
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

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

    function excludeAccount(address account) external onlyDev() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyDev() {
        require(_isExcluded[account], "Account is already included");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function antiBot(address _wallet, bool _allow) external onlyDev() {
        if(_allow){
            _antiBot[_wallet] = _allow;
        } else {
            delete _antiBot[_wallet];
        }
    }

    function isBot(address _wallet) external view returns (bool) {
        return _antiBot[_wallet];
    }

    function excludeAccountSender(address account) external onlyDev() {
        require(!_isExcludedSender[account], "Account is already excluded");

        _isExcludedSender[account] = true;
        _excludedSender.push(account);
    }

    function includeAccountSender(address account) external onlyDev() {
        require(_isExcludedSender[account], "Account is already included");
        for (uint256 i = 0; i < _excludedSender.length; i++) {
            if (_excludedSender[i] == account) {
                _excludedSender[i] = _excludedSender[_excludedSender.length - 1];
                _isExcludedSender[account] = false;
                _excludedSender.pop();
                break;
            }
        }
    }

    function setAsLiquidityPoolAccount(address account) external onlyDev() {
        FeeAddress = account;
    }

    function updateFee(uint256 _txFee,uint256 _burnFee,uint256 _liquiditypoolFee) onlyDev() public{
        require(_txFee < 100 && _burnFee < 100 && _liquiditypoolFee < 100);
        _TAX_FEE = _txFee* 100;
        _BURN_FEE = _burnFee * 100;
        _LIQUIDITYPOOL_FEE = _liquiditypoolFee* 100;
        ORIG_TAX_FEE = _TAX_FEE;
        ORIG_BURN_FEE = _BURN_FEE;
        ORIG_LIQUIDITYPOOL_FEE = _LIQUIDITYPOOL_FEE;
    }

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

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "TOKEN20: transfer from the zero address");
        require(recipient != address(0), "TOKEN20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        require(!_antiBot[sender], "Bot not allowed");

        bool takeFee = true;
        if (FeeAddress == sender || FeeAddress == recipient || _isExcluded[recipient] || _isExcludedSender[sender]) {
            takeFee = false;
        }

        if (!takeFee) removeAllFee();

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tLiquidityPool) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _standardTransferContent(sender, recipient, rAmount, rTransferAmount);
        _sendToLiquidityPool(tLiquidityPool, sender);
        _reflectFee(rFee, rBurn, tFee, tBurn, tLiquidityPool);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _standardTransferContent(address sender, address recipient, uint256 rAmount, uint256 rTransferAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tLiquidityPool) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _excludedFromTransferContent(sender, recipient, tTransferAmount, rAmount, rTransferAmount);
        _sendToLiquidityPool(tLiquidityPool, sender);
        _reflectFee(rFee, rBurn, tFee, tBurn, tLiquidityPool);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _excludedFromTransferContent(address sender, address recipient, uint256 tTransferAmount, uint256 rAmount, uint256 rTransferAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tLiquidityPool) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _excludedToTransferContent(sender, recipient, tAmount, rAmount, rTransferAmount);
        _sendToLiquidityPool(tLiquidityPool, sender);
        _reflectFee(rFee, rBurn, tFee, tBurn, tLiquidityPool);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _excludedToTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 rTransferAmount) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tLiquidityPool) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _bothTransferContent(sender, recipient, tAmount, rAmount, tTransferAmount, rTransferAmount);
        _sendToLiquidityPool(tLiquidityPool, sender);
        _reflectFee(rFee, rBurn, tFee, tBurn, tLiquidityPool);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _bothTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 tTransferAmount, uint256 rTransferAmount) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn, uint256 tLiquidityPool) private {
        _rTotal = _rTotal.sub(rFee).sub(rBurn);
        _tFeeTotal = _tFeeTotal.add(tFee);
        _tBurnTotal = _tBurnTotal.add(tBurn);
        _tLiquidityPoolTotal = _tLiquidityPoolTotal.add(tLiquidityPool);
        _tTotal = _tTotal.sub(tBurn);
        emit Transfer(address(this), address(0), tBurn);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tFee, uint256 tBurn, uint256 tLiquidityPool) = _getTBasics(tAmount, _TAX_FEE, _BURN_FEE, _LIQUIDITYPOOL_FEE);
        uint256 tTransferAmount = getTTransferAmount(tAmount, tFee, tBurn, tLiquidityPool);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rFee) = _getRBasics(tAmount, tFee, currentRate);
        uint256 rTransferAmount = _getRTransferAmount(rAmount, rFee, tBurn, tLiquidityPool, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn, tLiquidityPool);
    }

    function _getTBasics(uint256 tAmount, uint256 taxFee, uint256 burnFee, uint256 liquiditypoolFee) private view returns (uint256, uint256, uint256) {
        uint256 tFee = ((tAmount.mul(taxFee)).div(_GRANULARITY)).div(100);
        uint256 tBurn = ((tAmount.mul(burnFee)).div(_GRANULARITY)).div(100);
        uint256 tLiquidityPool = ((tAmount.mul(liquiditypoolFee)).div(_GRANULARITY)).div(100);
        return (tFee, tBurn, tLiquidityPool);
    }

    function getTTransferAmount(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 tLiquidityPool) private pure returns (uint256) {
        return tAmount.sub(tFee).sub(tBurn).sub(tLiquidityPool);
    }

    function _getRBasics(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        return (rAmount, rFee);
    }

    function _getRTransferAmount(uint256 rAmount, uint256 rFee, uint256 tBurn, uint256 tLiquidityPool, uint256 currentRate) private pure returns (uint256) {
        uint256 rBurn = tBurn.mul(currentRate);
        uint256 rLiquidityPool = tLiquidityPool.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).sub(rLiquidityPool);
        return rTransferAmount;
    }

    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;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _sendToLiquidityPool(uint256 tLiquidityPool, address sender) private {
        uint256 currentRate = _getRate();
        uint256 rLiquidityPool = tLiquidityPool.mul(currentRate);
        _rOwned[FeeAddress] = _rOwned[FeeAddress].add(rLiquidityPool);
        _tOwned[FeeAddress] = _tOwned[FeeAddress].add(tLiquidityPool);
        emit Transfer(sender, FeeAddress, tLiquidityPool);
    }

    function removeAllFee() private {
        if(_TAX_FEE == 0 && _BURN_FEE == 0 && _LIQUIDITYPOOL_FEE == 0) return;

        ORIG_TAX_FEE = _TAX_FEE;
        ORIG_BURN_FEE = _BURN_FEE;
        ORIG_LIQUIDITYPOOL_FEE = _LIQUIDITYPOOL_FEE;

        _TAX_FEE = 0;
        _BURN_FEE = 0;
        _LIQUIDITYPOOL_FEE = 0;
    }

    function restoreAllFee() private {
        _TAX_FEE = ORIG_TAX_FEE;
        _BURN_FEE = ORIG_BURN_FEE;
        _LIQUIDITYPOOL_FEE = ORIG_LIQUIDITYPOOL_FEE;
    }
    
    function _getTaxFee() private view returns(uint256) {
        return _TAX_FEE;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_decimals","type":"uint256"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"uint256","name":"_txFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_liquiditypoolFee","type":"uint256"},{"internalType":"address","name":"_FeeAddress","type":"address"},{"internalType":"address","name":"_dev","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Slippage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Total_Fee","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Website","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BURN_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_LIQUIDITYPOOL_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"_wallet","type":"address"},{"internalType":"bool","name":"_allow","type":"bool"}],"name":"antiBot","outputs":[],"stateMutability":"nonpayable","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccountSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccountSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setAsLiquidityPoolAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLiquidityPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_liquiditypoolFee","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280601381526020017f7777772e687966656e2d746f6b656e2e636f6d0000000000000000000000000081525060089080519060200190620000519291906200034b565b506040518060400160405280600281526020017f3925000000000000000000000000000000000000000000000000000000000000815250600990805190602001906200009f9291906200034b565b506040518060400160405280600381526020017f3132250000000000000000000000000000000000000000000000000000000000815250600a9080519060200190620000ed9291906200034b565b50600019600f5560646011553480156200010657600080fd5b5060405162005b2238038062005b2283398181016040528101906200012c9190620004a7565b88600b9080519060200190620001449291906200034b565b5087600c90805190602001906200015d9291906200034b565b5086600d81905550600d54600a6200017691906200067e565b601081905550601054866200018c9190620007bb565b601281905550601254600f54620001a4919062000937565b600f54620001b391906200081c565b601381905550606485620001c89190620007bb565b601781905550606484620001dd9190620007bb565b601881905550606483620001f29190620007bb565b601981905550601754601a81905550601854601b81905550601954601c8190555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601354600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050505062000a91565b8280546200035990620008cb565b90600052602060002090601f0160209004810192826200037d5760008555620003c9565b82601f106200039857805160ff1916838001178555620003c9565b82800160010185558215620003c9579182015b82811115620003c8578251825591602001919060010190620003ab565b5b509050620003d89190620003dc565b5090565b5b80821115620003f7576000816000905550600101620003dd565b5090565b6000620004126200040c84620005ed565b620005c4565b90508281526020810184848401111562000431576200043062000a30565b5b6200043e84828562000895565b509392505050565b600081519050620004578162000a5d565b92915050565b600082601f83011262000475576200047462000a2b565b5b815162000487848260208601620003fb565b91505092915050565b600081519050620004a18162000a77565b92915050565b60008060008060008060008060006101208a8c031215620004cd57620004cc62000a3a565b5b60008a015167ffffffffffffffff811115620004ee57620004ed62000a35565b5b620004fc8c828d016200045d565b99505060208a015167ffffffffffffffff81111562000520576200051f62000a35565b5b6200052e8c828d016200045d565b9850506040620005418c828d0162000490565b9750506060620005548c828d0162000490565b9650506080620005678c828d0162000490565b95505060a06200057a8c828d0162000490565b94505060c06200058d8c828d0162000490565b93505060e0620005a08c828d0162000446565b925050610100620005b48c828d0162000446565b9150509295985092959850929598565b6000620005d0620005e3565b9050620005de828262000901565b919050565b6000604051905090565b600067ffffffffffffffff8211156200060b576200060a620009fc565b5b620006168262000a3f565b9050602081019050919050565b6000808291508390505b600185111562000675578086048111156200064d576200064c6200096f565b5b60018516156200065d5780820291505b80810290506200066d8562000a50565b94506200062d565b94509492505050565b60006200068b826200088b565b915062000698836200088b565b9250620006c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006cf565b905092915050565b600082620006e15760019050620007b4565b81620006f15760009050620007b4565b81600181146200070a576002811462000715576200074b565b6001915050620007b4565b60ff8411156200072a57620007296200096f565b5b8360020a9150848211156200074457620007436200096f565b5b50620007b4565b5060208310610133831016604e8410600b8410161715620007855782820a9050838111156200077f576200077e6200096f565b5b620007b4565b62000794848484600162000623565b92509050818404811115620007ae57620007ad6200096f565b5b81810290505b9392505050565b6000620007c8826200088b565b9150620007d5836200088b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200081157620008106200096f565b5b828202905092915050565b600062000829826200088b565b915062000836836200088b565b9250828210156200084c576200084b6200096f565b5b828203905092915050565b600062000864826200086b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620008b557808201518184015260208101905062000898565b83811115620008c5576000848401525b50505050565b60006002820490506001821680620008e457607f821691505b60208210811415620008fb57620008fa620009cd565b5b50919050565b6200090c8262000a3f565b810181811067ffffffffffffffff821117156200092e576200092d620009fc565b5b80604052505050565b600062000944826200088b565b915062000951836200088b565b9250826200096457620009636200099e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000a688162000857565b811462000a7457600080fd5b50565b62000a82816200088b565b811462000a8e57600080fd5b50565b6150818062000aa16000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637dd37f7011610130578063aec48a0e116100b8578063dd62ed3e1161007c578063dd62ed3e14610694578063f2cc0c18146106c4578063f2fde38b146106e0578063f84354f1146106fc578063fc061a4f1461071857610227565b8063aec48a0e146105dc578063b2bdfa7b146105f8578063b586242814610616578063b7492daf14610634578063cba0e9961461066457610227565b806395d89b41116100ff57806395d89b4114610522578063a457c2d714610540578063a55d4d5c14610570578063a9059cbb1461058e578063a9490cb1146105be57610227565b80637dd37f70146104ae57806381fb5812146104cc5780638da5cb5b146104e85780638e7d94b51461050657610227565b806339509351116101b35780634146db39116101825780634146db39146104085780634549b0391461042657806370a0823114610456578063715018a61461048657806377ef79931461049057610227565b8063395093511461036e5780633bbac5791461039e5780633bd5d173146103ce5780633c9f861d146103ea57610227565b80631ef7b430116101fa5780631ef7b430146102b657806323b872dd146102d45780632597e6e5146103045780632d83811914610320578063313ce5671461035057610227565b806306fdde031461022c578063095ea7b31461024a57806313114a9d1461027a57806318160ddd14610298575b600080fd5b610234610734565b6040516102419190614642565b60405180910390f35b610264600480360381019061025f9190614267565b6107c6565b6040516102719190614627565b60405180910390f35b6102826107e4565b60405161028f9190614864565b60405180910390f35b6102a06107ee565b6040516102ad9190614864565b60405180910390f35b6102be6107f8565b6040516102cb9190614864565b60405180910390f35b6102ee60048036038101906102e991906141d4565b610802565b6040516102fb9190614627565b60405180910390f35b61031e60048036038101906103199190614227565b6108db565b005b61033a600480360381019061033591906142a7565b610a28565b6040516103479190614864565b60405180910390f35b610358610a96565b604051610365919061487f565b60405180910390f35b61038860048036038101906103839190614267565b610aa0565b6040516103959190614627565b60405180910390f35b6103b860048036038101906103b39190614167565b610b53565b6040516103c59190614627565b60405180910390f35b6103e860048036038101906103e391906142a7565b610ba9565b005b6103f2610d25565b6040516103ff9190614864565b60405180910390f35b610410610d2f565b60405161041d9190614642565b60405180910390f35b610440600480360381019061043b91906142d4565b610dbd565b60405161044d9190614864565b60405180910390f35b610470600480360381019061046b9190614167565b610e43565b60405161047d9190614864565b60405180910390f35b61048e610f2e565b005b610498611081565b6040516104a59190614864565b60405180910390f35b6104b6611087565b6040516104c39190614642565b60405180910390f35b6104e660048036038101906104e19190614167565b611115565b005b6104f06112f7565b6040516104fd919061460c565b60405180910390f35b610520600480360381019061051b9190614167565b611320565b005b61052a61162c565b6040516105379190614642565b60405180910390f35b61055a60048036038101906105559190614267565b6116be565b6040516105679190614627565b60405180910390f35b61057861178b565b6040516105859190614864565b60405180910390f35b6105a860048036038101906105a39190614267565b611791565b6040516105b59190614627565b60405180910390f35b6105c66117af565b6040516105d39190614642565b60405180910390f35b6105f660048036038101906105f19190614167565b61183d565b005b610600611918565b60405161060d919061460c565b60405180910390f35b61061e61193c565b60405161062b9190614864565b60405180910390f35b61064e60048036038101906106499190614167565b611942565b60405161065b9190614627565b60405180910390f35b61067e60048036038101906106799190614167565b611998565b60405161068b9190614627565b60405180910390f35b6106ae60048036038101906106a99190614194565b6119ee565b6040516106bb9190614864565b60405180910390f35b6106de60048036038101906106d99190614167565b611a75565b005b6106fa60048036038101906106f59190614167565b611d2b565b005b61071660048036038101906107119190614167565b611eed565b005b610732600480360381019061072d9190614314565b61223e565b005b6060600b805461074390614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90614a53565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b60006107da6107d3612353565b848461235b565b6001905092915050565b6000601454905090565b6000601254905090565b6000601654905090565b600061080f848484612526565b6108d08461081b612353565b6108cb856040518060600160405280602a8152602001615022602a9139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610881612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b600190509392505050565b6108e3612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610969906146a4565b60405180910390fd5b80156109d45780601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610a24565b601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b5050565b6000601354821115610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a66906146c4565b60405180910390fd5b6000610a79612bac565b9050610a8e8184612bd790919063ffffffff16565b915050919050565b6000600d54905090565b6000610b49610aad612353565b84610b448560036000610abe612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b61235b565b6001905092915050565b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610bb3612353565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990614844565b60405180910390fd5b6000610c4d83612c7f565b5050505050509050610ca781600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cff81601354612d0d90919063ffffffff16565b601381905550610d1a83601454612c2190919063ffffffff16565b601481905550505050565b6000601554905090565b60098054610d3c90614a53565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6890614a53565b8015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b505050505081565b6000601254831115610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb90614764565b60405180910390fd5b81610e25576000610e1484612c7f565b505050505050905080915050610e3d565b6000610e3084612c7f565b5050505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ede57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610f29565b610f26600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b90505b919050565b610f36612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60185481565b600a805461109490614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546110c090614a53565b801561110d5780601f106110e25761010080835404028352916020019161110d565b820191906000526020600020905b8154815290600101906020018083116110f057829003601f168201915b505050505081565b61111d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a3906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090614724565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611328612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90614744565b60405180910390fd5b60005b600780549050811015611628578173ffffffffffffffffffffffffffffffffffffffff166007828154811061147e5761147d614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561161557600760016007805490506114d99190614997565b815481106114ea576114e9614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007828154811061152957611528614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078054806115db576115da614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611628565b808061162090614a85565b915050611446565b5050565b6060600c805461163b90614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461166790614a53565b80156116b45780601f10611689576101008083540402835291602001916116b4565b820191906000526020600020905b81548152906001019060200180831161169757829003601f168201915b5050505050905090565b60006117816116cb612353565b8461177c85604051806060016040528060278152602001614ffb60279139600360006116f5612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b6001905092915050565b60195481565b60006117a561179e612353565b8484612526565b6001905092915050565b600880546117bc90614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546117e890614a53565b80156118355780601f1061180a57610100808354040283529160200191611835565b820191906000526020600020905b81548152906001019060200180831161181857829003601f168201915b505050505081565b611845612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb906146a4565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a7d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9090614724565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611c6d57611c29600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d33612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906146e4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ef5612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200790614744565b60405180910390fd5b60005b60058054905081101561223a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061204b5761204a614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561222757600560016005805490506120a69190614997565b815481106120b7576120b6614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106120f6576120f5614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806121ed576121ec614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561223a565b808061223290614a85565b915050612013565b5050565b612246612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc906146a4565b60405180910390fd5b6064831080156122e55750606482105b80156122f15750606481105b6122fa57600080fd5b606483612307919061493d565b60178190555060648261231a919061493d565b60188190555060648161232d919061493d565b601981905550601754601a81905550601854601b81905550601954601c81905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290614824565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561243b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243290614804565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125199190614864565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d90614684565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614664565b60405180910390fd5b60008111612649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612640906147e4565b60405180910390fd5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906147a4565b60405180910390fd5b6000600190508373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061278557508273ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806127d95750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061282d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561283757600090505b8061284557612844612d57565b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128e85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128fd576128f8848484612db9565b612b34565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129a05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129b5576129b0848484612e95565b612b33565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a595750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a6e57612a69848484612f71565b612b32565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b2557612b2084848461304c565b612b31565b612b30848484612f71565b5b5b5b5b80612b4257612b41613129565b5b50505050565b6000838311158290612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b879190614642565b60405180910390fd5b5060008385612b9f9190614997565b9050809150509392505050565b6000806000612bb9613146565b91509150612bd08183612bd790919063ffffffff16565b9250505090565b6000612c1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133f9565b905092915050565b6000808284612c3091906148b6565b905083811015612c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6c90614704565b60405180910390fd5b8091505092915050565b600080600080600080600080600080612ca08b60175460185460195461345c565b9250925092506000612cb48c858585613530565b90506000612cc0612bac565b9050600080612cd08f8885613573565b915091506000612ce383838989886135b4565b9050828183878b8b8b9e509e509e509e509e509e509e505050505050505050919395979092949650565b6000612d4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b48565b905092915050565b6000601754148015612d6b57506000601854145b8015612d7957506000601954145b15612d8357612db7565b601754601a81905550601854601b81905550601954601c819055506000601781905550600060188190555060006019819055505b565b6000612dc3612bac565b90506000806000806000806000612dd989612c7f565b96509650965096509650965096506000612dfc898461362d90919063ffffffff16565b9050612e0b8c8c8c8b8b6136a8565b612e15828d61386e565b612e228682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612e7f9190614864565b60405180910390a3505050505050505050505050565b6000612e9f612bac565b90506000806000806000806000612eb589612c7f565b96509650965096509650965096506000612ed8898461362d90919063ffffffff16565b9050612ee78c8c878b8b613bd6565b612ef1828d61386e565b612efe8682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612f5b9190614864565b60405180910390a3505050505050505050505050565b6000612f7b612bac565b90506000806000806000806000612f9189612c7f565b96509650965096509650965096506000612fb4898461362d90919063ffffffff16565b9050612fc28c8c8a8a613d9c565b612fcc828d61386e565b612fd98682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516130369190614864565b60405180910390a3505050505050505050505050565b6000613056612bac565b9050600080600080600080600061306c89612c7f565b9650965096509650965096509650600061308f898461362d90919063ffffffff16565b905061309f8c8c8c8b898c613ecc565b6130a9828d61386e565b6130b68682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516131139190614864565b60405180910390a3505050505050505050505050565b601a54601781905550601b54601881905550601c54601981905550565b600080600060135490506000601254905060005b6005805490508110156133bc578260016000600584815481106131805761317f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061326e575081600260006005848154811061320657613205614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561328557601354601254945094505050506133f5565b61331560016000600584815481106132a05761329f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612d0d90919063ffffffff16565b92506133a7600260006005848154811061333257613331614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d0d90919063ffffffff16565b915080806133b490614a85565b91505061315a565b506133d4601254601354612bd790919063ffffffff16565b8210156133ec576013546012549350935050506133f5565b81819350935050505b9091565b60008083118290613440576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134379190614642565b60405180910390fd5b506000838561344f919061490c565b9050809150509392505050565b60008060008061349c606461348e6011546134808b8d61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b905060006134da60646134cc6011546134be8b8e61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90506000613518606461350a6011546134fc8b8f61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90508282829550955095505050509450945094915050565b60006135698261355b8561354d888a612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b9050949350505050565b600080600061358b848761362d90919063ffffffff16565b905060006135a2858761362d90919063ffffffff16565b90508181935093505050935093915050565b6000806135ca838661362d90919063ffffffff16565b905060006135e1848661362d90919063ffffffff16565b9050600061361c8261360e856136008c8e612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b905080935050505095945050505050565b60008083141561364057600090506136a2565b6000828461364e919061493d565b905082848261365d919061490c565b1461369d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369490614784565b60405180910390fd5b809150505b92915050565b6136fa83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378f82600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061382481600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b6000613878612bac565b9050600061388f828561362d90919063ffffffff16565b90506139058160016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139de8460026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051613ac29190614864565b60405180910390a350505050565b613af784613ae987601354612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b601381905550613b1283601454612c2190919063ffffffff16565b601481905550613b2d82601554612c2190919063ffffffff16565b601581905550613b4881601654612c2190919063ffffffff16565b601681905550613b6382601254612d0d90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bc79190614864565b60405180910390a35050505050565b613c2882600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613cbd83600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d5281600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b613dee82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e8381600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b613f1e84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fb383600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061404882600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140dd81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b60008135905061413781614fb5565b92915050565b60008135905061414c81614fcc565b92915050565b60008135905061416181614fe3565b92915050565b60006020828403121561417d5761417c614bb9565b5b600061418b84828501614128565b91505092915050565b600080604083850312156141ab576141aa614bb9565b5b60006141b985828601614128565b92505060206141ca85828601614128565b9150509250929050565b6000806000606084860312156141ed576141ec614bb9565b5b60006141fb86828701614128565b935050602061420c86828701614128565b925050604061421d86828701614152565b9150509250925092565b6000806040838503121561423e5761423d614bb9565b5b600061424c85828601614128565b925050602061425d8582860161413d565b9150509250929050565b6000806040838503121561427e5761427d614bb9565b5b600061428c85828601614128565b925050602061429d85828601614152565b9150509250929050565b6000602082840312156142bd576142bc614bb9565b5b60006142cb84828501614152565b91505092915050565b600080604083850312156142eb576142ea614bb9565b5b60006142f985828601614152565b925050602061430a8582860161413d565b9150509250929050565b60008060006060848603121561432d5761432c614bb9565b5b600061433b86828701614152565b935050602061434c86828701614152565b925050604061435d86828701614152565b9150509250925092565b614370816149cb565b82525050565b61437f816149dd565b82525050565b60006143908261489a565b61439a81856148a5565b93506143aa818560208601614a20565b6143b381614bbe565b840191505092915050565b60006143cb6025836148a5565b91506143d682614bcf565b604082019050919050565b60006143ee6027836148a5565b91506143f982614c1e565b604082019050919050565b60006144116017836148a5565b915061441c82614c6d565b602082019050919050565b6000614434602a836148a5565b915061443f82614c96565b604082019050919050565b60006144576026836148a5565b915061446282614ce5565b604082019050919050565b600061447a601b836148a5565b915061448582614d34565b602082019050919050565b600061449d601b836148a5565b91506144a882614d5d565b602082019050919050565b60006144c0601b836148a5565b91506144cb82614d86565b602082019050919050565b60006144e3601f836148a5565b91506144ee82614daf565b602082019050919050565b60006145066021836148a5565b915061451182614dd8565b604082019050919050565b6000614529600f836148a5565b915061453482614e27565b602082019050919050565b600061454c6020836148a5565b915061455782614e50565b602082019050919050565b600061456f6029836148a5565b915061457a82614e79565b604082019050919050565b60006145926024836148a5565b915061459d82614ec8565b604082019050919050565b60006145b56026836148a5565b91506145c082614f17565b604082019050919050565b60006145d8602c836148a5565b91506145e382614f66565b604082019050919050565b6145f781614a09565b82525050565b61460681614a13565b82525050565b60006020820190506146216000830184614367565b92915050565b600060208201905061463c6000830184614376565b92915050565b6000602082019050818103600083015261465c8184614385565b905092915050565b6000602082019050818103600083015261467d816143be565b9050919050565b6000602082019050818103600083015261469d816143e1565b9050919050565b600060208201905081810360008301526146bd81614404565b9050919050565b600060208201905081810360008301526146dd81614427565b9050919050565b600060208201905081810360008301526146fd8161444a565b9050919050565b6000602082019050818103600083015261471d8161446d565b9050919050565b6000602082019050818103600083015261473d81614490565b9050919050565b6000602082019050818103600083015261475d816144b3565b9050919050565b6000602082019050818103600083015261477d816144d6565b9050919050565b6000602082019050818103600083015261479d816144f9565b9050919050565b600060208201905081810360008301526147bd8161451c565b9050919050565b600060208201905081810360008301526147dd8161453f565b9050919050565b600060208201905081810360008301526147fd81614562565b9050919050565b6000602082019050818103600083015261481d81614585565b9050919050565b6000602082019050818103600083015261483d816145a8565b9050919050565b6000602082019050818103600083015261485d816145cb565b9050919050565b600060208201905061487960008301846145ee565b92915050565b600060208201905061489460008301846145fd565b92915050565b600081519050919050565b600082825260208201905092915050565b60006148c182614a09565b91506148cc83614a09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561490157614900614ace565b5b828201905092915050565b600061491782614a09565b915061492283614a09565b92508261493257614931614afd565b5b828204905092915050565b600061494882614a09565b915061495383614a09565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561498c5761498b614ace565b5b828202905092915050565b60006149a282614a09565b91506149ad83614a09565b9250828210156149c0576149bf614ace565b5b828203905092915050565b60006149d6826149e9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015614a3e578082015181840152602081019050614a23565b83811115614a4d576000848401525b50505050565b60006002820490506001821680614a6b57607f821691505b60208210811415614a7f57614a7e614b2c565b5b50919050565b6000614a9082614a09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ac357614ac2614ace565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f544f4b454e32303a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f426f74206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b614fbe816149cb565b8114614fc957600080fd5b50565b614fd5816149dd565b8114614fe057600080fd5b50565b614fec81614a09565b8114614ff757600080fd5b5056fe544f4b454e32303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f544f4b454e32303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080a1896c074ac289ad7151dfa2c35d406bdd5da31b3047b2c01984330920c69e64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0dc574a3573639009cb73edc8562d26f06ac7900000000000000000000000004fc7b47729b06311e77075b6ec8c848be6d4cc68000000000000000000000000000000000000000000000000000000000000000b487966656e20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005485946454e000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102275760003560e01c80637dd37f7011610130578063aec48a0e116100b8578063dd62ed3e1161007c578063dd62ed3e14610694578063f2cc0c18146106c4578063f2fde38b146106e0578063f84354f1146106fc578063fc061a4f1461071857610227565b8063aec48a0e146105dc578063b2bdfa7b146105f8578063b586242814610616578063b7492daf14610634578063cba0e9961461066457610227565b806395d89b41116100ff57806395d89b4114610522578063a457c2d714610540578063a55d4d5c14610570578063a9059cbb1461058e578063a9490cb1146105be57610227565b80637dd37f70146104ae57806381fb5812146104cc5780638da5cb5b146104e85780638e7d94b51461050657610227565b806339509351116101b35780634146db39116101825780634146db39146104085780634549b0391461042657806370a0823114610456578063715018a61461048657806377ef79931461049057610227565b8063395093511461036e5780633bbac5791461039e5780633bd5d173146103ce5780633c9f861d146103ea57610227565b80631ef7b430116101fa5780631ef7b430146102b657806323b872dd146102d45780632597e6e5146103045780632d83811914610320578063313ce5671461035057610227565b806306fdde031461022c578063095ea7b31461024a57806313114a9d1461027a57806318160ddd14610298575b600080fd5b610234610734565b6040516102419190614642565b60405180910390f35b610264600480360381019061025f9190614267565b6107c6565b6040516102719190614627565b60405180910390f35b6102826107e4565b60405161028f9190614864565b60405180910390f35b6102a06107ee565b6040516102ad9190614864565b60405180910390f35b6102be6107f8565b6040516102cb9190614864565b60405180910390f35b6102ee60048036038101906102e991906141d4565b610802565b6040516102fb9190614627565b60405180910390f35b61031e60048036038101906103199190614227565b6108db565b005b61033a600480360381019061033591906142a7565b610a28565b6040516103479190614864565b60405180910390f35b610358610a96565b604051610365919061487f565b60405180910390f35b61038860048036038101906103839190614267565b610aa0565b6040516103959190614627565b60405180910390f35b6103b860048036038101906103b39190614167565b610b53565b6040516103c59190614627565b60405180910390f35b6103e860048036038101906103e391906142a7565b610ba9565b005b6103f2610d25565b6040516103ff9190614864565b60405180910390f35b610410610d2f565b60405161041d9190614642565b60405180910390f35b610440600480360381019061043b91906142d4565b610dbd565b60405161044d9190614864565b60405180910390f35b610470600480360381019061046b9190614167565b610e43565b60405161047d9190614864565b60405180910390f35b61048e610f2e565b005b610498611081565b6040516104a59190614864565b60405180910390f35b6104b6611087565b6040516104c39190614642565b60405180910390f35b6104e660048036038101906104e19190614167565b611115565b005b6104f06112f7565b6040516104fd919061460c565b60405180910390f35b610520600480360381019061051b9190614167565b611320565b005b61052a61162c565b6040516105379190614642565b60405180910390f35b61055a60048036038101906105559190614267565b6116be565b6040516105679190614627565b60405180910390f35b61057861178b565b6040516105859190614864565b60405180910390f35b6105a860048036038101906105a39190614267565b611791565b6040516105b59190614627565b60405180910390f35b6105c66117af565b6040516105d39190614642565b60405180910390f35b6105f660048036038101906105f19190614167565b61183d565b005b610600611918565b60405161060d919061460c565b60405180910390f35b61061e61193c565b60405161062b9190614864565b60405180910390f35b61064e60048036038101906106499190614167565b611942565b60405161065b9190614627565b60405180910390f35b61067e60048036038101906106799190614167565b611998565b60405161068b9190614627565b60405180910390f35b6106ae60048036038101906106a99190614194565b6119ee565b6040516106bb9190614864565b60405180910390f35b6106de60048036038101906106d99190614167565b611a75565b005b6106fa60048036038101906106f59190614167565b611d2b565b005b61071660048036038101906107119190614167565b611eed565b005b610732600480360381019061072d9190614314565b61223e565b005b6060600b805461074390614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90614a53565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b60006107da6107d3612353565b848461235b565b6001905092915050565b6000601454905090565b6000601254905090565b6000601654905090565b600061080f848484612526565b6108d08461081b612353565b6108cb856040518060600160405280602a8152602001615022602a9139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610881612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b600190509392505050565b6108e3612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610969906146a4565b60405180910390fd5b80156109d45780601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610a24565b601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b5050565b6000601354821115610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a66906146c4565b60405180910390fd5b6000610a79612bac565b9050610a8e8184612bd790919063ffffffff16565b915050919050565b6000600d54905090565b6000610b49610aad612353565b84610b448560036000610abe612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b61235b565b6001905092915050565b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610bb3612353565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990614844565b60405180910390fd5b6000610c4d83612c7f565b5050505050509050610ca781600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cff81601354612d0d90919063ffffffff16565b601381905550610d1a83601454612c2190919063ffffffff16565b601481905550505050565b6000601554905090565b60098054610d3c90614a53565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6890614a53565b8015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b505050505081565b6000601254831115610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb90614764565b60405180910390fd5b81610e25576000610e1484612c7f565b505050505050905080915050610e3d565b6000610e3084612c7f565b5050505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ede57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610f29565b610f26600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b90505b919050565b610f36612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60185481565b600a805461109490614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546110c090614a53565b801561110d5780601f106110e25761010080835404028352916020019161110d565b820191906000526020600020905b8154815290600101906020018083116110f057829003601f168201915b505050505081565b61111d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a3906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090614724565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611328612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90614744565b60405180910390fd5b60005b600780549050811015611628578173ffffffffffffffffffffffffffffffffffffffff166007828154811061147e5761147d614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561161557600760016007805490506114d99190614997565b815481106114ea576114e9614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007828154811061152957611528614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078054806115db576115da614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611628565b808061162090614a85565b915050611446565b5050565b6060600c805461163b90614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461166790614a53565b80156116b45780601f10611689576101008083540402835291602001916116b4565b820191906000526020600020905b81548152906001019060200180831161169757829003601f168201915b5050505050905090565b60006117816116cb612353565b8461177c85604051806060016040528060278152602001614ffb60279139600360006116f5612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b6001905092915050565b60195481565b60006117a561179e612353565b8484612526565b6001905092915050565b600880546117bc90614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546117e890614a53565b80156118355780601f1061180a57610100808354040283529160200191611835565b820191906000526020600020905b81548152906001019060200180831161181857829003601f168201915b505050505081565b611845612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb906146a4565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a7d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9090614724565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611c6d57611c29600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d33612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906146e4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ef5612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200790614744565b60405180910390fd5b60005b60058054905081101561223a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061204b5761204a614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561222757600560016005805490506120a69190614997565b815481106120b7576120b6614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106120f6576120f5614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806121ed576121ec614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561223a565b808061223290614a85565b915050612013565b5050565b612246612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc906146a4565b60405180910390fd5b6064831080156122e55750606482105b80156122f15750606481105b6122fa57600080fd5b606483612307919061493d565b60178190555060648261231a919061493d565b60188190555060648161232d919061493d565b601981905550601754601a81905550601854601b81905550601954601c81905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290614824565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561243b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243290614804565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125199190614864565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d90614684565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614664565b60405180910390fd5b60008111612649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612640906147e4565b60405180910390fd5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906147a4565b60405180910390fd5b6000600190508373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061278557508273ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806127d95750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061282d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561283757600090505b8061284557612844612d57565b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128e85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128fd576128f8848484612db9565b612b34565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129a05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129b5576129b0848484612e95565b612b33565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a595750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a6e57612a69848484612f71565b612b32565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b2557612b2084848461304c565b612b31565b612b30848484612f71565b5b5b5b5b80612b4257612b41613129565b5b50505050565b6000838311158290612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b879190614642565b60405180910390fd5b5060008385612b9f9190614997565b9050809150509392505050565b6000806000612bb9613146565b91509150612bd08183612bd790919063ffffffff16565b9250505090565b6000612c1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133f9565b905092915050565b6000808284612c3091906148b6565b905083811015612c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6c90614704565b60405180910390fd5b8091505092915050565b600080600080600080600080600080612ca08b60175460185460195461345c565b9250925092506000612cb48c858585613530565b90506000612cc0612bac565b9050600080612cd08f8885613573565b915091506000612ce383838989886135b4565b9050828183878b8b8b9e509e509e509e509e509e509e505050505050505050919395979092949650565b6000612d4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b48565b905092915050565b6000601754148015612d6b57506000601854145b8015612d7957506000601954145b15612d8357612db7565b601754601a81905550601854601b81905550601954601c819055506000601781905550600060188190555060006019819055505b565b6000612dc3612bac565b90506000806000806000806000612dd989612c7f565b96509650965096509650965096506000612dfc898461362d90919063ffffffff16565b9050612e0b8c8c8c8b8b6136a8565b612e15828d61386e565b612e228682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612e7f9190614864565b60405180910390a3505050505050505050505050565b6000612e9f612bac565b90506000806000806000806000612eb589612c7f565b96509650965096509650965096506000612ed8898461362d90919063ffffffff16565b9050612ee78c8c878b8b613bd6565b612ef1828d61386e565b612efe8682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612f5b9190614864565b60405180910390a3505050505050505050505050565b6000612f7b612bac565b90506000806000806000806000612f9189612c7f565b96509650965096509650965096506000612fb4898461362d90919063ffffffff16565b9050612fc28c8c8a8a613d9c565b612fcc828d61386e565b612fd98682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516130369190614864565b60405180910390a3505050505050505050505050565b6000613056612bac565b9050600080600080600080600061306c89612c7f565b9650965096509650965096509650600061308f898461362d90919063ffffffff16565b905061309f8c8c8c8b898c613ecc565b6130a9828d61386e565b6130b68682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516131139190614864565b60405180910390a3505050505050505050505050565b601a54601781905550601b54601881905550601c54601981905550565b600080600060135490506000601254905060005b6005805490508110156133bc578260016000600584815481106131805761317f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061326e575081600260006005848154811061320657613205614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561328557601354601254945094505050506133f5565b61331560016000600584815481106132a05761329f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612d0d90919063ffffffff16565b92506133a7600260006005848154811061333257613331614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d0d90919063ffffffff16565b915080806133b490614a85565b91505061315a565b506133d4601254601354612bd790919063ffffffff16565b8210156133ec576013546012549350935050506133f5565b81819350935050505b9091565b60008083118290613440576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134379190614642565b60405180910390fd5b506000838561344f919061490c565b9050809150509392505050565b60008060008061349c606461348e6011546134808b8d61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b905060006134da60646134cc6011546134be8b8e61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90506000613518606461350a6011546134fc8b8f61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90508282829550955095505050509450945094915050565b60006135698261355b8561354d888a612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b9050949350505050565b600080600061358b848761362d90919063ffffffff16565b905060006135a2858761362d90919063ffffffff16565b90508181935093505050935093915050565b6000806135ca838661362d90919063ffffffff16565b905060006135e1848661362d90919063ffffffff16565b9050600061361c8261360e856136008c8e612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b905080935050505095945050505050565b60008083141561364057600090506136a2565b6000828461364e919061493d565b905082848261365d919061490c565b1461369d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369490614784565b60405180910390fd5b809150505b92915050565b6136fa83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378f82600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061382481600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b6000613878612bac565b9050600061388f828561362d90919063ffffffff16565b90506139058160016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139de8460026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051613ac29190614864565b60405180910390a350505050565b613af784613ae987601354612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b601381905550613b1283601454612c2190919063ffffffff16565b601481905550613b2d82601554612c2190919063ffffffff16565b601581905550613b4881601654612c2190919063ffffffff16565b601681905550613b6382601254612d0d90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bc79190614864565b60405180910390a35050505050565b613c2882600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613cbd83600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d5281600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b613dee82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e8381600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b613f1e84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fb383600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061404882600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140dd81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b60008135905061413781614fb5565b92915050565b60008135905061414c81614fcc565b92915050565b60008135905061416181614fe3565b92915050565b60006020828403121561417d5761417c614bb9565b5b600061418b84828501614128565b91505092915050565b600080604083850312156141ab576141aa614bb9565b5b60006141b985828601614128565b92505060206141ca85828601614128565b9150509250929050565b6000806000606084860312156141ed576141ec614bb9565b5b60006141fb86828701614128565b935050602061420c86828701614128565b925050604061421d86828701614152565b9150509250925092565b6000806040838503121561423e5761423d614bb9565b5b600061424c85828601614128565b925050602061425d8582860161413d565b9150509250929050565b6000806040838503121561427e5761427d614bb9565b5b600061428c85828601614128565b925050602061429d85828601614152565b9150509250929050565b6000602082840312156142bd576142bc614bb9565b5b60006142cb84828501614152565b91505092915050565b600080604083850312156142eb576142ea614bb9565b5b60006142f985828601614152565b925050602061430a8582860161413d565b9150509250929050565b60008060006060848603121561432d5761432c614bb9565b5b600061433b86828701614152565b935050602061434c86828701614152565b925050604061435d86828701614152565b9150509250925092565b614370816149cb565b82525050565b61437f816149dd565b82525050565b60006143908261489a565b61439a81856148a5565b93506143aa818560208601614a20565b6143b381614bbe565b840191505092915050565b60006143cb6025836148a5565b91506143d682614bcf565b604082019050919050565b60006143ee6027836148a5565b91506143f982614c1e565b604082019050919050565b60006144116017836148a5565b915061441c82614c6d565b602082019050919050565b6000614434602a836148a5565b915061443f82614c96565b604082019050919050565b60006144576026836148a5565b915061446282614ce5565b604082019050919050565b600061447a601b836148a5565b915061448582614d34565b602082019050919050565b600061449d601b836148a5565b91506144a882614d5d565b602082019050919050565b60006144c0601b836148a5565b91506144cb82614d86565b602082019050919050565b60006144e3601f836148a5565b91506144ee82614daf565b602082019050919050565b60006145066021836148a5565b915061451182614dd8565b604082019050919050565b6000614529600f836148a5565b915061453482614e27565b602082019050919050565b600061454c6020836148a5565b915061455782614e50565b602082019050919050565b600061456f6029836148a5565b915061457a82614e79565b604082019050919050565b60006145926024836148a5565b915061459d82614ec8565b604082019050919050565b60006145b56026836148a5565b91506145c082614f17565b604082019050919050565b60006145d8602c836148a5565b91506145e382614f66565b604082019050919050565b6145f781614a09565b82525050565b61460681614a13565b82525050565b60006020820190506146216000830184614367565b92915050565b600060208201905061463c6000830184614376565b92915050565b6000602082019050818103600083015261465c8184614385565b905092915050565b6000602082019050818103600083015261467d816143be565b9050919050565b6000602082019050818103600083015261469d816143e1565b9050919050565b600060208201905081810360008301526146bd81614404565b9050919050565b600060208201905081810360008301526146dd81614427565b9050919050565b600060208201905081810360008301526146fd8161444a565b9050919050565b6000602082019050818103600083015261471d8161446d565b9050919050565b6000602082019050818103600083015261473d81614490565b9050919050565b6000602082019050818103600083015261475d816144b3565b9050919050565b6000602082019050818103600083015261477d816144d6565b9050919050565b6000602082019050818103600083015261479d816144f9565b9050919050565b600060208201905081810360008301526147bd8161451c565b9050919050565b600060208201905081810360008301526147dd8161453f565b9050919050565b600060208201905081810360008301526147fd81614562565b9050919050565b6000602082019050818103600083015261481d81614585565b9050919050565b6000602082019050818103600083015261483d816145a8565b9050919050565b6000602082019050818103600083015261485d816145cb565b9050919050565b600060208201905061487960008301846145ee565b92915050565b600060208201905061489460008301846145fd565b92915050565b600081519050919050565b600082825260208201905092915050565b60006148c182614a09565b91506148cc83614a09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561490157614900614ace565b5b828201905092915050565b600061491782614a09565b915061492283614a09565b92508261493257614931614afd565b5b828204905092915050565b600061494882614a09565b915061495383614a09565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561498c5761498b614ace565b5b828202905092915050565b60006149a282614a09565b91506149ad83614a09565b9250828210156149c0576149bf614ace565b5b828203905092915050565b60006149d6826149e9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015614a3e578082015181840152602081019050614a23565b83811115614a4d576000848401525b50505050565b60006002820490506001821680614a6b57607f821691505b60208210811415614a7f57614a7e614b2c565b5b50919050565b6000614a9082614a09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ac357614ac2614ace565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f544f4b454e32303a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f426f74206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b614fbe816149cb565b8114614fc957600080fd5b50565b614fd5816149dd565b8114614fe057600080fd5b50565b614fec81614a09565b8114614ff757600080fd5b5056fe544f4b454e32303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f544f4b454e32303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080a1896c074ac289ad7151dfa2c35d406bdd5da31b3047b2c01984330920c69e64736f6c63430008070033

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

000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0dc574a3573639009cb73edc8562d26f06ac7900000000000000000000000004fc7b47729b06311e77075b6ec8c848be6d4cc68000000000000000000000000000000000000000000000000000000000000000b487966656e20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005485946454e000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Hyfen Token
Arg [1] : _symbol (string): HYFEN
Arg [2] : _decimals (uint256): 18
Arg [3] : _supply (uint256): 1000000000
Arg [4] : _txFee (uint256): 0
Arg [5] : _burnFee (uint256): 0
Arg [6] : _liquiditypoolFee (uint256): 0
Arg [7] : _FeeAddress (address): 0xD0Dc574A3573639009CB73EdC8562d26F06ac790
Arg [8] : _dev (address): 0x4fc7B47729B06311e77075B6eC8C848be6d4cc68

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 000000000000000000000000d0dc574a3573639009cb73edc8562d26f06ac790
Arg [8] : 0000000000000000000000004fc7b47729b06311e77075b6ec8c848be6d4cc68
Arg [9] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [10] : 487966656e20546f6b656e000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [12] : 485946454e000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

11649:18037:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13898:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14817:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16062:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14182:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16253:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14986:315;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18282:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17199:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14084:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15309:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18494:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16367:378;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16157:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12192:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16753:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14285:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11242:148;;;:::i;:::-;;12724:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12230:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18606:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11028:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18852:491;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13989:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15535:271;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12758:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14491:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12139:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19351:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10902:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12690:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15932:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15814:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14666:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17460:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11398:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17798:476;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19469:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13898:83;13935:13;13968:5;13961:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13898:83;:::o;14817:161::-;14892:4;14909:39;14918:12;:10;:12::i;:::-;14932:7;14941:6;14909:8;:39::i;:::-;14966:4;14959:11;;14817:161;;;;:::o;16062:87::-;16104:7;16131:10;;16124:17;;16062:87;:::o;14182:95::-;14235:7;14262;;14255:14;;14182:95;:::o;16253:106::-;16304:7;16331:20;;16324:27;;16253:106;:::o;14986:315::-;15084:4;15101:36;15111:6;15119:9;15130:6;15101:9;:36::i;:::-;15148:123;15157:6;15165:12;:10;:12::i;:::-;15179:91;15217:6;15179:91;;;;;;;;;;;;;;;;;:11;:19;15191:6;15179:19;;;;;;;;;;;;;;;:33;15199:12;:10;:12::i;:::-;15179:33;;;;;;;;;;;;;;;;:37;;:91;;;;;:::i;:::-;15148:8;:123::i;:::-;15289:4;15282:11;;14986:315;;;;;:::o;18282:204::-;13830:12;:10;:12::i;:::-;13823:19;;:3;;;;;;;;;;;:19;;;13815:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18362:6:::1;18359:120;;;18404:6;18384:8;:17;18393:7;18384:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;18359:120;;;18450:8;:17;18459:7;18450:17;;;;;;;;;;;;;;;;18443:24;;;;;;;;;;;18359:120;18282:204:::0;;:::o;17199:253::-;17265:7;17304;;17293;:18;;17285:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17369:19;17392:10;:8;:10::i;:::-;17369:33;;17420:24;17432:11;17420:7;:11;;:24;;;;:::i;:::-;17413:31;;;17199:253;;;:::o;14084:90::-;14125:5;14156:9;;14143:23;;14084:90;:::o;15309:218::-;15397:4;15414:83;15423:12;:10;:12::i;:::-;15437:7;15446:50;15485:10;15446:11;:25;15458:12;:10;:12::i;:::-;15446:25;;;;;;;;;;;;;;;:34;15472:7;15446:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15414:8;:83::i;:::-;15515:4;15508:11;;15309:218;;;;:::o;18494:104::-;18549:4;18573:8;:17;18582:7;18573:17;;;;;;;;;;;;;;;;;;;;;;;;;18566:24;;18494:104;;;:::o;16367:378::-;16419:14;16436:12;:10;:12::i;:::-;16419:29;;16468:11;:19;16480:6;16468:19;;;;;;;;;;;;;;;;;;;;;;;;;16467:20;16459:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;16548:15;16573:19;16584:7;16573:10;:19::i;:::-;16547:45;;;;;;;;16621:28;16641:7;16621;:15;16629:6;16621:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16603:7;:15;16611:6;16603:15;;;;;;;;;;;;;;;:46;;;;16670:20;16682:7;16670;;:11;;:20;;;;:::i;:::-;16660:7;:30;;;;16714:23;16729:7;16714:10;;:14;;:23;;;;:::i;:::-;16701:10;:36;;;;16408:337;;16367:378;:::o;16157:88::-;16199:7;16226:11;;16219:18;;16157:88;:::o;12192:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16753:438::-;16843:7;16882;;16871;:18;;16863:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;16941:17;16936:248;;16976:15;17001:19;17012:7;17001:10;:19::i;:::-;16975:45;;;;;;;;17042:7;17035:14;;;;;16936:248;17084:23;17116:19;17127:7;17116:10;:19::i;:::-;17082:53;;;;;;;;17157:15;17150:22;;;16753:438;;;;;:::o;14285:198::-;14351:7;14375:11;:20;14387:7;14375:20;;;;;;;;;;;;;;;;;;;;;;;;;14371:49;;;14404:7;:16;14412:7;14404:16;;;;;;;;;;;;;;;;14397:23;;;;14371:49;14438:37;14458:7;:16;14466:7;14458:16;;;;;;;;;;;;;;;;14438:19;:37::i;:::-;14431:44;;14285:198;;;;:::o;11242:148::-;11165:12;:10;:12::i;:::-;11155:22;;:6;;;;;;;;;;:22;;;11147:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11349:1:::1;11312:40;;11333:6;::::0;::::1;;;;;;;;11312:40;;;;;;;;;;;;11380:1;11363:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;11242:148::o:0;12724:27::-;;;;:::o;12230:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18606:238::-;13830:12;:10;:12::i;:::-;13823:19;;:3;;;;;;;;;;;:19;;;13815:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18692:17:::1;:26;18710:7;18692:26;;;;;;;;;;;;;;;;;;;;;;;;;18691:27;18683:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18792:4;18763:17;:26;18781:7;18763:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18807:15;18828:7;18807:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18606:238:::0;:::o;11028:79::-;11066:7;11093:6;;;;;;;;;;;11086:13;;11028:79;:::o;18852:491::-;13830:12;:10;:12::i;:::-;13823:19;;:3;;;;;;;;;;;:19;;;13815:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18937:17:::1;:26;18955:7;18937:26;;;;;;;;;;;;;;;;;;;;;;;;;18929:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19011:9;19006:330;19030:15;:22;;;;19026:1;:26;19006:330;;;19100:7;19078:29;;:15;19094:1;19078:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:29;;;19074:251;;;19149:15;19190:1;19165:15;:22;;;;:26;;;;:::i;:::-;19149:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19128:15;19144:1;19128:18;;;;;;;;:::i;:::-;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;19240:5;19211:17;:26;19229:7;19211:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19264:15;:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;19304:5;;19074:251;19054:3;;;;;:::i;:::-;;;;19006:330;;;;18852:491:::0;:::o;13989:87::-;14028:13;14061:7;14054:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13989:87;:::o;15535:271::-;15628:4;15645:131;15654:12;:10;:12::i;:::-;15668:7;15677:98;15716:15;15677:98;;;;;;;;;;;;;;;;;:11;:25;15689:12;:10;:12::i;:::-;15677:25;;;;;;;;;;;;;;;:34;15703:7;15677:34;;;;;;;;;;;;;;;;:38;;:98;;;;;:::i;:::-;15645:8;:131::i;:::-;15794:4;15787:11;;15535:271;;;;:::o;12758:33::-;;;;:::o;14491:167::-;14569:4;14586:42;14596:12;:10;:12::i;:::-;14610:9;14621:6;14586:9;:42::i;:::-;14646:4;14639:11;;14491:167;;;;:::o;12139:46::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19351:110::-;13830:12;:10;:12::i;:::-;13823:19;;:3;;;;;;;;;;;:19;;;13815:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;19446:7:::1;19433:10;;:20;;;;;;;;;;;;;;;;;;19351:110:::0;:::o;10902:21::-;;;;;;;;;;;;:::o;12690:27::-;;;;:::o;15932:122::-;15996:4;16020:17;:26;16038:7;16020:26;;;;;;;;;;;;;;;;;;;;;;;;;16013:33;;15932:122;;;:::o;15814:110::-;15872:4;15896:11;:20;15908:7;15896:20;;;;;;;;;;;;;;;;;;;;;;;;;15889:27;;15814:110;;;:::o;14666:143::-;14747:7;14774:11;:18;14786:5;14774:18;;;;;;;;;;;;;;;:27;14793:7;14774:27;;;;;;;;;;;;;;;;14767:34;;14666:143;;;;:::o;17460:330::-;13830:12;:10;:12::i;:::-;13823:19;;:3;;;;;;;;;;;:19;;;13815:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;17540:11:::1;:20;17552:7;17540:20;;;;;;;;;;;;;;;;;;;;;;;;;17539:21;17531:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17625:1;17606:7;:16;17614:7;17606:16;;;;;;;;;;;;;;;;:20;17603:108;;;17662:37;17682:7;:16;17690:7;17682:16;;;;;;;;;;;;;;;;17662:19;:37::i;:::-;17643:7;:16;17651:7;17643:16;;;;;;;;;;;;;;;:56;;;;17603:108;17744:4;17721:11;:20;17733:7;17721:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;17759:9;17774:7;17759:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17460:330:::0;:::o;11398:244::-;11165:12;:10;:12::i;:::-;11155:22;;:6;;;;;;;;;;:22;;;11147:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11507:1:::1;11487:22;;:8;:22;;;;11479:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11597:8;11568:38;;11589:6;::::0;::::1;;;;;;;;11568:38;;;;;;;;;;;;11626:8;11617:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;11398:244:::0;:::o;17798:476::-;13830:12;:10;:12::i;:::-;13823:19;;:3;;;;;;;;;;;:19;;;13815:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;17877:11:::1;:20;17889:7;17877:20;;;;;;;;;;;;;;;;;;;;;;;;;17869:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;17945:9;17940:327;17964:9;:16;;;;17960:1;:20;17940:327;;;18022:7;18006:23;;:9;18016:1;18006:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;18002:254;;;18065:9;18094:1;18075:9;:16;;;;:20;;;;:::i;:::-;18065:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18050:9;18060:1;18050:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18134:1;18115:7;:16;18123:7;18115:16;;;;;;;;;;;;;;;:20;;;;18177:5;18154:11;:20;18166:7;18154:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18201:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;18235:5;;18002:254;17982:3;;;;;:::i;:::-;;;;17940:327;;;;17798:476:::0;:::o;19469:427::-;13830:12;:10;:12::i;:::-;13823:19;;:3;;;;;;;;;;;:19;;;13815:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;19591:3:::1;19582:6;:12;:30;;;;;19609:3;19598:8;:14;19582:30;:57;;;;;19636:3;19616:17;:23;19582:57;19574:66;;;::::0;::::1;;19670:3;19662:6;:11;;;;:::i;:::-;19651:8;:22;;;;19707:3;19696:8;:14;;;;:::i;:::-;19684:9;:26;;;;19761:3;19742:17;:22;;;;:::i;:::-;19721:18;:43;;;;19790:8;;19775:12;:23;;;;19825:9;;19809:13;:25;;;;19870:18;;19845:22;:43;;;;19469:427:::0;;;:::o;6110:115::-;6163:15;6206:10;6191:26;;6110:115;:::o;19904:341::-;20014:1;19997:19;;:5;:19;;;;19989:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20097:1;20078:21;;:7;:21;;;;20070:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20183:6;20153:11;:18;20165:5;20153:18;;;;;;;;;;;;;;;:27;20172:7;20153:27;;;;;;;;;;;;;;;:36;;;;20221:7;20205:32;;20214:5;20205:32;;;20230:6;20205:32;;;;;;:::i;:::-;;;;;;;;19904:341;;;:::o;20253:1270::-;20368:1;20350:20;;:6;:20;;;;20342:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20454:1;20433:23;;:9;:23;;;;20425:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20526:1;20517:6;:10;20509:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20595:8;:16;20604:6;20595:16;;;;;;;;;;;;;;;;;;;;;;;;;20594:17;20586:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;20644:12;20659:4;20644:19;;20692:6;20678:20;;:10;;;;;;;;;;;:20;;;:47;;;;20716:9;20702:23;;:10;;;;;;;;;;;:23;;;20678:47;:73;;;;20729:11;:22;20741:9;20729:22;;;;;;;;;;;;;;;;;;;;;;;;;20678:73;:102;;;;20755:17;:25;20773:6;20755:25;;;;;;;;;;;;;;;;;;;;;;;;;20678:102;20674:150;;;20807:5;20797:15;;20674:150;20841:7;20836:28;;20850:14;:12;:14::i;:::-;20836:28;20881:11;:19;20893:6;20881:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;20905:11;:22;20917:9;20905:22;;;;;;;;;;;;;;;;;;;;;;;;;20904:23;20881:46;20877:597;;;20944:48;20966:6;20974:9;20985:6;20944:21;:48::i;:::-;20877:597;;;21015:11;:19;21027:6;21015:19;;;;;;;;;;;;;;;;;;;;;;;;;21014:20;:46;;;;;21038:11;:22;21050:9;21038:22;;;;;;;;;;;;;;;;;;;;;;;;;21014:46;21010:464;;;21077:46;21097:6;21105:9;21116:6;21077:19;:46::i;:::-;21010:464;;;21146:11;:19;21158:6;21146:19;;;;;;;;;;;;;;;;;;;;;;;;;21145:20;:47;;;;;21170:11;:22;21182:9;21170:22;;;;;;;;;;;;;;;;;;;;;;;;;21169:23;21145:47;21141:333;;;21209:44;21227:6;21235:9;21246:6;21209:17;:44::i;:::-;21141:333;;;21275:11;:19;21287:6;21275:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;21298:11;:22;21310:9;21298:22;;;;;;;;;;;;;;;;;;;;;;;;;21275:45;21271:203;;;21337:48;21359:6;21367:9;21378:6;21337:21;:48::i;:::-;21271:203;;;21418:44;21436:6;21444:9;21455:6;21418:17;:44::i;:::-;21271:203;21141:333;21010:464;20877:597;21491:7;21486:29;;21500:15;:13;:15::i;:::-;21486:29;20331:1192;20253:1270;;;:::o;7414:192::-;7500:7;7533:1;7528;:6;;7536:12;7520:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7560:9;7576:1;7572;:5;;;;:::i;:::-;7560:17;;7597:1;7590:8;;;7414:192;;;;;:::o;27942:163::-;27983:7;28004:15;28021;28040:19;:17;:19::i;:::-;28003:56;;;;28077:20;28089:7;28077;:11;;:20;;;;:::i;:::-;28070:27;;;;27942:163;:::o;7874:132::-;7932:7;7959:39;7963:1;7966;7959:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7952:46;;7874:132;;;;:::o;7081:181::-;7139:7;7159:9;7175:1;7171;:5;;;;:::i;:::-;7159:17;;7200:1;7195;:6;;7187:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7253:1;7246:8;;;7081:181;;;;:::o;25919:682::-;25978:7;25987;25996;26005;26014;26023;26032;26053:12;26067:13;26082:22;26108:61;26120:7;26129:8;;26139:9;;26150:18;;26108:11;:61::i;:::-;26052:117;;;;;;26180:23;26206:56;26225:7;26234:4;26240:5;26247:14;26206:18;:56::i;:::-;26180:82;;26273:19;26296:10;:8;:10::i;:::-;26273:33;;26318:15;26335:12;26351:39;26363:7;26372:4;26378:11;26351;:39::i;:::-;26317:73;;;;26401:23;26427:70;26447:7;26456:4;26462:5;26469:14;26485:11;26427:19;:70::i;:::-;26401:96;;26516:7;26525:15;26542:4;26548:15;26565:4;26571:5;26578:14;26508:85;;;;;;;;;;;;;;;;;;;;;;25919:682;;;;;;;;;:::o;7270:136::-;7328:7;7355:43;7359:1;7362;7355:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7348:50;;7270:136;;;;:::o;29084:328::-;29142:1;29130:8;;:13;:31;;;;;29160:1;29147:9;;:14;29130:31;:58;;;;;29187:1;29165:18;;:23;29130:58;29127:70;;;29190:7;;29127:70;29224:8;;29209:12;:23;;;;29259:9;;29243:13;:25;;;;29304:18;;29279:22;:43;;;;29346:1;29335:8;:12;;;;29370:1;29358:9;:13;;;;29403:1;29382:18;:22;;;;29084:328;:::o;23426:630::-;23528:19;23551:10;:8;:10::i;:::-;23528:33;;23573:15;23590:23;23615:12;23629:23;23654:12;23668:13;23683:22;23709:19;23720:7;23709:10;:19::i;:::-;23572:156;;;;;;;;;;;;;;23739:13;23756:22;23766:11;23756:5;:9;;:22;;;;:::i;:::-;23739:39;;23789:80;23816:6;23824:9;23835:7;23844;23853:15;23789:26;:80::i;:::-;23880:44;23901:14;23917:6;23880:20;:44::i;:::-;23935:53;23947:4;23953:5;23960:4;23966:5;23973:14;23935:11;:53::i;:::-;24021:9;24004:44;;24013:6;24004:44;;;24032:15;24004:44;;;;;;:::i;:::-;;;;;;;;23517:539;;;;;;;;;23426:630;;;:::o;22417:638::-;22517:19;22540:10;:8;:10::i;:::-;22517:33;;22562:15;22579:23;22604:12;22618:23;22643:12;22657:13;22672:22;22698:19;22709:7;22698:10;:19::i;:::-;22561:156;;;;;;;;;;;;;;22728:13;22745:22;22755:11;22745:5;:9;;:22;;;;:::i;:::-;22728:39;;22778:90;22807:6;22815:9;22826:15;22843:7;22852:15;22778:28;:90::i;:::-;22879:44;22900:14;22916:6;22879:20;:44::i;:::-;22934:53;22946:4;22952:5;22959:4;22965:5;22972:14;22934:11;:53::i;:::-;23020:9;23003:44;;23012:6;23003:44;;;23031:15;23003:44;;;;;;:::i;:::-;;;;;;;;22506:549;;;;;;;;;22417:638;;;:::o;21531:615::-;21629:19;21652:10;:8;:10::i;:::-;21629:33;;21674:15;21691:23;21716:12;21730:23;21755:12;21769:13;21784:22;21810:19;21821:7;21810:10;:19::i;:::-;21673:156;;;;;;;;;;;;;;21840:13;21857:22;21867:11;21857:5;:9;;:22;;;;:::i;:::-;21840:39;;21890:69;21915:6;21923:9;21934:7;21943:15;21890:24;:69::i;:::-;21970:44;21991:14;22007:6;21970:20;:44::i;:::-;22025:53;22037:4;22043:5;22050:4;22056:5;22063:14;22025:11;:53::i;:::-;22111:9;22094:44;;22103:6;22094:44;;;22122:15;22094:44;;;;;;:::i;:::-;;;;;;;;21618:528;;;;;;;;;21531:615;;;:::o;24403:641::-;24505:19;24528:10;:8;:10::i;:::-;24505:33;;24550:15;24567:23;24592:12;24606:23;24631:12;24645:13;24660:22;24686:19;24697:7;24686:10;:19::i;:::-;24549:156;;;;;;;;;;;;;;24716:13;24733:22;24743:11;24733:5;:9;;:22;;;;:::i;:::-;24716:39;;24766:91;24787:6;24795:9;24806:7;24815;24824:15;24841;24766:20;:91::i;:::-;24868:44;24889:14;24905:6;24868:20;:44::i;:::-;24923:53;24935:4;24941:5;24948:4;24954:5;24961:14;24923:11;:53::i;:::-;25009:9;24992:44;;25001:6;24992:44;;;25020:15;24992:44;;;;;;:::i;:::-;;;;;;;;24494:550;;;;;;;;;24403:641;;;:::o;29420:165::-;29475:12;;29464:8;:23;;;;29510:13;;29498:9;:25;;;;29555:22;;29534:18;:43;;;;29420:165::o;28113:555::-;28163:7;28172;28192:15;28210:7;;28192:25;;28228:15;28246:7;;28228:25;;28269:9;28264:289;28288:9;:16;;;;28284:1;:20;28264:289;;;28354:7;28330;:21;28338:9;28348:1;28338:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28330:21;;;;;;;;;;;;;;;;:31;:66;;;;28389:7;28365;:21;28373:9;28383:1;28373:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28365:21;;;;;;;;;;;;;;;;:31;28330:66;28326:97;;;28406:7;;28415;;28398:25;;;;;;;;;28326:97;28448:34;28460:7;:21;28468:9;28478:1;28468:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28460:21;;;;;;;;;;;;;;;;28448:7;:11;;:34;;;;:::i;:::-;28438:44;;28507:34;28519:7;:21;28527:9;28537:1;28527:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28519:21;;;;;;;;;;;;;;;;28507:7;:11;;:34;;;;:::i;:::-;28497:44;;28306:3;;;;;:::i;:::-;;;;28264:289;;;;28577:20;28589:7;;28577;;:11;;:20;;;;:::i;:::-;28567:7;:30;28563:61;;;28607:7;;28616;;28599:25;;;;;;;;28563:61;28643:7;28652;28635:25;;;;;;28113:555;;;:::o;8014:191::-;8100:7;8132:1;8128;:5;8135:12;8120:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8159:9;8175:1;8171;:5;;;;:::i;:::-;8159:17;;8196:1;8189:8;;;8014:191;;;;;:::o;26609:451::-;26728:7;26737;26746;26766:12;26781:50;26827:3;26782:39;26808:12;;26783:19;26795:6;26783:7;:11;;:19;;;;:::i;:::-;26782:25;;:39;;;;:::i;:::-;26781:45;;:50;;;;:::i;:::-;26766:65;;26842:13;26858:51;26905:3;26859:40;26886:12;;26860:20;26872:7;26860;:11;;:20;;;;:::i;:::-;26859:26;;:40;;;;:::i;:::-;26858:46;;:51;;;;:::i;:::-;26842:67;;26920:22;26945:60;27001:3;26946:49;26982:12;;26947:29;26959:16;26947:7;:11;;:29;;;;:::i;:::-;26946:35;;:49;;;;:::i;:::-;26945:55;;:60;;;;:::i;:::-;26920:85;;27024:4;27030:5;27037:14;27016:36;;;;;;;;;26609:451;;;;;;;;:::o;27068:203::-;27188:7;27215:48;27248:14;27215:28;27237:5;27215:17;27227:4;27215:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;27208:55;;27068:203;;;;;;:::o;27279:254::-;27374:7;27383;27403:15;27421:24;27433:11;27421:7;:11;;:24;;;;:::i;:::-;27403:42;;27456:12;27471:21;27480:11;27471:4;:8;;:21;;;;:::i;:::-;27456:36;;27511:7;27520:4;27503:22;;;;;;27279:254;;;;;;:::o;27541:393::-;27683:7;27703:13;27719:22;27729:11;27719:5;:9;;:22;;;;:::i;:::-;27703:38;;27752:22;27777:31;27796:11;27777:14;:18;;:31;;;;:::i;:::-;27752:56;;27819:23;27845:48;27878:14;27845:28;27867:5;27845:17;27857:4;27845:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;27819:74;;27911:15;27904:22;;;;;27541:393;;;;;;;:::o;7614:252::-;7672:7;7703:1;7698;:6;7694:47;;;7728:1;7721:8;;;;7694:47;7753:9;7769:1;7765;:5;;;;:::i;:::-;7753:17;;7798:1;7793;7789;:5;;;;:::i;:::-;:10;7781:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7857:1;7850:8;;;7614:252;;;;;:::o;24064:331::-;24231:28;24251:7;24231;:15;24239:6;24231:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24213:7;:15;24221:6;24213:15;;;;;;;;;;;;;;;:46;;;;24288:28;24308:7;24288;:15;24296:6;24288:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24270:7;:15;24278:6;24270:15;;;;;;;;;;;;;;;:46;;;;24348:39;24371:15;24348:7;:18;24356:9;24348:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24327:7;:18;24335:9;24327:18;;;;;;;;;;;;;;;:60;;;;24064:331;;;;;:::o;28676:400::-;28765:19;28787:10;:8;:10::i;:::-;28765:32;;28808:22;28833:31;28852:11;28833:14;:18;;:31;;;;:::i;:::-;28808:56;;28897:39;28921:14;28897:7;:19;28905:10;;;;;;;;;;;28897:19;;;;;;;;;;;;;;;;:23;;:39;;;;:::i;:::-;28875:7;:19;28883:10;;;;;;;;;;;28875:19;;;;;;;;;;;;;;;:61;;;;28969:39;28993:14;28969:7;:19;28977:10;;;;;;;;;;;28969:19;;;;;;;;;;;;;;;;:23;;:39;;;;:::i;:::-;28947:7;:19;28955:10;;;;;;;;;;;28947:19;;;;;;;;;;;;;;;:61;;;;29041:10;;;;;;;;;;;29024:44;;29033:6;29024:44;;;29053:14;29024:44;;;;;;:::i;:::-;;;;;;;;28754:322;;28676:400;;:::o;25481:430::-;25613:28;25635:5;25613:17;25625:4;25613:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;25603:7;:38;;;;25665:20;25680:4;25665:10;;:14;;:20;;;;:::i;:::-;25652:10;:33;;;;25710:22;25726:5;25710:11;;:15;;:22;;;;:::i;:::-;25696:11;:36;;;;25766:40;25791:14;25766:20;;:24;;:40;;;;:::i;:::-;25743:20;:63;;;;25827:18;25839:5;25827:7;;:11;;:18;;;;:::i;:::-;25817:7;:28;;;;25893:1;25861:42;;25878:4;25861:42;;;25897:5;25861:42;;;;;;:::i;:::-;;;;;;;;25481:430;;;;;:::o;23063:355::-;23240:28;23260:7;23240;:15;23248:6;23240:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23222:7;:15;23230:6;23222:15;;;;;;;;;;;;;;;:46;;;;23300:39;23323:15;23300:7;:18;23308:9;23300:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23279:7;:18;23287:9;23279:18;;;;;;;;;;;;;;;:60;;;;23371:39;23394:15;23371:7;:18;23379:9;23371:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23350:7;:18;23358:9;23350:18;;;;;;;;;;;;;;;:60;;;;23063:355;;;;;:::o;22154:255::-;22302:28;22322:7;22302;:15;22310:6;22302:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22284:7;:15;22292:6;22284:15;;;;;;;;;;;;;;;:46;;;;22362:39;22385:15;22362:7;:18;22370:9;22362:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22341:7;:18;22349:9;22341:18;;;;;;;;;;;;;;;:60;;;;22154:255;;;;:::o;25052:421::-;25238:28;25258:7;25238;:15;25246:6;25238:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25220:7;:15;25228:6;25220:15;;;;;;;;;;;;;;;:46;;;;25295:28;25315:7;25295;:15;25303:6;25295:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25277:7;:15;25285:6;25277:15;;;;;;;;;;;;;;;:46;;;;25355:39;25378:15;25355:7;:18;25363:9;25355:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25334:7;:18;25342:9;25334:18;;;;;;;;;;;;;;;:60;;;;25426:39;25449:15;25426:7;:18;25434:9;25426:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25405:7;:18;25413:9;25405:18;;;;;;;;;;;;;;;:60;;;;25052:421;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;291:139;;;;:::o;436:329::-;495:6;544:2;532:9;523:7;519:23;515:32;512:119;;;550:79;;:::i;:::-;512:119;670:1;695:53;740:7;731:6;720:9;716:22;695:53;:::i;:::-;685:63;;641:117;436:329;;;;:::o;771:474::-;839:6;847;896:2;884:9;875:7;871:23;867:32;864:119;;;902:79;;:::i;:::-;864:119;1022:1;1047:53;1092:7;1083:6;1072:9;1068:22;1047:53;:::i;:::-;1037:63;;993:117;1149:2;1175:53;1220:7;1211:6;1200:9;1196:22;1175:53;:::i;:::-;1165:63;;1120:118;771:474;;;;;:::o;1251:619::-;1328:6;1336;1344;1393:2;1381:9;1372:7;1368:23;1364:32;1361:119;;;1399:79;;:::i;:::-;1361:119;1519:1;1544:53;1589:7;1580:6;1569:9;1565:22;1544:53;:::i;:::-;1534:63;;1490:117;1646:2;1672:53;1717:7;1708:6;1697:9;1693:22;1672:53;:::i;:::-;1662:63;;1617:118;1774:2;1800:53;1845:7;1836:6;1825:9;1821:22;1800:53;:::i;:::-;1790:63;;1745:118;1251:619;;;;;:::o;1876:468::-;1941:6;1949;1998:2;1986:9;1977:7;1973:23;1969:32;1966:119;;;2004:79;;:::i;:::-;1966:119;2124:1;2149:53;2194:7;2185:6;2174:9;2170:22;2149:53;:::i;:::-;2139:63;;2095:117;2251:2;2277:50;2319:7;2310:6;2299:9;2295:22;2277:50;:::i;:::-;2267:60;;2222:115;1876:468;;;;;:::o;2350:474::-;2418:6;2426;2475:2;2463:9;2454:7;2450:23;2446:32;2443:119;;;2481:79;;:::i;:::-;2443:119;2601:1;2626:53;2671:7;2662:6;2651:9;2647:22;2626:53;:::i;:::-;2616:63;;2572:117;2728:2;2754:53;2799:7;2790:6;2779:9;2775:22;2754:53;:::i;:::-;2744:63;;2699:118;2350:474;;;;;:::o;2830:329::-;2889:6;2938:2;2926:9;2917:7;2913:23;2909:32;2906:119;;;2944:79;;:::i;:::-;2906:119;3064:1;3089:53;3134:7;3125:6;3114:9;3110:22;3089:53;:::i;:::-;3079:63;;3035:117;2830:329;;;;:::o;3165:468::-;3230:6;3238;3287:2;3275:9;3266:7;3262:23;3258:32;3255:119;;;3293:79;;:::i;:::-;3255:119;3413:1;3438:53;3483:7;3474:6;3463:9;3459:22;3438:53;:::i;:::-;3428:63;;3384:117;3540:2;3566:50;3608:7;3599:6;3588:9;3584:22;3566:50;:::i;:::-;3556:60;;3511:115;3165:468;;;;;:::o;3639:619::-;3716:6;3724;3732;3781:2;3769:9;3760:7;3756:23;3752:32;3749:119;;;3787:79;;:::i;:::-;3749:119;3907:1;3932:53;3977:7;3968:6;3957:9;3953:22;3932:53;:::i;:::-;3922:63;;3878:117;4034:2;4060:53;4105:7;4096:6;4085:9;4081:22;4060:53;:::i;:::-;4050:63;;4005:118;4162:2;4188:53;4233:7;4224:6;4213:9;4209:22;4188:53;:::i;:::-;4178:63;;4133:118;3639:619;;;;;:::o;4264:118::-;4351:24;4369:5;4351:24;:::i;:::-;4346:3;4339:37;4264:118;;:::o;4388:109::-;4469:21;4484:5;4469:21;:::i;:::-;4464:3;4457:34;4388:109;;:::o;4503:364::-;4591:3;4619:39;4652:5;4619:39;:::i;:::-;4674:71;4738:6;4733:3;4674:71;:::i;:::-;4667:78;;4754:52;4799:6;4794:3;4787:4;4780:5;4776:16;4754:52;:::i;:::-;4831:29;4853:6;4831:29;:::i;:::-;4826:3;4822:39;4815:46;;4595:272;4503:364;;;;:::o;4873:366::-;5015:3;5036:67;5100:2;5095:3;5036:67;:::i;:::-;5029:74;;5112:93;5201:3;5112:93;:::i;:::-;5230:2;5225:3;5221:12;5214:19;;4873:366;;;:::o;5245:::-;5387:3;5408:67;5472:2;5467:3;5408:67;:::i;:::-;5401:74;;5484:93;5573:3;5484:93;:::i;:::-;5602:2;5597:3;5593:12;5586:19;;5245:366;;;:::o;5617:::-;5759:3;5780:67;5844:2;5839:3;5780:67;:::i;:::-;5773:74;;5856:93;5945:3;5856:93;:::i;:::-;5974:2;5969:3;5965:12;5958:19;;5617:366;;;:::o;5989:::-;6131:3;6152:67;6216:2;6211:3;6152:67;:::i;:::-;6145:74;;6228:93;6317:3;6228:93;:::i;:::-;6346:2;6341:3;6337:12;6330:19;;5989:366;;;:::o;6361:::-;6503:3;6524:67;6588:2;6583:3;6524:67;:::i;:::-;6517:74;;6600:93;6689:3;6600:93;:::i;:::-;6718:2;6713:3;6709:12;6702:19;;6361:366;;;:::o;6733:::-;6875:3;6896:67;6960:2;6955:3;6896:67;:::i;:::-;6889:74;;6972:93;7061:3;6972:93;:::i;:::-;7090:2;7085:3;7081:12;7074:19;;6733:366;;;:::o;7105:::-;7247:3;7268:67;7332:2;7327:3;7268:67;:::i;:::-;7261:74;;7344:93;7433:3;7344:93;:::i;:::-;7462:2;7457:3;7453:12;7446:19;;7105:366;;;:::o;7477:::-;7619:3;7640:67;7704:2;7699:3;7640:67;:::i;:::-;7633:74;;7716:93;7805:3;7716:93;:::i;:::-;7834:2;7829:3;7825:12;7818:19;;7477:366;;;:::o;7849:::-;7991:3;8012:67;8076:2;8071:3;8012:67;:::i;:::-;8005:74;;8088:93;8177:3;8088:93;:::i;:::-;8206:2;8201:3;8197:12;8190:19;;7849:366;;;:::o;8221:::-;8363:3;8384:67;8448:2;8443:3;8384:67;:::i;:::-;8377:74;;8460:93;8549:3;8460:93;:::i;:::-;8578:2;8573:3;8569:12;8562:19;;8221:366;;;:::o;8593:::-;8735:3;8756:67;8820:2;8815:3;8756:67;:::i;:::-;8749:74;;8832:93;8921:3;8832:93;:::i;:::-;8950:2;8945:3;8941:12;8934:19;;8593:366;;;:::o;8965:::-;9107:3;9128:67;9192:2;9187:3;9128:67;:::i;:::-;9121:74;;9204:93;9293:3;9204:93;:::i;:::-;9322:2;9317:3;9313:12;9306:19;;8965:366;;;:::o;9337:::-;9479:3;9500:67;9564:2;9559:3;9500:67;:::i;:::-;9493:74;;9576:93;9665:3;9576:93;:::i;:::-;9694:2;9689:3;9685:12;9678:19;;9337:366;;;:::o;9709:::-;9851:3;9872:67;9936:2;9931:3;9872:67;:::i;:::-;9865:74;;9948:93;10037:3;9948:93;:::i;:::-;10066:2;10061:3;10057:12;10050:19;;9709:366;;;:::o;10081:::-;10223:3;10244:67;10308:2;10303:3;10244:67;:::i;:::-;10237:74;;10320:93;10409:3;10320:93;:::i;:::-;10438:2;10433:3;10429:12;10422:19;;10081:366;;;:::o;10453:::-;10595:3;10616:67;10680:2;10675:3;10616:67;:::i;:::-;10609:74;;10692:93;10781:3;10692:93;:::i;:::-;10810:2;10805:3;10801:12;10794:19;;10453:366;;;:::o;10825:118::-;10912:24;10930:5;10912:24;:::i;:::-;10907:3;10900:37;10825:118;;:::o;10949:112::-;11032:22;11048:5;11032:22;:::i;:::-;11027:3;11020:35;10949:112;;:::o;11067:222::-;11160:4;11198:2;11187:9;11183:18;11175:26;;11211:71;11279:1;11268:9;11264:17;11255:6;11211:71;:::i;:::-;11067:222;;;;:::o;11295:210::-;11382:4;11420:2;11409:9;11405:18;11397:26;;11433:65;11495:1;11484:9;11480:17;11471:6;11433:65;:::i;:::-;11295:210;;;;:::o;11511:313::-;11624:4;11662:2;11651:9;11647:18;11639:26;;11711:9;11705:4;11701:20;11697:1;11686:9;11682:17;11675:47;11739:78;11812:4;11803:6;11739:78;:::i;:::-;11731:86;;11511:313;;;;:::o;11830:419::-;11996:4;12034:2;12023:9;12019:18;12011:26;;12083:9;12077:4;12073:20;12069:1;12058:9;12054:17;12047:47;12111:131;12237:4;12111:131;:::i;:::-;12103:139;;11830:419;;;:::o;12255:::-;12421:4;12459:2;12448:9;12444:18;12436:26;;12508:9;12502:4;12498:20;12494:1;12483:9;12479:17;12472:47;12536:131;12662:4;12536:131;:::i;:::-;12528:139;;12255:419;;;:::o;12680:::-;12846:4;12884:2;12873:9;12869:18;12861:26;;12933:9;12927:4;12923:20;12919:1;12908:9;12904:17;12897:47;12961:131;13087:4;12961:131;:::i;:::-;12953:139;;12680:419;;;:::o;13105:::-;13271:4;13309:2;13298:9;13294:18;13286:26;;13358:9;13352:4;13348:20;13344:1;13333:9;13329:17;13322:47;13386:131;13512:4;13386:131;:::i;:::-;13378:139;;13105:419;;;:::o;13530:::-;13696:4;13734:2;13723:9;13719:18;13711:26;;13783:9;13777:4;13773:20;13769:1;13758:9;13754:17;13747:47;13811:131;13937:4;13811:131;:::i;:::-;13803:139;;13530:419;;;:::o;13955:::-;14121:4;14159:2;14148:9;14144:18;14136:26;;14208:9;14202:4;14198:20;14194:1;14183:9;14179:17;14172:47;14236:131;14362:4;14236:131;:::i;:::-;14228:139;;13955:419;;;:::o;14380:::-;14546:4;14584:2;14573:9;14569:18;14561:26;;14633:9;14627:4;14623:20;14619:1;14608:9;14604:17;14597:47;14661:131;14787:4;14661:131;:::i;:::-;14653:139;;14380:419;;;:::o;14805:::-;14971:4;15009:2;14998:9;14994:18;14986:26;;15058:9;15052:4;15048:20;15044:1;15033:9;15029:17;15022:47;15086:131;15212:4;15086:131;:::i;:::-;15078:139;;14805:419;;;:::o;15230:::-;15396:4;15434:2;15423:9;15419:18;15411:26;;15483:9;15477:4;15473:20;15469:1;15458:9;15454:17;15447:47;15511:131;15637:4;15511:131;:::i;:::-;15503:139;;15230:419;;;:::o;15655:::-;15821:4;15859:2;15848:9;15844:18;15836:26;;15908:9;15902:4;15898:20;15894:1;15883:9;15879:17;15872:47;15936:131;16062:4;15936:131;:::i;:::-;15928:139;;15655:419;;;:::o;16080:::-;16246:4;16284:2;16273:9;16269:18;16261:26;;16333:9;16327:4;16323:20;16319:1;16308:9;16304:17;16297:47;16361:131;16487:4;16361:131;:::i;:::-;16353:139;;16080:419;;;:::o;16505:::-;16671:4;16709:2;16698:9;16694:18;16686:26;;16758:9;16752:4;16748:20;16744:1;16733:9;16729:17;16722:47;16786:131;16912:4;16786:131;:::i;:::-;16778:139;;16505:419;;;:::o;16930:::-;17096:4;17134:2;17123:9;17119:18;17111:26;;17183:9;17177:4;17173:20;17169:1;17158:9;17154:17;17147:47;17211:131;17337:4;17211:131;:::i;:::-;17203:139;;16930:419;;;:::o;17355:::-;17521:4;17559:2;17548:9;17544:18;17536:26;;17608:9;17602:4;17598:20;17594:1;17583:9;17579:17;17572:47;17636:131;17762:4;17636:131;:::i;:::-;17628:139;;17355:419;;;:::o;17780:::-;17946:4;17984:2;17973:9;17969:18;17961:26;;18033:9;18027:4;18023:20;18019:1;18008:9;18004:17;17997:47;18061:131;18187:4;18061:131;:::i;:::-;18053:139;;17780:419;;;:::o;18205:::-;18371:4;18409:2;18398:9;18394:18;18386:26;;18458:9;18452:4;18448:20;18444:1;18433:9;18429:17;18422:47;18486:131;18612:4;18486:131;:::i;:::-;18478:139;;18205:419;;;:::o;18630:222::-;18723:4;18761:2;18750:9;18746:18;18738:26;;18774:71;18842:1;18831:9;18827:17;18818:6;18774:71;:::i;:::-;18630:222;;;;:::o;18858:214::-;18947:4;18985:2;18974:9;18970:18;18962:26;;18998:67;19062:1;19051:9;19047:17;19038:6;18998:67;:::i;:::-;18858:214;;;;:::o;19159:99::-;19211:6;19245:5;19239:12;19229:22;;19159:99;;;:::o;19264:169::-;19348:11;19382:6;19377:3;19370:19;19422:4;19417:3;19413:14;19398:29;;19264:169;;;;:::o;19439:305::-;19479:3;19498:20;19516:1;19498:20;:::i;:::-;19493:25;;19532:20;19550:1;19532:20;:::i;:::-;19527:25;;19686:1;19618:66;19614:74;19611:1;19608:81;19605:107;;;19692:18;;:::i;:::-;19605:107;19736:1;19733;19729:9;19722:16;;19439:305;;;;:::o;19750:185::-;19790:1;19807:20;19825:1;19807:20;:::i;:::-;19802:25;;19841:20;19859:1;19841:20;:::i;:::-;19836:25;;19880:1;19870:35;;19885:18;;:::i;:::-;19870:35;19927:1;19924;19920:9;19915:14;;19750:185;;;;:::o;19941:348::-;19981:7;20004:20;20022:1;20004:20;:::i;:::-;19999:25;;20038:20;20056:1;20038:20;:::i;:::-;20033:25;;20226:1;20158:66;20154:74;20151:1;20148:81;20143:1;20136:9;20129:17;20125:105;20122:131;;;20233:18;;:::i;:::-;20122:131;20281:1;20278;20274:9;20263:20;;19941:348;;;;:::o;20295:191::-;20335:4;20355:20;20373:1;20355:20;:::i;:::-;20350:25;;20389:20;20407:1;20389:20;:::i;:::-;20384:25;;20428:1;20425;20422:8;20419:34;;;20433:18;;:::i;:::-;20419:34;20478:1;20475;20471:9;20463:17;;20295:191;;;;:::o;20492:96::-;20529:7;20558:24;20576:5;20558:24;:::i;:::-;20547:35;;20492:96;;;:::o;20594:90::-;20628:7;20671:5;20664:13;20657:21;20646:32;;20594:90;;;:::o;20690:126::-;20727:7;20767:42;20760:5;20756:54;20745:65;;20690:126;;;:::o;20822:77::-;20859:7;20888:5;20877:16;;20822:77;;;:::o;20905:86::-;20940:7;20980:4;20973:5;20969:16;20958:27;;20905:86;;;:::o;20997:307::-;21065:1;21075:113;21089:6;21086:1;21083:13;21075:113;;;21174:1;21169:3;21165:11;21159:18;21155:1;21150:3;21146:11;21139:39;21111:2;21108:1;21104:10;21099:15;;21075:113;;;21206:6;21203:1;21200:13;21197:101;;;21286:1;21277:6;21272:3;21268:16;21261:27;21197:101;21046:258;20997:307;;;:::o;21310:320::-;21354:6;21391:1;21385:4;21381:12;21371:22;;21438:1;21432:4;21428:12;21459:18;21449:81;;21515:4;21507:6;21503:17;21493:27;;21449:81;21577:2;21569:6;21566:14;21546:18;21543:38;21540:84;;;21596:18;;:::i;:::-;21540:84;21361:269;21310:320;;;:::o;21636:233::-;21675:3;21698:24;21716:5;21698:24;:::i;:::-;21689:33;;21744:66;21737:5;21734:77;21731:103;;;21814:18;;:::i;:::-;21731:103;21861:1;21854:5;21850:13;21843:20;;21636:233;;;:::o;21875:180::-;21923:77;21920:1;21913:88;22020:4;22017:1;22010:15;22044:4;22041:1;22034:15;22061:180;22109:77;22106:1;22099:88;22206:4;22203:1;22196:15;22230:4;22227:1;22220:15;22247:180;22295:77;22292:1;22285:88;22392:4;22389:1;22382:15;22416:4;22413:1;22406:15;22433:180;22481:77;22478:1;22471:88;22578:4;22575:1;22568:15;22602:4;22599:1;22592:15;22619:180;22667:77;22664:1;22657:88;22764:4;22761:1;22754:15;22788:4;22785:1;22778:15;22928:117;23037:1;23034;23027:12;23051:102;23092:6;23143:2;23139:7;23134:2;23127:5;23123:14;23119:28;23109:38;;23051:102;;;:::o;23159:224::-;23299:34;23295:1;23287:6;23283:14;23276:58;23368:7;23363:2;23355:6;23351:15;23344:32;23159:224;:::o;23389:226::-;23529:34;23525:1;23517:6;23513:14;23506:58;23598:9;23593:2;23585:6;23581:15;23574:34;23389:226;:::o;23621:173::-;23761:25;23757:1;23749:6;23745:14;23738:49;23621:173;:::o;23800:229::-;23940:34;23936:1;23928:6;23924:14;23917:58;24009:12;24004:2;23996:6;23992:15;23985:37;23800:229;:::o;24035:225::-;24175:34;24171:1;24163:6;24159:14;24152:58;24244:8;24239:2;24231:6;24227:15;24220:33;24035:225;:::o;24266:177::-;24406:29;24402:1;24394:6;24390:14;24383:53;24266:177;:::o;24449:::-;24589:29;24585:1;24577:6;24573:14;24566:53;24449:177;:::o;24632:::-;24772:29;24768:1;24760:6;24756:14;24749:53;24632:177;:::o;24815:181::-;24955:33;24951:1;24943:6;24939:14;24932:57;24815:181;:::o;25002:220::-;25142:34;25138:1;25130:6;25126:14;25119:58;25211:3;25206:2;25198:6;25194:15;25187:28;25002:220;:::o;25228:165::-;25368:17;25364:1;25356:6;25352:14;25345:41;25228:165;:::o;25399:182::-;25539:34;25535:1;25527:6;25523:14;25516:58;25399:182;:::o;25587:228::-;25727:34;25723:1;25715:6;25711:14;25704:58;25796:11;25791:2;25783:6;25779:15;25772:36;25587:228;:::o;25821:223::-;25961:34;25957:1;25949:6;25945:14;25938:58;26030:6;26025:2;26017:6;26013:15;26006:31;25821:223;:::o;26050:225::-;26190:34;26186:1;26178:6;26174:14;26167:58;26259:8;26254:2;26246:6;26242:15;26235:33;26050:225;:::o;26281:231::-;26421:34;26417:1;26409:6;26405:14;26398:58;26490:14;26485:2;26477:6;26473:15;26466:39;26281:231;:::o;26518:122::-;26591:24;26609:5;26591:24;:::i;:::-;26584:5;26581:35;26571:63;;26630:1;26627;26620:12;26571:63;26518:122;:::o;26646:116::-;26716:21;26731:5;26716:21;:::i;:::-;26709:5;26706:32;26696:60;;26752:1;26749;26742:12;26696:60;26646:116;:::o;26768:122::-;26841:24;26859:5;26841:24;:::i;:::-;26834:5;26831:35;26821:63;;26880:1;26877;26870:12;26821:63;26768:122;:::o

Swarm Source

ipfs://80a1896c074ac289ad7151dfa2c35d406bdd5da31b3047b2c01984330920c69e
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.