ETH Price: $3,373.24 (+3.00%)
Gas: 3 Gwei

Contract

0x2157d91CCdD4436D920f362D3B4C842394386C78
 

Overview

ETH Balance

0.042156122002801761 ETH

Eth Value

$142.20 (@ $3,373.24/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve164743602023-01-24 4:43:59552 days ago1674535439IN
0x2157d91C...394386C78
0 ETH0.00065614.08773317
Approve159033842022-11-05 11:01:23632 days ago1667646083IN
0x2157d91C...394386C78
0 ETH0.0003157212.97057998
Approve153919952022-08-22 18:53:47706 days ago1661194427IN
0x2157d91C...394386C78
0 ETH0.0002478910.18380571
Buy And Burn ERC...150330022022-06-27 6:30:19763 days ago1656311419IN
0x2157d91C...394386C78
0 ETH0.0039195513.37148277
Approve147286192022-05-07 8:05:11814 days ago1651910711IN
0x2157d91C...394386C78
0 ETH0.0011596724.87177092
Approve146988882022-05-02 14:42:00818 days ago1651502520IN
0x2157d91C...394386C78
0 ETH0.0034850974.74576489
Approve146957772022-05-02 2:48:13819 days ago1651459693IN
0x2157d91C...394386C78
0 ETH0.0025270754.19877841
Approve146948182022-05-01 23:15:54819 days ago1651446954IN
0x2157d91C...394386C78
0 ETH0.0045682997.97746519
Approve146887082022-05-01 0:17:44820 days ago1651364264IN
0x2157d91C...394386C78
0 ETH0.0038699583
Approve146862712022-04-30 15:01:08820 days ago1651330868IN
0x2157d91C...394386C78
0 ETH0.0035792276.76466349
Approve146862642022-04-30 14:58:51820 days ago1651330731IN
0x2157d91C...394386C78
0 ETH0.0026107155.99265867
Approve146858182022-04-30 13:20:36820 days ago1651324836IN
0x2157d91C...394386C78
0 ETH0.0038358282.2680416
Approve146856442022-04-30 12:41:46821 days ago1651322506IN
0x2157d91C...394386C78
0 ETH0.0014439130.96799628
Approve146856152022-04-30 12:36:07821 days ago1651322167IN
0x2157d91C...394386C78
0 ETH0.001720436.89806243
Approve146852622022-04-30 11:13:30821 days ago1651317210IN
0x2157d91C...394386C78
0 ETH0.0014257530.5785665
Approve146839602022-04-30 6:14:22821 days ago1651299262IN
0x2157d91C...394386C78
0 ETH0.0013783229.56137615
Approve146838732022-04-30 5:56:14821 days ago1651298174IN
0x2157d91C...394386C78
0 ETH0.0011917325.55939967
Approve146835602022-04-30 4:49:43821 days ago1651294183IN
0x2157d91C...394386C78
0 ETH0.0015954834.21872799
Transfer146833022022-04-30 3:52:27821 days ago1651290747IN
0x2157d91C...394386C78
0 ETH0.0011361731.33398351
Transfer146832812022-04-30 3:47:18821 days ago1651290438IN
0x2157d91C...394386C78
0 ETH0.0013110136.1560147
Approve146828362022-04-30 2:07:13821 days ago1651284433IN
0x2157d91C...394386C78
0 ETH0.0021897146.9634736
Approve146828202022-04-30 2:02:46821 days ago1651284166IN
0x2157d91C...394386C78
0 ETH0.0018072638.76089894
Approve146827862022-04-30 1:55:03821 days ago1651283703IN
0x2157d91C...394386C78
0 ETH0.0014438830.96744468
Transfer146817612022-04-29 22:01:58821 days ago1651269718IN
0x2157d91C...394386C78
0 ETH0.0014046138.73734024
Transfer146817542022-04-29 22:00:12821 days ago1651269612IN
0x2157d91C...394386C78
0 ETH0.0016012344.14509672
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
150330022022-06-27 6:30:19763 days ago1656311419
0x2157d91C...394386C78
2.25 ETH
146957882022-05-02 2:50:07819 days ago1651459807
0x2157d91C...394386C78
0.00154255 ETH
146957882022-05-02 2:50:07819 days ago1651459807
0x2157d91C...394386C78
0.00360529 ETH
146957882022-05-02 2:50:07819 days ago1651459807
0x2157d91C...394386C78
0.01442119 ETH
146858392022-04-30 13:24:45820 days ago1651325085
0x2157d91C...394386C78
0.00174338 ETH
146858392022-04-30 13:24:45820 days ago1651325085
0x2157d91C...394386C78
0.00407408 ETH
146858392022-04-30 13:24:45820 days ago1651325085
0x2157d91C...394386C78
0.01629632 ETH
146856282022-04-30 12:38:31821 days ago1651322311
0x2157d91C...394386C78
0.00188961 ETH
146856282022-04-30 12:38:31821 days ago1651322311
0x2157d91C...394386C78
0.00441534 ETH
146856282022-04-30 12:38:31821 days ago1651322311
0x2157d91C...394386C78
0.01766139 ETH
146838762022-04-30 5:56:34821 days ago1651298194
0x2157d91C...394386C78
0.00214287 ETH
146838762022-04-30 5:56:34821 days ago1651298194
0x2157d91C...394386C78
0.00500625 ETH
146838762022-04-30 5:56:34821 days ago1651298194
0x2157d91C...394386C78
0.02002503 ETH
146828942022-04-30 2:19:18821 days ago1651285158
0x2157d91C...394386C78
0.0023559 ETH
146828942022-04-30 2:19:18821 days ago1651285158
0x2157d91C...394386C78
0.00550321 ETH
146828942022-04-30 2:19:18821 days ago1651285158
0x2157d91C...394386C78
0.02201284 ETH
146828332022-04-30 2:06:24821 days ago1651284384
0x2157d91C...394386C78
0.00267782 ETH
146828332022-04-30 2:06:24821 days ago1651284384
0x2157d91C...394386C78
0.00625399 ETH
146828332022-04-30 2:06:24821 days ago1651284384
0x2157d91C...394386C78
0.02501596 ETH
146815382022-04-29 21:05:30821 days ago1651266330
0x2157d91C...394386C78
0.0032112 ETH
146815382022-04-29 21:05:30821 days ago1651266330
0x2157d91C...394386C78
0.00749746 ETH
146815382022-04-29 21:05:30821 days ago1651266330
0x2157d91C...394386C78
0.02998987 ETH
146814672022-04-29 20:51:19821 days ago1651265479
0x2157d91C...394386C78
0.00341121 ETH
146814672022-04-29 20:51:19821 days ago1651265479
0x2157d91C...394386C78
0.0079636 ETH
146814672022-04-29 20:51:19821 days ago1651265479
0x2157d91C...394386C78
0.03185443 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ShibaMaster

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-13
*/

// SPDX-License-Identifier: MIT

/**

ShibaMaster

Web: https://www.shibamaster.xyz/
Twitter: https://twitter.com/ShibaMasterETH

Tokenomics

5% Buy
5% Sell

1% LP
2% ShibMaster Burn
2% External Burn
Refer to website / litepaper for detailed tokenomics on burn

*/

pragma solidity ^0.8.13;

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    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 createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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;
}

