ETH Price: $2,632.05 (+0.78%)

Token

AiOL (AiOL)
 

Overview

Max Total Supply

100,000,000 AiOL

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
91,805.335887640664893905 AiOL

Value
$0.00
0x60066dc51fbda0f5f79637773bd2a25ff8ba9d11
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:
AiOL

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-21
*/

// SPDX-License-Identifier: UNLICENSED


//Website: AiOL.live
//Slogan: YOU'RE ONLINE


pragma solidity 0.8.18;

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 ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}

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

interface IDEXRouter {
    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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract AiOL is ERC20, Ownable {
    using SafeMath for uint256;

     //events
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event SetMaxWalletExempt(address _address, bool _bool);
    event SellFeeChanged(uint256 _marketingFee);
    event BuyFeeChanged(uint256 _marketingFee);
    event TransferFeeChanged(uint256 _transferFee);
    event SetFeeReceiver(address _marketingReceiver);
    event ChangedSwapBack(bool _enabled, uint256 _amount);
    event SetFeeExempt(address _addr, bool _value);
    event InitialDistributionFinished(bool _value);
    event ChangedMaxWallet(uint256 _maxWallet);

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string constant private _name = "AiOL";
    string constant private _symbol = "AiOL";
    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 100000000* 10**_decimals;

    uint256 public _maxWalletAmount = _totalSupply *1 / 100;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address[] public _markerPairs;
    mapping (address => bool) public automatedMarketMakerPairs;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isMaxWalletExempt;

    //Snipers
    uint256 private deadblocks = 32; 
    uint256 public launchBlock;
    uint256 private latestSniperBlock;


    //transfer fee
    uint256 private transferFee = 0;
    uint256 constant public maxFee = 10;

    //totalFees
    uint256 private totalBuyFee = 5;
    uint256 private totalSellFee = 5;

    uint256 constant private feeDenominator  = 100;

    address private marketingFeeReceiver = 0x9e3954a9D5a0524b8D1DF86A223502fa712a8410 ;


    IDEXRouter public router;
    address public pair;

    bool public tradingEnabled = false;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 5000;

    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        setAutomatedMarketMakerPair(pair, true);
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isMaxWalletExempt[msg.sender] = true;
        
        isFeeExempt[address(this)] = true; 
        isMaxWalletExempt[address(this)] = true;

        isFeeExempt[marketingFeeReceiver] = true;
        isMaxWalletExempt[marketingFeeReceiver] = true;

        isMaxWalletExempt[pair] = true; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingEnabled,"Trading not open, yet");
        }

        if(shouldSwapBack()){ swapBack(); }


        uint256 amountReceived = amount; 

        if(automatedMarketMakerPairs[sender]) { //buy
            if(!isFeeExempt[recipient]) {
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                amountReceived = takeBuyFee(sender, amount);
            }

        } else if(automatedMarketMakerPairs[recipient]) { //sell
            if(!isFeeExempt[sender]) {
                amountReceived = takeSellFee(sender, amount);
            }
        } else {	
            if (!isFeeExempt[sender]) {	
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                amountReceived = takeTransferFee(sender, amount);	
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amountReceived);
        

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function getSniperFee() internal view returns(uint256) {
        uint256 blocksAfterLaunch = block.number.sub(launchBlock);
        uint256 sniperTax;
        if(blocksAfterLaunch < 8){
            sniperTax = 44;
        }
        else if(blocksAfterLaunch >= 8 && blocksAfterLaunch < 16) {
            sniperTax = 33;
        }
        else if(blocksAfterLaunch >= 16 && blocksAfterLaunch < 24) {
            sniperTax = 22;
        }
        else {
            sniperTax = 11;
        }
        return sniperTax;
    }

    // Fees
    function takeBuyFee(address sender, uint256 amount) internal returns (uint256){
        uint256 _realFee = totalBuyFee;
        if (block.number < latestSniperBlock) {
                _realFee = getSniperFee();
            }

        uint256 feeAmount = amount.mul(_realFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function takeSellFee(address sender, uint256 amount) internal returns (uint256){
        uint256 _realFee = totalSellFee;
        if (block.number < latestSniperBlock) {
                _realFee = getSniperFee();
            }
        
        uint256 feeAmount = amount.mul(_realFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
            
    }

    function takeTransferFee(address sender, uint256 amount) internal returns (uint256){
        uint256 feeAmount = amount.mul(transferFee).div(feeDenominator);
            
        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);	
            emit Transfer(sender, address(this), feeAmount); 
        }
            	
        return amount.sub(feeAmount);	
    }    

    function shouldSwapBack() internal view returns (bool) {
        return
        !automatedMarketMakerPairs[msg.sender]
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner returns (bool) {
        return ERC20(tokenAddress).transfer(msg.sender, amount);
    }

    // switch Trading
    function enableTrading() external onlyOwner {
        require(tradingEnabled == false, "Can only enable once");
        tradingEnabled = true;
        launchBlock = block.number;
        latestSniperBlock = block.number.add(deadblocks);

        emit InitialDistributionFinished(true);
    }

    function swapBack() internal swapping {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _balances[address(this)],
            0,
            path,
            marketingFeeReceiver,
            block.timestamp
        );
    
    }

    // Admin Functions
    function setMaxWallet(uint256 amount) external onlyOwner {
        require(amount > _totalSupply / 10000, "Can't limit trading");
        _maxWalletAmount = amount;

        emit ChangedMaxWallet(amount);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;

        emit SetFeeExempt(holder, exempt);
    }

    function setIsMaxWalletExempt(address holder, bool exempt) external onlyOwner {
        isMaxWalletExempt[holder] = exempt;

        emit SetMaxWalletExempt(holder, exempt);
    }

    function setBuyFee(uint256 _totalBuyFee) external onlyOwner {
        totalBuyFee = _totalBuyFee;
        require(totalBuyFee <= maxFee, "Fees cannot be more than 10%");

        emit BuyFeeChanged(totalBuyFee);
    }

    function setSellFee(uint256 _totalSellFee) external onlyOwner {
        totalSellFee = _totalSellFee;
        require(totalSellFee <= maxFee, "Fees cannot be more than 10%");

        emit SellFeeChanged(totalSellFee);
    }

    function setTransferFee(uint256 _transferFee) external onlyOwner {	
        transferFee = _transferFee;	
        require(transferFee <= maxFee, "Fees cannot be higher than 10%");	

	    emit TransferFeeChanged(_transferFee);	
    }


    function setMarketingFeeReceivers(address _marketingFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0), "Zero Address validation" );
        marketingFeeReceiver = _marketingFeeReceiver;

        emit SetFeeReceiver(_marketingFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;

        emit ChangedSwapBack(_enabled, _amount);
    }

    function setAutomatedMarketMakerPair(address _pair, bool _value) public onlyOwner {
            require(automatedMarketMakerPairs[_pair] != _value, "Value already set");

            automatedMarketMakerPairs[_pair] = _value;

            if(_value){
                _markerPairs.push(_pair);
            }else{
                require(_markerPairs.length > 1, "Required 1 pair");
                for (uint256 i = 0; i < _markerPairs.length; i++) {
                    if (_markerPairs[i] == _pair) {
                        _markerPairs[i] = _markerPairs[_markerPairs.length - 1];
                        _markerPairs.pop();
                        break;
                    }
                }
            }

            emit SetAutomatedMarketMakerPair(_pair, _value);
        }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

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":"_marketingFee","type":"uint256"}],"name":"BuyFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"ChangedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ChangedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"InitialDistributionFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"SellFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketingReceiver","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"SetMaxWalletExempt","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"TransferFeeChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalBuyFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setMarketingFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalSellFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a620007d1565b62000042906305f5e100620007e9565b60055560646005546001620000589190620007e9565b62000064919062000803565b6006556020600d556000601055600560118190556012819055601380546001600160a01b031916739e3954a9d5a0524b8d1df86a223502fa712a84101790556015805461ffff60a01b1916600160a81b1790555461138890620000c9906001620007e9565b620000d5919062000803565b601655348015620000e557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b2919062000826565b600280546001600160a01b0319166001600160a01b039283161790556014546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000237919062000826565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af919062000826565b601580546001600160a01b0319166001600160a01b03929092169182179055620002db906001620003d7565b3060008181526008602090815260408083206014546001600160a01b039081168552908352818420600019905533808552600b8085528386208054600160ff199182168117909255600c8088528689208054831684179055988852828752858820805482168317905588875285882080548216831790556013805486168952928752858820805482168317905591548416875296855283862080548216881790556015549092168552828520805490921690951790556005548484526007835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620008af565b6000546001600160a01b03163314620004375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0382166000908152600a602052604090205481151560ff9091161515036200049d5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016200042e565b6001600160a01b0382166000908152600a60205260409020805460ff191682158015919091179091556200051c57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03841617905562000680565b600954600110620005625760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b60448201526064016200042e565b60005b6009548110156200067e57826001600160a01b03166009828154811062000590576200059062000851565b6000918252602090912001546001600160a01b031603620006695760098054620005bd9060019062000867565b81548110620005d057620005d062000851565b600091825260209091200154600980546001600160a01b039092169183908110620005ff57620005ff62000851565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806200064157620006416200087d565b600082815260209020810160001990810180546001600160a01b03191690550190556200067e565b80620006758162000893565b91505062000565565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000713578160001904821115620006f757620006f7620006bc565b808516156200070557918102915b93841c9390800290620006d7565b509250929050565b6000826200072c57506001620007cb565b816200073b57506000620007cb565b81600181146200075457600281146200075f576200077f565b6001915050620007cb565b60ff841115620007735762000773620006bc565b50506001821b620007cb565b5060208310610133831016604e8410600b8410161715620007a4575081810a620007cb565b620007b08383620006d2565b8060001904821115620007c757620007c7620006bc565b0290505b92915050565b6000620007e260ff8416836200071b565b9392505050565b8082028115828204841417620007cb57620007cb620006bc565b6000826200082157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200083957600080fd5b81516001600160a01b0381168114620007e257600080fd5b634e487b7160e01b600052603260045260246000fd5b81810381811115620007cb57620007cb620006bc565b634e487b7160e01b600052603160045260246000fd5b600060018201620008a857620008a8620006bc565b5060010190565b6120c280620008bf6000396000f3fe6080604052600436106102345760003560e01c8063715018a61161012e578063a9059cbb116100ab578063df20fd491161006f578063df20fd49146106b2578063e1d5584c146106d2578063f2fde38b146106f2578063f35ca36514610712578063f887ea401461073257600080fd5b8063a9059cbb146105e6578063b62496f514610606578063c04a78ad14610636578063d00efb2f14610656578063dd62ed3e1461066c57600080fd5b80638da5cb5b116100f25780638da5cb5b146105685780638f02bb5b1461058657806395d89b411461027e5780639a7a23d6146105a6578063a8aa1b31146105c657600080fd5b8063715018a6146104cc578063893d20e8146104e15780638a8c523c146105135780638b4cee08146105285780638cd4426d1461054857600080fd5b8063313ce567116101bc5780635d0044ca116101805780635d0044ca1461041f578063658d4b7f1461043f5780636c0a24eb1461045f5780636ddd17131461047557806370a082311461049657600080fd5b8063313ce5671461037d578063364333f4146103995780633f4218e0146103ae5780634ada218b146103de578063571ac8b0146103ff57600080fd5b80630bd11f8a116102035780630bd11f8a146102e15780630cc835a31461031157806318160ddd1461033357806323b872dd146103485780632b112e491461036857600080fd5b806301f59d16146102405780630445b6671461026857806306fdde031461027e578063095ea7b3146102b157600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610255600a81565b6040519081526020015b60405180910390f35b34801561027457600080fd5b5061025560165481565b34801561028a57600080fd5b506040805180820182526004815263105a53d360e21b6020820152905161025f9190611d55565b3480156102bd57600080fd5b506102d16102cc366004611dbf565b610752565b604051901515815260200161025f565b3480156102ed57600080fd5b506102d16102fc366004611de9565b600c6020526000908152604090205460ff1681565b34801561031d57600080fd5b5061033161032c366004611e04565b6107bf565b005b34801561033f57600080fd5b50600554610255565b34801561035457600080fd5b506102d1610363366004611e1d565b610886565b34801561037457600080fd5b50610255610948565b34801561038957600080fd5b506040516012815260200161025f565b3480156103a557600080fd5b5061033161099a565b3480156103ba57600080fd5b506102d16103c9366004611de9565b600b6020526000908152604090205460ff1681565b3480156103ea57600080fd5b506015546102d190600160a01b900460ff1681565b34801561040b57600080fd5b506102d161041a366004611de9565b6109f3565b34801561042b57600080fd5b5061033161043a366004611e04565b610a01565b34801561044b57600080fd5b5061033161045a366004611e67565b610ab4565b34801561046b57600080fd5b5061025560065481565b34801561048157600080fd5b506015546102d190600160a81b900460ff1681565b3480156104a257600080fd5b506102556104b1366004611de9565b6001600160a01b031660009081526007602052604090205490565b3480156104d857600080fd5b50610331610b42565b3480156104ed57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161025f565b34801561051f57600080fd5b50610331610bb6565b34801561053457600080fd5b50610331610543366004611e04565b610c90565b34801561055457600080fd5b506102d1610563366004611dbf565b610d43565b34801561057457600080fd5b506000546001600160a01b03166104fb565b34801561059257600080fd5b506103316105a1366004611e04565b610ddf565b3480156105b257600080fd5b506103316105c1366004611e67565b610e8f565b3480156105d257600080fd5b506015546104fb906001600160a01b031681565b3480156105f257600080fd5b506102d1610601366004611dbf565b611124565b34801561061257600080fd5b506102d1610621366004611de9565b600a6020526000908152604090205460ff1681565b34801561064257600080fd5b50610331610651366004611e67565b611131565b34801561066257600080fd5b50610255600e5481565b34801561067857600080fd5b50610255610687366004611e9e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156106be57600080fd5b506103316106cd366004611ed1565b6111b7565b3480156106de57600080fd5b506104fb6106ed366004611e04565b611239565b3480156106fe57600080fd5b5061033161070d366004611de9565b611263565b34801561071e57600080fd5b5061033161072d366004611de9565b61134d565b34801561073e57600080fd5b506014546104fb906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ad9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016107e990611eef565b60405180910390fd5b6011819055600a8111156108485760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203130250000000060448201526064016107e9565b7f80c31f887247e591651a8a4aaefe05eb3e6c0068e3bbe6e19dfc4852dff34e9f60115460405161087b91815260200190565b60405180910390a150565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610933576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461090e91849061141b565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61093e848484611455565b90505b9392505050565b6004546001600160a01b0316600090815260076020526040812054610995906003546001600160a01b031660009081526007602052604090205461098f90600554906117c4565b906117c4565b905090565b6000546001600160a01b031633146109c45760405162461bcd60e51b81526004016107e990611eef565b60405133904780156108fc02916000818181858888f193505050501580156109f0573d6000803e3d6000fd5b50565b60006107b982600019610752565b6000546001600160a01b03163314610a2b5760405162461bcd60e51b81526004016107e990611eef565b612710600554610a3b9190611f3a565b8111610a7f5760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b60448201526064016107e9565b60068190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b9060200161087b565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d91015b60405180910390a15050565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b81526004016107e990611eef565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016107e990611eef565b601554600160a01b900460ff1615610c315760405162461bcd60e51b815260206004820152601460248201527343616e206f6e6c7920656e61626c65206f6e636560601b60448201526064016107e9565b6015805460ff60a01b1916600160a01b17905543600e819055600d54610c579190611806565b600f55604051600181527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df9060200160405180910390a1565b6000546001600160a01b03163314610cba5760405162461bcd60e51b81526004016107e990611eef565b6012819055600a811115610d105760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203130250000000060448201526064016107e9565b7f18fd0e62c6c2ddcb9f523a495dfb8337adc6d1c2cfac842b112d49d7e69a103160125460405161087b91815260200190565b600080546001600160a01b03163314610d6e5760405162461bcd60e51b81526004016107e990611eef565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109419190611f5c565b6000546001600160a01b03163314610e095760405162461bcd60e51b81526004016107e990611eef565b6010819055600a811115610e5f5760405162461bcd60e51b815260206004820152601e60248201527f466565732063616e6e6f7420626520686967686572207468616e20313025000060448201526064016107e9565b6040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f49060200161087b565b6000546001600160a01b03163314610eb95760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610f1d5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016107e9565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155610f9a57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384161790556110e8565b600954600110610fde5760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b60448201526064016107e9565b60005b6009548110156110e657826001600160a01b03166009828154811061100857611008611f79565b6000918252602090912001546001600160a01b0316036110d4576009805461103290600190611f8f565b8154811061104257611042611f79565b600091825260209091200154600980546001600160a01b03909216918390811061106e5761106e611f79565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806110ad576110ad611fa2565b600082815260209020810160001990810180546001600160a01b03191690550190556110e6565b806110de81611fb8565b915050610fe1565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000610941338484611455565b6000546001600160a01b0316331461115b5760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610b36565b6000546001600160a01b031633146111e15760405162461bcd60e51b81526004016107e990611eef565b6015805460ff60a81b1916600160a81b84151590810291909117909155601682905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610b36565b6009818154811061124957600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b0316331461128d5760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0381166112f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113775760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0381166113cd5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e00000000000000000060448201526064016107e9565b601380546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f9060200161087b565b6000818484111561143f5760405162461bcd60e51b81526004016107e99190611d55565b50600061144c8486611f8f565b95945050505050565b60175460009060ff16156114755761146e848484611865565b9050610941565b6001600160a01b0384166000908152600b602052604090205460ff161580156114b757506001600160a01b0383166000908152600b602052604090205460ff16155b1561150d57601554600160a01b900460ff1661150d5760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b60448201526064016107e9565b611515611939565b1561152257611522611991565b6001600160a01b0384166000908152600a6020526040902054829060ff161561160e576001600160a01b0384166000908152600b602052604090205460ff16611609576006546001600160a01b03851660009081526007602052604090205461158b9085611806565b1115806115b057506001600160a01b0384166000908152600c602052604090205460ff165b6115fc5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107e9565b6116068584611aa3565b90505b61171d565b6001600160a01b0384166000908152600a602052604090205460ff1615611659576001600160a01b0385166000908152600b602052604090205460ff16611609576116068584611b44565b6001600160a01b0385166000908152600b602052604090205460ff1661171d576006546001600160a01b03851660009081526007602052604090205461169f9085611806565b1115806116c457506001600160a01b0384166000908152600c602052604090205460ff165b6117105760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107e9565b61171a8584611b5d565b90505b6001600160a01b03851660009081526007602052604090205461174090846117c4565b6001600160a01b03808716600090815260076020526040808220939093559086168152205461176f9082611806565b6001600160a01b03808616600081815260076020526040908190209390935591519087169060008051602061206d833981519152906117b19085815260200190565b60405180910390a3506001949350505050565b600061094183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061141b565b6000806118138385611fd1565b9050838110156109415760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107e9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546118b691849061141b565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546118e59083611806565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061206d833981519152906119279086815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff1615801561195c575060175460ff16155b80156119715750601554600160a81b900460ff165b801561099557505060165430600090815260076020526040902054101590565b6017805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106119d3576119d3611f79565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0457611a04611f79565b6001600160a01b039283166020918202929092018101919091526014543060009081526007909252604080832054601354915163791ac94760e01b81529285169463791ac94794611a649492939092889291909116904290600401611fe4565b600060405180830381600087803b158015611a7e57600080fd5b505af1158015611a92573d6000803e3d6000fd5b50506017805460ff19169055505050565b601154600f5460009190431015611abf57611abc611bf6565b90505b6000611ad66064611ad08685611c68565b90611cea565b30600090815260076020526040902054909150611af39082611806565b30600081815260076020526040908190209290925590516001600160a01b0387169060008051602061206d83398151915290611b329085815260200190565b60405180910390a361144c84826117c4565b601254600f5460009190431015611abf57611abc611bf6565b600080611b7a6064611ad060105486611c6890919063ffffffff16565b90508015611be45730600090815260076020526040902054611b9c9082611806565b30600081815260076020526040908190209290925590516001600160a01b0386169060008051602061206d83398151915290611bdb9085815260200190565b60405180910390a35b611bee83826117c4565b949350505050565b600080611c0e600e54436117c490919063ffffffff16565b905060006008821015611c235750602c6107b9565b60088210158015611c345750601082105b15611c41575060216107b9565b60108210158015611c525750601882105b15611c5f575060166107b9565b50600b92915050565b600082600003611c7a575060006107b9565b6000611c868385612055565b905082611c938583611f3a565b146109415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107e9565b600061094183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611d485760405162461bcd60e51b81526004016107e99190611d55565b50600061144c8486611f3a565b600060208083528351808285015260005b81811015611d8257858101830151858201604001528201611d66565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611dba57600080fd5b919050565b60008060408385031215611dd257600080fd5b611ddb83611da3565b946020939093013593505050565b600060208284031215611dfb57600080fd5b61094182611da3565b600060208284031215611e1657600080fd5b5035919050565b600080600060608486031215611e3257600080fd5b611e3b84611da3565b9250611e4960208501611da3565b9150604084013590509250925092565b80151581146109f057600080fd5b60008060408385031215611e7a57600080fd5b611e8383611da3565b91506020830135611e9381611e59565b809150509250929050565b60008060408385031215611eb157600080fd5b611eba83611da3565b9150611ec860208401611da3565b90509250929050565b60008060408385031215611ee457600080fd5b8235611ddb81611e59565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611f5757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f6e57600080fd5b815161094181611e59565b634e487b7160e01b600052603260045260246000fd5b818103818111156107b9576107b9611f24565b634e487b7160e01b600052603160045260246000fd5b600060018201611fca57611fca611f24565b5060010190565b808201808211156107b9576107b9611f24565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120345784516001600160a01b03168352938301939183019160010161200f565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176107b9576107b9611f2456feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122020402bf705018e2a4889b9be3b8def3394167c26e3d4ccd036946eac15841a6a64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063715018a61161012e578063a9059cbb116100ab578063df20fd491161006f578063df20fd49146106b2578063e1d5584c146106d2578063f2fde38b146106f2578063f35ca36514610712578063f887ea401461073257600080fd5b8063a9059cbb146105e6578063b62496f514610606578063c04a78ad14610636578063d00efb2f14610656578063dd62ed3e1461066c57600080fd5b80638da5cb5b116100f25780638da5cb5b146105685780638f02bb5b1461058657806395d89b411461027e5780639a7a23d6146105a6578063a8aa1b31146105c657600080fd5b8063715018a6146104cc578063893d20e8146104e15780638a8c523c146105135780638b4cee08146105285780638cd4426d1461054857600080fd5b8063313ce567116101bc5780635d0044ca116101805780635d0044ca1461041f578063658d4b7f1461043f5780636c0a24eb1461045f5780636ddd17131461047557806370a082311461049657600080fd5b8063313ce5671461037d578063364333f4146103995780633f4218e0146103ae5780634ada218b146103de578063571ac8b0146103ff57600080fd5b80630bd11f8a116102035780630bd11f8a146102e15780630cc835a31461031157806318160ddd1461033357806323b872dd146103485780632b112e491461036857600080fd5b806301f59d16146102405780630445b6671461026857806306fdde031461027e578063095ea7b3146102b157600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610255600a81565b6040519081526020015b60405180910390f35b34801561027457600080fd5b5061025560165481565b34801561028a57600080fd5b506040805180820182526004815263105a53d360e21b6020820152905161025f9190611d55565b3480156102bd57600080fd5b506102d16102cc366004611dbf565b610752565b604051901515815260200161025f565b3480156102ed57600080fd5b506102d16102fc366004611de9565b600c6020526000908152604090205460ff1681565b34801561031d57600080fd5b5061033161032c366004611e04565b6107bf565b005b34801561033f57600080fd5b50600554610255565b34801561035457600080fd5b506102d1610363366004611e1d565b610886565b34801561037457600080fd5b50610255610948565b34801561038957600080fd5b506040516012815260200161025f565b3480156103a557600080fd5b5061033161099a565b3480156103ba57600080fd5b506102d16103c9366004611de9565b600b6020526000908152604090205460ff1681565b3480156103ea57600080fd5b506015546102d190600160a01b900460ff1681565b34801561040b57600080fd5b506102d161041a366004611de9565b6109f3565b34801561042b57600080fd5b5061033161043a366004611e04565b610a01565b34801561044b57600080fd5b5061033161045a366004611e67565b610ab4565b34801561046b57600080fd5b5061025560065481565b34801561048157600080fd5b506015546102d190600160a81b900460ff1681565b3480156104a257600080fd5b506102556104b1366004611de9565b6001600160a01b031660009081526007602052604090205490565b3480156104d857600080fd5b50610331610b42565b3480156104ed57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161025f565b34801561051f57600080fd5b50610331610bb6565b34801561053457600080fd5b50610331610543366004611e04565b610c90565b34801561055457600080fd5b506102d1610563366004611dbf565b610d43565b34801561057457600080fd5b506000546001600160a01b03166104fb565b34801561059257600080fd5b506103316105a1366004611e04565b610ddf565b3480156105b257600080fd5b506103316105c1366004611e67565b610e8f565b3480156105d257600080fd5b506015546104fb906001600160a01b031681565b3480156105f257600080fd5b506102d1610601366004611dbf565b611124565b34801561061257600080fd5b506102d1610621366004611de9565b600a6020526000908152604090205460ff1681565b34801561064257600080fd5b50610331610651366004611e67565b611131565b34801561066257600080fd5b50610255600e5481565b34801561067857600080fd5b50610255610687366004611e9e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156106be57600080fd5b506103316106cd366004611ed1565b6111b7565b3480156106de57600080fd5b506104fb6106ed366004611e04565b611239565b3480156106fe57600080fd5b5061033161070d366004611de9565b611263565b34801561071e57600080fd5b5061033161072d366004611de9565b61134d565b34801561073e57600080fd5b506014546104fb906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ad9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016107e990611eef565b60405180910390fd5b6011819055600a8111156108485760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203130250000000060448201526064016107e9565b7f80c31f887247e591651a8a4aaefe05eb3e6c0068e3bbe6e19dfc4852dff34e9f60115460405161087b91815260200190565b60405180910390a150565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610933576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461090e91849061141b565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61093e848484611455565b90505b9392505050565b6004546001600160a01b0316600090815260076020526040812054610995906003546001600160a01b031660009081526007602052604090205461098f90600554906117c4565b906117c4565b905090565b6000546001600160a01b031633146109c45760405162461bcd60e51b81526004016107e990611eef565b60405133904780156108fc02916000818181858888f193505050501580156109f0573d6000803e3d6000fd5b50565b60006107b982600019610752565b6000546001600160a01b03163314610a2b5760405162461bcd60e51b81526004016107e990611eef565b612710600554610a3b9190611f3a565b8111610a7f5760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b60448201526064016107e9565b60068190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b9060200161087b565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d91015b60405180910390a15050565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b81526004016107e990611eef565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016107e990611eef565b601554600160a01b900460ff1615610c315760405162461bcd60e51b815260206004820152601460248201527343616e206f6e6c7920656e61626c65206f6e636560601b60448201526064016107e9565b6015805460ff60a01b1916600160a01b17905543600e819055600d54610c579190611806565b600f55604051600181527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df9060200160405180910390a1565b6000546001600160a01b03163314610cba5760405162461bcd60e51b81526004016107e990611eef565b6012819055600a811115610d105760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203130250000000060448201526064016107e9565b7f18fd0e62c6c2ddcb9f523a495dfb8337adc6d1c2cfac842b112d49d7e69a103160125460405161087b91815260200190565b600080546001600160a01b03163314610d6e5760405162461bcd60e51b81526004016107e990611eef565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109419190611f5c565b6000546001600160a01b03163314610e095760405162461bcd60e51b81526004016107e990611eef565b6010819055600a811115610e5f5760405162461bcd60e51b815260206004820152601e60248201527f466565732063616e6e6f7420626520686967686572207468616e20313025000060448201526064016107e9565b6040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f49060200161087b565b6000546001600160a01b03163314610eb95760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610f1d5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016107e9565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155610f9a57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384161790556110e8565b600954600110610fde5760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b60448201526064016107e9565b60005b6009548110156110e657826001600160a01b03166009828154811061100857611008611f79565b6000918252602090912001546001600160a01b0316036110d4576009805461103290600190611f8f565b8154811061104257611042611f79565b600091825260209091200154600980546001600160a01b03909216918390811061106e5761106e611f79565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806110ad576110ad611fa2565b600082815260209020810160001990810180546001600160a01b03191690550190556110e6565b806110de81611fb8565b915050610fe1565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000610941338484611455565b6000546001600160a01b0316331461115b5760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610b36565b6000546001600160a01b031633146111e15760405162461bcd60e51b81526004016107e990611eef565b6015805460ff60a81b1916600160a81b84151590810291909117909155601682905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610b36565b6009818154811061124957600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b0316331461128d5760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0381166112f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113775760405162461bcd60e51b81526004016107e990611eef565b6001600160a01b0381166113cd5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e00000000000000000060448201526064016107e9565b601380546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f9060200161087b565b6000818484111561143f5760405162461bcd60e51b81526004016107e99190611d55565b50600061144c8486611f8f565b95945050505050565b60175460009060ff16156114755761146e848484611865565b9050610941565b6001600160a01b0384166000908152600b602052604090205460ff161580156114b757506001600160a01b0383166000908152600b602052604090205460ff16155b1561150d57601554600160a01b900460ff1661150d5760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b60448201526064016107e9565b611515611939565b1561152257611522611991565b6001600160a01b0384166000908152600a6020526040902054829060ff161561160e576001600160a01b0384166000908152600b602052604090205460ff16611609576006546001600160a01b03851660009081526007602052604090205461158b9085611806565b1115806115b057506001600160a01b0384166000908152600c602052604090205460ff165b6115fc5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107e9565b6116068584611aa3565b90505b61171d565b6001600160a01b0384166000908152600a602052604090205460ff1615611659576001600160a01b0385166000908152600b602052604090205460ff16611609576116068584611b44565b6001600160a01b0385166000908152600b602052604090205460ff1661171d576006546001600160a01b03851660009081526007602052604090205461169f9085611806565b1115806116c457506001600160a01b0384166000908152600c602052604090205460ff165b6117105760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107e9565b61171a8584611b5d565b90505b6001600160a01b03851660009081526007602052604090205461174090846117c4565b6001600160a01b03808716600090815260076020526040808220939093559086168152205461176f9082611806565b6001600160a01b03808616600081815260076020526040908190209390935591519087169060008051602061206d833981519152906117b19085815260200190565b60405180910390a3506001949350505050565b600061094183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061141b565b6000806118138385611fd1565b9050838110156109415760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107e9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546118b691849061141b565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546118e59083611806565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061206d833981519152906119279086815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff1615801561195c575060175460ff16155b80156119715750601554600160a81b900460ff165b801561099557505060165430600090815260076020526040902054101590565b6017805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106119d3576119d3611f79565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0457611a04611f79565b6001600160a01b039283166020918202929092018101919091526014543060009081526007909252604080832054601354915163791ac94760e01b81529285169463791ac94794611a649492939092889291909116904290600401611fe4565b600060405180830381600087803b158015611a7e57600080fd5b505af1158015611a92573d6000803e3d6000fd5b50506017805460ff19169055505050565b601154600f5460009190431015611abf57611abc611bf6565b90505b6000611ad66064611ad08685611c68565b90611cea565b30600090815260076020526040902054909150611af39082611806565b30600081815260076020526040908190209290925590516001600160a01b0387169060008051602061206d83398151915290611b329085815260200190565b60405180910390a361144c84826117c4565b601254600f5460009190431015611abf57611abc611bf6565b600080611b7a6064611ad060105486611c6890919063ffffffff16565b90508015611be45730600090815260076020526040902054611b9c9082611806565b30600081815260076020526040908190209290925590516001600160a01b0386169060008051602061206d83398151915290611bdb9085815260200190565b60405180910390a35b611bee83826117c4565b949350505050565b600080611c0e600e54436117c490919063ffffffff16565b905060006008821015611c235750602c6107b9565b60088210158015611c345750601082105b15611c41575060216107b9565b60108210158015611c525750601882105b15611c5f575060166107b9565b50600b92915050565b600082600003611c7a575060006107b9565b6000611c868385612055565b905082611c938583611f3a565b146109415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107e9565b600061094183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611d485760405162461bcd60e51b81526004016107e99190611d55565b50600061144c8486611f3a565b600060208083528351808285015260005b81811015611d8257858101830151858201604001528201611d66565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611dba57600080fd5b919050565b60008060408385031215611dd257600080fd5b611ddb83611da3565b946020939093013593505050565b600060208284031215611dfb57600080fd5b61094182611da3565b600060208284031215611e1657600080fd5b5035919050565b600080600060608486031215611e3257600080fd5b611e3b84611da3565b9250611e4960208501611da3565b9150604084013590509250925092565b80151581146109f057600080fd5b60008060408385031215611e7a57600080fd5b611e8383611da3565b91506020830135611e9381611e59565b809150509250929050565b60008060408385031215611eb157600080fd5b611eba83611da3565b9150611ec860208401611da3565b90509250929050565b60008060408385031215611ee457600080fd5b8235611ddb81611e59565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611f5757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f6e57600080fd5b815161094181611e59565b634e487b7160e01b600052603260045260246000fd5b818103818111156107b9576107b9611f24565b634e487b7160e01b600052603160045260246000fd5b600060018201611fca57611fca611f24565b5060010190565b808201808211156107b9576107b9611f24565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120345784516001600160a01b03168352938301939183019160010161200f565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176107b9576107b9611f2456feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122020402bf705018e2a4889b9be3b8def3394167c26e3d4ccd036946eac15841a6a64736f6c63430008120033

Deployed Bytecode Sourcemap

4797:12490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6425:35;;;;;;;;;;;;6458:2;6425:35;;;;;160:25:1;;;148:2;133:18;6425:35:0;;;;;;;;6850:54;;;;;;;;;;;;;;;;8114:80;;;;;;;;;;-1:-1:-1;8186:5:0;;;;;;;;;;;-1:-1:-1;;;8186:5:0;;;;8114:80;;;;8186:5;8114:80;:::i;8538:216::-;;;;;;;;;;-1:-1:-1;8538:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;8538:216:0;1186:187:1;6177:50:0;;;;;;;;;;-1:-1:-1;6177:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15104:222;;;;;;;;;;-1:-1:-1;15104:222:0;;;;;:::i;:::-;;:::i;:::-;;7844:88;;;;;;;;;;-1:-1:-1;7917:12:0;;7844:88;;9056:370;;;;;;;;;;-1:-1:-1;9056:370:0;;;;;:::i;:::-;;:::i;17138:142::-;;;;;;;;;;;;;:::i;7938:80::-;;;;;;;;;;-1:-1:-1;7938:80:0;;5753:2;2229:36:1;;2217:2;2202:18;7938:80:0;2087:184:1;13471:118:0;;;;;;;;;;;;;:::i;6126:44::-;;;;;;;;;;-1:-1:-1;6126:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6772:34;;;;;;;;;;-1:-1:-1;6772:34:0;;;;-1:-1:-1;;;6772:34:0;;;;;;8762:122;;;;;;;;;;-1:-1:-1;8762:122:0;;;;;:::i;:::-;;:::i;14517:215::-;;;;;;;;;;-1:-1:-1;14517:215:0;;;;;:::i;:::-;;:::i;14740:165::-;;;;;;;;;;-1:-1:-1;14740:165:0;;;;;:::i;:::-;;:::i;5828:55::-;;;;;;;;;;;;;;;;6813:30;;;;;;;;;;-1:-1:-1;6813:30:0;;;;-1:-1:-1;;;6813:30:0;;;;;;8286:105;;;;;;;;;;-1:-1:-1;8286:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8370:18:0;8352:7;8370:18;;;:9;:18;;;;;;;8286:105;2911:148;;;;;;;;;;;;;:::i;8200:80::-;;;;;;;;;;-1:-1:-1;8252:7:0;2760:6;-1:-1:-1;;;;;2760:6:0;8200:80;;;-1:-1:-1;;;;;2883:32:1;;;2865:51;;2853:2;2838:18;8200:80:0;2719:203:1;13795:298:0;;;;;;;;;;;;;:::i;15334:229::-;;;;;;;;;;-1:-1:-1;15334:229:0;;;;;:::i;:::-;;:::i;13597:167::-;;;;;;;;;;-1:-1:-1;13597:167:0;;;;;:::i;:::-;;:::i;2695:79::-;;;;;;;;;;-1:-1:-1;2733:7:0;2760:6;-1:-1:-1;;;;;2760:6:0;2695:79;;15571:236;;;;;;;;;;-1:-1:-1;15571:236:0;;;;;:::i;:::-;;:::i;16325:801::-;;;;;;;;;;-1:-1:-1;16325:801:0;;;;;:::i;:::-;;:::i;6744:19::-;;;;;;;;;;-1:-1:-1;6744:19:0;;;;-1:-1:-1;;;;;6744:19:0;;;8892:156;;;;;;;;;;-1:-1:-1;8892:156:0;;;;;:::i;:::-;;:::i;6059:58::-;;;;;;;;;;-1:-1:-1;6059:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14913:183;;;;;;;;;;-1:-1:-1;14913:183:0;;;;;:::i;:::-;;:::i;6290:26::-;;;;;;;;;;;;;;;;8397:133;;;;;;;;;;-1:-1:-1;8397:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8499:19:0;;;8481:7;8499:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8397:133;16110:207;;;;;;;;;;-1:-1:-1;16110:207:0;;;;;:::i;:::-;;:::i;6023:29::-;;;;;;;;;;-1:-1:-1;6023:29:0;;;;;:::i;:::-;;:::i;3068:244::-;;;;;;;;;;-1:-1:-1;3068:244:0;;;;;:::i;:::-;;:::i;15817:285::-;;;;;;;;;;-1:-1:-1;15817:285:0;;;;;:::i;:::-;;:::i;6713:24::-;;;;;;;;;;-1:-1:-1;6713:24:0;;;;-1:-1:-1;;;;;6713:24:0;;;8538:216;8642:10;8613:4;8630:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8630:32:0;;;;;;;;;;:41;;;8687:37;8613:4;;8630:32;;8687:37;;;;8665:6;160:25:1;;148:2;133:18;;14:177;8687:37:0;;;;;;;;-1:-1:-1;8742:4:0;8538:216;;;;;:::o;15104:222::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;;;;;;;;;15175:11:::1;:26:::0;;;6458:2:::1;15220:21:::0;::::1;;15212:62;;;::::0;-1:-1:-1;;;15212:62:0;;4295:2:1;15212:62:0::1;::::0;::::1;4277:21:1::0;4334:2;4314:18;;;4307:30;4373;4353:18;;;4346:58;4421:18;;15212:62:0::1;4093:352:1::0;15212:62:0::1;15292:26;15306:11;;15292:26;;;;160:25:1::0;;148:2;133:18;;14:177;15292:26:0::1;;;;;;;;15104:222:::0;:::o;9056:370::-;-1:-1:-1;;;;;9176:19:0;;9156:4;9176:19;;;:11;:19;;;;;;;;9196:10;9176:31;;;;;;;;-1:-1:-1;;9176:52:0;9173:186;;9278:69;;;;;;;;;;;-1:-1:-1;;;9278:69:0;;;;;;;;-1:-1:-1;;;;;9278:19:0;;-1:-1:-1;9278:19:0;;;:11;:19;;;;;9298:10;9278:31;;;;;;;;;;:69;;9314:6;;9278:35;:69::i;:::-;-1:-1:-1;;;;;9244:19:0;;;;;;:11;:19;;;;;;;;9264:10;9244:31;;;;;;;:103;9173:186;9378:40;9392:6;9400:9;9411:6;9378:13;:40::i;:::-;9371:47;;9056:370;;;;;;:::o;17138:142::-;17266:4;;-1:-1:-1;;;;;17266:4:0;17191:7;8370:18;;;:9;:18;;;;;;17218:54;;17245:4;;-1:-1:-1;;;;;17245:4:0;8352:7;8370:18;;;:9;:18;;;;;;17218:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17211:61;;17138:142;:::o;13471:118::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;13530:51:::1;::::0;13538:10:::1;::::0;13559:21:::1;13530:51:::0;::::1;;;::::0;::::1;::::0;;;13559:21;13538:10;13530:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13471:118::o:0;8762:122::-;8817:4;8841:35;8849:7;-1:-1:-1;;8841:7:0;:35::i;14517:215::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;14617:5:::1;14602:12;;:20;;;;:::i;:::-;14593:6;:29;14585:61;;;::::0;-1:-1:-1;;;14585:61:0;;5006:2:1;14585:61:0::1;::::0;::::1;4988:21:1::0;5045:2;5025:18;;;5018:30;-1:-1:-1;;;5064:18:1;;;5057:49;5123:18;;14585:61:0::1;4804:343:1::0;14585:61:0::1;14657:16;:25:::0;;;14700:24:::1;::::0;160:25:1;;;14700:24:0::1;::::0;148:2:1;133:18;14700:24:0::1;14:177:1::0;14740:165:0;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14823:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;14823:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14869;;5320:51:1;;;5387:18;;;5380:50;14869:28:0::1;::::0;5293:18:1;14869:28:0::1;;;;;;;;14740:165:::0;;:::o;2911:148::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;3018:1:::1;3002:6:::0;;2981:40:::1;::::0;-1:-1:-1;;;;;3002:6:0;;::::1;::::0;2981:40:::1;::::0;3018:1;;2981:40:::1;3049:1;3032:19:::0;;-1:-1:-1;;;;;;3032:19:0::1;::::0;;2911:148::o;13795:298::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;13858:14:::1;::::0;-1:-1:-1;;;13858:14:0;::::1;;;:23;13850:56;;;::::0;-1:-1:-1;;;13850:56:0;;5643:2:1;13850:56:0::1;::::0;::::1;5625:21:1::0;5682:2;5662:18;;;5655:30;-1:-1:-1;;;5701:18:1;;;5694:50;5761:18;;13850:56:0::1;5441:344:1::0;13850:56:0::1;13917:14;:21:::0;;-1:-1:-1;;;;13917:21:0::1;-1:-1:-1::0;;;13917:21:0::1;::::0;;13963:12:::1;13949:11;:26:::0;;;14023:10:::1;::::0;14006:28:::1;::::0;13963:12;14006:16:::1;:28::i;:::-;13986:17;:48:::0;14052:33:::1;::::0;14080:4:::1;1326:41:1::0;;14052:33:0::1;::::0;1314:2:1;1299:18;14052:33:0::1;;;;;;;13795:298::o:0;15334:229::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;15407:12:::1;:28:::0;;;6458:2:::1;15454:22:::0;::::1;;15446:63;;;::::0;-1:-1:-1;;;15446:63:0;;4295:2:1;15446:63:0::1;::::0;::::1;4277:21:1::0;4334:2;4314:18;;;4307:30;4373;4353:18;;;4346:58;4421:18;;15446:63:0::1;4093:352:1::0;15446:63:0::1;15527:28;15542:12;;15527:28;;;;160:25:1::0;;148:2;133:18;;14:177;13597:167:0;13684:4;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;13708:48:::1;::::0;-1:-1:-1;;;13708:48:0;;13737:10:::1;13708:48;::::0;::::1;5964:51:1::0;6031:18;;;6024:34;;;-1:-1:-1;;;;;13708:28:0;::::1;::::0;::::1;::::0;5937:18:1;;13708:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15571:236::-:0;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;15648:11:::1;:26:::0;;;6458:2:::1;15694:21:::0;::::1;;15686:64;;;::::0;-1:-1:-1;;;15686:64:0;;6521:2:1;15686:64:0::1;::::0;::::1;6503:21:1::0;6560:2;6540:18;;;6533:30;6599:32;6579:18;;;6572:60;6649:18;;15686:64:0::1;6319:354:1::0;15686:64:0::1;15766:32;::::0;160:25:1;;;15766:32:0::1;::::0;148:2:1;133:18;15766:32:0::1;14:177:1::0;16325:801:0;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16430:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;:42;::::1;;:32;::::0;;::::1;:42;;::::0;16422:72:::1;;;::::0;-1:-1:-1;;;16422:72:0;;6880:2:1;16422:72:0::1;::::0;::::1;6862:21:1::0;6919:2;6899:18;;;6892:30;-1:-1:-1;;;6938:18:1;;;6931:47;6995:18;;16422:72:0::1;6678:341:1::0;16422:72:0::1;-1:-1:-1::0;;;;;16511:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;:41;;-1:-1:-1;;16511:41:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;16569:482:::1;;16598:12;:24:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;16598:24:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;16598:24:0::1;-1:-1:-1::0;;;;;16598:24:0;::::1;;::::0;;16569:482:::1;;;16669:12;:19:::0;16691:1:::1;-1:-1:-1::0;16661:51:0::1;;;::::0;-1:-1:-1;;;16661:51:0;;7226:2:1;16661:51:0::1;::::0;::::1;7208:21:1::0;7265:2;7245:18;;;7238:30;-1:-1:-1;;;7284:18:1;;;7277:45;7339:18;;16661:51:0::1;7024:339:1::0;16661:51:0::1;16736:9;16731:305;16755:12;:19:::0;16751:23;::::1;16731:305;;;16827:5;-1:-1:-1::0;;;;;16808:24:0::1;:12;16821:1;16808:15;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;16808:15:0::1;:24:::0;16804:213:::1;;16879:12;16892:19:::0;;:23:::1;::::0;16914:1:::1;::::0;16892:23:::1;:::i;:::-;16879:37;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;16861:12:::1;:15:::0;;-1:-1:-1;;;;;16879:37:0;;::::1;::::0;16874:1;;16861:15;::::1;;;;;:::i;:::-;;;;;;;;;:55;;;;;-1:-1:-1::0;;;;;16861:55:0::1;;;;;-1:-1:-1::0;;;;;16861:55:0::1;;;;;;16943:12;:18;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;16943:18:0;;;;;-1:-1:-1;;;;;;16943:18:0::1;::::0;;;;;16988:5:::1;;16804:213;16776:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16731:305;;;;16569:482;17072:42;::::0;;::::1;;::::0;-1:-1:-1;;;;;17072:42:0;::::1;::::0;::::1;::::0;;;::::1;16325:801:::0;;:::o;8892:156::-;8972:4;8996:44;9010:10;9022:9;9033:6;8996:13;:44::i;14913:183::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15002:25:0;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;;:34;;-1:-1:-1;;15002:34:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15054;;5320:51:1;;;5387:18;;;5380:50;15054:34:0::1;::::0;5293:18:1;15054:34:0::1;5152:284:1::0;16110:207:0;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;16201:11:::1;:22:::0;;-1:-1:-1;;;;16201:22:0::1;-1:-1:-1::0;;;16201:22:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;16234:13:::1;:23:::0;;;16275:34:::1;::::0;;8073:41:1;;;8145:2;8130:18;;8123:34;;;16275::0::1;::::0;8046:18:1;16275:34:0::1;7905:258:1::0;6023:29:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6023:29:0;;-1:-1:-1;6023:29:0;:::o;3068:244::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3157:22:0;::::1;3149:73;;;::::0;-1:-1:-1;;;3149:73:0;;8370:2:1;3149:73:0::1;::::0;::::1;8352:21:1::0;8409:2;8389:18;;;8382:30;8448:34;8428:18;;;8421:62;-1:-1:-1;;;8499:18:1;;;8492:36;8545:19;;3149:73:0::1;8168:402:1::0;3149:73:0::1;3259:6;::::0;;3238:38:::1;::::0;-1:-1:-1;;;;;3238:38:0;;::::1;::::0;3259:6;::::1;::::0;3238:38:::1;::::0;::::1;3287:6;:17:::0;;-1:-1:-1;;;;;;3287:17:0::1;-1:-1:-1::0;;;;;3287:17:0;;;::::1;::::0;;;::::1;::::0;;3068:244::o;15817:285::-;2823:6;;-1:-1:-1;;;;;2823:6:0;2289:10;2823:22;2815:67;;;;-1:-1:-1;;;2815:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15920:35:0;::::1;15912:72;;;::::0;-1:-1:-1;;;15912:72:0;;8777:2:1;15912:72:0::1;::::0;::::1;8759:21:1::0;8816:2;8796:18;;;8789:30;8855:25;8835:18;;;8828:53;8898:18;;15912:72:0::1;8575:347:1::0;15912:72:0::1;15995:20;:44:::0;;-1:-1:-1;;;;;;15995:44:0::1;-1:-1:-1::0;;;;;15995:44:0;::::1;::::0;;::::1;::::0;;;16057:37:::1;::::0;2865:51:1;;;16057:37:0::1;::::0;2853:2:1;2838:18;16057:37:0::1;2719:203:1::0;475:192:0;561:7;597:12;589:6;;;;581:29;;;;-1:-1:-1;;;581:29:0;;;;;;;;:::i;:::-;-1:-1:-1;621:9:0;633:5;637:1;633;:5;:::i;:::-;621:17;475:192;-1:-1:-1;;;;;475:192:0:o;9434:1451::-;9546:6;;9526:4;;9546:6;;9543:63;;;9562:41;9577:6;9585:9;9596:6;9562:14;:41::i;:::-;9555:48;;;;9543:63;-1:-1:-1;;;;;9622:19:0;;;;;;:11;:19;;;;;;;;9621:20;:47;;;;-1:-1:-1;;;;;;9646:22:0;;;;;;:11;:22;;;;;;;;9645:23;9621:47;9618:125;;;9692:14;;-1:-1:-1;;;9692:14:0;;;;9684:47;;;;-1:-1:-1;;;9684:47:0;;9129:2:1;9684:47:0;;;9111:21:1;9168:2;9148:18;;;9141:30;-1:-1:-1;;;9187:18:1;;;9180:51;9248:18;;9684:47:0;8927:345:1;9684:47:0;9758:16;:14;:16::i;:::-;9755:35;;;9777:10;:8;:10::i;:::-;-1:-1:-1;;;;;9852:33:0;;9804:22;9852:33;;;:25;:33;;;;;;9829:6;;9852:33;;9849:800;;;-1:-1:-1;;;;;9912:22:0;;;;;;:11;:22;;;;;;;;9908:253;;9999:16;;-1:-1:-1;;;;;9963:20:0;;;;;;:9;:20;;;;;;:32;;9988:6;9963:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10019:28:0;;;;;;:17;:28;;;;;;;;9963:84;9955:128;;;;-1:-1:-1;;;9955:128:0;;9479:2:1;9955:128:0;;;9461:21:1;9518:2;9498:18;;;9491:30;9557:33;9537:18;;;9530:61;9608:18;;9955:128:0;9277:355:1;9955:128:0;10119:26;10130:6;10138;10119:10;:26::i;:::-;10102:43;;9908:253;9849:800;;;-1:-1:-1;;;;;10183:36:0;;;;;;:25;:36;;;;;;;;10180:469;;;-1:-1:-1;;;;;10247:19:0;;;;;;:11;:19;;;;;;;;10243:104;;10304:27;10316:6;10324;10304:11;:27::i;10180:469::-;-1:-1:-1;;;;;10385:19:0;;;;;;:11;:19;;;;;;;;10380:258;;10470:16;;-1:-1:-1;;;;;10434:20:0;;;;;;:9;:20;;;;;;:32;;10459:6;10434:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10490:28:0;;;;;;:17;:28;;;;;;;;10434:84;10426:128;;;;-1:-1:-1;;;10426:128:0;;9479:2:1;10426:128:0;;;9461:21:1;9518:2;9498:18;;;9491:30;9557:33;9537:18;;;9530:61;9608:18;;10426:128:0;9277:355:1;10426:128:0;10590:31;10606:6;10614;10590:15;:31::i;:::-;10573:48;;10380:258;-1:-1:-1;;;;;10681:17:0;;;;;;:9;:17;;;;;;:29;;10703:6;10681:21;:29::i;:::-;-1:-1:-1;;;;;10661:17:0;;;;;;;:9;:17;;;;;;:49;;;;10744:20;;;;;;;:40;;10769:14;10744:24;:40::i;:::-;-1:-1:-1;;;;;10721:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10812:43;;;;;;-1:-1:-1;;;;;;;;;;;10812:43:0;;;10840:14;160:25:1;;148:2;133:18;;14:177;10812:43:0;;;;;;;;-1:-1:-1;10873:4:0;;9434:1451;-1:-1:-1;;;;9434:1451:0:o;333:136::-;391:7;418:43;422:1;425;418:43;;;;;;;;;;;;;;;;;:3;:43::i;146:181::-;204:7;;236:5;240:1;236;:5;:::i;:::-;224:17;;265:1;260;:6;;252:46;;;;-1:-1:-1;;;252:46:0;;9969:2:1;252:46:0;;;9951:21:1;10008:2;9988:18;;;9981:30;10047:29;10027:18;;;10020:57;10094:18;;252:46:0;9767:351:1;10897:330:0;11027:53;;;;;;;;;;;-1:-1:-1;;;11027:53:0;;;;;;;;-1:-1:-1;;;;;11027:17:0;;10990:4;11027:17;;;:9;:17;;;;;;;:53;;11049:6;;11027:21;:53::i;:::-;-1:-1:-1;;;;;11007:17:0;;;;;;;:9;:17;;;;;;:73;;;;11114:20;;;;;;;:32;;11139:6;11114:24;:32::i;:::-;-1:-1:-1;;;;;11091:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11162:35;;;;;;-1:-1:-1;;;;;;;;;;;11162:35:0;;;11190:6;160:25:1;;148:2;133:18;;14:177;11162:35:0;;;;;;;;-1:-1:-1;11215:4:0;10897:330;;;;;:::o;13237:226::-;13346:10;13286:4;13320:37;;;:25;:37;;;;;;;;13319:38;:58;;;;-1:-1:-1;13371:6:0;;;;13370:7;13319:58;:82;;;;-1:-1:-1;13390:11:0;;-1:-1:-1;;;13390:11:0;;;;13319:82;:136;;;;-1:-1:-1;;13442:13:0;;13432:4;13414:24;;;;:9;:24;;;;;;:41;;;13237:226::o;14101:384::-;6961:6;:13;;-1:-1:-1;;6961:13:0;6970:4;6961:13;;;14176:16:::1;::::0;;14190:1:::1;14176:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14176:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14176:16:0::1;14152:40;;14221:4;14203;14208:1;14203:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14203:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14247:4:::1;::::0;14237:7;;14247:4;::::1;::::0;14237;;14247;;14237:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14237:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;14264:6:::1;::::0;14354:4:::1;14264:6;14336:24:::0;;;:9:::1;:24:::0;;;;;;;;14410:20:::1;::::0;14264:207;;-1:-1:-1;;;14264:207:0;;:6;;::::1;::::0;:57:::1;::::0;:207:::1;::::0;14336:24;;14264:6;;14391:4;;14410:20;;;::::1;::::0;14445:15:::1;::::0;14264:207:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6979:6:0;:14;;-1:-1:-1;;6979:14:0;;;-1:-1:-1;;;14101:384:0:o;11793:486::-;11901:11;;11942:17;;11863:7;;11901:11;11927:12;:32;11923:98;;;11991:14;:12;:14::i;:::-;11980:25;;11923:98;12033:17;12053:40;6608:3;12053:20;:6;12064:8;12053:10;:20::i;:::-;:24;;:40::i;:::-;12151:4;12133:24;;;;:9;:24;;;;;;12033:60;;-1:-1:-1;12133:39:0;;12033:60;12133:28;:39::i;:::-;12124:4;12106:24;;;;:9;:24;;;;;;;:66;;;;12188:42;;-1:-1:-1;;;;;12188:42:0;;;-1:-1:-1;;;;;;;;;;;12188:42:0;;;12220:9;160:25:1;;148:2;133:18;;14:177;12188:42:0;;;;;;;;12250:21;:6;12261:9;12250:10;:21::i;12287:510::-;12396:12;;12438:17;;12358:7;;12396:12;12423;:32;12419:98;;;12487:14;:12;:14::i;12805:420::-;12880:7;12899:17;12919:43;6608:3;12919:23;12930:11;;12919:6;:10;;:23;;;;:::i;:43::-;12899:63;-1:-1:-1;12991:13:0;;12987:176;;13066:4;13048:24;;;;:9;:24;;;;;;:39;;13077:9;13048:28;:39::i;:::-;13039:4;13021:24;;;;:9;:24;;;;;;;:66;;;;13108:42;;-1:-1:-1;;;;;13108:42:0;;;-1:-1:-1;;;;;;;;;;;13108:42:0;;;13140:9;160:25:1;;148:2;133:18;;14:177;13108:42:0;;;;;;;;12987:176;13195:21;:6;13206:9;13195:10;:21::i;:::-;13188:28;12805:420;-1:-1:-1;;;;12805:420:0:o;11235:537::-;11281:7;11301:25;11329:29;11346:11;;11329:12;:16;;:29;;;;:::i;:::-;11301:57;;11369:17;11420:1;11400:17;:21;11397:341;;;-1:-1:-1;11449:2:0;11397:341;;;11502:1;11481:17;:22;;:48;;;;;11527:2;11507:17;:22;11481:48;11478:260;;;-1:-1:-1;11558:2:0;11478:260;;;11611:2;11590:17;:23;;:49;;;;;11637:2;11617:17;:22;11590:49;11587:151;;;-1:-1:-1;11668:2:0;11587:151;;;-1:-1:-1;11724:2:0;11755:9;11235:537;-1:-1:-1;;11235:537:0:o;673:250::-;731:7;755:1;760;755:6;751:47;;-1:-1:-1;785:1:0;778:8;;751:47;810:9;822:5;826:1;822;:5;:::i;:::-;810:17;-1:-1:-1;855:1:0;846:5;850:1;810:17;846:5;:::i;:::-;:10;838:56;;;;-1:-1:-1;;;838:56:0;;11615:2:1;838:56:0;;;11597:21:1;11654:2;11634:18;;;11627:30;11693:34;11673:18;;;11666:62;-1:-1:-1;;;11744:18:1;;;11737:31;11785:19;;838:56:0;11413:397:1;929:132:0;987:7;1014:39;1018:1;1021;1014:39;;;;;;;;;;;;;;;;;1153:7;1188:12;1181:5;1173:28;;;;-1:-1:-1;;;1173:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1212:9:0;1224:5;1228:1;1224;:5;:::i;196:548: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;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:186::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;1529:29;1548:9;1529:29;:::i;1569:180::-;1628:6;1681:2;1669:9;1660:7;1656:23;1652:32;1649:52;;;1697:1;1694;1687:12;1649:52;-1:-1:-1;1720:23:1;;1569:180;-1:-1:-1;1569:180:1:o;1754:328::-;1831:6;1839;1847;1900:2;1888:9;1879:7;1875:23;1871:32;1868:52;;;1916:1;1913;1906:12;1868:52;1939:29;1958:9;1939:29;:::i;:::-;1929:39;;1987:38;2021:2;2010:9;2006:18;1987:38;:::i;:::-;1977:48;;2072:2;2061:9;2057:18;2044:32;2034:42;;1754:328;;;;;:::o;2276:118::-;2362:5;2355:13;2348:21;2341:5;2338:32;2328:60;;2384:1;2381;2374:12;2399:315;2464:6;2472;2525:2;2513:9;2504:7;2500:23;2496:32;2493:52;;;2541:1;2538;2531:12;2493:52;2564:29;2583:9;2564:29;:::i;:::-;2554:39;;2643:2;2632:9;2628:18;2615:32;2656:28;2678:5;2656:28;:::i;:::-;2703:5;2693:15;;;2399:315;;;;;:::o;2927:260::-;2995:6;3003;3056:2;3044:9;3035:7;3031:23;3027:32;3024:52;;;3072:1;3069;3062:12;3024:52;3095:29;3114:9;3095:29;:::i;:::-;3085:39;;3143:38;3177:2;3166:9;3162:18;3143:38;:::i;:::-;3133:48;;2927:260;;;;;:::o;3192:309::-;3257:6;3265;3318:2;3306:9;3297:7;3293:23;3289:32;3286:52;;;3334:1;3331;3324:12;3286:52;3373:9;3360:23;3392:28;3414:5;3392:28;:::i;3732:356::-;3934:2;3916:21;;;3953:18;;;3946:30;4012:34;4007:2;3992:18;;3985:62;4079:2;4064:18;;3732:356::o;4450:127::-;4511:10;4506:3;4502:20;4499:1;4492:31;4542:4;4539:1;4532:15;4566:4;4563:1;4556:15;4582:217;4622:1;4648;4638:132;;4692:10;4687:3;4683:20;4680:1;4673:31;4727:4;4724:1;4717:15;4755:4;4752:1;4745:15;4638:132;-1:-1:-1;4784:9:1;;4582:217::o;6069:245::-;6136:6;6189:2;6177:9;6168:7;6164:23;6160:32;6157:52;;;6205:1;6202;6195:12;6157:52;6237:9;6231:16;6256:28;6278:5;6256:28;:::i;7368:127::-;7429:10;7424:3;7420:20;7417:1;7410:31;7460:4;7457:1;7450:15;7484:4;7481:1;7474:15;7500:128;7567:9;;;7588:11;;;7585:37;;;7602:18;;:::i;7633:127::-;7694:10;7689:3;7685:20;7682:1;7675:31;7725:4;7722:1;7715:15;7749:4;7746:1;7739:15;7765:135;7804:3;7825:17;;;7822:43;;7845:18;;:::i;:::-;-1:-1:-1;7892:1:1;7881:13;;7765:135::o;9637:125::-;9702:9;;;9723:10;;;9720:36;;;9736:18;;:::i;10255:980::-;10517:4;10565:3;10554:9;10550:19;10596:6;10585:9;10578:25;10622:2;10660:6;10655:2;10644:9;10640:18;10633:34;10703:3;10698:2;10687:9;10683:18;10676:31;10727:6;10762;10756:13;10793:6;10785;10778:22;10831:3;10820:9;10816:19;10809:26;;10870:2;10862:6;10858:15;10844:29;;10891:1;10901:195;10915:6;10912:1;10909:13;10901:195;;;10980:13;;-1:-1:-1;;;;;10976:39:1;10964:52;;11071:15;;;;11036:12;;;;11012:1;10930:9;10901:195;;;-1:-1:-1;;;;;;;11152:32:1;;;;11147:2;11132:18;;11125:60;-1:-1:-1;;;11216:3:1;11201:19;11194:35;11113:3;10255:980;-1:-1:-1;;;10255:980:1:o;11240:168::-;11313:9;;;11344;;11361:15;;;11355:22;;11341:37;11331:71;;11382:18;;:::i

Swarm Source

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