ETH Price: $2,956.03 (+0.98%)

Contract

0xd2a23e28a6cF48357D3A40d00CC318fbCB6a3b26

Overview

ETH Balance

0.000018914442997783 ETH

ETH Value

$0.06 (@ $2,956.03/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

Transaction Hash
Block
From
To
Approve4161434712025-12-30 16:45:1224 days ago1767113112IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000240.01
Approve3938977472025-10-27 9:43:1889 days ago1761558198IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000240.01
Approve3933075402025-10-25 16:45:4490 days ago1761410744IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000240.01
Approve3730743502025-08-28 5:09:53149 days ago1756357793IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000250.01
Approve3652939972025-08-05 17:34:04171 days ago1754415244IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000520.01034
Approve3578493502025-07-15 5:11:09193 days ago1752556269IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000270.01
Transfer3398725092025-05-24 1:19:41245 days ago1748049581IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000650.011855
Approve3351418332025-05-10 6:54:32259 days ago1746860072IN
0xd2a23e28...bCB6a3b26
0 ETH0.00000040.01
Approve3213344652025-03-31 3:56:10299 days ago1743393370IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000380.01
Approve2931901492025-01-08 6:50:00381 days ago1736319000IN
0xd2a23e28...bCB6a3b26
0 ETH0.00000060.011899
Approve2798546252024-11-30 10:58:32420 days ago1732964312IN
0xd2a23e28...bCB6a3b26
0 ETH0.00000070.01
Approve2760712912024-11-19 10:36:58431 days ago1732012618IN
0xd2a23e28...bCB6a3b26
0 ETH0.000001440.01
Approve2676894092024-10-26 1:17:52455 days ago1729905472IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000450.01
Approve2647647842024-10-17 13:13:02464 days ago1729170782IN
0xd2a23e28...bCB6a3b26
0 ETH0.000001840.01
Transfer2520839042024-09-10 14:27:11500 days ago1725978431IN
0xd2a23e28...bCB6a3b26
0 ETH0.000001210.01
Approve2357167362024-07-24 23:37:42548 days ago1721864262IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000380.01
Transfer2302172682024-07-09 0:14:49564 days ago1720484089IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000830.01
Approve2217651262024-06-14 12:23:24589 days ago1718367804IN
0xd2a23e28...bCB6a3b26
0 ETH0.000000880.01
Approve1981972632024-04-06 13:20:41658 days ago1712409641IN
0xd2a23e28...bCB6a3b26
0 ETH0.00000070.01
Approve1951483902024-03-28 16:28:47666 days ago1711643327IN
0xd2a23e28...bCB6a3b26
0 ETH0.000008070.01
Transfer1927834782024-03-21 19:48:05673 days ago1711050485IN
0xd2a23e28...bCB6a3b26
0 ETH0.00000170.01
Approve1782187792024-02-07 3:43:28717 days ago1707277408IN
0xd2a23e28...bCB6a3b26
0 ETH0.000105280.1
Approve1679027852024-01-07 4:59:56748 days ago1704603596IN
0xd2a23e28...bCB6a3b26
0 ETH0.000088570.1
Approve1407675722023-10-15 9:18:44832 days ago1697361524IN
0xd2a23e28...bCB6a3b26
0 ETH0.000017580.1
Approve1239042432023-08-22 15:46:40885 days ago1692719200IN
0xd2a23e28...bCB6a3b26
0 ETH0.00014750.1
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
976972182023-06-04 12:34:01965 days ago1685882041
0xd2a23e28...bCB6a3b26
0.29948825 ETH
976972182023-06-04 12:34:01965 days ago1685882041
0xd2a23e28...bCB6a3b26
0.29948825 ETH
871990102023-05-04 11:46:43996 days ago1683200803
0xd2a23e28...bCB6a3b26
0.03662179 ETH
871990102023-05-04 11:46:43996 days ago1683200803
0xd2a23e28...bCB6a3b26
0.03662179 ETH
871617512023-05-04 9:12:06996 days ago1683191526
0xd2a23e28...bCB6a3b26
0.03781738 ETH
871617512023-05-04 9:12:06996 days ago1683191526
0xd2a23e28...bCB6a3b26
0.03781738 ETH
868922692023-05-03 14:19:41996 days ago1683123581
0xd2a23e28...bCB6a3b26
0.00096063 ETH
868922692023-05-03 14:19:41996 days ago1683123581
0xd2a23e28...bCB6a3b26
0.01729147 ETH
868922692023-05-03 14:19:41996 days ago1683123581
0xd2a23e28...bCB6a3b26
0.01921275 ETH
868922692023-05-03 14:19:41996 days ago1683123581
0xd2a23e28...bCB6a3b26
0.03746486 ETH
868072622023-05-03 8:26:17997 days ago1683102377
0xd2a23e28...bCB6a3b26
0.00097588 ETH
868072622023-05-03 8:26:17997 days ago1683102377
0xd2a23e28...bCB6a3b26
0.01756593 ETH
868072622023-05-03 8:26:17997 days ago1683102377
0xd2a23e28...bCB6a3b26
0.0195177 ETH
868072622023-05-03 8:26:17997 days ago1683102377
0xd2a23e28...bCB6a3b26
0.03805952 ETH
867072662023-05-03 1:21:21997 days ago1683076881
0xd2a23e28...bCB6a3b26
0.00098393 ETH
867072662023-05-03 1:21:21997 days ago1683076881
0xd2a23e28...bCB6a3b26
0.01771074 ETH
867072662023-05-03 1:21:21997 days ago1683076881
0xd2a23e28...bCB6a3b26
0.0196786 ETH
867072662023-05-03 1:21:21997 days ago1683076881
0xd2a23e28...bCB6a3b26
0.03837327 ETH
867002442023-05-03 0:50:19997 days ago1683075019
0xd2a23e28...bCB6a3b26
0.00102777 ETH
867002442023-05-03 0:50:19997 days ago1683075019
0xd2a23e28...bCB6a3b26
0.01849999 ETH
867002442023-05-03 0:50:19997 days ago1683075019
0xd2a23e28...bCB6a3b26
0.02055555 ETH
867002442023-05-03 0:50:19997 days ago1683075019
0xd2a23e28...bCB6a3b26
0.04008332 ETH
866342292023-05-02 19:57:00997 days ago1683057420
0xd2a23e28...bCB6a3b26
0.00105427 ETH
866342292023-05-02 19:57:00997 days ago1683057420
0xd2a23e28...bCB6a3b26
0.01897688 ETH
866342292023-05-02 19:57:00997 days ago1683057420
0xd2a23e28...bCB6a3b26
0.02108543 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pornlab

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-02-28
*/

// 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; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

    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");
        _;
    }

}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}
interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}
interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}
interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

 contract Pornlab is IERC20, Ownable {

  uint256 private constant _totalTokens = 1_000_000_000 * 10**DECIMALS; 
  string private constant NAME = "PornLab";
  string private constant SYMBOL = "PLAB";
  uint8 private constant DECIMALS = 18;

  struct feeProfile{ uint8 _liquidity; uint8 _marketing; uint8 _dev; uint8 _totalFee; }

  feeProfile public _buyProfile;
  feeProfile public _sellProfile;
        
  mapping (address => mapping (address => uint256)) private _allowances;
  mapping (address => uint256) private _balances; 
  mapping (address => bool) public _addressesExcludedFromFees; 

  bool public _isSwapEnabled; 
  bool public _isFeeEnabled; 
  bool public _isBuyingAllowed; //The contract will be activated once liquidity is added.

  uint256 public _tokenSwapThreshold = _totalTokens / 1000 * 1; //0.1%

  // UNISWAP INTERFACES (For swaps)
  IRouter02 internal V2Router;
  address private V2Pair;

  address public _marketingWallet;
  address public _devWallet;

  uint256 private blockPenalty;
  uint256 public tradingActiveBlock = 0; // 0 means trading is not active

  event _changeFees(uint256 _liq, uint256 _marketing, uint256 _dev, bool _isBuy);
  event _updateWallets(address _marketing, address _dev);
  event _setRouter(address _routerAddress);
  event _setThreshold(uint256 _threshold);
  event _clear(uint256 _tokenAmount);
  event _claimDust(uint256 _amount);
  event _launch(uint256 _start);
  event _swapAndLiquify(uint256 _amount);
    
  // BSC TESTNET: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1
  constructor () {
    _balances[_msgSender()] = totalSupply();
    _marketingWallet = address(0xA51e4ca53f6e7722922B6B18ce1F5E058C15198c);
    _devWallet = address(0xB7E041809B7B026b97f03Bd6dbC28E74cCECa08E);

    // Initialize V2 router 
    setSwapRouter(address(0x863e9610E9E0C3986DCc6fb2cD335e11D88f7D5f));

    // Exclude contract from fees
    setExcludedFromFees(address(this), true);
    setExcludedFromFees(_msgSender(), true);
    setExcludedFromFees(_marketingWallet, true);
    setExcludedFromFees(_devWallet, true);

    // buy 
    setFeeProfile(1,1,1,true);
    // sell
    setFeeProfile(1,1,1,false);

    emit Transfer(address(0), _msgSender(), totalSupply());
  }

  function Launch(uint256 _blockPenalty) external onlyOwner {
    require(!_isBuyingAllowed, "trading is already active");
  
    setSwapEnabled(true);
    setFeeEnabled(true);

    _isBuyingAllowed = true;
    tradingActiveBlock = block.number;
    blockPenalty = _blockPenalty;

    emit _launch(tradingActiveBlock);
  }

  function setWallets(address _marketing, address _dev) external onlyOwner() {
        _marketingWallet = _marketing;
        _devWallet = _dev;
        emit _updateWallets(_marketing, _dev);
    }

  function setFeeProfile(uint8 _liquidity, uint8 _marketing, uint8 _dev, bool _updateBuy) public onlyOwner() {
    uint8 _totalFee = _liquidity + _marketing + _dev;
    require(_totalFee <= 20, "tax to high");
        if(_updateBuy) { _buyProfile._liquidity = _liquidity;  _buyProfile._marketing = _marketing;  _buyProfile._dev = _dev; _buyProfile._totalFee = _totalFee; }
        else{ _sellProfile._liquidity = _liquidity; _sellProfile._marketing = _marketing; _sellProfile._dev = _dev; _sellProfile._totalFee = _totalFee;}
        emit _changeFees(_liquidity,_marketing,_dev,_updateBuy);
    }
    
  function transfer(address recipient, uint256 amount) public override returns (bool) {
    doTransfer(_msgSender(), recipient, amount);
    return true;
  }

  function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
    doTransfer(sender, recipient, amount);
    doApprove(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); // Will fail when there is not enough allowance
    return true;
  }
  
  function balanceOf(address account) public view override returns (uint256) {
    return _balances[account];
  }

  function approve(address spender, uint256 amount) public override returns (bool) {
    doApprove(_msgSender(), spender, amount);
    return true;
  }
  
  function doTransfer(address sender, address recipient, uint256 amount) internal virtual {
    require(sender != address(0), "zero address transfer is not allowed");
    require(recipient != address(0), "zero address transfer is not allowed");
    require(amount > 0, "amount must be greater than zero");

    if(!_isBuyingAllowed)  { require(_addressesExcludedFromFees[sender], "cant transfer"); }
    if(_isSwapEnabled){	executeSwapCheck(sender, recipient); }

    uint256 feeRate = calculateFeeRate(sender, recipient);
    uint256 feeAmount = amount * feeRate / 100;
    uint256 transferAmount = amount - feeAmount;

    updateBalances(sender, recipient, amount, feeAmount);

    emit Transfer(sender, recipient, transferAmount); 
  }
  
  function executeSwapCheck(address sender, address recipient) private {
    if (!isMarketTransfer(sender, recipient)) {
      return;
    }

    uint256 tokensAvailableForSwap = balanceOf(address(this));
    if (tokensAvailableForSwap >= _tokenSwapThreshold) {
      tokensAvailableForSwap = _tokenSwapThreshold;

      bool isSelling = isPancakeswapPair(recipient);
      if (isSelling) {
        executeSwap(tokensAvailableForSwap);
      }
    }
  }

  // if buildup becomes to large in contract
  function clearSwap(uint256 _tokenAmount) external onlyOwner(){
    executeSwap(_tokenAmount);
    emit _clear(_tokenAmount);
  }
  
  function executeSwap(uint256 amount) private {
    // Allow pancakeswap to spend the tokens of the address
    doApprove(address(this), address(V2Router), amount);
    uint256 total = _sellProfile._totalFee;

    uint256 tokensReservedForLiquidity = amount * _sellProfile._liquidity / total;
    uint256 tokensReservedForDev = amount * _sellProfile._dev / total ;
    uint256 tokensReservedForMarketing = amount - tokensReservedForLiquidity - tokensReservedForDev;

    uint256 tokensToSwapForLiquidity = tokensReservedForLiquidity / 2;
    uint256 tokensToAddAsLiquidity = tokensToSwapForLiquidity;

    uint256 tokensToSwap = tokensToSwapForLiquidity + tokensReservedForMarketing + tokensReservedForDev;
    uint256 ethSwapped = swapTokensForBNB(tokensToSwap);
    
    uint256 bnbToBeAddedToLiquidity = ethSwapped * tokensToSwapForLiquidity / tokensToSwap;
    uint256 bnbToBeSentToDevelopment = ethSwapped * tokensReservedForDev / tokensToSwap;
    uint256 bnbToBeSentToMarketing = ethSwapped - bnbToBeAddedToLiquidity- bnbToBeSentToDevelopment;

    payable(_marketingWallet).transfer(bnbToBeSentToMarketing);
    payable(_devWallet).transfer(bnbToBeSentToDevelopment);

    try V2Router.addLiquidityETH{value: bnbToBeAddedToLiquidity}(address(this), tokensToAddAsLiquidity, 0, 0, _devWallet, block.timestamp){} catch {}
    
    emit _swapAndLiquify(ethSwapped);
  }

  function updateBalances(address sender, address recipient, uint256 sentAmount, uint256 feeAmount) private {
    // Calculate amount to be received by recipient
    uint256 receivedAmount = sentAmount - feeAmount;

    // Update balances
    _balances[sender] -= sentAmount;
    _balances[recipient] += receivedAmount;
    
    // Add fees to contract
    _balances[address(this)] += feeAmount;

    // hides bloat emits
    if(feeAmount > 0 ){
      emit Transfer(sender, address(this), feeAmount); 
    }
  
  }

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

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

  function calculateFeeRate(address sender, address recipient) private view returns(uint256) {
    bool applyFees = _isFeeEnabled && !_addressesExcludedFromFees[sender] && !_addressesExcludedFromFees[recipient];
    if (applyFees) {
      if (isPancakeswapPair(recipient)) {
        return _sellProfile._totalFee;
      }else{
            if(isPenaltyActive()){
                return 75;
              }else{
                return _buyProfile._totalFee;
              }
            }
    }
    return 0;
  }
  
  function swapTokensForBNB(uint256 tokenAmount) internal returns(uint256) {
    uint256 initialBalance = address(this).balance;
  
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = V2Router.WETH();
    V2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
 
    return address(this).balance - initialBalance;
  }

  function isSwapTransfer(address sender, address recipient) private view returns(bool) {
    bool isContractSelling = sender == address(this) && isPancakeswapPair(recipient);
    return isContractSelling;
  }

  function isMarketTransfer(address sender, address recipient) internal virtual view returns(bool) {
    return !isSwapTransfer(sender, recipient);
  }

  function amountUntilSwap() external  view returns (uint256) {
    uint256 balance = balanceOf(address(this));
    if (balance > _tokenSwapThreshold) {
      return 0;
    }
    return _tokenSwapThreshold - balance;
  }

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

  function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
    doApprove(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
    return true;
  }

  function setSwapRouter(address routerAddress) public onlyOwner {
    require(routerAddress != address(0), "Cannot use the zero address as router address");
    V2Router = IRouter02(routerAddress);
    V2Pair = IFactoryV2(V2Router.factory()).createPair(address(this), V2Router.WETH());
    emit _setRouter(routerAddress);
  }

  function isPancakeswapPair(address addr) internal view returns(bool) {
    return V2Pair == addr;
  }

  function setTokenSwapThreshold(uint256 threshold) external  onlyOwner {
    require(threshold > 0, "Threshold must be greater than 0");
    _tokenSwapThreshold = threshold;
    emit _setThreshold(threshold);
  }

  // dust can build up by failure of adding liq 
  function clearDust() external  onlyOwner{
      payable(_devWallet).transfer(address(this).balance);
      emit _claimDust(address(this).balance);
  }

    function totalSupply() public override pure returns (uint256) { return _totalTokens; }
    function allowance(address user, address spender) public view override returns (uint256) { return _allowances[user][spender]; }
    function pairAddress() public view returns (address) { return V2Pair; }
    function setSwapEnabled(bool isEnabled) public onlyOwner { _isSwapEnabled = isEnabled; }
    function setFeeEnabled(bool isEnabled) public onlyOwner { _isFeeEnabled = isEnabled; }
    function setExcludedFromFees(address addr, bool value) public onlyOwner { _addressesExcludedFromFees[addr] = value; }
    function isPenaltyActive() public view returns (bool) { return tradingActiveBlock >= block.number - blockPenalty; } 
    function decimals() external pure override returns (uint8) { if (totalSupply() == 0) { revert(); } return DECIMALS; }
    function symbol() external pure override returns (string memory) { return SYMBOL; }
    function name() external pure override returns (string memory) { return NAME; }
    function getOwner() external view override returns (address) { return owner(); }

  receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_liq","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_dev","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_isBuy","type":"bool"}],"name":"_changeFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_claimDust","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"_clear","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_start","type":"uint256"}],"name":"_launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_routerAddress","type":"address"}],"name":"_setRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"_setThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_swapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketing","type":"address"},{"indexed":false,"internalType":"address","name":"_dev","type":"address"}],"name":"_updateWallets","type":"event"},{"inputs":[{"internalType":"uint256","name":"_blockPenalty","type":"uint256"}],"name":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_addressesExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyProfile","outputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"uint8","name":"_totalFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isBuyingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellProfile","outputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"uint8","name":"_totalFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountUntilSwap","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":"clearDust","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"clearSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","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":[],"name":"isPenaltyActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"bool","name":"_updateBuy","type":"bool"}],"name":"setFeeProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"name":"setSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setTokenSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_dev","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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"},{"stateMutability":"payable","type":"receive"}]

