ETH Price: $3,407.80 (+6.76%)
Gas: 36 Gwei

Token

Aximetria Token (AXIMETRIA)
 

Overview

Max Total Supply

1,000,000,000 AXIMETRIA

Holders

34 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
esip-6.eth
Balance
1,842,979.262222392167135649 AXIMETRIA

Value
$0.00
0xc6934316eca2a63d5caff42a57c1350849d7659e
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Aximetria is a fully immersive web 3.0 experience with crypto features as standard including a multi-chain wallet and bridge, designed to provide solutions for managing various digital assets, browsing and searching privately, and buy/sell crypto.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AximetriaToken

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-03-28
*/

/*
AXIMETRIA TOKEN
Website : https://aximetriatoken.com
Medium :  https://aximetriatoken.medium.com
Twitter : https://twitter.com/aximetriatoken
Aximetria is a regulated crypto fintech from Switzerland which addresses people's fears and overcomes 
critical restrictions they face when considering crypto. We stake on a balance of top-class digital 
experience and strong commitment to regulation. Swiss financial culture underlying Aximetria's DNA 
makes crypto experience safe and trustworthy. Aximetria was started in 2018 in Zug, today we provide 
top class crypto service to over 60,000 private investors in Europe and beyond. Aximetria GmbH is a 
licensed financial intermediary with the right to process cryptocurrency and fiat transactions. The company 
is a member of the self-regulatory organization (SRO) VQF. VQF is supervised by FINMA (Swiss Financial 
Markets Supervision Authority). The current regulatory status of the company can be checked on the FINMA website.
Aximetria works with clients from all over the world. At the moment, our service is represented in more than 
30 countries around the world. You can contact the support service to check if Aximetria service is available in your country.
According to the requirements of the regulator, cryptoassets are stored in secure certified data centers in 
Switzerland. Access to crypto assets is protected by all necessary information security tools. Aximetria is a 
Swiss company, we adhere to the level of confidentiality accepted for financial institutions in Switzerland. You 
can read more about the privacy policy in the Terms and Information section of this web site.
The taxation regime for cryptocurrency assets depends on the country of your residence. We recommend to 
contact a tax advisor for any tax related questions. To open a crypto account and start buying and selling 
cryptocurrency, you need to install a mobile application on your smartphone, register in it, fill up and check your 
profile. Profile check or Know Your Customer (KYC) procedure is standard for licensed financial institutions. 
Profile check at Aximetria is carried out in accordance with the requirements of VQF SRO. This is one of the key 
elements of the regulator's protection of the clients' interests. Depending on the country of your residence, the 
list of documents may vary. As a rule, a passport or other government-issued document confirming your identity 
is sufficient. A driver's license and residence permit are not accepted as an identity document. Depending on your 
trading turnover, we may ask you to provide additional information, in accordance with the AML-policies of the 
company and the requirements of the Swiss financial regulation.
For example, when reaching a trading turnover of $ 10,000, you have to go through an additional video check. You 
will need 5 minutes of free time and your passport. The check will be in the format of a video call. I cannot pass a 
profile check, have issues uploading photos. Please check the following requirements:
You take a photo of your documents correctly, there are no unnecessary glare, the phone does not cast a shadow 
on the photo, there is good lighting and all data is clearly visible and readable. Your face placed exactly in the circle
and clearly visible. You take a photo of a full page of the document and it is not clopped anywhere. You are downloading 
the correct document. If you do everything like this, but there are still issues with uploading, send us a screenshot 
Mission
Unite millions of people to explore the world of DeFi and Web3 together in a simple, clear and entertaining way. To 
build a community of happy, proactive and financially independent participants changing the world for the better.
Vision
Blockchain technology has continued to develop and grow, and has now been expanded to 
various business fields and general technologies throughout society. Non-Fungible Tokens have emerged as a 
solution to the current imbalanced app and gaming market in that they can permanently secure digital ownership of 
items without the risk of hacking, counterfeiting or tampering. In previous generations of app, users who own certain 
items only have the right to use those items within the app, making them unable to access the items, or if other users 
steal the items due to a hacked app account. It was difficult to claim digital ownership. However, in blockchain apps, 
these problems are relatively low. Because it is open source, anyone can verify digital ownership of in-app items, the 
risk of loss or hacking is low, and digital ownership of those items remains entirely with the user.
Aximetria app using blockchain preserve the value of in-app transfer them to another app even if the app is destroyed. 
In addition, through the marketplace implemented on the Aximetria app, tokenized assets can be traded on the blockchain. 
In addition, we aim for a app that allows all participants to participate in the decision-making and operation of important 
service changes in the ecosystem so that they can become the owners of the app. 

The goal of the AXIMETRIA Project
Users who participate in the app should grow with the app that they enjoy, and with that growth, users should share a fair 
profit. We want to create a growth cycle of profit that anyone can understand by creating a value that can lead to greater 
growth by composing a cyclical ecosystem in the app based on our profits. Each user enjoys the app and forms an asset 
of independent value and exchanges it with the assets of other users. However, the value of the assets of the content 
owned by users must be continuously recognized. We continue to recognize its value, manage and protect individual users' 
assets, and allow them to be exchanged with other users. Above all, since participants and developers must grow together 
with the app, the Aximetria project is being built on the basis of a blockchain environment. The flow of users' economic 
activities through app is very similar to the general social sharing economy phenomenon and the flow of growth, so it has a 
very large growth potential. The interconnection of each user's assets within the app ecosystem means that each user's effort 
becomes an asset. It can be said that the goal of the Aximetria project is to create an environment in which the value of these 
assets can be developed stably.
*/
// 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 AximetriaToken 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.Aximetriatoken.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"}]

