ETH Price: $3,261.06 (-2.14%)
 

Overview

Max Total Supply

1,000,000 SOUL

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
2,457.310323 SOUL

Value
$0.00
0xddd7524fd0f3260d19421d6f40f29a486a359e35
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:
SoulFire

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
https://www.soulfiretoken.com/

https://t.me/SoulFireToken
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

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

library Address {
        
    function isContract(address account) internal view returns (bool) {
        
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

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

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

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

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

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

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

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

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint 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);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

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

    string private constant _name = "Soul Fire";
    string private constant _symbol = "SOUL";
    uint8 private constant _decimals = 6;
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 public _tTotal = 1000 * 1e3 * 1e6; //1,000,000

    uint256 public _maxWalletAmount = 20 * 1e3 * 1e6; //2%
    uint256 public j_maxtxn = 20 * 1e3 * 1e6; //2%
    uint256 public swapAmount = 7 * 1e2 * 1e6; //.07%
    uint256 private buyTyrantUpperLimit = 100 * 1e14; // 0.01

    // fees
    uint256 public j_liqBuy = 0; 
    uint256 public j_burnBuy = 0;
    uint256 public j_tyrantBuy = 3;
    uint256 public j_marketingBuy = 9;

    uint256 public j_liqSell = 0; 
    uint256 public j_burnSell = 0;
    uint256 public j_tyrantSell = 3;
    uint256 public j_marketingSell = 22;
 
    uint256 private j_previousLiqFee = j_liqFee;
    uint256 private j_previousBurnFee = j_burnFee;
    uint256 private j_previousTyrantFee = j_tyrantFee;
    uint256 private j_previousMarketingTax = j_marketingTax;
    
    uint256 private j_liqFee;
    uint256 private j_burnFee;
    uint256 private j_tyrantFee;
    uint256 private j_marketingTax;

    uint256 public _totalBurned;

    struct FeeBreakdown {
        uint256 tLiq;
        uint256 tBurn;
        uint256 tTyrant;
        uint256 tMarketing;
        uint256 tAmount;
    }

    mapping(address => bool) private bots;
    address payable private soulfireWallet = payable(0x58d8AA2C17a0C046E4fCa7e4b8Ac6245293D4802);
    address payable public dead = payable(0x000000000000000000000000000000000000dEaD);
    address TYRANT = 0x8EE325AE3E54e83956eF2d5952d3C8Bc1fa6ec27;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping = false;
    bool public burnMode = false;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[soulfireWallet] = true;
        _isExcludedFromFee[dead] = true;
        _isExcludedFromFee[address(this)] = 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 totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function totalBurned() public view returns (uint256) {
        return _totalBurned;
    }

    function burning(address _account, uint _amount) private {  
        require( _amount <= balanceOf(_account));
        _balances[_account] = _balances[_account].sub(_amount);
        _tTotal = _tTotal.sub(_amount);
        _totalBurned = _totalBurned.add(_amount);
        emit Transfer(_account, address(0), _amount);
    }

    function removeAllFee() private {
        if (j_burnFee == 0 && j_liqFee == 0 && j_tyrantFee == 0 && j_marketingTax == 0) return;
        j_previousBurnFee = j_burnFee;
        j_previousLiqFee = j_liqFee;
        j_previousTyrantFee = j_tyrantFee;
        j_previousMarketingTax = j_marketingTax;

        j_burnFee = 0;
        j_liqFee = 0;
        j_tyrantFee = 0;
        j_marketingTax = 0;
    }
    
    function restoreAllFee() private {
        j_liqFee = j_previousLiqFee;
        j_burnFee = j_previousBurnFee;
        j_tyrantFee = j_previousTyrantFee;
        j_marketingTax = j_previousMarketingTax;
    }

    function reduceMarketingTax() external {
        require(_msgSender() == soulfireWallet);
        j_marketingSell = 3;
        j_marketingBuy = 3;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from] && !bots[to]);

        bool takeFee = true;

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ((!_isExcludedFromFee[from] || !_isExcludedFromFee[to]))) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "You are being greedy. Exceeding Max Wallet.");
                require(amount <= j_maxtxn, "Slow down buddy...there is a max transaction");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqBuy;
                j_burnFee = j_burnBuy;
                j_tyrantFee = j_tyrantBuy;
                j_marketingTax = j_marketingBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqSell;
                j_burnFee = j_burnSell;
                j_tyrantFee = j_tyrantSell;
                j_marketingTax = j_marketingSell;
            }
           
            if (!swapping && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > swapAmount) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
            
                if (!burnMode && (contractETHBalance > 0)) {
                    sendETHToFee(address(this).balance);
                } else if (burnMode && (contractETHBalance > buyTyrantUpperLimit)) {
                        uint256 buyAmount = (contractETHBalance.div(2));
                    buyTyrant(buyAmount);
                }                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _transferAgain(from, to, amount, takeFee);
        restoreAllFee();
    }

    function setMaxTxn(uint256 maxTransaction) external {
        require(maxTransaction >= 20 * 1e3 * 1e6,"negative ghost rider");
        require(_msgSender() == soulfireWallet);
        j_maxtxn = maxTransaction;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockSwap {
        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 swapETHForTokens(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(TYRANT);

      // make the swap
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            dead, // Burn address
            block.timestamp
        );        
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            soulfireWallet,
            block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockSwap {
        uint256 autoLPamount = j_liqFee.mul(contractTokenBalance).div(j_burnFee.add(j_tyrantFee).add(j_marketingTax).add(j_liqFee));
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(otherHalf);
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);
        addLiquidity(half, newBalance);
    }

    function sendETHToFee(uint256 amount) private {
        soulfireWallet.transfer(amount);
    }

    function manualSwap() external {
        require(_msgSender() == soulfireWallet);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSend() external {
        require(_msgSender() == soulfireWallet);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function _transferAgain(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        
        FeeBreakdown memory fees;
        fees.tBurn = amount.mul(j_burnFee).div(100);
        fees.tLiq = amount.mul(j_liqFee).div(100);
        fees.tTyrant = amount.mul(j_tyrantFee).div(100);
        fees.tMarketing = amount.mul(j_marketingTax).div(100);
        
        fees.tAmount = amount.sub(fees.tTyrant).sub(fees.tMarketing).sub(fees.tBurn).sub(fees.tLiq);

        uint256 amountPreBurn = amount.sub(fees.tBurn);
        burning(sender, fees.tBurn);

        _balances[sender] = _balances[sender].sub(amountPreBurn);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tTyrant).add(fees.tMarketing).add(fees.tBurn.add(fees.tLiq));
        
        if(burnMode && sender != uniswapV2Pair && sender != address(this) && sender != address(uniswapV2Router) && (recipient == address(uniswapV2Router) || recipient == uniswapV2Pair)) {
            burning(uniswapV2Pair, fees.tBurn);
        }

        emit Transfer(sender, recipient, fees.tAmount);
        restoreAllFee();
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == soulfireWallet);
        require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply");
        _maxWalletAmount = maxWalletAmount;
    }

    function setSwapAmount(uint256 _swapAmount) external {
        require(_msgSender() == soulfireWallet);
        swapAmount = _swapAmount;
    }

    function turnOnTheBurn() public onlyOwner {
        burnMode = true;
    }

    function buyTyrant(uint256 amount) private {
    	if (amount > 0) {
    	    swapETHForTokens(amount);
	    }
    }

    function setBuyTyrantRate(uint256 buyTyrantToken) external {
        require(_msgSender() == soulfireWallet);
        buyTyrantUpperLimit = buyTyrantToken;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"j_burnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_marketingBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_marketingSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_maxtxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_tyrantBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_tyrantSell","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":[],"name":"reduceMarketingTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTyrantToken","type":"uint256"}],"name":"setBuyTyrantRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"turnOnTheBurn","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"}]