60806040526103e8620000156012600a62000796565b6200002590633b9aca00620007ae565b620000319190620007c8565b6200003e906001620007ae565b6009556000600f553480156200005357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200009f620001c6565b33600090815260066020526040902055600c80546001600160a01b031990811673a51e4ca53f6e7722922b6b18ce1f5e058c15198c17909155600d805490911673b7e041809b7b026b97f03bd6dbc28e74cceca08e1790556200011673863e9610e9e0c3986dcc6fb2cd335e11d88f7d5f620001eb565b6200012330600162000479565b6200013033600162000479565b600c5462000149906001600160a01b0316600162000479565b600d5462000162906001600160a01b0316600162000479565b620001716001808080620004ef565b62000181600180806000620004ef565b3360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001af620001c6565b60405190815260200160405180910390a362000832565b6000620001d66012600a62000796565b620001e690633b9aca00620007ae565b905090565b6000546001600160a01b031633146200023a5760405162461bcd60e51b815260206004820181905260248201526000805160206200269083398151915260448201526064015b60405180910390fd5b6001600160a01b038116620002a85760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b606482015260840162000231565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003289190620007eb565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b19190620007eb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004259190620007eb565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd4151642619060200160405180910390a150565b6000546001600160a01b03163314620004c45760405162461bcd60e51b8152602060048201819052602482015260008051602062002690833981519152604482015260640162000231565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146200053a5760405162461bcd60e51b8152602060048201819052602482015260008051602062002690833981519152604482015260640162000231565b60008262000549858762000816565b62000555919062000816565b905060148160ff1611156200059b5760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b604482015260640162000231565b8115620005ea576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790556200062d565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006d8578160001904821115620006bc57620006bc62000681565b80851615620006ca57918102915b93841c93908002906200069c565b509250929050565b600082620006f15750600162000790565b81620007005750600062000790565b8160018114620007195760028114620007245762000744565b600191505062000790565b60ff84111562000738576200073862000681565b50506001821b62000790565b5060208310610133831016604e8410600b841016171562000769575081810a62000790565b62000775838362000697565b80600019048211156200078c576200078c62000681565b0290505b92915050565b6000620007a760ff841683620006e0565b9392505050565b808202811582820484141762000790576200079062000681565b600082620007e657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007fe57600080fd5b81516001600160a01b0381168114620007a757600080fd5b60ff818116838216019081111562000790576200079062000681565b611e4e80620008426000396000f3fe6080604052600436106102135760003560e01c8063893d20e811610118578063d3f6a157116100a0578063e6f2306b1161006f578063e6f2306b14610695578063ee40166e146106cb578063f0977357146106e1578063f16f07ae14610701578063fb96a95f1461071757600080fd5b8063d3f6a157146105f0578063d3ff209d14610610578063dd62ed3e1461062f578063e01af92c1461067557600080fd5b8063962dfc75116100e7578063962dfc7514610552578063a457c2d714610572578063a72e5e1514610592578063a8b08982146105b2578063a9059cbb146105d057600080fd5b8063893d20e8146104e75780638da5cb5b146104e757806391f24c091461050557806395d89b411461052557600080fd5b80633e0bf7161161019b57806359ecf39e1161016a57806359ecf39e146104425780635a264ca71461046257806370a08231146104825780637d584aa1146104b85780637f7fcecc146104cd57600080fd5b80633e0bf7161461038a57806341273657146103ed57806358b69bc31461040d578063590ffdce1461042257600080fd5b806318160ddd116101e257806318160ddd146102eb57806323b872dd1461030e5780633094375d1461032e578063313ce56714610343578063395093511461036a57600080fd5b806306fdde031461021f578063095ea7b3146102615780630db474fa1461029157806311a63e17146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152662837b9372630b160c91b60208201525b6040516102589190611939565b60405180910390f35b34801561026d57600080fd5b5061028161027c36600461199f565b610747565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac3660046119e0565b61075e565b005b3480156102bf57600080fd5b50600d546102d3906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102f757600080fd5b506103006107ab565b604051908152602001610258565b34801561031a57600080fd5b50610281610329366004611a02565b6107cc565b34801561033a57600080fd5b5061030061081e565b34801561034f57600080fd5b50610358610854565b60405160ff9091168152602001610258565b34801561037657600080fd5b5061028161038536600461199f565b610870565b34801561039657600080fd5b506003546103c09060ff808216916101008104821691620100008204811691630100000090041684565b6040805160ff95861681529385166020850152918416918301919091529091166060820152608001610258565b3480156103f957600080fd5b506102b1610408366004611a43565b6108a7565b34801561041957600080fd5b50610281610b06565b34801561042e57600080fd5b506102b161043d366004611a60565b610b20565b34801561044e57600080fd5b506102b161045d366004611a95565b610b75565b34801561046e57600080fd5b506008546102819062010000900460ff1681565b34801561048e57600080fd5b5061030061049d366004611a43565b6001600160a01b031660009081526006602052604090205490565b3480156104c457600080fd5b506102b1610c24565b3480156104d957600080fd5b506008546102819060ff1681565b3480156104f357600080fd5b506000546001600160a01b03166102d3565b34801561051157600080fd5b506102b1610520366004611abf565b610cbd565b34801561053157600080fd5b50604080518082019091526004815263282620a160e11b602082015261024b565b34801561055e57600080fd5b50600c546102d3906001600160a01b031681565b34801561057e57600080fd5b5061028161058d36600461199f565b610e26565b34801561059e57600080fd5b506102b16105ad366004611a95565b610e5d565b3480156105be57600080fd5b50600b546001600160a01b03166102d3565b3480156105dc57600080fd5b506102816105eb36600461199f565b610f42565b3480156105fc57600080fd5b506102b161060b366004611b13565b610f4f565b34801561061c57600080fd5b5060085461028190610100900460ff1681565b34801561063b57600080fd5b5061030061064a366004611b13565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068157600080fd5b506102b16106903660046119e0565b610fe7565b3480156106a157600080fd5b506004546103c09060ff808216916101008104821691620100008204811691630100000090041684565b3480156106d757600080fd5b50610300600f5481565b3480156106ed57600080fd5b506102b16106fc366004611a95565b611024565b34801561070d57600080fd5b5061030060095481565b34801561072357600080fd5b50610281610732366004611a43565b60076020526000908152604090205460ff1681565b6000610754338484611087565b5060015b92915050565b6000546001600160a01b031633146107915760405162461bcd60e51b815260040161078890611b4c565b60405180910390fd5b600880549115156101000261ff0019909216919091179055565b60006107b96012600a611c7b565b6107c790633b9aca00611c8a565b905090565b60006107d98484846111ab565b6001600160a01b03841660009081526005602090815260408083203380855292529091205461081491869161080f908690611ca1565b611087565b5060019392505050565b3060009081526006602052604081205460095481111561084057600091505090565b8060095461084e9190611ca1565b91505090565b600061085e6107ab565b60000361086a57600080fd5b50601290565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611cb4565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03811661093d5760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b6064820152608401610788565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611cc7565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190611cc7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab19190611cc7565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd415164261906020015b60405180910390a150565b6000600e5443610b169190611ca1565b600f541015905090565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b815260040161078890611b4c565b60008111610bef5760405162461bcd60e51b815260206004820181905260248201527f5468726573686f6c64206d7573742062652067726561746572207468616e20306044820152606401610788565b60098190556040518181527f3d5472e45a39af360c106b99aa48f7356cd3b609ea581b5deb38a4b1270e898590602001610afb565b6000546001600160a01b03163314610c4e5760405162461bcd60e51b815260040161078890611b4c565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c87573d6000803e3d6000fd5b506040514781527fd1c23667321cc2db9d1de3db7f4dcf0eb5ade4f87e163713d3667eec1e92facb9060200160405180910390a1565b6000546001600160a01b03163314610ce75760405162461bcd60e51b815260040161078890611b4c565b600082610cf48587611ce4565b610cfe9190611ce4565b905060148160ff161115610d425760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b6044820152606401610788565b8115610d8f576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff000000191617630100000091841691909102179055610dd2565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611ca1565b6000546001600160a01b03163314610e875760405162461bcd60e51b815260040161078890611b4c565b60085462010000900460ff1615610ee05760405162461bcd60e51b815260206004820152601960248201527f74726164696e6720697320616c726561647920616374697665000000000000006044820152606401610788565b610eea6001610fe7565b610ef4600161075e565b6008805462ff000019166201000017905543600f819055600e8290556040517f6600f6005863f92891b8c04d901a1f5d14860257428eba2058e9f3f9175b563391610afb9190815260200190565b60006107543384846111ab565b6000546001600160a01b03163314610f795760405162461bcd60e51b815260040161078890611b4c565b600c80546001600160a01b038481166001600160a01b03199283168117909355600d80549185169190921681179091556040805192835260208301919091527fe67d5d4d7e74d0ccbdf30dbd83729da0b6a8405bfb83b5f35038638e19a4ea13910160405180910390a15050565b6000546001600160a01b031633146110115760405162461bcd60e51b815260040161078890611b4c565b6008805460ff1916911515919091179055565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260040161078890611b4c565b6110578161135b565b6040518181527f8d9f39d10957a4e556f944f249fcdc7cc1263cc4e31368fe3056895f85d4599d90602001610afb565b6001600160a01b0383166110e95760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610788565b6001600160a01b03821661114a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610788565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111d15760405162461bcd60e51b815260040161078890611cfd565b6001600160a01b0382166111f75760405162461bcd60e51b815260040161078890611cfd565b600081116112475760405162461bcd60e51b815260206004820181905260248201527f616d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610788565b60085462010000900460ff166112af576001600160a01b03831660009081526007602052604090205460ff166112af5760405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606401610788565b60085460ff16156112c4576112c483836115ac565b60006112d08484611602565b9050600060646112e08385611c8a565b6112ea9190611d41565b905060006112f88285611ca1565b9050611306868686856116c2565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161134b91815260200190565b60405180910390a3505050505050565b600a546113739030906001600160a01b031683611087565b60045460ff630100000082048116916000918391611392911685611c8a565b61139c9190611d41565b60045490915060009083906113ba9062010000900460ff1686611c8a565b6113c49190611d41565b90506000816113d38487611ca1565b6113dd9190611ca1565b905060006113ec600285611d41565b9050806000846113fc8584611cb4565b6114069190611cb4565b905060006114138261179f565b90506000826114228684611c8a565b61142c9190611d41565b905060008361143b8985611c8a565b6114459190611d41565b90506000816114548486611ca1565b61145e9190611ca1565b600c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611499573d6000803e3d6000fd5b50600d546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156114d4573d6000803e3d6000fd5b50600a54600d5460405163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af193505050508015611562575060408051601f3d908101601f1916820190925261155f91810190611d63565b60015b1561156b575050505b6040518481527f7bf54cb9a865e8dabf744f65dfac5fe865060b1d1b8172c512d88fe90815cf2a9060200160405180910390a1505050505050505050505050565b6115b682826118f6565b6115be575050565b3060009081526006602052604090205460095481106115fd5750600954600b546001600160a01b0383811691161480156115fb576115fb8261135b565b505b505050565b6008546000908190610100900460ff16801561163757506001600160a01b03841660009081526007602052604090205460ff16155b801561165c57506001600160a01b03831660009081526007602052604090205460ff16155b905080156116b857600b546001600160a01b0380851691160361168d5750506004546301000000900460ff16610758565b611695610b06565b156116a457604b915050610758565b50506003546301000000900460ff16610758565b5060009392505050565b60006116ce8284611ca1565b6001600160a01b0386166000908152600660205260408120805492935085929091906116fb908490611ca1565b90915550506001600160a01b03841660009081526006602052604081208054839290611728908490611cb4565b9091555050306000908152600660205260408120805484929061174c908490611cb4565b909155505081156117985760405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b5050505050565b60408051600280825260608201835260009247928492909160208301908036833701905050905030816000815181106117da576117da611d91565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611cc7565b8160018151811061186a5761186a611d91565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906118b0908790600090869030904290600401611da7565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b5050505081476118ee9190611ca1565b949350505050565b6000611902838361190a565b159392505050565b6000806001600160a01b038416301480156118ee5750600b546001600160a01b03808516911614949350505050565b600060208083528351808285015260005b818110156119665785810183015185820160400152820161194a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461199c57600080fd5b50565b600080604083850312156119b257600080fd5b82356119bd81611987565b946020939093013593505050565b803580151581146119db57600080fd5b919050565b6000602082840312156119f257600080fd5b6119fb826119cb565b9392505050565b600080600060608486031215611a1757600080fd5b8335611a2281611987565b92506020840135611a3281611987565b929592945050506040919091013590565b600060208284031215611a5557600080fd5b81356119fb81611987565b60008060408385031215611a7357600080fd5b8235611a7e81611987565b9150611a8c602084016119cb565b90509250929050565b600060208284031215611aa757600080fd5b5035919050565b803560ff811681146119db57600080fd5b60008060008060808587031215611ad557600080fd5b611ade85611aae565b9350611aec60208601611aae565b9250611afa60408601611aae565b9150611b08606086016119cb565b905092959194509250565b60008060408385031215611b2657600080fd5b8235611b3181611987565b91506020830135611b4181611987565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bd2578160001904821115611bb857611bb8611b81565b80851615611bc557918102915b93841c9390800290611b9c565b509250929050565b600082611be957506001610758565b81611bf657506000610758565b8160018114611c0c5760028114611c1657611c32565b6001915050610758565b60ff841115611c2757611c27611b81565b50506001821b610758565b5060208310610133831016604e8410600b8410161715611c55575081810a610758565b611c5f8383611b97565b8060001904821115611c7357611c73611b81565b029392505050565b60006119fb60ff841683611bda565b808202811582820484141761075857610758611b81565b8181038181111561075857610758611b81565b8082018082111561075857610758611b81565b600060208284031215611cd957600080fd5b81516119fb81611987565b60ff818116838216019081111561075857610758611b81565b60208082526024908201527f7a65726f2061646472657373207472616e73666572206973206e6f7420616c6c6040820152631bddd95960e21b606082015260800190565b600082611d5e57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611d7857600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611df75784516001600160a01b031683529383019391830191600101611dd2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208d6a8638a76bbd781beaa0ba68f009b3312deaa25ba0608c5db808e931f9e23764736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063893d20e811610118578063d3f6a157116100a0578063e6f2306b1161006f578063e6f2306b14610695578063ee40166e146106cb578063f0977357146106e1578063f16f07ae14610701578063fb96a95f1461071757600080fd5b8063d3f6a157146105f0578063d3ff209d14610610578063dd62ed3e1461062f578063e01af92c1461067557600080fd5b8063962dfc75116100e7578063962dfc7514610552578063a457c2d714610572578063a72e5e1514610592578063a8b08982146105b2578063a9059cbb146105d057600080fd5b8063893d20e8146104e75780638da5cb5b146104e757806391f24c091461050557806395d89b411461052557600080fd5b80633e0bf7161161019b57806359ecf39e1161016a57806359ecf39e146104425780635a264ca71461046257806370a08231146104825780637d584aa1146104b85780637f7fcecc146104cd57600080fd5b80633e0bf7161461038a57806341273657146103ed57806358b69bc31461040d578063590ffdce1461042257600080fd5b806318160ddd116101e257806318160ddd146102eb57806323b872dd1461030e5780633094375d1461032e578063313ce56714610343578063395093511461036a57600080fd5b806306fdde031461021f578063095ea7b3146102615780630db474fa1461029157806311a63e17146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152662837b9372630b160c91b60208201525b6040516102589190611939565b60405180910390f35b34801561026d57600080fd5b5061028161027c36600461199f565b610747565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac3660046119e0565b61075e565b005b3480156102bf57600080fd5b50600d546102d3906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102f757600080fd5b506103006107ab565b604051908152602001610258565b34801561031a57600080fd5b50610281610329366004611a02565b6107cc565b34801561033a57600080fd5b5061030061081e565b34801561034f57600080fd5b50610358610854565b60405160ff9091168152602001610258565b34801561037657600080fd5b5061028161038536600461199f565b610870565b34801561039657600080fd5b506003546103c09060ff808216916101008104821691620100008204811691630100000090041684565b6040805160ff95861681529385166020850152918416918301919091529091166060820152608001610258565b3480156103f957600080fd5b506102b1610408366004611a43565b6108a7565b34801561041957600080fd5b50610281610b06565b34801561042e57600080fd5b506102b161043d366004611a60565b610b20565b34801561044e57600080fd5b506102b161045d366004611a95565b610b75565b34801561046e57600080fd5b506008546102819062010000900460ff1681565b34801561048e57600080fd5b5061030061049d366004611a43565b6001600160a01b031660009081526006602052604090205490565b3480156104c457600080fd5b506102b1610c24565b3480156104d957600080fd5b506008546102819060ff1681565b3480156104f357600080fd5b506000546001600160a01b03166102d3565b34801561051157600080fd5b506102b1610520366004611abf565b610cbd565b34801561053157600080fd5b50604080518082019091526004815263282620a160e11b602082015261024b565b34801561055e57600080fd5b50600c546102d3906001600160a01b031681565b34801561057e57600080fd5b5061028161058d36600461199f565b610e26565b34801561059e57600080fd5b506102b16105ad366004611a95565b610e5d565b3480156105be57600080fd5b50600b546001600160a01b03166102d3565b3480156105dc57600080fd5b506102816105eb36600461199f565b610f42565b3480156105fc57600080fd5b506102b161060b366004611b13565b610f4f565b34801561061c57600080fd5b5060085461028190610100900460ff1681565b34801561063b57600080fd5b5061030061064a366004611b13565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068157600080fd5b506102b16106903660046119e0565b610fe7565b3480156106a157600080fd5b506004546103c09060ff808216916101008104821691620100008204811691630100000090041684565b3480156106d757600080fd5b50610300600f5481565b3480156106ed57600080fd5b506102b16106fc366004611a95565b611024565b34801561070d57600080fd5b5061030060095481565b34801561072357600080fd5b50610281610732366004611a43565b60076020526000908152604090205460ff1681565b6000610754338484611087565b5060015b92915050565b6000546001600160a01b031633146107915760405162461bcd60e51b815260040161078890611b4c565b60405180910390fd5b600880549115156101000261ff0019909216919091179055565b60006107b96012600a611c7b565b6107c790633b9aca00611c8a565b905090565b60006107d98484846111ab565b6001600160a01b03841660009081526005602090815260408083203380855292529091205461081491869161080f908690611ca1565b611087565b5060019392505050565b3060009081526006602052604081205460095481111561084057600091505090565b8060095461084e9190611ca1565b91505090565b600061085e6107ab565b60000361086a57600080fd5b50601290565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611cb4565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03811661093d5760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b6064820152608401610788565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611cc7565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190611cc7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab19190611cc7565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd415164261906020015b60405180910390a150565b6000600e5443610b169190611ca1565b600f541015905090565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b815260040161078890611b4c565b60008111610bef5760405162461bcd60e51b815260206004820181905260248201527f5468726573686f6c64206d7573742062652067726561746572207468616e20306044820152606401610788565b60098190556040518181527f3d5472e45a39af360c106b99aa48f7356cd3b609ea581b5deb38a4b1270e898590602001610afb565b6000546001600160a01b03163314610c4e5760405162461bcd60e51b815260040161078890611b4c565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c87573d6000803e3d6000fd5b506040514781527fd1c23667321cc2db9d1de3db7f4dcf0eb5ade4f87e163713d3667eec1e92facb9060200160405180910390a1565b6000546001600160a01b03163314610ce75760405162461bcd60e51b815260040161078890611b4c565b600082610cf48587611ce4565b610cfe9190611ce4565b905060148160ff161115610d425760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b6044820152606401610788565b8115610d8f576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff000000191617630100000091841691909102179055610dd2565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611ca1565b6000546001600160a01b03163314610e875760405162461bcd60e51b815260040161078890611b4c565b60085462010000900460ff1615610ee05760405162461bcd60e51b815260206004820152601960248201527f74726164696e6720697320616c726561647920616374697665000000000000006044820152606401610788565b610eea6001610fe7565b610ef4600161075e565b6008805462ff000019166201000017905543600f819055600e8290556040517f6600f6005863f92891b8c04d901a1f5d14860257428eba2058e9f3f9175b563391610afb9190815260200190565b60006107543384846111ab565b6000546001600160a01b03163314610f795760405162461bcd60e51b815260040161078890611b4c565b600c80546001600160a01b038481166001600160a01b03199283168117909355600d80549185169190921681179091556040805192835260208301919091527fe67d5d4d7e74d0ccbdf30dbd83729da0b6a8405bfb83b5f35038638e19a4ea13910160405180910390a15050565b6000546001600160a01b031633146110115760405162461bcd60e51b815260040161078890611b4c565b6008805460ff1916911515919091179055565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260040161078890611b4c565b6110578161135b565b6040518181527f8d9f39d10957a4e556f944f249fcdc7cc1263cc4e31368fe3056895f85d4599d90602001610afb565b6001600160a01b0383166110e95760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610788565b6001600160a01b03821661114a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610788565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111d15760405162461bcd60e51b815260040161078890611cfd565b6001600160a01b0382166111f75760405162461bcd60e51b815260040161078890611cfd565b600081116112475760405162461bcd60e51b815260206004820181905260248201527f616d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610788565b60085462010000900460ff166112af576001600160a01b03831660009081526007602052604090205460ff166112af5760405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606401610788565b60085460ff16156112c4576112c483836115ac565b60006112d08484611602565b9050600060646112e08385611c8a565b6112ea9190611d41565b905060006112f88285611ca1565b9050611306868686856116c2565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161134b91815260200190565b60405180910390a3505050505050565b600a546113739030906001600160a01b031683611087565b60045460ff630100000082048116916000918391611392911685611c8a565b61139c9190611d41565b60045490915060009083906113ba9062010000900460ff1686611c8a565b6113c49190611d41565b90506000816113d38487611ca1565b6113dd9190611ca1565b905060006113ec600285611d41565b9050806000846113fc8584611cb4565b6114069190611cb4565b905060006114138261179f565b90506000826114228684611c8a565b61142c9190611d41565b905060008361143b8985611c8a565b6114459190611d41565b90506000816114548486611ca1565b61145e9190611ca1565b600c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611499573d6000803e3d6000fd5b50600d546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156114d4573d6000803e3d6000fd5b50600a54600d5460405163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af193505050508015611562575060408051601f3d908101601f1916820190925261155f91810190611d63565b60015b1561156b575050505b6040518481527f7bf54cb9a865e8dabf744f65dfac5fe865060b1d1b8172c512d88fe90815cf2a9060200160405180910390a1505050505050505050505050565b6115b682826118f6565b6115be575050565b3060009081526006602052604090205460095481106115fd5750600954600b546001600160a01b0383811691161480156115fb576115fb8261135b565b505b505050565b6008546000908190610100900460ff16801561163757506001600160a01b03841660009081526007602052604090205460ff16155b801561165c57506001600160a01b03831660009081526007602052604090205460ff16155b905080156116b857600b546001600160a01b0380851691160361168d5750506004546301000000900460ff16610758565b611695610b06565b156116a457604b915050610758565b50506003546301000000900460ff16610758565b5060009392505050565b60006116ce8284611ca1565b6001600160a01b0386166000908152600660205260408120805492935085929091906116fb908490611ca1565b90915550506001600160a01b03841660009081526006602052604081208054839290611728908490611cb4565b9091555050306000908152600660205260408120805484929061174c908490611cb4565b909155505081156117985760405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b5050505050565b60408051600280825260608201835260009247928492909160208301908036833701905050905030816000815181106117da576117da611d91565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611cc7565b8160018151811061186a5761186a611d91565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906118b0908790600090869030904290600401611da7565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b5050505081476118ee9190611ca1565b949350505050565b6000611902838361190a565b159392505050565b6000806001600160a01b038416301480156118ee5750600b546001600160a01b03808516911614949350505050565b600060208083528351808285015260005b818110156119665785810183015185820160400152820161194a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461199c57600080fd5b50565b600080604083850312156119b257600080fd5b82356119bd81611987565b946020939093013593505050565b803580151581146119db57600080fd5b919050565b6000602082840312156119f257600080fd5b6119fb826119cb565b9392505050565b600080600060608486031215611a1757600080fd5b8335611a2281611987565b92506020840135611a3281611987565b929592945050506040919091013590565b600060208284031215611a5557600080fd5b81356119fb81611987565b60008060408385031215611a7357600080fd5b8235611a7e81611987565b9150611a8c602084016119cb565b90509250929050565b600060208284031215611aa757600080fd5b5035919050565b803560ff811681146119db57600080fd5b60008060008060808587031215611ad557600080fd5b611ade85611aae565b9350611aec60208601611aae565b9250611afa60408601611aae565b9150611b08606086016119cb565b905092959194509250565b60008060408385031215611b2657600080fd5b8235611b3181611987565b91506020830135611b4181611987565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bd2578160001904821115611bb857611bb8611b81565b80851615611bc557918102915b93841c9390800290611b9c565b509250929050565b600082611be957506001610758565b81611bf657506000610758565b8160018114611c0c5760028114611c1657611c32565b6001915050610758565b60ff841115611c2757611c27611b81565b50506001821b610758565b5060208310610133831016604e8410600b8410161715611c55575081810a610758565b611c5f8383611b97565b8060001904821115611c7357611c73611b81565b029392505050565b60006119fb60ff841683611bda565b808202811582820484141761075857610758611b81565b8181038181111561075857610758611b81565b8082018082111561075857610758611b81565b600060208284031215611cd957600080fd5b81516119fb81611987565b60ff818116838216019081111561075857610758611b81565b60208082526024908201527f7a65726f2061646472657373207472616e73666572206973206e6f7420616c6c6040820152631bddd95960e21b606082015260800190565b600082611d5e57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611d7857600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611df75784516001600160a01b031683529383019391830191600101611dd2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208d6a8638a76bbd781beaa0ba68f009b3312deaa25ba0608c5db808e931f9e23764736f6c63430008130033