60806040526040518060400160405280601681526020017f7777772e4178696d6574726961746f6b656e2e636f6d0000000000000000000081525060089080519060200190620000519291906200034b565b506040518060400160405280600281526020017f3925000000000000000000000000000000000000000000000000000000000000815250600990805190602001906200009f9291906200034b565b506040518060400160405280600381526020017f3132250000000000000000000000000000000000000000000000000000000000815250600a9080519060200190620000ed9291906200034b565b50600019600f5560646011553480156200010657600080fd5b5060405162005b2238038062005b2283398181016040528101906200012c9190620004a7565b88600b9080519060200190620001449291906200034b565b5087600c90805190602001906200015d9291906200034b565b5086600d81905550600d54600a6200017691906200067e565b601081905550601054866200018c9190620007bb565b601281905550601254600f54620001a4919062000937565b600f54620001b391906200081c565b601381905550606485620001c89190620007bb565b601781905550606484620001dd9190620007bb565b601881905550606483620001f29190620007bb565b601981905550601754601a81905550601854601b81905550601954601c8190555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601354600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050505062000a91565b8280546200035990620008cb565b90600052602060002090601f0160209004810192826200037d5760008555620003c9565b82601f106200039857805160ff1916838001178555620003c9565b82800160010185558215620003c9579182015b82811115620003c8578251825591602001919060010190620003ab565b5b509050620003d89190620003dc565b5090565b5b80821115620003f7576000816000905550600101620003dd565b5090565b6000620004126200040c84620005ed565b620005c4565b90508281526020810184848401111562000431576200043062000a30565b5b6200043e84828562000895565b509392505050565b600081519050620004578162000a5d565b92915050565b600082601f83011262000475576200047462000a2b565b5b815162000487848260208601620003fb565b91505092915050565b600081519050620004a18162000a77565b92915050565b60008060008060008060008060006101208a8c031215620004cd57620004cc62000a3a565b5b60008a015167ffffffffffffffff811115620004ee57620004ed62000a35565b5b620004fc8c828d016200045d565b99505060208a015167ffffffffffffffff81111562000520576200051f62000a35565b5b6200052e8c828d016200045d565b9850506040620005418c828d0162000490565b9750506060620005548c828d0162000490565b9650506080620005678c828d0162000490565b95505060a06200057a8c828d0162000490565b94505060c06200058d8c828d0162000490565b93505060e0620005a08c828d0162000446565b925050610100620005b48c828d0162000446565b9150509295985092959850929598565b6000620005d0620005e3565b9050620005de828262000901565b919050565b6000604051905090565b600067ffffffffffffffff8211156200060b576200060a620009fc565b5b620006168262000a3f565b9050602081019050919050565b6000808291508390505b600185111562000675578086048111156200064d576200064c6200096f565b5b60018516156200065d5780820291505b80810290506200066d8562000a50565b94506200062d565b94509492505050565b60006200068b826200088b565b915062000698836200088b565b9250620006c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006cf565b905092915050565b600082620006e15760019050620007b4565b81620006f15760009050620007b4565b81600181146200070a576002811462000715576200074b565b6001915050620007b4565b60ff8411156200072a57620007296200096f565b5b8360020a9150848211156200074457620007436200096f565b5b50620007b4565b5060208310610133831016604e8410600b8410161715620007855782820a9050838111156200077f576200077e6200096f565b5b620007b4565b62000794848484600162000623565b92509050818404811115620007ae57620007ad6200096f565b5b81810290505b9392505050565b6000620007c8826200088b565b9150620007d5836200088b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200081157620008106200096f565b5b828202905092915050565b600062000829826200088b565b915062000836836200088b565b9250828210156200084c576200084b6200096f565b5b828203905092915050565b600062000864826200086b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620008b557808201518184015260208101905062000898565b83811115620008c5576000848401525b50505050565b60006002820490506001821680620008e457607f821691505b60208210811415620008fb57620008fa620009cd565b5b50919050565b6200090c8262000a3f565b810181811067ffffffffffffffff821117156200092e576200092d620009fc565b5b80604052505050565b600062000944826200088b565b915062000951836200088b565b9250826200096457620009636200099e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000a688162000857565b811462000a7457600080fd5b50565b62000a82816200088b565b811462000a8e57600080fd5b50565b6150818062000aa16000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637dd37f7011610130578063aec48a0e116100b8578063dd62ed3e1161007c578063dd62ed3e14610694578063f2cc0c18146106c4578063f2fde38b146106e0578063f84354f1146106fc578063fc061a4f1461071857610227565b8063aec48a0e146105dc578063b2bdfa7b146105f8578063b586242814610616578063b7492daf14610634578063cba0e9961461066457610227565b806395d89b41116100ff57806395d89b4114610522578063a457c2d714610540578063a55d4d5c14610570578063a9059cbb1461058e578063a9490cb1146105be57610227565b80637dd37f70146104ae57806381fb5812146104cc5780638da5cb5b146104e85780638e7d94b51461050657610227565b806339509351116101b35780634146db39116101825780634146db39146104085780634549b0391461042657806370a0823114610456578063715018a61461048657806377ef79931461049057610227565b8063395093511461036e5780633bbac5791461039e5780633bd5d173146103ce5780633c9f861d146103ea57610227565b80631ef7b430116101fa5780631ef7b430146102b657806323b872dd146102d45780632597e6e5146103045780632d83811914610320578063313ce5671461035057610227565b806306fdde031461022c578063095ea7b31461024a57806313114a9d1461027a57806318160ddd14610298575b600080fd5b610234610734565b6040516102419190614642565b60405180910390f35b610264600480360381019061025f9190614267565b6107c6565b6040516102719190614627565b60405180910390f35b6102826107e4565b60405161028f9190614864565b60405180910390f35b6102a06107ee565b6040516102ad9190614864565b60405180910390f35b6102be6107f8565b6040516102cb9190614864565b60405180910390f35b6102ee60048036038101906102e991906141d4565b610802565b6040516102fb9190614627565b60405180910390f35b61031e60048036038101906103199190614227565b6108db565b005b61033a600480360381019061033591906142a7565b610a28565b6040516103479190614864565b60405180910390f35b610358610a96565b604051610365919061487f565b60405180910390f35b61038860048036038101906103839190614267565b610aa0565b6040516103959190614627565b60405180910390f35b6103b860048036038101906103b39190614167565b610b53565b6040516103c59190614627565b60405180910390f35b6103e860048036038101906103e391906142a7565b610ba9565b005b6103f2610d25565b6040516103ff9190614864565b60405180910390f35b610410610d2f565b60405161041d9190614642565b60405180910390f35b610440600480360381019061043b91906142d4565b610dbd565b60405161044d9190614864565b60405180910390f35b610470600480360381019061046b9190614167565b610e43565b60405161047d9190614864565b60405180910390f35b61048e610f2e565b005b610498611081565b6040516104a59190614864565b60405180910390f35b6104b6611087565b6040516104c39190614642565b60405180910390f35b6104e660048036038101906104e19190614167565b611115565b005b6104f06112f7565b6040516104fd919061460c565b60405180910390f35b610520600480360381019061051b9190614167565b611320565b005b61052a61162c565b6040516105379190614642565b60405180910390f35b61055a60048036038101906105559190614267565b6116be565b6040516105679190614627565b60405180910390f35b61057861178b565b6040516105859190614864565b60405180910390f35b6105a860048036038101906105a39190614267565b611791565b6040516105b59190614627565b60405180910390f35b6105c66117af565b6040516105d39190614642565b60405180910390f35b6105f660048036038101906105f19190614167565b61183d565b005b610600611918565b60405161060d919061460c565b60405180910390f35b61061e61193c565b60405161062b9190614864565b60405180910390f35b61064e60048036038101906106499190614167565b611942565b60405161065b9190614627565b60405180910390f35b61067e60048036038101906106799190614167565b611998565b60405161068b9190614627565b60405180910390f35b6106ae60048036038101906106a99190614194565b6119ee565b6040516106bb9190614864565b60405180910390f35b6106de60048036038101906106d99190614167565b611a75565b005b6106fa60048036038101906106f59190614167565b611d2b565b005b61071660048036038101906107119190614167565b611eed565b005b610732600480360381019061072d9190614314565b61223e565b005b6060600b805461074390614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90614a53565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b60006107da6107d3612353565b848461235b565b6001905092915050565b6000601454905090565b6000601254905090565b6000601654905090565b600061080f848484612526565b6108d08461081b612353565b6108cb856040518060600160405280602a8152602001615022602a9139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610881612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b600190509392505050565b6108e3612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610969906146a4565b60405180910390fd5b80156109d45780601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610a24565b601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b5050565b6000601354821115610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a66906146c4565b60405180910390fd5b6000610a79612bac565b9050610a8e8184612bd790919063ffffffff16565b915050919050565b6000600d54905090565b6000610b49610aad612353565b84610b448560036000610abe612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b61235b565b6001905092915050565b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610bb3612353565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990614844565b60405180910390fd5b6000610c4d83612c7f565b5050505050509050610ca781600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cff81601354612d0d90919063ffffffff16565b601381905550610d1a83601454612c2190919063ffffffff16565b601481905550505050565b6000601554905090565b60098054610d3c90614a53565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6890614a53565b8015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b505050505081565b6000601254831115610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb90614764565b60405180910390fd5b81610e25576000610e1484612c7f565b505050505050905080915050610e3d565b6000610e3084612c7f565b5050505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ede57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610f29565b610f26600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b90505b919050565b610f36612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60185481565b600a805461109490614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546110c090614a53565b801561110d5780601f106110e25761010080835404028352916020019161110d565b820191906000526020600020905b8154815290600101906020018083116110f057829003601f168201915b505050505081565b61111d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a3906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090614724565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611328612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90614744565b60405180910390fd5b60005b600780549050811015611628578173ffffffffffffffffffffffffffffffffffffffff166007828154811061147e5761147d614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561161557600760016007805490506114d99190614997565b815481106114ea576114e9614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007828154811061152957611528614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078054806115db576115da614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611628565b808061162090614a85565b915050611446565b5050565b6060600c805461163b90614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461166790614a53565b80156116b45780601f10611689576101008083540402835291602001916116b4565b820191906000526020600020905b81548152906001019060200180831161169757829003601f168201915b5050505050905090565b60006117816116cb612353565b8461177c85604051806060016040528060278152602001614ffb60279139600360006116f5612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b6001905092915050565b60195481565b60006117a561179e612353565b8484612526565b6001905092915050565b600880546117bc90614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546117e890614a53565b80156118355780601f1061180a57610100808354040283529160200191611835565b820191906000526020600020905b81548152906001019060200180831161181857829003601f168201915b505050505081565b611845612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb906146a4565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a7d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9090614724565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611c6d57611c29600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d33612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906146e4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ef5612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200790614744565b60405180910390fd5b60005b60058054905081101561223a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061204b5761204a614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561222757600560016005805490506120a69190614997565b815481106120b7576120b6614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106120f6576120f5614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806121ed576121ec614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561223a565b808061223290614a85565b915050612013565b5050565b612246612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc906146a4565b60405180910390fd5b6064831080156122e55750606482105b80156122f15750606481105b6122fa57600080fd5b606483612307919061493d565b60178190555060648261231a919061493d565b60188190555060648161232d919061493d565b601981905550601754601a81905550601854601b81905550601954601c81905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290614824565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561243b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243290614804565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125199190614864565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d90614684565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614664565b60405180910390fd5b60008111612649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612640906147e4565b60405180910390fd5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906147a4565b60405180910390fd5b6000600190508373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061278557508273ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806127d95750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061282d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561283757600090505b8061284557612844612d57565b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128e85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128fd576128f8848484612db9565b612b34565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129a05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129b5576129b0848484612e95565b612b33565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a595750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a6e57612a69848484612f71565b612b32565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b2557612b2084848461304c565b612b31565b612b30848484612f71565b5b5b5b5b80612b4257612b41613129565b5b50505050565b6000838311158290612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b879190614642565b60405180910390fd5b5060008385612b9f9190614997565b9050809150509392505050565b6000806000612bb9613146565b91509150612bd08183612bd790919063ffffffff16565b9250505090565b6000612c1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133f9565b905092915050565b6000808284612c3091906148b6565b905083811015612c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6c90614704565b60405180910390fd5b8091505092915050565b600080600080600080600080600080612ca08b60175460185460195461345c565b9250925092506000612cb48c858585613530565b90506000612cc0612bac565b9050600080612cd08f8885613573565b915091506000612ce383838989886135b4565b9050828183878b8b8b9e509e509e509e509e509e509e505050505050505050919395979092949650565b6000612d4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b48565b905092915050565b6000601754148015612d6b57506000601854145b8015612d7957506000601954145b15612d8357612db7565b601754601a81905550601854601b81905550601954601c819055506000601781905550600060188190555060006019819055505b565b6000612dc3612bac565b90506000806000806000806000612dd989612c7f565b96509650965096509650965096506000612dfc898461362d90919063ffffffff16565b9050612e0b8c8c8c8b8b6136a8565b612e15828d61386e565b612e228682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612e7f9190614864565b60405180910390a3505050505050505050505050565b6000612e9f612bac565b90506000806000806000806000612eb589612c7f565b96509650965096509650965096506000612ed8898461362d90919063ffffffff16565b9050612ee78c8c878b8b613bd6565b612ef1828d61386e565b612efe8682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612f5b9190614864565b60405180910390a3505050505050505050505050565b6000612f7b612bac565b90506000806000806000806000612f9189612c7f565b96509650965096509650965096506000612fb4898461362d90919063ffffffff16565b9050612fc28c8c8a8a613d9c565b612fcc828d61386e565b612fd98682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516130369190614864565b60405180910390a3505050505050505050505050565b6000613056612bac565b9050600080600080600080600061306c89612c7f565b9650965096509650965096509650600061308f898461362d90919063ffffffff16565b905061309f8c8c8c8b898c613ecc565b6130a9828d61386e565b6130b68682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516131139190614864565b60405180910390a3505050505050505050505050565b601a54601781905550601b54601881905550601c54601981905550565b600080600060135490506000601254905060005b6005805490508110156133bc578260016000600584815481106131805761317f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061326e575081600260006005848154811061320657613205614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561328557601354601254945094505050506133f5565b61331560016000600584815481106132a05761329f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612d0d90919063ffffffff16565b92506133a7600260006005848154811061333257613331614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d0d90919063ffffffff16565b915080806133b490614a85565b91505061315a565b506133d4601254601354612bd790919063ffffffff16565b8210156133ec576013546012549350935050506133f5565b81819350935050505b9091565b60008083118290613440576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134379190614642565b60405180910390fd5b506000838561344f919061490c565b9050809150509392505050565b60008060008061349c606461348e6011546134808b8d61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b905060006134da60646134cc6011546134be8b8e61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90506000613518606461350a6011546134fc8b8f61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90508282829550955095505050509450945094915050565b60006135698261355b8561354d888a612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b9050949350505050565b600080600061358b848761362d90919063ffffffff16565b905060006135a2858761362d90919063ffffffff16565b90508181935093505050935093915050565b6000806135ca838661362d90919063ffffffff16565b905060006135e1848661362d90919063ffffffff16565b9050600061361c8261360e856136008c8e612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b905080935050505095945050505050565b60008083141561364057600090506136a2565b6000828461364e919061493d565b905082848261365d919061490c565b1461369d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369490614784565b60405180910390fd5b809150505b92915050565b6136fa83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378f82600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061382481600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b6000613878612bac565b9050600061388f828561362d90919063ffffffff16565b90506139058160016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139de8460026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051613ac29190614864565b60405180910390a350505050565b613af784613ae987601354612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b601381905550613b1283601454612c2190919063ffffffff16565b601481905550613b2d82601554612c2190919063ffffffff16565b601581905550613b4881601654612c2190919063ffffffff16565b601681905550613b6382601254612d0d90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bc79190614864565b60405180910390a35050505050565b613c2882600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613cbd83600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d5281600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b613dee82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e8381600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b613f1e84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fb383600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061404882600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140dd81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b60008135905061413781614fb5565b92915050565b60008135905061414c81614fcc565b92915050565b60008135905061416181614fe3565b92915050565b60006020828403121561417d5761417c614bb9565b5b600061418b84828501614128565b91505092915050565b600080604083850312156141ab576141aa614bb9565b5b60006141b985828601614128565b92505060206141ca85828601614128565b9150509250929050565b6000806000606084860312156141ed576141ec614bb9565b5b60006141fb86828701614128565b935050602061420c86828701614128565b925050604061421d86828701614152565b9150509250925092565b6000806040838503121561423e5761423d614bb9565b5b600061424c85828601614128565b925050602061425d8582860161413d565b9150509250929050565b6000806040838503121561427e5761427d614bb9565b5b600061428c85828601614128565b925050602061429d85828601614152565b9150509250929050565b6000602082840312156142bd576142bc614bb9565b5b60006142cb84828501614152565b91505092915050565b600080604083850312156142eb576142ea614bb9565b5b60006142f985828601614152565b925050602061430a8582860161413d565b9150509250929050565b60008060006060848603121561432d5761432c614bb9565b5b600061433b86828701614152565b935050602061434c86828701614152565b925050604061435d86828701614152565b9150509250925092565b614370816149cb565b82525050565b61437f816149dd565b82525050565b60006143908261489a565b61439a81856148a5565b93506143aa818560208601614a20565b6143b381614bbe565b840191505092915050565b60006143cb6025836148a5565b91506143d682614bcf565b604082019050919050565b60006143ee6027836148a5565b91506143f982614c1e565b604082019050919050565b60006144116017836148a5565b915061441c82614c6d565b602082019050919050565b6000614434602a836148a5565b915061443f82614c96565b604082019050919050565b60006144576026836148a5565b915061446282614ce5565b604082019050919050565b600061447a601b836148a5565b915061448582614d34565b602082019050919050565b600061449d601b836148a5565b91506144a882614d5d565b602082019050919050565b60006144c0601b836148a5565b91506144cb82614d86565b602082019050919050565b60006144e3601f836148a5565b91506144ee82614daf565b602082019050919050565b60006145066021836148a5565b915061451182614dd8565b604082019050919050565b6000614529600f836148a5565b915061453482614e27565b602082019050919050565b600061454c6020836148a5565b915061455782614e50565b602082019050919050565b600061456f6029836148a5565b915061457a82614e79565b604082019050919050565b60006145926024836148a5565b915061459d82614ec8565b604082019050919050565b60006145b56026836148a5565b91506145c082614f17565b604082019050919050565b60006145d8602c836148a5565b91506145e382614f66565b604082019050919050565b6145f781614a09565b82525050565b61460681614a13565b82525050565b60006020820190506146216000830184614367565b92915050565b600060208201905061463c6000830184614376565b92915050565b6000602082019050818103600083015261465c8184614385565b905092915050565b6000602082019050818103600083015261467d816143be565b9050919050565b6000602082019050818103600083015261469d816143e1565b9050919050565b600060208201905081810360008301526146bd81614404565b9050919050565b600060208201905081810360008301526146dd81614427565b9050919050565b600060208201905081810360008301526146fd8161444a565b9050919050565b6000602082019050818103600083015261471d8161446d565b9050919050565b6000602082019050818103600083015261473d81614490565b9050919050565b6000602082019050818103600083015261475d816144b3565b9050919050565b6000602082019050818103600083015261477d816144d6565b9050919050565b6000602082019050818103600083015261479d816144f9565b9050919050565b600060208201905081810360008301526147bd8161451c565b9050919050565b600060208201905081810360008301526147dd8161453f565b9050919050565b600060208201905081810360008301526147fd81614562565b9050919050565b6000602082019050818103600083015261481d81614585565b9050919050565b6000602082019050818103600083015261483d816145a8565b9050919050565b6000602082019050818103600083015261485d816145cb565b9050919050565b600060208201905061487960008301846145ee565b92915050565b600060208201905061489460008301846145fd565b92915050565b600081519050919050565b600082825260208201905092915050565b60006148c182614a09565b91506148cc83614a09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561490157614900614ace565b5b828201905092915050565b600061491782614a09565b915061492283614a09565b92508261493257614931614afd565b5b828204905092915050565b600061494882614a09565b915061495383614a09565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561498c5761498b614ace565b5b828202905092915050565b60006149a282614a09565b91506149ad83614a09565b9250828210156149c0576149bf614ace565b5b828203905092915050565b60006149d6826149e9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015614a3e578082015181840152602081019050614a23565b83811115614a4d576000848401525b50505050565b60006002820490506001821680614a6b57607f821691505b60208210811415614a7f57614a7e614b2c565b5b50919050565b6000614a9082614a09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ac357614ac2614ace565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f544f4b454e32303a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f426f74206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b614fbe816149cb565b8114614fc957600080fd5b50565b614fd5816149dd565b8114614fe057600080fd5b50565b614fec81614a09565b8114614ff757600080fd5b5056fe544f4b454e32303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f544f4b454e32303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200480f0a7b2fce1ca06ed3eb29aeba48d4eedbdac3c0a27d16bc37d6979b53edb64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e606a8cd775548ae79eac711fbad9e43cafb7ce60000000000000000000000007eace1d7f00d529aa56ac1bbf6d381ba794daeec000000000000000000000000000000000000000000000000000000000000000f4178696d657472696120546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094158494d45545249410000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102275760003560e01c80637dd37f7011610130578063aec48a0e116100b8578063dd62ed3e1161007c578063dd62ed3e14610694578063f2cc0c18146106c4578063f2fde38b146106e0578063f84354f1146106fc578063fc061a4f1461071857610227565b8063aec48a0e146105dc578063b2bdfa7b146105f8578063b586242814610616578063b7492daf14610634578063cba0e9961461066457610227565b806395d89b41116100ff57806395d89b4114610522578063a457c2d714610540578063a55d4d5c14610570578063a9059cbb1461058e578063a9490cb1146105be57610227565b80637dd37f70146104ae57806381fb5812146104cc5780638da5cb5b146104e85780638e7d94b51461050657610227565b806339509351116101b35780634146db39116101825780634146db39146104085780634549b0391461042657806370a0823114610456578063715018a61461048657806377ef79931461049057610227565b8063395093511461036e5780633bbac5791461039e5780633bd5d173146103ce5780633c9f861d146103ea57610227565b80631ef7b430116101fa5780631ef7b430146102b657806323b872dd146102d45780632597e6e5146103045780632d83811914610320578063313ce5671461035057610227565b806306fdde031461022c578063095ea7b31461024a57806313114a9d1461027a57806318160ddd14610298575b600080fd5b610234610734565b6040516102419190614642565b60405180910390f35b610264600480360381019061025f9190614267565b6107c6565b6040516102719190614627565b60405180910390f35b6102826107e4565b60405161028f9190614864565b60405180910390f35b6102a06107ee565b6040516102ad9190614864565b60405180910390f35b6102be6107f8565b6040516102cb9190614864565b60405180910390f35b6102ee60048036038101906102e991906141d4565b610802565b6040516102fb9190614627565b60405180910390f35b61031e60048036038101906103199190614227565b6108db565b005b61033a600480360381019061033591906142a7565b610a28565b6040516103479190614864565b60405180910390f35b610358610a96565b604051610365919061487f565b60405180910390f35b61038860048036038101906103839190614267565b610aa0565b6040516103959190614627565b60405180910390f35b6103b860048036038101906103b39190614167565b610b53565b6040516103c59190614627565b60405180910390f35b6103e860048036038101906103e391906142a7565b610ba9565b005b6103f2610d25565b6040516103ff9190614864565b60405180910390f35b610410610d2f565b60405161041d9190614642565b60405180910390f35b610440600480360381019061043b91906142d4565b610dbd565b60405161044d9190614864565b60405180910390f35b610470600480360381019061046b9190614167565b610e43565b60405161047d9190614864565b60405180910390f35b61048e610f2e565b005b610498611081565b6040516104a59190614864565b60405180910390f35b6104b6611087565b6040516104c39190614642565b60405180910390f35b6104e660048036038101906104e19190614167565b611115565b005b6104f06112f7565b6040516104fd919061460c565b60405180910390f35b610520600480360381019061051b9190614167565b611320565b005b61052a61162c565b6040516105379190614642565b60405180910390f35b61055a60048036038101906105559190614267565b6116be565b6040516105679190614627565b60405180910390f35b61057861178b565b6040516105859190614864565b60405180910390f35b6105a860048036038101906105a39190614267565b611791565b6040516105b59190614627565b60405180910390f35b6105c66117af565b6040516105d39190614642565b60405180910390f35b6105f660048036038101906105f19190614167565b61183d565b005b610600611918565b60405161060d919061460c565b60405180910390f35b61061e61193c565b60405161062b9190614864565b60405180910390f35b61064e60048036038101906106499190614167565b611942565b60405161065b9190614627565b60405180910390f35b61067e60048036038101906106799190614167565b611998565b60405161068b9190614627565b60405180910390f35b6106ae60048036038101906106a99190614194565b6119ee565b6040516106bb9190614864565b60405180910390f35b6106de60048036038101906106d99190614167565b611a75565b005b6106fa60048036038101906106f59190614167565b611d2b565b005b61071660048036038101906107119190614167565b611eed565b005b610732600480360381019061072d9190614314565b61223e565b005b6060600b805461074390614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90614a53565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b60006107da6107d3612353565b848461235b565b6001905092915050565b6000601454905090565b6000601254905090565b6000601654905090565b600061080f848484612526565b6108d08461081b612353565b6108cb856040518060600160405280602a8152602001615022602a9139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610881612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b600190509392505050565b6108e3612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610969906146a4565b60405180910390fd5b80156109d45780601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610a24565b601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b5050565b6000601354821115610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a66906146c4565b60405180910390fd5b6000610a79612bac565b9050610a8e8184612bd790919063ffffffff16565b915050919050565b6000600d54905090565b6000610b49610aad612353565b84610b448560036000610abe612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b61235b565b6001905092915050565b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610bb3612353565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990614844565b60405180910390fd5b6000610c4d83612c7f565b5050505050509050610ca781600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cff81601354612d0d90919063ffffffff16565b601381905550610d1a83601454612c2190919063ffffffff16565b601481905550505050565b6000601554905090565b60098054610d3c90614a53565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6890614a53565b8015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b505050505081565b6000601254831115610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb90614764565b60405180910390fd5b81610e25576000610e1484612c7f565b505050505050905080915050610e3d565b6000610e3084612c7f565b5050505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ede57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610f29565b610f26600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b90505b919050565b610f36612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60185481565b600a805461109490614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546110c090614a53565b801561110d5780601f106110e25761010080835404028352916020019161110d565b820191906000526020600020905b8154815290600101906020018083116110f057829003601f168201915b505050505081565b61111d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a3906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090614724565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611328612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906146a4565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90614744565b60405180910390fd5b60005b600780549050811015611628578173ffffffffffffffffffffffffffffffffffffffff166007828154811061147e5761147d614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561161557600760016007805490506114d99190614997565b815481106114ea576114e9614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007828154811061152957611528614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078054806115db576115da614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611628565b808061162090614a85565b915050611446565b5050565b6060600c805461163b90614a53565b80601f016020809104026020016040519081016040528092919081815260200182805461166790614a53565b80156116b45780601f10611689576101008083540402835291602001916116b4565b820191906000526020600020905b81548152906001019060200180831161169757829003601f168201915b5050505050905090565b60006117816116cb612353565b8461177c85604051806060016040528060278152602001614ffb60279139600360006116f5612353565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b489092919063ffffffff16565b61235b565b6001905092915050565b60195481565b60006117a561179e612353565b8484612526565b6001905092915050565b600880546117bc90614a53565b80601f01602080910402602001604051908101604052809291908181526020018280546117e890614a53565b80156118355780601f1061180a57610100808354040283529160200191611835565b820191906000526020600020905b81548152906001019060200180831161181857829003601f168201915b505050505081565b611845612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb906146a4565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a7d612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9090614724565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611c6d57611c29600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a28565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d33612353565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906147c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906146e4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ef5612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906146a4565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200790614744565b60405180910390fd5b60005b60058054905081101561223a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061204b5761204a614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561222757600560016005805490506120a69190614997565b815481106120b7576120b6614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106120f6576120f5614b8a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806121ed576121ec614b5b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561223a565b808061223290614a85565b915050612013565b5050565b612246612353565b73ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc906146a4565b60405180910390fd5b6064831080156122e55750606482105b80156122f15750606481105b6122fa57600080fd5b606483612307919061493d565b60178190555060648261231a919061493d565b60188190555060648161232d919061493d565b601981905550601754601a81905550601854601b81905550601954601c81905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290614824565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561243b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243290614804565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125199190614864565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d90614684565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614664565b60405180910390fd5b60008111612649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612640906147e4565b60405180910390fd5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906147a4565b60405180910390fd5b6000600190508373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061278557508273ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806127d95750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061282d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561283757600090505b8061284557612844612d57565b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128e85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128fd576128f8848484612db9565b612b34565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129a05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129b5576129b0848484612e95565b612b33565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a595750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a6e57612a69848484612f71565b612b32565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b2557612b2084848461304c565b612b31565b612b30848484612f71565b5b5b5b5b80612b4257612b41613129565b5b50505050565b6000838311158290612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b879190614642565b60405180910390fd5b5060008385612b9f9190614997565b9050809150509392505050565b6000806000612bb9613146565b91509150612bd08183612bd790919063ffffffff16565b9250505090565b6000612c1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133f9565b905092915050565b6000808284612c3091906148b6565b905083811015612c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6c90614704565b60405180910390fd5b8091505092915050565b600080600080600080600080600080612ca08b60175460185460195461345c565b9250925092506000612cb48c858585613530565b90506000612cc0612bac565b9050600080612cd08f8885613573565b915091506000612ce383838989886135b4565b9050828183878b8b8b9e509e509e509e509e509e509e505050505050505050919395979092949650565b6000612d4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b48565b905092915050565b6000601754148015612d6b57506000601854145b8015612d7957506000601954145b15612d8357612db7565b601754601a81905550601854601b81905550601954601c819055506000601781905550600060188190555060006019819055505b565b6000612dc3612bac565b90506000806000806000806000612dd989612c7f565b96509650965096509650965096506000612dfc898461362d90919063ffffffff16565b9050612e0b8c8c8c8b8b6136a8565b612e15828d61386e565b612e228682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612e7f9190614864565b60405180910390a3505050505050505050505050565b6000612e9f612bac565b90506000806000806000806000612eb589612c7f565b96509650965096509650965096506000612ed8898461362d90919063ffffffff16565b9050612ee78c8c878b8b613bd6565b612ef1828d61386e565b612efe8682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612f5b9190614864565b60405180910390a3505050505050505050505050565b6000612f7b612bac565b90506000806000806000806000612f9189612c7f565b96509650965096509650965096506000612fb4898461362d90919063ffffffff16565b9050612fc28c8c8a8a613d9c565b612fcc828d61386e565b612fd98682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516130369190614864565b60405180910390a3505050505050505050505050565b6000613056612bac565b9050600080600080600080600061306c89612c7f565b9650965096509650965096509650600061308f898461362d90919063ffffffff16565b905061309f8c8c8c8b898c613ecc565b6130a9828d61386e565b6130b68682868686613ad0565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516131139190614864565b60405180910390a3505050505050505050505050565b601a54601781905550601b54601881905550601c54601981905550565b600080600060135490506000601254905060005b6005805490508110156133bc578260016000600584815481106131805761317f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061326e575081600260006005848154811061320657613205614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561328557601354601254945094505050506133f5565b61331560016000600584815481106132a05761329f614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612d0d90919063ffffffff16565b92506133a7600260006005848154811061333257613331614b8a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d0d90919063ffffffff16565b915080806133b490614a85565b91505061315a565b506133d4601254601354612bd790919063ffffffff16565b8210156133ec576013546012549350935050506133f5565b81819350935050505b9091565b60008083118290613440576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134379190614642565b60405180910390fd5b506000838561344f919061490c565b9050809150509392505050565b60008060008061349c606461348e6011546134808b8d61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b905060006134da60646134cc6011546134be8b8e61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90506000613518606461350a6011546134fc8b8f61362d90919063ffffffff16565b612bd790919063ffffffff16565b612bd790919063ffffffff16565b90508282829550955095505050509450945094915050565b60006135698261355b8561354d888a612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b9050949350505050565b600080600061358b848761362d90919063ffffffff16565b905060006135a2858761362d90919063ffffffff16565b90508181935093505050935093915050565b6000806135ca838661362d90919063ffffffff16565b905060006135e1848661362d90919063ffffffff16565b9050600061361c8261360e856136008c8e612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b905080935050505095945050505050565b60008083141561364057600090506136a2565b6000828461364e919061493d565b905082848261365d919061490c565b1461369d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369490614784565b60405180910390fd5b809150505b92915050565b6136fa83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378f82600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061382481600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b6000613878612bac565b9050600061388f828561362d90919063ffffffff16565b90506139058160016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139de8460026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b60026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051613ac29190614864565b60405180910390a350505050565b613af784613ae987601354612d0d90919063ffffffff16565b612d0d90919063ffffffff16565b601381905550613b1283601454612c2190919063ffffffff16565b601481905550613b2d82601554612c2190919063ffffffff16565b601581905550613b4881601654612c2190919063ffffffff16565b601681905550613b6382601254612d0d90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bc79190614864565b60405180910390a35050505050565b613c2882600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613cbd83600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d5281600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b613dee82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e8381600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b613f1e84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fb383600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061404882600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140dd81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b60008135905061413781614fb5565b92915050565b60008135905061414c81614fcc565b92915050565b60008135905061416181614fe3565b92915050565b60006020828403121561417d5761417c614bb9565b5b600061418b84828501614128565b91505092915050565b600080604083850312156141ab576141aa614bb9565b5b60006141b985828601614128565b92505060206141ca85828601614128565b9150509250929050565b6000806000606084860312156141ed576141ec614bb9565b5b60006141fb86828701614128565b935050602061420c86828701614128565b925050604061421d86828701614152565b9150509250925092565b6000806040838503121561423e5761423d614bb9565b5b600061424c85828601614128565b925050602061425d8582860161413d565b9150509250929050565b6000806040838503121561427e5761427d614bb9565b5b600061428c85828601614128565b925050602061429d85828601614152565b9150509250929050565b6000602082840312156142bd576142bc614bb9565b5b60006142cb84828501614152565b91505092915050565b600080604083850312156142eb576142ea614bb9565b5b60006142f985828601614152565b925050602061430a8582860161413d565b9150509250929050565b60008060006060848603121561432d5761432c614bb9565b5b600061433b86828701614152565b935050602061434c86828701614152565b925050604061435d86828701614152565b9150509250925092565b614370816149cb565b82525050565b61437f816149dd565b82525050565b60006143908261489a565b61439a81856148a5565b93506143aa818560208601614a20565b6143b381614bbe565b840191505092915050565b60006143cb6025836148a5565b91506143d682614bcf565b604082019050919050565b60006143ee6027836148a5565b91506143f982614c1e565b604082019050919050565b60006144116017836148a5565b915061441c82614c6d565b602082019050919050565b6000614434602a836148a5565b915061443f82614c96565b604082019050919050565b60006144576026836148a5565b915061446282614ce5565b604082019050919050565b600061447a601b836148a5565b915061448582614d34565b602082019050919050565b600061449d601b836148a5565b91506144a882614d5d565b602082019050919050565b60006144c0601b836148a5565b91506144cb82614d86565b602082019050919050565b60006144e3601f836148a5565b91506144ee82614daf565b602082019050919050565b60006145066021836148a5565b915061451182614dd8565b604082019050919050565b6000614529600f836148a5565b915061453482614e27565b602082019050919050565b600061454c6020836148a5565b915061455782614e50565b602082019050919050565b600061456f6029836148a5565b915061457a82614e79565b604082019050919050565b60006145926024836148a5565b915061459d82614ec8565b604082019050919050565b60006145b56026836148a5565b91506145c082614f17565b604082019050919050565b60006145d8602c836148a5565b91506145e382614f66565b604082019050919050565b6145f781614a09565b82525050565b61460681614a13565b82525050565b60006020820190506146216000830184614367565b92915050565b600060208201905061463c6000830184614376565b92915050565b6000602082019050818103600083015261465c8184614385565b905092915050565b6000602082019050818103600083015261467d816143be565b9050919050565b6000602082019050818103600083015261469d816143e1565b9050919050565b600060208201905081810360008301526146bd81614404565b9050919050565b600060208201905081810360008301526146dd81614427565b9050919050565b600060208201905081810360008301526146fd8161444a565b9050919050565b6000602082019050818103600083015261471d8161446d565b9050919050565b6000602082019050818103600083015261473d81614490565b9050919050565b6000602082019050818103600083015261475d816144b3565b9050919050565b6000602082019050818103600083015261477d816144d6565b9050919050565b6000602082019050818103600083015261479d816144f9565b9050919050565b600060208201905081810360008301526147bd8161451c565b9050919050565b600060208201905081810360008301526147dd8161453f565b9050919050565b600060208201905081810360008301526147fd81614562565b9050919050565b6000602082019050818103600083015261481d81614585565b9050919050565b6000602082019050818103600083015261483d816145a8565b9050919050565b6000602082019050818103600083015261485d816145cb565b9050919050565b600060208201905061487960008301846145ee565b92915050565b600060208201905061489460008301846145fd565b92915050565b600081519050919050565b600082825260208201905092915050565b60006148c182614a09565b91506148cc83614a09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561490157614900614ace565b5b828201905092915050565b600061491782614a09565b915061492283614a09565b92508261493257614931614afd565b5b828204905092915050565b600061494882614a09565b915061495383614a09565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561498c5761498b614ace565b5b828202905092915050565b60006149a282614a09565b91506149ad83614a09565b9250828210156149c0576149bf614ace565b5b828203905092915050565b60006149d6826149e9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015614a3e578082015181840152602081019050614a23565b83811115614a4d576000848401525b50505050565b60006002820490506001821680614a6b57607f821691505b60208210811415614a7f57614a7e614b2c565b5b50919050565b6000614a9082614a09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ac357614ac2614ace565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f544f4b454e32303a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f426f74206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b614fbe816149cb565b8114614fc957600080fd5b50565b614fd5816149dd565b8114614fe057600080fd5b50565b614fec81614a09565b8114614ff757600080fd5b5056fe544f4b454e32303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f544f4b454e32303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200480f0a7b2fce1ca06ed3eb29aeba48d4eedbdac3c0a27d16bc37d6979b53edb64736f6c63430008070033

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

