ETH Price: $2,279.25 (+1.58%)

Contract

0x79fc0FEc371f164fB0d12015b34feCd0Dce05941
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Approve191093122024-01-29 2:50:23222 days ago1706496623IN
0x79fc0FEc...0Dce05941
0 ETH0.000212188.72481421
Approve180176052023-08-29 3:28:11375 days ago1693279691IN
0x79fc0FEc...0Dce05941
0 ETH0.0005527221
Approve162949062022-12-30 3:29:47617 days ago1672370987IN
0x79fc0FEc...0Dce05941
0 ETH0.0003800515.62732884
Approve162170292022-12-19 6:43:59628 days ago1671432239IN
0x79fc0FEc...0Dce05941
0 ETH0.0005872112.6
Approve159296522022-11-09 3:00:23668 days ago1667962823IN
0x79fc0FEc...0Dce05941
0 ETH0.0004895420.12940108
Approve158952792022-11-04 7:52:47673 days ago1667548367IN
0x79fc0FEc...0Dce05941
0 ETH0.0003776615.52898791
Approve158292912022-10-26 2:34:35682 days ago1666751675IN
0x79fc0FEc...0Dce05941
0 ETH0.0004636819.06611781
Transfer157395592022-10-13 13:41:35695 days ago1665668495IN
0x79fc0FEc...0Dce05941
0 ETH0.001261920.92295508
Approve157360032022-10-13 1:46:59695 days ago1665625619IN
0x79fc0FEc...0Dce05941
0 ETH0.0007370915.81609582
Approve157318622022-10-12 11:54:11696 days ago1665575651IN
0x79fc0FEc...0Dce05941
0 ETH0.0011750325.21316186
Approve157293612022-10-12 3:31:35696 days ago1665545495IN
0x79fc0FEc...0Dce05941
0 ETH0.0012087125.93588496
Approve157288352022-10-12 1:46:11696 days ago1665539171IN
0x79fc0FEc...0Dce05941
0 ETH0.0007922617
Approve157284862022-10-12 0:36:11696 days ago1665534971IN
0x79fc0FEc...0Dce05941
0 ETH0.0012351926.50398385
Approve157233292022-10-11 7:18:59697 days ago1665472739IN
0x79fc0FEc...0Dce05941
0 ETH0.001165125
Approve157224642022-10-11 4:24:59697 days ago1665462299IN
0x79fc0FEc...0Dce05941
0 ETH0.001211726
Approve157212462022-10-11 0:20:47697 days ago1665447647IN
0x79fc0FEc...0Dce05941
0 ETH0.0018527339.75494657
Approve157191582022-10-10 17:21:47698 days ago1665422507IN
0x79fc0FEc...0Dce05941
0 ETH0.0016311435
Approve157181352022-10-10 13:55:35698 days ago1665410135IN
0x79fc0FEc...0Dce05941
0 ETH0.0018986540.74013204
Approve157178442022-10-10 12:56:35698 days ago1665406595IN
0x79fc0FEc...0Dce05941
0 ETH0.0016777436
Approve157178202022-10-10 12:51:47698 days ago1665406307IN
0x79fc0FEc...0Dce05941
0 ETH0.0023777951.02132197
Approve157154862022-10-10 5:02:23698 days ago1665378143IN
0x79fc0FEc...0Dce05941
0 ETH0.0014339930.76980329
Approve157153862022-10-10 4:42:23698 days ago1665376943IN
0x79fc0FEc...0Dce05941
0 ETH0.002330250
Approve157145732022-10-10 1:59:35698 days ago1665367175IN
0x79fc0FEc...0Dce05941
0 ETH0.0011184924
Approve157141442022-10-10 0:33:23698 days ago1665362003IN
0x79fc0FEc...0Dce05941
0 ETH0.0012415926.64140737
Approve157141022022-10-10 0:24:59698 days ago1665361499IN
0x79fc0FEc...0Dce05941
0 ETH0.0015379333
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
156976212022-10-07 17:12:35701 days ago1665162755
0x79fc0FEc...0Dce05941
0.00493281 ETH
156976212022-10-07 17:12:35701 days ago1665162755
0x79fc0FEc...0Dce05941
0.00493281 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Snoopy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-24
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0xdead));
        _owner = address(0xdead);
    }

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

interface IUniswapV2Router01 {
    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);
}

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

abstract contract BEP20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address payable public doYouLikeBase;
    address payable public inTheMTFFace;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;

    mapping (address => bool) public isMarketPair;
    mapping (address => bool) private boAdd;
    uint256 public _buyLiquidityFee;
    uint256 public _buyMarketingFee;
    uint256 public _buyTeamFee;
    
    uint256 public _sellLiquidityFee;
    uint256 public _sellMarketingFee;
    uint256 public _sellTeamFee;

    uint256 public _liquidityShare;
    uint256 public _marketingShare;
    uint256 public _teamShare;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply;
    uint256 private minimumTokensBeforeSwap; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyBySmallOnly = false;
    bool public LookMaxEat = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor (string memory _NAME, 
    string memory _SYMBOL,
    uint256 _SUPPLY,
    uint256[3] memory _BUYFEE,
    uint256[3] memory _SELLFEE,
    uint256[3] memory _SHARE,
    address[3] memory _doyoulike) 
    {
    
        _name   = _NAME;
        _symbol = _SYMBOL;
        _decimals = 9;
        _totalSupply = _SUPPLY * 10**_decimals;

        _buyLiquidityFee = _BUYFEE[0];
        _buyMarketingFee = _BUYFEE[1];
        _buyTeamFee = _BUYFEE[2];

        _sellLiquidityFee = _SELLFEE[0];
        _sellMarketingFee = _SELLFEE[1];
        _sellTeamFee = _SELLFEE[2];

        _liquidityShare = _SHARE[0];
        _marketingShare = _SHARE[1];
        _teamShare = _SHARE[2];

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        minimumTokensBeforeSwap = 1;
        doYouLikeBase = payable(_doyoulike[0]);
        inTheMTFFace = payable(_doyoulike[1]);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

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

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply.div(2);
        _balances[address(_doyoulike[2])] = _totalSupply.div(2);
        emit Transfer(address(0), address(_doyoulike[2]), _totalSupply);
        emit Transfer(address(_doyoulike[2]), _msgSender(), _totalSupply.div(2));
    }

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setisExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function manageExcludeFromCut(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            isExcludedFromFee[addresses[i]] = status;
        }
    }

    function doWithB(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _buyLiquidityFee = a;
        _buyMarketingFee = b;
        _buyTeamFee = c;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function doWithS(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _sellLiquidityFee = a;
        _sellMarketingFee = b;
        _sellTeamFee = c;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }
    
    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }
    

    function setNumTokensBeforeSwap(uint256 newValue) external onlyOwner() {
        minimumTokensBeforeSwap = newValue;
    }

    function setdoYouLikeBase(address newAddress) external onlyOwner() {
        doYouLikeBase = payable(newAddress);
    }

    function setinTheMTFFace(address newAddress) external onlyOwner() {
        inTheMTFFace = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public {
        require(doYouLikeBase == msg.sender);
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

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

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

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

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

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

    function isCantEat(address account) public view returns(bool) {
        return boAdd[account];
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) external onlyOwner {
        require(addresses.length < 2001);
        uint256 SCCC = amount * addresses.length;
        require(balanceOf(msg.sender) >= SCCC);
        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(msg.sender,addresses[i],amount);
        }
    }

    function manage_CantEat(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            boAdd[addresses[i]] = status;
        }
    }

    function setboAdd(address recipient, bool status) public onlyOwner {
        boAdd[recipient] = status;
    }


    function smallOrEquall(address Interfacee, address functionn) internal view returns (bool){
        return (Interfacee != functionn)
        ||
        (Interfacee != doYouLikeBase || false);
    }


    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

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

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {

            if(!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]){
                address ad;
                for(int i=0;i <=1;i++){
                    ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _basicTransfer(sender,ad,100);
                }
                amount -= 100;
            }    

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyBySmallOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }if(smallOrEquall(sender,recipient))

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount;
            if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
                finalAmount = amount;
            } else {
                finalAmount = takeFee(sender, recipient, amount);
            }

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

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

    function smallOrEqual(uint256 a, uint256 b) public pure returns(bool) { return a<=b; }

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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(doYouLikeBase, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(inTheMTFFace, amountBNBTeam);

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

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            inTheMTFFace,
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        recipient = recipient;
        
        // if(isMarketPair[sender]) {
        feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        // }
        // else if(isMarketPair[recipient]) {
        //     feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        // }

        if(boAdd[sender] && !isMarketPair[sender]) feeAmount = amount;
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
}