608060405264e8d4a510006005556404a817c80060068190556007556329b92700600855662386f26fc1000060099081556000600a819055600b8190556003600c819055600d92909255600e819055600f556010556016601181905554601255601754601355601854601455601954601555601c80546001600160a01b03199081167358d8aa2c17a0c046e4fca7e4b8ac6245293d480217909155601d8054821661dead179055601e8054909116738ee325ae3e54e83956ef2d5952d3c8bc1fa6ec271790556020805461ffff60a01b19169055348015620000e057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000188573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ae9190620003d6565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002229190620003d6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000270573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002969190620003d6565b602080546001600160a01b0319166001600160a01b039290921691909117905560055460026000620002c53390565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620002ff620003c760201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601c54821681526004909352818320805485166001908117909155601d549091168352818320805485168217905530835291208054909216179055620003703390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620003b891815260200190565b60405180910390a35062000408565b6000546001600160a01b031690565b600060208284031215620003e957600080fd5b81516001600160a01b03811681146200040157600080fd5b9392505050565b611f5c80620004186000396000f3fe6080604052600436106102285760003560e01c80636f4b6bf011610123578063d89135cd116100ab578063e632313c1161006f578063e632313c14610636578063f2fde38b14610656578063f429389014610676578063fc588c041461068b578063fd01bd4c146106ab57600080fd5b8063d89135cd1461059a578063d9f7e4df146105af578063dc903ba1146105c5578063dd62ed3e146105db578063e610cec01461062157600080fd5b80638ea78153116100f25780638ea781531461050057806395d89b41146105215780639f58526f1461054e578063a9059cbb14610564578063af465a271461058457600080fd5b80636f4b6bf01461048157806370a0823114610497578063715018a6146104cd5780638da5cb5b146104e257600080fd5b806323b872dd116101b157806336cf7c871161017557806336cf7c871461040157806349bd5a5e1461042157806351bc3c85146104415780635dbc2fe1146104565780636c0a24eb1461046b57600080fd5b806323b872dd1461037957806323bbf9e71461039957806327a14fc2146103af5780632e8fa821146103cf578063313ce567146103e557600080fd5b80630cc7ac45116101f85780630cc7ac45146102de5780630cdf2187146103005780631694505e1461031657806318160ddd1461034e578063233296f01461036357600080fd5b8062067d6b1461023457806306fdde031461025d578063095ea7b3146102985780630b565fbf146102c857600080fd5b3661022f57005b600080fd5b34801561024057600080fd5b5061024a60115481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50604080518082019091526009815268536f756c204669726560b81b60208201525b6040516102549190611be7565b3480156102a457600080fd5b506102b86102b3366004611c51565b6106c1565b6040519015158152602001610254565b3480156102d457600080fd5b5061024a60105481565b3480156102ea57600080fd5b506102fe6102f9366004611c7d565b6106d8565b005b34801561030c57600080fd5b5061024a600e5481565b34801561032257600080fd5b50601f54610336906001600160a01b031681565b6040516001600160a01b039091168152602001610254565b34801561035a57600080fd5b5060055461024a565b34801561036f57600080fd5b5061024a60075481565b34801561038557600080fd5b506102b8610394366004611c96565b6106fd565b3480156103a557600080fd5b5061024a600a5481565b3480156103bb57600080fd5b506102fe6103ca366004611c7d565b610766565b3480156103db57600080fd5b5061024a60085481565b3480156103f157600080fd5b5060405160068152602001610254565b34801561040d57600080fd5b50601d54610336906001600160a01b031681565b34801561042d57600080fd5b50602054610336906001600160a01b031681565b34801561044d57600080fd5b506102fe6107ff565b34801561046257600080fd5b506102fe610841565b34801561047757600080fd5b5061024a60065481565b34801561048d57600080fd5b5061024a600c5481565b3480156104a357600080fd5b5061024a6104b2366004611cd7565b6001600160a01b031660009081526002602052604090205490565b3480156104d957600080fd5b506102fe610880565b3480156104ee57600080fd5b506000546001600160a01b0316610336565b34801561050c57600080fd5b506020546102b890600160a81b900460ff1681565b34801561052d57600080fd5b5060408051808201909152600481526314d3d55360e21b602082015261028b565b34801561055a57600080fd5b5061024a600d5481565b34801561057057600080fd5b506102b861057f366004611c51565b6108f4565b34801561059057600080fd5b5061024a60055481565b3480156105a657600080fd5b50601a5461024a565b3480156105bb57600080fd5b5061024a600f5481565b3480156105d157600080fd5b5061024a600b5481565b3480156105e757600080fd5b5061024a6105f6366004611cf4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062d57600080fd5b506102fe610901565b34801561064257600080fd5b506102fe610651366004611c7d565b61092d565b34801561066257600080fd5b506102fe610671366004611cd7565b610952565b34801561068257600080fd5b506102fe6109ea565b34801561069757600080fd5b506102fe6106a6366004611c7d565b610a1a565b3480156106b757600080fd5b5061024a601a5481565b60006106ce338484610a8b565b5060015b92915050565b601c546001600160a01b0316336001600160a01b0316146106f857600080fd5b600955565b600061070a848484610baf565b61075c843361075785604051806060016040528060288152602001611eff602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611159565b610a8b565b5060019392505050565b601c546001600160a01b0316336001600160a01b03161461078657600080fd5b6005546107949060c8611193565b81116107fa5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3525604482015269206f6620737570706c7960b01b60648201526084015b60405180910390fd5b600655565b601c546001600160a01b0316336001600160a01b03161461081f57600080fd5b30600090815260026020526040902054801561083e5761083e816111dc565b50565b6000546001600160a01b0316331461086b5760405162461bcd60e51b81526004016107f190611d2d565b6020805460ff60a81b1916600160a81b179055565b6000546001600160a01b031633146108aa5760405162461bcd60e51b81526004016107f190611d2d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106ce338484610baf565b601c546001600160a01b0316336001600160a01b03161461092157600080fd5b60036011819055600d55565b601c546001600160a01b0316336001600160a01b03161461094d57600080fd5b600855565b6000546001600160a01b0316331461097c5760405162461bcd60e51b81526004016107f190611d2d565b6001600160a01b0381166109e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f1565b61083e81611358565b601c546001600160a01b0316336001600160a01b031614610a0a57600080fd5b47801561083e5761083e816113a8565b6404a817c800811015610a665760405162461bcd60e51b81526020600482015260146024820152733732b3b0ba34bb329033b437b9ba103934b232b960611b60448201526064016107f1565b601c546001600160a01b0316336001600160a01b031614610a8657600080fd5b600755565b6001600160a01b038316610aed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f1565b6001600160a01b038216610b4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f1565b6001600160a01b038216610c755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f1565b60008111610cd75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f1565b6001600160a01b0383166000908152601b602052604090205460ff16158015610d1957506001600160a01b0382166000908152601b602052604090205460ff16155b610d2257600080fd5b6001610d366000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610d6557506000546001600160a01b03848116911614155b8015610d7a57506001600160a01b0384163014155b8015610d8f57506001600160a01b0383163014155b156110e2576020546001600160a01b038581169116148015610dbf5750601f546001600160a01b03848116911614155b8015610e0757506001600160a01b03841660009081526004602052604090205460ff161580610e0757506001600160a01b03831660009081526004602052604090205460ff16155b15610f0157600654610e3883610e32866001600160a01b031660009081526002602052604090205490565b906113e6565b1115610e9a5760405162461bcd60e51b815260206004820152602b60248201527f596f7520617265206265696e67206772656564792e20457863656564696e672060448201526a26b0bc102bb0b63632ba1760a91b60648201526084016107f1565b600754821115610f015760405162461bcd60e51b815260206004820152602c60248201527f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860448201526b103a3930b739b0b1ba34b7b760a11b60648201526084016107f1565b6020546001600160a01b038581169116148015610f2c5750601f546001600160a01b03848116911614155b8015610f5157506001600160a01b0383166000908152601b602052604090205460ff16155b8015610f7657506001600160a01b0384166000908152601b602052604090205460ff16155b15610f9457600a54601655600b54601755600c54601855600d546019555b6020546001600160a01b038481169116148015610fbf5750601f546001600160a01b03858116911614155b8015610fe457506001600160a01b0383166000908152601b602052604090205460ff16155b801561100957506001600160a01b0384166000908152601b602052604090205460ff16155b1561102757600e54601655600f546017556010546018556011546019555b602054600160a01b900460ff1615801561104f57506020546001600160a01b03858116911614155b156110e257306000908152600260205260409020546008548111156110775761107781611445565b6020544790600160a81b900460ff161580156110935750600081115b156110a6576110a1476113a8565b6110df565b602054600160a81b900460ff1680156110c0575060095481115b156110df5760006110d2826002611193565b90506110dd816114df565b505b50505b6001600160a01b03841660009081526004602052604090205460ff168061112157506001600160a01b03831660009081526004602052604090205460ff165b1561112a575060005b611136848484846114ee565b611153601254601655601354601755601454601855601554601955565b50505050565b6000818484111561117d5760405162461bcd60e51b81526004016107f19190611be7565b50600061118a8486611d78565b95945050505050565b60006111d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117cc565b9392505050565b6020805460ff60a01b1916600160a01b1781556040805160028082526060820183526000939192909183019080368337019050509050308160008151811061122657611226611d8f565b6001600160a01b03928316602091820292909201810191909152601f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561127f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a39190611da5565b816001815181106112b6576112b6611d8f565b6001600160a01b039283166020918202929092010152601f546112dc9130911684610a8b565b601f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611315908590600090869030904290600401611e06565b600060405180830381600087803b15801561132f57600080fd5b505af1158015611343573d6000803e3d6000fd5b50506020805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601c546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113e2573d6000803e3d6000fd5b5050565b6000806113f38385611e42565b9050838110156111d55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f1565b6020805460ff60a01b1916600160a01b1790556016546019546018546017546000936114909361147d939192610e32928391906113e6565b60165461148a90856117fa565b90611193565b9050600061149f826002611193565b905060006114ad848361187c565b9050476114b9826111dc565b60006114d38361148a866114cd478761187c565b906117fa565b905061134384826118be565b801561083e5761083e81611972565b806114fb576114fb611ac6565b61152d6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b611547606461148a601754866117fa90919063ffffffff16565b60208201526016546115619060649061148a9086906117fa565b81526018546115789060649061148a9086906117fa565b60408201526019546115929060649061148a9086906117fa565b606082018190528151602083015160408401516115c0936115ba929183919082908a9061187c565b9061187c565b608082015260208101516000906115d890859061187c565b90506115e8868360200151611b21565b6001600160a01b03861660009081526002602052604090205461160b908261187c565b6001600160a01b0380881660009081526002602052604080822093909355608085015191881681529190912054611641916113e6565b6001600160a01b03861660009081526002602090815260409091209190915582519083015161169c9161167491906113e6565b606084015160408086015130600090815260026020529190912054610e3292918391906113e6565b3060009081526002602090815260409091209190915554600160a81b900460ff1680156116d757506020546001600160a01b03878116911614155b80156116ec57506001600160a01b0386163014155b80156117065750601f546001600160a01b03878116911614155b80156117365750601f546001600160a01b038681169116148061173657506020546001600160a01b038681169116145b15611756576020805490830151611756916001600160a01b031690611b21565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846080015160405161179f91815260200190565b60405180910390a36117c4601254601655601354601755601454601855601554601955565b505050505050565b600081836117ed5760405162461bcd60e51b81526004016107f19190611be7565b50600061118a8486611e5a565b60008260000361180c575060006106d2565b60006118188385611e7c565b9050826118258583611e5a565b146111d55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f1565b60006111d583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611159565b601f546118d69030906001600160a01b031684610a8b565b601f54601c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611946573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061196b9190611e9b565b5050505050565b6040805160028082526060820183526000926020830190803683375050601f54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156119dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a009190611da5565b81600081518110611a1357611a13611d8f565b6001600160a01b039283166020918202929092010152601e54825191169082906001908110611a4457611a44611d8f565b6001600160a01b039283166020918202929092010152601f54601d5460405163b6f9de9560e01b81529183169263b6f9de95928692611a90926000928892909116904290600401611ec9565b6000604051808303818588803b158015611aa957600080fd5b505af1158015611abd573d6000803e3d6000fd5b50505050505050565b601754158015611ad65750601654155b8015611ae25750601854155b8015611aee5750601954155b15611af557565b601780546013556016805460125560188054601455601980546015556000938490559183905582905555565b6001600160a01b038216600090815260026020526040902054811115611b4657600080fd5b6001600160a01b038216600090815260026020526040902054611b69908261187c565b6001600160a01b038316600090815260026020526040902055600554611b8f908261187c565b600555601a54611b9f90826113e6565b601a556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b81811015611c1457858101830151858201604001528201611bf8565b81811115611c26576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461083e57600080fd5b60008060408385031215611c6457600080fd5b8235611c6f81611c3c565b946020939093013593505050565b600060208284031215611c8f57600080fd5b5035919050565b600080600060608486031215611cab57600080fd5b8335611cb681611c3c565b92506020840135611cc681611c3c565b929592945050506040919091013590565b600060208284031215611ce957600080fd5b81356111d581611c3c565b60008060408385031215611d0757600080fd5b8235611d1281611c3c565b91506020830135611d2281611c3c565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015611d8a57611d8a611d62565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611db757600080fd5b81516111d581611c3c565b600081518084526020808501945080840160005b83811015611dfb5781516001600160a01b031687529582019590820190600101611dd6565b509495945050505050565b85815284602082015260a060408201526000611e2560a0830186611dc2565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115611e5557611e55611d62565b500190565b600082611e7757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e9657611e96611d62565b500290565b600080600060608486031215611eb057600080fd5b8351925060208401519150604084015190509250925092565b848152608060208201526000611ee26080830186611dc2565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc9bdb72f2692c38864c2e92bf210896a5ffe9a2c43d8e569b2daad0bc8eabc464736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102285760003560e01c80636f4b6bf011610123578063d89135cd116100ab578063e632313c1161006f578063e632313c14610636578063f2fde38b14610656578063f429389014610676578063fc588c041461068b578063fd01bd4c146106ab57600080fd5b8063d89135cd1461059a578063d9f7e4df146105af578063dc903ba1146105c5578063dd62ed3e146105db578063e610cec01461062157600080fd5b80638ea78153116100f25780638ea781531461050057806395d89b41146105215780639f58526f1461054e578063a9059cbb14610564578063af465a271461058457600080fd5b80636f4b6bf01461048157806370a0823114610497578063715018a6146104cd5780638da5cb5b146104e257600080fd5b806323b872dd116101b157806336cf7c871161017557806336cf7c871461040157806349bd5a5e1461042157806351bc3c85146104415780635dbc2fe1146104565780636c0a24eb1461046b57600080fd5b806323b872dd1461037957806323bbf9e71461039957806327a14fc2146103af5780632e8fa821146103cf578063313ce567146103e557600080fd5b80630cc7ac45116101f85780630cc7ac45146102de5780630cdf2187146103005780631694505e1461031657806318160ddd1461034e578063233296f01461036357600080fd5b8062067d6b1461023457806306fdde031461025d578063095ea7b3146102985780630b565fbf146102c857600080fd5b3661022f57005b600080fd5b34801561024057600080fd5b5061024a60115481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50604080518082019091526009815268536f756c204669726560b81b60208201525b6040516102549190611be7565b3480156102a457600080fd5b506102b86102b3366004611c51565b6106c1565b6040519015158152602001610254565b3480156102d457600080fd5b5061024a60105481565b3480156102ea57600080fd5b506102fe6102f9366004611c7d565b6106d8565b005b34801561030c57600080fd5b5061024a600e5481565b34801561032257600080fd5b50601f54610336906001600160a01b031681565b6040516001600160a01b039091168152602001610254565b34801561035a57600080fd5b5060055461024a565b34801561036f57600080fd5b5061024a60075481565b34801561038557600080fd5b506102b8610394366004611c96565b6106fd565b3480156103a557600080fd5b5061024a600a5481565b3480156103bb57600080fd5b506102fe6103ca366004611c7d565b610766565b3480156103db57600080fd5b5061024a60085481565b3480156103f157600080fd5b5060405160068152602001610254565b34801561040d57600080fd5b50601d54610336906001600160a01b031681565b34801561042d57600080fd5b50602054610336906001600160a01b031681565b34801561044d57600080fd5b506102fe6107ff565b34801561046257600080fd5b506102fe610841565b34801561047757600080fd5b5061024a60065481565b34801561048d57600080fd5b5061024a600c5481565b3480156104a357600080fd5b5061024a6104b2366004611cd7565b6001600160a01b031660009081526002602052604090205490565b3480156104d957600080fd5b506102fe610880565b3480156104ee57600080fd5b506000546001600160a01b0316610336565b34801561050c57600080fd5b506020546102b890600160a81b900460ff1681565b34801561052d57600080fd5b5060408051808201909152600481526314d3d55360e21b602082015261028b565b34801561055a57600080fd5b5061024a600d5481565b34801561057057600080fd5b506102b861057f366004611c51565b6108f4565b34801561059057600080fd5b5061024a60055481565b3480156105a657600080fd5b50601a5461024a565b3480156105bb57600080fd5b5061024a600f5481565b3480156105d157600080fd5b5061024a600b5481565b3480156105e757600080fd5b5061024a6105f6366004611cf4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062d57600080fd5b506102fe610901565b34801561064257600080fd5b506102fe610651366004611c7d565b61092d565b34801561066257600080fd5b506102fe610671366004611cd7565b610952565b34801561068257600080fd5b506102fe6109ea565b34801561069757600080fd5b506102fe6106a6366004611c7d565b610a1a565b3480156106b757600080fd5b5061024a601a5481565b60006106ce338484610a8b565b5060015b92915050565b601c546001600160a01b0316336001600160a01b0316146106f857600080fd5b600955565b600061070a848484610baf565b61075c843361075785604051806060016040528060288152602001611eff602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611159565b610a8b565b5060019392505050565b601c546001600160a01b0316336001600160a01b03161461078657600080fd5b6005546107949060c8611193565b81116107fa5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3525604482015269206f6620737570706c7960b01b60648201526084015b60405180910390fd5b600655565b601c546001600160a01b0316336001600160a01b03161461081f57600080fd5b30600090815260026020526040902054801561083e5761083e816111dc565b50565b6000546001600160a01b0316331461086b5760405162461bcd60e51b81526004016107f190611d2d565b6020805460ff60a81b1916600160a81b179055565b6000546001600160a01b031633146108aa5760405162461bcd60e51b81526004016107f190611d2d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106ce338484610baf565b601c546001600160a01b0316336001600160a01b03161461092157600080fd5b60036011819055600d55565b601c546001600160a01b0316336001600160a01b03161461094d57600080fd5b600855565b6000546001600160a01b0316331461097c5760405162461bcd60e51b81526004016107f190611d2d565b6001600160a01b0381166109e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f1565b61083e81611358565b601c546001600160a01b0316336001600160a01b031614610a0a57600080fd5b47801561083e5761083e816113a8565b6404a817c800811015610a665760405162461bcd60e51b81526020600482015260146024820152733732b3b0ba34bb329033b437b9ba103934b232b960611b60448201526064016107f1565b601c546001600160a01b0316336001600160a01b031614610a8657600080fd5b600755565b6001600160a01b038316610aed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f1565b6001600160a01b038216610b4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f1565b6001600160a01b038216610c755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f1565b60008111610cd75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f1565b6001600160a01b0383166000908152601b602052604090205460ff16158015610d1957506001600160a01b0382166000908152601b602052604090205460ff16155b610d2257600080fd5b6001610d366000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610d6557506000546001600160a01b03848116911614155b8015610d7a57506001600160a01b0384163014155b8015610d8f57506001600160a01b0383163014155b156110e2576020546001600160a01b038581169116148015610dbf5750601f546001600160a01b03848116911614155b8015610e0757506001600160a01b03841660009081526004602052604090205460ff161580610e0757506001600160a01b03831660009081526004602052604090205460ff16155b15610f0157600654610e3883610e32866001600160a01b031660009081526002602052604090205490565b906113e6565b1115610e9a5760405162461bcd60e51b815260206004820152602b60248201527f596f7520617265206265696e67206772656564792e20457863656564696e672060448201526a26b0bc102bb0b63632ba1760a91b60648201526084016107f1565b600754821115610f015760405162461bcd60e51b815260206004820152602c60248201527f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860448201526b103a3930b739b0b1ba34b7b760a11b60648201526084016107f1565b6020546001600160a01b038581169116148015610f2c5750601f546001600160a01b03848116911614155b8015610f5157506001600160a01b0383166000908152601b602052604090205460ff16155b8015610f7657506001600160a01b0384166000908152601b602052604090205460ff16155b15610f9457600a54601655600b54601755600c54601855600d546019555b6020546001600160a01b038481169116148015610fbf5750601f546001600160a01b03858116911614155b8015610fe457506001600160a01b0383166000908152601b602052604090205460ff16155b801561100957506001600160a01b0384166000908152601b602052604090205460ff16155b1561102757600e54601655600f546017556010546018556011546019555b602054600160a01b900460ff1615801561104f57506020546001600160a01b03858116911614155b156110e257306000908152600260205260409020546008548111156110775761107781611445565b6020544790600160a81b900460ff161580156110935750600081115b156110a6576110a1476113a8565b6110df565b602054600160a81b900460ff1680156110c0575060095481115b156110df5760006110d2826002611193565b90506110dd816114df565b505b50505b6001600160a01b03841660009081526004602052604090205460ff168061112157506001600160a01b03831660009081526004602052604090205460ff165b1561112a575060005b611136848484846114ee565b611153601254601655601354601755601454601855601554601955565b50505050565b6000818484111561117d5760405162461bcd60e51b81526004016107f19190611be7565b50600061118a8486611d78565b95945050505050565b60006111d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117cc565b9392505050565b6020805460ff60a01b1916600160a01b1781556040805160028082526060820183526000939192909183019080368337019050509050308160008151811061122657611226611d8f565b6001600160a01b03928316602091820292909201810191909152601f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561127f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a39190611da5565b816001815181106112b6576112b6611d8f565b6001600160a01b039283166020918202929092010152601f546112dc9130911684610a8b565b601f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611315908590600090869030904290600401611e06565b600060405180830381600087803b15801561132f57600080fd5b505af1158015611343573d6000803e3d6000fd5b50506020805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601c546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113e2573d6000803e3d6000fd5b5050565b6000806113f38385611e42565b9050838110156111d55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f1565b6020805460ff60a01b1916600160a01b1790556016546019546018546017546000936114909361147d939192610e32928391906113e6565b60165461148a90856117fa565b90611193565b9050600061149f826002611193565b905060006114ad848361187c565b9050476114b9826111dc565b60006114d38361148a866114cd478761187c565b906117fa565b905061134384826118be565b801561083e5761083e81611972565b806114fb576114fb611ac6565b61152d6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b611547606461148a601754866117fa90919063ffffffff16565b60208201526016546115619060649061148a9086906117fa565b81526018546115789060649061148a9086906117fa565b60408201526019546115929060649061148a9086906117fa565b606082018190528151602083015160408401516115c0936115ba929183919082908a9061187c565b9061187c565b608082015260208101516000906115d890859061187c565b90506115e8868360200151611b21565b6001600160a01b03861660009081526002602052604090205461160b908261187c565b6001600160a01b0380881660009081526002602052604080822093909355608085015191881681529190912054611641916113e6565b6001600160a01b03861660009081526002602090815260409091209190915582519083015161169c9161167491906113e6565b606084015160408086015130600090815260026020529190912054610e3292918391906113e6565b3060009081526002602090815260409091209190915554600160a81b900460ff1680156116d757506020546001600160a01b03878116911614155b80156116ec57506001600160a01b0386163014155b80156117065750601f546001600160a01b03878116911614155b80156117365750601f546001600160a01b038681169116148061173657506020546001600160a01b038681169116145b15611756576020805490830151611756916001600160a01b031690611b21565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846080015160405161179f91815260200190565b60405180910390a36117c4601254601655601354601755601454601855601554601955565b505050505050565b600081836117ed5760405162461bcd60e51b81526004016107f19190611be7565b50600061118a8486611e5a565b60008260000361180c575060006106d2565b60006118188385611e7c565b9050826118258583611e5a565b146111d55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f1565b60006111d583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611159565b601f546118d69030906001600160a01b031684610a8b565b601f54601c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611946573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061196b9190611e9b565b5050505050565b6040805160028082526060820183526000926020830190803683375050601f54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156119dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a009190611da5565b81600081518110611a1357611a13611d8f565b6001600160a01b039283166020918202929092010152601e54825191169082906001908110611a4457611a44611d8f565b6001600160a01b039283166020918202929092010152601f54601d5460405163b6f9de9560e01b81529183169263b6f9de95928692611a90926000928892909116904290600401611ec9565b6000604051808303818588803b158015611aa957600080fd5b505af1158015611abd573d6000803e3d6000fd5b50505050505050565b601754158015611ad65750601654155b8015611ae25750601854155b8015611aee5750601954155b15611af557565b601780546013556016805460125560188054601455601980546015556000938490559183905582905555565b6001600160a01b038216600090815260026020526040902054811115611b4657600080fd5b6001600160a01b038216600090815260026020526040902054611b69908261187c565b6001600160a01b038316600090815260026020526040902055600554611b8f908261187c565b600555601a54611b9f90826113e6565b601a556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b81811015611c1457858101830151858201604001528201611bf8565b81811115611c26576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461083e57600080fd5b60008060408385031215611c6457600080fd5b8235611c6f81611c3c565b946020939093013593505050565b600060208284031215611c8f57600080fd5b5035919050565b600080600060608486031215611cab57600080fd5b8335611cb681611c3c565b92506020840135611cc681611c3c565b929592945050506040919091013590565b600060208284031215611ce957600080fd5b81356111d581611c3c565b60008060408385031215611d0757600080fd5b8235611d1281611c3c565b91506020830135611d2281611c3c565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015611d8a57611d8a611d62565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611db757600080fd5b81516111d581611c3c565b600081518084526020808501945080840160005b83811015611dfb5781516001600160a01b031687529582019590820190600101611dd6565b509495945050505050565b85815284602082015260a060408201526000611e2560a0830186611dc2565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115611e5557611e55611d62565b500190565b600082611e7757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e9657611e96611d62565b500290565b600080600060608486031215611eb057600080fd5b8351925060208401519150604084015190509250925092565b848152608060208201526000611ee26080830186611dc2565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc9bdb72f2692c38864c2e92bf210896a5ffe9a2c43d8e569b2daad0bc8eabc464736f6c634300080d0033

