ETH Price: $3,457.35 (+0.48%)
Gas: 6 Gwei

Token

Game of Chads (CHAD)
 

Overview

Max Total Supply

100,000,000 CHAD

Holders

201

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
195,354.623934658 CHAD

Value
$0.00
0x9e619F04376D0BA58fAd43BECe8a9a3265Fdb875
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:
CHAD

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-15
*/

/*
https://www.gameofchads.com/

https://dashboard.gameofchads.com/

https://t.me/gameofchads

https://twitter.com/gameofchads
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

}

contract Ownable is Context {
    address private _owner;
    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);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract CHAD is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    bool public transferDelayEnabled = true;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    address payable private _devWallet;
    address payable private _buyBackWallet = payable(0xf378B069DD3D2953044f75C7A00fBdC43a93Cf37);
    address payable private _marketingWallet = payable(0x194DC0E595b5393960fd95b1B0A79d7A792231A9);
    address payable private _teamWallet = payable(0x798159F1fF0418d43263F110dF8589d8458020D9);
    address payable private _pr1Wallet = payable(0x3b1873a522F4A8F2c90e7dfd36AC59730d573204);
    address payable private _pr2Wallet = payable(0x312c7Ca0B55B2Fa528136879Cb8Df2b1DbCC6C36);

    uint256 private _taxFeeOnBuy = 28;
    uint256 private _taxFeeOnSell = 35;
    uint256 private _dynamicTax = 2;
    uint256 private _maxSellTax = 10;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Game of Chads";
    string private constant _symbol = unicode"CHAD";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 200000   * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;
    uint256 public _minimBuy= 50000 * 10**_decimals;

    uint256 public totalRewards;
    uint256 public totalTokensLp;
    uint256 public totalEthLp;
    uint256 public totalEthBuybacks;
    uint256 public presentRewards = 0;
    bool public farmTaxes = true;
    bool private isBuy = false;
    bool private isSell = false;
    address public _lastBuyer = address(0);
    
    address private constant swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private enableTransfers = true;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _devWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = 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 pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && from != _devWallet && to != _devWallet) {
            require(enableTransfers, "Transfers are disabled");
            taxAmount = amount.mul(_taxFeeOnBuy).div(100);

            if(transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(amount > _minimBuy && !farmTaxes) {
                    _lastBuyer = to;
                    isBuy = true;
                }
            }

            uint256 contractTokenBalance = balanceOf(address(this)) - presentRewards;
            if (!inSwap && to  == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                if(farmTaxes){
                    swapAndLiquify(amount, contractTokenBalance);
                } else {
                    swapAndPlay(contractTokenBalance);
                }
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_taxFeeOnSell).div(100);
                isSell = true;
            }
        }

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            taxAmount = 0;
            isBuy = false;
            isSell = false;
        }

        if(taxAmount > 0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));

        if(farmTaxes) {
            isSell = false;
            isBuy = false;
        }

        if(isSell) {
            presentRewards += taxAmount.div(4);
            isSell = false;
            _taxFeeOnSell += _dynamicTax;
            if(_taxFeeOnSell > _maxSellTax) {
                _taxFeeOnSell = _maxSellTax;
            }
        }

        if(isBuy) {
            sendRewards();
            _taxFeeOnSell = _dynamicTax;
        }
    }

    function sendRewards() private{
        address lastBuyer = _lastBuyer;
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 tokenForLastBuyer = presentRewards;

        if(lastBuyer != address(0) && contractTokenBalance > tokenForLastBuyer && tokenForLastBuyer > 0) {
            _balances[address(this)]=_balances[address(this)].sub(presentRewards);
            _balances[lastBuyer]=_balances[lastBuyer].add(presentRewards);
            emit Transfer(address(this), lastBuyer, tokenForLastBuyer);
            totalRewards += tokenForLastBuyer;
        }

        // reset variables to initial state
        isBuy = false;
        presentRewards = 0;
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    // used for LP
    function approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), swapRouterAddress, type(uint256).max);
        }
    }

    // used for LP
    function addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        approveRouter(_tokenAmount);
        uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, owner(), block.timestamp );
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapAndPlay(uint256 contractTokenBalance) private lockTheSwap {
        // 25% goes to LP, 25% to buybacks, and 50% to MW
        uint256 ethPreSwap = address(this).balance;
        uint256 tokenForLP = contractTokenBalance.div(8);
        uint256 tokenToSwap = contractTokenBalance - tokenForLP;
        swapTokensForEth(tokenToSwap);
        uint256 ethSwapped = address(this).balance - ethPreSwap;
        // eth for LP
        uint256 _ethWeiAmount = ethSwapped.div(7);
        // add to LP
        addLiquidity(tokenForLP, _ethWeiAmount);
        totalTokensLp += tokenForLP;
        totalEthLp += _ethWeiAmount;
        // add to buyback
        uint256 _ethForBuyback = ethSwapped.mul(2).div(7);
        sendETHToBuyback(_ethForBuyback);
        totalEthBuybacks += _ethForBuyback;
        // add to mw & pr & team
        uint256 leftEth = address(this).balance;
        uint256 ethForPr = leftEth.div(10);
        uint256 ethForTeam = ethForPr.mul(4);
        sendETHToPr1(ethForPr);
        sendETHToPr2(ethForPr);
        sendETHToTeam(ethForTeam);
        uint256 _ethForMw = address(this).balance;
        sendETHToMw(_ethForMw);
    }

    function swapAndLiquify(uint256 amount, uint256 contractTokenBalance ) private lockTheSwap {
        swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
        uint256 contractETHBalance = address(this).balance;
        uint256 ethForPr = contractETHBalance.div(20);
        uint256 ethForMarketing = ethForPr.mul(8);
        if(contractETHBalance > 0) {
            sendETHToPr1(ethForPr);
            sendETHToPr2(ethForPr);
            sendETHToMw(ethForMarketing);
            sendETHToTeam(address(this).balance);
        }
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToMw(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function sendETHToBuyback(uint256 amount) private {
        _buyBackWallet.transfer(amount);
    }

    function sendETHToTeam(uint256 amount) private {
        _teamWallet.transfer(amount);
    }

    function sendETHToPr1(uint256 amount) private {
        _pr1Wallet.transfer(amount);
    }

    function sendETHToPr2(uint256 amount) private {
        _pr2Wallet.transfer(amount);
    }

    function enableTrading() external onlyOwner() {
        enableTransfers = true;
    }

    function stopFarming() public onlyOwner {
        farmTaxes = false;
        _taxFeeOnSell = 2;
        _taxFeeOnBuy = 2;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
        require(_msgSender() ==  _devWallet);
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10 ** 9));
        }
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        enableTransfers = false;
    }

    function viewSellTax() public view returns (uint256) {
        return _taxFeeOnSell;
    }

    function viewTotalRewards() public view returns(uint256) {
        return totalRewards;
    }

    function viewPresentRewards() public view returns(uint256) {
        return presentRewards;
    }

    function viewLastBuyer() public view returns(address) {
        return _lastBuyer;
    }

    function viewTotalTokensLp() public view returns(uint256) {
        return totalTokensLp;
    }

    function viewTotalEthLp() public view returns(uint256) {
        return totalEthLp;
    }

    function viewTotalEthBuybacks() public view returns(uint256) {
        return totalEthBuybacks;
    }


    receive() external payable {}

    function manualSend() external {
        require(_msgSender()==_devWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToMw(ethBalance);
        }
    }

    function manualSwap() external {
        require(_msgSender() == _devWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToMw(address(this).balance);
        }
    }

    // in case of a higher market cap
    // dev must change the minimBuy to a smaller amount
    function changeMinimBuy(uint256 amount) external {
        require(_msgSender() == _devWallet);
        _minimBuy = amount * (10 ** 9);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_lastBuyer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeMinimBuy","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":"farmTaxes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presentRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopFarming","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalEthBuybacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalTokensLp","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"viewLastBuyer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewPresentRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalEthBuybacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalEthLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalTokensLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff19166001179055600780546001600160a01b031990811673f378b069dd3d2953044f75c7a00fbdc43a93cf371790915560088054821673194dc0e595b5393960fd95b1b0a79d7a792231a917905560098054821673798159f1ff0418d43263f110df8589d8458020d9178155600a80548316733b1873a522f4a8f2c90e7dfd36ac59730d573204178155600b805490931673312c7ca0b55b2fa528136879cb8df2b1dbcc6c3617909255601c600c556023600d556002600e55600f829055620000d39162000403565b620000e290621e84806200041a565b601055620000f36009600a62000403565b6200010290621e84806200041a565b601155620001136009600a62000403565b620001229062030d406200041a565b601255620001336009600a62000403565b6200014290620f42406200041a565b601355620001536009600a62000403565b620001619061c3506200041a565b6014555f601955601a80546001600160b81b0319166001179055601c805462ffffff60a81b1916600160b81b1790553480156200019c575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b03191633179055620001fd6009600a62000403565b6200020d906305f5e1006200041a565b335f908152600160208190526040822092909255600390620002365f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600654909116835291208054909216179055620002943390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002cd6009600a62000403565b620002dd906305f5e1006200041a565b60405190815260200160405180910390a362000434565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200034857815f19048211156200032c576200032c620002f4565b808516156200033a57918102915b93841c93908002906200030d565b509250929050565b5f826200036057506001620003fd565b816200036e57505f620003fd565b81600181146200038757600281146200039257620003b2565b6001915050620003fd565b60ff841115620003a657620003a6620002f4565b50506001821b620003fd565b5060208310610133831016604e8410600b8410161715620003d7575081810a620003fd565b620003e3838362000308565b805f1904821115620003f957620003f9620002f4565b0290505b92915050565b5f6200041360ff84168362000350565b9392505050565b8082028115828204841417620003fd57620003fd620002f4565b61239b80620004425f395ff3fe60806040526004361061022b575f3560e01c8063751039fc11610129578063c876d0b9116100a8578063dd62ed3e1161006d578063dd62ed3e146105ed578063e582888c14610631578063e594a9a814610650578063f429389014610664578063f6c998a314610678575f80fd5b8063c876d0b91461056c578063c9567bf914610585578063cb1170e814610599578063cbd9edbb146105ae578063d3024def146105d4575f80fd5b80638dcefedd116100ee5780638dcefedd146104e35780638f9a55c0146104f757806395d89b411461050c578063a9059cbb14610538578063bf474bed14610557575f80fd5b8063751039fc146104765780637898cf231461048a5780637d1db4a51461049e5780638a8c523c146104b35780638da5cb5b146104c7575f80fd5b806323b872dd116101b5578063635bd4631161017a578063635bd463146103e757806365f0f4d6146103fb578063672434821461040f57806370a082311461042e578063715018a614610462575f80fd5b806323b872dd146103705780632d6aa27b1461038f578063313ce567146103a357806351bc3c85146103be5780635fd8fd58146103d2575f80fd5b80630faee56f116101fb5780630faee56f14610307578063139ce1321461031c57806318160ddd146103315780631bfa4c04146103455780631e0ae1901461035b575f80fd5b806306fdde0314610236578063095ea7b31461027d5780630e15561a146102ac5780630f8c6f91146102cf575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5060408051808201909152600d81526c47616d65206f6620436861647360981b60208201525b6040516102749190611e90565b60405180910390f35b348015610288575f80fd5b5061029c610297366004611eef565b61068d565b6040519015158152602001610274565b3480156102b7575f80fd5b506102c160155481565b604051908152602001610274565b3480156102da575f80fd5b50601a54630100000090046001600160a01b03165b6040516001600160a01b039091168152602001610274565b348015610312575f80fd5b506102c160135481565b348015610327575f80fd5b506102c160185481565b34801561033c575f80fd5b506102c16106a3565b348015610350575f80fd5b506103596106c3565b005b348015610366575f80fd5b506102c160175481565b34801561037b575f80fd5b5061029c61038a366004611f19565b61070b565b34801561039a575f80fd5b506015546102c1565b3480156103ae575f80fd5b5060405160098152602001610274565b3480156103c9575f80fd5b50610359610772565b3480156103dd575f80fd5b506102c160145481565b3480156103f2575f80fd5b50600d546102c1565b348015610406575f80fd5b506017546102c1565b34801561041a575f80fd5b50610359610429366004611f9f565b6107c3565b348015610439575f80fd5b506102c1610448366004612006565b6001600160a01b03165f9081526001602052604090205490565b34801561046d575f80fd5b50610359610875565b348015610481575f80fd5b506103596108e6565b348015610495575f80fd5b506019546102c1565b3480156104a9575f80fd5b506102c160105481565b3480156104be575f80fd5b506103596109a1565b3480156104d2575f80fd5b505f546001600160a01b03166102ef565b3480156104ee575f80fd5b506016546102c1565b348015610502575f80fd5b506102c160115481565b348015610517575f80fd5b5060408051808201909152600481526310d2105160e21b6020820152610267565b348015610543575f80fd5b5061029c610552366004611eef565b6109df565b348015610562575f80fd5b506102c160125481565b348015610577575f80fd5b5060045461029c9060ff1681565b348015610590575f80fd5b506103596109eb565b3480156105a4575f80fd5b506102c160195481565b3480156105b9575f80fd5b50601a546102ef90630100000090046001600160a01b031681565b3480156105df575f80fd5b50601a5461029c9060ff1681565b3480156105f8575f80fd5b506102c1610607366004612021565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561063c575f80fd5b5061035961064b366004612058565b610d6d565b34801561065b575f80fd5b506018546102c1565b34801561066f575f80fd5b50610359610da0565b348015610683575f80fd5b506102c160165481565b5f610699338484610dd2565b5060015b92915050565b5f6106b06009600a612163565b6106be906305f5e100612171565b905090565b5f546001600160a01b031633146106f55760405162461bcd60e51b81526004016106ec90612188565b60405180910390fd5b601a805460ff191690556002600d819055600c55565b5f610717848484610ef5565b61076884336107638560405180606001604052806028815260200161233e602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611660565b610dd2565b5060019392505050565b6006546001600160a01b0316336001600160a01b031614610791575f80fd5b305f9081526001602052604090205480156107af576107af81611698565b4780156107bf576107bf476117e0565b5050565b6006546001600160a01b0316336001600160a01b0316146107e2575f80fd5b82158015906107f057508083145b6107f8575f80fd5b335f5b8481101561086d5761085b82878784818110610819576108196121bd565b905060200201602081019061082e9190612006565b868685818110610840576108406121bd565b90506020020135633b9aca006108569190612171565b610ef5565b80610865816121d1565b9150506107fb565b505050505050565b5f546001600160a01b0316331461089e5760405162461bcd60e51b81526004016106ec90612188565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461090f5760405162461bcd60e51b81526004016106ec90612188565b61091b6009600a612163565b610929906305f5e100612171565b6010556109386009600a612163565b610946906305f5e100612171565b6011556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6109806009600a612163565b61098e906305f5e100612171565b60405190815260200160405180910390a1565b5f546001600160a01b031633146109ca5760405162461bcd60e51b81526004016106ec90612188565b601c805460ff60b81b1916600160b81b179055565b5f610699338484610ef5565b5f546001600160a01b03163314610a145760405162461bcd60e51b81526004016106ec90612188565b601c54600160a01b900460ff1615610a6e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106ec565b601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610ab7903090610aa96009600a612163565b610763906305f5e100612171565b601b5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2b91906121e9565b6001600160a01b031663c9c6539630601b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bae91906121e9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1c91906121e9565b601c80546001600160a01b039283166001600160a01b0319909116179055601b541663f305d7194730610c63816001600160a01b03165f9081526001602052604090205490565b5f80610c765f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610c9896959493929190612204565b60606040518083038185885af1158015610cb4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cd9919061223f565b5050601c54601b5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610d2e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d52919061226a565b50601c805463ffff00ff60a01b19166201000160a01b179055565b6006546001600160a01b0316336001600160a01b031614610d8c575f80fd5b610d9a81633b9aca00612171565b60145550565b6006546001600160a01b0316336001600160a01b031614610dbf575f80fd5b478015610dcf57610dcf816117e0565b50565b6001600160a01b038316610e345760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ec565b6001600160a01b038216610e955760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ec565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f595760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ec565b6001600160a01b038216610fbb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ec565b5f811161101c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ec565b5f80546001600160a01b0385811691161480159061104757505f546001600160a01b03848116911614155b801561106157506006546001600160a01b03858116911614155b801561107b57506006546001600160a01b03848116911614155b1561140057601c54600160b81b900460ff166110d25760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b60448201526064016106ec565b6110f260646110ec600c548561181790919063ffffffff16565b9061189c565b60045490915060ff16156111ac57601b546001600160a01b0384811691161480159061112c5750601c546001600160a01b03848116911614155b156111ac57325f90815260056020526040902054431161119a5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016106ec565b325f9081526005602052604090204390555b601c546001600160a01b0385811691161480156111d75750601b546001600160a01b03848116911614155b80156111fb57506001600160a01b0383165f9081526003602052604090205460ff16155b15611314576010548211156112525760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106ec565b60115482611274856001600160a01b03165f9081526001602052604090205490565b61127e9190612289565b11156112cc5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106ec565b601454821180156112e05750601a5460ff16155b1561131457601a805461ff00196001600160a01b0386166301000000021662ff0100600160b81b0319909116176101001790555b601954305f9081526001602052604081205490916113319161229c565b601c54909150600160a81b900460ff1615801561135b5750601c546001600160a01b038581169116145b80156113705750601c54600160b01b900460ff165b801561137d575060125481115b156113a557601a5460ff161561139c5761139783826118dd565b6113a5565b6113a58161196d565b601c546001600160a01b0385811691161480156113cb57506001600160a01b0385163014155b156113fe576113ea60646110ec600d548661181790919063ffffffff16565b601a805462ff000019166201000017905591505b505b6001600160a01b0384165f9081526003602052604090205460ff168061143d57506001600160a01b0383165f9081526003602052604090205460ff165b8061146f5750601c546001600160a01b0385811691161480159061146f5750601c546001600160a01b03848116911614155b156114835750601a805462ffff00191690555f5b80156114fb57305f908152600160205260409020546114a29082611a88565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f29085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461151d9083611ae6565b6001600160a01b0385165f908152600160205260409020556115606115428383611ae6565b6001600160a01b0385165f9081526001602052604090205490611a88565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115a98585611ae6565b60405190815260200160405180910390a3601a5460ff16156115d257601a805462ffff00191690555b601a5462010000900460ff161561163b576115ee81600461189c565b60195f8282546115fe9190612289565b9091555050601a805462ff000019169055600e54600d80545f90611623908490612289565b9091555050600f54600d54111561163b57600f54600d555b601a54610100900460ff161561165a57611653611b27565b600e54600d555b50505050565b5f81848411156116835760405162461bcd60e51b81526004016106ec9190611e90565b505f61168f848661229c565b95945050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116cb576116cb6121bd565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611722573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061174691906121e9565b81600181518110611759576117596121bd565b6001600160a01b039283166020918202929092010152601b5461177f9130911684610dd2565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906117b79085905f908690309042906004016122af565b5f604051808303815f87803b1580156117ce575f80fd5b505af115801561086d573d5f803e3d5ffd5b6008546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b5f825f0361182657505f61069d565b5f6118318385612171565b90508261183e858361231e565b146118955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ec565b9392505050565b5f61189583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c39565b601c805460ff60a81b1916600160a81b1790556013546119129061190d908490611908908590611c65565b611c65565b611698565b475f61191f82601461189c565b90505f61192d826008611817565b905082156119595761193e82611c79565b61194782611cb0565b611950816117e0565b61195947611ce7565b5050601c805460ff60a81b19169055505050565b601c805460ff60a81b1916600160a81b179055475f61198d83600861189c565b90505f61199a828561229c565b90506119a581611698565b5f6119b0844761229c565b90505f6119be82600761189c565b90506119ca8482611d1e565b8360165f8282546119db9190612289565b925050819055508060175f8282546119f39190612289565b909155505f9050611a0a60076110ec856002611817565b9050611a1581611db8565b8060185f828254611a269190612289565b909155504790505f611a3982600a61189c565b90505f611a47826004611817565b9050611a5282611c79565b611a5b82611cb0565b611a6481611ce7565b47611a6e816117e0565b5050601c805460ff60a81b19169055505050505050505050565b5f80611a948385612289565b9050838110156118955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ec565b5f61189583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611660565b601a54305f9081526001602052604090205460195463010000009092046001600160a01b0316918215801590611b5c57508082115b8015611b6757505f81115b15611c2557601954305f90815260016020526040902054611b8791611ae6565b305f90815260016020526040808220929092556019546001600160a01b038616825291902054611bb691611a88565b6001600160a01b0384165f818152600160205260409081902092909255905130907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c069085815260200190565b60405180910390a38060155f828254611c1f9190612289565b90915550505b5050601a805461ff0019169055505f601955565b5f8183611c595760405162461bcd60e51b81526004016106ec9190611e90565b505f61168f848661231e565b5f818311611c735782611895565b50919050565b600a546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b600b546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b6009546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b611d2782611def565b601b546001600160a01b031663f305d7198230855f80611d4e5f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611d7096959493929190612204565b60606040518083038185885af1158015611d8c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611db1919061223f565b5050505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115610dcf57305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350565b5f6020808352835180828501525f5b81811015611ebb57858101830151858201604001528201611e9f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dcf575f80fd5b5f8060408385031215611f00575f80fd5b8235611f0b81611edb565b946020939093013593505050565b5f805f60608486031215611f2b575f80fd5b8335611f3681611edb565b92506020840135611f4681611edb565b929592945050506040919091013590565b5f8083601f840112611f67575f80fd5b50813567ffffffffffffffff811115611f7e575f80fd5b6020830191508360208260051b8501011115611f98575f80fd5b9250929050565b5f805f8060408587031215611fb2575f80fd5b843567ffffffffffffffff80821115611fc9575f80fd5b611fd588838901611f57565b90965094506020870135915080821115611fed575f80fd5b50611ffa87828801611f57565b95989497509550505050565b5f60208284031215612016575f80fd5b813561189581611edb565b5f8060408385031215612032575f80fd5b823561203d81611edb565b9150602083013561204d81611edb565b809150509250929050565b5f60208284031215612068575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156120bd57815f19048211156120a3576120a361206f565b808516156120b057918102915b93841c9390800290612088565b509250929050565b5f826120d35750600161069d565b816120df57505f61069d565b81600181146120f557600281146120ff5761211b565b600191505061069d565b60ff8411156121105761211061206f565b50506001821b61069d565b5060208310610133831016604e8410600b841016171561213e575081810a61069d565b6121488383612083565b805f190482111561215b5761215b61206f565b029392505050565b5f61189560ff8416836120c5565b808202811582820484141761069d5761069d61206f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016121e2576121e261206f565b5060010190565b5f602082840312156121f9575f80fd5b815161189581611edb565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215612251575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561227a575f80fd5b81518015158114611895575f80fd5b8082018082111561069d5761069d61206f565b8181038181111561069d5761069d61206f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156122fd5784516001600160a01b0316835293830193918301916001016122d8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261233857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e0545c7f4fa8afb85341cdd3e2cba3f31a71b014dbee0bcfafc156698f0fc9ce64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061022b575f3560e01c8063751039fc11610129578063c876d0b9116100a8578063dd62ed3e1161006d578063dd62ed3e146105ed578063e582888c14610631578063e594a9a814610650578063f429389014610664578063f6c998a314610678575f80fd5b8063c876d0b91461056c578063c9567bf914610585578063cb1170e814610599578063cbd9edbb146105ae578063d3024def146105d4575f80fd5b80638dcefedd116100ee5780638dcefedd146104e35780638f9a55c0146104f757806395d89b411461050c578063a9059cbb14610538578063bf474bed14610557575f80fd5b8063751039fc146104765780637898cf231461048a5780637d1db4a51461049e5780638a8c523c146104b35780638da5cb5b146104c7575f80fd5b806323b872dd116101b5578063635bd4631161017a578063635bd463146103e757806365f0f4d6146103fb578063672434821461040f57806370a082311461042e578063715018a614610462575f80fd5b806323b872dd146103705780632d6aa27b1461038f578063313ce567146103a357806351bc3c85146103be5780635fd8fd58146103d2575f80fd5b80630faee56f116101fb5780630faee56f14610307578063139ce1321461031c57806318160ddd146103315780631bfa4c04146103455780631e0ae1901461035b575f80fd5b806306fdde0314610236578063095ea7b31461027d5780630e15561a146102ac5780630f8c6f91146102cf575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5060408051808201909152600d81526c47616d65206f6620436861647360981b60208201525b6040516102749190611e90565b60405180910390f35b348015610288575f80fd5b5061029c610297366004611eef565b61068d565b6040519015158152602001610274565b3480156102b7575f80fd5b506102c160155481565b604051908152602001610274565b3480156102da575f80fd5b50601a54630100000090046001600160a01b03165b6040516001600160a01b039091168152602001610274565b348015610312575f80fd5b506102c160135481565b348015610327575f80fd5b506102c160185481565b34801561033c575f80fd5b506102c16106a3565b348015610350575f80fd5b506103596106c3565b005b348015610366575f80fd5b506102c160175481565b34801561037b575f80fd5b5061029c61038a366004611f19565b61070b565b34801561039a575f80fd5b506015546102c1565b3480156103ae575f80fd5b5060405160098152602001610274565b3480156103c9575f80fd5b50610359610772565b3480156103dd575f80fd5b506102c160145481565b3480156103f2575f80fd5b50600d546102c1565b348015610406575f80fd5b506017546102c1565b34801561041a575f80fd5b50610359610429366004611f9f565b6107c3565b348015610439575f80fd5b506102c1610448366004612006565b6001600160a01b03165f9081526001602052604090205490565b34801561046d575f80fd5b50610359610875565b348015610481575f80fd5b506103596108e6565b348015610495575f80fd5b506019546102c1565b3480156104a9575f80fd5b506102c160105481565b3480156104be575f80fd5b506103596109a1565b3480156104d2575f80fd5b505f546001600160a01b03166102ef565b3480156104ee575f80fd5b506016546102c1565b348015610502575f80fd5b506102c160115481565b348015610517575f80fd5b5060408051808201909152600481526310d2105160e21b6020820152610267565b348015610543575f80fd5b5061029c610552366004611eef565b6109df565b348015610562575f80fd5b506102c160125481565b348015610577575f80fd5b5060045461029c9060ff1681565b348015610590575f80fd5b506103596109eb565b3480156105a4575f80fd5b506102c160195481565b3480156105b9575f80fd5b50601a546102ef90630100000090046001600160a01b031681565b3480156105df575f80fd5b50601a5461029c9060ff1681565b3480156105f8575f80fd5b506102c1610607366004612021565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561063c575f80fd5b5061035961064b366004612058565b610d6d565b34801561065b575f80fd5b506018546102c1565b34801561066f575f80fd5b50610359610da0565b348015610683575f80fd5b506102c160165481565b5f610699338484610dd2565b5060015b92915050565b5f6106b06009600a612163565b6106be906305f5e100612171565b905090565b5f546001600160a01b031633146106f55760405162461bcd60e51b81526004016106ec90612188565b60405180910390fd5b601a805460ff191690556002600d819055600c55565b5f610717848484610ef5565b61076884336107638560405180606001604052806028815260200161233e602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611660565b610dd2565b5060019392505050565b6006546001600160a01b0316336001600160a01b031614610791575f80fd5b305f9081526001602052604090205480156107af576107af81611698565b4780156107bf576107bf476117e0565b5050565b6006546001600160a01b0316336001600160a01b0316146107e2575f80fd5b82158015906107f057508083145b6107f8575f80fd5b335f5b8481101561086d5761085b82878784818110610819576108196121bd565b905060200201602081019061082e9190612006565b868685818110610840576108406121bd565b90506020020135633b9aca006108569190612171565b610ef5565b80610865816121d1565b9150506107fb565b505050505050565b5f546001600160a01b0316331461089e5760405162461bcd60e51b81526004016106ec90612188565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461090f5760405162461bcd60e51b81526004016106ec90612188565b61091b6009600a612163565b610929906305f5e100612171565b6010556109386009600a612163565b610946906305f5e100612171565b6011556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6109806009600a612163565b61098e906305f5e100612171565b60405190815260200160405180910390a1565b5f546001600160a01b031633146109ca5760405162461bcd60e51b81526004016106ec90612188565b601c805460ff60b81b1916600160b81b179055565b5f610699338484610ef5565b5f546001600160a01b03163314610a145760405162461bcd60e51b81526004016106ec90612188565b601c54600160a01b900460ff1615610a6e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106ec565b601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610ab7903090610aa96009600a612163565b610763906305f5e100612171565b601b5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2b91906121e9565b6001600160a01b031663c9c6539630601b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bae91906121e9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1c91906121e9565b601c80546001600160a01b039283166001600160a01b0319909116179055601b541663f305d7194730610c63816001600160a01b03165f9081526001602052604090205490565b5f80610c765f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610c9896959493929190612204565b60606040518083038185885af1158015610cb4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cd9919061223f565b5050601c54601b5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610d2e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d52919061226a565b50601c805463ffff00ff60a01b19166201000160a01b179055565b6006546001600160a01b0316336001600160a01b031614610d8c575f80fd5b610d9a81633b9aca00612171565b60145550565b6006546001600160a01b0316336001600160a01b031614610dbf575f80fd5b478015610dcf57610dcf816117e0565b50565b6001600160a01b038316610e345760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ec565b6001600160a01b038216610e955760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ec565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f595760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ec565b6001600160a01b038216610fbb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ec565b5f811161101c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ec565b5f80546001600160a01b0385811691161480159061104757505f546001600160a01b03848116911614155b801561106157506006546001600160a01b03858116911614155b801561107b57506006546001600160a01b03848116911614155b1561140057601c54600160b81b900460ff166110d25760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b60448201526064016106ec565b6110f260646110ec600c548561181790919063ffffffff16565b9061189c565b60045490915060ff16156111ac57601b546001600160a01b0384811691161480159061112c5750601c546001600160a01b03848116911614155b156111ac57325f90815260056020526040902054431161119a5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016106ec565b325f9081526005602052604090204390555b601c546001600160a01b0385811691161480156111d75750601b546001600160a01b03848116911614155b80156111fb57506001600160a01b0383165f9081526003602052604090205460ff16155b15611314576010548211156112525760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106ec565b60115482611274856001600160a01b03165f9081526001602052604090205490565b61127e9190612289565b11156112cc5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106ec565b601454821180156112e05750601a5460ff16155b1561131457601a805461ff00196001600160a01b0386166301000000021662ff0100600160b81b0319909116176101001790555b601954305f9081526001602052604081205490916113319161229c565b601c54909150600160a81b900460ff1615801561135b5750601c546001600160a01b038581169116145b80156113705750601c54600160b01b900460ff165b801561137d575060125481115b156113a557601a5460ff161561139c5761139783826118dd565b6113a5565b6113a58161196d565b601c546001600160a01b0385811691161480156113cb57506001600160a01b0385163014155b156113fe576113ea60646110ec600d548661181790919063ffffffff16565b601a805462ff000019166201000017905591505b505b6001600160a01b0384165f9081526003602052604090205460ff168061143d57506001600160a01b0383165f9081526003602052604090205460ff165b8061146f5750601c546001600160a01b0385811691161480159061146f5750601c546001600160a01b03848116911614155b156114835750601a805462ffff00191690555f5b80156114fb57305f908152600160205260409020546114a29082611a88565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f29085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461151d9083611ae6565b6001600160a01b0385165f908152600160205260409020556115606115428383611ae6565b6001600160a01b0385165f9081526001602052604090205490611a88565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115a98585611ae6565b60405190815260200160405180910390a3601a5460ff16156115d257601a805462ffff00191690555b601a5462010000900460ff161561163b576115ee81600461189c565b60195f8282546115fe9190612289565b9091555050601a805462ff000019169055600e54600d80545f90611623908490612289565b9091555050600f54600d54111561163b57600f54600d555b601a54610100900460ff161561165a57611653611b27565b600e54600d555b50505050565b5f81848411156116835760405162461bcd60e51b81526004016106ec9190611e90565b505f61168f848661229c565b95945050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116cb576116cb6121bd565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611722573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061174691906121e9565b81600181518110611759576117596121bd565b6001600160a01b039283166020918202929092010152601b5461177f9130911684610dd2565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906117b79085905f908690309042906004016122af565b5f604051808303815f87803b1580156117ce575f80fd5b505af115801561086d573d5f803e3d5ffd5b6008546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b5f825f0361182657505f61069d565b5f6118318385612171565b90508261183e858361231e565b146118955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ec565b9392505050565b5f61189583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c39565b601c805460ff60a81b1916600160a81b1790556013546119129061190d908490611908908590611c65565b611c65565b611698565b475f61191f82601461189c565b90505f61192d826008611817565b905082156119595761193e82611c79565b61194782611cb0565b611950816117e0565b61195947611ce7565b5050601c805460ff60a81b19169055505050565b601c805460ff60a81b1916600160a81b179055475f61198d83600861189c565b90505f61199a828561229c565b90506119a581611698565b5f6119b0844761229c565b90505f6119be82600761189c565b90506119ca8482611d1e565b8360165f8282546119db9190612289565b925050819055508060175f8282546119f39190612289565b909155505f9050611a0a60076110ec856002611817565b9050611a1581611db8565b8060185f828254611a269190612289565b909155504790505f611a3982600a61189c565b90505f611a47826004611817565b9050611a5282611c79565b611a5b82611cb0565b611a6481611ce7565b47611a6e816117e0565b5050601c805460ff60a81b19169055505050505050505050565b5f80611a948385612289565b9050838110156118955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ec565b5f61189583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611660565b601a54305f9081526001602052604090205460195463010000009092046001600160a01b0316918215801590611b5c57508082115b8015611b6757505f81115b15611c2557601954305f90815260016020526040902054611b8791611ae6565b305f90815260016020526040808220929092556019546001600160a01b038616825291902054611bb691611a88565b6001600160a01b0384165f818152600160205260409081902092909255905130907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c069085815260200190565b60405180910390a38060155f828254611c1f9190612289565b90915550505b5050601a805461ff0019169055505f601955565b5f8183611c595760405162461bcd60e51b81526004016106ec9190611e90565b505f61168f848661231e565b5f818311611c735782611895565b50919050565b600a546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b600b546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b6009546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b611d2782611def565b601b546001600160a01b031663f305d7198230855f80611d4e5f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611d7096959493929190612204565b60606040518083038185885af1158015611d8c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611db1919061223f565b5050505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bf573d5f803e3d5ffd5b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115610dcf57305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350565b5f6020808352835180828501525f5b81811015611ebb57858101830151858201604001528201611e9f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dcf575f80fd5b5f8060408385031215611f00575f80fd5b8235611f0b81611edb565b946020939093013593505050565b5f805f60608486031215611f2b575f80fd5b8335611f3681611edb565b92506020840135611f4681611edb565b929592945050506040919091013590565b5f8083601f840112611f67575f80fd5b50813567ffffffffffffffff811115611f7e575f80fd5b6020830191508360208260051b8501011115611f98575f80fd5b9250929050565b5f805f8060408587031215611fb2575f80fd5b843567ffffffffffffffff80821115611fc9575f80fd5b611fd588838901611f57565b90965094506020870135915080821115611fed575f80fd5b50611ffa87828801611f57565b95989497509550505050565b5f60208284031215612016575f80fd5b813561189581611edb565b5f8060408385031215612032575f80fd5b823561203d81611edb565b9150602083013561204d81611edb565b809150509250929050565b5f60208284031215612068575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156120bd57815f19048211156120a3576120a361206f565b808516156120b057918102915b93841c9390800290612088565b509250929050565b5f826120d35750600161069d565b816120df57505f61069d565b81600181146120f557600281146120ff5761211b565b600191505061069d565b60ff8411156121105761211061206f565b50506001821b61069d565b5060208310610133831016604e8410600b841016171561213e575081810a61069d565b6121488383612083565b805f190482111561215b5761215b61206f565b029392505050565b5f61189560ff8416836120c5565b808202811582820484141761069d5761069d61206f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016121e2576121e261206f565b5060010190565b5f602082840312156121f9575f80fd5b815161189581611edb565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215612251575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561227a575f80fd5b81518015158114611895575f80fd5b8082018082111561069d5761069d61206f565b8181038181111561069d5761069d61206f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156122fd5784516001600160a01b0316835293830193918301916001016122d8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261233857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e0545c7f4fa8afb85341cdd3e2cba3f31a71b014dbee0bcfafc156698f0fc9ce64736f6c63430008140033

Deployed Bytecode Sourcemap

3610:14746:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6355:83;;;;;;;;;;-1:-1:-1;6425:5:0;;;;;;;;;;;;-1:-1:-1;;;6425:5:0;;;;6355:83;;;;;;;:::i;:::-;;;;;;;;7188:161;;;;;;;;;;-1:-1:-1;7188:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7188:161:0;1023:187:1;5214:27:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5214:27:0;1215:177:1;17077:90:0;;;;;;;;;;-1:-1:-1;17149:10:0;;;;;-1:-1:-1;;;;;17149:10:0;17077:90;;;-1:-1:-1;;;;;1561:32:1;;;1543:51;;1531:2;1516:18;17077:90:0;1397:203:1;5100:51:0;;;;;;;;;;;;;;;;5315:31;;;;;;;;;;;;;;;;6632:95;;;;;;;;;;;;;:::i;15515:131::-;;;;;;;;;;;;;:::i;:::-;;5283:25;;;;;;;;;;;;;;;;7357:313;;;;;;;;;;-1:-1:-1;7357:313:0;;;;;:::i;:::-;;:::i;16867:95::-;;;;;;;;;;-1:-1:-1;16942:12:0;;16867:95;;6541:83;;;;;;;;;;-1:-1:-1;6541:83:0;;4723:1;2208:36:1;;2196:2;2181:18;6541:83:0;2066:184:1;17745:360:0;;;;;;;;;;;;;:::i;5158:47::-;;;;;;;;;;;;;;;;16767:92;;;;;;;;;;-1:-1:-1;16838:13:0;;16767:92;;17280:91;;;;;;;;;;-1:-1:-1;17353:10:0;;17280:91;;15654:392;;;;;;;;;;-1:-1:-1;15654:392:0;;;;;:::i;:::-;;:::i;6735:119::-;;;;;;;;;;-1:-1:-1;6735:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6828:18:0;6801:7;6828:18;;;:9;:18;;;;;;;6735:119;2693:148;;;;;;;;;;;;;:::i;14701:196::-;;;;;;;;;;;;;:::i;16970:99::-;;;;;;;;;;-1:-1:-1;17047:14:0;;16970:99;;4913:53;;;;;;;;;;;;;;;;15420:87;;;;;;;;;;;;;:::i;2479:79::-;;;;;;;;;;-1:-1:-1;2517:7:0;2544:6;-1:-1:-1;;;;;2544:6:0;2479:79;;17175:97;;;;;;;;;;-1:-1:-1;17251:13:0;;17175:97;;4973:55;;;;;;;;;;;;;;;;6446:87;;;;;;;;;;-1:-1:-1;6518:7:0;;;;;;;;;;;;-1:-1:-1;;;6518:7:0;;;;6446:87;;6862:167;;;;;;;;;;-1:-1:-1;6862:167:0;;;;;:::i;:::-;;:::i;5035:58::-;;;;;;;;;;;;;;;;3880:39;;;;;;;;;;-1:-1:-1;3880:39:0;;;;;;;;16054:705;;;;;;;;;;;;;:::i;5353:33::-;;;;;;;;;;;;;;;;5495:38;;;;;;;;;;-1:-1:-1;5495:38:0;;;;;;;-1:-1:-1;;;;;5495:38:0;;;5393:28;;;;;;;;;;-1:-1:-1;5393:28:0;;;;;;;;7037:143;;;;;;;;;;-1:-1:-1;7037:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7145:18:0;;;7118:7;7145:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7037:143;18209:144;;;;;;;;;;-1:-1:-1;18209:144:0;;;;;:::i;:::-;;:::i;17379:103::-;;;;;;;;;;-1:-1:-1;17458:16:0;;17379:103;;17529:208;;;;;;;;;;;;;:::i;5248:28::-;;;;;;;;;;;;;;;;7188:161;7263:4;7280:39;314:10;7303:7;7312:6;7280:8;:39::i;:::-;-1:-1:-1;7337:4:0;7188:161;;;;;:::o;6632:95::-;6685:7;4778:13;4723:1;4778:2;:13;:::i;:::-;4766:25;;:9;:25;:::i;:::-;6705:14;;6632:95;:::o;15515:131::-;2606:6;;-1:-1:-1;;;;;2606:6:0;314:10;2606:22;2598:67;;;;-1:-1:-1;;;2598:67:0;;;;;;;:::i;:::-;;;;;;;;;15566:9:::1;:17:::0;;-1:-1:-1;;15566:17:0::1;::::0;;15610:1:::1;15594:13;:17:::0;;;15622:12:::1;:16:::0;15515:131::o;7357:313::-;7455:4;7472:36;7482:6;7490:9;7501:6;7472:9;:36::i;:::-;7519:121;7528:6;314:10;7550:89;7588:6;7550:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7550:19:0;;;;;;:11;:19;;;;;;;;314:10;7550:33;;;;;;;;;;:37;:89::i;:::-;7519:8;:121::i;:::-;-1:-1:-1;7658:4:0;7357:313;;;;;:::o;17745:360::-;17811:10;;-1:-1:-1;;;;;17811:10:0;314;-1:-1:-1;;;;;17795:26:0;;17787:35;;;;;;17872:4;17833:20;6828:18;;;:9;:18;;;;;;17892:14;;17889:73;;17920:30;17937:12;17920:16;:30::i;:::-;17991:21;18026:12;;18023:75;;18052:34;18064:21;18052:11;:34::i;:::-;17776:329;;17745:360::o;15654:392::-;15774:10;;-1:-1:-1;;;;;15774:10:0;314;-1:-1:-1;;;;;15757:27:0;;15749:36;;;;;;15804:20;;;;;:58;;-1:-1:-1;15828:34:0;;;15804:58;15796:67;;;;;;15889:10;15874:12;15912:127;15932:20;;;15912:127;;;15974:53;15984:4;15990:9;;16000:1;15990:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16004:7;;16012:1;16004:10;;;;;;;:::i;:::-;;;;;;;16018:7;16004:22;;;;:::i;:::-;15974:9;:53::i;:::-;15954:3;;;;:::i;:::-;;;;15912:127;;;;15738:308;15654:392;;;;:::o;2693:148::-;2606:6;;-1:-1:-1;;;;;2606:6:0;314:10;2606:22;2598:67;;;;-1:-1:-1;;;2598:67:0;;;;;;;:::i;:::-;2800:1:::1;2784:6:::0;;2763:40:::1;::::0;-1:-1:-1;;;;;2784:6:0;;::::1;::::0;2763:40:::1;::::0;2800:1;;2763:40:::1;2831:1;2814:19:::0;;-1:-1:-1;;;;;;2814:19:0::1;::::0;;2693:148::o;14701:196::-;2606:6;;-1:-1:-1;;;;;2606:6:0;314:10;2606:22;2598:67;;;;-1:-1:-1;;;2598:67:0;;;;;;;:::i;:::-;4778:13:::1;4723:1;4778:2;:13;:::i;:::-;4766:25;::::0;:9:::1;:25;:::i;:::-;14754:12;:22:::0;4778:13:::1;4723:1;4778:2;:13;:::i;:::-;4766:25;::::0;:9:::1;:25;:::i;:::-;14787:14;:22:::0;14820:20:::1;:26:::0;;-1:-1:-1;;14820:26:0::1;::::0;;14862:27:::1;4778:13;4723:1;4778:2;:13;:::i;:::-;4766:25;::::0;:9:::1;:25;:::i;:::-;14862:27;::::0;1361:25:1;;;1349:2;1334:18;14862:27:0::1;;;;;;;14701:196::o:0;15420:87::-;2606:6;;-1:-1:-1;;;;;2606:6:0;314:10;2606:22;2598:67;;;;-1:-1:-1;;;2598:67:0;;;;;;;:::i;:::-;15477:15:::1;:22:::0;;-1:-1:-1;;;;15477:22:0::1;-1:-1:-1::0;;;15477:22:0::1;::::0;;15420:87::o;6862:167::-;6940:4;6957:42;314:10;6981:9;6992:6;6957:9;:42::i;16054:705::-;2606:6;;-1:-1:-1;;;;;2606:6:0;314:10;2606:22;2598:67;;;;-1:-1:-1;;;2598:67:0;;;;;;;:::i;:::-;16118:11:::1;::::0;-1:-1:-1;;;16118:11:0;::::1;;;16117:12;16109:47;;;::::0;-1:-1:-1;;;16109:47:0;;6758:2:1;16109:47:0::1;::::0;::::1;6740:21:1::0;6797:2;6777:18;;;6770:30;6836:25;6816:18;;;6809:53;6879:18;;16109:47:0::1;6556:347:1::0;16109:47:0::1;16167:15;:80:::0;;-1:-1:-1;;;;;;16167:80:0::1;16204:42;16167:80:::0;;::::1;::::0;;;16258:58:::1;::::0;16275:4:::1;::::0;4778:13:::1;4723:1;4778:2;:13;:::i;:::-;4766:25;::::0;:9:::1;:25;:::i;16258:58::-;16361:15;;;;;;;;;-1:-1:-1::0;;;;;16361:15:0::1;-1:-1:-1::0;;;;;16361:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16343:55:0::1;;16407:4;16414:15;;;;;;;;;-1:-1:-1::0;;;;;16414:15:0::1;-1:-1:-1::0;;;;;16414:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16343:94;::::0;-1:-1:-1;;;;;;16343:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7394:15:1;;;16343:94:0::1;::::0;::::1;7376:34:1::0;7446:15;;7426:18;;;7419:43;7311:18;;16343:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16327:13;:110:::0;;-1:-1:-1;;;;;16327:110:0;;::::1;-1:-1:-1::0;;;;;;16327:110:0;;::::1;;::::0;;16448:15:::1;::::0;::::1;:31;16487:21;16518:4;16524:24;16518:4:::0;-1:-1:-1;;;;;6828:18:0;6801:7;6828:18;;;:9;:18;;;;;;;6735:119;16524:24:::1;16549:1;16551::::0;16553:7:::1;2517::::0;2544:6;-1:-1:-1;;;;;2544:6:0;;2479:79;16553:7:::1;16561:15;16448:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16595:13:0::1;::::0;16626:15:::1;::::0;16588:71:::1;::::0;-1:-1:-1;;;16588:71:0;;-1:-1:-1;;;;;16626:15:0;;::::1;16588:71;::::0;::::1;8570:51:1::0;-1:-1:-1;;8637:18:1;;;8630:34;16595:13:0;::::1;::::0;-1:-1:-1;16588:29:0::1;::::0;8543:18:1;;16588:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;16670:11:0::1;:18:::0;;-1:-1:-1;;;;16728:23:0;-1:-1:-1;;;16728:23:0;;;16054:705::o;18209:144::-;18293:10;;-1:-1:-1;;;;;18293:10:0;314;-1:-1:-1;;;;;18277:26:0;;18269:35;;;;;;18327:18;:6;18337:7;18327:18;:::i;:::-;18315:9;:30;-1:-1:-1;18209:144:0:o;17529:208::-;17593:10;;-1:-1:-1;;;;;17593:10:0;314;-1:-1:-1;;;;;17579:24:0;;17571:33;;;;;;17634:21;17669:12;;17666:64;;17695:23;17707:10;17695:11;:23::i;:::-;17560:177;17529:208::o;7678:335::-;-1:-1:-1;;;;;7771:19:0;;7763:68;;;;-1:-1:-1;;;7763:68:0;;9159:2:1;7763:68:0;;;9141:21:1;9198:2;9178:18;;;9171:30;9237:34;9217:18;;;9210:62;-1:-1:-1;;;9288:18:1;;;9281:34;9332:19;;7763:68:0;8957:400:1;7763:68:0;-1:-1:-1;;;;;7850:21:0;;7842:68;;;;-1:-1:-1;;;7842:68:0;;9564:2:1;7842:68:0;;;9546:21:1;9603:2;9583:18;;;9576:30;9642:34;9622:18;;;9615:62;-1:-1:-1;;;9693:18:1;;;9686:32;9735:19;;7842:68:0;9362:398:1;7842:68:0;-1:-1:-1;;;;;7921:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7973:32;;1361:25:1;;;7973:32:0;;1334:18:1;7973:32:0;;;;;;;7678:335;;;:::o;8021:2996::-;-1:-1:-1;;;;;8109:18:0;;8101:68;;;;-1:-1:-1;;;8101:68:0;;9967:2:1;8101:68:0;;;9949:21:1;10006:2;9986:18;;;9979:30;10045:34;10025:18;;;10018:62;-1:-1:-1;;;10096:18:1;;;10089:35;10141:19;;8101:68:0;9765:401:1;8101:68:0;-1:-1:-1;;;;;8188:16:0;;8180:64;;;;-1:-1:-1;;;8180:64:0;;10373:2:1;8180:64:0;;;10355:21:1;10412:2;10392:18;;;10385:30;10451:34;10431:18;;;10424:62;-1:-1:-1;;;10502:18:1;;;10495:33;10545:19;;8180:64:0;10171:399:1;8180:64:0;8272:1;8263:6;:10;8255:64;;;;-1:-1:-1;;;8255:64:0;;10777:2:1;8255:64:0;;;10759:21:1;10816:2;10796:18;;;10789:30;10855:34;10835:18;;;10828:62;-1:-1:-1;;;10906:18:1;;;10899:39;10955:19;;8255:64:0;10575:405:1;8255:64:0;8330:17;2544:6;;-1:-1:-1;;;;;8364:15:0;;;2544:6;;8364:15;;;;:32;;-1:-1:-1;2517:7:0;2544:6;-1:-1:-1;;;;;8383:13:0;;;2544:6;;8383:13;;8364:32;:54;;;;-1:-1:-1;8408:10:0;;-1:-1:-1;;;;;8400:18:0;;;8408:10;;8400:18;;8364:54;:74;;;;-1:-1:-1;8428:10:0;;-1:-1:-1;;;;;8422:16:0;;;8428:10;;8422:16;;8364:74;8360:1617;;;8463:15;;-1:-1:-1;;;8463:15:0;;;;8455:50;;;;-1:-1:-1;;;8455:50:0;;11187:2:1;8455:50:0;;;11169:21:1;11226:2;11206:18;;;11199:30;-1:-1:-1;;;11245:18:1;;;11238:52;11307:18;;8455:50:0;10985:346:1;8455:50:0;8532:33;8561:3;8532:24;8543:12;;8532:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;8585:20;;8520:45;;-1:-1:-1;8585:20:0;;8582:345;;;8644:15;;-1:-1:-1;;;;;8630:30:0;;;8644:15;;8630:30;;;;:62;;-1:-1:-1;8678:13:0;;-1:-1:-1;;;;;8664:28:0;;;8678:13;;8664:28;;8630:62;8626:286;;;8752:9;8723:39;;;;:28;:39;;;;;;8765:12;-1:-1:-1;8715:102:0;;;;-1:-1:-1;;;8715:102:0;;11538:2:1;8715:102:0;;;11520:21:1;11577:2;11557:18;;;11550:30;11616:34;11596:18;;;11589:62;-1:-1:-1;;;11667:18:1;;;11660:34;11711:19;;8715:102:0;11336:400:1;8715:102:0;8867:9;8838:39;;;;:28;:39;;;;;8880:12;8838:54;;8626:286;8955:13;;-1:-1:-1;;;;;8947:21:0;;;8955:13;;8947:21;:55;;;;-1:-1:-1;8986:15:0;;-1:-1:-1;;;;;8972:30:0;;;8986:15;;8972:30;;8947:55;:83;;;;-1:-1:-1;;;;;;9008:22:0;;;;;;:18;:22;;;;;;;;9006:24;8947:83;8943:431;;;9070:12;;9060:6;:22;;9052:60;;;;-1:-1:-1;;;9052:60:0;;11943:2:1;9052:60:0;;;11925:21:1;11982:2;11962:18;;;11955:30;12021:27;12001:18;;;11994:55;12066:18;;9052:60:0;11741:349:1;9052:60:0;9165:14;;9155:6;9139:13;9149:2;-1:-1:-1;;;;;6828:18:0;6801:7;6828:18;;;:9;:18;;;;;;;6735:119;9139:13;:22;;;;:::i;:::-;:40;;9131:79;;;;-1:-1:-1;;;9131:79:0;;12427:2:1;9131:79:0;;;12409:21:1;12466:2;12446:18;;;12439:30;12505:28;12485:18;;;12478:56;12551:18;;9131:79:0;12225:350:1;9131:79:0;9241:9;;9232:6;:18;:32;;;;-1:-1:-1;9255:9:0;;;;9254:10;9232:32;9229:130;;;9289:10;:15;;-1:-1:-1;;;;;;;9289:15:0;;;;9327:12;-1:-1:-1;;;;;;9327:12:0;;;;9289:15;9327:12;;;9229:130;9448:14;;9439:4;9390:28;6828:18;;;:9;:18;;;;;;9390:28;;9421:41;;;:::i;:::-;9482:6;;9390:72;;-1:-1:-1;;;;9482:6:0;;;;9481:7;:31;;;;-1:-1:-1;9499:13:0;;-1:-1:-1;;;;;9492:20:0;;;9499:13;;9492:20;9481:31;:46;;;;-1:-1:-1;9516:11:0;;-1:-1:-1;;;9516:11:0;;;;9481:46;:90;;;;;9554:17;;9531:20;:40;9481:90;9477:312;;;9595:9;;;;9592:182;;;9628:44;9643:6;9651:20;9628:14;:44::i;:::-;9592:182;;;9721:33;9733:20;9721:11;:33::i;:::-;9814:13;;-1:-1:-1;;;;;9808:19:0;;;9814:13;;9808:19;:43;;;;-1:-1:-1;;;;;;9831:20:0;;9846:4;9831:20;;9808:43;9805:161;;;9884:34;9914:3;9884:25;9895:13;;9884:6;:10;;:25;;;;:::i;:34::-;9937:6;:13;;-1:-1:-1;;9937:13:0;;;;;9872:46;-1:-1:-1;9805:161:0;8440:1537;8360:1617;-1:-1:-1;;;;;9994:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10022:22:0;;;;;;:18;:22;;;;;;;;9994:50;9993:102;;;-1:-1:-1;10058:13:0;;-1:-1:-1;;;;;10050:21:0;;;10058:13;;10050:21;;;;:44;;-1:-1:-1;10081:13:0;;-1:-1:-1;;;;;10075:19:0;;;10081:13;;10075:19;;10050:44;9989:205;;;-1:-1:-1;10140:5:0;:13;;-1:-1:-1;;10168:14:0;;;10124:1;9989:205;10209:13;;10206:163;;10279:4;10261:24;;;;:9;:24;;;;;;:39;;10290:9;10261:28;:39::i;:::-;10254:4;10236:24;;;;:9;:24;;;;;;;:64;;;;10318:39;;-1:-1:-1;;;;;10318:39:0;;;;;;;10347:9;1361:25:1;;1349:2;1334:18;;1215:177;10318:39:0;;;;;;;;10206:163;-1:-1:-1;;;;;10397:15:0;;;;;;:9;:15;;;;;;:27;;10417:6;10397:19;:27::i;:::-;-1:-1:-1;;;;;10381:15:0;;;;;;:9;:15;;;;;:43;10449:40;10467:21;:6;10478:9;10467:10;:21::i;:::-;-1:-1:-1;;;;;10449:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10435:13:0;;;;;;;:9;:13;;;;;:54;;;;10505:41;;;10524:21;:6;10535:9;10524:10;:21::i;:::-;10505:41;;1361:25:1;;;1349:2;1334:18;10505:41:0;;;;;;;10562:9;;;;10559:83;;;10588:6;:14;;-1:-1:-1;;10617:13:0;;;10559:83;10657:6;;;;;;;10654:252;;;10698:16;:9;10712:1;10698:13;:16::i;:::-;10680:14;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10729:6:0;:14;;-1:-1:-1;;10729:14:0;;;10775:11;;10758:13;:28;;10738:5;;10758:28;;10775:11;;10758:28;:::i;:::-;;;;-1:-1:-1;;10820:11:0;;10804:13;;:27;10801:94;;;10868:11;;10852:13;:27;10801:94;10921:5;;;;;;;10918:92;;;10943:13;:11;:13::i;:::-;10987:11;;10971:13;:27;10918:92;8090:2927;8021:2996;;;:::o;1371:190::-;1457:7;1493:12;1485:6;;;;1477:29;;;;-1:-1:-1;;;1477:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1517:9:0;1529:5;1533:1;1529;:5;:::i;:::-;1517:17;1371:190;-1:-1:-1;;;;;1371:190:0:o;12460:471::-;12550:16;;;12564:1;12550:16;;;;;;;;12526:21;;12550:16;;;;;;;;;;-1:-1:-1;12550:16:0;12526:40;;12595:4;12577;12582:1;12577:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12577:23:0;;;:7;;;;;;;;;;:23;;;;12621:15;;:22;;;-1:-1:-1;;;12621:22:0;;;;:15;;;;;:20;;:22;;;;;12577:7;;12621:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12611:4;12616:1;12611:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12611:32:0;;;:7;;;;;;;;;:32;12686:15;;12654:62;;12671:4;;12686:15;12704:11;12654:8;:62::i;:::-;12727:15;;:196;;-1:-1:-1;;;12727:196:0;;-1:-1:-1;;;;;12727:15:0;;;;:66;;:196;;12808:11;;12727:15;;12850:4;;12877;;12897:15;;12727:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14905:97;14961:16;;:33;;-1:-1:-1;;;;;14961:16:0;;;;:33;;;;;14987:6;;14961:16;:33;:16;:33;14987:6;14961:16;:33;;;;;;;;;;;;;;;;;;;1569:246;1627:7;1651:1;1656;1651:6;1647:47;;-1:-1:-1;1681:1:0;1674:8;;1647:47;1704:9;1716:5;1720:1;1716;:5;:::i;:::-;1704:17;-1:-1:-1;1749:1:0;1740:5;1744:1;1704:17;1740:5;:::i;:::-;:10;1732:56;;;;-1:-1:-1;;;1732:56:0;;14254:2:1;1732:56:0;;;14236:21:1;14293:2;14273:18;;;14266:30;14332:34;14312:18;;;14305:62;-1:-1:-1;;;14383:18:1;;;14376:31;14424:19;;1732:56:0;14052:397:1;1732:56:0;1806:1;1569:246;-1:-1:-1;;;1569:246:0:o;1823:132::-;1881:7;1908:39;1912:1;1915;1908:39;;;;;;;;;;;;;;;;;:3;:39::i;14130:563::-;5964:6;:13;;-1:-1:-1;;;;5964:13:0;-1:-1:-1;;;5964:13:0;;;14285:11:::1;::::0;14232:67:::1;::::0;14249:49:::1;::::0;14253:6;;14260:37:::1;::::0;14264:20;;14260:3:::1;:37::i;:::-;14249:3;:49::i;:::-;14232:16;:67::i;:::-;14339:21;14310:26;14390;14339:21:::0;14413:2:::1;14390:22;:26::i;:::-;14371:45:::0;-1:-1:-1;14427:23:0::1;14453:15;14371:45:::0;14466:1:::1;14453:12;:15::i;:::-;14427:41:::0;-1:-1:-1;14482:22:0;;14479:207:::1;;14521:22;14534:8;14521:12;:22::i;:::-;14558;14571:8;14558:12;:22::i;:::-;14595:28;14607:15;14595:11;:28::i;:::-;14638:36;14652:21;14638:13;:36::i;:::-;-1:-1:-1::0;;6000:6:0;:14;;-1:-1:-1;;;;6000:14:0;;;-1:-1:-1;;;14130:563:0:o;12939:1183::-;5964:6;:13;;-1:-1:-1;;;;5964:13:0;-1:-1:-1;;;5964:13:0;;;13101:21:::1;5964:13:::0;13154:27:::1;:20:::0;13179:1:::1;13154:24;:27::i;:::-;13133:48:::0;-1:-1:-1;13192:19:0::1;13214:33;13133:48:::0;13214:20;:33:::1;:::i;:::-;13192:55;;13258:29;13275:11;13258:16;:29::i;:::-;13298:18;13319:34;13343:10:::0;13319:21:::1;:34;:::i;:::-;13298:55:::0;-1:-1:-1;13387:21:0::1;13411:17;13298:55:::0;13426:1:::1;13411:14;:17::i;:::-;13387:41;;13461:39;13474:10;13486:13;13461:12;:39::i;:::-;13528:10;13511:13;;:27;;;;;;;:::i;:::-;;;;;;;;13563:13;13549:10;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;13614:22:0::1;::::0;-1:-1:-1;13639:24:0::1;13661:1;13639:17;:10:::0;13654:1:::1;13639:14;:17::i;:24::-;13614:49;;13674:32;13691:14;13674:16;:32::i;:::-;13737:14;13717:16;;:34;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;13814:21:0::1;::::0;-1:-1:-1;13796:15:0::1;13865;13814:21:::0;13877:2:::1;13865:11;:15::i;:::-;13846:34:::0;-1:-1:-1;13891:18:0::1;13912:15;13846:34:::0;13925:1:::1;13912:12;:15::i;:::-;13891:36;;13938:22;13951:8;13938:12;:22::i;:::-;13971;13984:8;13971:12;:22::i;:::-;14004:25;14018:10;14004:13;:25::i;:::-;14060:21;14092:22;14060:21:::0;14092:11:::1;:22::i;:::-;-1:-1:-1::0;;6000:6:0;:14;;-1:-1:-1;;;;6000:14:0;;;-1:-1:-1;;;;;;;;;12939:1183:0:o;1040:179::-;1098:7;;1130:5;1134:1;1130;:5;:::i;:::-;1118:17;;1159:1;1154;:6;;1146:46;;;;-1:-1:-1;;;1146:46:0;;14656:2:1;1146:46:0;;;14638:21:1;14695:2;14675:18;;;14668:30;14734:29;14714:18;;;14707:57;14781:18;;1146:46:0;14454:351:1;1227:136:0;1285:7;1312:43;1316:1;1319;1312:43;;;;;;;;;;;;;;;;;:3;:43::i;11025:700::-;11086:10;;11156:4;11066:17;6828:18;;;:9;:18;;;;;;11201:14;;11086:10;;;;-1:-1:-1;;;;;11086:10:0;;11231:23;;;;;:67;;;11281:17;11258:20;:40;11231:67;:92;;;;;11322:1;11302:17;:21;11231:92;11228:390;;;11394:14;;11383:4;11365:24;;;;:9;:24;;;;;;:44;;:28;:44::i;:::-;11358:4;11340:24;;;;:9;:24;;;;;;:69;;;;11470:14;;-1:-1:-1;;;;;11445:20:0;;;;;;;;:40;;:24;:40::i;:::-;-1:-1:-1;;;;;11424:20:0;;;;;;:9;:20;;;;;;;:61;;;;11505:53;;11522:4;;11505:53;;;;11540:17;1361:25:1;;1349:2;1334:18;;1215:177;11505:53:0;;;;;;;;11589:17;11573:12;;:33;;;;;;;:::i;:::-;;;;-1:-1:-1;;11228:390:0;-1:-1:-1;;11675:5:0;:13;;-1:-1:-1;;11675:13:0;;;-1:-1:-1;11683:5:0;11699:14;:18;11025:700::o;1963:189::-;2049:7;2084:12;2077:5;2069:28;;;;-1:-1:-1;;;2069:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2108:9:0;2120:5;2124:1;2120;:5;:::i;11735:98::-;11792:7;11819:1;11817;:3;11816:9;;11824:1;11816:9;;;-1:-1:-1;11822:1:0;11735:98;-1:-1:-1;11735:98:0:o;15220:92::-;15277:10;;:27;;-1:-1:-1;;;;;15277:10:0;;;;:27;;;;;15297:6;;15277:10;:27;:10;:27;15297:6;15277:10;:27;;;;;;;;;;;;;;;;;;;15320:92;15377:10;;:27;;-1:-1:-1;;;;;15377:10:0;;;;:27;;;;;15397:6;;15377:10;:27;:10;:27;15397:6;15377:10;:27;;;;;;;;;;;;;;;;;;;15118:94;15176:11;;:28;;-1:-1:-1;;;;;15176:11:0;;;;:28;;;;;15197:6;;15176:11;:28;:11;:28;15197:6;15176:11;:28;;;;;;;;;;;;;;;;;;;12202:250;12289:27;12303:12;12289:13;:27::i;:::-;12327:15;;-1:-1:-1;;;;;12327:15:0;:31;12366:13;12391:4;12398:12;12327:15;;12418:7;2517;2544:6;-1:-1:-1;;;;;2544:6:0;;2479:79;12418:7;12427:15;12327:117;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12202:250;;:::o;15010:100::-;15071:14;;:31;;-1:-1:-1;;;;;15071:14:0;;;;:31;;;;;15095:6;;15071:14;:31;:14;:31;15095:6;15071:14;:31;;;;;;;;;;;;;;;;;;;11861:313;11951:4;11931:26;;;;:11;:26;;;;;;;;5599:42;11931:45;;;;;;;;:60;-1:-1:-1;11926:241:0;;;12029:4;12009:26;;;;:11;:26;;;;;;;;5599:42;12009:45;;;;;;;;;;-1:-1:-1;;12009:65:0;;;;12094:61;;1361:25:1;;;5599:42:0;;12029:4;12094:61;;1334:18:1;12094:61:0;;;;;;;11861:313;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:367::-;2318:8;2328:6;2382:3;2375:4;2367:6;2363:17;2359:27;2349:55;;2400:1;2397;2390:12;2349:55;-1:-1:-1;2423:20:1;;2466:18;2455:30;;2452:50;;;2498:1;2495;2488:12;2452:50;2535:4;2527:6;2523:17;2511:29;;2595:3;2588:4;2578:6;2575:1;2571:14;2563:6;2559:27;2555:38;2552:47;2549:67;;;2612:1;2609;2602:12;2549:67;2255:367;;;;;:::o;2627:773::-;2749:6;2757;2765;2773;2826:2;2814:9;2805:7;2801:23;2797:32;2794:52;;;2842:1;2839;2832:12;2794:52;2882:9;2869:23;2911:18;2952:2;2944:6;2941:14;2938:34;;;2968:1;2965;2958:12;2938:34;3007:70;3069:7;3060:6;3049:9;3045:22;3007:70;:::i;:::-;3096:8;;-1:-1:-1;2981:96:1;-1:-1:-1;3184:2:1;3169:18;;3156:32;;-1:-1:-1;3200:16:1;;;3197:36;;;3229:1;3226;3219:12;3197:36;;3268:72;3332:7;3321:8;3310:9;3306:24;3268:72;:::i;:::-;2627:773;;;;-1:-1:-1;3359:8:1;-1:-1:-1;;;;2627:773:1:o;3405:247::-;3464:6;3517:2;3505:9;3496:7;3492:23;3488:32;3485:52;;;3533:1;3530;3523:12;3485:52;3572:9;3559:23;3591:31;3616:5;3591:31;:::i;3657:388::-;3725:6;3733;3786:2;3774:9;3765:7;3761:23;3757:32;3754:52;;;3802:1;3799;3792:12;3754:52;3841:9;3828:23;3860:31;3885:5;3860:31;:::i;:::-;3910:5;-1:-1:-1;3967:2:1;3952:18;;3939:32;3980:33;3939:32;3980:33;:::i;:::-;4032:7;4022:17;;;3657:388;;;;;:::o;4050:180::-;4109:6;4162:2;4150:9;4141:7;4137:23;4133:32;4130:52;;;4178:1;4175;4168:12;4130:52;-1:-1:-1;4201:23:1;;4050:180;-1:-1:-1;4050:180:1:o;4235:127::-;4296:10;4291:3;4287:20;4284:1;4277:31;4327:4;4324:1;4317:15;4351:4;4348:1;4341:15;4367:422;4456:1;4499:5;4456:1;4513:270;4534:7;4524:8;4521:21;4513:270;;;4593:4;4589:1;4585:6;4581:17;4575:4;4572:27;4569:53;;;4602:18;;:::i;:::-;4652:7;4642:8;4638:22;4635:55;;;4672:16;;;;4635:55;4751:22;;;;4711:15;;;;4513:270;;;4517:3;4367:422;;;;;:::o;4794:806::-;4843:5;4873:8;4863:80;;-1:-1:-1;4914:1:1;4928:5;;4863:80;4962:4;4952:76;;-1:-1:-1;4999:1:1;5013:5;;4952:76;5044:4;5062:1;5057:59;;;;5130:1;5125:130;;;;5037:218;;5057:59;5087:1;5078:10;;5101:5;;;5125:130;5162:3;5152:8;5149:17;5146:43;;;5169:18;;:::i;:::-;-1:-1:-1;;5225:1:1;5211:16;;5240:5;;5037:218;;5339:2;5329:8;5326:16;5320:3;5314:4;5311:13;5307:36;5301:2;5291:8;5288:16;5283:2;5277:4;5274:12;5270:35;5267:77;5264:159;;;-1:-1:-1;5376:19:1;;;5408:5;;5264:159;5455:34;5480:8;5474:4;5455:34;:::i;:::-;5525:6;5521:1;5517:6;5513:19;5504:7;5501:32;5498:58;;;5536:18;;:::i;:::-;5574:20;;4794:806;-1:-1:-1;;;4794:806:1:o;5605:140::-;5663:5;5692:47;5733:4;5723:8;5719:19;5713:4;5692:47;:::i;5750:168::-;5823:9;;;5854;;5871:15;;;5865:22;;5851:37;5841:71;;5892:18;;:::i;5923:356::-;6125:2;6107:21;;;6144:18;;;6137:30;6203:34;6198:2;6183:18;;6176:62;6270:2;6255:18;;5923:356::o;6284:127::-;6345:10;6340:3;6336:20;6333:1;6326:31;6376:4;6373:1;6366:15;6400:4;6397:1;6390:15;6416:135;6455:3;6476:17;;;6473:43;;6496:18;;:::i;:::-;-1:-1:-1;6543:1:1;6532:13;;6416:135::o;6908:251::-;6978:6;7031:2;7019:9;7010:7;7006:23;7002:32;6999:52;;;7047:1;7044;7037:12;6999:52;7079:9;7073:16;7098:31;7123:5;7098:31;:::i;7473:607::-;-1:-1:-1;;;;;7832:15:1;;;7814:34;;7879:2;7864:18;;7857:34;;;;7922:2;7907:18;;7900:34;;;;7965:2;7950:18;;7943:34;;;;8014:15;;;8008:3;7993:19;;7986:44;7794:3;8046:19;;8039:35;;;;7763:3;7748:19;;7473:607::o;8085:306::-;8173:6;8181;8189;8242:2;8230:9;8221:7;8217:23;8213:32;8210:52;;;8258:1;8255;8248:12;8210:52;8287:9;8281:16;8271:26;;8337:2;8326:9;8322:18;8316:25;8306:35;;8381:2;8370:9;8366:18;8360:25;8350:35;;8085:306;;;;;:::o;8675:277::-;8742:6;8795:2;8783:9;8774:7;8770:23;8766:32;8763:52;;;8811:1;8808;8801:12;8763:52;8843:9;8837:16;8896:5;8889:13;8882:21;8875:5;8872:32;8862:60;;8918:1;8915;8908:12;12095:125;12160:9;;;12181:10;;;12178:36;;;12194:18;;:::i;12580:128::-;12647:9;;;12668:11;;;12665:37;;;12682:18;;:::i;12845:980::-;13107:4;13155:3;13144:9;13140:19;13186:6;13175:9;13168:25;13212:2;13250:6;13245:2;13234:9;13230:18;13223:34;13293:3;13288:2;13277:9;13273:18;13266:31;13317:6;13352;13346:13;13383:6;13375;13368:22;13421:3;13410:9;13406:19;13399:26;;13460:2;13452:6;13448:15;13434:29;;13481:1;13491:195;13505:6;13502:1;13499:13;13491:195;;;13570:13;;-1:-1:-1;;;;;13566:39:1;13554:52;;13661:15;;;;13626:12;;;;13602:1;13520:9;13491:195;;;-1:-1:-1;;;;;;;13742:32:1;;;;13737:2;13722:18;;13715:60;-1:-1:-1;;;13806:3:1;13791:19;13784:35;13703:3;12845:980;-1:-1:-1;;;12845:980:1:o;13830:217::-;13870:1;13896;13886:132;;13940:10;13935:3;13931:20;13928:1;13921:31;13975:4;13972:1;13965:15;14003:4;14000:1;13993:15;13886:132;-1:-1:-1;14032:9:1;;13830:217::o

Swarm Source

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