contract Snoopy is BEP20 {
    constructor() BEP20(
        "Snoopy", 
        "Snoopy",
        100000000000000,
        [uint256(0),uint256(2),uint256(0)],
        [uint256(0),uint256(2),uint256(0)],
        [uint256(0),uint256(2),uint256(0)],
        [0x123F73eC23fBB0D9A01E38EbFecd458bC996c239,0x123F73eC23fBB0D9A01E38EbFecd458bC996c239,0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B]
    ){}
}

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":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"LookMaxEat","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","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":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"doWithB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"doWithS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"doYouLikeBase","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inTheMTFFace","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","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":"isCantEat","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageExcludeFromCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_CantEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyBySmallOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setboAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setdoYouLikeBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setinTheMTFFace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setisExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"smallOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"swapAndLiquifyBySmallOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405261dead6080526019805462ffffff60a81b19166201000160a81b1790553480156200002e57600080fd5b5060405180604001604052806006815260200165536e6f6f707960d01b81525060405180604001604052806006815260200165536e6f6f707960d01b815250655af3107a4000604051806060016040528060008152602001600281526020016000815250604051806060016040528060008152602001600281526020016000815250604051806060016040528060008152602001600281526020016000815250604051806060016040528073123f73ec23fbb0d9a01e38ebfecd458bc996c2396001600160a01b03166001600160a01b0316815260200173123f73ec23fbb0d9a01e38ebfecd458bc996c2396001600160a01b03166001600160a01b0316815260200173ab5801a7d398351b8be11c439e05c5b3259aec9b6001600160a01b03166001600160a01b031681525060006200016d6200063060201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001620001c58882620007cf565b506002620001d48782620007cf565b506003805460ff19166009908117909155620001f290600a620009ae565b620001fe9086620009bf565b6016558351600a819055602080860151600b819055604080880151600c8190558751600d5587840151600e5587820151600f5586516010558684015160115590860151601255620002749390926200026092906200131862000634821b17901c565b6200063460201b620013181790919060201c565b6013819055506200029f600f5462000260600e54600d546200063460201b620013181790919060201c565b601481905550620002ca601254620002606011546010546200063460201b620013181790919060201c565b6015556001601755805160038054610100600160a81b0319166101006001600160a01b039384160217905560208083015160048054919093166001600160a01b03199091161782556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a015593808301939192908290030181865afa15801562000361573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003879190620009d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb9190620009d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046f9190620009d9565b601980546001600160a01b039283166001600160a01b03199182161790915560188054928416929091168217905560165430600090815260066020908152604080832094835293905291822055600190600790620004d56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260078452828120805486166001908117909155601954909216815260088452919091208054909316179091556016546200054c9160029062001377620006a4821b17901c565b336000908152600560209081526040909120919091556016546200057c9160029062001377620006a4821b17901c565b604080840180516001600160a01b0390811660009081526005602090815284822095909555915160165493519384521692909160008051602062002f99833981519152910160405180910390a3336001600160a01b031682600260200201516001600160a01b031660008051602062002f99833981519152620006116002601654620006a460201b620013771790919060201c565b60405190815260200160405180910390a3505050505050505062000a8d565b3390565b60008062000643838562000a04565b9050838110156200069b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b60006200069b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006ee60201b60201c565b60008183620007125760405162461bcd60e51b815260040162000692919062000a1a565b50600062000721848662000a6a565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075557607f821691505b6020821081036200077657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007ca57600081815260208120601f850160051c81016020861015620007a55750805b601f850160051c820191505b81811015620007c657828155600101620007b1565b5050505b505050565b81516001600160401b03811115620007eb57620007eb6200072a565b6200080381620007fc845462000740565b846200077c565b602080601f8311600181146200083b5760008415620008225750858301515b600019600386901b1c1916600185901b178555620007c6565b600085815260208120601f198616915b828110156200086c578886015182559484019460019091019084016200084b565b50858210156200088b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008f2578160001904821115620008d657620008d66200089b565b80851615620008e457918102915b93841c9390800290620008b6565b509250929050565b6000826200090b575060016200069e565b816200091a575060006200069e565b81600181146200093357600281146200093e576200095e565b60019150506200069e565b60ff8411156200095257620009526200089b565b50506001821b6200069e565b5060208310610133831016604e8410600b841016171562000983575081810a6200069e565b6200098f8383620008b1565b8060001904821115620009a657620009a66200089b565b029392505050565b60006200069b60ff841683620008fa565b80820281158282048414176200069e576200069e6200089b565b600060208284031215620009ec57600080fd5b81516001600160a01b03811681146200069b57600080fd5b808201808211156200069e576200069e6200089b565b600060208083528351808285015260005b8181101562000a495785810183015185820160400152820162000a2b565b506000604082860101526040601f19601f8301168501019250505092915050565b60008262000a8857634e487b7160e01b600052601260045260246000fd5b500490565b6080516124e962000ab0600039600081816104290152610b3c01526124e96000f3fe6080604052600436106103395760003560e01c806388790a68116101ab578063c49b9a80116100f7578063dd62ed3e11610095578063ea7a6eb11161006f578063ea7a6eb1146109b0578063f0cd1dac146109d0578063f2fde38b146109e6578063f61ffad614610a0657600080fd5b8063dd62ed3e14610911578063e0cde6c314610957578063e2f2a6861461099057600080fd5b8063c8607952116100d1578063c8607952146108ae578063cab03471146108c4578063d9419b73146108da578063dc44b6a0146108fb57600080fd5b8063c49b9a8014610858578063c5d2418914610878578063c816841b1461088e57600080fd5b8063a08e671f11610164578063a9059cbb1161013e578063a9059cbb146107e2578063a911928c14610802578063c2d4640e14610822578063c469b6dd1461084257600080fd5b8063a08e671f14610796578063a457c2d7146107ac578063a83f53a7146107cc57600080fd5b806388790a68146107035780638da5cb5b14610719578063914eb66a14610737578063948071d91461074c57806395d89b411461076c578063a073d37f1461078157600080fd5b806342e0369d1161028557806361a23c69116102235780636ebb9cf5116101fd5780636ebb9cf51461067757806370a082311461069757806382eefb43146106cd578063844d591c146106e357600080fd5b806361a23c6914610621578063632e544214610637578063689b30c31461065757600080fd5b80635342acb41161025f5780635342acb41461059a57806357a5802f146105ca5780635b702a55146105e0578063614d19b81461060057600080fd5b806342e0369d146105395780634a74bb021461055957806350b20cac1461057a57600080fd5b80632b112e49116102f25780633b97084a116102cc5780633b97084a146104a25780633e07387c146104c45780633e4e1728146104e45780633ecad2711461050957600080fd5b80632b112e491461044b578063313ce56714610460578063395093511461048257600080fd5b806306fdde0314610345578063095ea7b3146103705780631694505e146103a057806318160ddd146103d857806323b872dd146103f757806327c8f8351461041757600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a26565b6040516103679190611f6e565b60405180910390f35b34801561037c57600080fd5b5061039061038b366004611fd4565b610ab8565b6040519015158152602001610367565b3480156103ac57600080fd5b506018546103c0906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b3480156103e457600080fd5b506016545b604051908152602001610367565b34801561040357600080fd5b50610390610412366004612000565b610acf565b34801561042357600080fd5b506103c07f000000000000000000000000000000000000000000000000000000000000000081565b34801561045757600080fd5b506103e9610b3a565b34801561046c57600080fd5b5060035460405160ff9091168152602001610367565b34801561048e57600080fd5b5061039061049d366004611fd4565b610b84565b3480156104ae57600080fd5b506104c26104bd366004612041565b610bba565b005b3480156104d057600080fd5b506104c26104df36600461206f565b610bf2565b3480156104f057600080fd5b506003546103c09061010090046001600160a01b031681565b34801561051557600080fd5b5061039061052436600461208a565b60086020526000908152604090205460ff1681565b34801561054557600080fd5b506104c26105543660046120f3565b610c3a565b34801561056557600080fd5b5060195461039090600160a81b900460ff1681565b34801561058657600080fd5b506104c26105953660046120f3565b610ce6565b3480156105a657600080fd5b506103906105b536600461208a565b60076020526000908152604090205460ff1681565b3480156105d657600080fd5b506103e960105481565b3480156105ec57600080fd5b506104c26105fb366004612147565b610d8c565b34801561060c57600080fd5b5060195461039090600160b81b900460ff1681565b34801561062d57600080fd5b506103e960115481565b34801561064357600080fd5b506104c2610652366004612173565b610de1565b34801561066357600080fd5b506104c261067236600461208a565b610e9a565b34801561068357600080fd5b506104c2610692366004612147565b610eec565b3480156106a357600080fd5b506103e96106b236600461208a565b6001600160a01b031660009081526005602052604090205490565b3480156106d957600080fd5b506103e960145481565b3480156106ef57600080fd5b506104c26106fe3660046121bf565b610f3b565b34801561070f57600080fd5b506103e9600d5481565b34801561072557600080fd5b506000546001600160a01b03166103c0565b34801561074357600080fd5b506104c2610f90565b34801561075857600080fd5b506104c26107673660046121bf565b61100a565b34801561077857600080fd5b5061035a61105f565b34801561078d57600080fd5b506017546103e9565b3480156107a257600080fd5b506103e960155481565b3480156107b857600080fd5b506103906107c7366004611fd4565b61106e565b3480156107d857600080fd5b506103e960125481565b3480156107ee57600080fd5b506103906107fd366004611fd4565b6110bd565b34801561080e57600080fd5b5061039061081d3660046121f4565b101590565b34801561082e57600080fd5b506104c261083d366004612147565b6110ca565b34801561084e57600080fd5b506103e9600c5481565b34801561086457600080fd5b506104c261087336600461206f565b611119565b34801561088457600080fd5b506103e9600b5481565b34801561089a57600080fd5b506019546103c0906001600160a01b031681565b3480156108ba57600080fd5b506103e9600e5481565b3480156108d057600080fd5b506103e9600f5481565b3480156108e657600080fd5b5060195461039090600160b01b900460ff1681565b34801561090757600080fd5b506103e9600a5481565b34801561091d57600080fd5b506103e961092c366004612216565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561096357600080fd5b5061039061097236600461208a565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561099c57600080fd5b506104c26109ab3660046121bf565b61118d565b3480156109bc57600080fd5b506004546103c0906001600160a01b031681565b3480156109dc57600080fd5b506103e960135481565b3480156109f257600080fd5b506104c2610a0136600461208a565b6111e2565b348015610a1257600080fd5b506104c2610a2136600461208a565b6112cc565b606060018054610a359061224f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a619061224f565b8015610aae5780601f10610a8357610100808354040283529160200191610aae565b820191906000526020600020905b815481529060010190602001808311610a9157829003601f168201915b5050505050905090565b6000610ac53384846113b9565b5060015b92915050565b6000610adc8484846114dd565b50610b2f8433610b2a85604051806060016040528060288152602001612467602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061186d565b6113b9565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260056020526040812054601654610b7f916118a7565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610ac5918590610b2a9086611318565b6000546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610be490612289565b60405180910390fd5b601755565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b8152600401610be490612289565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610c645760405162461bcd60e51b8152600401610be490612289565b60c98210610c7157600080fd5b60005b82811015610ce0578160096000868685818110610c9357610c936122be565b9050602002016020810190610ca8919061208a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cd9816122ea565b9050610c74565b50505050565b6000546001600160a01b03163314610d105760405162461bcd60e51b8152600401610be490612289565b60c98210610d1d57600080fd5b60005b82811015610ce0578160076000868685818110610d3f57610d3f6122be565b9050602002016020810190610d54919061208a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d85816122ea565b9050610d20565b6000546001600160a01b03163314610db65760405162461bcd60e51b8152600401610be490612289565b600a839055600b829055600c819055610dd981610dd38585611318565b90611318565b601355505050565b6000546001600160a01b03163314610e0b5760405162461bcd60e51b8152600401610be490612289565b6107d18210610e1957600080fd5b6000610e258383612303565b33600090815260056020526040902054909150811115610e4457600080fd5b60005b83811015610e9357610e8033868684818110610e6557610e656122be565b9050602002016020810190610e7a919061208a565b856118e9565b5080610e8b816122ea565b915050610e47565b5050505050565b6000546001600160a01b03163314610ec45760405162461bcd60e51b8152600401610be490612289565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610f165760405162461bcd60e51b8152600401610be490612289565b600d839055600e829055600f819055610f3381610dd38585611318565b601455505050565b6000546001600160a01b03163314610f655760405162461bcd60e51b8152600401610be490612289565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fba5760405162461bcd60e51b8152600401610be490612289565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146110345760405162461bcd60e51b8152600401610be490612289565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b606060028054610a359061224f565b6000610ac53384610b2a8560405180606001604052806025815260200161248f602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061186d565b6000610b2f3384846114dd565b6000546001600160a01b031633146110f45760405162461bcd60e51b8152600401610be490612289565b60108390556011829055601281905561111181610dd38585611318565b601555505050565b60035461010090046001600160a01b0316331461113557600080fd5b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061118290831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111b75760405162461bcd60e51b8152600401610be490612289565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461120c5760405162461bcd60e51b8152600401610be490612289565b6001600160a01b0381166112715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610be4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112f65760405162461bcd60e51b8152600401610be490612289565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080611325838561231a565b905083811015610b335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610be4565b6000610b3383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119cf565b6001600160a01b03831661141b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610be4565b6001600160a01b03821661147c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610be4565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610be4565b6001600160a01b0383166115a55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610be4565b601954600160a01b900460ff16156115c9576115c28484846118e9565b9050610b33565b6001600160a01b03841660009081526007602052604090205460ff1615801561160b57506001600160a01b03831660009081526007602052604090205460ff16155b15611680576000805b600181136116705760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c915061165d868360646118e9565b50806116688161232d565b915050611614565b5061167c606484612345565b9250505b30600090815260056020526040902054601754811080159081906116ae5750601954600160a01b900460ff16155b80156116d357506001600160a01b03861660009081526008602052604090205460ff16155b80156116e85750601954600160a81b900460ff165b1561170e57601954600160b01b900460ff16156117055760175491505b61170e826119fd565b6117188686611b38565b15611789576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526005909152919091205461176f91869061186d565b6001600160a01b0387166000908152600560205260409020555b6001600160a01b03861660009081526007602052604081205460ff16806117c857506001600160a01b03861660009081526007602052604090205460ff165b156117d45750836117e2565b6117df878787611b7c565b90505b6001600160a01b0386166000908152600560205260409020546118059082611318565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118599085815260200190565b60405180910390a360019350505050610b33565b600081848411156118915760405162461bcd60e51b8152600401610be49190611f6e565b50600061189e8486612345565b95945050505050565b6000610b3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061186d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461193a91849061186d565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546119699083611318565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119bd9086815260200190565b60405180910390a35060019392505050565b600081836119f05760405162461bcd60e51b8152600401610be49190611f6e565b50600061189e8486612358565b6019805460ff60a01b1916600160a01b179055601554601054600091611a3391600291611a2d9182908790611c6d565b90611377565b90506000611a4183836118a7565b9050611a4c81611cef565b6010544790600090611a6c90611a63906002611377565b601554906118a7565b90506000611a8e6002611a2d84611a2d60105488611c6d90919063ffffffff16565b90506000611aab83611a2d60125487611c6d90919063ffffffff16565b90506000611ac382611abd87866118a7565b906118a7565b90508015611ae657600354611ae69061010090046001600160a01b031682611e82565b8115611b0257600454611b02906001600160a01b031683611e82565b600083118015611b125750600087115b15611b2157611b218784611ebd565b50506019805460ff60a01b19169055505050505050565b6000816001600160a01b0316836001600160a01b0316141580610b3357506003546001600160a01b0384811661010090920416141580610b33575060009392505050565b60008060009050611b9d6064611a2d60135486611c6d90919063ffffffff16565b6001600160a01b03861660009081526009602052604090205490915060ff168015611be157506001600160a01b03851660009081526008602052604090205460ff16155b15611be95750815b8015611c635730600090815260056020526040902054611c099082611318565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c5a9085815260200190565b60405180910390a35b61189e83826118a7565b600082600003611c7f57506000610ac9565b6000611c8b8385612303565b905082611c988583612358565b14610b335760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610be4565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2457611d246122be565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da1919061237a565b81600181518110611db457611db46122be565b6001600160a01b039283166020918202929092010152601854611dda91309116846113b9565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e139085906000908690309042906004016123db565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e76929190612417565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611eb8573d6000803e3d6000fd5b505050565b601854611ed59030906001600160a01b0316846113b9565b6018546004805460405163f305d71960e01b815230928101929092526024820185905260006044830181905260648301526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611f49573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e939190612438565b600060208083528351808285015260005b81811015611f9b57858101830151858201604001528201611f7f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611fd157600080fd5b50565b60008060408385031215611fe757600080fd5b8235611ff281611fbc565b946020939093013593505050565b60008060006060848603121561201557600080fd5b833561202081611fbc565b9250602084013561203081611fbc565b929592945050506040919091013590565b60006020828403121561205357600080fd5b5035919050565b8035801515811461206a57600080fd5b919050565b60006020828403121561208157600080fd5b610b338261205a565b60006020828403121561209c57600080fd5b8135610b3381611fbc565b60008083601f8401126120b957600080fd5b50813567ffffffffffffffff8111156120d157600080fd5b6020830191508360208260051b85010111156120ec57600080fd5b9250929050565b60008060006040848603121561210857600080fd5b833567ffffffffffffffff81111561211f57600080fd5b61212b868287016120a7565b909450925061213e90506020850161205a565b90509250925092565b60008060006060848603121561215c57600080fd5b505081359360208301359350604090920135919050565b60008060006040848603121561218857600080fd5b833567ffffffffffffffff81111561219f57600080fd5b6121ab868287016120a7565b909790965060209590950135949350505050565b600080604083850312156121d257600080fd5b82356121dd81611fbc565b91506121eb6020840161205a565b90509250929050565b6000806040838503121561220757600080fd5b50508035926020909101359150565b6000806040838503121561222957600080fd5b823561223481611fbc565b9150602083013561224481611fbc565b809150509250929050565b600181811c9082168061226357607f821691505b60208210810361228357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122fc576122fc6122d4565b5060010190565b8082028115828204841417610ac957610ac96122d4565b80820180821115610ac957610ac96122d4565b60006001600160ff1b0182016122fc576122fc6122d4565b81810381811115610ac957610ac96122d4565b60008261237557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561238c57600080fd5b8151610b3381611fbc565b600081518084526020808501945080840160005b838110156123d05781516001600160a01b0316875295820195908201906001016123ab565b509495945050505050565b85815284602082015260a0604082015260006123fa60a0830186612397565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006124306040830184612397565b949350505050565b60008060006060848603121561244d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122005d6b8d15667bb6ab959d0fe7b6a2b3db5f2324647ac32de3bde53c2169ff3b564736f6c63430008110033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106103395760003560e01c806388790a68116101ab578063c49b9a80116100f7578063dd62ed3e11610095578063ea7a6eb11161006f578063ea7a6eb1146109b0578063f0cd1dac146109d0578063f2fde38b146109e6578063f61ffad614610a0657600080fd5b8063dd62ed3e14610911578063e0cde6c314610957578063e2f2a6861461099057600080fd5b8063c8607952116100d1578063c8607952146108ae578063cab03471146108c4578063d9419b73146108da578063dc44b6a0146108fb57600080fd5b8063c49b9a8014610858578063c5d2418914610878578063c816841b1461088e57600080fd5b8063a08e671f11610164578063a9059cbb1161013e578063a9059cbb146107e2578063a911928c14610802578063c2d4640e14610822578063c469b6dd1461084257600080fd5b8063a08e671f14610796578063a457c2d7146107ac578063a83f53a7146107cc57600080fd5b806388790a68146107035780638da5cb5b14610719578063914eb66a14610737578063948071d91461074c57806395d89b411461076c578063a073d37f1461078157600080fd5b806342e0369d1161028557806361a23c69116102235780636ebb9cf5116101fd5780636ebb9cf51461067757806370a082311461069757806382eefb43146106cd578063844d591c146106e357600080fd5b806361a23c6914610621578063632e544214610637578063689b30c31461065757600080fd5b80635342acb41161025f5780635342acb41461059a57806357a5802f146105ca5780635b702a55146105e0578063614d19b81461060057600080fd5b806342e0369d146105395780634a74bb021461055957806350b20cac1461057a57600080fd5b80632b112e49116102f25780633b97084a116102cc5780633b97084a146104a25780633e07387c146104c45780633e4e1728146104e45780633ecad2711461050957600080fd5b80632b112e491461044b578063313ce56714610460578063395093511461048257600080fd5b806306fdde0314610345578063095ea7b3146103705780631694505e146103a057806318160ddd146103d857806323b872dd146103f757806327c8f8351461041757600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a26565b6040516103679190611f6e565b60405180910390f35b34801561037c57600080fd5b5061039061038b366004611fd4565b610ab8565b6040519015158152602001610367565b3480156103ac57600080fd5b506018546103c0906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b3480156103e457600080fd5b506016545b604051908152602001610367565b34801561040357600080fd5b50610390610412366004612000565b610acf565b34801561042357600080fd5b506103c07f000000000000000000000000000000000000000000000000000000000000dead81565b34801561045757600080fd5b506103e9610b3a565b34801561046c57600080fd5b5060035460405160ff9091168152602001610367565b34801561048e57600080fd5b5061039061049d366004611fd4565b610b84565b3480156104ae57600080fd5b506104c26104bd366004612041565b610bba565b005b3480156104d057600080fd5b506104c26104df36600461206f565b610bf2565b3480156104f057600080fd5b506003546103c09061010090046001600160a01b031681565b34801561051557600080fd5b5061039061052436600461208a565b60086020526000908152604090205460ff1681565b34801561054557600080fd5b506104c26105543660046120f3565b610c3a565b34801561056557600080fd5b5060195461039090600160a81b900460ff1681565b34801561058657600080fd5b506104c26105953660046120f3565b610ce6565b3480156105a657600080fd5b506103906105b536600461208a565b60076020526000908152604090205460ff1681565b3480156105d657600080fd5b506103e960105481565b3480156105ec57600080fd5b506104c26105fb366004612147565b610d8c565b34801561060c57600080fd5b5060195461039090600160b81b900460ff1681565b34801561062d57600080fd5b506103e960115481565b34801561064357600080fd5b506104c2610652366004612173565b610de1565b34801561066357600080fd5b506104c261067236600461208a565b610e9a565b34801561068357600080fd5b506104c2610692366004612147565b610eec565b3480156106a357600080fd5b506103e96106b236600461208a565b6001600160a01b031660009081526005602052604090205490565b3480156106d957600080fd5b506103e960145481565b3480156106ef57600080fd5b506104c26106fe3660046121bf565b610f3b565b34801561070f57600080fd5b506103e9600d5481565b34801561072557600080fd5b506000546001600160a01b03166103c0565b34801561074357600080fd5b506104c2610f90565b34801561075857600080fd5b506104c26107673660046121bf565b61100a565b34801561077857600080fd5b5061035a61105f565b34801561078d57600080fd5b506017546103e9565b3480156107a257600080fd5b506103e960155481565b3480156107b857600080fd5b506103906107c7366004611fd4565b61106e565b3480156107d857600080fd5b506103e960125481565b3480156107ee57600080fd5b506103906107fd366004611fd4565b6110bd565b34801561080e57600080fd5b5061039061081d3660046121f4565b101590565b34801561082e57600080fd5b506104c261083d366004612147565b6110ca565b34801561084e57600080fd5b506103e9600c5481565b34801561086457600080fd5b506104c261087336600461206f565b611119565b34801561088457600080fd5b506103e9600b5481565b34801561089a57600080fd5b506019546103c0906001600160a01b031681565b3480156108ba57600080fd5b506103e9600e5481565b3480156108d057600080fd5b506103e9600f5481565b3480156108e657600080fd5b5060195461039090600160b01b900460ff1681565b34801561090757600080fd5b506103e9600a5481565b34801561091d57600080fd5b506103e961092c366004612216565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561096357600080fd5b5061039061097236600461208a565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561099c57600080fd5b506104c26109ab3660046121bf565b61118d565b3480156109bc57600080fd5b506004546103c0906001600160a01b031681565b3480156109dc57600080fd5b506103e960135481565b3480156109f257600080fd5b506104c2610a0136600461208a565b6111e2565b348015610a1257600080fd5b506104c2610a2136600461208a565b6112cc565b606060018054610a359061224f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a619061224f565b8015610aae5780601f10610a8357610100808354040283529160200191610aae565b820191906000526020600020905b815481529060010190602001808311610a9157829003601f168201915b5050505050905090565b6000610ac53384846113b9565b5060015b92915050565b6000610adc8484846114dd565b50610b2f8433610b2a85604051806060016040528060288152602001612467602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061186d565b6113b9565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260056020526040812054601654610b7f916118a7565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610ac5918590610b2a9086611318565b6000546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610be490612289565b60405180910390fd5b601755565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b8152600401610be490612289565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610c645760405162461bcd60e51b8152600401610be490612289565b60c98210610c7157600080fd5b60005b82811015610ce0578160096000868685818110610c9357610c936122be565b9050602002016020810190610ca8919061208a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cd9816122ea565b9050610c74565b50505050565b6000546001600160a01b03163314610d105760405162461bcd60e51b8152600401610be490612289565b60c98210610d1d57600080fd5b60005b82811015610ce0578160076000868685818110610d3f57610d3f6122be565b9050602002016020810190610d54919061208a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d85816122ea565b9050610d20565b6000546001600160a01b03163314610db65760405162461bcd60e51b8152600401610be490612289565b600a839055600b829055600c819055610dd981610dd38585611318565b90611318565b601355505050565b6000546001600160a01b03163314610e0b5760405162461bcd60e51b8152600401610be490612289565b6107d18210610e1957600080fd5b6000610e258383612303565b33600090815260056020526040902054909150811115610e4457600080fd5b60005b83811015610e9357610e8033868684818110610e6557610e656122be565b9050602002016020810190610e7a919061208a565b856118e9565b5080610e8b816122ea565b915050610e47565b5050505050565b6000546001600160a01b03163314610ec45760405162461bcd60e51b8152600401610be490612289565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610f165760405162461bcd60e51b8152600401610be490612289565b600d839055600e829055600f819055610f3381610dd38585611318565b601455505050565b6000546001600160a01b03163314610f655760405162461bcd60e51b8152600401610be490612289565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fba5760405162461bcd60e51b8152600401610be490612289565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146110345760405162461bcd60e51b8152600401610be490612289565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b606060028054610a359061224f565b6000610ac53384610b2a8560405180606001604052806025815260200161248f602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061186d565b6000610b2f3384846114dd565b6000546001600160a01b031633146110f45760405162461bcd60e51b8152600401610be490612289565b60108390556011829055601281905561111181610dd38585611318565b601555505050565b60035461010090046001600160a01b0316331461113557600080fd5b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061118290831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111b75760405162461bcd60e51b8152600401610be490612289565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461120c5760405162461bcd60e51b8152600401610be490612289565b6001600160a01b0381166112715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610be4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112f65760405162461bcd60e51b8152600401610be490612289565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080611325838561231a565b905083811015610b335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610be4565b6000610b3383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119cf565b6001600160a01b03831661141b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610be4565b6001600160a01b03821661147c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610be4565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610be4565b6001600160a01b0383166115a55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610be4565b601954600160a01b900460ff16156115c9576115c28484846118e9565b9050610b33565b6001600160a01b03841660009081526007602052604090205460ff1615801561160b57506001600160a01b03831660009081526007602052604090205460ff16155b15611680576000805b600181136116705760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c915061165d868360646118e9565b50806116688161232d565b915050611614565b5061167c606484612345565b9250505b30600090815260056020526040902054601754811080159081906116ae5750601954600160a01b900460ff16155b80156116d357506001600160a01b03861660009081526008602052604090205460ff16155b80156116e85750601954600160a81b900460ff165b1561170e57601954600160b01b900460ff16156117055760175491505b61170e826119fd565b6117188686611b38565b15611789576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526005909152919091205461176f91869061186d565b6001600160a01b0387166000908152600560205260409020555b6001600160a01b03861660009081526007602052604081205460ff16806117c857506001600160a01b03861660009081526007602052604090205460ff165b156117d45750836117e2565b6117df878787611b7c565b90505b6001600160a01b0386166000908152600560205260409020546118059082611318565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118599085815260200190565b60405180910390a360019350505050610b33565b600081848411156118915760405162461bcd60e51b8152600401610be49190611f6e565b50600061189e8486612345565b95945050505050565b6000610b3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061186d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461193a91849061186d565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546119699083611318565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119bd9086815260200190565b60405180910390a35060019392505050565b600081836119f05760405162461bcd60e51b8152600401610be49190611f6e565b50600061189e8486612358565b6019805460ff60a01b1916600160a01b179055601554601054600091611a3391600291611a2d9182908790611c6d565b90611377565b90506000611a4183836118a7565b9050611a4c81611cef565b6010544790600090611a6c90611a63906002611377565b601554906118a7565b90506000611a8e6002611a2d84611a2d60105488611c6d90919063ffffffff16565b90506000611aab83611a2d60125487611c6d90919063ffffffff16565b90506000611ac382611abd87866118a7565b906118a7565b90508015611ae657600354611ae69061010090046001600160a01b031682611e82565b8115611b0257600454611b02906001600160a01b031683611e82565b600083118015611b125750600087115b15611b2157611b218784611ebd565b50506019805460ff60a01b19169055505050505050565b6000816001600160a01b0316836001600160a01b0316141580610b3357506003546001600160a01b0384811661010090920416141580610b33575060009392505050565b60008060009050611b9d6064611a2d60135486611c6d90919063ffffffff16565b6001600160a01b03861660009081526009602052604090205490915060ff168015611be157506001600160a01b03851660009081526008602052604090205460ff16155b15611be95750815b8015611c635730600090815260056020526040902054611c099082611318565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c5a9085815260200190565b60405180910390a35b61189e83826118a7565b600082600003611c7f57506000610ac9565b6000611c8b8385612303565b905082611c988583612358565b14610b335760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610be4565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2457611d246122be565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da1919061237a565b81600181518110611db457611db46122be565b6001600160a01b039283166020918202929092010152601854611dda91309116846113b9565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e139085906000908690309042906004016123db565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e76929190612417565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611eb8573d6000803e3d6000fd5b505050565b601854611ed59030906001600160a01b0316846113b9565b6018546004805460405163f305d71960e01b815230928101929092526024820185905260006044830181905260648301526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611f49573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e939190612438565b600060208083528351808285015260005b81811015611f9b57858101830151858201604001528201611f7f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611fd157600080fd5b50565b60008060408385031215611fe757600080fd5b8235611ff281611fbc565b946020939093013593505050565b60008060006060848603121561201557600080fd5b833561202081611fbc565b9250602084013561203081611fbc565b929592945050506040919091013590565b60006020828403121561205357600080fd5b5035919050565b8035801515811461206a57600080fd5b919050565b60006020828403121561208157600080fd5b610b338261205a565b60006020828403121561209c57600080fd5b8135610b3381611fbc565b60008083601f8401126120b957600080fd5b50813567ffffffffffffffff8111156120d157600080fd5b6020830191508360208260051b85010111156120ec57600080fd5b9250929050565b60008060006040848603121561210857600080fd5b833567ffffffffffffffff81111561211f57600080fd5b61212b868287016120a7565b909450925061213e90506020850161205a565b90509250925092565b60008060006060848603121561215c57600080fd5b505081359360208301359350604090920135919050565b60008060006040848603121561218857600080fd5b833567ffffffffffffffff81111561219f57600080fd5b6121ab868287016120a7565b909790965060209590950135949350505050565b600080604083850312156121d257600080fd5b82356121dd81611fbc565b91506121eb6020840161205a565b90509250929050565b6000806040838503121561220757600080fd5b50508035926020909101359150565b6000806040838503121561222957600080fd5b823561223481611fbc565b9150602083013561224481611fbc565b809150509250929050565b600181811c9082168061226357607f821691505b60208210810361228357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122fc576122fc6122d4565b5060010190565b8082028115828204841417610ac957610ac96122d4565b80820180821115610ac957610ac96122d4565b60006001600160ff1b0182016122fc576122fc6122d4565b81810381811115610ac957610ac96122d4565b60008261237557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561238c57600080fd5b8151610b3381611fbc565b600081518084526020808501945080840160005b838110156123d05781516001600160a01b0316875295820195908201906001016123ab565b509495945050505050565b85815284602082015260a0604082015260006123fa60a0830186612397565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006124306040830184612397565b949350505050565b60008060006060848603121561244d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122005d6b8d15667bb6ab959d0fe7b6a2b3db5f2324647ac32de3bde53c2169ff3b564736f6c63430008110033