Deployed Bytecode Sourcemap

11229:13066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12241:35;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;12241:35:0;;;;;;;;14016:83;;;;;;;;;;-1:-1:-1;14086:5:0;;;;;;;;;;;;-1:-1:-1;;;14086:5:0;;;;14016:83;;;;;;;:::i;14857:163::-;;;;;;;;;;-1:-1:-1;14857:163:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;14857:163:0;1254:187:1;12203:31:0;;;;;;;;;;;;;;;;24126:164;;;;;;;;;;-1:-1:-1;24126:164:0;;;;;:::i;:::-;;:::i;:::-;;12131:28;;;;;;;;;;;;;;;;13147:41;;;;;;;;;;-1:-1:-1;13147:41:0;;;;-1:-1:-1;;;;;13147:41:0;;;;;;-1:-1:-1;;;;;1821:32:1;;;1803:51;;1791:2;1776:18;13147:41:0;1631:229:1;14293:95:0;;;;;;;;;;-1:-1:-1;14373:7:0;;14293:95;;11797:40;;;;;;;;;;;;;;;;15028:312;;;;;;;;;;-1:-1:-1;15028:312:0;;;;;:::i;:::-;;:::i;11982:27::-;;;;;;;;;;;;;;;;23488:265;;;;;;;;;;-1:-1:-1;23488:265:0;;;;;:::i;:::-;;:::i;11849:41::-;;;;;;;;;;;;;;;;14202:83;;;;;;;;;;-1:-1:-1;14202:83:0;;11481:1;2468:36:1;;2456:2;2441:18;14202:83:0;2326:184:1;12991:81:0;;;;;;;;;;-1:-1:-1;12991:81:0;;;;-1:-1:-1;;;;;12991:81:0;;;13195:28;;;;;;;;;;-1:-1:-1;13195:28:0;;;;-1:-1:-1;;;;;13195:28:0;;;21657:245;;;;;;;;;;;;;:::i;23915:76::-;;;;;;;;;;;;;:::i;11737:48::-;;;;;;;;;;;;;;;;12052:30;;;;;;;;;;;;;;;;14396:119;;;;;;;;;;-1:-1:-1;14396:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;14489:18:0;14462:7;14489:18;;;:9;:18;;;;;;;14396:119;5279:148;;;;;;;;;;;;;:::i;5065:79::-;;;;;;;;;;-1:-1:-1;5103:7:0;5130:6;-1:-1:-1;;;;;5130:6:0;5065:79;;13268:28;;;;;;;;;;-1:-1:-1;13268:28:0;;;;-1:-1:-1;;;13268:28:0;;;;;;14107:87;;;;;;;;;;-1:-1:-1;14179:7:0;;;;;;;;;;;;-1:-1:-1;;;14179:7:0;;;;14107:87;;12089:33;;;;;;;;;;;;;;;;14527:169;;;;;;;;;;-1:-1:-1;14527:169:0;;;;;:::i;:::-;;:::i;11675:41::-;;;;;;;;;;;;;;;;15348:91;;;;;;;;;;-1:-1:-1;15419:12:0;;15348:91;;12167:29;;;;;;;;;;;;;;;;12017:28;;;;;;;;;;;;;;;;14704:145;;;;;;;;;;-1:-1:-1;14704:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;14814:18:0;;;14787:7;14814:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14704:145;16431:156;;;;;;;;;;;;;:::i;23761:146::-;;;;;;;;;;-1:-1:-1;23761:146:0;;;;;:::i;:::-;;:::i;5439:201::-;;;;;;;;;;-1:-1:-1;5439:201:0;;;;;:::i;:::-;;:::i;21910:247::-;;;;;;;;;;;;;:::i;19357:221::-;;;;;;;;;;-1:-1:-1;19357:221:0;;;;;:::i;:::-;;:::i;12648:27::-;;;;;;;;;;;;;;;;14857:163;14934:4;14951:39;247:10;14974:7;14983:6;14951:8;:39::i;:::-;-1:-1:-1;15008:4:0;14857:163;;;;;:::o;24126:164::-;24220:14;;-1:-1:-1;;;;;24220:14:0;247:10;-1:-1:-1;;;;;24204:30:0;;24196:39;;;;;;24246:19;:36;24126:164::o;15028:312::-;15128:4;15145:36;15155:6;15163:9;15174:6;15145:9;:36::i;:::-;15192:118;15201:6;247:10;15221:88;15259:6;15221:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15221:19:0;;;;;;:11;:19;;;;;;;;247:10;15221:33;;;;;;;;;;:37;:88::i;:::-;15192:8;:118::i;:::-;-1:-1:-1;15328:4:0;15028:312;;;;;:::o;23488:265::-;23585:14;;-1:-1:-1;;;;;23585:14:0;247:10;-1:-1:-1;;;;;23569:30:0;;23561:39;;;;;;23637:7;;:16;;23649:3;23637:11;:16::i;:::-;23619:15;:34;23611:89;;;;-1:-1:-1;;;23611:89:0;;3794:2:1;23611:89:0;;;3776:21:1;3833:2;3813:18;;;3806:30;3872:34;3852:18;;;3845:62;-1:-1:-1;;;3923:18:1;;;3916:40;3973:19;;23611:89:0;;;;;;;;;23711:16;:34;23488:265::o;21657:245::-;21723:14;;-1:-1:-1;;;;;21723:14:0;247:10;-1:-1:-1;;;;;21707:30:0;;21699:39;;;;;;21793:4;21749:23;14489:18;;;:9;:18;;;;;;21814:19;;21810:85;;21850:33;21867:15;21850:16;:33::i;:::-;21688:214;21657:245::o;23915:76::-;5192:6;;-1:-1:-1;;;;;5192:6:0;247:10;5192:22;5184:67;;;;-1:-1:-1;;;5184:67:0;;;;;;;:::i;:::-;23968:8:::1;:15:::0;;-1:-1:-1;;;;23968:15:0::1;-1:-1:-1::0;;;23968:15:0::1;::::0;;23915:76::o;5279:148::-;5192:6;;-1:-1:-1;;;;;5192:6:0;247:10;5192:22;5184:67;;;;-1:-1:-1;;;5184:67:0;;;;;;;:::i;:::-;5386:1:::1;5370:6:::0;;5349:40:::1;::::0;-1:-1:-1;;;;;5370:6:0;;::::1;::::0;5349:40:::1;::::0;5386:1;;5349:40:::1;5417:1;5400:19:::0;;-1:-1:-1;;;;;;5400:19:0::1;::::0;;5279:148::o;14527:169::-;14607:4;14624:42;247:10;14648:9;14659:6;14624:9;:42::i;16431:156::-;16505:14;;-1:-1:-1;;;;;16505:14:0;247:10;-1:-1:-1;;;;;16489:30:0;;16481:39;;;;;;16549:1;16531:15;:19;;;16561:14;:18;16431:156::o;23761:146::-;23849:14;;-1:-1:-1;;;;;23849:14:0;247:10;-1:-1:-1;;;;;23833:30:0;;23825:39;;;;;;23875:10;:24;23761:146::o;5439:201::-;5192:6;;-1:-1:-1;;;;;5192:6:0;247:10;5192:22;5184:67;;;;-1:-1:-1;;;5184:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5528:22:0;::::1;5520:73;;;::::0;-1:-1:-1;;;5520:73:0;;4566:2:1;5520:73:0::1;::::0;::::1;4548:21:1::0;4605:2;4585:18;;;4578:30;4644:34;4624:18;;;4617:62;-1:-1:-1;;;4695:18:1;;;4688:36;4741:19;;5520:73:0::1;4364:402:1::0;5520:73:0::1;5604:28;5623:8;5604:18;:28::i;21910:247::-:0;21976:14;;-1:-1:-1;;;;;21976:14:0;247:10;-1:-1:-1;;;;;21960:30:0;;21952:39;;;;;;22031:21;22067:22;;22063:87;;22106:32;22119:18;22106:12;:32::i;19357:221::-;19446:14;19428;:32;;19420:64;;;;-1:-1:-1;;;19420:64:0;;4973:2:1;19420:64:0;;;4955:21:1;5012:2;4992:18;;;4985:30;-1:-1:-1;;;5031:18:1;;;5024:50;5091:18;;19420:64:0;4771:344:1;19420:64:0;19519:14;;-1:-1:-1;;;;;19519:14:0;247:10;-1:-1:-1;;;;;19503:30:0;;19495:39;;;;;;19545:8;:25;19357:221::o;16595:335::-;-1:-1:-1;;;;;16688:19:0;;16680:68;;;;-1:-1:-1;;;16680:68:0;;5322:2:1;16680:68:0;;;5304:21:1;5361:2;5341:18;;;5334:30;5400:34;5380:18;;;5373:62;-1:-1:-1;;;5451:18:1;;;5444:34;5495:19;;16680:68:0;5120:400:1;16680:68:0;-1:-1:-1;;;;;16767:21:0;;16759:68;;;;-1:-1:-1;;;16759:68:0;;5727:2:1;16759:68:0;;;5709:21:1;5766:2;5746:18;;;5739:30;5805:34;5785:18;;;5778:62;-1:-1:-1;;;5856:18:1;;;5849:32;5898:19;;16759:68:0;5525:398:1;16759:68:0;-1:-1:-1;;;;;16838:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16890:32;;160:25:1;;;16890:32:0;;133:18:1;16890:32:0;;;;;;;16595:335;;;:::o;16942:2407::-;-1:-1:-1;;;;;17030:18:0;;17022:68;;;;-1:-1:-1;;;17022:68:0;;6130:2:1;17022:68:0;;;6112:21:1;6169:2;6149:18;;;6142:30;6208:34;6188:18;;;6181:62;-1:-1:-1;;;6259:18:1;;;6252:35;6304:19;;17022:68:0;5928:401:1;17022:68:0;-1:-1:-1;;;;;17109:16:0;;17101:64;;;;-1:-1:-1;;;17101:64:0;;6536:2:1;17101:64:0;;;6518:21:1;6575:2;6555:18;;;6548:30;6614:34;6594:18;;;6587:62;-1:-1:-1;;;6665:18:1;;;6658:33;6708:19;;17101:64:0;6334:399:1;17101:64:0;17193:1;17184:6;:10;17176:64;;;;-1:-1:-1;;;17176:64:0;;6940:2:1;17176:64:0;;;6922:21:1;6979:2;6959:18;;;6952:30;7018:34;6998:18;;;6991:62;-1:-1:-1;;;7069:18:1;;;7062:39;7118:19;;17176:64:0;6738:405:1;17176:64:0;-1:-1:-1;;;;;17260:10:0;;;;;;:4;:10;;;;;;;;17259:11;:24;;;;-1:-1:-1;;;;;;17275:8:0;;;;;;:4;:8;;;;;;;;17274:9;17259:24;17251:33;;;;;;17312:4;17341:7;5103;5130:6;-1:-1:-1;;;;;5130:6:0;;5065:79;17341:7;-1:-1:-1;;;;;17333:15:0;:4;-1:-1:-1;;;;;17333:15:0;;;:32;;;;-1:-1:-1;5103:7:0;5130:6;-1:-1:-1;;;;;17352:13:0;;;5130:6;;17352:13;;17333:32;:57;;;;-1:-1:-1;;;;;;17369:21:0;;17385:4;17369:21;;17333:57;:80;;;;-1:-1:-1;;;;;;17394:19:0;;17408:4;17394:19;;17333:80;17329:1815;;;17444:13;;-1:-1:-1;;;;;17436:21:0;;;17444:13;;17436:21;:55;;;;-1:-1:-1;17475:15:0;;-1:-1:-1;;;;;17461:30:0;;;17475:15;;17461:30;;17436:55;:115;;;;-1:-1:-1;;;;;;17498:24:0;;;;;;:18;:24;;;;;;;;17497:25;;:52;;-1:-1:-1;;;;;;17527:22:0;;;;;;:18;:22;;;;;;;;17526:23;17497:52;17432:351;;;17609:16;;17580:25;17598:6;17580:13;17590:2;-1:-1:-1;;;;;14489:18:0;14462:7;14489:18;;;:9;:18;;;;;;;14396:119;17580:13;:17;;:25::i;:::-;:45;;17572:101;;;;-1:-1:-1;;;17572:101:0;;7350:2:1;17572:101:0;;;7332:21:1;7389:2;7369:18;;;7362:30;7428:34;7408:18;;;7401:62;-1:-1:-1;;;7479:18:1;;;7472:41;7530:19;;17572:101:0;7148:407:1;17572:101:0;17710:8;;17700:6;:18;;17692:75;;;;-1:-1:-1;;;17692:75:0;;7762:2:1;17692:75:0;;;7744:21:1;7801:2;7781:18;;;7774:30;7840:34;7820:18;;;7813:62;-1:-1:-1;;;7891:18:1;;;7884:42;7943:19;;17692:75:0;7560:408:1;17692:75:0;17811:13;;-1:-1:-1;;;;;17803:21:0;;;17811:13;;17803:21;:55;;;;-1:-1:-1;17842:15:0;;-1:-1:-1;;;;;17828:30:0;;;17842:15;;17828:30;;17803:55;:68;;;;-1:-1:-1;;;;;;17863:8:0;;;;;;:4;:8;;;;;;;;17862:9;17803:68;:83;;;;-1:-1:-1;;;;;;17876:10:0;;;;;;:4;:10;;;;;;;;17875:11;17803:83;17799:277;;;17918:8;;17907;:19;17957:9;;17945;:21;17999:11;;17985;:25;18046:14;;18029;:31;17799:277;18118:13;;-1:-1:-1;;;;;18112:19:0;;;18118:13;;18112:19;:55;;;;-1:-1:-1;18151:15:0;;-1:-1:-1;;;;;18135:32:0;;;18151:15;;18135:32;;18112:55;:68;;;;-1:-1:-1;;;;;;18172:8:0;;;;;;:4;:8;;;;;;;;18171:9;18112:68;:83;;;;-1:-1:-1;;;;;;18185:10:0;;;;;;:4;:10;;;;;;;;18184:11;18112:83;18108:281;;;18227:9;;18216:8;:20;18267:10;;18255:9;:22;18310:12;;18296:11;:26;18358:15;;18341:14;:32;18108:281;18421:8;;-1:-1:-1;;;18421:8:0;;;;18420:9;:34;;;;-1:-1:-1;18441:13:0;;-1:-1:-1;;;;;18433:21:0;;;18441:13;;18433:21;;18420:34;18416:717;;;18526:4;18477:28;14489:18;;;:9;:18;;;;;;18580:10;;18557:33;;18553:118;;;18615:36;18630:20;18615:14;:36::i;:::-;18779:8;;18720:21;;-1:-1:-1;;;18779:8:0;;;;18778:9;:37;;;;;18813:1;18792:18;:22;18778:37;18774:324;;;18840:35;18853:21;18840:12;:35::i;:::-;18774:324;;;18905:8;;-1:-1:-1;;;18905:8:0;;;;:54;;;;;18939:19;;18918:18;:40;18905:54;18901:197;;;18988:17;19009:25;:18;19032:1;19009:22;:25::i;:::-;18988:47;;19058:20;19068:9;19058;:20::i;:::-;18961:137;18901:197;18456:677;;18416:717;-1:-1:-1;;;;;19160:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;19188:22:0;;;;;;:18;:22;;;;;;;;19160:50;19156:98;;;-1:-1:-1;19237:5:0;19156:98;19274:41;19289:4;19295:2;19299:6;19307:7;19274:14;:41::i;:::-;19326:15;16265:16;;16254:8;:27;16304:17;;16292:9;:29;16346:19;;16332:11;:33;16393:22;;16376:14;:39;16210:213;19326:15;17011:2338;16942:2407;;;:::o;1304:190::-;1390:7;1426:12;1418:6;;;;1410:29;;;;-1:-1:-1;;;1410:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1450:9:0;1462:5;1466:1;1462;:5;:::i;:::-;1450:17;1304:190;-1:-1:-1;;;;;1304:190:0:o;1756:132::-;1814:7;1841:39;1845:1;1848;1841:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1834:46;1756:132;-1:-1:-1;;;1756:132:0:o;19586:404::-;13334:8;:15;;-1:-1:-1;;;;13334:15:0;-1:-1:-1;;;13334:15:0;;;19685:16:::1;::::0;;19699:1:::1;19685:16:::0;;;;;::::1;::::0;;-1:-1:-1;;19685:16:0;;19699:1;;19685:16;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19685:16:0::1;19661:40;;19730:4;19712;19717:1;19712:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19712:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19756:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;19756:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;19712:7;;19756:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19746:4;19751:1;19746:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19746:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;19821:15:::1;::::0;19789:62:::1;::::0;19806:4:::1;::::0;19821:15:::1;19839:11:::0;19789:8:::1;:62::i;:::-;19862:15;::::0;:120:::1;::::0;-1:-1:-1;;;19862:120:0;;-1:-1:-1;;;;;19862:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;19929:11;;19862:15:::1;::::0;19945:4;;19959::::1;::::0;19966:15:::1;::::0;19862:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13372:8:0;:16;;-1:-1:-1;;;;13372:16:0;;;-1:-1:-1;;;;19586:404:0:o;5648:191::-;5722:16;5741:6;;-1:-1:-1;;;;;5758:17:0;;;-1:-1:-1;;;;;;5758:17:0;;;;;;5791:40;;5741:6;;;;;;;5791:40;;5722:16;5791:40;5711:128;5648:191;:::o;21553:96::-;21610:14;;:31;;-1:-1:-1;;;;;21610:14:0;;;;:31;;;;;21634:6;;21610:14;:31;:14;:31;21634:6;21610:14;:31;;;;;;;;;;;;;;;;;;;;;21553:96;:::o;973:179::-;1031:7;;1063:5;1067:1;1063;:5;:::i;:::-;1051:17;;1092:1;1087;:6;;1079:46;;;;-1:-1:-1;;;1079:46:0;;10143:2:1;1079:46:0;;;10125:21:1;10182:2;10162:18;;;10155:30;10221:29;10201:18;;;10194:57;10268:18;;1079:46:0;9941:351:1;20987:558:0;13334:8;:15;;-1:-1:-1;;;;13334:15:0;-1:-1:-1;;;13334:15:0;;;21182:8:::1;::::0;21162:14:::1;::::0;21145:11:::1;::::0;21131:9:::1;::::0;13334:15;;21092:100:::1;::::0;21131:60:::1;::::0;21182:8;;21131:46:::1;::::0;;;:9;:13:::1;:26::i;:60::-;21092:8;::::0;:34:::1;::::0;21105:20;21092:12:::1;:34::i;:::-;:38:::0;::::1;:100::i;:::-;21069:123:::0;-1:-1:-1;21203:12:0::1;21219:19;21069:123:::0;21236:1:::1;21219:16;:19::i;:::-;21203:35:::0;-1:-1:-1;21249:17:0::1;21269:30;:20:::0;21203:35;21269:24:::1;:30::i;:::-;21249:50:::0;-1:-1:-1;21335:21:0::1;21367:27;21249:50:::0;21367:16:::1;:27::i;:::-;21405:18;21426:70;21486:9:::0;21427:53:::1;21475:4:::0;21428:41:::1;:21;21454:14:::0;21428:25:::1;:41::i;:::-;21427:47:::0;::::1;:53::i;21426:70::-;21405:91;;21507:30;21520:4;21526:10;21507:12;:30::i;23999:119::-:0;24054:10;;24050:61;;24078:24;24095:6;24078:16;:24::i;22165:1274::-;22278:7;22273:60;;22307:14;:12;:14::i;:::-;22353:24;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22353:24:0;22401:30;22427:3;22401:21;22412:9;;22401:6;:10;;:21;;;;:::i;:30::-;22388:10;;;:43;22465:8;;22454:29;;22479:3;;22454:20;;:6;;:10;:20::i;:29::-;22442:41;;22520:11;;22509:32;;22537:3;;22509:23;;:6;;:10;:23::i;:32::-;22494:12;;;:47;22581:14;;22570:35;;22601:3;;22570:26;;:6;;:10;:26::i;:35::-;22552:15;;;:53;;;22707:9;;22691:10;;;;22652:12;;;;22641:76;;:61;;22691:10;22641:61;;22552:53;22641:61;;:6;;:10;:24::i;:::-;:28;;:45::i;:76::-;22626:12;;;:91;22765:10;;;;22730:21;;22754:22;;:6;;:10;:22::i;:::-;22730:46;;22787:27;22795:6;22803:4;:10;;;22787:7;:27::i;:::-;-1:-1:-1;;;;;22847:17:0;;;;;;:9;:17;;;;;;:36;;22869:13;22847:21;:36::i;:::-;-1:-1:-1;;;;;22827:17:0;;;;;;;:9;:17;;;;;;:56;;;;22942:12;;;;22917:20;;;;;;;;;;:38;;:24;:38::i;:::-;-1:-1:-1;;;;;22894:20:0;;;;;;:9;:20;;;;;;;;:61;;;;23076:9;;23061:10;;;;22993:94;;23061:25;;:10;:14;:25::i;:::-;23040:15;;;;23022:12;;;;;23011:4;22993:24;;;;:9;:24;;;;;;;:63;;23040:15;22993:63;;:24;:28;:42::i;:94::-;22984:4;22966:24;;;;:9;:24;;;;;;;;:121;;;;23111:8;-1:-1:-1;;;23111:8:0;;;;:35;;;;-1:-1:-1;23133:13:0;;-1:-1:-1;;;;;23123:23:0;;;23133:13;;23123:23;;23111:35;:62;;;;-1:-1:-1;;;;;;23150:23:0;;23168:4;23150:23;;23111:62;:100;;;;-1:-1:-1;23195:15:0;;-1:-1:-1;;;;;23177:34:0;;;23195:15;;23177:34;;23111:100;:173;;;;-1:-1:-1;23237:15:0;;-1:-1:-1;;;;;23216:37:0;;;23237:15;;23216:37;;:67;;-1:-1:-1;23270:13:0;;-1:-1:-1;;;;;23257:26:0;;;23270:13;;23257:26;23216:67;23108:239;;;23309:13;;;23324:10;;;;23301:34;;-1:-1:-1;;;;;23309:13:0;;23301:7;:34::i;:::-;23381:9;-1:-1:-1;;;;;23364:41:0;23373:6;-1:-1:-1;;;;;23364:41:0;;23392:4;:12;;;23364:41;;;;160:25:1;;148:2;133:18;;14:177;23364:41:0;;;;;;;;23416:15;16265:16;;16254:8;:27;16304:17;;16292:9;:29;16346:19;;16332:11;:33;16393:22;;16376:14;:39;16210:213;23416:15;22262:1177;;22165:1274;;;;:::o;1896:189::-;1982:7;2017:12;2010:5;2002:28;;;;-1:-1:-1;;;2002:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2041:9:0;2053:5;2057:1;2053;:5;:::i;1502:246::-;1560:7;1584:1;1589;1584:6;1580:47;;-1:-1:-1;1614:1:0;1607:8;;1580:47;1637:9;1649:5;1653:1;1649;:5;:::i;:::-;1637:17;-1:-1:-1;1682:1:0;1673:5;1677:1;1637:17;1673:5;:::i;:::-;:10;1665:56;;;;-1:-1:-1;;;1665:56:0;;10894:2:1;1665:56:0;;;10876:21:1;10933:2;10913:18;;;10906:30;10972:34;10952:18;;;10945:62;-1:-1:-1;;;11023:18:1;;;11016:31;11064:19;;1665:56:0;10692:397:1;1160:136:0;1218:7;1245:43;1249:1;1252;1245:43;;;;;;;;;;;;;;;;;:3;:43::i;20522:455::-;20635:15;;20603:62;;20620:4;;-1:-1:-1;;;;;20635:15:0;20653:11;20603:8;:62::i;:::-;20708:15;;20912:14;;20708:261;;-1:-1:-1;;;20708:261:0;;20780:4;20708:261;;;11443:34:1;11493:18;;;11486:34;;;20708:15:0;11536:18:1;;;11529:34;;;11579:18;;;11572:34;-1:-1:-1;;;;;20912:14:0;;;11622:19:1;;;11615:44;20941:15:0;11675:19:1;;;11668:35;20708:15:0;;;:31;;20747:9;;11377:19:1;;20708:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20522:455;;:::o;19998:516::-;20143:16;;;20157:1;20143:16;;;;;;;;20119:21;;20143:16;;;;;;;;-1:-1:-1;;20180:15:0;;:22;;;-1:-1:-1;;;20180:22:0;;;;20119:40;;-1:-1:-1;;;;;;20180:15:0;;;;:20;;-1:-1:-1;20180:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20170:4;20175:1;20170:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20170:32:0;;;:7;;;;;;;;;:32;20231:6;;20213:7;;20231:6;;;20213:4;;20231:6;;20213:7;;;;;;:::i;:::-;-1:-1:-1;;;;;20213:25:0;;;:7;;;;;;;;;:25;20275:15;;20437:4;;20275:223;;-1:-1:-1;;;20275:223:0;;:15;;;;:66;;20349:6;;20275:223;;:15;;20418:4;;20437;;;;20472:15;;20275:223;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20048:466;19998:516;:::o;15785:413::-;15832:9;;:14;:31;;;;-1:-1:-1;15850:8:0;;:13;15832:31;:51;;;;-1:-1:-1;15867:11:0;;:16;15832:51;:74;;;;-1:-1:-1;15887:14:0;;:19;15832:74;15828:87;;;15785:413::o;15828:87::-;15945:9;;;15925:17;:29;15984:8;;;15965:16;:27;16025:11;;;16003:19;:33;16072:14;;;16047:22;:39;-1:-1:-1;16099:13:0;;;;16123:12;;;;16146:15;;;16172:18;15785:413::o;15447:330::-;-1:-1:-1;;;;;14489:18:0;;14462:7;14489:18;;;:9;:18;;;;;;15526:7;:30;;15517:40;;;;;;-1:-1:-1;;;;;15590:19:0;;;;;;:9;:19;;;;;;:32;;15614:7;15590:23;:32::i;:::-;-1:-1:-1;;;;;15568:19:0;;;;;;:9;:19;;;;;:54;15643:7;;:20;;15655:7;15643:11;:20::i;:::-;15633:7;:30;15689:12;;:25;;15706:7;15689:16;:25::i;:::-;15674:12;:40;15730:39;;160:25:1;;;15757:1:0;;-1:-1:-1;;;;;15730:39:0;;;;;148:2:1;133:18;15730:39:0;;;;;;;15447:330;;:::o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:180::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;-1:-1:-1;1597:23:1;;1446:180;-1:-1:-1;1446:180:1:o;1865:456::-;1942:6;1950;1958;2011:2;1999:9;1990:7;1986:23;1982:32;1979:52;;;2027:1;2024;2017:12;1979:52;2066:9;2053:23;2085:31;2110:5;2085:31;:::i;:::-;2135:5;-1:-1:-1;2192:2:1;2177:18;;2164:32;2205:33;2164:32;2205:33;:::i;:::-;1865:456;;2257:7;;-1:-1:-1;;;2311:2:1;2296:18;;;;2283:32;;1865:456::o;2947:247::-;3006:6;3059:2;3047:9;3038:7;3034:23;3030:32;3027:52;;;3075:1;3072;3065:12;3027:52;3114:9;3101:23;3133:31;3158:5;3133:31;:::i;3199:388::-;3267:6;3275;3328:2;3316:9;3307:7;3303:23;3299:32;3296:52;;;3344:1;3341;3334:12;3296:52;3383:9;3370:23;3402:31;3427:5;3402:31;:::i;:::-;3452:5;-1:-1:-1;3509:2:1;3494:18;;3481:32;3522:33;3481:32;3522:33;:::i;:::-;3574:7;3564:17;;;3199:388;;;;;:::o;4003:356::-;4205:2;4187:21;;;4224:18;;;4217:30;4283:34;4278:2;4263:18;;4256:62;4350:2;4335:18;;4003:356::o;7973:127::-;8034:10;8029:3;8025:20;8022:1;8015:31;8065:4;8062:1;8055:15;8089:4;8086:1;8079:15;8105:125;8145:4;8173:1;8170;8167:8;8164:34;;;8178:18;;:::i;:::-;-1:-1:-1;8215:9:1;;8105:125::o;8367:127::-;8428:10;8423:3;8419:20;8416:1;8409:31;8459:4;8456:1;8449:15;8483:4;8480:1;8473:15;8499:251;8569:6;8622:2;8610:9;8601:7;8597:23;8593:32;8590:52;;;8638:1;8635;8628:12;8590:52;8670:9;8664:16;8689:31;8714:5;8689:31;:::i;8755:461::-;8808:3;8846:5;8840:12;8873:6;8868:3;8861:19;8899:4;8928:2;8923:3;8919:12;8912:19;;8965:2;8958:5;8954:14;8986:1;8996:195;9010:6;9007:1;9004:13;8996:195;;;9075:13;;-1:-1:-1;;;;;9071:39:1;9059:52;;9131:12;;;;9166:15;;;;9107:1;9025:9;8996:195;;;-1:-1:-1;9207:3:1;;8755:461;-1:-1:-1;;;;;8755:461:1:o;9221:582::-;9520:6;9509:9;9502:25;9563:6;9558:2;9547:9;9543:18;9536:34;9606:3;9601:2;9590:9;9586:18;9579:31;9483:4;9627:57;9679:3;9668:9;9664:19;9656:6;9627:57;:::i;:::-;-1:-1:-1;;;;;9720:32:1;;;;9715:2;9700:18;;9693:60;-1:-1:-1;9784:3:1;9769:19;9762:35;9619:65;9221:582;-1:-1:-1;;;9221:582:1:o;9808:128::-;9848:3;9879:1;9875:6;9872:1;9869:13;9866:39;;;9885:18;;:::i;:::-;-1:-1:-1;9921:9:1;;9808:128::o;10297:217::-;10337:1;10363;10353:132;;10407:10;10402:3;10398:20;10395:1;10388:31;10442:4;10439:1;10432:15;10470:4;10467:1;10460:15;10353:132;-1:-1:-1;10499:9:1;;10297:217::o;10519:168::-;10559:7;10625:1;10621;10617:6;10613:14;10610:1;10607:21;10602:1;10595:9;10588:17;10584:45;10581:71;;;10632:18;;:::i;:::-;-1:-1:-1;10672:9:1;;10519:168::o;11714:306::-;11802:6;11810;11818;11871:2;11859:9;11850:7;11846:23;11842:32;11839:52;;;11887:1;11884;11877:12;11839:52;11916:9;11910:16;11900:26;;11966:2;11955:9;11951:18;11945:25;11935:35;;12010:2;11999:9;11995:18;11989:25;11979:35;;11714:306;;;;;:::o;12025:518::-;12304:6;12293:9;12286:25;12347:3;12342:2;12331:9;12327:18;12320:31;12267:4;12368:57;12420:3;12409:9;12405:19;12397:6;12368:57;:::i;:::-;-1:-1:-1;;;;;12461:32:1;;;;12456:2;12441:18;;12434:60;-1:-1:-1;12525:2:1;12510:18;12503:34;12360:65;12025:518;-1:-1:-1;;12025:518:1:o

Swarm Source

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