000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e606a8cd775548ae79eac711fbad9e43cafb7ce60000000000000000000000007eace1d7f00d529aa56ac1bbf6d381ba794daeec000000000000000000000000000000000000000000000000000000000000000f4178696d657472696120546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094158494d45545249410000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Aximetria Token
Arg [1] : _symbol (string): AXIMETRIA
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): 0xe606a8cD775548AE79EAC711FbaD9E43caFB7ce6
Arg [8] : _dev (address): 0x7eacE1D7F00d529AA56AC1bBF6d381bA794DAeEC

-----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] : 000000000000000000000000e606a8cd775548ae79eac711fbad9e43cafb7ce6
Arg [8] : 0000000000000000000000007eace1d7f00d529aa56ac1bbf6d381ba794daeec
Arg [9] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [10] : 4178696d657472696120546f6b656e0000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [12] : 4158494d45545249410000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

12099:18044:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14355:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15274:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16519:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14639:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16710:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15443:315;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18739:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17656:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14541:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15766:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18951:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16824:378;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16614:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12649:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17210:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14742:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11692:148;;;:::i;:::-;;13181:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12687:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19063:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11478:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19309:491;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14446:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15992:271;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13215:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14948:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12593:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19808:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11352:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13147:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16389:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16271:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15123:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17917:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11848:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18255:476;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19926:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14355:83;14392:13;14425:5;14418:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14355:83;:::o;15274:161::-;15349:4;15366:39;15375:12;:10;:12::i;:::-;15389:7;15398:6;15366:8;:39::i;:::-;15423:4;15416:11;;15274:161;;;;:::o;16519:87::-;16561:7;16588:10;;16581:17;;16519:87;:::o;14639:95::-;14692:7;14719;;14712:14;;14639:95;:::o;16710:106::-;16761:7;16788:20;;16781:27;;16710:106;:::o;15443:315::-;15541:4;15558:36;15568:6;15576:9;15587:6;15558:9;:36::i;:::-;15605:123;15614:6;15622:12;:10;:12::i;:::-;15636:91;15674:6;15636:91;;;;;;;;;;;;;;;;;:11;:19;15648:6;15636:19;;;;;;;;;;;;;;;:33;15656:12;:10;:12::i;:::-;15636:33;;;;;;;;;;;;;;;;:37;;:91;;;;;:::i;:::-;15605:8;:123::i;:::-;15746:4;15739:11;;15443:315;;;;;:::o;18739:204::-;14287:12;:10;:12::i;:::-;14280:19;;:3;;;;;;;;;;;:19;;;14272:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18819:6:::1;18816:120;;;18861:6;18841:8;:17;18850:7;18841:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;18816:120;;;18907:8;:17;18916:7;18907:17;;;;;;;;;;;;;;;;18900:24;;;;;;;;;;;18816:120;18739:204:::0;;:::o;17656:253::-;17722:7;17761;;17750;:18;;17742:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17826:19;17849:10;:8;:10::i;:::-;17826:33;;17877:24;17889:11;17877:7;:11;;:24;;;;:::i;:::-;17870:31;;;17656:253;;;:::o;14541:90::-;14582:5;14613:9;;14600:23;;14541:90;:::o;15766:218::-;15854:4;15871:83;15880:12;:10;:12::i;:::-;15894:7;15903:50;15942:10;15903:11;:25;15915:12;:10;:12::i;:::-;15903:25;;;;;;;;;;;;;;;:34;15929:7;15903:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15871:8;:83::i;:::-;15972:4;15965:11;;15766:218;;;;:::o;18951:104::-;19006:4;19030:8;:17;19039:7;19030:17;;;;;;;;;;;;;;;;;;;;;;;;;19023:24;;18951:104;;;:::o;16824:378::-;16876:14;16893:12;:10;:12::i;:::-;16876:29;;16925:11;:19;16937:6;16925:19;;;;;;;;;;;;;;;;;;;;;;;;;16924:20;16916:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;17005:15;17030:19;17041:7;17030:10;:19::i;:::-;17004:45;;;;;;;;17078:28;17098:7;17078;:15;17086:6;17078:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;17060:7;:15;17068:6;17060:15;;;;;;;;;;;;;;;:46;;;;17127:20;17139:7;17127;;:11;;:20;;;;:::i;:::-;17117:7;:30;;;;17171:23;17186:7;17171:10;;:14;;:23;;;;:::i;:::-;17158:10;:36;;;;16865:337;;16824:378;:::o;16614:88::-;16656:7;16683:11;;16676:18;;16614:88;:::o;12649:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17210:438::-;17300:7;17339;;17328;:18;;17320:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17398:17;17393:248;;17433:15;17458:19;17469:7;17458:10;:19::i;:::-;17432:45;;;;;;;;17499:7;17492:14;;;;;17393:248;17541:23;17573:19;17584:7;17573:10;:19::i;:::-;17539:53;;;;;;;;17614:15;17607:22;;;17210:438;;;;;:::o;14742:198::-;14808:7;14832:11;:20;14844:7;14832:20;;;;;;;;;;;;;;;;;;;;;;;;;14828:49;;;14861:7;:16;14869:7;14861:16;;;;;;;;;;;;;;;;14854:23;;;;14828:49;14895:37;14915:7;:16;14923:7;14915:16;;;;;;;;;;;;;;;;14895:19;:37::i;:::-;14888:44;;14742:198;;;;:::o;11692:148::-;11615:12;:10;:12::i;:::-;11605:22;;:6;;;;;;;;;;:22;;;11597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11799:1:::1;11762:40;;11783:6;::::0;::::1;;;;;;;;11762:40;;;;;;;;;;;;11830:1;11813:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;11692:148::o:0;13181:27::-;;;;:::o;12687:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19063:238::-;14287:12;:10;:12::i;:::-;14280:19;;:3;;;;;;;;;;;:19;;;14272:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;19149:17:::1;:26;19167:7;19149:26;;;;;;;;;;;;;;;;;;;;;;;;;19148:27;19140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19249:4;19220:17;:26;19238:7;19220:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19264:15;19285:7;19264:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19063:238:::0;:::o;11478:79::-;11516:7;11543:6;;;;;;;;;;;11536:13;;11478:79;:::o;19309:491::-;14287:12;:10;:12::i;:::-;14280:19;;:3;;;;;;;;;;;:19;;;14272:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;19394:17:::1;:26;19412:7;19394:26;;;;;;;;;;;;;;;;;;;;;;;;;19386:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19468:9;19463:330;19487:15;:22;;;;19483:1;:26;19463:330;;;19557:7;19535:29;;:15;19551:1;19535:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:29;;;19531:251;;;19606:15;19647:1;19622:15;:22;;;;:26;;;;:::i;:::-;19606:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19585:15;19601:1;19585:18;;;;;;;;:::i;:::-;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;19697:5;19668:17;:26;19686:7;19668:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19721:15;:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;19761:5;;19531:251;19511:3;;;;;:::i;:::-;;;;19463:330;;;;19309:491:::0;:::o;14446:87::-;14485:13;14518:7;14511:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14446:87;:::o;15992:271::-;16085:4;16102:131;16111:12;:10;:12::i;:::-;16125:7;16134:98;16173:15;16134:98;;;;;;;;;;;;;;;;;:11;:25;16146:12;:10;:12::i;:::-;16134:25;;;;;;;;;;;;;;;:34;16160:7;16134:34;;;;;;;;;;;;;;;;:38;;:98;;;;;:::i;:::-;16102:8;:131::i;:::-;16251:4;16244:11;;15992:271;;;;:::o;13215:33::-;;;;:::o;14948:167::-;15026:4;15043:42;15053:12;:10;:12::i;:::-;15067:9;15078:6;15043:9;:42::i;:::-;15103:4;15096:11;;14948:167;;;;:::o;12593:49::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19808:110::-;14287:12;:10;:12::i;:::-;14280:19;;:3;;;;;;;;;;;:19;;;14272:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;19903:7:::1;19890:10;;:20;;;;;;;;;;;;;;;;;;19808:110:::0;:::o;11352:21::-;;;;;;;;;;;;:::o;13147:27::-;;;;:::o;16389:122::-;16453:4;16477:17;:26;16495:7;16477:26;;;;;;;;;;;;;;;;;;;;;;;;;16470:33;;16389:122;;;:::o;16271:110::-;16329:4;16353:11;:20;16365:7;16353:20;;;;;;;;;;;;;;;;;;;;;;;;;16346:27;;16271:110;;;:::o;15123:143::-;15204:7;15231:11;:18;15243:5;15231:18;;;;;;;;;;;;;;;:27;15250:7;15231:27;;;;;;;;;;;;;;;;15224:34;;15123:143;;;;:::o;17917:330::-;14287:12;:10;:12::i;:::-;14280:19;;:3;;;;;;;;;;;:19;;;14272:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;17997:11:::1;:20;18009:7;17997:20;;;;;;;;;;;;;;;;;;;;;;;;;17996:21;17988:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;18082:1;18063:7;:16;18071:7;18063:16;;;;;;;;;;;;;;;;:20;18060:108;;;18119:37;18139:7;:16;18147:7;18139:16;;;;;;;;;;;;;;;;18119:19;:37::i;:::-;18100:7;:16;18108:7;18100:16;;;;;;;;;;;;;;;:56;;;;18060:108;18201:4;18178:11;:20;18190:7;18178:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;18216:9;18231:7;18216:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17917:330:::0;:::o;11848:244::-;11615:12;:10;:12::i;:::-;11605:22;;:6;;;;;;;;;;:22;;;11597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11957:1:::1;11937:22;;:8;:22;;;;11929:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12047:8;12018:38;;12039:6;::::0;::::1;;;;;;;;12018:38;;;;;;;;;;;;12076:8;12067:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;11848:244:::0;:::o;18255:476::-;14287:12;:10;:12::i;:::-;14280:19;;:3;;;;;;;;;;;:19;;;14272:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18334:11:::1;:20;18346:7;18334:20;;;;;;;;;;;;;;;;;;;;;;;;;18326:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;18402:9;18397:327;18421:9;:16;;;;18417:1;:20;18397:327;;;18479:7;18463:23;;:9;18473:1;18463:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;18459:254;;;18522:9;18551:1;18532:9;:16;;;;:20;;;;:::i;:::-;18522:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18507:9;18517:1;18507:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18591:1;18572:7;:16;18580:7;18572:16;;;;;;;;;;;;;;;:20;;;;18634:5;18611:11;:20;18623:7;18611:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18658:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;18692:5;;18459:254;18439:3;;;;;:::i;:::-;;;;18397:327;;;;18255:476:::0;:::o;19926:427::-;14287:12;:10;:12::i;:::-;14280:19;;:3;;;;;;;;;;;:19;;;14272:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;20048:3:::1;20039:6;:12;:30;;;;;20066:3;20055:8;:14;20039:30;:57;;;;;20093:3;20073:17;:23;20039:57;20031:66;;;::::0;::::1;;20127:3;20119:6;:11;;;;:::i;:::-;20108:8;:22;;;;20164:3;20153:8;:14;;;;:::i;:::-;20141:9;:26;;;;20218:3;20199:17;:22;;;;:::i;:::-;20178:18;:43;;;;20247:8;;20232:12;:23;;;;20282:9;;20266:13;:25;;;;20327:18;;20302:22;:43;;;;19926:427:::0;;;:::o;6560:115::-;6613:15;6656:10;6641:26;;6560:115;:::o;20361:341::-;20471:1;20454:19;;:5;:19;;;;20446:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20554:1;20535:21;;:7;:21;;;;20527:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20640:6;20610:11;:18;20622:5;20610:18;;;;;;;;;;;;;;;:27;20629:7;20610:27;;;;;;;;;;;;;;;:36;;;;20678:7;20662:32;;20671:5;20662:32;;;20687:6;20662:32;;;;;;:::i;:::-;;;;;;;;20361:341;;;:::o;20710:1270::-;20825:1;20807:20;;:6;:20;;;;20799:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20911:1;20890:23;;:9;:23;;;;20882:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20983:1;20974:6;:10;20966:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21052:8;:16;21061:6;21052:16;;;;;;;;;;;;;;;;;;;;;;;;;21051:17;21043:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;21101:12;21116:4;21101:19;;21149:6;21135:20;;:10;;;;;;;;;;;:20;;;:47;;;;21173:9;21159:23;;:10;;;;;;;;;;;:23;;;21135:47;:73;;;;21186:11;:22;21198:9;21186:22;;;;;;;;;;;;;;;;;;;;;;;;;21135:73;:102;;;;21212:17;:25;21230:6;21212:25;;;;;;;;;;;;;;;;;;;;;;;;;21135:102;21131:150;;;21264:5;21254:15;;21131:150;21298:7;21293:28;;21307:14;:12;:14::i;:::-;21293:28;21338:11;:19;21350:6;21338:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;21362:11;:22;21374:9;21362:22;;;;;;;;;;;;;;;;;;;;;;;;;21361:23;21338:46;21334:597;;;21401:48;21423:6;21431:9;21442:6;21401:21;:48::i;:::-;21334:597;;;21472:11;:19;21484:6;21472:19;;;;;;;;;;;;;;;;;;;;;;;;;21471:20;:46;;;;;21495:11;:22;21507:9;21495:22;;;;;;;;;;;;;;;;;;;;;;;;;21471:46;21467:464;;;21534:46;21554:6;21562:9;21573:6;21534:19;:46::i;:::-;21467:464;;;21603:11;:19;21615:6;21603:19;;;;;;;;;;;;;;;;;;;;;;;;;21602:20;:47;;;;;21627:11;:22;21639:9;21627:22;;;;;;;;;;;;;;;;;;;;;;;;;21626:23;21602:47;21598:333;;;21666:44;21684:6;21692:9;21703:6;21666:17;:44::i;:::-;21598:333;;;21732:11;:19;21744:6;21732:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;21755:11;:22;21767:9;21755:22;;;;;;;;;;;;;;;;;;;;;;;;;21732:45;21728:203;;;21794:48;21816:6;21824:9;21835:6;21794:21;:48::i;:::-;21728:203;;;21875:44;21893:6;21901:9;21912:6;21875:17;:44::i;:::-;21728:203;21598:333;21467:464;21334:597;21948:7;21943:29;;21957:15;:13;:15::i;:::-;21943:29;20788:1192;20710:1270;;;:::o;7864:192::-;7950:7;7983:1;7978;:6;;7986:12;7970:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8010:9;8026:1;8022;:5;;;;:::i;:::-;8010:17;;8047:1;8040:8;;;7864:192;;;;;:::o;28399:163::-;28440:7;28461:15;28478;28497:19;:17;:19::i;:::-;28460:56;;;;28534:20;28546:7;28534;:11;;:20;;;;:::i;:::-;28527:27;;;;28399:163;:::o;8324:132::-;8382:7;8409:39;8413:1;8416;8409:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;8402:46;;8324:132;;;;:::o;7531:181::-;7589:7;7609:9;7625:1;7621;:5;;;;:::i;:::-;7609:17;;7650:1;7645;:6;;7637:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7703:1;7696:8;;;7531:181;;;;:::o;26376:682::-;26435:7;26444;26453;26462;26471;26480;26489;26510:12;26524:13;26539:22;26565:61;26577:7;26586:8;;26596:9;;26607:18;;26565:11;:61::i;:::-;26509:117;;;;;;26637:23;26663:56;26682:7;26691:4;26697:5;26704:14;26663:18;:56::i;:::-;26637:82;;26730:19;26753:10;:8;:10::i;:::-;26730:33;;26775:15;26792:12;26808:39;26820:7;26829:4;26835:11;26808;:39::i;:::-;26774:73;;;;26858:23;26884:70;26904:7;26913:4;26919:5;26926:14;26942:11;26884:19;:70::i;:::-;26858:96;;26973:7;26982:15;26999:4;27005:15;27022:4;27028:5;27035:14;26965:85;;;;;;;;;;;;;;;;;;;;;;26376:682;;;;;;;;;:::o;7720:136::-;7778:7;7805:43;7809:1;7812;7805:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7798:50;;7720:136;;;;:::o;29541:328::-;29599:1;29587:8;;:13;:31;;;;;29617:1;29604:9;;:14;29587:31;:58;;;;;29644:1;29622:18;;:23;29587:58;29584:70;;;29647:7;;29584:70;29681:8;;29666:12;:23;;;;29716:9;;29700:13;:25;;;;29761:18;;29736:22;:43;;;;29803:1;29792:8;:12;;;;29827:1;29815:9;:13;;;;29860:1;29839:18;:22;;;;29541:328;:::o;23883:630::-;23985:19;24008:10;:8;:10::i;:::-;23985:33;;24030:15;24047:23;24072:12;24086:23;24111:12;24125:13;24140:22;24166:19;24177:7;24166:10;:19::i;:::-;24029:156;;;;;;;;;;;;;;24196:13;24213:22;24223:11;24213:5;:9;;:22;;;;:::i;:::-;24196:39;;24246:80;24273:6;24281:9;24292:7;24301;24310:15;24246:26;:80::i;:::-;24337:44;24358:14;24374:6;24337:20;:44::i;:::-;24392:53;24404:4;24410:5;24417:4;24423:5;24430:14;24392:11;:53::i;:::-;24478:9;24461:44;;24470:6;24461:44;;;24489:15;24461:44;;;;;;:::i;:::-;;;;;;;;23974:539;;;;;;;;;23883:630;;;:::o;22874:638::-;22974:19;22997:10;:8;:10::i;:::-;22974:33;;23019:15;23036:23;23061:12;23075:23;23100:12;23114:13;23129:22;23155:19;23166:7;23155:10;:19::i;:::-;23018:156;;;;;;;;;;;;;;23185:13;23202:22;23212:11;23202:5;:9;;:22;;;;:::i;:::-;23185:39;;23235:90;23264:6;23272:9;23283:15;23300:7;23309:15;23235:28;:90::i;:::-;23336:44;23357:14;23373:6;23336:20;:44::i;:::-;23391:53;23403:4;23409:5;23416:4;23422:5;23429:14;23391:11;:53::i;:::-;23477:9;23460:44;;23469:6;23460:44;;;23488:15;23460:44;;;;;;:::i;:::-;;;;;;;;22963:549;;;;;;;;;22874:638;;;:::o;21988:615::-;22086:19;22109:10;:8;:10::i;:::-;22086:33;;22131:15;22148:23;22173:12;22187:23;22212:12;22226:13;22241:22;22267:19;22278:7;22267:10;:19::i;:::-;22130:156;;;;;;;;;;;;;;22297:13;22314:22;22324:11;22314:5;:9;;:22;;;;:::i;:::-;22297:39;;22347:69;22372:6;22380:9;22391:7;22400:15;22347:24;:69::i;:::-;22427:44;22448:14;22464:6;22427:20;:44::i;:::-;22482:53;22494:4;22500:5;22507:4;22513:5;22520:14;22482:11;:53::i;:::-;22568:9;22551:44;;22560:6;22551:44;;;22579:15;22551:44;;;;;;:::i;:::-;;;;;;;;22075:528;;;;;;;;;21988:615;;;:::o;24860:641::-;24962:19;24985:10;:8;:10::i;:::-;24962:33;;25007:15;25024:23;25049:12;25063:23;25088:12;25102:13;25117:22;25143:19;25154:7;25143:10;:19::i;:::-;25006:156;;;;;;;;;;;;;;25173:13;25190:22;25200:11;25190:5;:9;;:22;;;;:::i;:::-;25173:39;;25223:91;25244:6;25252:9;25263:7;25272;25281:15;25298;25223:20;:91::i;:::-;25325:44;25346:14;25362:6;25325:20;:44::i;:::-;25380:53;25392:4;25398:5;25405:4;25411:5;25418:14;25380:11;:53::i;:::-;25466:9;25449:44;;25458:6;25449:44;;;25477:15;25449:44;;;;;;:::i;:::-;;;;;;;;24951:550;;;;;;;;;24860:641;;;:::o;29877:165::-;29932:12;;29921:8;:23;;;;29967:13;;29955:9;:25;;;;30012:22;;29991:18;:43;;;;29877:165::o;28570:555::-;28620:7;28629;28649:15;28667:7;;28649:25;;28685:15;28703:7;;28685:25;;28726:9;28721:289;28745:9;:16;;;;28741:1;:20;28721:289;;;28811:7;28787;:21;28795:9;28805:1;28795:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28787:21;;;;;;;;;;;;;;;;:31;:66;;;;28846:7;28822;:21;28830:9;28840:1;28830:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28822:21;;;;;;;;;;;;;;;;:31;28787:66;28783:97;;;28863:7;;28872;;28855:25;;;;;;;;;28783:97;28905:34;28917:7;:21;28925:9;28935:1;28925:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28917:21;;;;;;;;;;;;;;;;28905:7;:11;;:34;;;;:::i;:::-;28895:44;;28964:34;28976:7;:21;28984:9;28994:1;28984:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28976:21;;;;;;;;;;;;;;;;28964:7;:11;;:34;;;;:::i;:::-;28954:44;;28763:3;;;;;:::i;:::-;;;;28721:289;;;;29034:20;29046:7;;29034;;:11;;:20;;;;:::i;:::-;29024:7;:30;29020:61;;;29064:7;;29073;;29056:25;;;;;;;;29020:61;29100:7;29109;29092:25;;;;;;28570:555;;;:::o;8464:191::-;8550:7;8582:1;8578;:5;8585:12;8570:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8609:9;8625:1;8621;:5;;;;:::i;:::-;8609:17;;8646:1;8639:8;;;8464:191;;;;;:::o;27066:451::-;27185:7;27194;27203;27223:12;27238:50;27284:3;27239:39;27265:12;;27240:19;27252:6;27240:7;:11;;:19;;;;:::i;:::-;27239:25;;:39;;;;:::i;:::-;27238:45;;:50;;;;:::i;:::-;27223:65;;27299:13;27315:51;27362:3;27316:40;27343:12;;27317:20;27329:7;27317;:11;;:20;;;;:::i;:::-;27316:26;;:40;;;;:::i;:::-;27315:46;;:51;;;;:::i;:::-;27299:67;;27377:22;27402:60;27458:3;27403:49;27439:12;;27404:29;27416:16;27404:7;:11;;:29;;;;:::i;:::-;27403:35;;:49;;;;:::i;:::-;27402:55;;:60;;;;:::i;:::-;27377:85;;27481:4;27487:5;27494:14;27473:36;;;;;;;;;27066:451;;;;;;;;:::o;27525:203::-;27645:7;27672:48;27705:14;27672:28;27694:5;27672:17;27684:4;27672:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;27665:55;;27525:203;;;;;;:::o;27736:254::-;27831:7;27840;27860:15;27878:24;27890:11;27878:7;:11;;:24;;;;:::i;:::-;27860:42;;27913:12;27928:21;27937:11;27928:4;:8;;:21;;;;:::i;:::-;27913:36;;27968:7;27977:4;27960:22;;;;;;27736:254;;;;;;:::o;27998:393::-;28140:7;28160:13;28176:22;28186:11;28176:5;:9;;:22;;;;:::i;:::-;28160:38;;28209:22;28234:31;28253:11;28234:14;:18;;:31;;;;:::i;:::-;28209:56;;28276:23;28302:48;28335:14;28302:28;28324:5;28302:17;28314:4;28302:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;28276:74;;28368:15;28361:22;;;;;27998:393;;;;;;;:::o;8064:252::-;8122:7;8153:1;8148;:6;8144:47;;;8178:1;8171:8;;;;8144:47;8203:9;8219:1;8215;:5;;;;:::i;:::-;8203:17;;8248:1;8243;8239;:5;;;;:::i;:::-;:10;8231:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8307:1;8300:8;;;8064:252;;;;;:::o;24521:331::-;24688:28;24708:7;24688;:15;24696:6;24688:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24670:7;:15;24678:6;24670:15;;;;;;;;;;;;;;;:46;;;;24745:28;24765:7;24745;:15;24753:6;24745:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24727:7;:15;24735:6;24727:15;;;;;;;;;;;;;;;:46;;;;24805:39;24828:15;24805:7;:18;24813:9;24805:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24784:7;:18;24792:9;24784:18;;;;;;;;;;;;;;;:60;;;;24521:331;;;;;:::o;29133:400::-;29222:19;29244:10;:8;:10::i;:::-;29222:32;;29265:22;29290:31;29309:11;29290:14;:18;;:31;;;;:::i;:::-;29265:56;;29354:39;29378:14;29354:7;:19;29362:10;;;;;;;;;;;29354:19;;;;;;;;;;;;;;;;:23;;:39;;;;:::i;:::-;29332:7;:19;29340:10;;;;;;;;;;;29332:19;;;;;;;;;;;;;;;:61;;;;29426:39;29450:14;29426:7;:19;29434:10;;;;;;;;;;;29426:19;;;;;;;;;;;;;;;;:23;;:39;;;;:::i;:::-;29404:7;:19;29412:10;;;;;;;;;;;29404:19;;;;;;;;;;;;;;;:61;;;;29498:10;;;;;;;;;;;29481:44;;29490:6;29481:44;;;29510:14;29481:44;;;;;;:::i;:::-;;;;;;;;29211:322;;29133:400;;:::o;25938:430::-;26070:28;26092:5;26070:17;26082:4;26070:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;26060:7;:38;;;;26122:20;26137:4;26122:10;;:14;;:20;;;;:::i;:::-;26109:10;:33;;;;26167:22;26183:5;26167:11;;:15;;:22;;;;:::i;:::-;26153:11;:36;;;;26223:40;26248:14;26223:20;;:24;;:40;;;;:::i;:::-;26200:20;:63;;;;26284:18;26296:5;26284:7;;:11;;:18;;;;:::i;:::-;26274:7;:28;;;;26350:1;26318:42;;26335:4;26318:42;;;26354:5;26318:42;;;;;;:::i;:::-;;;;;;;;25938:430;;;;;:::o;23520:355::-;23697:28;23717:7;23697;:15;23705:6;23697:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23679:7;:15;23687:6;23679:15;;;;;;;;;;;;;;;:46;;;;23757:39;23780:15;23757:7;:18;23765:9;23757:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23736:7;:18;23744:9;23736:18;;;;;;;;;;;;;;;:60;;;;23828:39;23851:15;23828:7;:18;23836:9;23828:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23807:7;:18;23815:9;23807:18;;;;;;;;;;;;;;;:60;;;;23520:355;;;;;:::o;22611:255::-;22759:28;22779:7;22759;:15;22767:6;22759:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22741:7;:15;22749:6;22741:15;;;;;;;;;;;;;;;:46;;;;22819:39;22842:15;22819:7;:18;22827:9;22819:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22798:7;:18;22806:9;22798:18;;;;;;;;;;;;;;;:60;;;;22611:255;;;;:::o;25509:421::-;25695:28;25715:7;25695;:15;25703:6;25695:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25677:7;:15;25685:6;25677:15;;;;;;;;;;;;;;;:46;;;;25752:28;25772:7;25752;:15;25760:6;25752:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25734:7;:15;25742:6;25734:15;;;;;;;;;;;;;;;:46;;;;25812:39;25835:15;25812:7;:18;25820:9;25812:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25791:7;:18;25799:9;25791:18;;;;;;;;;;;;;;;:60;;;;25883:39;25906:15;25883:7;:18;25891:9;25883:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25862:7;:18;25870:9;25862:18;;;;;;;;;;;;;;;:60;;;;25509: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://0480f0a7b2fce1ca06ed3eb29aeba48d4eedbdac3c0a27d16bc37d6979b53edb
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.