contract ShibaMaster is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcludedFromFee;
   
    string private constant _name = "ShibaMaster";
    string private constant _symbol = "ShibaM ";
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1000000000000 * 10**_decimals;

    uint256 public _maxWalletAmount = 10000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 10000000000 * 10**_decimals;
    uint256 public swapTokenAtAmount = 1250000000 * 10**_decimals;

    address public liquidityReceiver;

    uint256 public totalTokenBurned;
    mapping (address => uint256) private _erc20TokenBurned;

    struct BuyFees{
        uint256 liquidity;
        uint256 selfBurn;
        uint256 externalBurn;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 selfBurn;
        uint256 externalBurn;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private selfBurnFee;
    uint256 private externalBurnFee;
    
    bool private swapping;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
        
    constructor () {
        balances[_msgSender()] = _tTotal;
        
        buyFee.liquidity = 4;
        buyFee.selfBurn = 2;
        buyFee.externalBurn = 2;

        sellFee.liquidity = 4;
        sellFee.selfBurn = 2;
        sellFee.externalBurn = 2;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        liquidityReceiver = msg.sender;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    receive() external payable {}
    
    function ERC20TokenBurned(address tokenAddress) public view returns (uint256) {
        return _erc20TokenBurned[tokenAddress];
    }

    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 selfBurnFeeToken = amount * buyFee.selfBurn / 100; 
        uint256 externalBurnFeeToken = amount * buyFee.externalBurn / 100; 

        balances[address(this)] += liquidityFeeToken + externalBurnFeeToken;
        balances[address(0x00)] += selfBurnFeeToken;
        _tTotal -= selfBurnFeeToken;
        totalTokenBurned += selfBurnFeeToken;

        emit Transfer (from, address(0x000), selfBurnFeeToken);
        emit Transfer (from, address(this), externalBurnFeeToken + liquidityFeeToken);

        return (amount -liquidityFeeToken -selfBurnFeeToken -externalBurnFeeToken);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; 
        uint256 selfBurnFeeToken = amount * sellFee.selfBurn / 100; 
        uint256 externalBurnFeeToken = amount * sellFee.externalBurn / 100; 

        balances[address(this)] += liquidityFeeToken + externalBurnFeeToken;
        balances[address(0x00)] += selfBurnFeeToken;
        _tTotal -= selfBurnFeeToken;
        totalTokenBurned += selfBurnFeeToken;

        emit Transfer (from, address(0x000), selfBurnFeeToken);
        emit Transfer (from, address(this), externalBurnFeeToken + liquidityFeeToken);

        return (amount -liquidityFeeToken -selfBurnFeeToken -externalBurnFeeToken);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    
    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 setBuyFees(uint256 newLiquidityFee, uint256 newSelfBurnFee, uint256 newExternalBurnFee) public onlyOwner {
        require(newLiquidityFee + newSelfBurnFee + newExternalBurnFee <= 25, "Can't set buyFee above 25%");
        buyFee.liquidity = newLiquidityFee;
        buyFee.selfBurn = newSelfBurnFee;
        buyFee.externalBurn= newExternalBurnFee;
    }

    function setSellFees(uint256 newLiquidityFee, uint256 newSelfBurnFee, uint256 newExternalBurnFee) public onlyOwner {
        require(newLiquidityFee + newSelfBurnFee + newExternalBurnFee <= 25, "Can't set sellFee above 25%");
        sellFee.liquidity = newLiquidityFee;
        sellFee.selfBurn = newSelfBurnFee;
        sellFee.externalBurn= newExternalBurnFee;
    }

    function setMaxTxPercent(uint256 newMaxTxPercent) public onlyOwner {
        require(newMaxTxPercent >= 1, "MaxTx atleast 1% or higher");
        _maxTxAmount = _tTotal.mul(newMaxTxPercent).div(10**2);
    }

    function setMaxWalletPercent(uint256 newMaxWalletPercent) public onlyOwner {
        require(newMaxWalletPercent >= 1, "MaxWallet atleast 1% or higher");
        _maxWalletAmount = _tTotal.mul(newMaxWalletPercent).div(10**2);    
    }

    function setSwapTokenAtAmountPermille(uint256 newSwapTokenAmountPermille) public onlyOwner {
        swapTokenAtAmount = _tTotal.mul(newSwapTokenAmountPermille).div(10**3);
    }

    function buyAndBurnERC20Token(address tokenAddress, uint256 ethAmount) public onlyOwner {
	swapETHForExternalTokens(tokenAddress, ethAmount);
    }

    function setLiquidityReceiver(address newLiqReceiver) public onlyOwner {
        liquidityReceiver = newLiqReceiver;
        _isExcludedFromFee[newLiqReceiver] = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        balances[from] -= amount;
        uint256 transferAmount = amount;
        
        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        } 

        if(takeFee){
            if(to != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                 transferAmount = takeBuyFees(amount, from);
            }

            if(from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                transferAmount = takeSellFees(amount, from);

               if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack();
                    swapping = false;
              }
            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
    
    
    function swapBack() private {
        uint256 contractBalance = swapTokenAtAmount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.externalBurn + buyFee.liquidity + sellFee.externalBurn + sellFee.liquidity);
        uint256 externalBurnTokens = contractBalance - liquidityTokens;
        uint256 totalTokensToSwap = liquidityTokens + externalBurnTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);

        addLiquidity(tokensForLiquidity, ethForLiquidity);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapETHForExternalTokens(address tokenToBuy, uint256 amount) private {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = tokenToBuy;
        
        IERC20(uniswapV2Router.WETH()).approve(address(uniswapV2Router), amount);

        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 tokenReceived = IERC20(tokenToBuy).balanceOf(address(this));
        _erc20TokenBurned[tokenToBuy] += tokenReceived;
        IERC20(tokenToBuy).transfer(address(0xdead), tokenReceived);
    }

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

        uniswapV2Router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }
}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"ERC20TokenBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"buyAndBurnERC20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"selfBurn","type":"uint256"},{"internalType":"uint256","name":"externalBurn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"selfBurn","type":"uint256"},{"internalType":"uint256","name":"externalBurn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newSelfBurnFee","type":"uint256"},{"internalType":"uint256","name":"newExternalBurnFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiqReceiver","type":"address"}],"name":"setLiquidityReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newSelfBurnFee","type":"uint256"},{"internalType":"uint256","name":"newExternalBurnFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTokenAmountPermille","type":"uint256"}],"name":"setSwapTokenAtAmountPermille","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokenBurned","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":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200044a565b620000239064e8d4a5100062000462565b600655620000346009600a6200044a565b62000045906402540be40062000462565b600755620000566009600a6200044a565b62000067906402540be40062000462565b600855620000786009600a6200044a565b6200008890634a817c8062000462565b6009553480156200009857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654336000908152600360209081526040808320939093556004600d8190556002600e819055600f81905560108290556011819055601255835163c45a015560e01b81529351737a250d5630b4cf539739df2c5dacb4c659f2488d94859363c45a0155938281019391928290030181865afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000185919062000484565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f9919062000484565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000247573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026d919062000484565b600180546001600160a01b03199081166001600160a01b03868116919091178355600280548316918516919091179055600a805433921682179055600090815260056020526040808220805460ff1990811685179091553083529120805490911690911790559050620002dd3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200032591815260200190565b60405180910390a35050620004af565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200038c57816000190482111562000370576200037062000335565b808516156200037e57918102915b93841c939080029062000350565b509250929050565b600082620003a55750600162000444565b81620003b45750600062000444565b8160018114620003cd5760028114620003d857620003f8565b600191505062000444565b60ff841115620003ec57620003ec62000335565b50506001821b62000444565b5060208310610133831016604e8410600b84101617156200041d575081810a62000444565b6200042983836200034b565b806000190482111562000440576200044062000335565b0290505b92915050565b60006200045b60ff84168362000394565b9392505050565b60008160001904831182151516156200047f576200047f62000335565b500290565b6000602082840312156200049757600080fd5b81516001600160a01b03811681146200045b57600080fd5b61202c80620004bf6000396000f3fe6080604052600436106101fd5760003560e01c80634da64ddb1161010d57806395d89b41116100a0578063d543dbeb1161006f578063d543dbeb14610617578063d75224da14610637578063dd62ed3e1461066d578063ea2f0b37146106b3578063f2fde38b146106d357600080fd5b806395d89b4114610587578063a457c2d7146105b7578063a9059cbb146105d7578063b57e3682146105f757600080fd5b8063715018a6116100dc578063715018a61461051e5780637d1db4a51461053357806382bf293c146105495780638da5cb5b1461056957600080fd5b80634da64ddb146104795780635342acb4146104995780636c0a24eb146104d257806370a08231146104e857600080fd5b80632221466c11610190578063313ce5671161015f578063313ce567146103de57806339509351146103fa578063437823ec1461041a578063470624021461043a57806349bd5a5e1461045957600080fd5b80632221466c1461034e57806323b872dd14610364578063264d26dd146103845780632b14ca56146103a457600080fd5b80630db180b4116101cc5780630db180b4146102c15780630f683e90146102e15780631694505e1461030157806318160ddd1461033957600080fd5b806303e403b01461020957806306fdde0314610232578063095ea7b31461026f5780630d075d9c1461029f57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5060408051808201909152600b81526a29b434b130a6b0b9ba32b960a91b60208201525b6040516102299190611be2565b34801561027b57600080fd5b5061028f61028a366004611c4f565b6106f3565b6040519015158152602001610229565b3480156102ab57600080fd5b506102bf6102ba366004611c7b565b61070a565b005b3480156102cd57600080fd5b506102bf6102dc366004611c4f565b6107b0565b3480156102ed57600080fd5b506102bf6102fc366004611c7b565b6107e8565b34801561030d57600080fd5b50600154610321906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561034557600080fd5b5060065461021f565b34801561035a57600080fd5b5061021f600b5481565b34801561037057600080fd5b5061028f61037f366004611ca7565b610885565b34801561039057600080fd5b50600a54610321906001600160a01b031681565b3480156103b057600080fd5b506010546011546012546103c392919083565b60408051938452602084019290925290820152606001610229565b3480156103ea57600080fd5b5060405160098152602001610229565b34801561040657600080fd5b5061028f610415366004611c4f565b6108d7565b34801561042657600080fd5b506102bf610435366004611ce8565b61090e565b34801561044657600080fd5b50600d54600e54600f546103c392919083565b34801561046557600080fd5b50600254610321906001600160a01b031681565b34801561048557600080fd5b506102bf610494366004611d05565b61095c565b3480156104a557600080fd5b5061028f6104b4366004611ce8565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104de57600080fd5b5061021f60075481565b3480156104f457600080fd5b5061021f610503366004611ce8565b6001600160a01b031660009081526003602052604090205490565b34801561052a57600080fd5b506102bf6109ad565b34801561053f57600080fd5b5061021f60085481565b34801561055557600080fd5b506102bf610564366004611d05565b610a21565b34801561057557600080fd5b506000546001600160a01b0316610321565b34801561059357600080fd5b50604080518082019091526007815266029b434b130a6960cd1b6020820152610262565b3480156105c357600080fd5b5061028f6105d2366004611c4f565b610abc565b3480156105e357600080fd5b5061028f6105f2366004611c4f565b610af3565b34801561060357600080fd5b506102bf610612366004611ce8565b610b00565b34801561062357600080fd5b506102bf610632366004611d05565b610b64565b34801561064357600080fd5b5061021f610652366004611ce8565b6001600160a01b03166000908152600c602052604090205490565b34801561067957600080fd5b5061021f610688366004611d1e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b506102bf6106ce366004611ce8565b610bff565b3480156106df57600080fd5b506102bf6106ee366004611ce8565b610c4a565b6000610700338484610d34565b5060015b92915050565b6000546001600160a01b0316331461073d5760405162461bcd60e51b815260040161073490611d57565b60405180910390fd5b60198161074a8486611da2565b6107549190611da2565b11156107a25760405162461bcd60e51b815260206004820152601a60248201527f43616e277420736574206275794665652061626f7665203235250000000000006044820152606401610734565b600d92909255600e55600f55565b6000546001600160a01b031633146107da5760405162461bcd60e51b815260040161073490611d57565b6107e48282610e58565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b815260040161073490611d57565b60198161081f8486611da2565b6108299190611da2565b11156108775760405162461bcd60e51b815260206004820152601b60248201527f43616e2774207365742073656c6c4665652061626f76652032352500000000006044820152606401610734565b601092909255601155601255565b60006108928484846111a3565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546108cd9186916108c8908690611dba565b610d34565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611da2565b6000546001600160a01b031633146109385760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109865760405162461bcd60e51b815260040161073490611d57565b6109a76103e86109a18360065461158990919063ffffffff16565b90611612565b60095550565b6000546001600160a01b031633146109d75760405162461bcd60e51b815260040161073490611d57565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a4b5760405162461bcd60e51b815260040161073490611d57565b6001811015610a9c5760405162461bcd60e51b815260206004820152601e60248201527f4d617857616c6c65742061746c65617374203125206f722068696768657200006044820152606401610734565b610ab660646109a18360065461158990919063ffffffff16565b60075550565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611dba565b60006107003384846111a3565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260040161073490611d57565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161073490611d57565b6001811015610bdf5760405162461bcd60e51b815260206004820152601a60248201527f4d617854782061746c65617374203125206f72206869676865720000000000006044820152606401610734565b610bf960646109a18360065461158990919063ffffffff16565b60085550565b6000546001600160a01b03163314610c295760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610c745760405162461bcd60e51b815260040161073490611d57565b6001600160a01b038116610cd95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610734565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610734565b6001600160a01b038216610df75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610734565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190611dd1565b81600081518110610ef957610ef9611dee565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110610f2d57610f2d611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa9190611dd1565b60015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190611e04565b5060015460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de9590849061105a90600090869030904290600401611e6a565b6000604051808303818588803b15801561107357600080fd5b505af1158015611087573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093506001600160a01b03871692506370a082319150602401602060405180830381865afa1580156110d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f79190611e9f565b6001600160a01b0385166000908152600c6020526040812080549293508392909190611124908490611da2565b909155505060405163a9059cbb60e01b815261dead6004820152602481018290526001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190611e04565b5050505050565b6001600160a01b0383166112075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610734565b6001600160a01b0382166112695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610734565b600081116112cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610734565b6001600160a01b038316600090815260036020526040812080548392906112f3908490611dba565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561133d57506001600160a01b03841660009081526005602052604090205460ff16155b15611346575060015b8015611506576002546001600160a01b038581169116146113db576008548311156113835760405162461bcd60e51b815260040161073490611eb8565b600754836113a6866001600160a01b031660009081526003602052604090205490565b6113b09190611da2565b11156113ce5760405162461bcd60e51b815260040161073490611eff565b6113d88386611654565b91505b6002546001600160a01b03868116911614611468576008548311156114125760405162461bcd60e51b815260040161073490611eb8565b61141c838661180a565b6009543060009081526003602052604090205491935011158015611443575060165460ff16155b15611468576016805460ff1916600117905561145d611862565b6016805460ff191690555b6002546001600160a01b0385811691161480159061149457506002546001600160a01b03868116911614155b15611506576008548311156114bb5760405162461bcd60e51b815260040161073490611eb8565b600754836114de866001600160a01b031660009081526003602052604090205490565b6114e89190611da2565b11156115065760405162461bcd60e51b815260040161073490611eff565b6001600160a01b0384166000908152600360205260408120805484929061152e908490611da2565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161157a91815260200190565b60405180910390a35050505050565b60008260000361159b57506000610704565b60006115a78385611f4b565b9050826115b48583611f6a565b1461160b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610734565b9392505050565b600061160b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611931565b6000806064600d600001548561166a9190611f4b565b6116749190611f6a565b905060006064600d600101548661168b9190611f4b565b6116959190611f6a565b905060006064600d60020154876116ac9190611f4b565b6116b69190611f6a565b90506116c28184611da2565b30600090815260036020526040812080549091906116e1908490611da2565b9091555050600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8054849290611721908490611da2565b92505081905550816006600082825461173a9190611dba565b9250508190555081600b60008282546117539190611da2565b90915550506040518281526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3306001600160a01b0386167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117cf8685611da2565b60405190815260200160405180910390a380826117ec8589611dba565b6117f69190611dba565b6118009190611dba565b9695505050505050565b6000806064601060000154856118209190611f4b565b61182a9190611f6a565b905060006064601060010154866118419190611f4b565b61184b9190611f6a565b905060006064601060020154876116ac9190611f4b565b600954601054601254600d54600f54600093929161187f91611da2565b6118899190611da2565b6118939190611da2565b601054600d546118a39190611da2565b6118ad9084611f4b565b6118b79190611f6a565b905060006118c58284611dba565b905060006118d38284611da2565b905060006118e2846002611612565b905060006118f08683611968565b9050476118fc826119aa565b60006119084783611968565b9050600061191a866109a1848b611589565b90506119268582611b04565b505050505050505050565b600081836119525760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611f6a565b95945050505050565b600061160b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb1565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119df576119df611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190611dd1565b81600181518110611a6f57611a6f611dee565b6001600160a01b039283166020918202929092010152600154611a959130911684610d34565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ace908590600090869030904290600401611f8c565b600060405180830381600087803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b505050505050565b600154611b1c9030906001600160a01b031684610d34565b600154600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611b8c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061119c9190611fc8565b60008184841115611bd55760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611dba565b600060208083528351808285015260005b81811015611c0f57858101830151858201604001528201611bf3565b81811115611c21576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c4c57600080fd5b50565b60008060408385031215611c6257600080fd5b8235611c6d81611c37565b946020939093013593505050565b600080600060608486031215611c9057600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611cbc57600080fd5b8335611cc781611c37565b92506020840135611cd781611c37565b929592945050506040919091013590565b600060208284031215611cfa57600080fd5b813561160b81611c37565b600060208284031215611d1757600080fd5b5035919050565b60008060408385031215611d3157600080fd5b8235611d3c81611c37565b91506020830135611d4c81611c37565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611db557611db5611d8c565b500190565b600082821015611dcc57611dcc611d8c565b500390565b600060208284031215611de357600080fd5b815161160b81611c37565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1657600080fd5b8151801515811461160b57600080fd5b600081518084526020808501945080840160005b83811015611e5f5781516001600160a01b031687529582019590820190600101611e3a565b509495945050505050565b848152608060208201526000611e836080830186611e26565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215611eb157600080fd5b5051919050565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b6000816000190483118215151615611f6557611f65611d8c565b500290565b600082611f8757634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a060408201526000611fab60a0830186611e26565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fdd57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122051c59a7712cafbb917b987d26cb93b2794d185a25bd2ab8d53090911220b4e3f64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80634da64ddb1161010d57806395d89b41116100a0578063d543dbeb1161006f578063d543dbeb14610617578063d75224da14610637578063dd62ed3e1461066d578063ea2f0b37146106b3578063f2fde38b146106d357600080fd5b806395d89b4114610587578063a457c2d7146105b7578063a9059cbb146105d7578063b57e3682146105f757600080fd5b8063715018a6116100dc578063715018a61461051e5780637d1db4a51461053357806382bf293c146105495780638da5cb5b1461056957600080fd5b80634da64ddb146104795780635342acb4146104995780636c0a24eb146104d257806370a08231146104e857600080fd5b80632221466c11610190578063313ce5671161015f578063313ce567146103de57806339509351146103fa578063437823ec1461041a578063470624021461043a57806349bd5a5e1461045957600080fd5b80632221466c1461034e57806323b872dd14610364578063264d26dd146103845780632b14ca56146103a457600080fd5b80630db180b4116101cc5780630db180b4146102c15780630f683e90146102e15780631694505e1461030157806318160ddd1461033957600080fd5b806303e403b01461020957806306fdde0314610232578063095ea7b31461026f5780630d075d9c1461029f57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5060408051808201909152600b81526a29b434b130a6b0b9ba32b960a91b60208201525b6040516102299190611be2565b34801561027b57600080fd5b5061028f61028a366004611c4f565b6106f3565b6040519015158152602001610229565b3480156102ab57600080fd5b506102bf6102ba366004611c7b565b61070a565b005b3480156102cd57600080fd5b506102bf6102dc366004611c4f565b6107b0565b3480156102ed57600080fd5b506102bf6102fc366004611c7b565b6107e8565b34801561030d57600080fd5b50600154610321906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561034557600080fd5b5060065461021f565b34801561035a57600080fd5b5061021f600b5481565b34801561037057600080fd5b5061028f61037f366004611ca7565b610885565b34801561039057600080fd5b50600a54610321906001600160a01b031681565b3480156103b057600080fd5b506010546011546012546103c392919083565b60408051938452602084019290925290820152606001610229565b3480156103ea57600080fd5b5060405160098152602001610229565b34801561040657600080fd5b5061028f610415366004611c4f565b6108d7565b34801561042657600080fd5b506102bf610435366004611ce8565b61090e565b34801561044657600080fd5b50600d54600e54600f546103c392919083565b34801561046557600080fd5b50600254610321906001600160a01b031681565b34801561048557600080fd5b506102bf610494366004611d05565b61095c565b3480156104a557600080fd5b5061028f6104b4366004611ce8565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104de57600080fd5b5061021f60075481565b3480156104f457600080fd5b5061021f610503366004611ce8565b6001600160a01b031660009081526003602052604090205490565b34801561052a57600080fd5b506102bf6109ad565b34801561053f57600080fd5b5061021f60085481565b34801561055557600080fd5b506102bf610564366004611d05565b610a21565b34801561057557600080fd5b506000546001600160a01b0316610321565b34801561059357600080fd5b50604080518082019091526007815266029b434b130a6960cd1b6020820152610262565b3480156105c357600080fd5b5061028f6105d2366004611c4f565b610abc565b3480156105e357600080fd5b5061028f6105f2366004611c4f565b610af3565b34801561060357600080fd5b506102bf610612366004611ce8565b610b00565b34801561062357600080fd5b506102bf610632366004611d05565b610b64565b34801561064357600080fd5b5061021f610652366004611ce8565b6001600160a01b03166000908152600c602052604090205490565b34801561067957600080fd5b5061021f610688366004611d1e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b506102bf6106ce366004611ce8565b610bff565b3480156106df57600080fd5b506102bf6106ee366004611ce8565b610c4a565b6000610700338484610d34565b5060015b92915050565b6000546001600160a01b0316331461073d5760405162461bcd60e51b815260040161073490611d57565b60405180910390fd5b60198161074a8486611da2565b6107549190611da2565b11156107a25760405162461bcd60e51b815260206004820152601a60248201527f43616e277420736574206275794665652061626f7665203235250000000000006044820152606401610734565b600d92909255600e55600f55565b6000546001600160a01b031633146107da5760405162461bcd60e51b815260040161073490611d57565b6107e48282610e58565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b815260040161073490611d57565b60198161081f8486611da2565b6108299190611da2565b11156108775760405162461bcd60e51b815260206004820152601b60248201527f43616e2774207365742073656c6c4665652061626f76652032352500000000006044820152606401610734565b601092909255601155601255565b60006108928484846111a3565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546108cd9186916108c8908690611dba565b610d34565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611da2565b6000546001600160a01b031633146109385760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109865760405162461bcd60e51b815260040161073490611d57565b6109a76103e86109a18360065461158990919063ffffffff16565b90611612565b60095550565b6000546001600160a01b031633146109d75760405162461bcd60e51b815260040161073490611d57565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a4b5760405162461bcd60e51b815260040161073490611d57565b6001811015610a9c5760405162461bcd60e51b815260206004820152601e60248201527f4d617857616c6c65742061746c65617374203125206f722068696768657200006044820152606401610734565b610ab660646109a18360065461158990919063ffffffff16565b60075550565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611dba565b60006107003384846111a3565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260040161073490611d57565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161073490611d57565b6001811015610bdf5760405162461bcd60e51b815260206004820152601a60248201527f4d617854782061746c65617374203125206f72206869676865720000000000006044820152606401610734565b610bf960646109a18360065461158990919063ffffffff16565b60085550565b6000546001600160a01b03163314610c295760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610c745760405162461bcd60e51b815260040161073490611d57565b6001600160a01b038116610cd95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610734565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610734565b6001600160a01b038216610df75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610734565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190611dd1565b81600081518110610ef957610ef9611dee565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110610f2d57610f2d611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa9190611dd1565b60015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190611e04565b5060015460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de9590849061105a90600090869030904290600401611e6a565b6000604051808303818588803b15801561107357600080fd5b505af1158015611087573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093506001600160a01b03871692506370a082319150602401602060405180830381865afa1580156110d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f79190611e9f565b6001600160a01b0385166000908152600c6020526040812080549293508392909190611124908490611da2565b909155505060405163a9059cbb60e01b815261dead6004820152602481018290526001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190611e04565b5050505050565b6001600160a01b0383166112075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610734565b6001600160a01b0382166112695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610734565b600081116112cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610734565b6001600160a01b038316600090815260036020526040812080548392906112f3908490611dba565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561133d57506001600160a01b03841660009081526005602052604090205460ff16155b15611346575060015b8015611506576002546001600160a01b038581169116146113db576008548311156113835760405162461bcd60e51b815260040161073490611eb8565b600754836113a6866001600160a01b031660009081526003602052604090205490565b6113b09190611da2565b11156113ce5760405162461bcd60e51b815260040161073490611eff565b6113d88386611654565b91505b6002546001600160a01b03868116911614611468576008548311156114125760405162461bcd60e51b815260040161073490611eb8565b61141c838661180a565b6009543060009081526003602052604090205491935011158015611443575060165460ff16155b15611468576016805460ff1916600117905561145d611862565b6016805460ff191690555b6002546001600160a01b0385811691161480159061149457506002546001600160a01b03868116911614155b15611506576008548311156114bb5760405162461bcd60e51b815260040161073490611eb8565b600754836114de866001600160a01b031660009081526003602052604090205490565b6114e89190611da2565b11156115065760405162461bcd60e51b815260040161073490611eff565b6001600160a01b0384166000908152600360205260408120805484929061152e908490611da2565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161157a91815260200190565b60405180910390a35050505050565b60008260000361159b57506000610704565b60006115a78385611f4b565b9050826115b48583611f6a565b1461160b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610734565b9392505050565b600061160b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611931565b6000806064600d600001548561166a9190611f4b565b6116749190611f6a565b905060006064600d600101548661168b9190611f4b565b6116959190611f6a565b905060006064600d60020154876116ac9190611f4b565b6116b69190611f6a565b90506116c28184611da2565b30600090815260036020526040812080549091906116e1908490611da2565b9091555050600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8054849290611721908490611da2565b92505081905550816006600082825461173a9190611dba565b9250508190555081600b60008282546117539190611da2565b90915550506040518281526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3306001600160a01b0386167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117cf8685611da2565b60405190815260200160405180910390a380826117ec8589611dba565b6117f69190611dba565b6118009190611dba565b9695505050505050565b6000806064601060000154856118209190611f4b565b61182a9190611f6a565b905060006064601060010154866118419190611f4b565b61184b9190611f6a565b905060006064601060020154876116ac9190611f4b565b600954601054601254600d54600f54600093929161187f91611da2565b6118899190611da2565b6118939190611da2565b601054600d546118a39190611da2565b6118ad9084611f4b565b6118b79190611f6a565b905060006118c58284611dba565b905060006118d38284611da2565b905060006118e2846002611612565b905060006118f08683611968565b9050476118fc826119aa565b60006119084783611968565b9050600061191a866109a1848b611589565b90506119268582611b04565b505050505050505050565b600081836119525760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611f6a565b95945050505050565b600061160b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb1565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119df576119df611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190611dd1565b81600181518110611a6f57611a6f611dee565b6001600160a01b039283166020918202929092010152600154611a959130911684610d34565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ace908590600090869030904290600401611f8c565b600060405180830381600087803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b505050505050565b600154611b1c9030906001600160a01b031684610d34565b600154600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611b8c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061119c9190611fc8565b60008184841115611bd55760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611dba565b600060208083528351808285015260005b81811015611c0f57858101830151858201604001528201611bf3565b81811115611c21576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c4c57600080fd5b50565b60008060408385031215611c6257600080fd5b8235611c6d81611c37565b946020939093013593505050565b600080600060608486031215611c9057600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611cbc57600080fd5b8335611cc781611c37565b92506020840135611cd781611c37565b929592945050506040919091013590565b600060208284031215611cfa57600080fd5b813561160b81611c37565b600060208284031215611d1757600080fd5b5035919050565b60008060408385031215611d3157600080fd5b8235611d3c81611c37565b91506020830135611d4c81611c37565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611db557611db5611d8c565b500190565b600082821015611dcc57611dcc611d8c565b500390565b600060208284031215611de357600080fd5b815161160b81611c37565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1657600080fd5b8151801515811461160b57600080fd5b600081518084526020808501945080840160005b83811015611e5f5781516001600160a01b031687529582019590820190600101611e3a565b509495945050505050565b848152608060208201526000611e836080830186611e26565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215611eb157600080fd5b5051919050565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b6000816000190483118215151615611f6557611f65611d8c565b500290565b600082611f8757634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a060408201526000611fab60a0830186611e26565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fdd57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122051c59a7712cafbb917b987d26cb93b2794d185a25bd2ab8d53090911220b4e3f64736f6c634300080d0033

Deployed Bytecode Sourcemap

4832:12526:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5545:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5545:61:0;;;;;;;;7142:83;;;;;;;;;;-1:-1:-1;7212:5:0;;;;;;;;;;;;-1:-1:-1;;;7212:5:0;;;;7142:83;;;;;;;:::i;7974:161::-;;;;;;;;;;-1:-1:-1;7974:161:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;7974:161:0;1254:187:1;11332:369:0;;;;;;;;;;-1:-1:-1;11332:369:0;;;;;:::i;:::-;;:::i;:::-;;12743:149;;;;;;;;;;-1:-1:-1;12743:149:0;;;;;:::i;:::-;;:::i;11709:374::-;;;;;;;;;;-1:-1:-1;11709:374:0;;;;;:::i;:::-;;:::i;4921:41::-;;;;;;;;;;-1:-1:-1;4921:41:0;;;;-1:-1:-1;;;;;4921:41:0;;;;;;-1:-1:-1;;;;;1957:32:1;;;1939:51;;1927:2;1912:18;4921:41:0;1767:229:1;7419:95:0;;;;;;;;;;-1:-1:-1;7499:7:0;;7419:95;;5656:31;;;;;;;;;;;;;;;;8143:266;;;;;;;;;;-1:-1:-1;8143:266:0;;;;;:::i;:::-;;:::i;5615:32::-;;;;;;;;;;-1:-1:-1;5615:32:0;;;;-1:-1:-1;;;;;5615:32:0;;;6018:23;;;;;;;;;;-1:-1:-1;6018:23:0;;;;;;;;;;;;;;;;2872:25:1;;;2928:2;2913:18;;2906:34;;;;2956:18;;;2949:34;2860:2;2845:18;6018:23:0;2670:319:1;7328:83:0;;;;;;;;;;-1:-1:-1;7328:83:0;;5341:1;3136:36:1;;3124:2;3109:18;7328:83:0;2994:184:1;8417:215:0;;;;;;;;;;-1:-1:-1;8417:215:0;;;;;:::i;:::-;;:::i;8877:111::-;;;;;;;;;;-1:-1:-1;8877:111:0;;;;;:::i;:::-;;:::i;5990:21::-;;;;;;;;;;-1:-1:-1;5990:21:0;;;;;;;;;;;;4969:28;;;;;;;;;;-1:-1:-1;4969:28:0;;;;-1:-1:-1;;;;;4969:28:0;;;12555:180;;;;;;;;;;-1:-1:-1;12555:180:0;;;;;:::i;:::-;;:::i;10852:123::-;;;;;;;;;;-1:-1:-1;10852:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10940:27:0;10916:4;10940:27;;;:18;:27;;;;;;;;;10852:123;5413:61;;;;;;;;;;;;;;;;7522:118;;;;;;;;;;-1:-1:-1;7522:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7615:17:0;7588:7;7615:17;;;:8;:17;;;;;;;7522:118;3357:148;;;;;;;;;;;;;:::i;5481:57::-;;;;;;;;;;;;;;;;12309:238;;;;;;;;;;-1:-1:-1;12309:238:0;;;;;:::i;:::-;;:::i;3143:79::-;;;;;;;;;;-1:-1:-1;3181:7:0;3208:6;-1:-1:-1;;;;;3208:6:0;3143:79;;7233:87;;;;;;;;;;-1:-1:-1;7305:7:0;;;;;;;;;;;;-1:-1:-1;;;7305:7:0;;;;7233:87;;8640:225;;;;;;;;;;-1:-1:-1;8640:225:0;;;;;:::i;:::-;;:::i;7648:167::-;;;;;;;;;;-1:-1:-1;7648:167:0;;;;;:::i;:::-;;:::i;12900:176::-;;;;;;;;;;-1:-1:-1;12900:176:0;;;;;:::i;:::-;;:::i;12091:210::-;;;;;;;;;;-1:-1:-1;12091:210:0;;;;;:::i;:::-;;:::i;9163:135::-;;;;;;;;;;-1:-1:-1;9163:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;9259:31:0;9232:7;9259:31;;;:17;:31;;;;;;;9163:135;7823:143;;;;;;;;;;-1:-1:-1;7823:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7931:18:0;;;7904:7;7931:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7823:143;9000:110;;;;;;;;;;-1:-1:-1;9000:110:0;;;;;:::i;:::-;;:::i;3513:244::-;;;;;;;;;;-1:-1:-1;3513:244:0;;;;;:::i;:::-;;:::i;7974:161::-;8049:4;8066:39;2675:10;8089:7;8098:6;8066:8;:39::i;:::-;-1:-1:-1;8123:4:0;7974:161;;;;;:::o;11332:369::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;;;;;;;;;11522:2:::1;11500:18:::0;11465:32:::1;11483:14:::0;11465:15;:32:::1;:::i;:::-;:53;;;;:::i;:::-;:59;;11457:98;;;::::0;-1:-1:-1;;;11457:98:0;;4841:2:1;11457:98:0::1;::::0;::::1;4823:21:1::0;4880:2;4860:18;;;4853:30;4919:28;4899:18;;;4892:56;4965:18;;11457:98:0::1;4639:350:1::0;11457:98:0::1;11566:6;:34:::0;;;;11611:15;:32;11654:19;:39;11332:369::o;12743:149::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12835:49:::1;12860:12;12874:9;12835:24;:49::i;:::-;12743:149:::0;;:::o;11709:374::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;11900:2:::1;11878:18:::0;11843:32:::1;11861:14:::0;11843:15;:32:::1;:::i;:::-;:53;;;;:::i;:::-;:59;;11835:99;;;::::0;-1:-1:-1;;;11835:99:0;;5196:2:1;11835:99:0::1;::::0;::::1;5178:21:1::0;5235:2;5215:18;;;5208:30;5274:29;5254:18;;;5247:57;5321:18;;11835:99:0::1;4994:351:1::0;11835:99:0::1;11945:7;:35:::0;;;;11991:16;:33;12035:20;:40;11709:374::o;8143:266::-;8241:4;8258:36;8268:6;8276:9;8287:6;8258:9;:36::i;:::-;-1:-1:-1;;;;;8336:19:0;;;;;;:11;:19;;;;;;;;2675:10;8336:33;;;;;;;;;8305:74;;8314:6;;8336:42;;8372:6;;8336:42;:::i;:::-;8305:8;:74::i;:::-;-1:-1:-1;8397:4:0;8143:266;;;;;:::o;8417:215::-;2675:10;8505:4;8554:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8554:34:0;;;;;;;;;;8505:4;;8522:80;;8545:7;;8554:47;;8591:10;;8554:47;:::i;8877:111::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8946:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;8946:34:0::1;8976:4;8946:34;::::0;;8877:111::o;12555:180::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12677:50:::1;12721:5;12677:39;12689:26;12677:7;;:11;;:39;;;;:::i;:::-;:43:::0;::::1;:50::i;:::-;12657:17;:70:::0;-1:-1:-1;12555:180:0:o;3357:148::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;3464:1:::1;3448:6:::0;;3427:40:::1;::::0;-1:-1:-1;;;;;3448:6:0;;::::1;::::0;3427:40:::1;::::0;3464:1;;3427:40:::1;3495:1;3478:19:::0;;-1:-1:-1;;;;;;3478:19:0::1;::::0;;3357:148::o;12309:238::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12426:1:::1;12403:19;:24;;12395:67;;;::::0;-1:-1:-1;;;12395:67:0;;5682:2:1;12395:67:0::1;::::0;::::1;5664:21:1::0;5721:2;5701:18;;;5694:30;5760:32;5740:18;;;5733:60;5810:18;;12395:67:0::1;5480:354:1::0;12395:67:0::1;12492:43;12529:5;12492:32;12504:19;12492:7;;:11;;:32;;;;:::i;:43::-;12473:16;:62:::0;-1:-1:-1;12309:238:0:o;8640:225::-;2675:10;8733:4;8782:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8782:34:0;;;;;;;;;;8733:4;;8750:85;;8773:7;;8782:52;;8819:15;;8782:52;:::i;7648:167::-;7726:4;7743:42;2675:10;7767:9;7778:6;7743:9;:42::i;12900:176::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12982:17:::1;:34:::0;;-1:-1:-1;;;;;12982:34:0;;::::1;-1:-1:-1::0;;;;;;12982:34:0;;::::1;::::0;::::1;::::0;;:17:::1;13027:34:::0;;;:18:::1;:34;::::0;;;;:41;;-1:-1:-1;;13027:41:0::1;12982:34:::0;13027:41:::1;::::0;;12900:176::o;12091:210::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12196:1:::1;12177:15;:20;;12169:59;;;::::0;-1:-1:-1;;;12169:59:0;;6041:2:1;12169:59:0::1;::::0;::::1;6023:21:1::0;6080:2;6060:18;;;6053:30;6119:28;6099:18;;;6092:56;6165:18;;12169:59:0::1;5839:350:1::0;12169:59:0::1;12254:39;12287:5;12254:28;12266:15;12254:7;;:11;;:28;;;;:::i;:39::-;12239:12;:54:::0;-1:-1:-1;12091:210:0:o;9000:110::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9067:27:0::1;9097:5;9067:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9067:35:0::1;::::0;;9000:110::o;3513:244::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3602:22:0;::::1;3594:73;;;::::0;-1:-1:-1;;;3594:73:0;;6396:2:1;3594:73:0::1;::::0;::::1;6378:21:1::0;6435:2;6415:18;;;6408:30;6474:34;6454:18;;;6447:62;-1:-1:-1;;;6525:18:1;;;6518:36;6571:19;;3594:73:0::1;6194:402:1::0;3594:73:0::1;3704:6;::::0;;3683:38:::1;::::0;-1:-1:-1;;;;;3683:38:0;;::::1;::::0;3704:6;::::1;::::0;3683:38:::1;::::0;::::1;3732:6;:17:::0;;-1:-1:-1;;;;;;3732:17:0::1;-1:-1:-1::0;;;;;3732:17:0;;;::::1;::::0;;;::::1;::::0;;3513:244::o;10987:337::-;-1:-1:-1;;;;;11080:19:0;;11072:68;;;;-1:-1:-1;;;11072:68:0;;6803:2:1;11072:68:0;;;6785:21:1;6842:2;6822:18;;;6815:30;6881:34;6861:18;;;6854:62;-1:-1:-1;;;6932:18:1;;;6925:34;6976:19;;11072:68:0;6601:400:1;11072:68:0;-1:-1:-1;;;;;11159:21:0;;11151:68;;;;-1:-1:-1;;;11151:68:0;;7208:2:1;11151:68:0;;;7190:21:1;7247:2;7227:18;;;7220:30;7286:34;7266:18;;;7259:62;-1:-1:-1;;;7337:18:1;;;7330:32;7379:19;;11151:68:0;7006:398:1;11151:68:0;-1:-1:-1;;;;;11232:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11284:32;;160:25:1;;;11284:32:0;;133:18:1;11284:32:0;;;;;;;10987:337;;;:::o;16264:709::-;16377:16;;;16391:1;16377:16;;;;;;;;16353:21;;16377:16;;;;;;;;-1:-1:-1;;16414:15:0;;:22;;;-1:-1:-1;;;16414:22:0;;;;16353:40;;-1:-1:-1;;;;;;16414:15:0;;;;:20;;-1:-1:-1;16414:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16404:4;16409:1;16404:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16404:32:0;;;-1:-1:-1;;;;;16404:32:0;;;;;16457:10;16447:4;16452:1;16447:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16447:20:0;;;:7;;;;;;;;;;:20;;;;16495:15;;:22;;;-1:-1:-1;;;16495:22:0;;;;:15;;;;;:20;;:22;;;;;16447:7;;16495:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16535:15;;16488:72;;-1:-1:-1;;;16488:72:0;;-1:-1:-1;;;;;16535:15:0;;;16488:72;;;8103:51:1;8170:18;;;8163:34;;;16488:38:0;;;;;8076:18:1;;16488:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16573:15:0;;:185;;-1:-1:-1;;;16573:185:0;;-1:-1:-1;;;;;16573:15:0;;;;:66;;16647:6;;16573:185;;:15;;16685:4;;16712;;16732:15;;16573:185;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16795:43:0;;-1:-1:-1;;;16795:43:0;;16832:4;16795:43;;;1939:51:1;16771:21:0;;-1:-1:-1;;;;;;16795:28:0;;;-1:-1:-1;16795:28:0;;-1:-1:-1;1912:18:1;;16795:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16849:29:0;;;;;;:17;:29;;;;;:46;;16771:67;;-1:-1:-1;16771:67:0;;16849:29;;;:46;;16771:67;;16849:46;:::i;:::-;;;;-1:-1:-1;;16906:59:0;;-1:-1:-1;;;16906:59:0;;16942:6;16906:59;;;8103:51:1;8170:18;;;8163:34;;;-1:-1:-1;;;;;16906:27:0;;;;;8076:18:1;;16906:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16342:631;;16264:709;;:::o;13084:1746::-;-1:-1:-1;;;;;13206:18:0;;13198:68;;;;-1:-1:-1;;;13198:68:0;;9862:2:1;13198:68:0;;;9844:21:1;9901:2;9881:18;;;9874:30;9940:34;9920:18;;;9913:62;-1:-1:-1;;;9991:18:1;;;9984:35;10036:19;;13198:68:0;9660:401:1;13198:68:0;-1:-1:-1;;;;;13285:16:0;;13277:64;;;;-1:-1:-1;;;13277:64:0;;10268:2:1;13277:64:0;;;10250:21:1;10307:2;10287:18;;;10280:30;10346:34;10326:18;;;10319:62;-1:-1:-1;;;10397:18:1;;;10390:33;10440:19;;13277:64:0;10066:399:1;13277:64:0;13369:1;13360:6;:10;13352:64;;;;-1:-1:-1;;;13352:64:0;;10672:2:1;13352:64:0;;;10654:21:1;10711:2;10691:18;;;10684:30;10750:34;10730:18;;;10723:62;-1:-1:-1;;;10801:18:1;;;10794:39;10850:19;;13352:64:0;10470:405:1;13352:64:0;-1:-1:-1;;;;;13437:14:0;;;;;;:8;:14;;;;;:24;;13455:6;;13437:14;:24;;13455:6;;13437:24;:::i;:::-;;;;-1:-1:-1;;;;;;;13553:24:0;;13472:22;13553:24;;;:18;:24;;;;;;13497:6;;13472:22;13553:24;;13552:25;:52;;;;-1:-1:-1;;;;;;13582:22:0;;;;;;:18;:22;;;;;;;;13581:23;13552:52;13549:97;;;-1:-1:-1;13630:4:0;13549:97;13662:7;13659:1063;;;13694:13;;-1:-1:-1;;;;;13688:19:0;;;13694:13;;13688:19;13685:312;;13745:12;;13735:6;:22;;13727:74;;;;-1:-1:-1;;;13727:74:0;;;;;;;:::i;:::-;13854:16;;13844:6;13828:13;13838:2;-1:-1:-1;;;;;7615:17:0;7588:7;7615:17;;;:8;:17;;;;;;;7522:118;13828:13;:22;;;;:::i;:::-;:42;;13820:99;;;;-1:-1:-1;;;13820:99:0;;;;;;;:::i;:::-;13956:25;13968:6;13976:4;13956:11;:25::i;:::-;13939:42;;13685:312;14024:13;;-1:-1:-1;;;;;14016:21:0;;;14024:13;;14016:21;14013:407;;14075:12;;14065:6;:22;;14057:74;;;;-1:-1:-1;;;14057:74:0;;;;;;;:::i;:::-;14167:26;14180:6;14188:4;14167:12;:26::i;:::-;14245:17;;14235:4;7588:7;7615:17;;;:8;:17;;;;;;14150:43;;-1:-1:-1;;14217:45:0;:58;;;;-1:-1:-1;14267:8:0;;;;14266:9;14217:58;14213:192;;;14300:8;:15;;-1:-1:-1;;14300:15:0;14311:4;14300:15;;;14338:10;:8;:10::i;:::-;14371:8;:16;;-1:-1:-1;;14371:16:0;;;14213:192;14445:13;;-1:-1:-1;;;;;14439:19:0;;;14445:13;;14439:19;;;;:44;;-1:-1:-1;14470:13:0;;-1:-1:-1;;;;;14462:21:0;;;14470:13;;14462:21;;14439:44;14436:275;;;14521:12;;14511:6;:22;;14503:74;;;;-1:-1:-1;;;14503:74:0;;;;;;;:::i;:::-;14630:16;;14620:6;14604:13;14614:2;-1:-1:-1;;;;;7615:17:0;7588:7;7615:17;;;:8;:17;;;;;;;7522:118;14604:13;:22;;;;:::i;:::-;:42;;14596:99;;;;-1:-1:-1;;;14596:99:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14742:12:0;;;;;;:8;:12;;;;;:30;;14758:14;;14742:12;:30;;14758:14;;14742:30;:::i;:::-;;;;;;;;14803:2;-1:-1:-1;;;;;14788:34:0;14797:4;-1:-1:-1;;;;;14788:34:0;;14807:14;14788:34;;;;160:25:1;;148:2;133:18;;14:177;14788:34:0;;;;;;;;13187:1643;;13084:1746;;;:::o;1551:250::-;1609:7;1633:1;1638;1633:6;1629:47;;-1:-1:-1;1663:1:0;1656:8;;1629:47;1688:9;1700:5;1704:1;1700;:5;:::i;:::-;1688:17;-1:-1:-1;1733:1:0;1724:5;1728:1;1688:17;1724:5;:::i;:::-;:10;1716:56;;;;-1:-1:-1;;;1716:56:0;;12298:2:1;1716:56:0;;;12280:21:1;12337:2;12317:18;;;12310:30;12376:34;12356:18;;;12349:62;-1:-1:-1;;;12427:18:1;;;12420:31;12468:19;;1716:56:0;12096:397:1;1716:56:0;1792:1;1551:250;-1:-1:-1;;;1551:250:0:o;1809:132::-;1867:7;1894:39;1898:1;1901;1894:39;;;;;;;;;;;;;;;;;:3;:39::i;9306:763::-;9374:7;9394:25;9450:3;9431:6;:16;;;9422:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9394:59;;9465:24;9519:3;9501:6;:15;;;9492:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;9465:57;;9534:28;9596:3;9574:6;:19;;;9565:6;:28;;;;:::i;:::-;:34;;;;:::i;:::-;9534:65;-1:-1:-1;9640:40:0;9534:65;9640:17;:40;:::i;:::-;9630:4;9613:23;;;;:8;:23;;;;;:67;;:23;;;:67;;;;;:::i;:::-;;;;-1:-1:-1;;9691:23:0;;;;:8;:23;;;:43;;9718:16;;9691:23;:43;;9718:16;;9691:43;:::i;:::-;;;;;;;;9756:16;9745:7;;:27;;;;;;;:::i;:::-;;;;;;;;9803:16;9783;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;9837:49:0;;160:25:1;;;9861:5:0;;-1:-1:-1;;;;;9837:49:0;;;;;148:2:1;133:18;9837:49:0;;;;;;;9926:4;-1:-1:-1;;;;;9902:72:0;;;9933:40;9956:17;9933:20;:40;:::i;:::-;9902:72;;160:25:1;;;148:2;133:18;9902:72:0;;;;;;;10040:20;10022:16;9995:25;10003:17;9995:6;:25;:::i;:::-;:43;;;;:::i;:::-;:65;;;;:::i;:::-;9987:74;9306:763;-1:-1:-1;;;;;;9306:763:0:o;10077:767::-;10146:7;10166:25;10223:3;10203:7;:17;;;10194:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;10166:60;;10238:24;10293:3;10274:7;:16;;;10265:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;10238:58;;10308:28;10371:3;10348:7;:20;;;10339:6;:29;;;;:::i;14848:925::-;14913:17;;15091:7;:17;15068:20;;15049:6;:16;15027:19;;14887:23;;15091:17;15068:20;15027:38;;;:::i;:::-;:61;;;;:::i;:::-;:81;;;;:::i;:::-;15005:7;:17;14986:6;:16;:36;;15005:17;14986:36;:::i;:::-;14967:56;;:15;:56;:::i;:::-;:142;;;;:::i;:::-;14941:168;-1:-1:-1;15120:26:0;15149:33;14941:168;15149:15;:33;:::i;:::-;15120:62;-1:-1:-1;15193:25:0;15221:36;15120:62;15221:15;:36;:::i;:::-;15193:64;-1:-1:-1;15278:26:0;15307:22;:15;15327:1;15307:19;:22::i;:::-;15278:51;-1:-1:-1;15340:26:0;15369:39;:15;15278:51;15369:19;:39::i;:::-;15340:68;-1:-1:-1;15457:21:0;15489:36;15340:68;15489:16;:36::i;:::-;15537:18;15558:44;:21;15584:17;15558:25;:44::i;:::-;15537:65;-1:-1:-1;15623:23:0;15649:54;15685:17;15649:31;15537:65;15664:15;15649:14;:31::i;:54::-;15623:80;;15716:49;15729:18;15749:15;15716:12;:49::i;:::-;14876:897;;;;;;;;;14848:925::o;1949:278::-;2035:7;2070:12;2063:5;2055:28;;;;-1:-1:-1;;;2055:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2094:9:0;2106:5;2110:1;2106;:5;:::i;:::-;2094:17;1949:278;-1:-1:-1;;;;;1949:278:0:o;1207:136::-;1265:7;1292:43;1296:1;1299;1292:43;;;;;;;;;;;;;;;;;:3;:43::i;15781:475::-;15871:16;;;15885:1;15871:16;;;;;;;;15847:21;;15871:16;;;;;;;;;;-1:-1:-1;15871:16:0;15847:40;;15916:4;15898;15903:1;15898:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15898:23:0;;;:7;;;;;;;;;;:23;;;;15942:15;;:22;;;-1:-1:-1;;;15942:22:0;;;;:15;;;;;:20;;:22;;;;;15898:7;;15942:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15932:4;15937:1;15932:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15932:32:0;;;:7;;;;;;;;;:32;16009:15;;15977:62;;15994:4;;16009:15;16027:11;15977:8;:62::i;:::-;16052:15;;:196;;-1:-1:-1;;;16052:196:0;;-1:-1:-1;;;;;16052:15:0;;;;:66;;:196;;16133:11;;16052:15;;16175:4;;16202;;16222:15;;16052:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15836:420;15781:475;:::o;16981:374::-;17094:15;;17062:62;;17079:4;;-1:-1:-1;;;;;17094:15:0;17112:11;17062:8;:62::i;:::-;17137:15;;17289:17;;17137:210;;-1:-1:-1;;;17137:210:0;;17211:4;17137:210;;;13426:34:1;13476:18;;;13469:34;;;17137:15:0;13519:18:1;;;13512:34;;;13562:18;;;13555:34;-1:-1:-1;;;;;17289:17:0;;;13605:19:1;;;13598:44;17321:15:0;13658:19:1;;;13651:35;17137:15:0;;;:31;;17177:9;;13360:19:1;;17137:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1351:192::-;1437:7;1473:12;1465:6;;;;1457:29;;;;-1:-1:-1;;;1457:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1497:9:0;1509:5;1513:1;1509;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;853:70;798:131;:::o;934:315::-;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:316::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;-1:-1:-1;;1631:23:1;;;1701:2;1686:18;;1673:32;;-1:-1:-1;1752:2:1;1737:18;;;1724:32;;1446:316;-1:-1:-1;1446:316:1:o;2001:456::-;2078:6;2086;2094;2147:2;2135:9;2126:7;2122:23;2118:32;2115:52;;;2163:1;2160;2153:12;2115:52;2202:9;2189:23;2221:31;2246:5;2221:31;:::i;:::-;2271:5;-1:-1:-1;2328:2:1;2313:18;;2300:32;2341:33;2300:32;2341:33;:::i;:::-;2001:456;;2393:7;;-1:-1:-1;;;2447:2:1;2432:18;;;;2419:32;;2001:456::o;3183:247::-;3242:6;3295:2;3283:9;3274:7;3270:23;3266:32;3263:52;;;3311:1;3308;3301:12;3263:52;3350:9;3337:23;3369:31;3394:5;3369:31;:::i;3435:180::-;3494:6;3547:2;3535:9;3526:7;3522:23;3518:32;3515:52;;;3563:1;3560;3553:12;3515:52;-1:-1:-1;3586:23:1;;3435:180;-1:-1:-1;3435:180:1:o;3620:388::-;3688:6;3696;3749:2;3737:9;3728:7;3724:23;3720:32;3717:52;;;3765:1;3762;3755:12;3717:52;3804:9;3791:23;3823:31;3848:5;3823:31;:::i;:::-;3873:5;-1:-1:-1;3930:2:1;3915:18;;3902:32;3943:33;3902:32;3943:33;:::i;:::-;3995:7;3985:17;;;3620:388;;;;;:::o;4013:356::-;4215:2;4197:21;;;4234:18;;;4227:30;4293:34;4288:2;4273:18;;4266:62;4360:2;4345:18;;4013:356::o;4374:127::-;4435:10;4430:3;4426:20;4423:1;4416:31;4466:4;4463:1;4456:15;4490:4;4487:1;4480:15;4506:128;4546:3;4577:1;4573:6;4570:1;4567:13;4564:39;;;4583:18;;:::i;:::-;-1:-1:-1;4619:9:1;;4506:128::o;5350:125::-;5390:4;5418:1;5415;5412:8;5409:34;;;5423:18;;:::i;:::-;-1:-1:-1;5460:9:1;;5350:125::o;7541:251::-;7611:6;7664:2;7652:9;7643:7;7639:23;7635:32;7632:52;;;7680:1;7677;7670:12;7632:52;7712:9;7706:16;7731:31;7756:5;7731:31;:::i;7797:127::-;7858:10;7853:3;7849:20;7846:1;7839:31;7889:4;7886:1;7879:15;7913:4;7910:1;7903:15;8208:277;8275:6;8328:2;8316:9;8307:7;8303:23;8299:32;8296:52;;;8344:1;8341;8334:12;8296:52;8376:9;8370:16;8429:5;8422:13;8415:21;8408:5;8405:32;8395:60;;8451:1;8448;8441:12;8490:461;8543:3;8581:5;8575:12;8608:6;8603:3;8596:19;8634:4;8663:2;8658:3;8654:12;8647:19;;8700:2;8693:5;8689:14;8721:1;8731:195;8745:6;8742:1;8739:13;8731:195;;;8810:13;;-1:-1:-1;;;;;8806:39:1;8794:52;;8866:12;;;;8901:15;;;;8842:1;8760:9;8731:195;;;-1:-1:-1;8942:3:1;;8490:461;-1:-1:-1;;;;;8490:461:1:o;8956:510::-;9227:6;9216:9;9209:25;9270:3;9265:2;9254:9;9250:18;9243:31;9190:4;9291:57;9343:3;9332:9;9328:19;9320:6;9291:57;:::i;:::-;-1:-1:-1;;;;;9384:32:1;;;;9379:2;9364:18;;9357:60;-1:-1:-1;9448:2:1;9433:18;9426:34;9283:65;8956:510;-1:-1:-1;;8956:510:1:o;9471:184::-;9541:6;9594:2;9582:9;9573:7;9569:23;9565:32;9562:52;;;9610:1;9607;9600:12;9562:52;-1:-1:-1;9633:16:1;;9471:184;-1:-1:-1;9471:184:1:o;10880:403::-;11082:2;11064:21;;;11121:2;11101:18;;;11094:30;11160:34;11155:2;11140:18;;11133:62;-1:-1:-1;;;11226:2:1;11211:18;;11204:37;11273:3;11258:19;;10880:403::o;11288:408::-;11490:2;11472:21;;;11529:2;11509:18;;;11502:30;11568:34;11563:2;11548:18;;11541:62;-1:-1:-1;;;11634:2:1;11619:18;;11612:42;11686:3;11671:19;;11288:408::o;11701:168::-;11741:7;11807:1;11803;11799:6;11795:14;11792:1;11789:21;11784:1;11777:9;11770:17;11766:45;11763:71;;;11814:18;;:::i;:::-;-1:-1:-1;11854:9:1;;11701:168::o;11874:217::-;11914:1;11940;11930:132;;11984:10;11979:3;11975:20;11972:1;11965:31;12019:4;12016:1;12009:15;12047:4;12044:1;12037:15;11930:132;-1:-1:-1;12076:9:1;;11874:217::o;12498:582::-;12797:6;12786:9;12779:25;12840:6;12835:2;12824:9;12820:18;12813:34;12883:3;12878:2;12867:9;12863:18;12856:31;12760:4;12904:57;12956:3;12945:9;12941:19;12933:6;12904:57;:::i;:::-;-1:-1:-1;;;;;12997:32:1;;;;12992:2;12977:18;;12970:60;-1:-1:-1;13061:3:1;13046:19;13039:35;12896:65;12498:582;-1:-1:-1;;;12498:582:1:o;13697:306::-;13785:6;13793;13801;13854:2;13842:9;13833:7;13829:23;13825:32;13822:52;;;13870:1;13867;13860:12;13822:52;13899:9;13893:16;13883:26;;13949:2;13938:9;13934:18;13928:25;13918:35;;13993:2;13982:9;13978:18;13972:25;13962:35;;13697:306;;;;;:::o

Swarm Source

ipfs://51c59a7712cafbb917b987d26cb93b2794d185a25bd2ab8d53090911220b4e3f

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.