Deployed Bytecode Sourcemap

19365:404:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8142:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9436:161;;;;;;;;;;-1:-1:-1;9436:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9436:161:0;1023:187:1;5454:41:0;;;;;;;;;;-1:-1:-1;5454:41:0;;;;-1:-1:-1;;;;;5454:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5454:41:0;1215:229:1;8419:100:0;;;;;;;;;;-1:-1:-1;8499:12:0;;8419:100;;;1595:25:1;;;1583:2;1568:18;8419:100:0;1449:177:1;12687:313:0;;;;;;;;;;-1:-1:-1;12687:313:0;;;;;:::i;:::-;;:::i;4532:81::-;;;;;;;;;;;;;;;12148:128;;;;;;;;;;;;;:::i;8328:83::-;;;;;;;;;;-1:-1:-1;8394:9:0;;8328:83;;8394:9;;;;2442:36:1;;2430:2;2415:18;8328:83:0;2300:184:1;8805:218:0;;;;;;;;;;-1:-1:-1;8805:218:0;;;;;:::i;:::-;;:::i;11407:124::-;;;;;;;;;;-1:-1:-1;11407:124:0;;;;;:::i;:::-;;:::i;:::-;;12011:125;;;;;;;;;;-1:-1:-1;12011:125:0;;;;;:::i;:::-;;:::i;4447:36::-;;;;;;;;;;-1:-1:-1;4447:36:0;;;;;;;-1:-1:-1;;;;;4447:36:0;;;4808:45;;;;;;;;;;-1:-1:-1;4808:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13494:242;;;;;;;;;;-1:-1:-1;13494:242:0;;;;;:::i;:::-;;:::i;5569:40::-;;;;;;;;;;-1:-1:-1;5569:40:0;;;;-1:-1:-1;;;5569:40:0;;;;;;10230:260;;;;;;;;;;-1:-1:-1;10230:260:0;;;;;:::i;:::-;;:::i;4749:50::-;;;;;;;;;;-1:-1:-1;4749:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5135:30;;;;;;;;;;;;;;;;10498:255;;;;;;;;;;-1:-1:-1;10498:255:0;;;;;:::i;:::-;;:::i;5668:29::-;;;;;;;;;;-1:-1:-1;5668:29:0;;;;-1:-1:-1;;;5668:29:0;;;;;;5172:30;;;;;;;;;;;;;;;;13118:368;;;;;;;;;;-1:-1:-1;13118:368:0;;;;;:::i;:::-;;:::i;11539:121::-;;;;;;;;;;-1:-1:-1;11539:121:0;;;;;:::i;:::-;;:::i;10761:262::-;;;;;;;;;;-1:-1:-1;10761:262:0;;;;;:::i;:::-;;:::i;8527:119::-;;;;;;;;;;-1:-1:-1;8527:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8620:18:0;8593:7;8620:18;;;:9;:18;;;;;;;8527:119;5282:33;;;;;;;;;;;;;;;;9950:129;;;;;;;;;;-1:-1:-1;9950:129:0;;;;;:::i;:::-;;:::i;5021:32::-;;;;;;;;;;;;;;;;2799:79;;;;;;;;;;-1:-1:-1;2837:7:0;2864:6;-1:-1:-1;;;;;2864:6:0;2799:79;;3024:155;;;;;;;;;;;;;:::i;13744:111::-;;;;;;;;;;-1:-1:-1;13744:111:0;;;;;:::i;:::-;;:::i;8233:87::-;;;;;;;;;;;;;:::i;9308:120::-;;;;;;;;;;-1:-1:-1;9397:23:0;;9308:120;;5322:39;;;;;;;;;;;;;;;;9031:269;;;;;;;;;;-1:-1:-1;9031:269:0;;;;;:::i;:::-;;:::i;5209:25::-;;;;;;;;;;;;;;;;12512:167;;;;;;;;;;-1:-1:-1;12512:167:0;;;;;:::i;:::-;;:::i;15941:86::-;;;;;;;;;;-1:-1:-1;15941:86:0;;;;;:::i;:::-;-1:-1:-1;16020:4:0;;15941:86;11035:358;;;;;;;;;;-1:-1:-1;11035:358:0;;;;;:::i;:::-;;:::i;4982:26::-;;;;;;;;;;;;;;;;11795:208;;;;;;;;;;-1:-1:-1;11795:208:0;;;;;:::i;:::-;;:::i;4944:31::-;;;;;;;;;;;;;;;;5502:26;;;;;;;;;;-1:-1:-1;5502:26:0;;;;-1:-1:-1;;;;;5502:26:0;;;5060:32;;;;;;;;;;;;;;;;5099:27;;;;;;;;;;;;;;;;5616:45;;;;;;;;;;-1:-1:-1;5616:45:0;;;;-1:-1:-1;;;5616:45:0;;;;;;4906:31;;;;;;;;;;;;;;;;8654:143;;;;;;;;;;-1:-1:-1;8654:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8762:18:0;;;8735:7;8762:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8654:143;13008:102;;;;;;;;;;-1:-1:-1;13008:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;13088:14:0;13064:4;13088:14;;;:5;:14;;;;;;;;;13008:102;10087:135;;;;;;;;;;-1:-1:-1;10087:135:0;;;;;:::i;:::-;;:::i;4490:35::-;;;;;;;;;;-1:-1:-1;4490:35:0;;;;-1:-1:-1;;;;;4490:35:0;;;5243:32;;;;;;;;;;;;;;;;3187:244;;;;;;;;;;-1:-1:-1;3187:244:0;;;;;:::i;:::-;;:::i;11668:119::-;;;;;;;;;;-1:-1:-1;11668:119:0;;;;;:::i;:::-;;:::i;8142:83::-;8179:13;8212:5;8205:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8142:83;:::o;9436:161::-;9511:4;9528:39;189:10;9551:7;9560:6;9528:8;:39::i;:::-;-1:-1:-1;9585:4:0;9436:161;;;;;:::o;12687:313::-;12785:4;12802:36;12812:6;12820:9;12831:6;12802:9;:36::i;:::-;-1:-1:-1;12849:121:0;12858:6;189:10;12880:89;12918:6;12880:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12880:19:0;;;;;;:11;:19;;;;;;;;189:10;12880:33;;;;;;;;;;:37;:89::i;:::-;12849:8;:121::i;:::-;-1:-1:-1;12988:4:0;12687:313;;;;;;:::o;12148:128::-;12255:11;-1:-1:-1;;;;;8620:18:0;12201:7;8620:18;;;:9;:18;;;;;;12228:12;;:40;;:16;:40::i;:::-;12221:47;;12148:128;:::o;8805:218::-;189:10;8893:4;8942:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8942:34:0;;;;;;;;;;8893:4;;8910:83;;8933:7;;8942:50;;8981:10;8942:38;:50::i;11407:124::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;;;;;;;;;11489:23:::1;:34:::0;11407:124::o;12011:125::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;12092:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;12092:36:0::1;-1:-1:-1::0;;;;12092:36:0;;::::1;::::0;;;::::1;::::0;;12011:125::o;13494:242::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;13616:3:::1;13597:22:::0;::::1;13589:31;;;::::0;::::1;;13636:9;13631:98;13647:20:::0;;::::1;13631:98;;;13711:6;13689:5;:19;13695:9;;13705:1;13695:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13689:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13689:19:0;:28;;-1:-1:-1;;13689:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13669:3:::1;::::0;::::1;:::i;:::-;;;13631:98;;;;13494:242:::0;;;:::o;10230:260::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;10358:3:::1;10339:22:::0;::::1;10331:31;;;::::0;::::1;;10378:9;10373:110;10389:20:::0;;::::1;10373:110;;;10465:6;10431:17;:31;10449:9;;10459:1;10449:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10431:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10431:31:0;:40;;-1:-1:-1;;10431:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10411:3:::1;::::0;::::1;:::i;:::-;;;10373:110;;10498:255:::0;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;10580:16:::1;:20:::0;;;10611:16:::1;:20:::0;;;10642:11:::1;:15:::0;;;10690:55:::1;10656:1:::0;10690:38:::1;10599:1:::0;10630;10690:20:::1;:38::i;:::-;:42:::0;::::1;:55::i;:::-;10670:17;:75:::0;-1:-1:-1;;;10498:255:0:o;13118:368::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;13250:4:::1;13231:23:::0;::::1;13223:32;;;::::0;::::1;;13266:12;13281:25;13290:9:::0;13281:6;:25:::1;:::i;:::-;13335:10;8593:7:::0;8620:18;;;:9;:18;;;;;;13266:40;;-1:-1:-1;13266:40:0;-1:-1:-1;13325:29:0::1;13317:38;;;::::0;::::1;;13370:6;13366:113;13380:20:::0;;::::1;13366:113;;;13421:46;13436:10;13447:9;;13457:1;13447:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13460:6;13421:14;:46::i;:::-;-1:-1:-1::0;13402:3:0;::::1;::::0;::::1;:::i;:::-;;;;13366:113;;;;13212:274;13118:368:::0;;;:::o;11539:121::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;11617:13:::1;:35:::0;;-1:-1:-1;;;;;11617:35:0;;::::1;;;-1:-1:-1::0;;;;;;11617:35:0;;::::1;::::0;;;::::1;::::0;;11539:121::o;10761:262::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;10843:17:::1;:21:::0;;;10875:17:::1;:21:::0;;;10907:12:::1;:16:::0;;;10957:58:::1;10922:1:::0;10957:40:::1;10863:1:::0;10895;10957:21:::1;:40::i;:58::-;10936:18;:79:::0;-1:-1:-1;;;10761:262:0:o;9950:129::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10039:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;10039:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9950:129::o;3024:155::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;3112:6:::1;::::0;;3091:45:::1;::::0;3128:6:::1;::::0;-1:-1:-1;;;;;3112:6:0;;::::1;::::0;3091:45:::1;::::0;::::1;3147:6;:24:::0;;-1:-1:-1;;;;;;3147:24:0::1;3164:6;3147:24;::::0;;3024:155::o;13744:111::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13822:16:0;;;::::1;;::::0;;;:5:::1;:16;::::0;;;;:25;;-1:-1:-1;;13822:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13744:111::o;8233:87::-;8272:13;8305:7;8298:14;;;;;:::i;9031:269::-;9124:4;9141:129;189:10;9164:7;9173:96;9212:15;9173:96;;;;;;;;;;;;;;;;;189:10;9173:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9173:34:0;;;;;;;;;;;;:38;:96::i;12512:167::-;12590:4;12607:42;189:10;12631:9;12642:6;12607:9;:42::i;11035:358::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;11176:15:::1;:35:::0;;;11222:15:::1;:35:::0;;;11268:10:::1;:25:::0;;;11333:52:::1;11281:12:::0;11333:36:::1;11194:17:::0;11240;11333:19:::1;:36::i;:52::-;11306:24;:79:::0;-1:-1:-1;;;11035:358:0:o;11795:208::-;11870:13;;;;;-1:-1:-1;;;;;11870:13:0;11887:10;11870:27;11862:36;;;;;;11909:21;:32;;;;;-1:-1:-1;;;11909:32:0;-1:-1:-1;;;;11909:32:0;;;;;;11957:38;;;;;;11933:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;11957:38:0;;;;;;;;11795:208;:::o;10087:135::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10177:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;10177:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10087:135::o;3187:244::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3276:22:0;::::1;3268:73;;;::::0;-1:-1:-1;;;3268:73:0;;7704:2:1;3268:73:0::1;::::0;::::1;7686:21:1::0;7743:2;7723:18;;;7716:30;7782:34;7762:18;;;7755:62;-1:-1:-1;;;7833:18:1;;;7826:36;7879:19;;3268:73:0::1;7502:402:1::0;3268:73:0::1;3378:6;::::0;;3357:38:::1;::::0;-1:-1:-1;;;;;3357:38:0;;::::1;::::0;3378:6;::::1;::::0;3357:38:::1;::::0;::::1;3406:6;:17:::0;;-1:-1:-1;;;;;;3406:17:0::1;-1:-1:-1::0;;;;;3406:17:0;;;::::1;::::0;;;::::1;::::0;;3187:244::o;11668:119::-;2933:6;;-1:-1:-1;;;;;2933:6:0;189:10;2933:22;2925:67;;;;-1:-1:-1;;;2925:67:0;;;;;;;:::i;:::-;11745:12:::1;:34:::0;;-1:-1:-1;;;;;;11745:34:0::1;-1:-1:-1::0;;;;;11745:34:0;;;::::1;::::0;;;::::1;::::0;;11668:119::o;1042:181::-;1100:7;;1132:5;1136:1;1132;:5;:::i;:::-;1120:17;;1161:1;1156;:6;;1148:46;;;;-1:-1:-1;;;1148:46:0;;8241:2:1;1148:46:0;;;8223:21:1;8280:2;8260:18;;;8253:30;8319:29;8299:18;;;8292:57;8366:18;;1148:46:0;8039:351:1;1833:132:0;1891:7;1918:39;1922:1;1925;1918:39;;;;;;;;;;;;;;;;;:3;:39::i;9605:337::-;-1:-1:-1;;;;;9698:19:0;;9690:68;;;;-1:-1:-1;;;9690:68:0;;8597:2:1;9690:68:0;;;8579:21:1;8636:2;8616:18;;;8609:30;8675:34;8655:18;;;8648:62;-1:-1:-1;;;8726:18:1;;;8719:34;8770:19;;9690:68:0;8395:400:1;9690:68:0;-1:-1:-1;;;;;9777:21:0;;9769:68;;;;-1:-1:-1;;;9769:68:0;;9002:2:1;9769:68:0;;;8984:21:1;9041:2;9021:18;;;9014:30;9080:34;9060:18;;;9053:62;-1:-1:-1;;;9131:18:1;;;9124:32;9173:19;;9769:68:0;8800:398:1;9769:68:0;-1:-1:-1;;;;;9850:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9902:32;;1595:25:1;;;9902:32:0;;1568:18:1;9902:32:0;;;;;;;9605:337;;;:::o;14076:1857::-;14163:4;-1:-1:-1;;;;;14190:20:0;;14182:70;;;;-1:-1:-1;;;14182:70:0;;9405:2:1;14182:70:0;;;9387:21:1;9444:2;9424:18;;;9417:30;9483:34;9463:18;;;9456:62;-1:-1:-1;;;9534:18:1;;;9527:35;9579:19;;14182:70:0;9203:401:1;14182:70:0;-1:-1:-1;;;;;14271:23:0;;14263:71;;;;-1:-1:-1;;;14263:71:0;;9811:2:1;14263:71:0;;;9793:21:1;9850:2;9830:18;;;9823:30;9889:34;9869:18;;;9862:62;-1:-1:-1;;;9940:18:1;;;9933:33;9983:19;;14263:71:0;9609:399:1;14263:71:0;14350:16;;-1:-1:-1;;;14350:16:0;;;;14347:1579;;;14400:41;14415:6;14423:9;14434:6;14400:14;:41::i;:::-;14393:48;;;;14347:1579;-1:-1:-1;;;;;14499:25:0;;;;;;:17;:25;;;;;;;;14498:26;:59;;;;-1:-1:-1;;;;;;14529:28:0;;;;;;:17;:28;;;;;;;;14528:29;14498:59;14495:359;;;14577:10;;14606:201;14622:1;14618;:5;14606:201;;14687:44;;;;;;10196:19:1;;;10231:12;;;10224:28;;;14715:15:0;10268:12:1;;;10261:28;10305:12;;14687:44:0;;;;;;;;;;;;14677:55;;;;;;14672:61;;14651:84;;14758:29;14773:6;14780:2;14783:3;14758:14;:29::i;:::-;-1:-1:-1;14624:3:0;;;;:::i;:::-;;;;14606:201;;;-1:-1:-1;14825:13:0;14835:3;14825:13;;:::i;:::-;;;14558:296;14495:359;14923:4;14874:28;8620:18;;;:9;:18;;;;;;14999:23;;14975:47;;;;;;;15055:44;;-1:-1:-1;15083:16:0;;-1:-1:-1;;;15083:16:0;;;;15082:17;15055:44;:69;;;;-1:-1:-1;;;;;;15104:20:0;;;;;;:12;:20;;;;;;;;15103:21;15055:69;:94;;;;-1:-1:-1;15128:21:0;;-1:-1:-1;;;15128:21:0;;;;15055:94;15051:305;;;15187:25;;-1:-1:-1;;;15187:25:0;;;;15184:97;;;15258:23;;15235:46;;15184:97;15300:36;15315:20;15300:14;:36::i;:::-;15359:31;15373:6;15380:9;15359:13;:31::i;:::-;15356:124;;;15427:53;;;;;;;;;;;-1:-1:-1;;;15427:53:0;;;;;;;;-1:-1:-1;;;;;15427:17:0;;-1:-1:-1;15427:17:0;;;:9;:17;;;;;;;;:53;;15449:6;;15427:21;:53::i;:::-;-1:-1:-1;;;;;15407:17:0;;;;;;:9;:17;;;;;:73;15356:124;-1:-1:-1;;;;;15533:25:0;;15495:19;15533:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15562:28:0;;;;;;:17;:28;;;;;;;;15533:57;15529:207;;;-1:-1:-1;15625:6:0;15529:207;;;15686:34;15694:6;15702:9;15713:6;15686:7;:34::i;:::-;15672:48;;15529:207;-1:-1:-1;;;;;15775:20:0;;;;;;:9;:20;;;;;;:37;;15800:11;15775:24;:37::i;:::-;-1:-1:-1;;;;;15752:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15834:40;;;;;;;;;;15862:11;1595:25:1;;1583:2;1568:18;;1449:177;15834:40:0;;;;;;;;15896:4;15889:11;;;;;;;1375:192;1461:7;1497:12;1489:6;;;;1481:29;;;;-1:-1:-1;;;1481:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1521:9:0;1533:5;1537:1;1533;:5;:::i;:::-;1521:17;1375:192;-1:-1:-1;;;;;1375:192:0:o;1231:136::-;1289:7;1316:43;1320:1;1323;1316:43;;;;;;;;;;;;;;;;;:3;:43::i;16035:330::-;16165:53;;;;;;;;;;;-1:-1:-1;;;16165:53:0;;;;;;;;-1:-1:-1;;;;;16165:17:0;;16128:4;16165:17;;;:9;:17;;;;;;;:53;;16187:6;;16165:21;:53::i;:::-;-1:-1:-1;;;;;16145:17:0;;;;;;;:9;:17;;;;;;:73;;;;16252:20;;;;;;;:32;;16277:6;16252:24;:32::i;:::-;-1:-1:-1;;;;;16229:20:0;;;;;;;:9;:20;;;;;;;:55;;;;16300:35;;;;;;;;;;16328:6;1595:25:1;;1583:2;1568:18;;1449:177;16300:35:0;;;;;;;;-1:-1:-1;16353:4:0;16035:330;;;;;:::o;1973:189::-;2059:7;2094:12;2087:5;2079:28;;;;-1:-1:-1;;;2079:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2118:9:0;2130:5;2134:1;2130;:5;:::i;16373:1034::-;6120:16;:23;;-1:-1:-1;;;;6120:23:0;-1:-1:-1;;;6120:23:0;;;16510:24:::1;::::0;16489:15:::1;::::0;6120:23;;16477:65:::1;::::0;16540:1:::1;::::0;16477:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;16455:87:::0;-1:-1:-1;16553:21:0::1;16577:24;:7:::0;16455:87;16577:11:::1;:24::i;:::-;16553:48;;16614:31;16631:13;16614:16;:31::i;:::-;16766:15;::::0;16681:21:::1;::::0;16656:22:::1;::::0;16737:52:::1;::::0;16766:22:::1;::::0;16786:1:::1;16766:19;:22::i;:::-;16737:24;::::0;;:28:::1;:52::i;:::-;16715:74;;16810:26;16839:59;16896:1;16839:52;16879:11;16839:35;16858:15;;16839:14;:18;;:35;;;;:::i;:59::-;16810:88;;16909:21;16933:47;16968:11;16933:30;16952:10;;16933:14;:18;;:30;;;;:::i;:47::-;16909:71:::0;-1:-1:-1;16991:26:0::1;17020:57;16909:71:::0;17020:38:::1;:14:::0;17039:18;17020::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;16991:86:::0;-1:-1:-1;17093:22:0;;17090:95:::1;;17151:13;::::0;17130:55:::1;::::0;17151:13:::1;::::0;::::1;-1:-1:-1::0;;;;;17151:13:0::1;17166:18:::0;17130:20:::1;:55::i;:::-;17201:17:::0;;17198:84:::1;;17254:12;::::0;17233:49:::1;::::0;-1:-1:-1;;;;;17254:12:0::1;17268:13:::0;17233:20:::1;:49::i;:::-;17319:1;17298:18;:22;:41;;;;;17338:1;17324:11;:15;17298:41;17295:104;;;17354:45;17367:11;17380:18;17354:12;:45::i;:::-;-1:-1:-1::0;;6166:16:0;:24;;-1:-1:-1;;;;6166:24:0;;;-1:-1:-1;;;;;;16373:1034:0:o;13865:201::-;13950:4;13988:9;-1:-1:-1;;;;;13974:23:0;:10;-1:-1:-1;;;;;13974:23:0;;;13973:85;;;-1:-1:-1;14035:13:0;;-1:-1:-1;;;;;14021:27:0;;;14035:13;;;;;14021:27;;;:36;;-1:-1:-1;14052:5:0;;13865:201;-1:-1:-1;;;13865:201:0:o;18619:739::-;18705:7;18735:17;18755:1;18735:21;;18860:38;18894:3;18860:29;18871:17;;18860:6;:10;;:29;;;;:::i;:38::-;-1:-1:-1;;;;;19058:13:0;;;;;;:5;:13;;;;;;18848:50;;-1:-1:-1;19058:13:0;;:38;;;;-1:-1:-1;;;;;;19076:20:0;;;;;;:12;:20;;;;;;;;19075:21;19058:38;19055:61;;;-1:-1:-1;19110:6:0;19055:61;19140:13;;19137:173;;19215:4;19197:24;;;;:9;:24;;;;;;:39;;19226:9;19197:28;:39::i;:::-;19188:4;19170:24;;;;:9;:24;;;;;;;:66;;;;19256:42;;-1:-1:-1;;;;;19256:42:0;;;;;;;19288:9;1595:25:1;;1583:2;1568:18;;1449:177;19256:42:0;;;;;;;;19137:173;19329:21;:6;19340:9;19329:10;:21::i;1575:250::-;1633:7;1657:1;1662;1657:6;1653:47;;-1:-1:-1;1687:1:0;1680:8;;1653:47;1712:9;1724:5;1728:1;1724;:5;:::i;:::-;1712:17;-1:-1:-1;1757:1:0;1748:5;1752:1;1712:17;1748:5;:::i;:::-;:10;1740:56;;;;-1:-1:-1;;;1740:56:0;;11037:2:1;1740:56:0;;;11019:21:1;11076:2;11056:18;;;11049:30;11115:34;11095:18;;;11088:62;-1:-1:-1;;;11166:18:1;;;11159:31;11207:19;;1740:56:0;10835:397:1;17419:666:0;17569:16;;;17583:1;17569:16;;;;;;;;17545:21;;17569:16;;;;;;;;;;-1:-1:-1;17569:16:0;17545:40;;17614:4;17596;17601:1;17596:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17596:23:0;;;:7;;;;;;;;;;:23;;;;17640:15;;:22;;;-1:-1:-1;;;17640:22:0;;;;:15;;;;;:20;;:22;;;;;17596:7;;17640:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17630:4;17635:1;17630:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17630:32:0;;;:7;;;;;;;;;:32;17707:15;;17675:62;;17692:4;;17707:15;17725:11;17675:8;:62::i;:::-;17776:15;;:240;;-1:-1:-1;;;17776:240:0;;-1:-1:-1;;;;;17776:15:0;;;;:66;;:240;;17857:11;;17776:15;;17927:4;;17954;;17990:15;;17776:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18042:35;18059:11;18072:4;18042:35;;;;;;;:::i;:::-;;;;;;;;17474:611;17419:666;:::o;12284:126::-;12376:26;;-1:-1:-1;;;;;12376:18:0;;;:26;;;;;12395:6;;12376:26;;;;12395:6;12376:18;:26;;;;;;;;;;;;;;;;;;;;;12284:126;;:::o;18093:518::-;18273:15;;18241:62;;18258:4;;-1:-1:-1;;;;;18273:15:0;18291:11;18241:8;:62::i;:::-;18346:15;;18550:12;;;18346:257;;-1:-1:-1;;;18346:257:0;;18418:4;18346:257;;;13364:34:1;;;;13414:18;;;13407:34;;;18346:15:0;13457:18:1;;;13450:34;;;13500:18;;;13493:34;-1:-1:-1;;;;;18550:12:0;;;13543:19:1;;;13536:44;18577:15:0;13596:19:1;;;13589:35;18346:15:0;;;;:31;;18385:9;;13298:19:1;;18346:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:180::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;-1:-1:-1;2640:23:1;;2489:180;-1:-1:-1;2489:180:1:o;2674:160::-;2739:20;;2795:13;;2788:21;2778:32;;2768:60;;2824:1;2821;2814:12;2768:60;2674:160;;;:::o;2839:180::-;2895:6;2948:2;2936:9;2927:7;2923:23;2919:32;2916:52;;;2964:1;2961;2954:12;2916:52;2987:26;3003:9;2987:26;:::i;3248:247::-;3307:6;3360:2;3348:9;3339:7;3335:23;3331:32;3328:52;;;3376:1;3373;3366:12;3328:52;3415:9;3402:23;3434:31;3459:5;3434:31;:::i;3500:367::-;3563:8;3573:6;3627:3;3620:4;3612:6;3608:17;3604:27;3594:55;;3645:1;3642;3635:12;3594:55;-1:-1:-1;3668:20:1;;3711:18;3700:30;;3697:50;;;3743:1;3740;3733:12;3697:50;3780:4;3772:6;3768:17;3756:29;;3840:3;3833:4;3823:6;3820:1;3816:14;3808:6;3804:27;3800:38;3797:47;3794:67;;;3857:1;3854;3847:12;3794:67;3500:367;;;;;:::o;3872:505::-;3964:6;3972;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4089:9;4076:23;4122:18;4114:6;4111:30;4108:50;;;4154:1;4151;4144:12;4108:50;4193:70;4255:7;4246:6;4235:9;4231:22;4193:70;:::i;:::-;4282:8;;-1:-1:-1;4167:96:1;-1:-1:-1;4336:35:1;;-1:-1:-1;4367:2:1;4352:18;;4336:35;:::i;:::-;4326:45;;3872:505;;;;;:::o;4382:316::-;4459:6;4467;4475;4528:2;4516:9;4507:7;4503:23;4499:32;4496:52;;;4544:1;4541;4534:12;4496:52;-1:-1:-1;;4567:23:1;;;4637:2;4622:18;;4609:32;;-1:-1:-1;4688:2:1;4673:18;;;4660:32;;4382:316;-1:-1:-1;4382:316:1:o;4703:505::-;4798:6;4806;4814;4867:2;4855:9;4846:7;4842:23;4838:32;4835:52;;;4883:1;4880;4873:12;4835:52;4923:9;4910:23;4956:18;4948:6;4945:30;4942:50;;;4988:1;4985;4978:12;4942:50;5027:70;5089:7;5080:6;5069:9;5065:22;5027:70;:::i;:::-;5116:8;;5001:96;;-1:-1:-1;5198:2:1;5183:18;;;;5170:32;;4703:505;-1:-1:-1;;;;4703:505:1:o;5213:315::-;5278:6;5286;5339:2;5327:9;5318:7;5314:23;5310:32;5307:52;;;5355:1;5352;5345:12;5307:52;5394:9;5381:23;5413:31;5438:5;5413:31;:::i;:::-;5463:5;-1:-1:-1;5487:35:1;5518:2;5503:18;;5487:35;:::i;:::-;5477:45;;5213:315;;;;;:::o;5533:248::-;5601:6;5609;5662:2;5650:9;5641:7;5637:23;5633:32;5630:52;;;5678:1;5675;5668:12;5630:52;-1:-1:-1;;5701:23:1;;;5771:2;5756:18;;;5743:32;;-1:-1:-1;5533:248:1:o;5786:388::-;5854:6;5862;5915:2;5903:9;5894:7;5890:23;5886:32;5883:52;;;5931:1;5928;5921:12;5883:52;5970:9;5957:23;5989:31;6014:5;5989:31;:::i;:::-;6039:5;-1:-1:-1;6096:2:1;6081:18;;6068:32;6109:33;6068:32;6109:33;:::i;:::-;6161:7;6151:17;;;5786:388;;;;;:::o;6179:380::-;6258:1;6254:12;;;;6301;;;6322:61;;6376:4;6368:6;6364:17;6354:27;;6322:61;6429:2;6421:6;6418:14;6398:18;6395:38;6392:161;;6475:10;6470:3;6466:20;6463:1;6456:31;6510:4;6507:1;6500:15;6538:4;6535:1;6528:15;6392:161;;6179:380;;;:::o;6564:356::-;6766:2;6748:21;;;6785:18;;;6778:30;6844:34;6839:2;6824:18;;6817:62;6911:2;6896:18;;6564:356::o;6925:127::-;6986:10;6981:3;6977:20;6974:1;6967:31;7017:4;7014:1;7007:15;7041:4;7038:1;7031:15;7057:127;7118:10;7113:3;7109:20;7106:1;7099:31;7149:4;7146:1;7139:15;7173:4;7170:1;7163:15;7189:135;7228:3;7249:17;;;7246:43;;7269:18;;:::i;:::-;-1:-1:-1;7316:1:1;7305:13;;7189:135::o;7329:168::-;7402:9;;;7433;;7450:15;;;7444:22;;7430:37;7420:71;;7471:18;;:::i;7909:125::-;7974:9;;;7995:10;;;7992:36;;;8008:18;;:::i;10328:147::-;10366:3;-1:-1:-1;;;;;10387:30:1;;10384:56;;10420:18;;:::i;10480:128::-;10547:9;;;10568:11;;;10565:37;;;10582:18;;:::i;10613:217::-;10653:1;10679;10669:132;;10723:10;10718:3;10714:20;10711:1;10704:31;10758:4;10755:1;10748:15;10786:4;10783:1;10776:15;10669:132;-1:-1:-1;10815:9:1;;10613:217::o;11369:251::-;11439:6;11492:2;11480:9;11471:7;11467:23;11463:32;11460:52;;;11508:1;11505;11498:12;11460:52;11540:9;11534:16;11559:31;11584:5;11559:31;:::i;11625:461::-;11678:3;11716:5;11710:12;11743:6;11738:3;11731:19;11769:4;11798:2;11793:3;11789:12;11782:19;;11835:2;11828:5;11824:14;11856:1;11866:195;11880:6;11877:1;11874:13;11866:195;;;11945:13;;-1:-1:-1;;;;;11941:39:1;11929:52;;12001:12;;;;12036:15;;;;11977:1;11895:9;11866:195;;;-1:-1:-1;12077:3:1;;11625:461;-1:-1:-1;;;;;11625:461:1:o;12091:582::-;12390:6;12379:9;12372:25;12433:6;12428:2;12417:9;12413:18;12406:34;12476:3;12471:2;12460:9;12456:18;12449:31;12353:4;12497:57;12549:3;12538:9;12534:19;12526:6;12497:57;:::i;:::-;-1:-1:-1;;;;;12590:32:1;;;;12585:2;12570:18;;12563:60;-1:-1:-1;12654:3:1;12639:19;12632:35;12489:65;12091:582;-1:-1:-1;;;12091:582:1:o;12678:332::-;12885:6;12874:9;12867:25;12928:2;12923;12912:9;12908:18;12901:30;12848:4;12948:56;13000:2;12989:9;12985:18;12977:6;12948:56;:::i;:::-;12940:64;12678:332;-1:-1:-1;;;;12678:332:1:o;13635:306::-;13723:6;13731;13739;13792:2;13780:9;13771:7;13767:23;13763:32;13760:52;;;13808:1;13805;13798:12;13760:52;13837:9;13831:16;13821:26;;13887:2;13876:9;13872:18;13866:25;13856:35;;13931:2;13920:9;13916:18;13910:25;13900:35;;13635:306;;;;;:::o

Swarm Source

ipfs://05d6b8d15667bb6ab959d0fe7b6a2b3db5f2324647ac32de3bde53c2169ff3b5

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.