Deployed Bytecode Sourcemap

4556:11876:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16229:79;;;;;;;;;;-1:-1:-1;16301:4:0;;;;;;;;;;;;-1:-1:-1;;;16301:4:0;;;;16229:79;;;;;;;:::i;:::-;;;;;;;;8578:152;;;;;;;;;;-1:-1:-1;8578:152:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8578:152:0;1023:187:1;15680:86:0;;;;;;;;;;-1:-1:-1;15680:86:0;;;;;:::i;:::-;;:::i;:::-;;5532:25;;;;;;;;;;-1:-1:-1;5532:25:0;;;;-1:-1:-1;;;;;5532:25:0;;;;;;-1:-1:-1;;;;;1729:32:1;;;1711:51;;1699:2;1684:18;5532:25:0;1565:203:1;15284:86:0;;;;;;;;;;;;;:::i;:::-;;;1919:25:1;;;1907:2;1892:18;15284:86:0;1773:177:1;8149:302:0;;;;;;;;;;-1:-1:-1;8149:302:0;;;;;:::i;:::-;;:::i;13744:224::-;;;;;;;;;;;;;:::i;16017:117::-;;;;;;;;;;;;;:::i;:::-;;;2588:4:1;2576:17;;;2558:36;;2546:2;2531:18;16017:117:0;2416:184:1;13974:206:0;;;;;;;;;;-1:-1:-1;13974:206:0;;;;;:::i;:::-;;:::i;4896:29::-;;;;;;;;;;-1:-1:-1;4896:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2850:4:1;2838:17;;;2820:36;;2892:17;;;2887:2;2872:18;;2865:45;2946:17;;;2926:18;;;2919:45;;;;3000:17;;;2995:2;2980:18;;2973:45;2807:3;2792:19;4896:29:0;2605:419:1;14408:329:0;;;;;;;;;;-1:-1:-1;14408:329:0;;;;;:::i;:::-;;:::i;15895:115::-;;;;;;;;;;;;;:::i;15772:117::-;;;;;;;;;;-1:-1:-1;15772:117:0;;;;;:::i;:::-;;:::i;14852:215::-;;;;;;;;;;-1:-1:-1;14852:215:0;;;;;:::i;:::-;;:::i;5231:28::-;;;;;;;;;;-1:-1:-1;5231:28:0;;;;;;;;;;;8459:113;;;;;;;;;;-1:-1:-1;8459:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;8548:18:0;8525:7;8548:18;;;:9;:18;;;;;;;8459:113;15123:153;;;;;;;;;;;;;:::i;5168:26::-;;;;;;;;;;-1:-1:-1;5168:26:0;;;;;;;;16314:80;;;;;;;;;;-1:-1:-1;16366:7:0;936:6;-1:-1:-1;;;;;936:6:0;16314:80;15284:86;7375:600;;;;;;;;;;-1:-1:-1;7375:600:0;;;;;:::i;:::-;;:::i;16140:83::-;;;;;;;;;;-1:-1:-1;16214:6:0;;;;;;;;;;;;-1:-1:-1;;;16214:6:0;;;;16140:83;;5496:31;;;;;;;;;;-1:-1:-1;5496:31:0;;;;-1:-1:-1;;;;;5496:31:0;;;14186:216;;;;;;;;;;-1:-1:-1;14186:216:0;;;;;:::i;:::-;;:::i;6833:331::-;;;;;;;;;;-1:-1:-1;6833:331:0;;;;;:::i;:::-;;:::i;15509:71::-;;;;;;;;;;-1:-1:-1;15571:6:0;;-1:-1:-1;;;;;15571:6:0;15509:71;;7985:158;;;;;;;;;;-1:-1:-1;7985:158:0;;;;;:::i;:::-;;:::i;7170:199::-;;;;;;;;;;-1:-1:-1;7170:199:0;;;;;:::i;:::-;;:::i;5200:25::-;;;;;;;;;;-1:-1:-1;5200:25:0;;;;;;;;;;;15376:127;;;;;;;;;;-1:-1:-1;15376:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;15474:17:0;;;15456:7;15474:17;;;:11;:17;;;;;;;;:26;;;;;;;;;;;;;15376:127;15586:88;;;;;;;;;;-1:-1:-1;15586:88:0;;;;;:::i;:::-;;:::i;4930:30::-;;;;;;;;;;-1:-1:-1;4930:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5597:37;;;;;;;;;;;;;;;;10014:131;;;;;;;;;;-1:-1:-1;10014:131:0;;;;;:::i;:::-;;:::i;5324:60::-;;;;;;;;;;;;;;;;5101:59;;;;;;;;;;-1:-1:-1;5101:59:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8578:152;8653:4;8666:40;193:10;8690:7;8699:6;8666:9;:40::i;:::-;-1:-1:-1;8720:4:0;8578:152;;;;;:::o;15680:86::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;;;;;;;;;15738:13:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;15738:25:0;;::::1;::::0;;;::::1;::::0;;15680:86::o;15284:::-;15337:7;4655:12;4796:2;4655;:12;:::i;:::-;4639:28;;:13;:28;:::i;:::-;15348:19;;15284:86;:::o;8149:302::-;8247:4;8260:37;8271:6;8279:9;8290:6;8260:10;:37::i;:::-;-1:-1:-1;;;;;8336:19:0;;;;;;:11;:19;;;;;;;;193:10;8336:33;;;;;;;;;8304:75;;8314:6;;8336:42;;8372:6;;8336:42;:::i;:::-;8304:9;:75::i;:::-;-1:-1:-1;8441:4:0;8149:302;;;;;:::o;13744:224::-;13847:4;13795:7;8548:18;;;:9;:18;;;;;;13874:19;;13864:7;:29;13860:60;;;13911:1;13904:8;;;13744:224;:::o;13860:60::-;13955:7;13933:19;;:29;;;;:::i;:::-;13926:36;;;13744:224;:::o;16017:117::-;16069:5;16082:13;:11;:13::i;:::-;16099:1;16082:18;16078:37;;16104:8;;;16078:37;-1:-1:-1;4796:2:0;;16017:117::o;13974:206::-;193:10;14062:4;14108:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14108:34:0;;;;;;;;;;14062:4;;14075:81;;14099:7;;14108:47;;14145:10;;14108:47;:::i;14408:329::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14486:27:0;::::1;14478:85;;;::::0;-1:-1:-1;;;14478:85:0;;7250:2:1;14478:85:0::1;::::0;::::1;7232:21:1::0;7289:2;7269:18;;;7262:30;7328:34;7308:18;;;7301:62;-1:-1:-1;;;7379:18:1;;;7372:43;7432:19;;14478:85:0::1;7048:409:1::0;14478:85:0::1;14570:8;:35:::0;;-1:-1:-1;;;;;;14570:35:0::1;-1:-1:-1::0;;;;;14570:35:0;::::1;::::0;;::::1;::::0;;;14632:18:::1;::::0;;-1:-1:-1;;;14632:18:0;;;;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;14570:35;14632:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14621:41:0::1;;14671:4;14678:8;;;;;;;;;-1:-1:-1::0;;;;;14678:8:0::1;-1:-1:-1::0;;;;;14678:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14621:73;::::0;-1:-1:-1;;;;;;14621:73:0::1;::::0;;;;;;-1:-1:-1;;;;;7948:15:1;;;14621:73:0::1;::::0;::::1;7930:34:1::0;8000:15;;7980:18;;;7973:43;7865:18;;14621:73:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14612:6;:82:::0;;-1:-1:-1;;;;;;14612:82:0::1;-1:-1:-1::0;;;;;14612:82:0;;::::1;;::::0;;14706:25:::1;::::0;1729:32:1;;;1711:51;;14706:25:0::1;::::0;1699:2:1;1684:18;14706:25:0::1;;;;;;;;14408:329:::0;:::o;15895:115::-;15943:4;15995:12;;15980;:27;;;;:::i;:::-;15958:18;;:49;;15951:56;;15895:115;:::o;15772:117::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15846:32:0;;;::::1;;::::0;;;:26:::1;:32;::::0;;;;:40;;-1:-1:-1;;15846:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15772:117::o;14852:215::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;14949:1:::1;14937:9;:13;14929:58;;;::::0;-1:-1:-1;;;14929:58:0;;8229:2:1;14929:58:0::1;::::0;::::1;8211:21:1::0;;;8248:18;;;8241:30;8307:34;8287:18;;;8280:62;8359:18;;14929:58:0::1;8027:356:1::0;14929:58:0::1;14994:19;:31:::0;;;15037:24:::1;::::0;1919:25:1;;;15037:24:0::1;::::0;1907:2:1;1892:18;15037:24:0::1;1773:177:1::0;15123:153:0;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;15180:10:::1;::::0;15172:51:::1;::::0;-1:-1:-1;;;;;15180:10:0;;::::1;::::0;15201:21:::1;15172:51:::0;::::1;;;::::0;15180:10:::1;15172:51:::0;15180:10;15172:51;15201:21;15180:10;15172:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15237:33:0::1;::::0;15248:21:::1;1919:25:1::0;;15237:33:0::1;::::0;1907:2:1;1892:18;15237:33:0::1;;;;;;;15123:153::o:0;7375:600::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;7489:15:::1;7533:4:::0;7507:23:::1;7520:10:::0;7507;:23:::1;:::i;:::-;:30;;;;:::i;:::-;7489:48;;7565:2;7552:9;:15;;;;7544:39;;;::::0;-1:-1:-1;;;7544:39:0;;8743:2:1;7544:39:0::1;::::0;::::1;8725:21:1::0;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:41;8852:18;;7544:39:0::1;8541:335:1::0;7544:39:0::1;7597:10;7594:308;;;7611:11;:35:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;7649:35:0;;;;;;;7611::::1;7649::::0;;::::1;;;-1:-1:-1::0;;7712:33:0;7687:23;;;::::1;;-1:-1:-1::0;;7712:33:0;;;;;::::1;::::0;;;::::1;;::::0;;7594:308:::1;;;7764:12;:36:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;7802:36:0;;;;;;;7764::::1;7802::::0;;::::1;;;-1:-1:-1::0;;7866:34:0;7840:24;;;::::1;;-1:-1:-1::0;;7866:34:0;;;;;::::1;::::0;;;::::1;;::::0;;7594:308:::1;7917:50;::::0;;9130:4:1;9118:17;;;9100:36;;9172:17;;;9167:2;9152:18;;9145:45;9226:17;;9206:18;;;9199:45;9287:14;;9280:22;9275:2;9260:18;;9253:50;7917::0;;::::1;::::0;;;;9087:3:1;7917:50:0;;::::1;7482:493;7375:600:::0;;;;:::o;14186:216::-;193:10;14279:4;14325:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14325:34:0;;;;;;;;;;14279:4;;14292:86;;14316:7;;14325:52;;14362:15;;14325:52;:::i;6833:331::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;6907:16:::1;::::0;;;::::1;;;6906:17;6898:55;;;::::0;-1:-1:-1;;;6898:55:0;;9516:2:1;6898:55:0::1;::::0;::::1;9498:21:1::0;9555:2;9535:18;;;9528:30;9594:27;9574:18;;;9567:55;9639:18;;6898:55:0::1;9314:349:1::0;6898:55:0::1;6964:20;6979:4;6964:14;:20::i;:::-;6991:19;7005:4;6991:13;:19::i;:::-;7019:16;:23:::0;;-1:-1:-1;;7019:23:0::1;::::0;::::1;::::0;;7070:12:::1;7049:18;:33:::0;;;7089:12:::1;:28:::0;;;7131:27:::1;::::0;::::1;::::0;::::1;::::0;1919:25:1;;;1907:2;1892:18;;1773:177;7985:158:0;8063:4;8076:43;193:10;8101:9;8112:6;8076:10;:43::i;7170:199::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;7256:16:::1;:29:::0;;-1:-1:-1;;;;;7256:29:0;;::::1;-1:-1:-1::0;;;;;;7256:29:0;;::::1;::::0;::::1;::::0;;;7296:10:::1;:17:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;7329:32:::1;::::0;;7930:34:1;;;7995:2;7980:18;;7973:43;;;;7329:32:0::1;::::0;7865:18:1;7329:32:0::1;;;;;;;7170:199:::0;;:::o;15586:88::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;15645:14:::1;:26:::0;;-1:-1:-1;;15645:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15586:88::o;10014:131::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;10082:25:::1;10094:12;10082:11;:25::i;:::-;10119:20;::::0;1919:25:1;;;10119:20:0::1;::::0;1907:2:1;1892:18;10119:20:0::1;1773:177:1::0;12090:320:0;-1:-1:-1;;;;;12180:19:0;;12172:68;;;;-1:-1:-1;;;12172:68:0;;9870:2:1;12172:68:0;;;9852:21:1;9909:2;9889:18;;;9882:30;9948:34;9928:18;;;9921:62;-1:-1:-1;;;9999:18:1;;;9992:34;10043:19;;12172:68:0;9668:400:1;12172:68:0;-1:-1:-1;;;;;12255:21:0;;12247:68;;;;-1:-1:-1;;;12247:68:0;;10275:2:1;12247:68:0;;;10257:21:1;10314:2;10294:18;;;10287:30;10353:34;10333:18;;;10326:62;-1:-1:-1;;;10404:18:1;;;10397:32;10446:19;;12247:68:0;10073:398:1;12247:68:0;-1:-1:-1;;;;;12324:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12372:32;;1919:25:1;;;12372:32:0;;1892:18:1;12372:32:0;;;;;;;12090:320;;;:::o;8738:751::-;-1:-1:-1;;;;;8841:20:0;;8833:69;;;;-1:-1:-1;;;8833:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8917:23:0;;8909:72;;;;-1:-1:-1;;;8909:72:0;;;;;;;:::i;:::-;9005:1;8996:6;:10;8988:55;;;;-1:-1:-1;;;8988:55:0;;11083:2:1;8988:55:0;;;11065:21:1;;;11102:18;;;11095:30;11161:34;11141:18;;;11134:62;11213:18;;8988:55:0;10881:356:1;8988:55:0;9056:16;;;;;;;9052:88;;-1:-1:-1;;;;;9085:34:0;;;;;;:26;:34;;;;;;;;9077:60;;;;-1:-1:-1;;;9077:60:0;;11444:2:1;9077:60:0;;;11426:21:1;11483:2;11463:18;;;11456:30;-1:-1:-1;;;11502:18:1;;;11495:43;11555:18;;9077:60:0;11242:337:1;9077:60:0;9149:14;;;;9146:58;;;9166:35;9183:6;9191:9;9166:16;:35::i;:::-;9212:15;9230:35;9247:6;9255:9;9230:16;:35::i;:::-;9212:53;-1:-1:-1;9272:17:0;9311:3;9292:16;9212:53;9292:6;:16;:::i;:::-;:22;;;;:::i;:::-;9272:42;-1:-1:-1;9321:22:0;9346:18;9272:42;9346:6;:18;:::i;:::-;9321:43;;9373:52;9388:6;9396:9;9407:6;9415:9;9373:14;:52::i;:::-;9456:9;-1:-1:-1;;;;;9439:43:0;9448:6;-1:-1:-1;;;;;9439:43:0;;9467:14;9439:43;;;;1919:25:1;;1907:2;1892:18;;1773:177;9439:43:0;;;;;;;;8826:663;;;8738:751;;;:::o;10153:1397::-;10299:8;;10266:51;;10284:4;;-1:-1:-1;;;;;10299:8:0;10310:6;10266:9;:51::i;:::-;10340:12;:22;;;;;;;;10324:13;;10340:22;;10408:32;;10417:23;10408:6;:32;:::i;:::-;:40;;;;:::i;:::-;10495:12;:17;10371:77;;-1:-1:-1;10455:28:0;;10515:5;;10486:26;;10495:17;;;;;10486:6;:26;:::i;:::-;:34;;;;:::i;:::-;10455:65;-1:-1:-1;10528:34:0;10455:65;10565:35;10574:26;10565:6;:35;:::i;:::-;:58;;;;:::i;:::-;10528:95;-1:-1:-1;10632:32:0;10667:30;10696:1;10667:26;:30;:::i;:::-;10632:65;-1:-1:-1;10632:65:0;10704:30;10849:20;10793:53;10820:26;10632:65;10793:53;:::i;:::-;:76;;;;:::i;:::-;10770:99;;10876:18;10897:30;10914:12;10897:16;:30::i;:::-;10876:51;-1:-1:-1;10940:31:0;11014:12;10974:37;10987:24;10876:51;10974:37;:::i;:::-;:52;;;;:::i;:::-;10940:86;-1:-1:-1;11033:32:0;11104:12;11068:33;11081:20;11068:10;:33;:::i;:::-;:48;;;;:::i;:::-;11033:83;-1:-1:-1;11123:30:0;11033:83;11156:36;11169:23;11156:10;:36;:::i;:::-;:62;;;;:::i;:::-;11235:16;;11227:58;;11123:95;;-1:-1:-1;;;;;;11235:16:0;;11227:58;;;;;11123:95;;11235:16;11227:58;11235:16;11227:58;11123:95;11235:16;11227:58;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11300:10:0;;11292:54;;-1:-1:-1;;;;;11300:10:0;;;;11292:54;;;;;11321:24;;11300:10;11292:54;11300:10;11292:54;11321:24;11300:10;11292:54;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11359:8:0;;11461:10;;11359:130;;-1:-1:-1;;;11359:130:0;;11424:4;11359:130;;;12147:34:1;12197:18;;;12190:34;;;11359:8:0;12240:18:1;;;12233:34;;;12283:18;;;12276:34;-1:-1:-1;;;;;11461:10:0;;;12326:19:1;;;12319:44;11473:15:0;12379:19:1;;;12372:35;11359:8:0;;;:24;;11391:23;;12081:19:1;;11359:130:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11359:130:0;;;;;;;;-1:-1:-1;;11359:130:0;;;;;;;;;;;;:::i;:::-;;;11355:145;;;;;;;11517:27;;1919:25:1;;;11517:27:0;;1907:2:1;1892:18;11517:27:0;;;;;;;10198:1352;;;;;;;;;;;10153:1397;:::o;9497:465::-;9578:35;9595:6;9603:9;9578:16;:35::i;:::-;9573:65;;9497:465;;:::o;9573:65::-;9697:4;9646:30;8548:18;;;:9;:18;;;;;;9740:19;;9714:45;;9710:247;;-1:-1:-1;9795:19:0;;14826:6;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;9879:71;;;;9905:35;9917:22;9905:11;:35::i;:::-;9761:196;9710:247;9566:396;9497:465;;:::o;12416:521::-;12531:13;;12498:7;;;;12531:13;;;;;:52;;;;-1:-1:-1;;;;;;12549:34:0;;;;;;:26;:34;;;;;;;;12548:35;12531:52;:94;;;;-1:-1:-1;;;;;;12588:37:0;;;;;;:26;:37;;;;;;;;12587:38;12531:94;12514:111;;12636:9;12632:285;;;14826:6;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;12656:254;;-1:-1:-1;;12708:12:0;:22;;;;;;12701:29;;12656:254;12762:17;:15;:17::i;:::-;12759:136;;;12806:2;12799:9;;;;;12759:136;-1:-1:-1;;12856:11:0;:21;;;;;;12849:28;;12759:136;-1:-1:-1;12930:1:0;;12416:521;-1:-1:-1;;;12416:521:0:o;11556:528::-;11722:22;11747;11760:9;11747:10;:22;:::i;:::-;-1:-1:-1;;;;;11802:17:0;;;;;;:9;:17;;;;;:31;;11722:47;;-1:-1:-1;11823:10:0;;11802:17;;;:31;;11823:10;;11802:31;:::i;:::-;;;;-1:-1:-1;;;;;;;11840:20:0;;;;;;:9;:20;;;;;:38;;11864:14;;11840:20;:38;;11864:14;;11840:38;:::i;:::-;;;;-1:-1:-1;;11938:4:0;11920:24;;;;:9;:24;;;;;:37;;11948:9;;11920:24;:37;;11948:9;;11920:37;:::i;:::-;;;;-1:-1:-1;;11995:13:0;;11992:83;;12024:42;;1919:25:1;;;12049:4:0;;-1:-1:-1;;;;;12024:42:0;;;;;1907:2:1;1892:18;12024:42:0;;;;;;;11992:83;11662:422;11556:528;;;;:::o;12945:420::-;13106:16;;;13120:1;13106:16;;;;;;;;13009:7;;13050:21;;13009:7;;13106:16;;;;;;;;;;;;-1:-1:-1;13106:16:0;13082:40;;13147:4;13129;13134:1;13129:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13129:23:0;;;:7;;;;;;;;;;:23;;;;13169:8;;:15;;;-1:-1:-1;;;13169:15:0;;;;:8;;;;;:13;;:15;;;;;13129:7;;13169:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13159:4;13164:1;13159:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13159:25:0;;;:7;;;;;;;;;:25;13191:8;;:113;;-1:-1:-1;;;13191:113:0;;:8;;;:59;;:113;;13251:11;;13191:8;;13267:4;;13281;;13288:15;;13191:113;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:14;13321:21;:38;;;;:::i;:::-;13314:45;12945:420;-1:-1:-1;;;;12945:420:0:o;13587:151::-;13678:4;13699:33;13714:6;13722:9;13699:14;:33::i;:::-;13698:34;;13587:151;-1:-1:-1;;;13587:151:0:o;13371:210::-;13451:4;;-1:-1:-1;;;;;13489:23:0;;13507:4;13489:23;:55;;;;-1:-1:-1;14826:6:0;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;13464:80;13371:210;-1:-1:-1;;;;13371:210:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1215:160::-;1280:20;;1336:13;;1329:21;1319:32;;1309:60;;1365:1;1362;1355:12;1309:60;1215:160;;;:::o;1380:180::-;1436:6;1489:2;1477:9;1468:7;1464:23;1460:32;1457:52;;;1505:1;1502;1495:12;1457:52;1528:26;1544:9;1528:26;:::i;:::-;1518:36;1380:180;-1:-1:-1;;;1380:180:1:o;1955:456::-;2032:6;2040;2048;2101:2;2089:9;2080:7;2076:23;2072:32;2069:52;;;2117:1;2114;2107:12;2069:52;2156:9;2143:23;2175:31;2200:5;2175:31;:::i;:::-;2225:5;-1:-1:-1;2282:2:1;2267:18;;2254:32;2295:33;2254:32;2295:33;:::i;:::-;1955:456;;2347:7;;-1:-1:-1;;;2401:2:1;2386:18;;;;2373:32;;1955:456::o;3029:247::-;3088:6;3141:2;3129:9;3120:7;3116:23;3112:32;3109:52;;;3157:1;3154;3147:12;3109:52;3196:9;3183:23;3215:31;3240:5;3215:31;:::i;3281:315::-;3346:6;3354;3407:2;3395:9;3386:7;3382:23;3378:32;3375:52;;;3423:1;3420;3413:12;3375:52;3462:9;3449:23;3481:31;3506:5;3481:31;:::i;:::-;3531:5;-1:-1:-1;3555:35:1;3586:2;3571:18;;3555:35;:::i;:::-;3545:45;;3281:315;;;;;:::o;3601:180::-;3660:6;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;-1:-1:-1;3752:23:1;;3601:180;-1:-1:-1;3601:180:1:o;3786:156::-;3852:20;;3912:4;3901:16;;3891:27;;3881:55;;3932:1;3929;3922:12;3947:391;4024:6;4032;4040;4048;4101:3;4089:9;4080:7;4076:23;4072:33;4069:53;;;4118:1;4115;4108:12;4069:53;4141:27;4158:9;4141:27;:::i;:::-;4131:37;;4187:36;4219:2;4208:9;4204:18;4187:36;:::i;:::-;4177:46;;4242:36;4274:2;4263:9;4259:18;4242:36;:::i;:::-;4232:46;;4297:35;4328:2;4317:9;4313:18;4297:35;:::i;:::-;4287:45;;3947:391;;;;;;;:::o;4343:388::-;4411:6;4419;4472:2;4460:9;4451:7;4447:23;4443:32;4440:52;;;4488:1;4485;4478:12;4440:52;4527:9;4514:23;4546:31;4571:5;4546:31;:::i;:::-;4596:5;-1:-1:-1;4653:2:1;4638:18;;4625:32;4666:33;4625:32;4666:33;:::i;:::-;4718:7;4708:17;;;4343:388;;;;;:::o;4736:356::-;4938:2;4920:21;;;4957:18;;;4950:30;5016:34;5011:2;4996:18;;4989:62;5083:2;5068:18;;4736:356::o;5097:127::-;5158:10;5153:3;5149:20;5146:1;5139:31;5189:4;5186:1;5179:15;5213:4;5210:1;5203:15;5229:422;5318:1;5361:5;5318:1;5375:270;5396:7;5386:8;5383:21;5375:270;;;5455:4;5451:1;5447:6;5443:17;5437:4;5434:27;5431:53;;;5464:18;;:::i;:::-;5514:7;5504:8;5500:22;5497:55;;;5534:16;;;;5497:55;5613:22;;;;5573:15;;;;5375:270;;;5379:3;5229:422;;;;;:::o;5656:806::-;5705:5;5735:8;5725:80;;-1:-1:-1;5776:1:1;5790:5;;5725:80;5824:4;5814:76;;-1:-1:-1;5861:1:1;5875:5;;5814:76;5906:4;5924:1;5919:59;;;;5992:1;5987:130;;;;5899:218;;5919:59;5949:1;5940:10;;5963:5;;;5987:130;6024:3;6014:8;6011:17;6008:43;;;6031:18;;:::i;:::-;-1:-1:-1;;6087:1:1;6073:16;;6102:5;;5899:218;;6201:2;6191:8;6188:16;6182:3;6176:4;6173:13;6169:36;6163:2;6153:8;6150:16;6145:2;6139:4;6136:12;6132:35;6129:77;6126:159;;;-1:-1:-1;6238:19:1;;;6270:5;;6126:159;6317:34;6342:8;6336:4;6317:34;:::i;:::-;6387:6;6383:1;6379:6;6375:19;6366:7;6363:32;6360:58;;;6398:18;;:::i;:::-;6436:20;;5656:806;-1:-1:-1;;;5656:806:1:o;6467:140::-;6525:5;6554:47;6595:4;6585:8;6581:19;6575:4;6554:47;:::i;6612:168::-;6685:9;;;6716;;6733:15;;;6727:22;;6713:37;6703:71;;6754:18;;:::i;6785:128::-;6852:9;;;6873:11;;;6870:37;;;6887:18;;:::i;6918:125::-;6983:9;;;7004:10;;;7001:36;;;7017:18;;:::i;7462:251::-;7532:6;7585:2;7573:9;7564:7;7560:23;7556:32;7553:52;;;7601:1;7598;7591:12;7553:52;7633:9;7627:16;7652:31;7677:5;7652:31;:::i;8388:148::-;8476:4;8455:12;;;8469;;;8451:31;;8494:13;;8491:39;;;8510:18;;:::i;10476:400::-;10678:2;10660:21;;;10717:2;10697:18;;;10690:30;10756:34;10751:2;10736:18;;10729:62;-1:-1:-1;;;10822:2:1;10807:18;;10800:34;10866:3;10851:19;;10476:400::o;11584:217::-;11624:1;11650;11640:132;;11694:10;11689:3;11685:20;11682:1;11675:31;11729:4;11726:1;11719:15;11757:4;11754:1;11747:15;11640:132;-1:-1:-1;11786:9:1;;11584:217::o;12418:306::-;12506:6;12514;12522;12575:2;12563:9;12554:7;12550:23;12546:32;12543:52;;;12591:1;12588;12581:12;12543:52;12620:9;12614:16;12604:26;;12670:2;12659:9;12655:18;12649:25;12639:35;;12714:2;12703:9;12699:18;12693:25;12683:35;;12418:306;;;;;:::o;12861:127::-;12922:10;12917:3;12913:20;12910:1;12903:31;12953:4;12950:1;12943:15;12977:4;12974:1;12967:15;12993:980;13255:4;13303:3;13292:9;13288:19;13334:6;13323:9;13316:25;13360:2;13398:6;13393:2;13382:9;13378:18;13371:34;13441:3;13436:2;13425:9;13421:18;13414:31;13465:6;13500;13494:13;13531:6;13523;13516:22;13569:3;13558:9;13554:19;13547:26;;13608:2;13600:6;13596:15;13582:29;;13629:1;13639:195;13653:6;13650:1;13647:13;13639:195;;;13718:13;;-1:-1:-1;;;;;13714:39:1;13702:52;;13809:15;;;;13774:12;;;;13750:1;13668:9;13639:195;;;-1:-1:-1;;;;;;;13890:32:1;;;;13885:2;13870:18;;13863:60;-1:-1:-1;;;13954:3:1;13939:19;13932:35;13851:3;12993:980;-1:-1:-1;;;12993:980:1:o

Swarm Source

ipfs://8d6a8638a76bbd781beaa0ba68f009b3312deaa25ba0608c5db808e931f9e237

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.