ETH Price: $3,356.21 (-2.31%)

Contract

0x18ad6032318909D848EC729Be8eAE9c43dE4d0Aa
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve188271762023-12-20 12:39:35342 days ago1703075975IN
0x18ad6032...43dE4d0Aa
0 ETH0.0031953868.53805538
Approve187777422023-12-13 14:07:35349 days ago1702476455IN
0x18ad6032...43dE4d0Aa
0 ETH0.0013472755.4936358
Approve187138852023-12-04 15:26:35358 days ago1701703595IN
0x18ad6032...43dE4d0Aa
0 ETH0.0012288745.9874921
Approve187138832023-12-04 15:26:11358 days ago1701703571IN
0x18ad6032...43dE4d0Aa
0 ETH0.0011059741.38804604
Approve187138832023-12-04 15:26:11358 days ago1701703571IN
0x18ad6032...43dE4d0Aa
0 ETH0.0019295941.38804604
Approve187138642023-12-04 15:22:23358 days ago1701703343IN
0x18ad6032...43dE4d0Aa
0 ETH0.0022049647.29450029
Approve187138052023-12-04 15:10:23358 days ago1701702623IN
0x18ad6032...43dE4d0Aa
0 ETH0.0020671444.39543563
Approve187136372023-12-04 14:36:35358 days ago1701700595IN
0x18ad6032...43dE4d0Aa
0 ETH0.0023501650.47381783
Approve187136362023-12-04 14:36:23358 days ago1701700583IN
0x18ad6032...43dE4d0Aa
0 ETH0.0023680150.85717258
Approve187136232023-12-04 14:33:47358 days ago1701700427IN
0x18ad6032...43dE4d0Aa
0 ETH0.0024864353.74671458
Approve187135842023-12-04 14:25:59358 days ago1701699959IN
0x18ad6032...43dE4d0Aa
0 ETH0.0025811855.4354561
Approve187135772023-12-04 14:24:35358 days ago1701699875IN
0x18ad6032...43dE4d0Aa
0 ETH0.0026192256.61714983
Approve187135602023-12-04 14:21:11358 days ago1701699671IN
0x18ad6032...43dE4d0Aa
0 ETH0.0015586864.20150492
Approve187135512023-12-04 14:19:23358 days ago1701699563IN
0x18ad6032...43dE4d0Aa
0 ETH0.0031897568.50550032
Approve187135402023-12-04 14:17:11358 days ago1701699431IN
0x18ad6032...43dE4d0Aa
0 ETH0.0031985869.0511283
Approve187134232023-12-04 13:53:35358 days ago1701698015IN
0x18ad6032...43dE4d0Aa
0 ETH0.0021593846.67731439
Approve187134082023-12-04 13:50:35358 days ago1701697835IN
0x18ad6032...43dE4d0Aa
0 ETH0.0021820246.86274176
Approve187134072023-12-04 13:50:23358 days ago1701697823IN
0x18ad6032...43dE4d0Aa
0 ETH0.0019301741.66855231
Approve187133812023-12-04 13:44:59358 days ago1701697499IN
0x18ad6032...43dE4d0Aa
0 ETH0.0020992445.02700839
Approve187133802023-12-04 13:44:47358 days ago1701697487IN
0x18ad6032...43dE4d0Aa
0 ETH0.0019925442.79331693
Approve187133782023-12-04 13:44:23358 days ago1701697463IN
0x18ad6032...43dE4d0Aa
0 ETH0.0011745244.45257764
Transfer187133612023-12-04 13:40:59358 days ago1701697259IN
0x18ad6032...43dE4d0Aa
0 ETH0.0025423442.85016538
Approve187133602023-12-04 13:40:47358 days ago1701697247IN
0x18ad6032...43dE4d0Aa
0 ETH0.0020268443.53000019
Approve187133602023-12-04 13:40:47358 days ago1701697247IN
0x18ad6032...43dE4d0Aa
0 ETH0.002060444.48000019
Approve187133542023-12-04 13:39:35358 days ago1701697175IN
0x18ad6032...43dE4d0Aa
0 ETH0.0025299754.61723289
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
187132272023-12-04 13:13:59358 days ago1701695639
0x18ad6032...43dE4d0Aa
0.00462165 ETH
187132272023-12-04 13:13:59358 days ago1701695639
0x18ad6032...43dE4d0Aa
0.00462165 ETH
187132272023-12-04 13:13:59358 days ago1701695639
0x18ad6032...43dE4d0Aa
0.01194651 ETH
187132272023-12-04 13:13:59358 days ago1701695639
0x18ad6032...43dE4d0Aa
0.01194651 ETH
187132262023-12-04 13:13:47358 days ago1701695627
0x18ad6032...43dE4d0Aa
0.04544025 ETH
187132262023-12-04 13:13:47358 days ago1701695627
0x18ad6032...43dE4d0Aa
0.04544025 ETH
187132092023-12-04 13:10:23358 days ago1701695423
0x18ad6032...43dE4d0Aa
0.01607168 ETH
187132092023-12-04 13:10:23358 days ago1701695423
0x18ad6032...43dE4d0Aa
0.01607168 ETH
187132082023-12-04 13:10:11358 days ago1701695411
0x18ad6032...43dE4d0Aa
0.02503651 ETH
187132082023-12-04 13:10:11358 days ago1701695411
0x18ad6032...43dE4d0Aa
0.02503651 ETH
187132022023-12-04 13:08:59358 days ago1701695339
0x18ad6032...43dE4d0Aa
0.00895111 ETH
187132022023-12-04 13:08:59358 days ago1701695339
0x18ad6032...43dE4d0Aa
0.00895111 ETH
187131982023-12-04 13:08:11358 days ago1701695291
0x18ad6032...43dE4d0Aa
0.00458082 ETH
187131982023-12-04 13:08:11358 days ago1701695291
0x18ad6032...43dE4d0Aa
0.00458082 ETH
187131982023-12-04 13:08:11358 days ago1701695291
0x18ad6032...43dE4d0Aa
0.00407722 ETH
187131982023-12-04 13:08:11358 days ago1701695291
0x18ad6032...43dE4d0Aa
0.00407722 ETH
187131982023-12-04 13:08:11358 days ago1701695291
0x18ad6032...43dE4d0Aa
0.00124761 ETH
187131982023-12-04 13:08:11358 days ago1701695291
0x18ad6032...43dE4d0Aa
0.00124761 ETH
187131962023-12-04 13:07:47358 days ago1701695267
0x18ad6032...43dE4d0Aa
0.02449903 ETH
187131962023-12-04 13:07:47358 days ago1701695267
0x18ad6032...43dE4d0Aa
0.02449903 ETH
187131922023-12-04 13:06:59358 days ago1701695219
0x18ad6032...43dE4d0Aa
0.01601453 ETH
187131922023-12-04 13:06:59358 days ago1701695219
0x18ad6032...43dE4d0Aa
0.01601453 ETH
187131852023-12-04 13:05:35358 days ago1701695135
0x18ad6032...43dE4d0Aa
0.00389749 ETH
187131852023-12-04 13:05:35358 days ago1701695135
0x18ad6032...43dE4d0Aa
0.00389749 ETH
187131852023-12-04 13:05:35358 days ago1701695135
0x18ad6032...43dE4d0Aa
0.01372149 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ChainTool

Compiler Version
v0.8.21+commit.d9974bed

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-04
*/

// SPDX-License-Identifier: Unlicensed

/**
ChainTool is revolutionizing the DeFi landscape by offering the first-ever Uniswap V3 no-staking liquidity rewards protocol.

Revolutionary Uniswap V3 Tokenomics. :unicorn_face:
Innovators of no-staking LP rewards. :trophy:
Builders of unique DeFi utilities. :male_mage:

Web: https://chaintool.pro
App: https://app.chaintool.pro
Twitter: https://twitter.com/Chain_Tool_Tech
Telegram: https://t.me/chaintool_tech
 */

pragma solidity 0.8.21;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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 waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

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

