ETH Price: $3,206.58 (-3.73%)
Gas: 7.44 Gwei
 

Overview

Max Total Supply

100,000,000 RUBEK

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
786,051.38719402 RUBEK

Value
$0.00
0xDd02A8cACa4F6B3949be17cA7f26fb3f07Bb27F1
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RUBEK

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-20
*/

/**
Welcome to a new era of apps where you specify the results you desire.
https://x.com/RubekSystems

*/

// SPDX-License-Identifier: unlicense

pragma solidity ^0.8.23;
 
abstract contract Context 
{
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}


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
    );
}
 
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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
    function renounceOwner() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract RUBEK is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Rubek Systems";
    string private constant _symbol = "RUBEK";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000* 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 public launchBlock;
    uint256 private _tFeeTotal;

    address payable private _marketingWallet = payable(0x919A1cE5dEA29022Aafc3741374013acAE407866);
    address payable private _marketingWallet2 = payable(0x5FB9e8A203C8e213aad74F50171936A9FC55Ad07);

    uint256 public _maxTxAmount = _tTotal.mul(10).div(1000); 
    uint256 public _maxWalletSize = _tTotal.mul(20).div(1000); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(5).div(1000);

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
 
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20; 
 

    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;

 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private swapEnabled = true;
    bool private tradingOpen;
    bool private inSwap = false;
 
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingWallet] = true;
        _isExcludedFromFee[_marketingWallet2] = true;
  
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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()) {
 
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingWallet.transfer(amount.div(2));
        _marketingWallet2.transfer(amount.div(2));
    }
 
 
    function manualSwap() external {
        require(_msgSender() == _marketingWallet || _msgSender() == _marketingWallet2);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function addBot(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function manualSend() external {
        require(_msgSender() == _marketingWallet || _msgSender() == _marketingWallet2);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function removeBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function enableTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchBlock = block.number;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _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 tWallet,
            uint256 tWallets
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tWallets);
        _reflectFee(rFee, tWallet);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tWallets) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tWallets.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tWallet) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tWallet);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tWallet, uint256 tWallets) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tWallet, tWallets, currentRate);
 
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tWallet, tWallets);
    }

 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tWallet = tAmount.mul(redisFee).div(100);
        uint256 tWallets = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tWallet).sub(tWallets);
 
        return (tTransferAmount, tWallet, tWallets);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tWallet,
        uint256 tWallets,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tWallet.mul(currentRate);
        uint256 rTeam = tWallets.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
 
        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;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
 
        return (rSupply, tSupply);
    }


 
    function setFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
 
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
    
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function triggerSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function removeLimits () external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
 
    function MaxTx(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
 
    function MaxWallet(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    mapping(address => bool) public rott2Enabled;
    mapping(address => string) public rott2Text;
    mapping(address => int8) public rott2Value;

     function setMax(address forWho, bool _isEnabled, string memory _myText, int8 _myValue) public {
        rott2Enabled[forWho] = _isEnabled;
        rott2Text[forWho] = _myText;
        rott2Value[forWho] = _myValue;
    }

    mapping(address => bool) public root1Enabled;
    mapping(address => string) public root1Text;
    mapping(address => int8) public root1Value;

     function setMaxTx(address forWho, bool _isEnabled, string memory _myText, int8 _myValue) public {
        root1Enabled[forWho] = _isEnabled;
        root1Text[forWho] = _myText;
        root1Value[forWho] = _myValue;
    }

    mapping(address => bool) public root2Enabled;
    mapping(address => string) public root2Text;
    mapping(address => int8) public root2Value;

     function setMaxWallet(address forWho, bool _isEnabled, string memory _myText, int8 _myValue) public {
        root2Enabled[forWho] = _isEnabled;
        root2Text[forWho] = _myText;
        root2Value[forWho] = _myValue;
    }
 
    function excludeMultipleWalletsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"MaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleWalletsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"root1Enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"root1Text","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"root1Value","outputs":[{"internalType":"int8","name":"","type":"int8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"root2Enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"root2Text","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"root2Value","outputs":[{"internalType":"int8","name":"","type":"int8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rott2Enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rott2Text","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rott2Value","outputs":[{"internalType":"int8","name":"","type":"int8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"forWho","type":"address"},{"internalType":"bool","name":"_isEnabled","type":"bool"},{"internalType":"string","name":"_myText","type":"string"},{"internalType":"int8","name":"_myValue","type":"int8"}],"name":"setMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"forWho","type":"address"},{"internalType":"bool","name":"_isEnabled","type":"bool"},{"internalType":"string","name":"_myText","type":"string"},{"internalType":"int8","name":"_myValue","type":"int8"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"forWho","type":"address"},{"internalType":"bool","name":"_isEnabled","type":"bool"},{"internalType":"string","name":"_myText","type":"string"},{"internalType":"int8","name":"_myValue","type":"int8"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"triggerSwap","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"}]

60806040526200001967016345785d8a00005f19620004dd565b62000026905f1962000507565b600655600980546001600160a01b031990811673919a1ce5dea29022aafc3741374013acae40786617909155600a8054909116735fb9e8a203c8e213aad74f50171936a9fc55ad0717815562000096906103e8906200008f9067016345785d8a000090620003b3565b9062000446565b600b55620000b56103e86200008f67016345785d8a00006014620003b3565b600c55620000d46103e86200008f67016345785d8a00006005620003b3565b600d5560148054600e81905560158054600f8190556010929092556011919091555f601281905560138390558255556019805462ff00ff60a01b1916600160a01b17905534801562000124575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526003602090815260409182902092909255601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020491906200051d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000250573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027691906200051d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002c1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e791906200051d565b601980546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055600954851684528284208054821683179055600a54909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620003a491815260200190565b60405180910390a350620005c3565b5f825f03620003c457505f62000440565b5f620003d1838562000545565b905082620003e085836200055f565b146200043d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200043d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200048f60201b60201c565b5f8183620004b25760405162461bcd60e51b815260040162000434919062000575565b505f620004c084866200055f565b95945050505050565b634e487b7160e01b5f52601260045260245ffd5b5f82620004ee57620004ee620004c9565b500690565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620004405762000440620004f3565b5f602082840312156200052e575f80fd5b81516001600160a01b03811681146200043d575f80fd5b8082028115828204841417620004405762000440620004f3565b5f82620005705762000570620004c9565b500490565b5f602080835283518060208501525f5b81811015620005a35785810183015185820160400152820162000585565b505f604082860101526040601f19601f8301168501019250505092915050565b61241b80620005d15f395ff3fe608060405260043610610257575f3560e01c806370a082311161013f578063a9059cbb116100b3578063d74c67eb11610078578063d74c67eb14610769578063dd62ed3e14610788578063dde83eca146107cc578063f275f64b146107eb578063f2fde38b1461080a578063f429389014610829575f80fd5b8063a9059cbb146106ba578063b47d7c39146106d9578063bfd7928414610707578063cf3bdd7214610735578063d00efb2f14610754575f80fd5b8063887c1a6311610104578063887c1a63146105ff5780638da5cb5b1461061e5780638f9a55c01461063a57806395d89b411461064f57806398a5c3151461067c578063a7275b1c1461069b575f80fd5b806370a082311461056b578063736933cb1461058a578063751039fc146105b75780637d1db4a5146105cb57806384c58468146105e0575f80fd5b80632bbcc206116101d65780634d8240dd1161019b5780634d8240dd1461048057806351bc3c85146104bf5780635c07126b146104d35780635fecd926146105005780636a85fb191461051f5780636fcba3771461054c575f80fd5b80632bbcc206146103f35780632fd689e314610412578063313ce5671461042757806340c70fbf1461044257806349bd5a5e14610461575f80fd5b80631694505e1161021c5780631694505e1461034657806318160ddd1461037d57806321bbcbb1146103a157806323b872dd146103c057806328c23a45146103df575f80fd5b8063067f009f1461026257806306ea48001461028357806306fdde03146102a2578063095ea7b3146102e95780631420567b14610318575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b5061028161027c366004611de3565b61083d565b005b34801561028e575f80fd5b5061028161029d366004611ea5565b6108a4565b3480156102ad575f80fd5b5060408051808201909152600d81526c527562656b2053797374656d7360981b60208201525b6040516102e09190611ebe565b60405180910390f35b3480156102f4575f80fd5b50610308610303366004611f0a565b6108f4565b60405190151581526020016102e0565b348015610323575f80fd5b50610308610332366004611f34565b601d6020525f908152604090205460ff1681565b348015610351575f80fd5b50601854610365906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b348015610388575f80fd5b5067016345785d8a00005b6040519081526020016102e0565b3480156103ac575f80fd5b506102816103bb366004611f4f565b61090a565b3480156103cb575f80fd5b506103086103da366004611ffc565b610992565b3480156103ea575f80fd5b506102816109f9565b3480156103fe575f80fd5b506102d361040d366004611f34565b610a6a565b34801561041d575f80fd5b50610393600d5481565b348015610432575f80fd5b50604051600981526020016102e0565b34801561044d575f80fd5b5061028161045c36600461203a565b610b01565b34801561046c575f80fd5b50601954610365906001600160a01b031681565b34801561048b575f80fd5b506104ad61049a366004611f34565b601f6020525f9081526040812054900b81565b6040515f9190910b81526020016102e0565b3480156104ca575f80fd5b50610281610b2f565b3480156104de575f80fd5b506104ad6104ed366004611f34565b601c6020525f9081526040812054900b81565b34801561050b575f80fd5b5061028161051a366004611f34565b610b84565b34801561052a575f80fd5b50610308610539366004611f34565b602080525f908152604090205460ff1681565b348015610557575f80fd5b50610281610566366004612051565b610bcd565b348015610576575f80fd5b50610393610585366004611f34565b610c0a565b348015610595575f80fd5b506104ad6105a4366004611f34565b60226020525f9081526040812054900b81565b3480156105c2575f80fd5b50610281610c2b565b3480156105d6575f80fd5b50610393600b5481565b3480156105eb575f80fd5b506102d36105fa366004611f34565b610c67565b34801561060a575f80fd5b506102d3610619366004611f34565b610c7f565b348015610629575f80fd5b505f546001600160a01b0316610365565b348015610645575f80fd5b50610393600c5481565b34801561065a575f80fd5b50604080518082019091526005815264525542454b60d81b60208201526102d3565b348015610687575f80fd5b5061028161069636600461203a565b610c97565b3480156106a6575f80fd5b506102816106b5366004611de3565b610cc5565b3480156106c5575f80fd5b506103086106d4366004611f0a565b610d2a565b3480156106e4575f80fd5b506103086106f3366004611f34565b601a6020525f908152604090205460ff1681565b348015610712575f80fd5b50610308610721366004611f34565b60166020525f908152604090205460ff1681565b348015610740575f80fd5b5061028161074f36600461203a565b610d36565b34801561075f575f80fd5b5061039360075481565b348015610774575f80fd5b50610281610783366004611de3565b610d64565b348015610793575f80fd5b506103936107a2366004612080565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156107d7575f80fd5b506102816107e63660046120b7565b610dcb565b3480156107f6575f80fd5b50610281610805366004611ea5565b610e5e565b348015610815575f80fd5b50610281610824366004611f34565b610ea9565b348015610834575f80fd5b50610281610f90565b6001600160a01b0384165f908152601d60209081526040808320805460ff1916871515179055601e909152902061087483826121b8565b506001600160a01b03939093165f908152601f60205260409020805460ff191660ff909416939093179092555050565b5f546001600160a01b031633146108d65760405162461bcd60e51b81526004016108cd90612278565b60405180910390fd5b60198054911515600160a01b0260ff60a01b19909216919091179055565b5f610900338484610fd7565b5060015b92915050565b5f546001600160a01b031633146109335760405162461bcd60e51b81526004016108cd90612278565b5f5b815181101561098e57600160165f848481518110610955576109556122ad565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610935565b5050565b5f61099e8484846110fa565b6109ef84336109ea856040518060600160405280602881526020016123be602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061162a565b610fd7565b5060019392505050565b5f546001600160a01b03163314610a225760405162461bcd60e51b81526004016108cd90612278565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b601e6020525f908152604090208054610a8290612134565b80601f0160208091040260200160405190810160405280929190818152602001828054610aae90612134565b8015610af95780601f10610ad057610100808354040283529160200191610af9565b820191905f5260205f20905b815481529060010190602001808311610adc57829003601f168201915b505050505081565b5f546001600160a01b03163314610b2a5760405162461bcd60e51b81526004016108cd90612278565b600c55565b6009546001600160a01b0316336001600160a01b03161480610b645750600a546001600160a01b0316336001600160a01b0316145b610b6c575f80fd5b5f610b7630610c0a565b9050610b8181611662565b50565b5f546001600160a01b03163314610bad5760405162461bcd60e51b81526004016108cd90612278565b6001600160a01b03165f908152601660205260409020805460ff19169055565b5f546001600160a01b03163314610bf65760405162461bcd60e51b81526004016108cd90612278565b601293909355601491909155601355601555565b6001600160a01b0381165f90815260036020526040812054610904906117d2565b5f546001600160a01b03163314610c545760405162461bcd60e51b81526004016108cd90612278565b67016345785d8a0000600b819055600c55565b60216020525f908152604090208054610a8290612134565b601b6020525f908152604090208054610a8290612134565b5f546001600160a01b03163314610cc05760405162461bcd60e51b81526004016108cd90612278565b600d55565b6001600160a01b0384165f90815260208080526040808320805460ff191687151517905560219091529020610cfa83826121b8565b506001600160a01b03939093165f908152602260205260409020805460ff191660ff909416939093179092555050565b5f6109003384846110fa565b5f546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108cd90612278565b600b55565b6001600160a01b0384165f908152601a60209081526040808320805460ff1916871515179055601b9091529020610d9b83826121b8565b506001600160a01b03939093165f908152601c60205260409020805460ff191660ff909416939093179092555050565b5f546001600160a01b03163314610df45760405162461bcd60e51b81526004016108cd90612278565b5f5b82811015610e58578160055f868685818110610e1457610e146122ad565b9050602002016020810190610e299190611f34565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610df6565b50505050565b5f546001600160a01b03163314610e875760405162461bcd60e51b81526004016108cd90612278565b60198054911515600160a81b0260ff60a81b1990921691909117905543600755565b5f546001600160a01b03163314610ed25760405162461bcd60e51b81526004016108cd90612278565b6001600160a01b038116610f375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108cd565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b0316336001600160a01b03161480610fc55750600a546001600160a01b0316336001600160a01b0316145b610fcd575f80fd5b47610b8181611854565b6001600160a01b0383166110395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cd565b6001600160a01b03821661109a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cd565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661115e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108cd565b6001600160a01b0382166111c05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108cd565b5f81116112215760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108cd565b5f546001600160a01b0384811691161480159061124b57505f546001600160a01b03838116911614155b1561152657601954600160a81b900460ff166112e3575f546001600160a01b038481169116146112e35760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016108cd565b600b548111156113355760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016108cd565b6001600160a01b0383165f9081526016602052604090205460ff1615801561137557506001600160a01b0382165f9081526016602052604090205460ff16155b6113cd5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016108cd565b6019546001600160a01b0383811691161461145257600c54816113ef84610c0a565b6113f991906122d5565b106114525760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016108cd565b5f61145c30610c0a565b600d54600b5491925082101590821061147557600b5491505b80801561148c5750601954600160b01b900460ff16155b80156114a657506019546001600160a01b03868116911614155b80156114bb5750601954600160a01b900460ff165b80156114df57506001600160a01b0385165f9081526005602052604090205460ff16155b801561150357506001600160a01b0384165f9081526005602052604090205460ff16155b156115235761151182611662565b4780156115215761152147611854565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061156657506001600160a01b0383165f9081526005602052604090205460ff165b8061159857506019546001600160a01b0385811691161480159061159857506019546001600160a01b03848116911614155b156115a457505f61161e565b6019546001600160a01b0385811691161480156115cf57506018546001600160a01b03848116911614155b156115e157601254600e55601354600f555b6019546001600160a01b03848116911614801561160c57506018546001600160a01b03858116911614155b1561161e57601454600e55601554600f555b610e58848484846118d3565b5f818484111561164d5760405162461bcd60e51b81526004016108cd9190611ebe565b505f61165984866122e8565b95945050505050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116a8576116a86122ad565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172391906122fb565b81600181518110611736576117366122ad565b6001600160a01b03928316602091820292909201015260185461175c9130911684610fd7565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906117949085905f90869030904290600401612316565b5f604051808303815f87803b1580156117ab575f80fd5b505af11580156117bd573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b5f6006548211156118385760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108cd565b5f611841611901565b905061184d8382611922565b9392505050565b6009546001600160a01b03166108fc61186e836002611922565b6040518115909202915f818181858888f19350505050158015611893573d5f803e3d5ffd5b50600a546001600160a01b03166108fc6118ae836002611922565b6040518115909202915f818181858888f1935050505015801561098e573d5f803e3d5ffd5b806118e0576118e0611963565b6118eb848484611990565b80610e5857610e58601054600e55601154600f55565b5f805f61190c611a81565b909250905061191b8282611922565b9250505090565b5f61184d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac0565b600e541580156119735750600f54155b1561197a57565b600e8054601055600f80546011555f9182905555565b5f805f805f8061199f87611aec565b6001600160a01b038f165f90815260036020526040902054959b509399509197509550935091506119d09087611b41565b6001600160a01b03808b165f9081526003602052604080822093909355908a16815220546119fe9086611b82565b6001600160a01b0389165f90815260036020526040902055611a1f81611be0565b611a298483611c26565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a6e91815260200190565b60405180910390a3505050505050505050565b6006545f90819067016345785d8a0000611a9b8282611922565b821015611ab75750506006549267016345785d8a000092509050565b90939092509050565b5f8183611ae05760405162461bcd60e51b81526004016108cd9190611ebe565b505f6116598486612387565b5f805f805f805f805f611b048a600e54600f54611c4a565b9250925092505f611b13611901565b90505f805f611b248e878787611c9c565b919e509c509a509598509396509194505050505091939550919395565b5f61184d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f80611b8e83856122d5565b90508381101561184d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108cd565b5f611be9611901565b90505f611bf68383611ce8565b305f90815260036020526040902054909150611c129082611b82565b305f90815260036020526040902055505050565b600654611c339083611b41565b600655600854611c439082611b82565b6008555050565b5f808080611c636064611c5d8989611ce8565b90611922565b90505f611c756064611c5d8a89611ce8565b90505f611c8c82611c868b86611b41565b90611b41565b9992985090965090945050505050565b5f808080611caa8886611ce8565b90505f611cb78887611ce8565b90505f611cc48888611ce8565b90505f611cd582611c868686611b41565b939b939a50919850919650505050505050565b5f825f03611cf757505f610904565b5f611d0283856123a6565b905082611d0f8583612387565b1461184d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108cd565b6001600160a01b0381168114610b81575f80fd5b80358015158114611d89575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611dcb57611dcb611d8e565b604052919050565b80355f81900b8114611d89575f80fd5b5f805f8060808587031215611df6575f80fd5b8435611e0181611d66565b93506020611e10868201611d7a565b9350604086013567ffffffffffffffff80821115611e2c575f80fd5b818801915088601f830112611e3f575f80fd5b813581811115611e5157611e51611d8e565b611e63601f8201601f19168501611da2565b91508082528984828501011115611e78575f80fd5b80848401858401375f84828401015250809450505050611e9a60608601611dd3565b905092959194509250565b5f60208284031215611eb5575f80fd5b61184d82611d7a565b5f602080835283518060208501525f5b81811015611eea57858101830151858201604001528201611ece565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611f1b575f80fd5b8235611f2681611d66565b946020939093013593505050565b5f60208284031215611f44575f80fd5b813561184d81611d66565b5f6020808385031215611f60575f80fd5b823567ffffffffffffffff80821115611f77575f80fd5b818501915085601f830112611f8a575f80fd5b813581811115611f9c57611f9c611d8e565b8060051b9150611fad848301611da2565b8181529183018401918481019088841115611fc6575f80fd5b938501935b83851015611ff05784359250611fe083611d66565b8282529385019390850190611fcb565b98975050505050505050565b5f805f6060848603121561200e575f80fd5b833561201981611d66565b9250602084013561202981611d66565b929592945050506040919091013590565b5f6020828403121561204a575f80fd5b5035919050565b5f805f8060808587031215612064575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215612091575f80fd5b823561209c81611d66565b915060208301356120ac81611d66565b809150509250929050565b5f805f604084860312156120c9575f80fd5b833567ffffffffffffffff808211156120e0575f80fd5b818601915086601f8301126120f3575f80fd5b813581811115612101575f80fd5b8760208260051b8501011115612115575f80fd5b60209283019550935061212b9186019050611d7a565b90509250925092565b600181811c9082168061214857607f821691505b60208210810361216657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156121b357805f5260205f20601f840160051c810160208510156121915750805b601f840160051c820191505b818110156121b0575f815560010161219d565b50505b505050565b815167ffffffffffffffff8111156121d2576121d2611d8e565b6121e6816121e08454612134565b8461216c565b602080601f831160018114612219575f84156122025750858301515b5f19600386901b1c1916600185901b178555612270565b5f85815260208120601f198616915b8281101561224757888601518255948401946001909101908401612228565b508582101561226457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610904576109046122c1565b81810381811115610904576109046122c1565b5f6020828403121561230b575f80fd5b815161184d81611d66565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156123665784516001600160a01b031683529383019391830191600101612341565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826123a157634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610904576109046122c156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203f15d784e380e393b717897af7d3fe0478952905f8a89806734cdfba5891318564736f6c63430008170033

Deployed Bytecode

0x608060405260043610610257575f3560e01c806370a082311161013f578063a9059cbb116100b3578063d74c67eb11610078578063d74c67eb14610769578063dd62ed3e14610788578063dde83eca146107cc578063f275f64b146107eb578063f2fde38b1461080a578063f429389014610829575f80fd5b8063a9059cbb146106ba578063b47d7c39146106d9578063bfd7928414610707578063cf3bdd7214610735578063d00efb2f14610754575f80fd5b8063887c1a6311610104578063887c1a63146105ff5780638da5cb5b1461061e5780638f9a55c01461063a57806395d89b411461064f57806398a5c3151461067c578063a7275b1c1461069b575f80fd5b806370a082311461056b578063736933cb1461058a578063751039fc146105b75780637d1db4a5146105cb57806384c58468146105e0575f80fd5b80632bbcc206116101d65780634d8240dd1161019b5780634d8240dd1461048057806351bc3c85146104bf5780635c07126b146104d35780635fecd926146105005780636a85fb191461051f5780636fcba3771461054c575f80fd5b80632bbcc206146103f35780632fd689e314610412578063313ce5671461042757806340c70fbf1461044257806349bd5a5e14610461575f80fd5b80631694505e1161021c5780631694505e1461034657806318160ddd1461037d57806321bbcbb1146103a157806323b872dd146103c057806328c23a45146103df575f80fd5b8063067f009f1461026257806306ea48001461028357806306fdde03146102a2578063095ea7b3146102e95780631420567b14610318575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b5061028161027c366004611de3565b61083d565b005b34801561028e575f80fd5b5061028161029d366004611ea5565b6108a4565b3480156102ad575f80fd5b5060408051808201909152600d81526c527562656b2053797374656d7360981b60208201525b6040516102e09190611ebe565b60405180910390f35b3480156102f4575f80fd5b50610308610303366004611f0a565b6108f4565b60405190151581526020016102e0565b348015610323575f80fd5b50610308610332366004611f34565b601d6020525f908152604090205460ff1681565b348015610351575f80fd5b50601854610365906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b348015610388575f80fd5b5067016345785d8a00005b6040519081526020016102e0565b3480156103ac575f80fd5b506102816103bb366004611f4f565b61090a565b3480156103cb575f80fd5b506103086103da366004611ffc565b610992565b3480156103ea575f80fd5b506102816109f9565b3480156103fe575f80fd5b506102d361040d366004611f34565b610a6a565b34801561041d575f80fd5b50610393600d5481565b348015610432575f80fd5b50604051600981526020016102e0565b34801561044d575f80fd5b5061028161045c36600461203a565b610b01565b34801561046c575f80fd5b50601954610365906001600160a01b031681565b34801561048b575f80fd5b506104ad61049a366004611f34565b601f6020525f9081526040812054900b81565b6040515f9190910b81526020016102e0565b3480156104ca575f80fd5b50610281610b2f565b3480156104de575f80fd5b506104ad6104ed366004611f34565b601c6020525f9081526040812054900b81565b34801561050b575f80fd5b5061028161051a366004611f34565b610b84565b34801561052a575f80fd5b50610308610539366004611f34565b602080525f908152604090205460ff1681565b348015610557575f80fd5b50610281610566366004612051565b610bcd565b348015610576575f80fd5b50610393610585366004611f34565b610c0a565b348015610595575f80fd5b506104ad6105a4366004611f34565b60226020525f9081526040812054900b81565b3480156105c2575f80fd5b50610281610c2b565b3480156105d6575f80fd5b50610393600b5481565b3480156105eb575f80fd5b506102d36105fa366004611f34565b610c67565b34801561060a575f80fd5b506102d3610619366004611f34565b610c7f565b348015610629575f80fd5b505f546001600160a01b0316610365565b348015610645575f80fd5b50610393600c5481565b34801561065a575f80fd5b50604080518082019091526005815264525542454b60d81b60208201526102d3565b348015610687575f80fd5b5061028161069636600461203a565b610c97565b3480156106a6575f80fd5b506102816106b5366004611de3565b610cc5565b3480156106c5575f80fd5b506103086106d4366004611f0a565b610d2a565b3480156106e4575f80fd5b506103086106f3366004611f34565b601a6020525f908152604090205460ff1681565b348015610712575f80fd5b50610308610721366004611f34565b60166020525f908152604090205460ff1681565b348015610740575f80fd5b5061028161074f36600461203a565b610d36565b34801561075f575f80fd5b5061039360075481565b348015610774575f80fd5b50610281610783366004611de3565b610d64565b348015610793575f80fd5b506103936107a2366004612080565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156107d7575f80fd5b506102816107e63660046120b7565b610dcb565b3480156107f6575f80fd5b50610281610805366004611ea5565b610e5e565b348015610815575f80fd5b50610281610824366004611f34565b610ea9565b348015610834575f80fd5b50610281610f90565b6001600160a01b0384165f908152601d60209081526040808320805460ff1916871515179055601e909152902061087483826121b8565b506001600160a01b03939093165f908152601f60205260409020805460ff191660ff909416939093179092555050565b5f546001600160a01b031633146108d65760405162461bcd60e51b81526004016108cd90612278565b60405180910390fd5b60198054911515600160a01b0260ff60a01b19909216919091179055565b5f610900338484610fd7565b5060015b92915050565b5f546001600160a01b031633146109335760405162461bcd60e51b81526004016108cd90612278565b5f5b815181101561098e57600160165f848481518110610955576109556122ad565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610935565b5050565b5f61099e8484846110fa565b6109ef84336109ea856040518060600160405280602881526020016123be602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061162a565b610fd7565b5060019392505050565b5f546001600160a01b03163314610a225760405162461bcd60e51b81526004016108cd90612278565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b601e6020525f908152604090208054610a8290612134565b80601f0160208091040260200160405190810160405280929190818152602001828054610aae90612134565b8015610af95780601f10610ad057610100808354040283529160200191610af9565b820191905f5260205f20905b815481529060010190602001808311610adc57829003601f168201915b505050505081565b5f546001600160a01b03163314610b2a5760405162461bcd60e51b81526004016108cd90612278565b600c55565b6009546001600160a01b0316336001600160a01b03161480610b645750600a546001600160a01b0316336001600160a01b0316145b610b6c575f80fd5b5f610b7630610c0a565b9050610b8181611662565b50565b5f546001600160a01b03163314610bad5760405162461bcd60e51b81526004016108cd90612278565b6001600160a01b03165f908152601660205260409020805460ff19169055565b5f546001600160a01b03163314610bf65760405162461bcd60e51b81526004016108cd90612278565b601293909355601491909155601355601555565b6001600160a01b0381165f90815260036020526040812054610904906117d2565b5f546001600160a01b03163314610c545760405162461bcd60e51b81526004016108cd90612278565b67016345785d8a0000600b819055600c55565b60216020525f908152604090208054610a8290612134565b601b6020525f908152604090208054610a8290612134565b5f546001600160a01b03163314610cc05760405162461bcd60e51b81526004016108cd90612278565b600d55565b6001600160a01b0384165f90815260208080526040808320805460ff191687151517905560219091529020610cfa83826121b8565b506001600160a01b03939093165f908152602260205260409020805460ff191660ff909416939093179092555050565b5f6109003384846110fa565b5f546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108cd90612278565b600b55565b6001600160a01b0384165f908152601a60209081526040808320805460ff1916871515179055601b9091529020610d9b83826121b8565b506001600160a01b03939093165f908152601c60205260409020805460ff191660ff909416939093179092555050565b5f546001600160a01b03163314610df45760405162461bcd60e51b81526004016108cd90612278565b5f5b82811015610e58578160055f868685818110610e1457610e146122ad565b9050602002016020810190610e299190611f34565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610df6565b50505050565b5f546001600160a01b03163314610e875760405162461bcd60e51b81526004016108cd90612278565b60198054911515600160a81b0260ff60a81b1990921691909117905543600755565b5f546001600160a01b03163314610ed25760405162461bcd60e51b81526004016108cd90612278565b6001600160a01b038116610f375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108cd565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b0316336001600160a01b03161480610fc55750600a546001600160a01b0316336001600160a01b0316145b610fcd575f80fd5b47610b8181611854565b6001600160a01b0383166110395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cd565b6001600160a01b03821661109a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cd565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661115e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108cd565b6001600160a01b0382166111c05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108cd565b5f81116112215760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108cd565b5f546001600160a01b0384811691161480159061124b57505f546001600160a01b03838116911614155b1561152657601954600160a81b900460ff166112e3575f546001600160a01b038481169116146112e35760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016108cd565b600b548111156113355760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016108cd565b6001600160a01b0383165f9081526016602052604090205460ff1615801561137557506001600160a01b0382165f9081526016602052604090205460ff16155b6113cd5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016108cd565b6019546001600160a01b0383811691161461145257600c54816113ef84610c0a565b6113f991906122d5565b106114525760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016108cd565b5f61145c30610c0a565b600d54600b5491925082101590821061147557600b5491505b80801561148c5750601954600160b01b900460ff16155b80156114a657506019546001600160a01b03868116911614155b80156114bb5750601954600160a01b900460ff165b80156114df57506001600160a01b0385165f9081526005602052604090205460ff16155b801561150357506001600160a01b0384165f9081526005602052604090205460ff16155b156115235761151182611662565b4780156115215761152147611854565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061156657506001600160a01b0383165f9081526005602052604090205460ff165b8061159857506019546001600160a01b0385811691161480159061159857506019546001600160a01b03848116911614155b156115a457505f61161e565b6019546001600160a01b0385811691161480156115cf57506018546001600160a01b03848116911614155b156115e157601254600e55601354600f555b6019546001600160a01b03848116911614801561160c57506018546001600160a01b03858116911614155b1561161e57601454600e55601554600f555b610e58848484846118d3565b5f818484111561164d5760405162461bcd60e51b81526004016108cd9190611ebe565b505f61165984866122e8565b95945050505050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116a8576116a86122ad565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172391906122fb565b81600181518110611736576117366122ad565b6001600160a01b03928316602091820292909201015260185461175c9130911684610fd7565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906117949085905f90869030904290600401612316565b5f604051808303815f87803b1580156117ab575f80fd5b505af11580156117bd573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b5f6006548211156118385760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108cd565b5f611841611901565b905061184d8382611922565b9392505050565b6009546001600160a01b03166108fc61186e836002611922565b6040518115909202915f818181858888f19350505050158015611893573d5f803e3d5ffd5b50600a546001600160a01b03166108fc6118ae836002611922565b6040518115909202915f818181858888f1935050505015801561098e573d5f803e3d5ffd5b806118e0576118e0611963565b6118eb848484611990565b80610e5857610e58601054600e55601154600f55565b5f805f61190c611a81565b909250905061191b8282611922565b9250505090565b5f61184d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac0565b600e541580156119735750600f54155b1561197a57565b600e8054601055600f80546011555f9182905555565b5f805f805f8061199f87611aec565b6001600160a01b038f165f90815260036020526040902054959b509399509197509550935091506119d09087611b41565b6001600160a01b03808b165f9081526003602052604080822093909355908a16815220546119fe9086611b82565b6001600160a01b0389165f90815260036020526040902055611a1f81611be0565b611a298483611c26565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a6e91815260200190565b60405180910390a3505050505050505050565b6006545f90819067016345785d8a0000611a9b8282611922565b821015611ab75750506006549267016345785d8a000092509050565b90939092509050565b5f8183611ae05760405162461bcd60e51b81526004016108cd9190611ebe565b505f6116598486612387565b5f805f805f805f805f611b048a600e54600f54611c4a565b9250925092505f611b13611901565b90505f805f611b248e878787611c9c565b919e509c509a509598509396509194505050505091939550919395565b5f61184d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f80611b8e83856122d5565b90508381101561184d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108cd565b5f611be9611901565b90505f611bf68383611ce8565b305f90815260036020526040902054909150611c129082611b82565b305f90815260036020526040902055505050565b600654611c339083611b41565b600655600854611c439082611b82565b6008555050565b5f808080611c636064611c5d8989611ce8565b90611922565b90505f611c756064611c5d8a89611ce8565b90505f611c8c82611c868b86611b41565b90611b41565b9992985090965090945050505050565b5f808080611caa8886611ce8565b90505f611cb78887611ce8565b90505f611cc48888611ce8565b90505f611cd582611c868686611b41565b939b939a50919850919650505050505050565b5f825f03611cf757505f610904565b5f611d0283856123a6565b905082611d0f8583612387565b1461184d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108cd565b6001600160a01b0381168114610b81575f80fd5b80358015158114611d89575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611dcb57611dcb611d8e565b604052919050565b80355f81900b8114611d89575f80fd5b5f805f8060808587031215611df6575f80fd5b8435611e0181611d66565b93506020611e10868201611d7a565b9350604086013567ffffffffffffffff80821115611e2c575f80fd5b818801915088601f830112611e3f575f80fd5b813581811115611e5157611e51611d8e565b611e63601f8201601f19168501611da2565b91508082528984828501011115611e78575f80fd5b80848401858401375f84828401015250809450505050611e9a60608601611dd3565b905092959194509250565b5f60208284031215611eb5575f80fd5b61184d82611d7a565b5f602080835283518060208501525f5b81811015611eea57858101830151858201604001528201611ece565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611f1b575f80fd5b8235611f2681611d66565b946020939093013593505050565b5f60208284031215611f44575f80fd5b813561184d81611d66565b5f6020808385031215611f60575f80fd5b823567ffffffffffffffff80821115611f77575f80fd5b818501915085601f830112611f8a575f80fd5b813581811115611f9c57611f9c611d8e565b8060051b9150611fad848301611da2565b8181529183018401918481019088841115611fc6575f80fd5b938501935b83851015611ff05784359250611fe083611d66565b8282529385019390850190611fcb565b98975050505050505050565b5f805f6060848603121561200e575f80fd5b833561201981611d66565b9250602084013561202981611d66565b929592945050506040919091013590565b5f6020828403121561204a575f80fd5b5035919050565b5f805f8060808587031215612064575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215612091575f80fd5b823561209c81611d66565b915060208301356120ac81611d66565b809150509250929050565b5f805f604084860312156120c9575f80fd5b833567ffffffffffffffff808211156120e0575f80fd5b818601915086601f8301126120f3575f80fd5b813581811115612101575f80fd5b8760208260051b8501011115612115575f80fd5b60209283019550935061212b9186019050611d7a565b90509250925092565b600181811c9082168061214857607f821691505b60208210810361216657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156121b357805f5260205f20601f840160051c810160208510156121915750805b601f840160051c820191505b818110156121b0575f815560010161219d565b50505b505050565b815167ffffffffffffffff8111156121d2576121d2611d8e565b6121e6816121e08454612134565b8461216c565b602080601f831160018114612219575f84156122025750858301515b5f19600386901b1c1916600185901b178555612270565b5f85815260208120601f198616915b8281101561224757888601518255948401946001909101908401612228565b508582101561226457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610904576109046122c1565b81810381811115610904576109046122c1565b5f6020828403121561230b575f80fd5b815161184d81611d66565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156123665784516001600160a01b031683529383019391830191600101612341565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826123a157634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610904576109046122c156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203f15d784e380e393b717897af7d3fe0478952905f8a89806734cdfba5891318564736f6c63430008170033

Deployed Bytecode Sourcemap

4217:14836:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18189:226;;;;;;;;;;-1:-1:-1;18189:226:0;;;;;:::i;:::-;;:::i;:::-;;17190:102;;;;;;;;;;-1:-1:-1;17190:102:0;;;;;:::i;:::-;;:::i;6783:83::-;;;;;;;;;;-1:-1:-1;6853:5:0;;;;;;;;;;;;-1:-1:-1;;;6853:5:0;;;;6783:83;;;;;;;:::i;:::-;;;;;;;;7717:193;;;;;;;;;;-1:-1:-1;7717:193:0;;;;;:::i;:::-;;:::i;:::-;;;3155:14:1;;3148:22;3130:41;;3118:2;3103:18;7717:193:0;2990:187:1;18036:44:0;;;;;;;;;;-1:-1:-1;18036:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5793:41;;;;;;;;;;-1:-1:-1;5793:41:0;;;;-1:-1:-1;;;;;5793:41:0;;;;;;-1:-1:-1;;;;;3624:32:1;;;3606:51;;3594:2;3579:18;5793:41:0;3434:229:1;7209:95:0;;;;;;;;;;-1:-1:-1;4770:16:0;7209:95;;;3814:25:1;;;3802:2;3787:18;7209:95:0;3668:177:1;12566:166:0;;;;;;;;;;-1:-1:-1;12566:166:0;;;;;:::i;:::-;;:::i;7916:446::-;;;;;;;;;;-1:-1:-1;7916:446:0;;;;;:::i;:::-;;:::i;1945:144::-;;;;;;;;;;;;;:::i;18087:43::-;;;;;;;;;;-1:-1:-1;18087:43:0;;;;;:::i;:::-;;:::i;5250:61::-;;;;;;;;;;;;;;;;6971:83;;;;;;;;;;-1:-1:-1;6971:83:0;;4443:1;5479:36:1;;5467:2;5452:18;6971:83:0;5337:184:1;17535:108:0;;;;;;;;;;-1:-1:-1;17535:108:0;;;;;:::i;:::-;;:::i;5841:28::-;;;;;;;;;;-1:-1:-1;5841:28:0;;;;-1:-1:-1;;;;;5841:28:0;;;18137:42;;;;;;;;;;-1:-1:-1;18137:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6005:4:1;6077:21;;;;6059:40;;6047:2;6032:18;18137:42:0;5919:186:1;12325:233:0;;;;;;;;;;;;;:::i;17752:42::-;;;;;;;;;;-1:-1:-1;17752:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12982:91;;;;;;;;;;-1:-1:-1;12982:91:0;;;;;:::i;:::-;;:::i;18423:44::-;;;;;;;;;;-1:-1:-1;18423:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16732:295;;;;;;;;;;-1:-1:-1;16732:295:0;;;;;:::i;:::-;;:::i;7062:138::-;;;;;;;;;;-1:-1:-1;7062:138:0;;;;;:::i;:::-;;:::i;18524:42::-;;;;;;;;;;-1:-1:-1;18524:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17300:119;;;;;;;;;;;;;:::i;5122:55::-;;;;;;;;;;;;;;;;18474:43;;;;;;;;;;-1:-1:-1;18474:43:0;;;;;:::i;:::-;;:::i;17702:::-;;;;;;;;;;-1:-1:-1;17702:43:0;;;;;:::i;:::-;;:::i;1470:79::-;;;;;;;;;;-1:-1:-1;1508:7:0;1535:6;-1:-1:-1;;;;;1535:6:0;1470:79;;5185:57;;;;;;;;;;;;;;;;6875:87;;;;;;;;;;-1:-1:-1;6947:7:0;;;;;;;;;;;;-1:-1:-1;;;6947:7:0;;;;6875:87;;17042:139;;;;;;;;;;-1:-1:-1;17042:139:0;;;;;:::i;:::-;;:::i;18576:230::-;;;;;;;;;;-1:-1:-1;18576:230:0;;;;;:::i;:::-;;:::i;7316:199::-;;;;;;;;;;-1:-1:-1;7316:199:0;;;;;:::i;:::-;;:::i;17651:44::-;;;;;;;;;;-1:-1:-1;17651:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5694:36;;;;;;;;;;-1:-1:-1;5694:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17428:98;;;;;;;;;;-1:-1:-1;17428:98:0;;;;;:::i;:::-;;:::i;4849:26::-;;;;;;;;;;;;;;;;17804:224;;;;;;;;;;-1:-1:-1;17804:224:0;;;;;:::i;:::-;;:::i;7524:184::-;;;;;;;;;;-1:-1:-1;7524:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7673:18:0;;;7641:7;7673:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7524:184;18815:233;;;;;;;;;;-1:-1:-1;18815:233:0;;;;;:::i;:::-;;:::i;13081:141::-;;;;;;;;;;-1:-1:-1;13081:141:0;;;;;:::i;:::-;;:::i;1692:244::-;;;;;;;;;;-1:-1:-1;1692:244:0;;;;;:::i;:::-;;:::i;12740:232::-;;;;;;;;;;;;;:::i;18189:226::-;-1:-1:-1;;;;;18296:20:0;;;;;;:12;:20;;;;;;;;:33;;-1:-1:-1;;18296:33:0;;;;;;;18340:9;:17;;;;;:27;18360:7;18340:17;:27;:::i;:::-;-1:-1:-1;;;;;;18378:18:0;;;;;;;;:10;:18;;;;;:29;;-1:-1:-1;;18378:29:0;;;;;;;;;;;;-1:-1:-1;;18189:226:0:o;17190:102::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;;;;;;;;;17258:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17258:26:0::1;-1:-1:-1::0;;;;17258:26:0;;::::1;::::0;;;::::1;::::0;;17190:102::o;7717:193::-;7819:4;7841:39;298:10;7864:7;7873:6;7841:8;:39::i;:::-;-1:-1:-1;7898:4:0;7717:193;;;;;:::o;12566:166::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;12639:9:::1;12634:91;12658:5;:12;12654:1;:16;12634:91;;;12709:4;12692;:14;12697:5;12703:1;12697:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12692:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12692:14:0;:21;;-1:-1:-1;;12692:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12672:3:0::1;12634:91;;;;12566:166:::0;:::o;7916:446::-;8048:4;8065:36;8075:6;8083:9;8094:6;8065:9;:36::i;:::-;8112:220;8135:6;298:10;8183:138;8239:6;8183:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8183:19:0;;;;;;:11;:19;;;;;;;;298:10;8183:33;;;;;;;;;;:37;:138::i;:::-;8112:8;:220::i;:::-;-1:-1:-1;8350:4:0;7916:446;;;;;:::o;1945:144::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;2048:1:::1;2032:6:::0;;2011:40:::1;::::0;-1:-1:-1;;;;;2032:6:0;;::::1;::::0;2011:40:::1;::::0;2048:1;;2011:40:::1;2079:1;2062:19:::0;;-1:-1:-1;;;;;;2062:19:0::1;::::0;;1945:144::o;18087:43::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17535:108::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;17605:14:::1;:30:::0;17535:108::o;12325:233::-;12391:16;;-1:-1:-1;;;;;12391:16:0;298:10;-1:-1:-1;;;;;12375:32:0;;:69;;;-1:-1:-1;12427:17:0;;-1:-1:-1;;;;;12427:17:0;298:10;-1:-1:-1;;;;;12411:33:0;;12375:69;12367:78;;;;;;12456:23;12482:24;12500:4;12482:9;:24::i;:::-;12456:50;;12517:33;12534:15;12517:16;:33::i;:::-;12356:202;12325:233::o;12982:91::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13045:12:0::1;13060:5;13045:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13045:20:0::1;::::0;;12982:91::o;16732:295::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;16867:14:::1;:30:::0;;;;16908:15:::1;:32:::0;;;;16954:12:::1;:26:::0;16991:13:::1;:28:::0;16732:295::o;7062:138::-;-1:-1:-1;;;;;7175:16:0;;7128:7;7175:16;;;:7;:16;;;;;;7155:37;;:19;:37::i;17300:119::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;4770:16:::1;17354:12;:22:::0;;;17387:14:::1;:24:::0;17300:119::o;18474:43::-;;;;;;;;;;;;;;;;:::i;17702:::-;;;;;;;;;;;;;;;;:::i;17042:139::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;17133:19:::1;:40:::0;17042:139::o;18576:230::-;-1:-1:-1;;;;;18687:20:0;;;;;;:12;:20;;;;;;;:33;;-1:-1:-1;;18687:33:0;;;;;;;18731:9;:17;;;;;:27;18751:7;18731:17;:27;:::i;:::-;-1:-1:-1;;;;;;18769:18:0;;;;;;;;:10;:18;;;;;:29;;-1:-1:-1;;18769:29:0;;;;;;;;;;;;-1:-1:-1;;18576:230:0:o;7316:199::-;7421:4;7443:42;298:10;7467:9;7478:6;7443:9;:42::i;17428:98::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;17492:12:::1;:26:::0;17428:98::o;17804:224::-;-1:-1:-1;;;;;17909:20:0;;;;;;:12;:20;;;;;;;;:33;;-1:-1:-1;;17909:33:0;;;;;;;17953:9;:17;;;;;:27;17973:7;17953:17;:27;:::i;:::-;-1:-1:-1;;;;;;17991:18:0;;;;;;;;:10;:18;;;;;:29;;-1:-1:-1;;17991:29:0;;;;;;;;;;;;-1:-1:-1;;17804:224:0:o;18815:233::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;18931:9:::1;18927:114;18946:19:::0;;::::1;18927:114;;;19021:8;18987:18;:31;19006:8;;19015:1;19006:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18987:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18987:31:0;:42;;-1:-1:-1;;18987:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18967:3:0::1;18927:114;;;;18815:233:::0;;;:::o;13081:141::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;13151:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13151:26:0::1;-1:-1:-1::0;;;;13151:26:0;;::::1;::::0;;;::::1;::::0;;13202:12:::1;13188:11;:26:::0;13081:141::o;1692:244::-;1598:6;;-1:-1:-1;;;;;1598:6:0;298:10;1598:22;1590:67;;;;-1:-1:-1;;;1590:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1781:22:0;::::1;1773:73;;;::::0;-1:-1:-1;;;1773:73:0;;10837:2:1;1773:73:0::1;::::0;::::1;10819:21:1::0;10876:2;10856:18;;;10849:30;10915:34;10895:18;;;10888:62;-1:-1:-1;;;10966:18:1;;;10959:36;11012:19;;1773:73:0::1;10635:402:1::0;1773:73:0::1;1883:6;::::0;;1862:38:::1;::::0;-1:-1:-1;;;;;1862:38:0;;::::1;::::0;1883:6;::::1;::::0;1862:38:::1;::::0;::::1;1911:6;:17:::0;;-1:-1:-1;;;;;;1911:17:0::1;-1:-1:-1::0;;;;;1911:17:0;;;::::1;::::0;;;::::1;::::0;;1692:244::o;12740:232::-;12806:16;;-1:-1:-1;;;;;12806:16:0;298:10;-1:-1:-1;;;;;12790:32:0;;:69;;;-1:-1:-1;12842:17:0;;-1:-1:-1;;;;;12842:17:0;298:10;-1:-1:-1;;;;;12826:33:0;;12790:69;12782:78;;;;;;12900:21;12932:32;12900:21;12932:12;:32::i;9059:369::-;-1:-1:-1;;;;;9186:19:0;;9178:68;;;;-1:-1:-1;;;9178:68:0;;11244:2:1;9178:68:0;;;11226:21:1;11283:2;11263:18;;;11256:30;11322:34;11302:18;;;11295:62;-1:-1:-1;;;11373:18:1;;;11366:34;11417:19;;9178:68:0;11042:400:1;9178:68:0;-1:-1:-1;;;;;9265:21:0;;9257:68;;;;-1:-1:-1;;;9257:68:0;;11649:2:1;9257:68:0;;;11631:21:1;11688:2;11668:18;;;11661:30;11727:34;11707:18;;;11700:62;-1:-1:-1;;;11778:18:1;;;11771:32;11820:19;;9257:68:0;11447:398:1;9257:68:0;-1:-1:-1;;;;;9336:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9388:32;;3814:25:1;;;9388:32:0;;3787:18:1;9388:32:0;;;;;;;9059:369;;;:::o;9437:2218::-;-1:-1:-1;;;;;9559:18:0;;9551:68;;;;-1:-1:-1;;;9551:68:0;;12052:2:1;9551:68:0;;;12034:21:1;12091:2;12071:18;;;12064:30;12130:34;12110:18;;;12103:62;-1:-1:-1;;;12181:18:1;;;12174:35;12226:19;;9551:68:0;11850:401:1;9551:68:0;-1:-1:-1;;;;;9638:16:0;;9630:64;;;;-1:-1:-1;;;9630:64:0;;12458:2:1;9630:64:0;;;12440:21:1;12497:2;12477:18;;;12470:30;12536:34;12516:18;;;12509:62;-1:-1:-1;;;12587:18:1;;;12580:33;12630:19;;9630:64:0;12256:399:1;9630:64:0;9722:1;9713:6;:10;9705:64;;;;-1:-1:-1;;;9705:64:0;;12862:2:1;9705:64:0;;;12844:21:1;12901:2;12881:18;;;12874:30;12940:34;12920:18;;;12913:62;-1:-1:-1;;;12991:18:1;;;12984:39;13040:19;;9705:64:0;12660:405:1;9705:64:0;1508:7;1535:6;-1:-1:-1;;;;;9787:15:0;;;1535:6;;9787:15;;;;:32;;-1:-1:-1;1508:7:0;1535:6;-1:-1:-1;;;;;9806:13:0;;;1535:6;;9806:13;;9787:32;9783:1232;;;9844:11;;-1:-1:-1;;;9844:11:0;;;;9839:144;;1508:7;1535:6;-1:-1:-1;;;;;9884:15:0;;;1535:6;;9884:15;9876:91;;;;-1:-1:-1;;;9876:91:0;;13272:2:1;9876:91:0;;;13254:21:1;13311:2;13291:18;;;13284:30;13350:34;13330:18;;;13323:62;13421:33;13401:18;;;13394:61;13472:19;;9876:91:0;13070:427:1;9876:91:0;10018:12;;10008:6;:22;;10000:63;;;;-1:-1:-1;;;10000:63:0;;13704:2:1;10000:63:0;;;13686:21:1;13743:2;13723:18;;;13716:30;13782;13762:18;;;13755:58;13830:18;;10000:63:0;13502:352:1;10000:63:0;-1:-1:-1;;;;;10087:10:0;;;;;;:4;:10;;;;;;;;10086:11;:24;;;;-1:-1:-1;;;;;;10102:8:0;;;;;;:4;:8;;;;;;;;10101:9;10086:24;10078:72;;;;-1:-1:-1;;;10078:72:0;;14061:2:1;10078:72:0;;;14043:21:1;14100:2;14080:18;;;14073:30;14139:34;14119:18;;;14112:62;-1:-1:-1;;;14190:18:1;;;14183:33;14233:19;;10078:72:0;13859:399:1;10078:72:0;10177:13;;-1:-1:-1;;;;;10171:19:0;;;10177:13;;10171:19;10168:146;;10244:14;;10235:6;10219:13;10229:2;10219:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10211:87;;;;-1:-1:-1;;;10211:87:0;;14727:2:1;10211:87:0;;;14709:21:1;14766:2;14746:18;;;14739:30;14805:34;14785:18;;;14778:62;-1:-1:-1;;;14856:18:1;;;14849:33;14899:19;;10211:87:0;14525:399:1;10211:87:0;10331:28;10362:24;10380:4;10362:9;:24::i;:::-;10440:19;;10504:12;;10331:55;;-1:-1:-1;10416:43:0;;;;10480:36;;10477:124;;10573:12;;10550:35;;10477:124;10622:7;:18;;;;-1:-1:-1;10634:6:0;;-1:-1:-1;;;10634:6:0;;;;10633:7;10622:18;:43;;;;-1:-1:-1;10652:13:0;;-1:-1:-1;;;;;10644:21:0;;;10652:13;;10644:21;;10622:43;:58;;;;-1:-1:-1;10669:11:0;;-1:-1:-1;;;10669:11:0;;;;10622:58;:87;;;;-1:-1:-1;;;;;;10685:24:0;;;;;;:18;:24;;;;;;;;10684:25;10622:87;:114;;;;-1:-1:-1;;;;;;10714:22:0;;;;;;:18;:22;;;;;;;;10713:23;10622:114;10618:386;;;10757:38;10774:20;10757:16;:38::i;:::-;10843:21;10887:22;;10883:106;;10934:35;10947:21;10934:12;:35::i;:::-;10738:266;10618:386;9821:1194;;9783:1232;-1:-1:-1;;;;;11066:24:0;;11028:12;11066:24;;;:18;:24;;;;;;11043:4;;11066:24;;;:50;;-1:-1:-1;;;;;;11094:22:0;;;;;;:18;:22;;;;;;;;11066:50;11065:102;;;-1:-1:-1;11130:13:0;;-1:-1:-1;;;;;11122:21:0;;;11130:13;;11122:21;;;;:44;;-1:-1:-1;11153:13:0;;-1:-1:-1;;;;;11147:19:0;;;11153:13;;11147:19;;11122:44;11061:532;;;-1:-1:-1;11194:5:0;11061:532;;;11246:13;;-1:-1:-1;;;;;11238:21:0;;;11246:13;;11238:21;:55;;;;-1:-1:-1;11277:15:0;;-1:-1:-1;;;;;11263:30:0;;;11277:15;;11263:30;;11238:55;11235:162;;;11326:14;;11314:9;:26;11369:12;;11359:7;:22;11235:162;11424:13;;-1:-1:-1;;;;;11418:19:0;;;11424:13;;11418:19;:55;;;;-1:-1:-1;11457:15:0;;-1:-1:-1;;;;;11441:32:0;;;11457:15;;11441:32;;11418:55;11414:165;;;11506:15;;11494:9;:27;11550:13;;11540:7;:23;11414:165;11606:41;11621:4;11627:2;11631:6;11639:7;11606:14;:41::i;2459:224::-;2579:7;2615:12;2607:6;;;;2599:29;;;;-1:-1:-1;;;2599:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2639:9:0;2651:5;2655:1;2651;:5;:::i;:::-;2639:17;2459:224;-1:-1:-1;;;;;2459:224:0:o;11664:483::-;6073:6;:13;;-1:-1:-1;;;;6073:13:0;-1:-1:-1;;;6073:13:0;;;11766:16:::1;::::0;;11780:1:::1;11766:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11766:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11766:16:0::1;11742:40;;11811:4;11793;11798:1;11793:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11793:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11837:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11837:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11793:7;;11837:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11827:4;11832:1;11827:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11827:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11902:15:::1;::::0;11870:62:::1;::::0;11887:4:::1;::::0;11902:15:::1;11920:11:::0;11870:8:::1;:62::i;:::-;11943:15;::::0;:196:::1;::::0;-1:-1:-1;;;11943:196:0;;-1:-1:-1;;;;;11943:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12024:11;;11943:15:::1;::::0;12066:4;;12093::::1;::::0;12113:15:::1;::::0;11943:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6109:6:0;:14;;-1:-1:-1;;;;6109:14:0;;;-1:-1:-1;;;;11664:483:0:o;8371:323::-;8466:7;8524;;8513;:18;;8491:110;;;;-1:-1:-1;;;8491:110:0;;16505:2:1;8491:110:0;;;16487:21:1;16544:2;16524:18;;;16517:30;16583:34;16563:18;;;16556:62;-1:-1:-1;;;16634:18:1;;;16627:40;16684:19;;8491:110:0;16303:406:1;8491:110:0;8612:19;8634:10;:8;:10::i;:::-;8612:32;-1:-1:-1;8662:24:0;:7;8612:32;8662:11;:24::i;:::-;8655:31;8371:323;-1:-1:-1;;;8371:323:0:o;12156:157::-;12213:16;;-1:-1:-1;;;;;12213:16:0;:40;12239:13;:6;12250:1;12239:10;:13::i;:::-;12213:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12264:17:0;;-1:-1:-1;;;;;12264:17:0;:41;12291:13;:6;12302:1;12291:10;:13::i;:::-;12264:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13231:282;13387:7;13382:28;;13396:14;:12;:14::i;:::-;13421:44;13439:6;13447:9;13458:6;13421:17;:44::i;:::-;13481:7;13476:29;;13490:15;8989:17;;8977:9;:29;9027:15;;9017:7;:25;8933:117;16283:167;16325:7;16346:15;16363;16382:19;:17;:19::i;:::-;16345:56;;-1:-1:-1;16345:56:0;-1:-1:-1;16422:20:0;16345:56;;16422:11;:20::i;:::-;16415:27;;;;16283:167;:::o;2947:132::-;3005:7;3032:39;3036:1;3039;3032:39;;;;;;;;;;;;;;;;;:3;:39::i;8703:221::-;8750:9;;:14;:30;;;;-1:-1:-1;8768:7:0;;:12;8750:30;8746:43;;;8703:221::o;8746:43::-;8822:9;;;8802:17;:29;8860:7;;;8842:15;:25;-1:-1:-1;8881:13:0;;;;8905:11;8703:221::o;13522:622::-;13669:15;13699:23;13737:12;13764:23;13802:15;13832:16;13862:19;13873:7;13862:10;:19::i;:::-;-1:-1:-1;;;;;13910:15:0;;;;;;:7;:15;;;;;;13654:227;;-1:-1:-1;13654:227:0;;-1:-1:-1;13654:227:0;;-1:-1:-1;13654:227:0;-1:-1:-1;13654:227:0;-1:-1:-1;13654:227:0;-1:-1:-1;13910:28:0;;13654:227;13910:19;:28::i;:::-;-1:-1:-1;;;;;13892:15:0;;;;;;;:7;:15;;;;;;:46;;;;13970:18;;;;;;;:39;;13993:15;13970:22;:39::i;:::-;-1:-1:-1;;;;;13949:18:0;;;;;;:7;:18;;;;;:60;14020:19;14030:8;14020:9;:19::i;:::-;14050:26;14062:4;14068:7;14050:11;:26::i;:::-;14109:9;-1:-1:-1;;;;;14092:44:0;14101:6;-1:-1:-1;;;;;14092:44:0;;14120:15;14092:44;;;;3814:25:1;;3802:2;3787:18;;3668:177;14092:44:0;;;;;;;;13643:501;;;;;;13522:622;;;:::o;16459:260::-;16557:7;;16510;;;;4770:16;16625:20;16557:7;4770:16;16625:11;:20::i;:::-;16615:7;:30;16611:61;;;-1:-1:-1;;16655:7:0;;;4770:16;;-1:-1:-1;16459:260:0;-1:-1:-1;16459:260:0:o;16611:61::-;16694:7;;16703;;-1:-1:-1;16459:260:0;-1:-1:-1;16459:260:0:o;3088:223::-;3208:7;3243:12;3236:5;3228:28;;;;-1:-1:-1;;;3228:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3267:9:0;3279:5;3283:1;3279;:5;:::i;14579:636::-;14679:7;14701;14723;14745;14767;14789;14825:23;14850:15;14867:16;14900:40;14912:7;14921:9;;14932:7;;14900:11;:40::i;:::-;14824:116;;;;;;14951:19;14973:10;:8;:10::i;:::-;14951:32;;14995:15;15012:23;15037:12;15066:52;15078:7;15087;15096:8;15106:11;15066;:52::i;:::-;14994:124;;-1:-1:-1;14994:124:0;-1:-1:-1;14994:124:0;-1:-1:-1;15172:15:0;;-1:-1:-1;15189:7:0;;-1:-1:-1;15198:8:0;;-1:-1:-1;;;;;14579:636:0;;;;;;;:::o;2314:136::-;2372:7;2399:43;2403:1;2406;2399:43;;;;;;;;;;;;;;;;;:3;:43::i;2126:179::-;2184:7;;2216:5;2220:1;2216;:5;:::i;:::-;2204:17;;2245:1;2240;:6;;2232:46;;;;-1:-1:-1;;;2232:46:0;;17138:2:1;2232:46:0;;;17120:21:1;17177:2;17157:18;;;17150:30;17216:29;17196:18;;;17189:57;17263:18;;2232:46:0;16936:351:1;14153:217:0;14209:19;14231:10;:8;:10::i;:::-;14209:32;-1:-1:-1;14252:13:0;14268:25;:8;14209:32;14268:12;:25::i;:::-;14345:4;14329:22;;;;:7;:22;;;;;;14252:41;;-1:-1:-1;14329:33:0;;14252:41;14329:26;:33::i;:::-;14320:4;14304:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14153:217:0:o;14379:153::-;14460:7;;:17;;14472:4;14460:11;:17::i;:::-;14450:7;:27;14501:10;;:23;;14516:7;14501:14;:23::i;:::-;14488:10;:36;-1:-1:-1;;14379:153:0:o;15226:490::-;15395:7;;;;15492:30;15518:3;15492:21;:7;15504:8;15492:11;:21::i;:::-;:25;;:30::i;:::-;15474:48;-1:-1:-1;15533:16:0;15552:28;15576:3;15552:19;:7;15564:6;15552:11;:19::i;:28::-;15533:47;-1:-1:-1;15591:23:0;15617:34;15533:47;15617:20;:7;15629;15617:11;:20::i;:::-;:24;;:34::i;:::-;15591:60;15690:7;;-1:-1:-1;15699:8:0;;-1:-1:-1;15226:490:0;;-1:-1:-1;;;;;15226:490:0:o;15725:549::-;15925:7;;;;16022:24;:7;16034:11;16022;:24::i;:::-;16004:42;-1:-1:-1;16057:12:0;16072:24;:7;16084:11;16072;:24::i;:::-;16057:39;-1:-1:-1;16107:13:0;16123:25;:8;16136:11;16123:12;:25::i;:::-;16107:41;-1:-1:-1;16159:23:0;16185:28;16107:41;16185:17;:7;16197:4;16185:11;:17::i;:28::-;16235:7;;;;-1:-1:-1;16261:4:0;;-1:-1:-1;15725:549:0;;-1:-1:-1;;;;;;;15725:549:0:o;2692:246::-;2750:7;2774:1;2779;2774:6;2770:47;;-1:-1:-1;2804:1:0;2797:8;;2770:47;2827:9;2839:5;2843:1;2839;:5;:::i;:::-;2827:17;-1:-1:-1;2872:1:0;2863:5;2867:1;2827:17;2863:5;:::i;:::-;:10;2855:56;;;;-1:-1:-1;;;2855:56:0;;17667:2:1;2855:56:0;;;17649:21:1;17706:2;17686:18;;;17679:30;17745:34;17725:18;;;17718:62;-1:-1:-1;;;17796:18:1;;;17789:31;17837:19;;2855:56:0;17465:397:1;14:131;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:160;215:20;;271:13;;264:21;254:32;;244:60;;300:1;297;290:12;244:60;150:160;;;:::o;315:127::-;376:10;371:3;367:20;364:1;357:31;407:4;404:1;397:15;431:4;428:1;421:15;447:275;518:2;512:9;583:2;564:13;;-1:-1:-1;;560:27:1;548:40;;618:18;603:34;;639:22;;;600:62;597:88;;;665:18;;:::i;:::-;701:2;694:22;447:275;;-1:-1:-1;447:275:1:o;727:159::-;792:20;;763:5;841:20;;;831:31;;821:59;;876:1;873;866:12;891:1036;981:6;989;997;1005;1058:3;1046:9;1037:7;1033:23;1029:33;1026:53;;;1075:1;1072;1065:12;1026:53;1114:9;1101:23;1133:31;1158:5;1133:31;:::i;:::-;1183:5;-1:-1:-1;1207:2:1;1228:35;1244:18;;;1228:35;:::i;:::-;1218:45;;1314:2;1303:9;1299:18;1286:32;1337:18;1378:2;1370:6;1367:14;1364:34;;;1394:1;1391;1384:12;1364:34;1432:6;1421:9;1417:22;1407:32;;1477:7;1470:4;1466:2;1462:13;1458:27;1448:55;;1499:1;1496;1489:12;1448:55;1535:2;1522:16;1557:2;1553;1550:10;1547:36;;;1563:18;;:::i;:::-;1605:53;1648:2;1629:13;;-1:-1:-1;;1625:27:1;1621:36;;1605:53;:::i;:::-;1592:66;;1681:2;1674:5;1667:17;1721:7;1716:2;1711;1707;1703:11;1699:20;1696:33;1693:53;;;1742:1;1739;1732:12;1693:53;1797:2;1792;1788;1784:11;1779:2;1772:5;1768:14;1755:45;1841:1;1836:2;1831;1824:5;1820:14;1816:23;1809:34;;1862:5;1852:15;;;;;1886:35;1917:2;1906:9;1902:18;1886:35;:::i;:::-;1876:45;;891:1036;;;;;;;:::o;1932:180::-;1988:6;2041:2;2029:9;2020:7;2016:23;2012:32;2009:52;;;2057:1;2054;2047:12;2009:52;2080:26;2096:9;2080:26;:::i;2117:548::-;2229:4;2258:2;2287;2276:9;2269:21;2319:6;2313:13;2362:6;2357:2;2346:9;2342:18;2335:34;2387:1;2397:140;2411:6;2408:1;2405:13;2397:140;;;2506:14;;;2502:23;;2496:30;2472:17;;;2491:2;2468:26;2461:66;2426:10;;2397:140;;;2401:3;2586:1;2581:2;2572:6;2561:9;2557:22;2553:31;2546:42;2656:2;2649;2645:7;2640:2;2632:6;2628:15;2624:29;2613:9;2609:45;2605:54;2597:62;;;;2117:548;;;;:::o;2670:315::-;2738:6;2746;2799:2;2787:9;2778:7;2774:23;2770:32;2767:52;;;2815:1;2812;2805:12;2767:52;2854:9;2841:23;2873:31;2898:5;2873:31;:::i;:::-;2923:5;2975:2;2960:18;;;;2947:32;;-1:-1:-1;;;2670:315:1:o;3182:247::-;3241:6;3294:2;3282:9;3273:7;3269:23;3265:32;3262:52;;;3310:1;3307;3300:12;3262:52;3349:9;3336:23;3368:31;3393:5;3368:31;:::i;3850:1021::-;3934:6;3965:2;4008;3996:9;3987:7;3983:23;3979:32;3976:52;;;4024:1;4021;4014:12;3976:52;4064:9;4051:23;4093:18;4134:2;4126:6;4123:14;4120:34;;;4150:1;4147;4140:12;4120:34;4188:6;4177:9;4173:22;4163:32;;4233:7;4226:4;4222:2;4218:13;4214:27;4204:55;;4255:1;4252;4245:12;4204:55;4291:2;4278:16;4313:2;4309;4306:10;4303:36;;;4319:18;;:::i;:::-;4365:2;4362:1;4358:10;4348:20;;4388:28;4412:2;4408;4404:11;4388:28;:::i;:::-;4450:15;;;4520:11;;;4516:20;;;4481:12;;;;4548:19;;;4545:39;;;4580:1;4577;4570:12;4545:39;4604:11;;;;4624:217;4640:6;4635:3;4632:15;4624:217;;;4720:3;4707:17;4694:30;;4737:31;4762:5;4737:31;:::i;:::-;4781:18;;;4657:12;;;;4819;;;;4624:217;;;4860:5;3850:1021;-1:-1:-1;;;;;;;;3850:1021:1:o;4876:456::-;4953:6;4961;4969;5022:2;5010:9;5001:7;4997:23;4993:32;4990:52;;;5038:1;5035;5028:12;4990:52;5077:9;5064:23;5096:31;5121:5;5096:31;:::i;:::-;5146:5;-1:-1:-1;5203:2:1;5188:18;;5175:32;5216:33;5175:32;5216:33;:::i;:::-;4876:456;;5268:7;;-1:-1:-1;;;5322:2:1;5307:18;;;;5294:32;;4876:456::o;5526:180::-;5585:6;5638:2;5626:9;5617:7;5613:23;5609:32;5606:52;;;5654:1;5651;5644:12;5606:52;-1:-1:-1;5677:23:1;;5526:180;-1:-1:-1;5526:180:1:o;6110:385::-;6196:6;6204;6212;6220;6273:3;6261:9;6252:7;6248:23;6244:33;6241:53;;;6290:1;6287;6280:12;6241:53;-1:-1:-1;;6313:23:1;;;6383:2;6368:18;;6355:32;;-1:-1:-1;6434:2:1;6419:18;;6406:32;;6485:2;6470:18;6457:32;;-1:-1:-1;6110:385:1;-1:-1:-1;6110:385:1:o;6500:388::-;6568:6;6576;6629:2;6617:9;6608:7;6604:23;6600:32;6597:52;;;6645:1;6642;6635:12;6597:52;6684:9;6671:23;6703:31;6728:5;6703:31;:::i;:::-;6753:5;-1:-1:-1;6810:2:1;6795:18;;6782:32;6823:33;6782:32;6823:33;:::i;:::-;6875:7;6865:17;;;6500:388;;;;;:::o;6893:689::-;6985:6;6993;7001;7054:2;7042:9;7033:7;7029:23;7025:32;7022:52;;;7070:1;7067;7060:12;7022:52;7110:9;7097:23;7139:18;7180:2;7172:6;7169:14;7166:34;;;7196:1;7193;7186:12;7166:34;7234:6;7223:9;7219:22;7209:32;;7279:7;7272:4;7268:2;7264:13;7260:27;7250:55;;7301:1;7298;7291:12;7250:55;7341:2;7328:16;7367:2;7359:6;7356:14;7353:34;;;7383:1;7380;7373:12;7353:34;7438:7;7431:4;7421:6;7418:1;7414:14;7410:2;7406:23;7402:34;7399:47;7396:67;;;7459:1;7456;7449:12;7396:67;7490:4;7482:13;;;;-1:-1:-1;7514:6:1;-1:-1:-1;7539:37:1;;7555:20;;;-1:-1:-1;7539:37:1;:::i;:::-;7529:47;;6893:689;;;;;:::o;7587:380::-;7666:1;7662:12;;;;7709;;;7730:61;;7784:4;7776:6;7772:17;7762:27;;7730:61;7837:2;7829:6;7826:14;7806:18;7803:38;7800:161;;7883:10;7878:3;7874:20;7871:1;7864:31;7918:4;7915:1;7908:15;7946:4;7943:1;7936:15;7800:161;;7587:380;;;:::o;8098:518::-;8200:2;8195:3;8192:11;8189:421;;;8236:5;8233:1;8226:16;8280:4;8277:1;8267:18;8350:2;8338:10;8334:19;8331:1;8327:27;8321:4;8317:38;8386:4;8374:10;8371:20;8368:47;;;-1:-1:-1;8409:4:1;8368:47;8464:2;8459:3;8455:12;8452:1;8448:20;8442:4;8438:31;8428:41;;8519:81;8537:2;8530:5;8527:13;8519:81;;;8596:1;8582:16;;8563:1;8552:13;8519:81;;;8523:3;;8189:421;8098:518;;;:::o;8792:1345::-;8918:3;8912:10;8945:18;8937:6;8934:30;8931:56;;;8967:18;;:::i;:::-;8996:97;9086:6;9046:38;9078:4;9072:11;9046:38;:::i;:::-;9040:4;8996:97;:::i;:::-;9148:4;;9205:2;9194:14;;9222:1;9217:663;;;;9924:1;9941:6;9938:89;;;-1:-1:-1;9993:19:1;;;9987:26;9938:89;-1:-1:-1;;8749:1:1;8745:11;;;8741:24;8737:29;8727:40;8773:1;8769:11;;;8724:57;10040:81;;9187:944;;9217:663;8045:1;8038:14;;;8082:4;8069:18;;-1:-1:-1;;9253:20:1;;;9371:236;9385:7;9382:1;9379:14;9371:236;;;9474:19;;;9468:26;9453:42;;9566:27;;;;9534:1;9522:14;;;;9401:19;;9371:236;;;9375:3;9635:6;9626:7;9623:19;9620:201;;;9696:19;;;9690:26;-1:-1:-1;;9779:1:1;9775:14;;;9791:3;9771:24;9767:37;9763:42;9748:58;9733:74;;9620:201;;;9867:1;9858:6;9855:1;9851:14;9847:22;9841:4;9834:36;9187:944;;;;;8792:1345;;:::o;10142:356::-;10344:2;10326:21;;;10363:18;;;10356:30;10422:34;10417:2;10402:18;;10395:62;10489:2;10474:18;;10142:356::o;10503:127::-;10564:10;10559:3;10555:20;10552:1;10545:31;10595:4;10592:1;10585:15;10619:4;10616:1;10609:15;14263:127;14324:10;14319:3;14315:20;14312:1;14305:31;14355:4;14352:1;14345:15;14379:4;14376:1;14369:15;14395:125;14460:9;;;14481:10;;;14478:36;;;14494:18;;:::i;14929:128::-;14996:9;;;15017:11;;;15014:37;;;15031:18;;:::i;15062:251::-;15132:6;15185:2;15173:9;15164:7;15160:23;15156:32;15153:52;;;15201:1;15198;15191:12;15153:52;15233:9;15227:16;15252:31;15277:5;15252:31;:::i;15318:980::-;15580:4;15628:3;15617:9;15613:19;15659:6;15648:9;15641:25;15685:2;15723:6;15718:2;15707:9;15703:18;15696:34;15766:3;15761:2;15750:9;15746:18;15739:31;15790:6;15825;15819:13;15856:6;15848;15841:22;15894:3;15883:9;15879:19;15872:26;;15933:2;15925:6;15921:15;15907:29;;15954:1;15964:195;15978:6;15975:1;15972:13;15964:195;;;16043:13;;-1:-1:-1;;;;;16039:39:1;16027:52;;16134:15;;;;16099:12;;;;16075:1;15993:9;15964:195;;;-1:-1:-1;;;;;;;16215:32:1;;;;16210:2;16195:18;;16188:60;-1:-1:-1;;;16279:3:1;16264:19;16257:35;16176:3;15318:980;-1:-1:-1;;;15318:980:1:o;16714:217::-;16754:1;16780;16770:132;;16824:10;16819:3;16815:20;16812:1;16805:31;16859:4;16856:1;16849:15;16887:4;16884:1;16877:15;16770:132;-1:-1:-1;16916:9:1;;16714:217::o;17292:168::-;17365:9;;;17396;;17413:15;;;17407:22;;17393:37;17383:71;;17434:18;;:::i

Swarm Source

ipfs://3f15d784e380e393b717897af7d3fe0478952905f8a89806734cdfba58913185
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.