ETH Price: $2,520.50 (+3.25%)

Token

SLOUGI (SLOUGI)
 

Overview

Max Total Supply

100,000,000,000 SLOUGI

Holders

74 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
180,884,208.564181228 SLOUGI

Value
$0.00
0x5666ba60d132edf7341166edb2e733d79b4bcde2
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Our Advanced Analysis Algorithms (AAA) will provide the end user with the adequate tools to manage the risks while investing in pre-selected coins.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Slougi

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-12
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.15;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }
}


contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

}



interface IUniswapV2Factory 
{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}



interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}


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


interface IUniswapV2Router02 is IUniswapV2Router01 
{
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

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

    address payable public developmentWalletAddress = payable(0x1a1a6Cec5Ac485A57972A639a212578ecDC039E2);  

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromWhale;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
       
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 100_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = "SLOUGI";
    string private _symbol = "SLOUGI";
    uint8 private _decimals = 9;


    uint256 public _taxFee = 1; //Reflections fee
    uint256 private _previousTaxFee = _taxFee;
    
    uint256 public _developmentFee = 4;
    uint256 private _previousDevelopmentFee = _developmentFee;


    uint256 public _maxTxAmount = _tTotal.div(100).mul(1); 
    uint256 private minimumTokensBeforeSwap = 40_000_000 * 10**9;   

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public uniswapV2Pair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;

    
    event RewardLiquidityProviders(uint256 tokenAmount);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap 
    {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () 
    {
        _rOwned[_msgSender()] = _rTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[developmentWalletAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _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, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

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

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

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

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }


    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 excludeFromReward(address account) public onlyOwner() 
    {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() 
    {
        require(_isExcluded[account], "Account is already excluded");
        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 _approve(address owner, address spender, uint256 amount) private 
    {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _transfer(address from, address to, uint256 amount) private 
    {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(from != owner() && to != owner()) 
        {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
        
        if (!inSwapAndLiquify && swapAndLiquifyEnabled && from != uniswapV2Pair) 
        {
            if (overMinimumTokenBalance) 
            {
                contractTokenBalance = minimumTokensBeforeSwap;
                swapAndSendToFeeWallet(contractTokenBalance);    
            }
        }
        
        bool takeFee = true;
        //if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        _tokenTransfer(from,to,amount,takeFee);
    }


    function swapAndSendToFeeWallet(uint256 contractTokenBalance) private lockTheSwap 
    {
        swapTokensForEth(contractTokenBalance); 
        uint256 ethBalance = address(this).balance;
        developmentWalletAddress.transfer(ethBalance);
    }
    

    
    function swapTokensForEth(uint256 tokenAmount) private 
    {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        emit SwapTokensForETH(tokenAmount, path);
    }
    

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private 
    {
        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]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if(!takeFee) {  restoreAllFee(); }  

    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private 
    {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private 
    {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) 
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) 
    {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tLiquidity =calculateDevelopmentWalletFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
        return (tTransferAmount, tFee, tLiquidity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) 
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity);
        return (rAmount, rTransferAmount, rFee);
    }

    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 _takeLiquidity(uint256 tLiquidity) private 
    {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }
    
    function calculateTaxFee(uint256 _amount) private view returns (uint256) 
    {
        return _amount.mul(_taxFee).div(10**2);
    }
    
    function calculateDevelopmentWalletFee(uint256 _amount) private view returns (uint256) 
    {
        return _amount.mul(_developmentFee).div(100);
    }
    
    function removeAllFee() private {       
        _taxFee = 0;
        _developmentFee = 0;
    }
    
    function restoreAllFee() private
    {
        _taxFee = _previousTaxFee;
        _developmentFee = _previousDevelopmentFee;
    }


    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    

    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
        require(maxTxAmount>_tTotal.div(10000), "Too less txn limit");
    }
    

    function setMinimumTokensBeforeSwap(uint256 _minimumTokensBeforeSwap) external onlyOwner() 
    {
        minimumTokensBeforeSwap = _minimumTokensBeforeSwap;
    }
    

    function setdevelopmentWalletAddress(address _developmentWalletAddress) external onlyOwner() 
    {
        developmentWalletAddress = payable(_developmentWalletAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner 
    {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }
    
    
    function feeDisabled() external onlyOwner 
    {
        _taxFee = 0;
        _previousTaxFee = 0;

        _developmentFee = 0;
        _previousDevelopmentFee = 0;

        setSwapAndLiquifyEnabled(false);
    }
    

    
    function setAllFee(uint256 reflectionFee, uint256 developmentFee) external onlyOwner 
    {
        _taxFee = reflectionFee;
        _previousTaxFee = _taxFee;

        _developmentFee = developmentFee;
        _previousDevelopmentFee = developmentFee;

        require(_taxFee+_developmentFee<=15, "Too High Fee");

    }    

    function feeEnabled() external onlyOwner 
    {    
        _taxFee = 1;
        _previousTaxFee = _taxFee;

        _developmentFee = 4;
        _previousDevelopmentFee = _developmentFee;

        setSwapAndLiquifyEnabled(true);

    }

     //to receive ETH from uniswapV2Router when swapping
    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[],"name":"developmentWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDisabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","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":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionFee","type":"uint256"},{"internalType":"uint256","name":"developmentFee","type":"uint256"}],"name":"setAllFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumTokensBeforeSwap","type":"uint256"}],"name":"setMinimumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_developmentWalletAddress","type":"address"}],"name":"setdevelopmentWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"totalFees","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600280546001600160a01b031916731a1a6cec5ac485a57972a639a212578ecdc039e217905568056bc75e2d63100000600a81905562000047906000196200050f565b62000055906000196200053c565b600b55604080518082019091526006815265534c4f55474960d01b6020820152600d90620000849082620005fb565b50604080518082019091526006815265534c4f55474960d01b6020820152600e90620000b19082620005fb565b50600f8054600960ff1990911617905560016010819055601181905560046012819055601355600a546200010d9190620000f9906064620003dc602090811b6200114617901c565b6200042f60201b620011881790919060201c565b601455668e1bc9bf0400006015556016805460ff60a81b191690553480156200013557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b543360009081526003602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002049190620006c7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002789190620006c7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ec9190620006c7565b601680546001600160a01b0319166001600160a01b039283161790558116608052600160076000620003266000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155600254909116835291208054909216179055620003853390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003cd91815260200190565b60405180910390a35062000783565b60006200042683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004bd60201b60201c565b90505b92915050565b600082600003620004435750600062000429565b6000620004518385620006f2565b90508262000460858362000714565b14620004265760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b60008183620004e15760405162461bcd60e51b8152600401620004b491906200072b565b506000620004f0848662000714565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b600082620005215762000521620004f9565b500690565b634e487b7160e01b600052601160045260246000fd5b60008282101562000551576200055162000526565b500390565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200058157607f821691505b602082108103620005a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f657600081815260208120601f850160051c81016020861015620005d15750805b601f850160051c820191505b81811015620005f257828155600101620005dd565b5050505b505050565b81516001600160401b0381111562000617576200061762000556565b6200062f816200062884546200056c565b84620005a8565b602080601f8311600181146200066757600084156200064e5750858301515b600019600386901b1c1916600185901b178555620005f2565b600085815260208120601f198616915b82811015620006985788860151825594840194600190910190840162000677565b5085821015620006b75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006da57600080fd5b81516001600160a01b03811681146200042657600080fd5b60008160001904831182151516156200070f576200070f62000526565b500290565b600082620007265762000726620004f9565b500490565b600060208083528351808285015260005b818110156200075a578581018301518582016040015282016200073c565b818111156200076d576000604083870101525b50601f01601f1916929092016040019392505050565b608051612448620007b4600039600081816102b601528181611a1101528181611aca0152611b0601526124486000f3fe60806040526004361061021e5760003560e01c806370a0823111610123578063a457c2d7116100ab578063d14751851161006f578063d14751851461064f578063dd62ed3e14610665578063ea2f0b37146106ab578063ec28438a146106cb578063f2fde38b146106eb57600080fd5b8063a457c2d7146105ba578063a771ebc7146105da578063a9059cbb146105ef578063aee50b1e1461060f578063c49b9a801461062f57600080fd5b80637de6c9e4116100f25780637de6c9e41461051957806388f82020146105395780638da5cb5b1461057257806395d89b4114610590578063a073d37f146105a557600080fd5b806370a08231146104ae578063715018a6146104ce57806377a4e9aa146104e35780637d1db4a51461050357600080fd5b8063313ce567116101a6578063437823ec11610175578063437823ec146103f457806349bd5a5e146104145780634a74bb021461043457806352390c02146104555780635342acb41461047557600080fd5b8063313ce5671461037c5780633685d4191461039e57806339509351146103be5780633b124fe7146103de57600080fd5b806318160ddd116101ed57806318160ddd146102f0578063182a4760146103055780631f13a1fb1461032557806323b872dd1461033c5780632d8381191461035c57600080fd5b806306fdde031461022a578063095ea7b31461025557806313114a9d146102855780631694505e146102a457600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f61070b565b60405161024c9190612043565b60405180910390f35b34801561026157600080fd5b506102756102703660046120ad565b61079d565b604051901515815260200161024c565b34801561029157600080fd5b50600c545b60405190815260200161024c565b3480156102b057600080fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024c565b3480156102fc57600080fd5b50600a54610296565b34801561031157600080fd5b506002546102d8906001600160a01b031681565b34801561033157600080fd5b5061033a6107b4565b005b34801561034857600080fd5b506102756103573660046120d9565b610808565b34801561036857600080fd5b5061029661037736600461211a565b610871565b34801561038857600080fd5b50600f5460405160ff909116815260200161024c565b3480156103aa57600080fd5b5061033a6103b9366004612133565b6108f5565b3480156103ca57600080fd5b506102756103d93660046120ad565b610aab565b3480156103ea57600080fd5b5061029660105481565b34801561040057600080fd5b5061033a61040f366004612133565b610ae1565b34801561042057600080fd5b506016546102d8906001600160a01b031681565b34801561044057600080fd5b5060165461027590600160a81b900460ff1681565b34801561046157600080fd5b5061033a610470366004612133565b610b2f565b34801561048157600080fd5b50610275610490366004612133565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156104ba57600080fd5b506102966104c9366004612133565b610c82565b3480156104da57600080fd5b5061033a610ce1565b3480156104ef57600080fd5b5061033a6104fe366004612150565b610d55565b34801561050f57600080fd5b5061029660145481565b34801561052557600080fd5b5061033a610534366004612133565b610ddc565b34801561054557600080fd5b50610275610554366004612133565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561057e57600080fd5b506000546001600160a01b03166102d8565b34801561059c57600080fd5b5061023f610e28565b3480156105b157600080fd5b50601554610296565b3480156105c657600080fd5b506102756105d53660046120ad565b610e37565b3480156105e657600080fd5b5061033a610e86565b3480156105fb57600080fd5b5061027561060a3660046120ad565b610ecf565b34801561061b57600080fd5b5061033a61062a36600461211a565b610edc565b34801561063b57600080fd5b5061033a61064a366004612172565b610f0b565b34801561065b57600080fd5b5061029660125481565b34801561067157600080fd5b50610296610680366004612194565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156106b757600080fd5b5061033a6106c6366004612133565b610f8d565b3480156106d757600080fd5b5061033a6106e636600461211a565b610fd8565b3480156106f757600080fd5b5061033a610706366004612133565b61105c565b6060600d805461071a906121cd565b80601f0160208091040260200160405190810160405280929190818152602001828054610746906121cd565b80156107935780601f1061076857610100808354040283529160200191610793565b820191906000526020600020905b81548152906001019060200180831161077657829003601f168201915b5050505050905090565b60006107aa33848461120a565b5060015b92915050565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016107de90612207565b60405180910390fd5b6000601081905560118190556012819055601381905561080690610f0b565b565b600061081584848461132e565b6108678433610862856040518060600160405280602881526020016123c6602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906115b4565b61120a565b5060019392505050565b6000600b548211156108d85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107de565b60006108e26115ee565b90506108ee8382611146565b9392505050565b6000546001600160a01b0316331461091f5760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03811660009081526008602052604090205460ff166109875760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107de565b60005b600954811015610aa757816001600160a01b0316600982815481106109b1576109b161223c565b6000918252602090912001546001600160a01b031603610a9557600980546109db90600190612268565b815481106109eb576109eb61223c565b600091825260209091200154600980546001600160a01b039092169183908110610a1757610a1761223c565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600890925220805460ff191690556009805480610a6f57610a6f61227f565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610a9f81612295565b91505061098a565b5050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916107aa9185906108629086611611565b6000546001600160a01b03163314610b0b5760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610b595760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03811660009081526008602052604090205460ff1615610bc25760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107de565b6001600160a01b03811660009081526003602052604090205415610c1c576001600160a01b038116600090815260036020526040902054610c0290610871565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526008602052604081205460ff1615610cbf57506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546107ae90610871565b6000546001600160a01b03163314610d0b5760405162461bcd60e51b81526004016107de90612207565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d7f5760405162461bcd60e51b81526004016107de90612207565b6010829055601182905560128190556013819055600f610d9f82846122ae565b1115610aa75760405162461bcd60e51b815260206004820152600c60248201526b546f6f20486967682046656560a01b60448201526064016107de565b6000546001600160a01b03163314610e065760405162461bcd60e51b81526004016107de90612207565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600e805461071a906121cd565b60006107aa3384610862856040518060600160405280602581526020016123ee602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906115b4565b6000546001600160a01b03163314610eb05760405162461bcd60e51b81526004016107de90612207565b6001601081905560118190556004601281905560135561080690610f0b565b60006107aa33848461132e565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107de90612207565b601555565b6000546001600160a01b03163314610f355760405162461bcd60e51b81526004016107de90612207565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610f8290831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610fb75760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146110025760405162461bcd60e51b81526004016107de90612207565b6014819055600a5461101690612710611146565b81116110595760405162461bcd60e51b8152602060048201526012602482015271151bdbc81b195cdcc81d1e1b881b1a5b5a5d60721b60448201526064016107de565b50565b6000546001600160a01b031633146110865760405162461bcd60e51b81526004016107de90612207565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006108ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611670565b60008260000361119a575060006107ae565b60006111a683856122c6565b9050826111b385836122e5565b146108ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107de565b6001600160a01b03831661126c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107de565b6001600160a01b0382166112cd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107de565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107de565b6001600160a01b0382166113f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107de565b600081116114565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107de565b6000546001600160a01b0384811691161480159061148257506000546001600160a01b03838116911614155b156114ea576014548111156114ea5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107de565b60006114f530610c82565b60155460165491925082101590600160a01b900460ff161580156115225750601654600160a81b900460ff165b801561153c57506016546001600160a01b03868116911614155b156115555780156115555760155491506115558261169e565b6001600160a01b03851660009081526007602052604090205460019060ff168061159757506001600160a01b03851660009081526007602052604090205460ff165b156115a0575060005b6115ac86868684611706565b505050505050565b600081848411156115d85760405162461bcd60e51b81526004016107de9190612043565b5060006115e58486612268565b95945050505050565b60008060006115fb611838565b909250905061160a8282611146565b9250505090565b60008061161e83856122ae565b9050838110156108ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107de565b600081836116915760405162461bcd60e51b81526004016107de9190612043565b5060006115e584866122e5565b6016805460ff60a01b1916600160a01b1790556116ba816119ba565b60025460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156116f4573d6000803e3d6000fd5b50506016805460ff60a01b1916905550565b8061171a5761171a60006010819055601255565b6001600160a01b03841660009081526008602052604090205460ff16801561175b57506001600160a01b03831660009081526008602052604090205460ff16155b156117705761176b848484611bb3565b61181c565b6001600160a01b03841660009081526008602052604090205460ff161580156117b157506001600160a01b03831660009081526008602052604090205460ff165b156117c15761176b848484611cd9565b6001600160a01b03841660009081526008602052604090205460ff16801561180157506001600160a01b03831660009081526008602052604090205460ff165b156118115761176b848484611d82565b61181c848484611df5565b8061183257611832601154601055601354601255565b50505050565b600b54600a546000918291825b60095481101561198a578260036000600984815481106118675761186761223c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806118d257508160046000600984815481106118ab576118ab61223c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156118e857600b54600a54945094505050509091565b61192e60036000600984815481106119025761190261223c565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611e35565b9250611976600460006009848154811061194a5761194a61223c565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611e35565b91508061198281612295565b915050611845565b50600a54600b5461199a91611146565b8210156119b157600b54600a549350935050509091565b90939092509050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119ef576119ef61223c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612307565b81600181518110611aa457611aa461223c565b60200260200101906001600160a01b031690816001600160a01b031681525050611aef307f00000000000000000000000000000000000000000000000000000000000000008461120a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611b44908590600090869030904290600401612368565b600060405180830381600087803b158015611b5e57600080fd5b505af1158015611b72573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ba79291906123a4565b60405180910390a15050565b600080600080600080611bc587611e77565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611bf79088611e35565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611c269087611e35565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611c559086611611565b6001600160a01b038916600090815260036020526040902055611c7781611ec6565b611c818483611f4f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cc691815260200190565b60405180910390a3505050505050505050565b600080600080600080611ceb87611e77565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611d1d9087611e35565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054611d539084611611565b6001600160a01b038916600090815260046020908152604080832093909355600390522054611c559086611611565b600080600080600080611d9487611e77565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611dc69088611e35565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611d1d9087611e35565b600080600080600080611e0787611e77565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c2690875b60006108ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115b4565b6000806000806000806000806000611e8e8a611f73565b9250925092506000806000611eac8d8686611ea76115ee565b611fb5565b919f909e50909c50959a5093985091965092945050505050565b6000611ed06115ee565b90506000611ede8383611188565b30600090815260036020526040902054909150611efb9082611611565b3060009081526003602090815260408083209390935560089052205460ff1615611f4a5730600090815260046020526040902054611f399084611611565b306000908152600460205260409020555b505050565b600b54611f5c9083611e35565b600b55600c54611f6c9082611611565b600c555050565b600080600080611f8285612005565b90506000611f8f86612027565b90506000611fa782611fa18986611e35565b90611e35565b979296509094509092505050565b6000808080611fc48886611188565b90506000611fd28887611188565b90506000611fe08888611188565b90506000611ff282611fa18686611e35565b939b939a50919850919650505050505050565b60006107ae60646120216010548561118890919063ffffffff16565b90611146565b60006107ae60646120216012548561118890919063ffffffff16565b600060208083528351808285015260005b8181101561207057858101830151858201604001528201612054565b81811115612082576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461105957600080fd5b600080604083850312156120c057600080fd5b82356120cb81612098565b946020939093013593505050565b6000806000606084860312156120ee57600080fd5b83356120f981612098565b9250602084013561210981612098565b929592945050506040919091013590565b60006020828403121561212c57600080fd5b5035919050565b60006020828403121561214557600080fd5b81356108ee81612098565b6000806040838503121561216357600080fd5b50508035926020909101359150565b60006020828403121561218457600080fd5b813580151581146108ee57600080fd5b600080604083850312156121a757600080fd5b82356121b281612098565b915060208301356121c281612098565b809150509250929050565b600181811c908216806121e157607f821691505b60208210810361220157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561227a5761227a612252565b500390565b634e487b7160e01b600052603160045260246000fd5b6000600182016122a7576122a7612252565b5060010190565b600082198211156122c1576122c1612252565b500190565b60008160001904831182151516156122e0576122e0612252565b500290565b60008261230257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561231957600080fd5b81516108ee81612098565b600081518084526020808501945080840160005b8381101561235d5781516001600160a01b031687529582019590820190600101612338565b509495945050505050565b85815284602082015260a06040820152600061238760a0830186612324565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123bd6040830184612324565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209a75fae5337799877f74a235c17a7e53f1f9a761bae066bb9d493bf84acea3cb64736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806370a0823111610123578063a457c2d7116100ab578063d14751851161006f578063d14751851461064f578063dd62ed3e14610665578063ea2f0b37146106ab578063ec28438a146106cb578063f2fde38b146106eb57600080fd5b8063a457c2d7146105ba578063a771ebc7146105da578063a9059cbb146105ef578063aee50b1e1461060f578063c49b9a801461062f57600080fd5b80637de6c9e4116100f25780637de6c9e41461051957806388f82020146105395780638da5cb5b1461057257806395d89b4114610590578063a073d37f146105a557600080fd5b806370a08231146104ae578063715018a6146104ce57806377a4e9aa146104e35780637d1db4a51461050357600080fd5b8063313ce567116101a6578063437823ec11610175578063437823ec146103f457806349bd5a5e146104145780634a74bb021461043457806352390c02146104555780635342acb41461047557600080fd5b8063313ce5671461037c5780633685d4191461039e57806339509351146103be5780633b124fe7146103de57600080fd5b806318160ddd116101ed57806318160ddd146102f0578063182a4760146103055780631f13a1fb1461032557806323b872dd1461033c5780632d8381191461035c57600080fd5b806306fdde031461022a578063095ea7b31461025557806313114a9d146102855780631694505e146102a457600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f61070b565b60405161024c9190612043565b60405180910390f35b34801561026157600080fd5b506102756102703660046120ad565b61079d565b604051901515815260200161024c565b34801561029157600080fd5b50600c545b60405190815260200161024c565b3480156102b057600080fd5b506102d87f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161024c565b3480156102fc57600080fd5b50600a54610296565b34801561031157600080fd5b506002546102d8906001600160a01b031681565b34801561033157600080fd5b5061033a6107b4565b005b34801561034857600080fd5b506102756103573660046120d9565b610808565b34801561036857600080fd5b5061029661037736600461211a565b610871565b34801561038857600080fd5b50600f5460405160ff909116815260200161024c565b3480156103aa57600080fd5b5061033a6103b9366004612133565b6108f5565b3480156103ca57600080fd5b506102756103d93660046120ad565b610aab565b3480156103ea57600080fd5b5061029660105481565b34801561040057600080fd5b5061033a61040f366004612133565b610ae1565b34801561042057600080fd5b506016546102d8906001600160a01b031681565b34801561044057600080fd5b5060165461027590600160a81b900460ff1681565b34801561046157600080fd5b5061033a610470366004612133565b610b2f565b34801561048157600080fd5b50610275610490366004612133565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156104ba57600080fd5b506102966104c9366004612133565b610c82565b3480156104da57600080fd5b5061033a610ce1565b3480156104ef57600080fd5b5061033a6104fe366004612150565b610d55565b34801561050f57600080fd5b5061029660145481565b34801561052557600080fd5b5061033a610534366004612133565b610ddc565b34801561054557600080fd5b50610275610554366004612133565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561057e57600080fd5b506000546001600160a01b03166102d8565b34801561059c57600080fd5b5061023f610e28565b3480156105b157600080fd5b50601554610296565b3480156105c657600080fd5b506102756105d53660046120ad565b610e37565b3480156105e657600080fd5b5061033a610e86565b3480156105fb57600080fd5b5061027561060a3660046120ad565b610ecf565b34801561061b57600080fd5b5061033a61062a36600461211a565b610edc565b34801561063b57600080fd5b5061033a61064a366004612172565b610f0b565b34801561065b57600080fd5b5061029660125481565b34801561067157600080fd5b50610296610680366004612194565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156106b757600080fd5b5061033a6106c6366004612133565b610f8d565b3480156106d757600080fd5b5061033a6106e636600461211a565b610fd8565b3480156106f757600080fd5b5061033a610706366004612133565b61105c565b6060600d805461071a906121cd565b80601f0160208091040260200160405190810160405280929190818152602001828054610746906121cd565b80156107935780601f1061076857610100808354040283529160200191610793565b820191906000526020600020905b81548152906001019060200180831161077657829003601f168201915b5050505050905090565b60006107aa33848461120a565b5060015b92915050565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016107de90612207565b60405180910390fd5b6000601081905560118190556012819055601381905561080690610f0b565b565b600061081584848461132e565b6108678433610862856040518060600160405280602881526020016123c6602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906115b4565b61120a565b5060019392505050565b6000600b548211156108d85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107de565b60006108e26115ee565b90506108ee8382611146565b9392505050565b6000546001600160a01b0316331461091f5760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03811660009081526008602052604090205460ff166109875760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107de565b60005b600954811015610aa757816001600160a01b0316600982815481106109b1576109b161223c565b6000918252602090912001546001600160a01b031603610a9557600980546109db90600190612268565b815481106109eb576109eb61223c565b600091825260209091200154600980546001600160a01b039092169183908110610a1757610a1761223c565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600890925220805460ff191690556009805480610a6f57610a6f61227f565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610a9f81612295565b91505061098a565b5050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916107aa9185906108629086611611565b6000546001600160a01b03163314610b0b5760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610b595760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03811660009081526008602052604090205460ff1615610bc25760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107de565b6001600160a01b03811660009081526003602052604090205415610c1c576001600160a01b038116600090815260036020526040902054610c0290610871565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526008602052604081205460ff1615610cbf57506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546107ae90610871565b6000546001600160a01b03163314610d0b5760405162461bcd60e51b81526004016107de90612207565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d7f5760405162461bcd60e51b81526004016107de90612207565b6010829055601182905560128190556013819055600f610d9f82846122ae565b1115610aa75760405162461bcd60e51b815260206004820152600c60248201526b546f6f20486967682046656560a01b60448201526064016107de565b6000546001600160a01b03163314610e065760405162461bcd60e51b81526004016107de90612207565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600e805461071a906121cd565b60006107aa3384610862856040518060600160405280602581526020016123ee602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906115b4565b6000546001600160a01b03163314610eb05760405162461bcd60e51b81526004016107de90612207565b6001601081905560118190556004601281905560135561080690610f0b565b60006107aa33848461132e565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107de90612207565b601555565b6000546001600160a01b03163314610f355760405162461bcd60e51b81526004016107de90612207565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610f8290831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610fb75760405162461bcd60e51b81526004016107de90612207565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146110025760405162461bcd60e51b81526004016107de90612207565b6014819055600a5461101690612710611146565b81116110595760405162461bcd60e51b8152602060048201526012602482015271151bdbc81b195cdcc81d1e1b881b1a5b5a5d60721b60448201526064016107de565b50565b6000546001600160a01b031633146110865760405162461bcd60e51b81526004016107de90612207565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006108ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611670565b60008260000361119a575060006107ae565b60006111a683856122c6565b9050826111b385836122e5565b146108ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107de565b6001600160a01b03831661126c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107de565b6001600160a01b0382166112cd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107de565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107de565b6001600160a01b0382166113f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107de565b600081116114565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107de565b6000546001600160a01b0384811691161480159061148257506000546001600160a01b03838116911614155b156114ea576014548111156114ea5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107de565b60006114f530610c82565b60155460165491925082101590600160a01b900460ff161580156115225750601654600160a81b900460ff165b801561153c57506016546001600160a01b03868116911614155b156115555780156115555760155491506115558261169e565b6001600160a01b03851660009081526007602052604090205460019060ff168061159757506001600160a01b03851660009081526007602052604090205460ff165b156115a0575060005b6115ac86868684611706565b505050505050565b600081848411156115d85760405162461bcd60e51b81526004016107de9190612043565b5060006115e58486612268565b95945050505050565b60008060006115fb611838565b909250905061160a8282611146565b9250505090565b60008061161e83856122ae565b9050838110156108ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107de565b600081836116915760405162461bcd60e51b81526004016107de9190612043565b5060006115e584866122e5565b6016805460ff60a01b1916600160a01b1790556116ba816119ba565b60025460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156116f4573d6000803e3d6000fd5b50506016805460ff60a01b1916905550565b8061171a5761171a60006010819055601255565b6001600160a01b03841660009081526008602052604090205460ff16801561175b57506001600160a01b03831660009081526008602052604090205460ff16155b156117705761176b848484611bb3565b61181c565b6001600160a01b03841660009081526008602052604090205460ff161580156117b157506001600160a01b03831660009081526008602052604090205460ff165b156117c15761176b848484611cd9565b6001600160a01b03841660009081526008602052604090205460ff16801561180157506001600160a01b03831660009081526008602052604090205460ff165b156118115761176b848484611d82565b61181c848484611df5565b8061183257611832601154601055601354601255565b50505050565b600b54600a546000918291825b60095481101561198a578260036000600984815481106118675761186761223c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806118d257508160046000600984815481106118ab576118ab61223c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156118e857600b54600a54945094505050509091565b61192e60036000600984815481106119025761190261223c565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611e35565b9250611976600460006009848154811061194a5761194a61223c565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611e35565b91508061198281612295565b915050611845565b50600a54600b5461199a91611146565b8210156119b157600b54600a549350935050509091565b90939092509050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119ef576119ef61223c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612307565b81600181518110611aa457611aa461223c565b60200260200101906001600160a01b031690816001600160a01b031681525050611aef307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461120a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611b44908590600090869030904290600401612368565b600060405180830381600087803b158015611b5e57600080fd5b505af1158015611b72573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ba79291906123a4565b60405180910390a15050565b600080600080600080611bc587611e77565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611bf79088611e35565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611c269087611e35565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611c559086611611565b6001600160a01b038916600090815260036020526040902055611c7781611ec6565b611c818483611f4f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cc691815260200190565b60405180910390a3505050505050505050565b600080600080600080611ceb87611e77565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611d1d9087611e35565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054611d539084611611565b6001600160a01b038916600090815260046020908152604080832093909355600390522054611c559086611611565b600080600080600080611d9487611e77565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611dc69088611e35565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611d1d9087611e35565b600080600080600080611e0787611e77565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c2690875b60006108ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115b4565b6000806000806000806000806000611e8e8a611f73565b9250925092506000806000611eac8d8686611ea76115ee565b611fb5565b919f909e50909c50959a5093985091965092945050505050565b6000611ed06115ee565b90506000611ede8383611188565b30600090815260036020526040902054909150611efb9082611611565b3060009081526003602090815260408083209390935560089052205460ff1615611f4a5730600090815260046020526040902054611f399084611611565b306000908152600460205260409020555b505050565b600b54611f5c9083611e35565b600b55600c54611f6c9082611611565b600c555050565b600080600080611f8285612005565b90506000611f8f86612027565b90506000611fa782611fa18986611e35565b90611e35565b979296509094509092505050565b6000808080611fc48886611188565b90506000611fd28887611188565b90506000611fe08888611188565b90506000611ff282611fa18686611e35565b939b939a50919850919650505050505050565b60006107ae60646120216010548561118890919063ffffffff16565b90611146565b60006107ae60646120216012548561118890919063ffffffff16565b600060208083528351808285015260005b8181101561207057858101830151858201604001528201612054565b81811115612082576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461105957600080fd5b600080604083850312156120c057600080fd5b82356120cb81612098565b946020939093013593505050565b6000806000606084860312156120ee57600080fd5b83356120f981612098565b9250602084013561210981612098565b929592945050506040919091013590565b60006020828403121561212c57600080fd5b5035919050565b60006020828403121561214557600080fd5b81356108ee81612098565b6000806040838503121561216357600080fd5b50508035926020909101359150565b60006020828403121561218457600080fd5b813580151581146108ee57600080fd5b600080604083850312156121a757600080fd5b82356121b281612098565b915060208301356121c281612098565b809150509250929050565b600181811c908216806121e157607f821691505b60208210810361220157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561227a5761227a612252565b500390565b634e487b7160e01b600052603160045260246000fd5b6000600182016122a7576122a7612252565b5060010190565b600082198211156122c1576122c1612252565b500190565b60008160001904831182151516156122e0576122e0612252565b500290565b60008261230257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561231957600080fd5b81516108ee81612098565b600081518084526020808501945080840160005b8381101561235d5781516001600160a01b031687529582019590820190600101612338565b509495945050505050565b85815284602082015260a06040820152600061238760a0830186612324565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123bd6040830184612324565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209a75fae5337799877f74a235c17a7e53f1f9a761bae066bb9d493bf84acea3cb64736f6c634300080f0033

Deployed Bytecode Sourcemap

4703:16465:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7160:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8072:161;;;;;;;;;;-1:-1:-1;8072:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;8072:161:0;1072:187:1;9193:87:0;;;;;;;;;;-1:-1:-1;9262:10:0;;9193:87;;;1410:25:1;;;1398:2;1383:18;9193:87:0;1264:177:1;5955:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1636:32:1;;;1618:51;;1606:2;1591:18;5955:51:0;1446:229:1;7437:95:0;;;;;;;;;;-1:-1:-1;7517:7:0;;7437:95;;4791:101;;;;;;;;;;-1:-1:-1;4791:101:0;;;;-1:-1:-1;;;;;4791:101:0;;;20236:222;;;;;;;;;;;;;:::i;:::-;;8241:313;;;;;;;;;;-1:-1:-1;8241:313:0;;;;;:::i;:::-;;:::i;9424:253::-;;;;;;;;;;-1:-1:-1;9424:253:0;;;;;:::i;:::-;;:::i;7346:83::-;;;;;;;;;;-1:-1:-1;7412:9:0;;7346:83;;7412:9;;;;2692:36:1;;2680:2;2665:18;7346:83:0;2550:184:1;10032:485:0;;;;;;;;;;-1:-1:-1;10032:485:0;;;;;:::i;:::-;;:::i;8562:218::-;;;;;;;;;;-1:-1:-1;8562:218:0;;;;;:::i;:::-;;:::i;5608:26::-;;;;;;;;;;;;;;;;19230:111;;;;;;;;;;-1:-1:-1;19230:111:0;;;;;:::i;:::-;;:::i;6013:28::-;;;;;;;;;;-1:-1:-1;6013:28:0;;;;-1:-1:-1;;;;;6013:28:0;;;6082:41;;;;;;;;;;-1:-1:-1;6082:41:0;;;;-1:-1:-1;;;6082:41:0;;;;;;9685:339;;;;;;;;;;-1:-1:-1;9685:339:0;;;;;:::i;:::-;;:::i;19095:123::-;;;;;;;;;;-1:-1:-1;19095:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;19183:27:0;19159:4;19183:27;;;:18;:27;;;;;;;;;19095:123;7540:198;;;;;;;;;;-1:-1:-1;7540:198:0;;;;;:::i;:::-;;:::i;2964:148::-;;;;;;;;;;;;;:::i;20478:332::-;;;;;;;;;;-1:-1:-1;20478:332:0;;;;;:::i;:::-;;:::i;5822:53::-;;;;;;;;;;;;;;;;19854:179;;;;;;;;;;-1:-1:-1;19854:179:0;;;;;:::i;:::-;;:::i;9065:120::-;;;;;;;;;;-1:-1:-1;9065:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9157:20:0;9133:4;9157:20;;;:11;:20;;;;;;;;;9065:120;2739:79;;;;;;;;;;-1:-1:-1;2777:7:0;2804:6;-1:-1:-1;;;;;2804:6:0;2739:79;;7251:87;;;;;;;;;;;;;:::i;9294:120::-;;;;;;;;;;-1:-1:-1;9383:23:0;;9294:120;;8788:269;;;;;;;;;;-1:-1:-1;8788:269:0;;;;;:::i;:::-;;:::i;20822:246::-;;;;;;;;;;;;;:::i;7746:167::-;;;;;;;;;;-1:-1:-1;7746:167:0;;;;;:::i;:::-;;:::i;19674:166::-;;;;;;;;;;-1:-1:-1;19674:166:0;;;;;:::i;:::-;;:::i;20041:177::-;;;;;;;;;;-1:-1:-1;20041:177:0;;;;;:::i;:::-;;:::i;5713:34::-;;;;;;;;;;;;;;;;7921:143;;;;;;;;;;-1:-1:-1;7921:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8029:18:0;;;8002:7;8029:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7921:143;19353:110;;;;;;;;;;-1:-1:-1;19353:110:0;;;;;:::i;:::-;;:::i;19477:183::-;;;;;;;;;;-1:-1:-1;19477:183:0;;;;;:::i;:::-;;:::i;3120:244::-;;;;;;;;;;-1:-1:-1;3120:244:0;;;;;:::i;:::-;;:::i;7160:83::-;7197:13;7230:5;7223:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7160:83;:::o;8072:161::-;8147:4;8164:39;198:10;8187:7;8196:6;8164:8;:39::i;:::-;-1:-1:-1;8221:4:0;8072:161;;;;;:::o;20236:222::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;;;;;;;;;20305:1:::1;20295:7;:11:::0;;;20317:15:::1;:19:::0;;;20349:15:::1;:19:::0;;;20379:23:::1;:27:::0;;;20419:31:::1;::::0;:24:::1;:31::i;:::-;20236:222::o:0;8241:313::-;8339:4;8356:36;8366:6;8374:9;8385:6;8356:9;:36::i;:::-;8403:121;8412:6;198:10;8434:89;8472:6;8434:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8434:19:0;;;;;;:11;:19;;;;;;;;198:10;8434:33;;;;;;;;;;:37;:89::i;:::-;8403:8;:121::i;:::-;-1:-1:-1;8542:4:0;8241:313;;;;;:::o;9424:253::-;9490:7;9529;;9518;:18;;9510:73;;;;-1:-1:-1;;;9510:73:0;;5071:2:1;9510:73:0;;;5053:21:1;5110:2;5090:18;;;5083:30;5149:34;5129:18;;;5122:62;-1:-1:-1;;;5200:18:1;;;5193:40;5250:19;;9510:73:0;4869:406:1;9510:73:0;9594:19;9617:10;:8;:10::i;:::-;9594:33;-1:-1:-1;9645:24:0;:7;9594:33;9645:11;:24::i;:::-;9638:31;9424:253;-1:-1:-1;;;9424:253:0:o;10032:485::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10120:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10112:60;;;::::0;-1:-1:-1;;;10112:60:0;;5482:2:1;10112:60:0::1;::::0;::::1;5464:21:1::0;5521:2;5501:18;;;5494:30;5560:29;5540:18;;;5533:57;5607:18;;10112:60:0::1;5280:351:1::0;10112:60:0::1;10188:9;10183:327;10207:9;:16:::0;10203:20;::::1;10183:327;;;10265:7;-1:-1:-1::0;;;;;10249:23:0::1;:9;10259:1;10249:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10249:12:0::1;:23:::0;10245:254:::1;;10308:9;10318:16:::0;;:20:::1;::::0;10337:1:::1;::::0;10318:20:::1;:::i;:::-;10308:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10293:9:::1;:12:::0;;-1:-1:-1;;;;;10308:31:0;;::::1;::::0;10303:1;;10293:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;10293:46:0::1;-1:-1:-1::0;;;;;10293:46:0;;::::1;;::::0;;10358:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10397:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10397:28:0::1;::::0;;10444:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10444:15:0;;;;;-1:-1:-1;;;;;;10444:15:0::1;::::0;;;;;10183:327:::1;10032:485:::0;:::o;10245:254::-:1;10225:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10183:327;;;;10032:485:::0;:::o;8562:218::-;198:10;8650:4;8699:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8699:34:0;;;;;;;;;;8650:4;;8667:83;;8690:7;;8699:50;;8738:10;8699:38;:50::i;19230:111::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19299:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;19299:34:0::1;19329:4;19299:34;::::0;;19230:111::o;9685:339::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9774:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9773:21;9765:61;;;::::0;-1:-1:-1;;;9765:61:0;;5482:2:1;9765:61:0::1;::::0;::::1;5464:21:1::0;5521:2;5501:18;;;5494:30;5560:29;5540:18;;;5533:57;5607:18;;9765:61:0::1;5280:351:1::0;9765:61:0::1;-1:-1:-1::0;;;;;9840:16:0;::::1;9859:1;9840:16:::0;;;:7:::1;:16;::::0;;;;;:20;9837:108:::1;;-1:-1:-1::0;;;;;9916:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9896:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9877:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9837:108:::1;-1:-1:-1::0;;;;;9955:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9955:27:0::1;9978:4;9955:27:::0;;::::1;::::0;;;9993:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9993:23:0::1;::::0;;::::1;::::0;;9685:339::o;7540:198::-;-1:-1:-1;;;;;7630:20:0;;7606:7;7630:20;;;:11;:20;;;;;;;;7626:49;;;-1:-1:-1;;;;;;7659:16:0;;;;;:7;:16;;;;;;;7540:198::o;7626:49::-;-1:-1:-1;;;;;7713:16:0;;;;;;:7;:16;;;;;;7693:37;;:19;:37::i;2964:148::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;3071:1:::1;3055:6:::0;;3034:40:::1;::::0;-1:-1:-1;;;;;3055:6:0;;::::1;::::0;3034:40:::1;::::0;3071:1;;3034:40:::1;3102:1;3085:19:::0;;-1:-1:-1;;;;;;3085:19:0::1;::::0;;2964:148::o;20478:332::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;20580:7:::1;:23:::0;;;20614:15:::1;:25:::0;;;20652:15:::1;:32:::0;;;20695:23:::1;:40:::0;;;20781:2:::1;20756:23;20670:14:::0;20590:13;20756:23:::1;:::i;:::-;:27;;20748:52;;;::::0;-1:-1:-1;;;20748:52:0;;6637:2:1;20748:52:0::1;::::0;::::1;6619:21:1::0;6676:2;6656:18;;;6649:30;-1:-1:-1;;;6695:18:1;;;6688:42;6747:18;;20748:52:0::1;6435:336:1::0;19854:179:0;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;19964:24:::1;:61:::0;;-1:-1:-1;;;;;;19964:61:0::1;-1:-1:-1::0;;;;;19964:61:0;;;::::1;::::0;;;::::1;::::0;;19854:179::o;7251:87::-;7290:13;7323:7;7316:14;;;;;:::i;8788:269::-;8881:4;8898:129;198:10;8921:7;8930:96;8969:15;8930:96;;;;;;;;;;;;;;;;;198:10;8930:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8930:34:0;;;;;;;;;;;;:38;:96::i;20822:246::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;20894:1:::1;20884:7;:11:::0;;;20906:15:::1;:25:::0;;;20962:1:::1;20944:15;:19:::0;;;20974:23:::1;:41:::0;21028:30:::1;::::0;:24:::1;:30::i;7746:167::-:0;7824:4;7841:42;198:10;7865:9;7876:6;7841:9;:42::i;19674:166::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;19782:23:::1;:50:::0;19674:166::o;20041:177::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;20124:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;20124:32:0::1;-1:-1:-1::0;;;;20124:32:0;;::::1;;::::0;;20172:38:::1;::::0;::::1;::::0;::::1;::::0;20148:8;1237:14:1;1230:22;1212:41;;1200:2;1185:18;;1072:187;20172:38:0::1;;;;;;;;20041:177:::0;:::o;19353:110::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19420:27:0::1;19450:5;19420:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;19420:35:0::1;::::0;;19353:110::o;19477:183::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;19554:12:::1;:26:::0;;;19611:7:::1;::::0;:18:::1;::::0;19623:5:::1;19611:11;:18::i;:::-;19599:11;:30;19591:61;;;::::0;-1:-1:-1;;;19591:61:0;;6978:2:1;19591:61:0::1;::::0;::::1;6960:21:1::0;7017:2;6997:18;;;6990:30;-1:-1:-1;;;7036:18:1;;;7029:48;7094:18;;19591:61:0::1;6776:342:1::0;19591:61:0::1;19477:183:::0;:::o;3120:244::-;2873:6;;-1:-1:-1;;;;;2873:6:0;198:10;2873:22;2865:67;;;;-1:-1:-1;;;2865:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3209:22:0;::::1;3201:73;;;::::0;-1:-1:-1;;;3201:73:0;;7325:2:1;3201:73:0::1;::::0;::::1;7307:21:1::0;7364:2;7344:18;;;7337:30;7403:34;7383:18;;;7376:62;-1:-1:-1;;;7454:18:1;;;7447:36;7500:19;;3201:73:0::1;7123:402:1::0;3201:73:0::1;3311:6;::::0;;3290:38:::1;::::0;-1:-1:-1;;;;;3290:38:0;;::::1;::::0;3311:6;::::1;::::0;3290:38:::1;::::0;::::1;3339:6;:17:::0;;-1:-1:-1;;;;;;3339:17:0::1;-1:-1:-1::0;;;;;3339:17:0;;;::::1;::::0;;;::::1;::::0;;3120:244::o;1957:132::-;2015:7;2042:39;2046:1;2049;2042:39;;;;;;;;;;;;;;;;;:3;:39::i;1701:246::-;1759:7;1783:1;1788;1783:6;1779:47;;-1:-1:-1;1813:1:0;1806:8;;1779:47;1836:9;1848:5;1852:1;1848;:5;:::i;:::-;1836:17;-1:-1:-1;1881:1:0;1872:5;1876:1;1836:17;1872:5;:::i;:::-;:10;1864:56;;;;-1:-1:-1;;;1864:56:0;;8127:2:1;1864:56:0;;;8109:21:1;8166:2;8146:18;;;8139:30;8205:34;8185:18;;;8178:62;-1:-1:-1;;;8256:18:1;;;8249:31;8297:19;;1864:56:0;7925:397:1;10525:343:0;-1:-1:-1;;;;;10624:19:0;;10616:68;;;;-1:-1:-1;;;10616:68:0;;8529:2:1;10616:68:0;;;8511:21:1;8568:2;8548:18;;;8541:30;8607:34;8587:18;;;8580:62;-1:-1:-1;;;8658:18:1;;;8651:34;8702:19;;10616:68:0;8327:400:1;10616:68:0;-1:-1:-1;;;;;10703:21:0;;10695:68;;;;-1:-1:-1;;;10695:68:0;;8934:2:1;10695:68:0;;;8916:21:1;8973:2;8953:18;;;8946:30;9012:34;8992:18;;;8985:62;-1:-1:-1;;;9063:18:1;;;9056:32;9105:19;;10695:68:0;8732:398:1;10695:68:0;-1:-1:-1;;;;;10776:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10828:32;;1410:25:1;;;10828:32:0;;1383:18:1;10828:32:0;;;;;;;10525:343;;;:::o;10876:1227::-;-1:-1:-1;;;;;10970:18:0;;10962:68;;;;-1:-1:-1;;;10962:68:0;;9337:2:1;10962:68:0;;;9319:21:1;9376:2;9356:18;;;9349:30;9415:34;9395:18;;;9388:62;-1:-1:-1;;;9466:18:1;;;9459:35;9511:19;;10962:68:0;9135:401:1;10962:68:0;-1:-1:-1;;;;;11049:16:0;;11041:64;;;;-1:-1:-1;;;11041:64:0;;9743:2:1;11041:64:0;;;9725:21:1;9782:2;9762:18;;;9755:30;9821:34;9801:18;;;9794:62;-1:-1:-1;;;9872:18:1;;;9865:33;9915:19;;11041:64:0;9541:399:1;11041:64:0;11133:1;11124:6;:10;11116:64;;;;-1:-1:-1;;;11116:64:0;;10147:2:1;11116:64:0;;;10129:21:1;10186:2;10166:18;;;10159:30;10225:34;10205:18;;;10198:62;-1:-1:-1;;;10276:18:1;;;10269:39;10325:19;;11116:64:0;9945:405:1;11116:64:0;2777:7;2804:6;-1:-1:-1;;;;;11194:15:0;;;2804:6;;11194:15;;;;:32;;-1:-1:-1;2777:7:0;2804:6;-1:-1:-1;;;;;11213:13:0;;;2804:6;;11213:13;;11194:32;11191:149;;;11271:12;;11261:6;:22;;11253:75;;;;-1:-1:-1;;;11253:75:0;;10557:2:1;11253:75:0;;;10539:21:1;10596:2;10576:18;;;10569:30;10635:34;10615:18;;;10608:62;-1:-1:-1;;;10686:18:1;;;10679:38;10734:19;;11253:75:0;10355:404:1;11253:75:0;11352:28;11383:24;11401:4;11383:9;:24::i;:::-;11473:23;;11522:16;;11352:55;;-1:-1:-1;11449:47:0;;;;-1:-1:-1;;;11522:16:0;;;;11521:17;:42;;;;-1:-1:-1;11542:21:0;;-1:-1:-1;;;11542:21:0;;;;11521:42;:67;;;;-1:-1:-1;11575:13:0;;-1:-1:-1;;;;;11567:21:0;;;11575:13;;11567:21;;11521:67;11517:300;;;11619:23;11615:191;;;11700:23;;11677:46;;11742:44;11765:20;11742:22;:44::i;:::-;-1:-1:-1;;;;;11954:24:0;;11837:12;11954:24;;;:18;:24;;;;;;11852:4;;11954:24;;;:50;;-1:-1:-1;;;;;;11982:22:0;;;;;;:18;:22;;;;;;;;11954:50;11951:96;;;-1:-1:-1;12030:5:0;11951:96;12057:38;12072:4;12077:2;12080:6;12087:7;12057:14;:38::i;:::-;10951:1152;;;10876:1227;;;:::o;1501:192::-;1587:7;1623:12;1615:6;;;;1607:29;;;;-1:-1:-1;;;1607:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1647:9:0;1659:5;1663:1;1659;:5;:::i;:::-;1647:17;1501:192;-1:-1:-1;;;;;1501:192:0:o;17385:169::-;17426:7;17453:15;17470;17489:19;:17;:19::i;:::-;17452:56;;-1:-1:-1;17452:56:0;-1:-1:-1;17526:20:0;17452:56;;17526:11;:20::i;:::-;17519:27;;;;17385:169;:::o;1170:179::-;1228:7;;1260:5;1264:1;1260;:5;:::i;:::-;1248:17;;1289:1;1284;:6;;1276:46;;;;-1:-1:-1;;;1276:46:0;;10966:2:1;1276:46:0;;;10948:21:1;11005:2;10985:18;;;10978:30;11044:29;11024:18;;;11017:57;11091:18;;1276:46:0;10764:351:1;2097:276:0;2183:7;2218:12;2211:5;2203:28;;;;-1:-1:-1;;;2203:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2242:9:0;2254:5;2258:1;2254;:5;:::i;12113:255::-;6483:16;:23;;-1:-1:-1;;;;6483:23:0;-1:-1:-1;;;6483:23:0;;;12212:38:::1;12229:20:::0;12212:16:::1;:38::i;:::-;12315:24;::::0;:45:::1;::::0;12283:21:::1;::::0;-1:-1:-1;;;;;12315:24:0::1;::::0;:45;::::1;;;::::0;12283:21;;12262:18:::1;12315:45:::0;12262:18;12315:45;12283:21;12315:24;:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6529:16:0;:24;;-1:-1:-1;;;;6529:24:0;;;-1:-1:-1;12113:255:0:o;12974:681::-;13091:7;13087:32;;13102:14;18900:1;18890:7;:11;;;18912:15;:19;18840:99;13102:14;-1:-1:-1;;;;;13135:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;13159:22:0;;;;;;:11;:22;;;;;;;;13158:23;13135:46;13131:467;;;13198:48;13220:6;13228:9;13239:6;13198:21;:48::i;:::-;13131:467;;;-1:-1:-1;;;;;13269:19:0;;;;;;:11;:19;;;;;;;;13268:20;:46;;;;-1:-1:-1;;;;;;13292:22:0;;;;;;:11;:22;;;;;;;;13268:46;13264:334;;;13331:46;13351:6;13359:9;13370:6;13331:19;:46::i;13264:334::-;-1:-1:-1;;;;;13399:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;13422:22:0;;;;;;:11;:22;;;;;;;;13399:45;13395:203;;;13461:48;13483:6;13491:9;13502:6;13461:21;:48::i;13395:203::-;13542:44;13560:6;13568:9;13579:6;13542:17;:44::i;:::-;13614:7;13610:34;;13626:15;19010;;19000:7;:25;19054:23;;19036:15;:41;18951:134;13626:15;12974:681;;;;:::o;17562:577::-;17665:7;;17701;;17612;;;;;17725:299;17749:9;:16;17745:20;;17725:299;;;17825:7;17801;:21;17809:9;17819:1;17809:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17809:12:0;17801:21;;;;;;;;;;;;;:31;;:66;;;17860:7;17836;:21;17844:9;17854:1;17844:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17844:12:0;17836:21;;;;;;;;;;;;;:31;17801:66;17797:97;;;17877:7;;17886;;17869:25;;;;;;;17562:577;;:::o;17797:97::-;17919:34;17931:7;:21;17939:9;17949:1;17939:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17939:12:0;17931:21;;;;;;;;;;;;;17919:7;;:11;:34::i;:::-;17909:44;;17978:34;17990:7;:21;17998:9;18008:1;17998:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17998:12:0;17990:21;;;;;;;;;;;;;17978:7;;:11;:34::i;:::-;17968:44;-1:-1:-1;17767:3:0;;;;:::i;:::-;;;;17725:299;;;-1:-1:-1;18060:7:0;;18048;;:20;;:11;:20::i;:::-;18038:7;:30;18034:61;;;18078:7;;18087;;18070:25;;;;;;17562:577;;:::o;18034:61::-;18114:7;;18123;;-1:-1:-1;17562:577:0;-1:-1:-1;17562:577:0:o;12388:572::-;12484:16;;;12498:1;12484:16;;;;;;;;12460:21;;12484:16;;;;;;;;;;-1:-1:-1;12484:16:0;12460:40;;12529:4;12511;12516:1;12511:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12511:23:0;;;-1:-1:-1;;;;;12511:23:0;;;;;12555:15;-1:-1:-1;;;;;12555:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12545:4;12550:1;12545:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;12545:32:0;;;-1:-1:-1;;;;;12545:32:0;;;;;12588:62;12605:4;12620:15;12638:11;12588:8;:62::i;:::-;12661:240;;-1:-1:-1;;;12661:240:0;;-1:-1:-1;;;;;12661:15:0;:66;;;;:240;;12742:11;;12768:1;;12812:4;;12839;;12875:15;;12661:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12917:35;12934:11;12947:4;12917:35;;;;;;;:::i;:::-;;;;;;;;12449:511;12388:572;:::o;14767:566::-;14870:15;14887:23;14912:12;14926:23;14951:12;14965:18;14987:19;14998:7;14987:10;:19::i;:::-;-1:-1:-1;;;;;15035:15:0;;;;;;:7;:15;;;;;;14869:137;;-1:-1:-1;14869:137:0;;-1:-1:-1;14869:137:0;;-1:-1:-1;14869:137:0;-1:-1:-1;14869:137:0;-1:-1:-1;14869:137:0;-1:-1:-1;15035:28:0;;15055:7;15035:19;:28::i;:::-;-1:-1:-1;;;;;15017:15:0;;;;;;:7;:15;;;;;;;;:46;;;;15092:7;:15;;;;:28;;15112:7;15092:19;:28::i;:::-;-1:-1:-1;;;;;15074:15:0;;;;;;;:7;:15;;;;;;:46;;;;15152:18;;;;;;;:39;;15175:15;15152:22;:39::i;:::-;-1:-1:-1;;;;;15131:18:0;;;;;;:7;:18;;;;;:60;15205:26;15220:10;15205:14;:26::i;:::-;15242:23;15254:4;15260;15242:11;:23::i;:::-;15298:9;-1:-1:-1;;;;;15281:44:0;15290:6;-1:-1:-1;;;;;15281:44:0;;15309:15;15281:44;;;;1410:25:1;;1398:2;1383:18;;1264:177;15281:44:0;;;;;;;;14858:475;;;;;;14767:566;;;:::o;14173:586::-;14274:15;14291:23;14316:12;14330:23;14355:12;14369:18;14391:19;14402:7;14391:10;:19::i;:::-;-1:-1:-1;;;;;14439:15:0;;;;;;:7;:15;;;;;;14273:137;;-1:-1:-1;14273:137:0;;-1:-1:-1;14273:137:0;;-1:-1:-1;14273:137:0;-1:-1:-1;14273:137:0;-1:-1:-1;14273:137:0;-1:-1:-1;14439:28:0;;14273:137;14439:19;:28::i;:::-;-1:-1:-1;;;;;14421:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;14499:18;;;;;:7;:18;;;;;:39;;14522:15;14499:22;:39::i;:::-;-1:-1:-1;;;;;14478:18:0;;;;;;:7;:18;;;;;;;;:60;;;;14570:7;:18;;;;:39;;14593:15;14570:22;:39::i;15341:648::-;15450:15;15467:23;15492:12;15506:23;15531:12;15545:18;15567:19;15578:7;15567:10;:19::i;:::-;-1:-1:-1;;;;;15615:15:0;;;;;;:7;:15;;;;;;15449:137;;-1:-1:-1;15449:137:0;;-1:-1:-1;15449:137:0;;-1:-1:-1;15449:137:0;-1:-1:-1;15449:137:0;-1:-1:-1;15449:137:0;-1:-1:-1;15615:28:0;;15635:7;15615:19;:28::i;:::-;-1:-1:-1;;;;;15597:15:0;;;;;;:7;:15;;;;;;;;:46;;;;15672:7;:15;;;;:28;;15692:7;15672:19;:28::i;13663:502::-;13762:15;13779:23;13804:12;13818:23;13843:12;13857:18;13879:19;13890:7;13879:10;:19::i;:::-;-1:-1:-1;;;;;13927:15:0;;;;;;:7;:15;;;;;;13761:137;;-1:-1:-1;13761:137:0;;-1:-1:-1;13761:137:0;;-1:-1:-1;13761:137:0;-1:-1:-1;13761:137:0;-1:-1:-1;13761:137:0;-1:-1:-1;13927:28:0;;13761:137;1357:136;1415:7;1442:43;1446:1;1449;1442:43;;;;;;;;;;;;;;;;;:3;:43::i;16158:425::-;16217:7;16226;16235;16244;16253;16262;16289:23;16314:12;16328:18;16350:20;16362:7;16350:11;:20::i;:::-;16288:82;;;;;;16382:15;16399:23;16424:12;16440:50;16452:7;16461:4;16467:10;16479;:8;:10::i;:::-;16440:11;:50::i;:::-;16381:109;;;;-1:-1:-1;16381:109:0;;-1:-1:-1;16541:15:0;;-1:-1:-1;16558:4:0;;-1:-1:-1;16564:10:0;;-1:-1:-1;16158:425:0;;-1:-1:-1;;;;;16158:425:0:o;18151:361::-;18220:19;18243:10;:8;:10::i;:::-;18220:33;-1:-1:-1;18264:18:0;18285:27;:10;18220:33;18285:14;:27::i;:::-;18364:4;18348:22;;;;:7;:22;;;;;;18264:48;;-1:-1:-1;18348:38:0;;18264:48;18348:26;:38::i;:::-;18339:4;18323:22;;;;:7;:22;;;;;;;;:63;;;;18400:11;:26;;;;;;18397:107;;;18482:4;18466:22;;;;:7;:22;;;;;;:38;;18493:10;18466:26;:38::i;:::-;18457:4;18441:22;;;;:7;:22;;;;;:63;18397:107;18209:303;;18151:361;:::o;15997:153::-;16081:7;;:17;;16093:4;16081:11;:17::i;:::-;16071:7;:27;16122:10;;:20;;16137:4;16122:14;:20::i;:::-;16109:10;:33;-1:-1:-1;;15997:153:0:o;16591:343::-;16651:7;16660;16669;16695:12;16710:24;16726:7;16710:15;:24::i;:::-;16695:39;;16745:18;16765:38;16795:7;16765:29;:38::i;:::-;16745:58;-1:-1:-1;16814:23:0;16840:33;16745:58;16840:17;:7;16852:4;16840:11;:17::i;:::-;:21;;:33::i;:::-;16814:59;16909:4;;-1:-1:-1;16915:10:0;;-1:-1:-1;16591:343:0;;-1:-1:-1;;;16591:343:0:o;16942:435::-;17057:7;;;;17119:24;:7;17131:11;17119;:24::i;:::-;17101:42;-1:-1:-1;17154:12:0;17169:21;:4;17178:11;17169:8;:21::i;:::-;17154:36;-1:-1:-1;17201:18:0;17222:27;:10;17237:11;17222:14;:27::i;:::-;17201:48;-1:-1:-1;17260:23:0;17286:33;17201:48;17286:17;:7;17298:4;17286:11;:17::i;:33::-;17338:7;;;;-1:-1:-1;17364:4:0;;-1:-1:-1;16942:435:0;;-1:-1:-1;;;;;;;16942:435:0:o;18524:136::-;18588:7;18621:31;18646:5;18621:20;18633:7;;18621;:11;;:20;;;;:::i;:::-;:24;;:31::i;18672:156::-;18750:7;18783:37;18816:3;18783:28;18795:15;;18783:7;:11;;:28;;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1904:456::-;1981:6;1989;1997;2050:2;2038:9;2029:7;2025:23;2021:32;2018:52;;;2066:1;2063;2056:12;2018:52;2105:9;2092:23;2124:31;2149:5;2124:31;:::i;:::-;2174:5;-1:-1:-1;2231:2:1;2216:18;;2203:32;2244:33;2203:32;2244:33;:::i;:::-;1904:456;;2296:7;;-1:-1:-1;;;2350:2:1;2335:18;;;;2322:32;;1904:456::o;2365:180::-;2424:6;2477:2;2465:9;2456:7;2452:23;2448:32;2445:52;;;2493:1;2490;2483:12;2445:52;-1:-1:-1;2516:23:1;;2365:180;-1:-1:-1;2365:180:1:o;2739:247::-;2798:6;2851:2;2839:9;2830:7;2826:23;2822:32;2819:52;;;2867:1;2864;2857:12;2819:52;2906:9;2893:23;2925:31;2950:5;2925:31;:::i;3199:248::-;3267:6;3275;3328:2;3316:9;3307:7;3303:23;3299:32;3296:52;;;3344:1;3341;3334:12;3296:52;-1:-1:-1;;3367:23:1;;;3437:2;3422:18;;;3409:32;;-1:-1:-1;3199:248:1:o;3452:273::-;3508:6;3561:2;3549:9;3540:7;3536:23;3532:32;3529:52;;;3577:1;3574;3567:12;3529:52;3616:9;3603:23;3669:5;3662:13;3655:21;3648:5;3645:32;3635:60;;3691:1;3688;3681:12;3730:388;3798:6;3806;3859:2;3847:9;3838:7;3834:23;3830:32;3827:52;;;3875:1;3872;3865:12;3827:52;3914:9;3901:23;3933:31;3958:5;3933:31;:::i;:::-;3983:5;-1:-1:-1;4040:2:1;4025:18;;4012:32;4053:33;4012:32;4053:33;:::i;:::-;4105:7;4095:17;;;3730:388;;;;;:::o;4123:380::-;4202:1;4198:12;;;;4245;;;4266:61;;4320:4;4312:6;4308:17;4298:27;;4266:61;4373:2;4365:6;4362:14;4342:18;4339:38;4336:161;;4419:10;4414:3;4410:20;4407:1;4400:31;4454:4;4451:1;4444:15;4482:4;4479:1;4472:15;4336:161;;4123:380;;;:::o;4508:356::-;4710:2;4692:21;;;4729:18;;;4722:30;4788:34;4783:2;4768:18;;4761:62;4855:2;4840:18;;4508:356::o;5636:127::-;5697:10;5692:3;5688:20;5685:1;5678:31;5728:4;5725:1;5718:15;5752:4;5749:1;5742:15;5768:127;5829:10;5824:3;5820:20;5817:1;5810:31;5860:4;5857:1;5850:15;5884:4;5881:1;5874:15;5900:125;5940:4;5968:1;5965;5962:8;5959:34;;;5973:18;;:::i;:::-;-1:-1:-1;6010:9:1;;5900:125::o;6030:127::-;6091:10;6086:3;6082:20;6079:1;6072:31;6122:4;6119:1;6112:15;6146:4;6143:1;6136:15;6162:135;6201:3;6222:17;;;6219:43;;6242:18;;:::i;:::-;-1:-1:-1;6289:1:1;6278:13;;6162:135::o;6302:128::-;6342:3;6373:1;6369:6;6366:1;6363:13;6360:39;;;6379:18;;:::i;:::-;-1:-1:-1;6415:9:1;;6302:128::o;7530:168::-;7570:7;7636:1;7632;7628:6;7624:14;7621:1;7618:21;7613:1;7606:9;7599:17;7595:45;7592:71;;;7643:18;;:::i;:::-;-1:-1:-1;7683:9:1;;7530:168::o;7703:217::-;7743:1;7769;7759:132;;7813:10;7808:3;7804:20;7801:1;7794:31;7848:4;7845:1;7838:15;7876:4;7873:1;7866:15;7759:132;-1:-1:-1;7905:9:1;;7703:217::o;11252:251::-;11322:6;11375:2;11363:9;11354:7;11350:23;11346:32;11343:52;;;11391:1;11388;11381:12;11343:52;11423:9;11417:16;11442:31;11467:5;11442:31;:::i;11508:461::-;11561:3;11599:5;11593:12;11626:6;11621:3;11614:19;11652:4;11681:2;11676:3;11672:12;11665:19;;11718:2;11711:5;11707:14;11739:1;11749:195;11763:6;11760:1;11757:13;11749:195;;;11828:13;;-1:-1:-1;;;;;11824:39:1;11812:52;;11884:12;;;;11919:15;;;;11860:1;11778:9;11749:195;;;-1:-1:-1;11960:3:1;;11508:461;-1:-1:-1;;;;;11508:461:1:o;11974:582::-;12273:6;12262:9;12255:25;12316:6;12311:2;12300:9;12296:18;12289:34;12359:3;12354:2;12343:9;12339:18;12332:31;12236:4;12380:57;12432:3;12421:9;12417:19;12409:6;12380:57;:::i;:::-;-1:-1:-1;;;;;12473:32:1;;;;12468:2;12453:18;;12446:60;-1:-1:-1;12537:3:1;12522:19;12515:35;12372:65;11974:582;-1:-1:-1;;;11974:582:1:o;12561:332::-;12768:6;12757:9;12750:25;12811:2;12806;12795:9;12791:18;12784:30;12731:4;12831:56;12883:2;12872:9;12868:18;12860:6;12831:56;:::i;:::-;12823:64;12561:332;-1:-1:-1;;;;12561:332:1:o

Swarm Source

ipfs://9a75fae5337799877f74a235c17a7e53f1f9a761bae066bb9d493bf84acea3cb
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.