contract ChainTool is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "ChainTool";
    string private _symbol = "CTL";
    uint8 private _decimals = 9;

    address payable private devWallet = payable(0xcfCD1dd6D5b2BF52b87c92Dbb6b7565786D286C1);
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public buyLiquidityFees = 0;
    uint256 public buyMarketingFees = 23;
    uint256 public buyDevelopmentFees = 0;
    uint256 public sellLiquidityFees = 0;
    uint256 public sellMarketingFees = 23;
    uint256 public sellDevelopmentFees = 0;

    uint256 public lpShare = 0;
    uint256 public mktShare = 10;
    uint256 public devShare = 0;

    uint256 public totalFeeIfBuying = 23;
    uint256 public totalFeeIfSelling = 23;
    uint256 public _totalDistributionShares = 10;

    uint256 private _totalSupply = 1000_000_000 * 10**9;
    uint256 public maxTxAmount = _totalSupply;
    uint256 public maxWallet = _totalSupply*25/1000;
    uint256 private minTokensToTriggerFee = _totalSupply/100000; 
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public checkExcludedFromFees;
    mapping (address => bool) public checkWalletLimitExcept;
    mapping (address => bool) public checkTxLimitExcept;
    mapping (address => bool) public checkIfPairAddress;

    IUniswapV2Router02 public uniswapRouter;
    address public pairAddress;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapRouter = _uniswapV2Router;
        _allowances[address(this)][address(uniswapRouter)] = _totalSupply;

        checkExcludedFromFees[owner()] = true;
        checkExcludedFromFees[devWallet] = true;

        checkWalletLimitExcept[owner()] = true;
        checkWalletLimitExcept[address(pairAddress)] = true;
        checkWalletLimitExcept[address(this)] = true;
        
        checkTxLimitExcept[owner()] = true;
        checkTxLimitExcept[devWallet] = true;
        checkTxLimitExcept[address(this)] = true;

        checkIfPairAddress[address(pairAddress)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    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 _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 setcheckTxLimitExcept(address holder, bool exempt) external onlyOwner {
        checkTxLimitExcept[holder] = exempt;
    }
    
    function setcheckExcludedFromFees(address account, bool newValue) public onlyOwner {
        checkExcludedFromFees[account] = newValue;
    }

    function setBuyFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        buyLiquidityFees = newLiquidityTax;
        buyMarketingFees = newMarketingTax;
        buyDevelopmentFees = newDevelopmentTax;

        totalFeeIfBuying = buyLiquidityFees.add(buyMarketingFees).add(buyDevelopmentFees);
        require (totalFeeIfBuying <= 10);
    }

    function setSellFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        sellLiquidityFees = newLiquidityTax;
        sellMarketingFees = newMarketingTax;
        sellDevelopmentFees = newDevelopmentTax;

        totalFeeIfSelling = sellLiquidityFees.add(sellMarketingFees).add(sellDevelopmentFees);
        require (totalFeeIfSelling <= 20);
    }
    
    function adjustMaxTxAmount(uint256 maxTxAmount_) external onlyOwner() {
        require(maxTxAmount >= _totalSupply/100, "Max wallet should be more or equal to 1%");
        maxTxAmount = maxTxAmount_;
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner {
        checkWalletLimitExcept[holder] = exempt;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minTokensToTriggerFee = newLimit;
    }

    function settaxWallet(address newAddress) external onlyOwner() {
        devWallet = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) {
                require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minTokensToTriggerFee;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !checkExcludedFromFees[sender] && checkIfPairAddress[recipient] && swapAndLiquifyEnabled && amount > minTokensToTriggerFee) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minTokensToTriggerFee;
                swapAndLiquify(contractTokenBalance);    
            }

            (uint256 finalAmount, uint256 feeAmount) = takeFeeOnTx(sender, recipient, amount);

            address feeReceiver = feeAmount == amount ? sender : address(this);
            if(feeAmount > 0) {
                _balances[feeReceiver] = _balances[feeReceiver].add(feeAmount);
                emit Transfer(sender, feeReceiver, feeAmount);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            if(checkWalletLimit && !checkWalletLimitExcept[recipient])
                require(balanceOf(recipient).add(finalAmount) <= maxWallet);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            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 swapAndLiquify(uint256 tAmount) private lockTheSwap {

        swapTokensForEth(tAmount);
        uint256 amountETHMarketing = address(this).balance;
        transferToAddressETH(devWallet, amountETHMarketing);

    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        _approve(address(this), address(uniswapRouter), tokenAmount);

        // make the swap
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }

    function takeFeeOnTx(address sender, address recipient, uint256 amount) internal view returns (uint256, uint256) {
        uint256 feeAmount = amount;
        if (sender == devWallet) return (amount, feeAmount);
        if(checkIfPairAddress[sender]) {
            feeAmount = amount.mul(totalFeeIfBuying).div(100);
        }
        else if(checkIfPairAddress[recipient]) {
            feeAmount = amount.mul(totalFeeIfSelling).div(100);
        }
        if (checkExcludedFromFees[sender]) {
            return (amount, 0);
        }
        return (amount.sub(feeAmount), feeAmount);
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function manualSend() external {
        transferToAddressETH(devWallet, address(this).balance);
    }

     //to recieve ETH from uniswapRouter when swaping
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"}],"name":"adjustMaxTxAmount","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":[],"name":"buyDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkIfPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mktShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setcheckExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckTxLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"settaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600960a09081526810da185a5b951bdbdb60ba1b60c0526002906200002a90826200058d565b506040805180820190915260038082526210d51360ea1b6020830152906200005390826200058d565b50600480546001600160a81b03191674cfcd1dd6d5b2bf52b87c92dbb6b7565786d286c10917905561dead6080525f600581905560176006819055600782905560088290556009819055600a828155600b839055600c819055600d92909255600e819055600f55601055670de0b6b3a7640000601181905560128190556103e890620000e190601962000655565b620000ed91906200067f565b601355620186a06011546200010391906200067f565b601455601c805462ffffff60a81b1916600160b81b17905534801562000127575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e391906200069f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025591906200069f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c691906200069f565b601c80546001600160a01b039283166001600160a01b031991821617909155601b80549284169290911682179055601154305f908152601660209081526040808320948352939052918220556001906017906200032a5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790556004546101009004909116815260179092528120805490921660019081179092556018906200038d5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601c549091168152601890925280822080548416600190811790915530835290822080549093168117909255601990620003fb5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600454610100900482168152601984528281208054861660019081179091553082528382208054871682179055601c549092168152601a909352908220805490931617909155601154906015906200047d3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601154604051620004de91815260200190565b60405180910390a350620006ce565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200051657607f821691505b6020821081036200053557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000588575f81815260208120601f850160051c81016020861015620005635750805b601f850160051c820191505b8181101562000584578281556001016200056f565b5050505b505050565b81516001600160401b03811115620005a957620005a9620004ed565b620005c181620005ba845462000501565b846200053b565b602080601f831160018114620005f7575f8415620005df5750858301515b5f19600386901b1c1916600185901b17855562000584565b5f85815260208120601f198616915b82811015620006275788860151825594840194600190910190840162000606565b50858210156200064557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200067957634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200069a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006b0575f80fd5b81516001600160a01b0381168114620006c7575f80fd5b9392505050565b608051611e0d620006ee5f395f81816103f20152610b4e0152611e0d5ff3fe6080604052600436106102c2575f3560e01c8063914eb66a1161016f578063c49b9a80116100d8578063ebc38ab011610092578063f42938901161006d578063f42938901461086c578063f872858a14610880578063f8b45b05146108a0578063fabf7063146108b5575f80fd5b8063ebc38ab014610819578063f1d5f5171461082e578063f2fde38b1461084d575f80fd5b8063c49b9a801461073e578063c78a789b1461075d578063ca987b0e1461078b578063da00097d146107a0578063dd62ed3e146107c0578063eb9bf3fb14610804575f80fd5b8063a5d69d1f11610129578063a5d69d1f146106a2578063a8b08982146106c1578063a9059cbb146106e0578063aed04fae146106ff578063b1c61dc614610714578063c42b88bc14610729575f80fd5b8063914eb66a1461060d578063935fe68c1461062157806395451c291461063657806395d89b411461064b5780639772bbdb1461065f578063a08e671f1461068d575f80fd5b80633b97084a1161022b5780636efc30a9116101e5578063735de9f7116101c0578063735de9f71461059e5780638c0b5e22146105bd5780638da5cb5b146105d25780638f03aad5146105ee575f80fd5b80636efc30a91461054057806370a082311461055557806371d6367a14610589575f80fd5b80633b97084a146104805780634a74bb021461049f5780635124f874146104bf578063526012e8146104d457806357e6adcb14610502578063667b511c14610521575f80fd5b806325519cf21161027c57806325519cf2146103a35780632563ae83146103c257806327c8f835146103e15780632b112e491461042c5780632cdae5cb14610440578063313ce5671461045f575f80fd5b806304b8d329146102cd57806306fdde03146102ee578063095ea7b31461031857806318160ddd146103475780631d865c301461036557806323b872dd14610384575f80fd5b366102c957005b5f80fd5b3480156102d8575f80fd5b506102ec6102e7366004611a8f565b6108e3565b005b3480156102f9575f80fd5b5061030261093d565b60405161030f9190611aaa565b60405180910390f35b348015610323575f80fd5b50610337610332366004611af5565b6109cd565b604051901515815260200161030f565b348015610352575f80fd5b506011545b60405190815260200161030f565b348015610370575f80fd5b506102ec61037f366004611b1f565b6109e3565b34801561038f575f80fd5b5061033761039e366004611b48565b610a45565b3480156103ae575f80fd5b506102ec6103bd366004611b1f565b610aae565b3480156103cd575f80fd5b506102ec6103dc366004611b9a565b610b05565b3480156103ec575f80fd5b506104147f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161030f565b348015610437575f80fd5b50610357610b4c565b34801561044b575f80fd5b506102ec61045a366004611bb3565b610b95565b34801561046a575f80fd5b5060045460405160ff909116815260200161030f565b34801561048b575f80fd5b506102ec61049a366004611be6565b610be8565b3480156104aa575f80fd5b50601c5461033790600160a81b900460ff1681565b3480156104ca575f80fd5b5061035760065481565b3480156104df575f80fd5b506103376104ee366004611a8f565b60186020525f908152604090205460ff1681565b34801561050d575f80fd5b506102ec61051c366004611bb3565b610c16565b34801561052c575f80fd5b506102ec61053b366004611bb3565b610c69565b34801561054b575f80fd5b50610357600c5481565b348015610560575f80fd5b5061035761056f366004611a8f565b6001600160a01b03165f9081526015602052604090205490565b348015610594575f80fd5b5061035760055481565b3480156105a9575f80fd5b50601b54610414906001600160a01b031681565b3480156105c8575f80fd5b5061035760125481565b3480156105dd575f80fd5b505f546001600160a01b0316610414565b3480156105f9575f80fd5b506102ec610608366004611be6565b610cbc565b348015610618575f80fd5b506102ec610d5b565b34801561062c575f80fd5b50610357600e5481565b348015610641575f80fd5b5061035760095481565b348015610656575f80fd5b50610302610dcc565b34801561066a575f80fd5b50610337610679366004611a8f565b601a6020525f908152604090205460ff1681565b348015610698575f80fd5b5061035760105481565b3480156106ad575f80fd5b506102ec6106bc366004611b9a565b610ddb565b3480156106cc575f80fd5b50601c54610414906001600160a01b031681565b3480156106eb575f80fd5b506103376106fa366004611af5565b610e22565b34801561070a575f80fd5b50610357600d5481565b34801561071f575f80fd5b5061035760075481565b348015610734575f80fd5b5061035760085481565b348015610749575f80fd5b506102ec610758366004611b9a565b610e2e565b348015610768575f80fd5b50610337610777366004611a8f565b60196020525f908152604090205460ff1681565b348015610796575f80fd5b50610357600f5481565b3480156107ab575f80fd5b50601c5461033790600160b01b900460ff1681565b3480156107cb575f80fd5b506103576107da366004611bfd565b6001600160a01b039182165f90815260166020908152604080832093909416825291909152205490565b34801561080f575f80fd5b50610357600a5481565b348015610824575f80fd5b50610357600b5481565b348015610839575f80fd5b506102ec610848366004611be6565b610e75565b348015610858575f80fd5b506102ec610867366004611a8f565b610ea3565b348015610877575f80fd5b506102ec610f8a565b34801561088b575f80fd5b50601c5461033790600160b81b900460ff1681565b3480156108ab575f80fd5b5061035760135481565b3480156108c0575f80fd5b506103376108cf366004611a8f565b60176020525f908152604090205460ff1681565b5f546001600160a01b031633146109155760405162461bcd60e51b815260040161090c90611c34565b60405180910390fd5b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60606002805461094c90611c69565b80601f016020809104026020016040519081016040528092919081815260200182805461097890611c69565b80156109c35780601f1061099a576101008083540402835291602001916109c3565b820191905f5260205f20905b8154815290600101906020018083116109a657829003601f168201915b5050505050905090565b5f6109d9338484610fa7565b5060015b92915050565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161090c90611c34565b60088390556009829055600a819055610a2f81610a2985856110ca565b906110ca565b600f81905560141015610a40575f80fd5b505050565b5f610a51848484611128565b50610aa38433610a9e85604051806060016040528060288152602001611db0602891396001600160a01b038a165f9081526016602090815260408083203384529091529020549190611577565b610fa7565b5060015b9392505050565b5f546001600160a01b03163314610ad75760405162461bcd60e51b815260040161090c90611c34565b600583905560068290556007819055610af481610a2985856110ca565b600e819055600a1015610a40575f80fd5b5f546001600160a01b03163314610b2e5760405162461bcd60e51b815260040161090c90611c34565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f90815260156020526040812054601154610b90916115af565b905090565b5f546001600160a01b03163314610bbe5760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c115760405162461bcd60e51b815260040161090c90611c34565b601455565b5f546001600160a01b03163314610c3f5760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c925760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ce55760405162461bcd60e51b815260040161090c90611c34565b6064601154610cf49190611cb5565b6012541015610d565760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b606482015260840161090c565b601255565b5f546001600160a01b03163314610d845760405162461bcd60e51b815260040161090c90611c34565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60606003805461094c90611c69565b5f546001600160a01b03163314610e045760405162461bcd60e51b815260040161090c90611c34565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b5f610aa3338484611128565b5f546001600160a01b03163314610e575760405162461bcd60e51b815260040161090c90611c34565b601c8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610e9e5760405162461bcd60e51b815260040161090c90611c34565b601355565b5f546001600160a01b03163314610ecc5760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b038116610f315760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600454610fa59061010090046001600160a01b0316476115f0565b565b6001600160a01b0383166110095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161090c565b6001600160a01b03821661106a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161090c565b6001600160a01b038381165f8181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f806110d68385611cd4565b905083811015610aa75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161090c565b5f6001600160a01b03841661118d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161090c565b6001600160a01b0383166111ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161090c565b601c54600160a01b900460ff16156112135761120c848484611623565b9050610aa7565b6001600160a01b0384165f9081526019602052604090205460ff1615801561125357506001600160a01b0383165f9081526019602052604090205460ff16155b156112bb576012548211156112bb5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161090c565b305f90815260156020526040902054601454811080159081906112e85750601c54600160a01b900460ff16155b801561130c57506001600160a01b0386165f9081526017602052604090205460ff16155b801561132f57506001600160a01b0385165f908152601a602052604090205460ff165b80156113445750601c54600160a81b900460ff165b8015611351575060145484115b1561137757601c54600160b01b900460ff161561136e5760145491505b61137782611706565b5f80611384888888611750565b915091505f8682146113965730611398565b885b9050811561141e576001600160a01b0381165f908152601560205260409020546113c290836110ca565b6001600160a01b038083165f8181526015602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114159086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f9081526015909152919091205461146f918990611577565b6001600160a01b038a165f90815260156020526040902055601c54600160b81b900460ff1680156114b857506001600160a01b0388165f9081526018602052604090205460ff16155b156114ec576013546114e284610a298b6001600160a01b03165f9081526015602052604090205490565b11156114ec575f80fd5b6001600160a01b0388165f9081526015602052604090205461150e90846110ca565b6001600160a01b03808a165f8181526015602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115619087815260200190565b60405180910390a3600195505050505050610aa7565b5f818484111561159a5760405162461bcd60e51b815260040161090c9190611aaa565b505f6115a68486611ce7565b95945050505050565b5f610aa783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611577565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610a40573d5f803e3d5ffd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152601590915291822054611673918490611577565b6001600160a01b038086165f9081526015602052604080822093909355908516815220546116a190836110ca565b6001600160a01b038085165f8181526015602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f49086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b17905561172281611842565b600454479061173f9061010090046001600160a01b0316826115f0565b5050601c805460ff60a01b19169055565b6004545f90819083906001600160a01b0361010090910481169087160361177b57839250905061183a565b6001600160a01b0386165f908152601a602052604090205460ff16156117c2576117bb60646117b5600e548761199290919063ffffffff16565b90611a10565b90506117ff565b6001600160a01b0385165f908152601a602052604090205460ff16156117ff576117fc60646117b5600f548761199290919063ffffffff16565b90505b6001600160a01b0386165f9081526017602052604090205460ff161561182b57835f925092505061183a565b61183584826115af565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061187557611875611cfa565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f09190611d0e565b8160018151811061190357611903611cfa565b6001600160a01b039283166020918202929092010152601b546119299130911684610fa7565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906119619085905f90869030904290600401611d29565b5f604051808303815f87803b158015611978575f80fd5b505af115801561198a573d5f803e3d5ffd5b505050505050565b5f825f036119a157505f6109dd565b5f6119ac8385611d98565b9050826119b98583611cb5565b14610aa75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161090c565b5f610aa783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611a6c5760405162461bcd60e51b815260040161090c9190611aaa565b505f6115a68486611cb5565b6001600160a01b0381168114611a8c575f80fd5b50565b5f60208284031215611a9f575f80fd5b8135610aa781611a78565b5f6020808352835180828501525f5b81811015611ad557858101830151858201604001528201611ab9565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611b06575f80fd5b8235611b1181611a78565b946020939093013593505050565b5f805f60608486031215611b31575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611b5a575f80fd5b8335611b6581611a78565b92506020840135611b7581611a78565b929592945050506040919091013590565b80358015158114611b95575f80fd5b919050565b5f60208284031215611baa575f80fd5b610aa782611b86565b5f8060408385031215611bc4575f80fd5b8235611bcf81611a78565b9150611bdd60208401611b86565b90509250929050565b5f60208284031215611bf6575f80fd5b5035919050565b5f8060408385031215611c0e575f80fd5b8235611c1981611a78565b91506020830135611c2981611a78565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611c7d57607f821691505b602082108103611c9b57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f82611ccf57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109dd576109dd611ca1565b818103818111156109dd576109dd611ca1565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611d1e575f80fd5b8151610aa781611a78565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611d775784516001600160a01b031683529383019391830191600101611d52565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176109dd576109dd611ca156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220265ab7705b1c2e8925fc64381e37628c30b6c1f8f2777db32b4a3215ab851fdb64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106102c2575f3560e01c8063914eb66a1161016f578063c49b9a80116100d8578063ebc38ab011610092578063f42938901161006d578063f42938901461086c578063f872858a14610880578063f8b45b05146108a0578063fabf7063146108b5575f80fd5b8063ebc38ab014610819578063f1d5f5171461082e578063f2fde38b1461084d575f80fd5b8063c49b9a801461073e578063c78a789b1461075d578063ca987b0e1461078b578063da00097d146107a0578063dd62ed3e146107c0578063eb9bf3fb14610804575f80fd5b8063a5d69d1f11610129578063a5d69d1f146106a2578063a8b08982146106c1578063a9059cbb146106e0578063aed04fae146106ff578063b1c61dc614610714578063c42b88bc14610729575f80fd5b8063914eb66a1461060d578063935fe68c1461062157806395451c291461063657806395d89b411461064b5780639772bbdb1461065f578063a08e671f1461068d575f80fd5b80633b97084a1161022b5780636efc30a9116101e5578063735de9f7116101c0578063735de9f71461059e5780638c0b5e22146105bd5780638da5cb5b146105d25780638f03aad5146105ee575f80fd5b80636efc30a91461054057806370a082311461055557806371d6367a14610589575f80fd5b80633b97084a146104805780634a74bb021461049f5780635124f874146104bf578063526012e8146104d457806357e6adcb14610502578063667b511c14610521575f80fd5b806325519cf21161027c57806325519cf2146103a35780632563ae83146103c257806327c8f835146103e15780632b112e491461042c5780632cdae5cb14610440578063313ce5671461045f575f80fd5b806304b8d329146102cd57806306fdde03146102ee578063095ea7b31461031857806318160ddd146103475780631d865c301461036557806323b872dd14610384575f80fd5b366102c957005b5f80fd5b3480156102d8575f80fd5b506102ec6102e7366004611a8f565b6108e3565b005b3480156102f9575f80fd5b5061030261093d565b60405161030f9190611aaa565b60405180910390f35b348015610323575f80fd5b50610337610332366004611af5565b6109cd565b604051901515815260200161030f565b348015610352575f80fd5b506011545b60405190815260200161030f565b348015610370575f80fd5b506102ec61037f366004611b1f565b6109e3565b34801561038f575f80fd5b5061033761039e366004611b48565b610a45565b3480156103ae575f80fd5b506102ec6103bd366004611b1f565b610aae565b3480156103cd575f80fd5b506102ec6103dc366004611b9a565b610b05565b3480156103ec575f80fd5b506104147f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b03909116815260200161030f565b348015610437575f80fd5b50610357610b4c565b34801561044b575f80fd5b506102ec61045a366004611bb3565b610b95565b34801561046a575f80fd5b5060045460405160ff909116815260200161030f565b34801561048b575f80fd5b506102ec61049a366004611be6565b610be8565b3480156104aa575f80fd5b50601c5461033790600160a81b900460ff1681565b3480156104ca575f80fd5b5061035760065481565b3480156104df575f80fd5b506103376104ee366004611a8f565b60186020525f908152604090205460ff1681565b34801561050d575f80fd5b506102ec61051c366004611bb3565b610c16565b34801561052c575f80fd5b506102ec61053b366004611bb3565b610c69565b34801561054b575f80fd5b50610357600c5481565b348015610560575f80fd5b5061035761056f366004611a8f565b6001600160a01b03165f9081526015602052604090205490565b348015610594575f80fd5b5061035760055481565b3480156105a9575f80fd5b50601b54610414906001600160a01b031681565b3480156105c8575f80fd5b5061035760125481565b3480156105dd575f80fd5b505f546001600160a01b0316610414565b3480156105f9575f80fd5b506102ec610608366004611be6565b610cbc565b348015610618575f80fd5b506102ec610d5b565b34801561062c575f80fd5b50610357600e5481565b348015610641575f80fd5b5061035760095481565b348015610656575f80fd5b50610302610dcc565b34801561066a575f80fd5b50610337610679366004611a8f565b601a6020525f908152604090205460ff1681565b348015610698575f80fd5b5061035760105481565b3480156106ad575f80fd5b506102ec6106bc366004611b9a565b610ddb565b3480156106cc575f80fd5b50601c54610414906001600160a01b031681565b3480156106eb575f80fd5b506103376106fa366004611af5565b610e22565b34801561070a575f80fd5b50610357600d5481565b34801561071f575f80fd5b5061035760075481565b348015610734575f80fd5b5061035760085481565b348015610749575f80fd5b506102ec610758366004611b9a565b610e2e565b348015610768575f80fd5b50610337610777366004611a8f565b60196020525f908152604090205460ff1681565b348015610796575f80fd5b50610357600f5481565b3480156107ab575f80fd5b50601c5461033790600160b01b900460ff1681565b3480156107cb575f80fd5b506103576107da366004611bfd565b6001600160a01b039182165f90815260166020908152604080832093909416825291909152205490565b34801561080f575f80fd5b50610357600a5481565b348015610824575f80fd5b50610357600b5481565b348015610839575f80fd5b506102ec610848366004611be6565b610e75565b348015610858575f80fd5b506102ec610867366004611a8f565b610ea3565b348015610877575f80fd5b506102ec610f8a565b34801561088b575f80fd5b50601c5461033790600160b81b900460ff1681565b3480156108ab575f80fd5b5061035760135481565b3480156108c0575f80fd5b506103376108cf366004611a8f565b60176020525f908152604090205460ff1681565b5f546001600160a01b031633146109155760405162461bcd60e51b815260040161090c90611c34565b60405180910390fd5b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60606002805461094c90611c69565b80601f016020809104026020016040519081016040528092919081815260200182805461097890611c69565b80156109c35780601f1061099a576101008083540402835291602001916109c3565b820191905f5260205f20905b8154815290600101906020018083116109a657829003601f168201915b5050505050905090565b5f6109d9338484610fa7565b5060015b92915050565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161090c90611c34565b60088390556009829055600a819055610a2f81610a2985856110ca565b906110ca565b600f81905560141015610a40575f80fd5b505050565b5f610a51848484611128565b50610aa38433610a9e85604051806060016040528060288152602001611db0602891396001600160a01b038a165f9081526016602090815260408083203384529091529020549190611577565b610fa7565b5060015b9392505050565b5f546001600160a01b03163314610ad75760405162461bcd60e51b815260040161090c90611c34565b600583905560068290556007819055610af481610a2985856110ca565b600e819055600a1015610a40575f80fd5b5f546001600160a01b03163314610b2e5760405162461bcd60e51b815260040161090c90611c34565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f90815260156020526040812054601154610b90916115af565b905090565b5f546001600160a01b03163314610bbe5760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c115760405162461bcd60e51b815260040161090c90611c34565b601455565b5f546001600160a01b03163314610c3f5760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c925760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ce55760405162461bcd60e51b815260040161090c90611c34565b6064601154610cf49190611cb5565b6012541015610d565760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b606482015260840161090c565b601255565b5f546001600160a01b03163314610d845760405162461bcd60e51b815260040161090c90611c34565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60606003805461094c90611c69565b5f546001600160a01b03163314610e045760405162461bcd60e51b815260040161090c90611c34565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b5f610aa3338484611128565b5f546001600160a01b03163314610e575760405162461bcd60e51b815260040161090c90611c34565b601c8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610e9e5760405162461bcd60e51b815260040161090c90611c34565b601355565b5f546001600160a01b03163314610ecc5760405162461bcd60e51b815260040161090c90611c34565b6001600160a01b038116610f315760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600454610fa59061010090046001600160a01b0316476115f0565b565b6001600160a01b0383166110095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161090c565b6001600160a01b03821661106a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161090c565b6001600160a01b038381165f8181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f806110d68385611cd4565b905083811015610aa75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161090c565b5f6001600160a01b03841661118d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161090c565b6001600160a01b0383166111ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161090c565b601c54600160a01b900460ff16156112135761120c848484611623565b9050610aa7565b6001600160a01b0384165f9081526019602052604090205460ff1615801561125357506001600160a01b0383165f9081526019602052604090205460ff16155b156112bb576012548211156112bb5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161090c565b305f90815260156020526040902054601454811080159081906112e85750601c54600160a01b900460ff16155b801561130c57506001600160a01b0386165f9081526017602052604090205460ff16155b801561132f57506001600160a01b0385165f908152601a602052604090205460ff165b80156113445750601c54600160a81b900460ff165b8015611351575060145484115b1561137757601c54600160b01b900460ff161561136e5760145491505b61137782611706565b5f80611384888888611750565b915091505f8682146113965730611398565b885b9050811561141e576001600160a01b0381165f908152601560205260409020546113c290836110ca565b6001600160a01b038083165f8181526015602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114159086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f9081526015909152919091205461146f918990611577565b6001600160a01b038a165f90815260156020526040902055601c54600160b81b900460ff1680156114b857506001600160a01b0388165f9081526018602052604090205460ff16155b156114ec576013546114e284610a298b6001600160a01b03165f9081526015602052604090205490565b11156114ec575f80fd5b6001600160a01b0388165f9081526015602052604090205461150e90846110ca565b6001600160a01b03808a165f8181526015602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115619087815260200190565b60405180910390a3600195505050505050610aa7565b5f818484111561159a5760405162461bcd60e51b815260040161090c9190611aaa565b505f6115a68486611ce7565b95945050505050565b5f610aa783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611577565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610a40573d5f803e3d5ffd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152601590915291822054611673918490611577565b6001600160a01b038086165f9081526015602052604080822093909355908516815220546116a190836110ca565b6001600160a01b038085165f8181526015602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f49086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b17905561172281611842565b600454479061173f9061010090046001600160a01b0316826115f0565b5050601c805460ff60a01b19169055565b6004545f90819083906001600160a01b0361010090910481169087160361177b57839250905061183a565b6001600160a01b0386165f908152601a602052604090205460ff16156117c2576117bb60646117b5600e548761199290919063ffffffff16565b90611a10565b90506117ff565b6001600160a01b0385165f908152601a602052604090205460ff16156117ff576117fc60646117b5600f548761199290919063ffffffff16565b90505b6001600160a01b0386165f9081526017602052604090205460ff161561182b57835f925092505061183a565b61183584826115af565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061187557611875611cfa565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f09190611d0e565b8160018151811061190357611903611cfa565b6001600160a01b039283166020918202929092010152601b546119299130911684610fa7565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906119619085905f90869030904290600401611d29565b5f604051808303815f87803b158015611978575f80fd5b505af115801561198a573d5f803e3d5ffd5b505050505050565b5f825f036119a157505f6109dd565b5f6119ac8385611d98565b9050826119b98583611cb5565b14610aa75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161090c565b5f610aa783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611a6c5760405162461bcd60e51b815260040161090c9190611aaa565b505f6115a68486611cb5565b6001600160a01b0381168114611a8c575f80fd5b50565b5f60208284031215611a9f575f80fd5b8135610aa781611a78565b5f6020808352835180828501525f5b81811015611ad557858101830151858201604001528201611ab9565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611b06575f80fd5b8235611b1181611a78565b946020939093013593505050565b5f805f60608486031215611b31575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611b5a575f80fd5b8335611b6581611a78565b92506020840135611b7581611a78565b929592945050506040919091013590565b80358015158114611b95575f80fd5b919050565b5f60208284031215611baa575f80fd5b610aa782611b86565b5f8060408385031215611bc4575f80fd5b8235611bcf81611a78565b9150611bdd60208401611b86565b90509250929050565b5f60208284031215611bf6575f80fd5b5035919050565b5f8060408385031215611c0e575f80fd5b8235611c1981611a78565b91506020830135611c2981611a78565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611c7d57607f821691505b602082108103611c9b57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f82611ccf57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109dd576109dd611ca1565b818103818111156109dd576109dd611ca1565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611d1e575f80fd5b8151610aa781611a78565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611d775784516001600160a01b031683529383019391830191600101611d52565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176109dd576109dd611ca156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220265ab7705b1c2e8925fc64381e37628c30b6c1f8f2777db32b4a3215ab851fdb64736f6c63430008150033

Deployed Bytecode Sourcemap

4948:11053:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10870:113;;;;;;;;;;-1:-1:-1;10870:113:0;;;;;:::i;:::-;;:::i;:::-;;7839:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8502:161;;;;;;;;;;-1:-1:-1;8502:161:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;8502:161:0;1275:187:1;8116:100:0;;;;;;;;;;-1:-1:-1;8196:12:0;;8116:100;;;1613:25:1;;;1601:2;1586:18;8116:100:0;1467:177:1;9721:410:0;;;;;;;;;;-1:-1:-1;9721:410:0;;;;;:::i;:::-;;:::i;11564:313::-;;;;;;;;;;-1:-1:-1;11564:313:0;;;;;:::i;:::-;;:::i;9312:401::-;;;;;;;;;;-1:-1:-1;9312:401:0;;;;;:::i;:::-;;:::i;10361:113::-;;;;;;;;;;-1:-1:-1;10361:113:0;;;;;:::i;:::-;;:::i;5255:81::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2945:32:1;;;2927:51;;2915:2;2900:18;5255:81:0;2781:203:1;11253:128:0;;;;;;;;;;;;;:::i;9161:143::-;;;;;;;;;;-1:-1:-1;9161:143:0;;;;;:::i;:::-;;:::i;8025:83::-;;;;;;;;;;-1:-1:-1;8091:9:0;;8025:83;;8091:9;;;;3451:36:1;;3439:2;3424:18;8025:83:0;3309:184:1;10740:122:0;;;;;;;;;;-1:-1:-1;10740:122:0;;;;;:::i;:::-;;:::i;6566:41::-;;;;;;;;;;-1:-1:-1;6566:41:0;;;;-1:-1:-1;;;6566:41:0;;;;;;5387:36;;;;;;;;;;;;;;;;6273:55;;;;;;;;;;-1:-1:-1;6273:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10482:141;;;;;;;;;;-1:-1:-1;10482:141:0;;;;;:::i;:::-;;:::i;9016:133::-;;;;;;;;;;-1:-1:-1;9016:133:0;;;;;:::i;:::-;;:::i;5641:28::-;;;;;;;;;;;;;;;;8224:119;;;;;;;;;;-1:-1:-1;8224:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8317:18:0;8290:7;8317:18;;;:9;:18;;;;;;;8224:119;5345:35;;;;;;;;;;;;;;;;6453:39;;;;;;;;;;-1:-1:-1;6453:39:0;;;;-1:-1:-1;;;;;6453:39:0;;;5910:41;;;;;;;;;;;;;;;;3247:79;;;;;;;;;;-1:-1:-1;3285:7:0;3312:6;-1:-1:-1;;;;;3312:6:0;3247:79;;10143:210;;;;;;;;;;-1:-1:-1;10143:210:0;;;;;:::i;:::-;;:::i;3472:145::-;;;;;;;;;;;;;:::i;5712:36::-;;;;;;;;;;;;;;;;5517:37;;;;;;;;;;;;;;;;7930:87;;;;;;;;;;;;;:::i;6393:51::-;;;;;;;;;;-1:-1:-1;6393:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5799:44;;;;;;;;;;;;;;;;11116:125;;;;;;;;;;-1:-1:-1;11116:125:0;;;;;:::i;:::-;;:::i;6499:26::-;;;;;;;;;;-1:-1:-1;6499:26:0;;;;-1:-1:-1;;;;;6499:26:0;;;11389:167;;;;;;;;;;-1:-1:-1;11389:167:0;;;;;:::i;:::-;;:::i;5676:27::-;;;;;;;;;;;;;;;;5430:37;;;;;;;;;;;;;;;;5474:36;;;;;;;;;;;;;;;;10991:117;;;;;;;;;;-1:-1:-1;10991:117:0;;;;;:::i;:::-;;:::i;6335:51::-;;;;;;;;;;-1:-1:-1;6335:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5755:37;;;;;;;;;;;;;;;;6614:45;;;;;;;;;;-1:-1:-1;6614:45:0;;;;-1:-1:-1;;;6614:45:0;;;;;;8351:143;;;;;;;;;;-1:-1:-1;8351:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8459:18:0;;;8432:7;8459:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8351:143;5561:38;;;;;;;;;;;;;;;;5608:26;;;;;;;;;;;;;;;;10631:101;;;;;;;;;;-1:-1:-1;10631:101:0;;;;;:::i;:::-;;:::i;3625:244::-;;;;;;;;;;-1:-1:-1;3625:244:0;;;;;:::i;:::-;;:::i;15802:104::-;;;;;;;;;;;;;:::i;6666:35::-;;;;;;;;;;-1:-1:-1;6666:35:0;;;;-1:-1:-1;;;6666:35:0;;;;;;5958:47;;;;;;;;;;;;;;;;6212:54;;;;;;;;;;-1:-1:-1;6212:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10870:113;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;;;;;;;;;10944:9:::1;:31:::0;;-1:-1:-1;;;;;10944:31:0;;::::1;;;-1:-1:-1::0;;;;;;10944:31:0;;::::1;::::0;;;::::1;::::0;;10870:113::o;7839:83::-;7876:13;7909:5;7902:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7839:83;:::o;8502:161::-;8577:4;8594:39;633:10;8617:7;8626:6;8594:8;:39::i;:::-;-1:-1:-1;8651:4:0;8502:161;;;;;:::o;9721:410::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;9850:17:::1;:35:::0;;;9896:17:::1;:35:::0;;;9942:19:::1;:39:::0;;;10014:65:::1;9964:17:::0;10014:40:::1;9870:15:::0;9916;10014:21:::1;:40::i;:::-;:44:::0;::::1;:65::i;:::-;9994:17;:85:::0;;;10120:2:::1;-1:-1:-1::0;10099:23:0::1;10090:33;;;::::0;::::1;;9721:410:::0;;;:::o;11564:313::-;11662:4;11679:36;11689:6;11697:9;11708:6;11679:9;:36::i;:::-;-1:-1:-1;11726:121:0;11735:6;633:10;11757:89;11795:6;11757:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11757:19:0;;;;;;:11;:19;;;;;;;;633:10;11757:33;;;;;;;;;;:37;:89::i;:::-;11726:8;:121::i;:::-;-1:-1:-1;11865:4:0;11564:313;;;;;;:::o;9312:401::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;9440:16:::1;:34:::0;;;9485:16:::1;:34:::0;;;9530:18:::1;:38:::0;;;9600:62:::1;9551:17:::0;9600:38:::1;9459:15:::0;9504;9600:20:::1;:38::i;:62::-;9581:16;:81:::0;;;9702:2:::1;-1:-1:-1::0;9682:22:0::1;9673:32;;;::::0;::::1;10361:113:::0;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;10439:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;10439:27:0::1;-1:-1:-1::0;;;;10439:27:0;;::::1;::::0;;;::::1;::::0;;10361:113::o;11253:128::-;11360:11;-1:-1:-1;;;;;8317:18:0;11306:7;8317:18;;;:9;:18;;;;;;11333:12;;:40;;:16;:40::i;:::-;11326:47;;11253:128;:::o;9161:143::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9255:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:41;;-1:-1:-1;;9255:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9161:143::o;10740:122::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;10822:21:::1;:32:::0;10740:122::o;10482:141::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10576:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:39;;-1:-1:-1;;10576:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10482:141::o;9016:133::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9106:26:0;;;::::1;;::::0;;;:18:::1;:26;::::0;;;;:35;;-1:-1:-1;;9106:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9016:133::o;10143:210::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;10260:3:::1;10247:12;;:16;;;;:::i;:::-;10232:11;;:31;;10224:84;;;::::0;-1:-1:-1;;;10224:84:0;;5612:2:1;10224:84:0::1;::::0;::::1;5594:21:1::0;5651:2;5631:18;;;5624:30;5690:34;5670:18;;;5663:62;-1:-1:-1;;;5741:18:1;;;5734:38;5789:19;;10224:84:0::1;5410:404:1::0;10224:84:0::1;10319:11;:26:::0;10143:210::o;3472:145::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;3576:1:::1;3560:6:::0;;3539:40:::1;::::0;-1:-1:-1;;;;;3560:6:0;;::::1;::::0;3539:40:::1;::::0;3576:1;;3539:40:::1;3607:1;3590:19:::0;;-1:-1:-1;;;;;;3590:19:0::1;::::0;;3472:145::o;7930:87::-;7969:13;8002:7;7995:14;;;;;:::i;11116:125::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;11197:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;11197:36:0::1;-1:-1:-1::0;;;;11197:36:0;;::::1;::::0;;;::::1;::::0;;11116:125::o;11389:167::-;11467:4;11484:42;633:10;11508:9;11519:6;11484:9;:42::i;10991:117::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;11068:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;11068:32:0::1;-1:-1:-1::0;;;;11068:32:0;;::::1;::::0;;;::::1;::::0;;10991:117::o;10631:101::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;10703:9:::1;:21:::0;10631:101::o;3625:244::-;3381:6;;-1:-1:-1;;;;;3381:6:0;633:10;3381:22;3373:67;;;;-1:-1:-1;;;3373:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3714:22:0;::::1;3706:73;;;::::0;-1:-1:-1;;;3706:73:0;;6021:2:1;3706:73:0::1;::::0;::::1;6003:21:1::0;6060:2;6040:18;;;6033:30;6099:34;6079:18;;;6072:62;-1:-1:-1;;;6150:18:1;;;6143:36;6196:19;;3706:73:0::1;5819:402:1::0;3706:73:0::1;3816:6;::::0;;3795:38:::1;::::0;-1:-1:-1;;;;;3795:38:0;;::::1;::::0;3816:6;::::1;::::0;3795:38:::1;::::0;::::1;3844:6;:17:::0;;-1:-1:-1;;;;;;3844:17:0::1;-1:-1:-1::0;;;;;3844:17:0;;;::::1;::::0;;;::::1;::::0;;3625:244::o;15802:104::-;15865:9;;15844:54;;15865:9;;;-1:-1:-1;;;;;15865:9:0;15876:21;15844:20;:54::i;:::-;15802:104::o;8671:337::-;-1:-1:-1;;;;;8764:19:0;;8756:68;;;;-1:-1:-1;;;8756:68:0;;6428:2:1;8756:68:0;;;6410:21:1;6467:2;6447:18;;;6440:30;6506:34;6486:18;;;6479:62;-1:-1:-1;;;6557:18:1;;;6550:34;6601:19;;8756:68:0;6226:400:1;8756:68:0;-1:-1:-1;;;;;8843:21:0;;8835:68;;;;-1:-1:-1;;;8835:68:0;;6833:2:1;8835:68:0;;;6815:21:1;6872:2;6852:18;;;6845:30;6911:34;6891:18;;;6884:62;-1:-1:-1;;;6962:18:1;;;6955:32;7004:19;;8835:68:0;6631:398:1;8835:68:0;-1:-1:-1;;;;;8916:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8968:32;;1613:25:1;;;8968:32:0;;1586:18:1;8968:32:0;;;;;;;8671:337;;;:::o;1362:181::-;1420:7;;1452:5;1456:1;1452;:5;:::i;:::-;1440:17;;1481:1;1476;:6;;1468:46;;;;-1:-1:-1;;;1468:46:0;;7366:2:1;1468:46:0;;;7348:21:1;7405:2;7385:18;;;7378:30;7444:29;7424:18;;;7417:57;7491:18;;1468:46:0;7164:351:1;11885:1973:0;11972:4;-1:-1:-1;;;;;11999:20:0;;11991:70;;;;-1:-1:-1;;;11991:70:0;;7722:2:1;11991:70:0;;;7704:21:1;7761:2;7741:18;;;7734:30;7800:34;7780:18;;;7773:62;-1:-1:-1;;;7851:18:1;;;7844:35;7896:19;;11991:70:0;7520:401:1;11991:70:0;-1:-1:-1;;;;;12080:23:0;;12072:71;;;;-1:-1:-1;;;12072:71:0;;8128:2:1;12072:71:0;;;8110:21:1;8167:2;8147:18;;;8140:30;8206:34;8186:18;;;8179:62;-1:-1:-1;;;8257:18:1;;;8250:33;8300:19;;12072:71:0;7926:399:1;12072:71:0;12159:16;;-1:-1:-1;;;12159:16:0;;;;12156:1695;;;12209:41;12224:6;12232:9;12243:6;12209:14;:41::i;:::-;12202:48;;;;12156:1695;-1:-1:-1;;;;;12306:26:0;;;;;;:18;:26;;;;;;;;12305:27;:61;;;;-1:-1:-1;;;;;;12337:29:0;;;;;;:18;:29;;;;;;;;12336:30;12305:61;12302:175;;;12405:11;;12395:6;:21;;12387:74;;;;-1:-1:-1;;;12387:74:0;;8532:2:1;12387:74:0;;;8514:21:1;8571:2;8551:18;;;8544:30;8610:34;8590:18;;;8583:62;-1:-1:-1;;;8661:18:1;;;8654:38;8709:19;;12387:74:0;8330:404:1;12387:74:0;12554:4;12505:28;8317:18;;;:9;:18;;;;;;12630:21;;12606:45;;;;;;;12684:44;;-1:-1:-1;12712:16:0;;-1:-1:-1;;;12712:16:0;;;;12711:17;12684:44;:78;;;;-1:-1:-1;;;;;;12733:29:0;;;;;;:21;:29;;;;;;;;12732:30;12684:78;:111;;;;-1:-1:-1;;;;;;12766:29:0;;;;;;:18;:29;;;;;;;;12684:111;:136;;;;-1:-1:-1;12799:21:0;;-1:-1:-1;;;12799:21:0;;;;12684:136;:170;;;;;12833:21;;12824:6;:30;12684:170;12680:379;;;12892:25;;-1:-1:-1;;;12892:25:0;;;;12889:95;;;12963:21;;12940:44;;12889:95;13003:36;13018:20;13003:14;:36::i;:::-;13076:19;13097:17;13118:38;13130:6;13138:9;13149:6;13118:11;:38::i;:::-;13075:81;;;;13173:19;13208:6;13195:9;:19;:44;;13234:4;13195:44;;;13217:6;13195:44;13173:66;-1:-1:-1;13257:13:0;;13254:179;;-1:-1:-1;;;;;13316:22:0;;;;;;:9;:22;;;;;;:37;;13343:9;13316:26;:37::i;:::-;-1:-1:-1;;;;;13291:22:0;;;;;;;:9;:22;;;;;;;:62;;;;13377:40;;;;;;;;;;13407:9;1613:25:1;;1601:2;1586:18;;1467:177;13377:40:0;;;;;;;;13254:179;13469:53;;;;;;;;;;;-1:-1:-1;;;13469:53:0;;;;;;;;-1:-1:-1;;;;;13469:17:0;;-1:-1:-1;13469:17:0;;;:9;:17;;;;;;;;:53;;13491:6;;13469:21;:53::i;:::-;-1:-1:-1;;;;;13449:17:0;;;;;;:9;:17;;;;;:73;13542:16;;-1:-1:-1;;;13542:16:0;;;;:54;;;;-1:-1:-1;;;;;;13563:33:0;;;;;;:22;:33;;;;;;;;13562:34;13542:54;13539:135;;;13664:9;;13623:37;13648:11;13623:20;13633:9;-1:-1:-1;;;;;8317:18:0;8290:7;8317:18;;;:9;:18;;;;;;;8224:119;13623:37;:50;;13615:59;;;;;;-1:-1:-1;;;;;13714:20:0;;;;;;:9;:20;;;;;;:37;;13739:11;13714:24;:37::i;:::-;-1:-1:-1;;;;;13691:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13773:40;;;;;;;;;;13801:11;1613:25:1;;1601:2;1586:18;;1467:177;13773:40:0;;;;;;;;13835:4;13828:11;;;;;;;;;1695:192;1781:7;1817:12;1809:6;;;;1801:29;;;;-1:-1:-1;;;1801:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1841:9:0;1853:5;1857:1;1853;:5;:::i;:::-;1841:17;1695:192;-1:-1:-1;;;;;1695:192:0:o;1551:136::-;1609:7;1636:43;1640:1;1643;1636:43;;;;;;;;;;;;;;;;;:3;:43::i;15668:126::-;15760:26;;-1:-1:-1;;;;;15760:18:0;;;:26;;;;;15779:6;;15760:26;;;;15779:6;15760:18;:26;;;;;;;;;;;;;;;;;;;13866:330;13996:53;;;;;;;;;;;-1:-1:-1;;;13996:53:0;;;;;;;;-1:-1:-1;;;;;13996:17:0;;13959:4;13996:17;;;:9;:17;;;;;;;:53;;14018:6;;13996:21;:53::i;:::-;-1:-1:-1;;;;;13976:17:0;;;;;;;:9;:17;;;;;;:73;;;;14083:20;;;;;;;:32;;14108:6;14083:24;:32::i;:::-;-1:-1:-1;;;;;14060:20:0;;;;;;;:9;:20;;;;;;;:55;;;;14131:35;;;;;;;;;;14159:6;1613:25:1;;1601:2;1586:18;;1467:177;14131:35:0;;;;;;;;-1:-1:-1;14184:4:0;13866:330;;;;;:::o;14204:232::-;6742:16;:23;;-1:-1:-1;;;;6742:23:0;-1:-1:-1;;;6742:23:0;;;14278:25:::1;14295:7:::0;14278:16:::1;:25::i;:::-;14396:9;::::0;14343:21:::1;::::0;14375:51:::1;::::0;14396:9:::1;::::0;::::1;-1:-1:-1::0;;;;;14396:9:0::1;14343:21:::0;14375:20:::1;:51::i;:::-;-1:-1:-1::0;;6788:16:0;:24;;-1:-1:-1;;;;6788:24:0;;;14204:232::o;15055:605::-;15230:9;;15150:7;;;;15199:6;;-1:-1:-1;;;;;15230:9:0;;;;;;15220:19;;;;15216:51;;15249:6;;-1:-1:-1;15257:9:0;-1:-1:-1;15241:26:0;;15216:51;-1:-1:-1;;;;;15281:26:0;;;;;;:18;:26;;;;;;;;15278:233;;;15336:37;15369:3;15336:28;15347:16;;15336:6;:10;;:28;;;;:::i;:::-;:32;;:37::i;:::-;15324:49;;15278:233;;;-1:-1:-1;;;;;15403:29:0;;;;;;:18;:29;;;;;;;;15400:111;;;15461:38;15495:3;15461:29;15472:17;;15461:6;:10;;:29;;;;:::i;:38::-;15449:50;;15400:111;-1:-1:-1;;;;;15525:29:0;;;;;;:21;:29;;;;;;;;15521:80;;;15579:6;15587:1;15571:18;;;;;;;15521:80;15619:21;:6;15630:9;15619:10;:21::i;:::-;15611:41;-1:-1:-1;15642:9:0;-1:-1:-1;15055:605:0;;;;;;;:::o;14448:599::-;14598:16;;;14612:1;14598:16;;;;;;;;14574:21;;14598:16;;;;;;;;;;-1:-1:-1;14598:16:0;14574:40;;14643:4;14625;14630:1;14625:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14625:23:0;;;:7;;;;;;;;;;:23;;;;14669:13;;:20;;;-1:-1:-1;;;14669:20:0;;;;:13;;;;;:18;;:20;;;;;14625:7;;14669:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14659:4;14664:1;14659:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14659:30:0;;;:7;;;;;;;;;:30;14734:13;;14702:60;;14719:4;;14734:13;14750:11;14702:8;:60::i;:::-;14801:13;;:238;;-1:-1:-1;;;14801:238:0;;-1:-1:-1;;;;;14801:13:0;;;;:64;;:238;;14880:11;;14801:13;;14950:4;;14977;;15013:15;;14801:238;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14503:544;14448:599;:::o;1895:250::-;1953:7;1977:1;1982;1977:6;1973:47;;-1:-1:-1;2007:1:0;2000:8;;1973:47;2032:9;2044:5;2048:1;2044;:5;:::i;:::-;2032:17;-1:-1:-1;2077:1:0;2068:5;2072:1;2032:17;2068:5;:::i;:::-;:10;2060:56;;;;-1:-1:-1;;;2060:56:0;;10752:2:1;2060:56:0;;;10734:21:1;10791:2;10771:18;;;10764:30;10830:34;10810:18;;;10803:62;-1:-1:-1;;;10881:18:1;;;10874:31;10922:19;;2060:56:0;10550:397:1;2153:132:0;2211:7;2238:39;2242:1;2245;2238:39;;;;;;;;;;;;;;;;;2379:7;2414:12;2407:5;2399:28;;;;-1:-1:-1;;;2399:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2438:9:0;2450:5;2454:1;2450;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1649:316::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;-1:-1:-1;;1834:23:1;;;1904:2;1889:18;;1876:32;;-1:-1:-1;1955:2:1;1940:18;;;1927:32;;1649:316;-1:-1:-1;1649:316:1:o;1970:456::-;2047:6;2055;2063;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;2171:9;2158:23;2190:31;2215:5;2190:31;:::i;:::-;2240:5;-1:-1:-1;2297:2:1;2282:18;;2269:32;2310:33;2269:32;2310:33;:::i;:::-;1970:456;;2362:7;;-1:-1:-1;;;2416:2:1;2401:18;;;;2388:32;;1970:456::o;2431:160::-;2496:20;;2552:13;;2545:21;2535:32;;2525:60;;2581:1;2578;2571:12;2525:60;2431:160;;;:::o;2596:180::-;2652:6;2705:2;2693:9;2684:7;2680:23;2676:32;2673:52;;;2721:1;2718;2711:12;2673:52;2744:26;2760:9;2744:26;:::i;2989:315::-;3054:6;3062;3115:2;3103:9;3094:7;3090:23;3086:32;3083:52;;;3131:1;3128;3121:12;3083:52;3170:9;3157:23;3189:31;3214:5;3189:31;:::i;:::-;3239:5;-1:-1:-1;3263:35:1;3294:2;3279:18;;3263:35;:::i;:::-;3253:45;;2989:315;;;;;:::o;3498:180::-;3557:6;3610:2;3598:9;3589:7;3585:23;3581:32;3578:52;;;3626:1;3623;3616:12;3578:52;-1:-1:-1;3649:23:1;;3498:180;-1:-1:-1;3498:180:1:o;3917:388::-;3985:6;3993;4046:2;4034:9;4025:7;4021:23;4017:32;4014:52;;;4062:1;4059;4052:12;4014:52;4101:9;4088:23;4120:31;4145:5;4120:31;:::i;:::-;4170:5;-1:-1:-1;4227:2:1;4212:18;;4199:32;4240:33;4199:32;4240:33;:::i;:::-;4292:7;4282:17;;;3917:388;;;;;:::o;4310:356::-;4512:2;4494:21;;;4531:18;;;4524:30;4590:34;4585:2;4570:18;;4563:62;4657:2;4642:18;;4310:356::o;4671:380::-;4750:1;4746:12;;;;4793;;;4814:61;;4868:4;4860:6;4856:17;4846:27;;4814:61;4921:2;4913:6;4910:14;4890:18;4887:38;4884:161;;4967:10;4962:3;4958:20;4955:1;4948:31;5002:4;4999:1;4992:15;5030:4;5027:1;5020:15;4884:161;;4671:380;;;:::o;5056:127::-;5117:10;5112:3;5108:20;5105:1;5098:31;5148:4;5145:1;5138:15;5172:4;5169:1;5162:15;5188:217;5228:1;5254;5244:132;;5298:10;5293:3;5289:20;5286:1;5279:31;5333:4;5330:1;5323:15;5361:4;5358:1;5351:15;5244:132;-1:-1:-1;5390:9:1;;5188:217::o;7034:125::-;7099:9;;;7120:10;;;7117:36;;;7133:18;;:::i;8739:128::-;8806:9;;;8827:11;;;8824:37;;;8841:18;;:::i;9004:127::-;9065:10;9060:3;9056:20;9053:1;9046:31;9096:4;9093:1;9086:15;9120:4;9117:1;9110:15;9136:251;9206:6;9259:2;9247:9;9238:7;9234:23;9230:32;9227:52;;;9275:1;9272;9265:12;9227:52;9307:9;9301:16;9326:31;9351:5;9326:31;:::i;9392:980::-;9654:4;9702:3;9691:9;9687:19;9733:6;9722:9;9715:25;9759:2;9797:6;9792:2;9781:9;9777:18;9770:34;9840:3;9835:2;9824:9;9820:18;9813:31;9864:6;9899;9893:13;9930:6;9922;9915:22;9968:3;9957:9;9953:19;9946:26;;10007:2;9999:6;9995:15;9981:29;;10028:1;10038:195;10052:6;10049:1;10046:13;10038:195;;;10117:13;;-1:-1:-1;;;;;10113:39:1;10101:52;;10208:15;;;;10173:12;;;;10149:1;10067:9;10038:195;;;-1:-1:-1;;;;;;;10289:32:1;;;;10284:2;10269:18;;10262:60;-1:-1:-1;;;10353:3:1;10338:19;10331:35;10250:3;9392:980;-1:-1:-1;;;9392:980:1:o;10377:168::-;10450:9;;;10481;;10498:15;;;10492:22;;10478:37;10468:71;;10519:18;;:::i

Swarm Source

ipfs://265ab7705b1c2e8925fc64381e37628c30b6c1f8f2777db32b4a3215ab851fdb

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.