ETH Price: $3,395.73 (+0.89%)

Contract

0xfb682F531b243bcb76655069621b61F03a68385A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214357122024-12-19 9:36:238 days ago1734600983IN
0xfb682F53...03a68385A
0 ETH0.0002462510.12773868
Approve213273332024-12-04 6:26:2323 days ago1733293583IN
0xfb682F53...03a68385A
0 ETH0.0004598618.91297594
Approve213257262024-12-04 1:02:3523 days ago1733274155IN
0xfb682F53...03a68385A
0 ETH0.0015332632.92872777
Approve212848042024-11-28 7:47:5929 days ago1732780079IN
0xfb682F53...03a68385A
0 ETH0.000250389.53674406
Approve212848032024-11-28 7:47:4729 days ago1732780067IN
0xfb682F53...03a68385A
0 ETH0.000214158.82946437
Approve211163432024-11-04 19:21:5952 days ago1730748119IN
0xfb682F53...03a68385A
0 ETH0.000424539.12210663
Approve210622532024-10-28 6:10:2360 days ago1730095823IN
0xfb682F53...03a68385A
0 ETH0.00012785.26928349
Approve209731592024-10-15 19:49:5972 days ago1729021799IN
0xfb682F53...03a68385A
0 ETH0.0008086417.48388429
Approve209608012024-10-14 2:23:1174 days ago1728872591IN
0xfb682F53...03a68385A
0 ETH0.000386648.35966906
Approve209500062024-10-12 14:06:1175 days ago1728741971IN
0xfb682F53...03a68385A
0 ETH0.0004203117.28629909
Approve209461822024-10-12 1:14:5976 days ago1728695699IN
0xfb682F53...03a68385A
0 ETH0.0002818811.59297955
Approve209461802024-10-12 1:14:3576 days ago1728695675IN
0xfb682F53...03a68385A
0 ETH0.0002958712.16822553
Approve209434932024-10-11 16:13:1176 days ago1728663191IN
0xfb682F53...03a68385A
0 ETH0.0014086330.22886672
Approve209200612024-10-08 9:48:1180 days ago1728380891IN
0xfb682F53...03a68385A
0 ETH0.0005825212.50080147
Approve209195352024-10-08 8:02:3580 days ago1728374555IN
0xfb682F53...03a68385A
0 ETH0.0003168713.0318928
Approve209151942024-10-07 17:31:5980 days ago1728322319IN
0xfb682F53...03a68385A
0 ETH0.0016836136.12991657
Approve208766142024-10-02 8:27:3586 days ago1727857655IN
0xfb682F53...03a68385A
0 ETH0.000169116.42641714
Approve208766132024-10-02 8:27:2386 days ago1727857643IN
0xfb682F53...03a68385A
0 ETH0.000143965.92080474
Approve208392562024-09-27 3:25:3591 days ago1727407535IN
0xfb682F53...03a68385A
0 ETH0.0004313116.39039166
Approve208392552024-09-27 3:25:2391 days ago1727407523IN
0xfb682F53...03a68385A
0 ETH0.0003915216.10203819
Approve207843612024-09-19 11:32:1198 days ago1726745531IN
0xfb682F53...03a68385A
0 ETH0.0008643818.66477811
Approve207461472024-09-14 3:23:59104 days ago1726284239IN
0xfb682F53...03a68385A
0 ETH0.000084671.8184898
Approve207061932024-09-08 13:29:11109 days ago1725802151IN
0xfb682F53...03a68385A
0 ETH0.000071391.53340275
Approve206538102024-09-01 6:04:35117 days ago1725170675IN
0xfb682F53...03a68385A
0 ETH0.000047711.03157095
Approve204179982024-07-30 7:49:47150 days ago1722325787IN
0xfb682F53...03a68385A
0 ETH0.000232514.99616739
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
199649672024-05-28 1:05:23213 days ago1716858323
0xfb682F53...03a68385A
0.05743223 ETH
199649672024-05-28 1:05:23213 days ago1716858323
0xfb682F53...03a68385A
0.05743223 ETH
199649652024-05-28 1:04:59213 days ago1716858299
0xfb682F53...03a68385A
0.14342365 ETH
199649652024-05-28 1:04:59213 days ago1716858299
0xfb682F53...03a68385A
0.14342365 ETH
199649642024-05-28 1:04:47213 days ago1716858287
0xfb682F53...03a68385A
0.14015422 ETH
199649642024-05-28 1:04:47213 days ago1716858287
0xfb682F53...03a68385A
0.14015422 ETH
199649642024-05-28 1:04:47213 days ago1716858287
0xfb682F53...03a68385A
0.08595154 ETH
199649642024-05-28 1:04:47213 days ago1716858287
0xfb682F53...03a68385A
0.08595154 ETH
199649592024-05-28 1:03:47213 days ago1716858227
0xfb682F53...03a68385A
0.43791293 ETH
199649592024-05-28 1:03:47213 days ago1716858227
0xfb682F53...03a68385A
0.43791293 ETH
199649532024-05-28 1:02:11213 days ago1716858131
0xfb682F53...03a68385A
0.03403113 ETH
199649532024-05-28 1:02:11213 days ago1716858131
0xfb682F53...03a68385A
0.03403113 ETH
199649532024-05-28 1:02:11213 days ago1716858131
0xfb682F53...03a68385A
0.04266421 ETH
199649532024-05-28 1:02:11213 days ago1716858131
0xfb682F53...03a68385A
0.04266421 ETH
199649512024-05-28 1:01:47213 days ago1716858107
0xfb682F53...03a68385A
0.11515383 ETH
199649512024-05-28 1:01:47213 days ago1716858107
0xfb682F53...03a68385A
0.11515383 ETH
199647872024-05-28 0:28:59213 days ago1716856139
0xfb682F53...03a68385A
0.03676682 ETH
199647872024-05-28 0:28:59213 days ago1716856139
0xfb682F53...03a68385A
0.03676682 ETH
199647852024-05-28 0:28:35213 days ago1716856115
0xfb682F53...03a68385A
0.25052104 ETH
199647852024-05-28 0:28:35213 days ago1716856115
0xfb682F53...03a68385A
0.25052104 ETH
199647852024-05-28 0:28:35213 days ago1716856115
0xfb682F53...03a68385A
0.04565144 ETH
199647852024-05-28 0:28:35213 days ago1716856115
0xfb682F53...03a68385A
0.04565144 ETH
199647832024-05-28 0:27:59213 days ago1716856079
0xfb682F53...03a68385A
0.28433773 ETH
199647832024-05-28 0:27:59213 days ago1716856079
0xfb682F53...03a68385A
0.28433773 ETH
199647822024-05-28 0:27:47213 days ago1716856067
0xfb682F53...03a68385A
0.0437933 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
POPA

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-27
*/

// SPDX-License-Identifier: MIT

/*
POPA: The Blackest PEPE. Get in on the dopest, rarest crypto in the game! $POPA

https://t.me/PopaCoinETH
https://x.com/PopaCoinETH
https://popacoineth.com
*/

pragma solidity 0.8.23;

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

}

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

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

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

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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract POPA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;
    mapping (address => bool) public marketPair;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=250;
    uint256 private _initialSellTax=250;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _reduceBuyTaxAt=10;

    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=50;
    uint256 private _buyCount= 0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Popa";
    string private constant _symbol = unicode"POPA";
    uint256 public _maxTxAmount =   4206900000 * 10**_decimals;
    uint256 public _maxWalletSize = 4206900000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 42069000 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 public caBlock = 5;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caStop = true;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(1000);

            if (marketPair[from] && to != address(uniswapV2Router) && ! isExile[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (!marketPair[to] && ! isExile[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _initialSellTax).div(1000);
            }

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caStop && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < caBlock, "CA balance sell");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function rescueStuckETH() external onlyOwner {
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueStuckERC20Tokens(address _tokenAddr, uint _amount) external onlyOwner {
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

    function exileW_Restriction() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExile[address(uniswapV2Pair)] = true;
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"caBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caStop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exileW_Restriction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckETH","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":[{"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260fa60075560fa6008555f6009555f600a55600a600b55600a600c556032600d555f600e555f600f555f6010556009600a62000041919062000342565b620000519063fac0332062000359565b601155620000626009600a62000342565b620000729063fac0332062000359565b601255620000836009600a62000342565b6200009390630281ec0862000359565b601355620000a46009600a62000342565b620000b49063fac0332062000359565b60145560056017556018805462ffffff191662010000179055348015620000d9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200013a6009600a62000342565b6200014b906461f313f88062000359565b335f908152600160208190526040822092909255600390620001745f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601654909116835291208054909216179055620001d23390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020b6009600a62000342565b6200021c906461f313f88062000359565b60405190815260200160405180910390a362000373565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028757815f19048211156200026b576200026b62000233565b808516156200027957918102915b93841c93908002906200024c565b509250929050565b5f826200029f575060016200033c565b81620002ad57505f6200033c565b8160018114620002c65760028114620002d157620002f1565b60019150506200033c565b60ff841115620002e557620002e562000233565b50506001821b6200033c565b5060208310610133831016604e8410600b841016171562000316575081810a6200033c565b62000322838362000247565b805f190482111562000338576200033862000233565b0290505b92915050565b5f6200035260ff8416836200028f565b9392505050565b80820281158282048414176200033c576200033c62000233565b611b0e80620003815f395ff3fe60806040526004361061013f575f3560e01c8063715018a6116100b357806395d89b411161006d57806395d89b411461035f578063a9059cbb1461038b578063bf474bed146103aa578063dd62ed3e146103bf578063dfeba6d114610403578063f5b3c3bf14610422575f80fd5b8063715018a6146102dc5780637d1db4a5146102f05780638a8c523c146103055780638d95af9d146103195780638da5cb5b1461032e5780638f9a55c01461034a575f80fd5b806323b872dd1161010457806323b872dd146102045780632c65469e14610223578063313ce567146102425780634381c3fa1461025d57806349bd5a5e1461027157806370a08231146102a8575f80fd5b80630150fe4c1461014a57806306fdde0314610160578063095ea7b31461019e5780630faee56f146101cd57806318160ddd146101f0575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e610450565b005b34801561016b575f80fd5b50604080518082019091526004815263506f706160e01b60208201525b6040516101959190611701565b60405180910390f35b3480156101a9575f80fd5b506101bd6101b8366004611761565b6104bb565b6040519015158152602001610195565b3480156101d8575f80fd5b506101e260145481565b604051908152602001610195565b3480156101fb575f80fd5b506101e26104d1565b34801561020f575f80fd5b506101bd61021e36600461178b565b6104f2565b34801561022e575f80fd5b5061015e61023d366004611761565b610559565b34801561024d575f80fd5b5060405160098152602001610195565b348015610268575f80fd5b5061015e6105fb565b34801561027c575f80fd5b50601654610290906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b3480156102b3575f80fd5b506101e26102c23660046117c9565b6001600160a01b03165f9081526001602052604090205490565b3480156102e7575f80fd5b5061015e6106af565b3480156102fb575f80fd5b506101e260115481565b348015610310575f80fd5b5061015e610720565b348015610324575f80fd5b506101e260175481565b348015610339575f80fd5b505f546001600160a01b0316610290565b348015610355575f80fd5b506101e260125481565b34801561036a575f80fd5b50604080518082019091526004815263504f504160e01b6020820152610188565b348015610396575f80fd5b506101bd6103a5366004611761565b610b10565b3480156103b5575f80fd5b506101e260135481565b3480156103ca575f80fd5b506101e26103d93660046117e4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040e575f80fd5b506018546101bd9062010000900460ff1681565b34801561042d575f80fd5b506101bd61043c3660046117c9565b60046020525f908152604090205460ff1681565b5f546001600160a01b031633146104825760405162461bcd60e51b81526004016104799061181b565b60405180910390fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156104b8573d5f803e3d5ffd5b50565b5f6104c7338484610b1c565b5060015b92915050565b5f6104de6009600a611944565b6104ed906461f313f880611952565b905090565b5f6104fe848484610c3f565b61054f843361054a85604051806060016040528060288152602001611ab1602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611382565b610b1c565b5060019392505050565b5f546001600160a01b031633146105825760405162461bcd60e51b81526004016104799061181b565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156105d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f69190611969565b505050565b5f546001600160a01b031633146106245760405162461bcd60e51b81526004016104799061181b565b6106306009600a611944565b61063f906461f313f880611952565b60115561064e6009600a611944565b61065d906461f313f880611952565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a611944565b61069c906461f313f880611952565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106d85760405162461bcd60e51b81526004016104799061181b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107495760405162461bcd60e51b81526004016104799061181b565b601654600160a01b900460ff16156107a35760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610479565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107ed9030906107de6009600a611944565b61054a906461f313f880611952565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108619190611988565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e49190611988565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190611988565b601680546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556015541663f305d71947306109d0816001600160a01b03165f9081526001602052604090205490565b5f806109e35f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a49573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a6e91906119a3565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ac3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae79190611969565b506018805461ff0019166101001790556016805460ff60a01b1916600160a01b17905543600655565b5f6104c7338484610c3f565b6001600160a01b038316610b7e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610479565b6001600160a01b038216610bdf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610479565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ca35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610479565b6001600160a01b038216610d055760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610479565b5f8111610d665760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610479565b5f80546001600160a01b03858116911614801590610d9157505f546001600160a01b03848116911614155b1561124557610dc36103e8610dbd600b54600e5411610db257600754610db6565b6009545b85906113ba565b9061143f565b6001600160a01b0385165f9081526004602052604090205490915060ff168015610dfb57506015546001600160a01b03848116911614155b8015610e1f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f2657601154821115610e765760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610479565b60125482610e98856001600160a01b03165f9081526001602052604090205490565b610ea291906119ce565b1115610ef05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610479565b436006546003610f0091906119ce565b1115610f1157823b15610f11575f80fd5b600e8054905f610f20836119e1565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16158015610f6657506001600160a01b0383165f9081526003602052604090205460ff16155b15610fe55760125482610f8d856001600160a01b03165f9081526001602052604090205490565b610f9791906119ce565b1115610fe55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610479565b6001600160a01b0383165f9081526004602052604090205460ff16801561101557506001600160a01b0384163014155b15611043576110406103e8610dbd600c54600e541161103657600854610db6565b600a5485906113ba565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561108357506001600160a01b0383165f9081526004602052604090205460ff16155b801561109857506001600160a01b0384163014155b156110a057505f5b305f9081526001602052604090205460185462010000900460ff1680156110ca575060185460ff16155b80156110ed57506001600160a01b0384165f9081526004602052604090205460ff165b80156111005750601854610100900460ff165b801561110d575060135481115b801561111c5750600d54600e54115b156111c057601054431115611130575f600f555b601754600f54106111755760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b6044820152606401610479565b61119261118d8461118884601454611480565b611480565b611494565b4780156111a2576111a2476115fb565b600f8054905f6111b1836119e1565b90915550504360105550611243565b60185460ff161580156111ea57506001600160a01b0384165f9081526004602052604090205460ff165b80156111fd5750601854610100900460ff165b801561120a575060135481115b80156112195750600d54600e54115b156112435761123161118d8461118884601454611480565b47801561124157611241476115fb565b505b505b80156112bd57305f908152600160205260409020546112649082611636565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112b49085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112df9083611694565b6001600160a01b0385165f908152600160205260409020556113226113048383611694565b6001600160a01b0385165f9081526001602052604090205490611636565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61136b8585611694565b60405190815260200160405180910390a350505050565b5f81848411156113a55760405162461bcd60e51b81526004016104799190611701565b505f6113b184866119f9565b95945050505050565b5f825f036113c957505f6104cb565b5f6113d48385611952565b9050826113e18583611a0c565b146114385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610479565b9392505050565b5f61143883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116d5565b5f81831161148e5782611438565b50919050565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114d4576114d4611a2b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561152b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154f9190611988565b8160018151811061156257611562611a2b565b6001600160a01b0392831660209182029290920101526015546115889130911684610b1c565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115c09085905f90869030904290600401611a3f565b5f604051808303815f87803b1580156115d7575f80fd5b505af11580156115e9573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611632573d5f803e3d5ffd5b5050565b5f8061164283856119ce565b9050838110156114385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610479565b5f61143883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611382565b5f81836116f55760405162461bcd60e51b81526004016104799190611701565b505f6113b18486611a0c565b5f602080835283518060208501525f5b8181101561172d57858101830151858201604001528201611711565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104b8575f80fd5b5f8060408385031215611772575f80fd5b823561177d8161174d565b946020939093013593505050565b5f805f6060848603121561179d575f80fd5b83356117a88161174d565b925060208401356117b88161174d565b929592945050506040919091013590565b5f602082840312156117d9575f80fd5b81356114388161174d565b5f80604083850312156117f5575f80fd5b82356118008161174d565b915060208301356118108161174d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561189e57815f190482111561188457611884611850565b8085161561189157918102915b93841c9390800290611869565b509250929050565b5f826118b4575060016104cb565b816118c057505f6104cb565b81600181146118d657600281146118e0576118fc565b60019150506104cb565b60ff8411156118f1576118f1611850565b50506001821b6104cb565b5060208310610133831016604e8410600b841016171561191f575081810a6104cb565b6119298383611864565b805f190482111561193c5761193c611850565b029392505050565b5f61143860ff8416836118a6565b80820281158282048414176104cb576104cb611850565b5f60208284031215611979575f80fd5b81518015158114611438575f80fd5b5f60208284031215611998575f80fd5b81516114388161174d565b5f805f606084860312156119b5575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104cb576104cb611850565b5f600182016119f2576119f2611850565b5060010190565b818103818111156104cb576104cb611850565b5f82611a2657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a8f5784516001600160a01b031683529383019391830191600101611a6a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202deae7e91b301a63c1c90a3ed76bd388f2a606a9d86477526742508fc6a6264564736f6c63430008170033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063715018a6116100b357806395d89b411161006d57806395d89b411461035f578063a9059cbb1461038b578063bf474bed146103aa578063dd62ed3e146103bf578063dfeba6d114610403578063f5b3c3bf14610422575f80fd5b8063715018a6146102dc5780637d1db4a5146102f05780638a8c523c146103055780638d95af9d146103195780638da5cb5b1461032e5780638f9a55c01461034a575f80fd5b806323b872dd1161010457806323b872dd146102045780632c65469e14610223578063313ce567146102425780634381c3fa1461025d57806349bd5a5e1461027157806370a08231146102a8575f80fd5b80630150fe4c1461014a57806306fdde0314610160578063095ea7b31461019e5780630faee56f146101cd57806318160ddd146101f0575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e610450565b005b34801561016b575f80fd5b50604080518082019091526004815263506f706160e01b60208201525b6040516101959190611701565b60405180910390f35b3480156101a9575f80fd5b506101bd6101b8366004611761565b6104bb565b6040519015158152602001610195565b3480156101d8575f80fd5b506101e260145481565b604051908152602001610195565b3480156101fb575f80fd5b506101e26104d1565b34801561020f575f80fd5b506101bd61021e36600461178b565b6104f2565b34801561022e575f80fd5b5061015e61023d366004611761565b610559565b34801561024d575f80fd5b5060405160098152602001610195565b348015610268575f80fd5b5061015e6105fb565b34801561027c575f80fd5b50601654610290906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b3480156102b3575f80fd5b506101e26102c23660046117c9565b6001600160a01b03165f9081526001602052604090205490565b3480156102e7575f80fd5b5061015e6106af565b3480156102fb575f80fd5b506101e260115481565b348015610310575f80fd5b5061015e610720565b348015610324575f80fd5b506101e260175481565b348015610339575f80fd5b505f546001600160a01b0316610290565b348015610355575f80fd5b506101e260125481565b34801561036a575f80fd5b50604080518082019091526004815263504f504160e01b6020820152610188565b348015610396575f80fd5b506101bd6103a5366004611761565b610b10565b3480156103b5575f80fd5b506101e260135481565b3480156103ca575f80fd5b506101e26103d93660046117e4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040e575f80fd5b506018546101bd9062010000900460ff1681565b34801561042d575f80fd5b506101bd61043c3660046117c9565b60046020525f908152604090205460ff1681565b5f546001600160a01b031633146104825760405162461bcd60e51b81526004016104799061181b565b60405180910390fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156104b8573d5f803e3d5ffd5b50565b5f6104c7338484610b1c565b5060015b92915050565b5f6104de6009600a611944565b6104ed906461f313f880611952565b905090565b5f6104fe848484610c3f565b61054f843361054a85604051806060016040528060288152602001611ab1602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611382565b610b1c565b5060019392505050565b5f546001600160a01b031633146105825760405162461bcd60e51b81526004016104799061181b565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156105d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f69190611969565b505050565b5f546001600160a01b031633146106245760405162461bcd60e51b81526004016104799061181b565b6106306009600a611944565b61063f906461f313f880611952565b60115561064e6009600a611944565b61065d906461f313f880611952565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a611944565b61069c906461f313f880611952565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106d85760405162461bcd60e51b81526004016104799061181b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107495760405162461bcd60e51b81526004016104799061181b565b601654600160a01b900460ff16156107a35760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610479565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107ed9030906107de6009600a611944565b61054a906461f313f880611952565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108619190611988565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e49190611988565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190611988565b601680546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556015541663f305d71947306109d0816001600160a01b03165f9081526001602052604090205490565b5f806109e35f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a49573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a6e91906119a3565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ac3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae79190611969565b506018805461ff0019166101001790556016805460ff60a01b1916600160a01b17905543600655565b5f6104c7338484610c3f565b6001600160a01b038316610b7e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610479565b6001600160a01b038216610bdf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610479565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ca35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610479565b6001600160a01b038216610d055760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610479565b5f8111610d665760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610479565b5f80546001600160a01b03858116911614801590610d9157505f546001600160a01b03848116911614155b1561124557610dc36103e8610dbd600b54600e5411610db257600754610db6565b6009545b85906113ba565b9061143f565b6001600160a01b0385165f9081526004602052604090205490915060ff168015610dfb57506015546001600160a01b03848116911614155b8015610e1f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f2657601154821115610e765760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610479565b60125482610e98856001600160a01b03165f9081526001602052604090205490565b610ea291906119ce565b1115610ef05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610479565b436006546003610f0091906119ce565b1115610f1157823b15610f11575f80fd5b600e8054905f610f20836119e1565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16158015610f6657506001600160a01b0383165f9081526003602052604090205460ff16155b15610fe55760125482610f8d856001600160a01b03165f9081526001602052604090205490565b610f9791906119ce565b1115610fe55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610479565b6001600160a01b0383165f9081526004602052604090205460ff16801561101557506001600160a01b0384163014155b15611043576110406103e8610dbd600c54600e541161103657600854610db6565b600a5485906113ba565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561108357506001600160a01b0383165f9081526004602052604090205460ff16155b801561109857506001600160a01b0384163014155b156110a057505f5b305f9081526001602052604090205460185462010000900460ff1680156110ca575060185460ff16155b80156110ed57506001600160a01b0384165f9081526004602052604090205460ff165b80156111005750601854610100900460ff165b801561110d575060135481115b801561111c5750600d54600e54115b156111c057601054431115611130575f600f555b601754600f54106111755760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b6044820152606401610479565b61119261118d8461118884601454611480565b611480565b611494565b4780156111a2576111a2476115fb565b600f8054905f6111b1836119e1565b90915550504360105550611243565b60185460ff161580156111ea57506001600160a01b0384165f9081526004602052604090205460ff165b80156111fd5750601854610100900460ff165b801561120a575060135481115b80156112195750600d54600e54115b156112435761123161118d8461118884601454611480565b47801561124157611241476115fb565b505b505b80156112bd57305f908152600160205260409020546112649082611636565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112b49085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112df9083611694565b6001600160a01b0385165f908152600160205260409020556113226113048383611694565b6001600160a01b0385165f9081526001602052604090205490611636565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61136b8585611694565b60405190815260200160405180910390a350505050565b5f81848411156113a55760405162461bcd60e51b81526004016104799190611701565b505f6113b184866119f9565b95945050505050565b5f825f036113c957505f6104cb565b5f6113d48385611952565b9050826113e18583611a0c565b146114385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610479565b9392505050565b5f61143883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116d5565b5f81831161148e5782611438565b50919050565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114d4576114d4611a2b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561152b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154f9190611988565b8160018151811061156257611562611a2b565b6001600160a01b0392831660209182029290920101526015546115889130911684610b1c565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115c09085905f90869030904290600401611a3f565b5f604051808303815f87803b1580156115d7575f80fd5b505af11580156115e9573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611632573d5f803e3d5ffd5b5050565b5f8061164283856119ce565b9050838110156114385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610479565b5f61143883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611382565b5f81836116f55760405162461bcd60e51b81526004016104799190611701565b505f6113b18486611a0c565b5f602080835283518060208501525f5b8181101561172d57858101830151858201604001528201611711565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104b8575f80fd5b5f8060408385031215611772575f80fd5b823561177d8161174d565b946020939093013593505050565b5f805f6060848603121561179d575f80fd5b83356117a88161174d565b925060208401356117b88161174d565b929592945050506040919091013590565b5f602082840312156117d9575f80fd5b81356114388161174d565b5f80604083850312156117f5575f80fd5b82356118008161174d565b915060208301356118108161174d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561189e57815f190482111561188457611884611850565b8085161561189157918102915b93841c9390800290611869565b509250929050565b5f826118b4575060016104cb565b816118c057505f6104cb565b81600181146118d657600281146118e0576118fc565b60019150506104cb565b60ff8411156118f1576118f1611850565b50506001821b6104cb565b5060208310610133831016604e8410600b841016171561191f575081810a6104cb565b6119298383611864565b805f190482111561193c5761193c611850565b029392505050565b5f61143860ff8416836118a6565b80820281158282048414176104cb576104cb611850565b5f60208284031215611979575f80fd5b81518015158114611438575f80fd5b5f60208284031215611998575f80fd5b81516114388161174d565b5f805f606084860312156119b5575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104cb576104cb611850565b5f600182016119f2576119f2611850565b5060010190565b818103818111156104cb576104cb611850565b5f82611a2657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a8f5784516001600160a01b031683529383019391830191600101611a6a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202deae7e91b301a63c1c90a3ed76bd388f2a606a9d86477526742508fc6a6264564736f6c63430008170033

Deployed Bytecode Sourcemap

3642:8821:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11057:115;;;;;;;;;;;;;:::i;:::-;;5615:83;;;;;;;;;;-1:-1:-1;5685:5:0;;;;;;;;;;;;-1:-1:-1;;;5685:5:0;;;;5615:83;;;;;;;:::i;:::-;;;;;;;;6448:161;;;;;;;;;;-1:-1:-1;6448:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6448:161:0;1023:187:1;4835:54:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4835:54:0;1215:177:1;5892:95:0;;;;;;;;;;;;;:::i;6617:313::-;;;;;;;;;;-1:-1:-1;6617:313:0;;;;;:::i;:::-;;:::i;11180:152::-;;;;;;;;;;-1:-1:-1;11180:152:0;;;;;:::i;:::-;;:::i;5801:83::-;;;;;;;;;;-1:-1:-1;5801:83:0;;4456:1;2000:36:1;;1988:2;1973:18;5801:83:0;1858:184:1;11340:165:0;;;;;;;;;;;;;:::i;4947:28::-;;;;;;;;;;-1:-1:-1;4947:28:0;;;;-1:-1:-1;;;;;4947:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;4947:28:0;2047:203:1;5995:119:0;;;;;;;;;;-1:-1:-1;5995:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6088:18:0;6061:7;6088:18;;;:9;:18;;;;;;;5995:119;2725:148;;;;;;;;;;;;;:::i;4640:58::-;;;;;;;;;;;;;;;;11613:810;;;;;;;;;;;;;:::i;5013:26::-;;;;;;;;;;;;;;;;2511:79;;;;;;;;;;-1:-1:-1;2549:7:0;2576:6;-1:-1:-1;;;;;2576:6:0;2511:79;;4705:58;;;;;;;;;;;;;;;;5706:87;;;;;;;;;;-1:-1:-1;5778:7:0;;;;;;;;;;;;-1:-1:-1;;;5778:7:0;;;;5706:87;;6122:167;;;;;;;;;;-1:-1:-1;6122:167:0;;;;;:::i;:::-;;:::i;4770:58::-;;;;;;;;;;;;;;;;6297:143;;;;;;;;;;-1:-1:-1;6297:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6405:18:0;;;6378:7;6405:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6297:143;5119:25;;;;;;;;;;-1:-1:-1;5119:25:0;;;;;;;;;;;3901:43;;;;;;;;;;-1:-1:-1;3901:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11057:115;2638:6;;-1:-1:-1;;;;;2638:6:0;346:10;2638:22;2630:67;;;;-1:-1:-1;;;2630:67:0;;;;;;;:::i;:::-;;;;;;;;;11121:10:::1;::::0;11113:51:::1;::::0;-1:-1:-1;;;;;11121:10:0;;::::1;::::0;11142:21:::1;11113:51:::0;::::1;;;::::0;11121:10:::1;11113:51:::0;11121:10;11113:51;11142:21;11121:10;11113:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11057:115::o:0;6448:161::-;6523:4;6540:39;346:10;6563:7;6572:6;6540:8;:39::i;:::-;-1:-1:-1;6597:4:0;6448:161;;;;;:::o;5892:95::-;5945:7;4514:13;4456:1;4514:2;:13;:::i;:::-;4499:28;;:12;:28;:::i;:::-;5965:14;;5892:95;:::o;6617:313::-;6715:4;6732:36;6742:6;6750:9;6761:6;6732:9;:36::i;:::-;6779:121;6788:6;346:10;6810:89;6848:6;6810:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6810:19:0;;;;;;:11;:19;;;;;;;;346:10;6810:33;;;;;;;;;;:37;:89::i;:::-;6779:8;:121::i;:::-;-1:-1:-1;6918:4:0;6617:313;;;;;:::o;11180:152::-;2638:6;;-1:-1:-1;;;;;2638:6:0;346:10;2638:22;2630:67;;;;-1:-1:-1;;;2630:67:0;;;;;;;:::i;:::-;11304:10:::1;::::0;11276:48:::1;::::0;-1:-1:-1;;;11276:48:0;;-1:-1:-1;;;;;11304:10:0;;::::1;11276:48;::::0;::::1;5125:51:1::0;5192:18;;;5185:34;;;11276:27:0;;::::1;::::0;::::1;::::0;5098:18:1;;11276:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11180:152:::0;;:::o;11340:165::-;2638:6;;-1:-1:-1;;;;;2638:6:0;346:10;2638:22;2630:67;;;;-1:-1:-1;;;2630:67:0;;;;;;;:::i;:::-;4514:13:::1;4456:1;4514:2;:13;:::i;:::-;4499:28;::::0;:12:::1;:28;:::i;:::-;11399:12;:22:::0;4514:13:::1;4456:1;4514:2;:13;:::i;:::-;4499:28;::::0;:12:::1;:28;:::i;:::-;11432:14;:22:::0;11470:27:::1;4514:13;4456:1;4514:2;:13;:::i;:::-;4499:28;::::0;:12:::1;:28;:::i;:::-;11470:27;::::0;1361:25:1;;;1349:2;1334:18;11470:27:0::1;;;;;;;11340:165::o:0;2725:148::-;2638:6;;-1:-1:-1;;;;;2638:6:0;346:10;2638:22;2630:67;;;;-1:-1:-1;;;2630:67:0;;;;;;;:::i;:::-;2832:1:::1;2816:6:::0;;2795:40:::1;::::0;-1:-1:-1;;;;;2816:6:0;;::::1;::::0;2795:40:::1;::::0;2832:1;;2795:40:::1;2863:1;2846:19:::0;;-1:-1:-1;;;;;;2846:19:0::1;::::0;;2725:148::o;11613:810::-;2638:6;;-1:-1:-1;;;;;2638:6:0;346:10;2638:22;2630:67;;;;-1:-1:-1;;;2630:67:0;;;;;;;:::i;:::-;11679:11:::1;::::0;-1:-1:-1;;;11679:11:0;::::1;;;11678:12;11670:47;;;::::0;-1:-1:-1;;;11670:47:0;;5714:2:1;11670:47:0::1;::::0;::::1;5696:21:1::0;5753:2;5733:18;;;5726:30;5792:25;5772:18;;;5765:53;5835:18;;11670:47:0::1;5512:347:1::0;11670:47:0::1;11728:15;:80:::0;;-1:-1:-1;;;;;;11728:80:0::1;11765:42;11728:80:::0;;::::1;::::0;;;11819:58:::1;::::0;11836:4:::1;::::0;4514:13:::1;4456:1;4514:2;:13;:::i;:::-;4499:28;::::0;:12:::1;:28;:::i;11819:58::-;11922:15;;;;;;;;;-1:-1:-1::0;;;;;11922:15:0::1;-1:-1:-1::0;;;;;11922:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11904:55:0::1;;11968:4;11975:15;;;;;;;;;-1:-1:-1::0;;;;;11975:15:0::1;-1:-1:-1::0;;;;;11975:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11904:94;::::0;-1:-1:-1;;;;;;11904:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6350:15:1;;;11904:94:0::1;::::0;::::1;6332:34:1::0;6402:15;;6382:18;;;6375:43;6267:18;;11904:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11888:13;:110:::0;;-1:-1:-1;;;;;11888:110:0;;::::1;-1:-1:-1::0;;;;;;11888:110:0;;::::1;::::0;::::1;::::0;;:13:::1;12009:34:::0;;;:10:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;12009:41:0;;::::1;11888:110:::0;12009:41;;::::1;::::0;;;12077:13;;;::::1;12061:31:::0;;:7:::1;:31:::0;;;;;;:38;;;;::::1;;::::0;;12110:15:::1;::::0;::::1;:31;12149:21;12180:4;12186:24;12180:4:::0;-1:-1:-1;;;;;6088:18:0;6061:7;6088:18;;;:9;:18;;;;;;;5995:119;12186:24:::1;12211:1;12213::::0;12215:7:::1;2549::::0;2576:6;-1:-1:-1;;;;;2576:6:0;;2511:79;12215:7:::1;12110:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12110:129:0;;;-1:-1:-1;;;;;6788:15:1;;;12110:129:0::1;::::0;::::1;6770:34:1::0;6820:18;;;6813:34;;;;6863:18;;;6856:34;;;;6906:18;;;6899:34;6970:15;;;6949:19;;;6942:44;12223:15:0::1;7002:19:1::0;;;6995:35;6704:19;;12110:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12257:13:0::1;::::0;12288:15:::1;::::0;12250:71:::1;::::0;-1:-1:-1;;;12250:71:0;;-1:-1:-1;;;;;12288:15:0;;::::1;12250:71;::::0;::::1;5125:51:1::0;-1:-1:-1;;5192:18:1;;;5185:34;12257:13:0;::::1;::::0;-1:-1:-1;12250:29:0::1;::::0;5098:18:1;;12250:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12332:11:0::1;:18:::0;;-1:-1:-1;;12332:18:0::1;;;::::0;;12361:11:::1;:18:::0;;-1:-1:-1;;;;12361:18:0::1;-1:-1:-1::0;;;12361:18:0::1;::::0;;12403:12:::1;12390:10;:25:::0;11613:810::o;6122:167::-;6200:4;6217:42;346:10;6241:9;6252:6;6217:9;:42::i;6938:335::-;-1:-1:-1;;;;;7031:19:0;;7023:68;;;;-1:-1:-1;;;7023:68:0;;7833:2:1;7023:68:0;;;7815:21:1;7872:2;7852:18;;;7845:30;7911:34;7891:18;;;7884:62;-1:-1:-1;;;7962:18:1;;;7955:34;8006:19;;7023:68:0;7631:400:1;7023:68:0;-1:-1:-1;;;;;7110:21:0;;7102:68;;;;-1:-1:-1;;;7102:68:0;;8238:2:1;7102:68:0;;;8220:21:1;8277:2;8257:18;;;8250:30;8316:34;8296:18;;;8289:62;-1:-1:-1;;;8367:18:1;;;8360:32;8409:19;;7102:68:0;8036:398:1;7102:68:0;-1:-1:-1;;;;;7181:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7233:32;;1361:25:1;;;7233:32:0;;1334:18:1;7233:32:0;;;;;;;6938:335;;;:::o;7281:2966::-;-1:-1:-1;;;;;7369:18:0;;7361:68;;;;-1:-1:-1;;;7361:68:0;;8641:2:1;7361:68:0;;;8623:21:1;8680:2;8660:18;;;8653:30;8719:34;8699:18;;;8692:62;-1:-1:-1;;;8770:18:1;;;8763:35;8815:19;;7361:68:0;8439:401:1;7361:68:0;-1:-1:-1;;;;;7448:16:0;;7440:64;;;;-1:-1:-1;;;7440:64:0;;9047:2:1;7440:64:0;;;9029:21:1;9086:2;9066:18;;;9059:30;9125:34;9105:18;;;9098:62;-1:-1:-1;;;9176:18:1;;;9169:33;9219:19;;7440:64:0;8845:399:1;7440:64:0;7532:1;7523:6;:10;7515:64;;;;-1:-1:-1;;;7515:64:0;;9451:2:1;7515:64:0;;;9433:21:1;9490:2;9470:18;;;9463:30;9529:34;9509:18;;;9502:62;-1:-1:-1;;;9580:18:1;;;9573:39;9629:19;;7515:64:0;9249:405:1;7515:64:0;7590:17;2576:6;;-1:-1:-1;;;;;7626:15:0;;;2576:6;;7626:15;;;;:32;;-1:-1:-1;2549:7:0;2576:6;-1:-1:-1;;;;;7645:13:0;;;2576:6;;7645:13;;7626:32;7622:2269;;;7687:80;7762:4;7687:70;7710:15;;7699:9;;:26;7698:58;;7742:14;;7698:58;;;7728:12;;7698:58;7687:6;;:10;:70::i;:::-;:74;;:80::i;:::-;-1:-1:-1;;;;;7788:16:0;;;;;;:10;:16;;;;;;7675:92;;-1:-1:-1;7788:16:0;;:50;;;;-1:-1:-1;7822:15:0;;-1:-1:-1;;;;;7808:30:0;;;7822:15;;7808:30;;7788:50;:67;;;;-1:-1:-1;;;;;;7844:11:0;;;;;;:7;:11;;;;;;;;7842:13;7788:67;7784:420;;;7895:12;;7885:6;:22;;7877:60;;;;-1:-1:-1;;;7877:60:0;;9861:2:1;7877:60:0;;;9843:21:1;9900:2;9880:18;;;9873:30;9939:27;9919:18;;;9912:55;9984:18;;7877:60:0;9659:349:1;7877:60:0;7990:14;;7980:6;7964:13;7974:2;-1:-1:-1;;;;;6088:18:0;6061:7;6088:18;;;:9;:18;;;;;;;5995:119;7964:13;:22;;;;:::i;:::-;:40;;7956:79;;;;-1:-1:-1;;;7956:79:0;;10345:2:1;7956:79:0;;;10327:21:1;10384:2;10364:18;;;10357:30;10423:28;10403:18;;;10396:56;10469:18;;7956:79:0;10143:350:1;7956:79:0;8078:12;8060:10;;8073:1;8060:14;;;;:::i;:::-;:30;8056:103;;;10494:20;;10542:8;8115:24;;;;;;8177:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7784:420;-1:-1:-1;;;;;8225:14:0;;;;;;:10;:14;;;;;;;;8224:15;:32;;;;-1:-1:-1;;;;;;8245:11:0;;;;;;:7;:11;;;;;;;;8243:13;8224:32;8220:152;;;8311:14;;8301:6;8285:13;8295:2;-1:-1:-1;;;;;6088:18:0;6061:7;6088:18;;;:9;:18;;;;;;;5995:119;8285:13;:22;;;;:::i;:::-;:40;;8277:79;;;;-1:-1:-1;;;8277:79:0;;10345:2:1;8277:79:0;;;10327:21:1;10384:2;10364:18;;;10357:30;10423:28;10403:18;;;10396:56;10469:18;;8277:79:0;10143:350:1;8277:79:0;-1:-1:-1;;;;;8391:14:0;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;;;;;;8409:20:0;;8424:4;8409:20;;8391:38;8388:173;;;8462:83;8540:4;8462:73;8485:16;;8474:9;;:27;8473:61;;8519:15;;8473:61;;;8504:13;;8462:6;;:10;:73::i;:83::-;8450:95;;8388:173;-1:-1:-1;;;;;8575:16:0;;;;;;:10;:16;;;;;;;;8574:17;:36;;;;-1:-1:-1;;;;;;8596:14:0;;;;;;:10;:14;;;;;;;;8595:15;8574:36;:60;;;;-1:-1:-1;;;;;;8614:20:0;;8629:4;8614:20;;8574:60;8570:115;;;-1:-1:-1;8668:1:0;8570:115;8750:4;8701:28;6088:18;;;:9;:18;;;;;;8775:6;;;;;;;:17;;;;-1:-1:-1;8786:6:0;;;;8785:7;8775:17;:35;;;;-1:-1:-1;;;;;;8796:14:0;;;;;;:10;:14;;;;;;;;8775:35;:50;;;;-1:-1:-1;8814:11:0;;;;;;;8775:50;:92;;;;;8850:17;;8829:20;:38;8775:92;:124;;;;;8881:18;;8871:9;;:28;8775:124;8771:1109;;;8939:13;;8924:12;:28;8920:90;;;8989:1;8977:9;:13;8920:90;9048:7;;9036:9;;:19;9028:47;;;;-1:-1:-1;;;9028:47:0;;10840:2:1;9028:47:0;;;10822:21:1;10879:2;10859:18;;;10852:30;-1:-1:-1;;;10898:18:1;;;10891:45;10953:18;;9028:47:0;10638:339:1;9028:47:0;9094:67;9111:49;9115:6;9122:37;9126:20;9147:11;;9122:3;:37::i;:::-;9111:3;:49::i;:::-;9094:16;:67::i;:::-;9209:21;9252:22;;9249:105;;9299:35;9312:21;9299:12;:35::i;:::-;9372:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9418:12:0;9402:13;:28;-1:-1:-1;8771:1109:0;;;9471:6;;;;9470:7;:25;;;;-1:-1:-1;;;;;;9481:14:0;;;;;;:10;:14;;;;;;;;9470:25;:40;;;;-1:-1:-1;9499:11:0;;;;;;;9470:40;:82;;;;;9535:17;;9514:20;:38;9470:82;:114;;;;;9566:18;;9556:9;;:28;9470:114;9467:413;;;9605:67;9622:49;9626:6;9633:37;9637:20;9658:11;;9633:3;:37::i;9605:67::-;9720:21;9763:22;;9760:105;;9810:35;9823:21;9810:12;:35::i;:::-;9586:294;9467:413;7660:2231;7622:2269;9906:11;;9903:161;;9974:4;9956:24;;;;:9;:24;;;;;;:39;;9985:9;9956:28;:39::i;:::-;9949:4;9931:24;;;;:9;:24;;;;;;;:64;;;;10013:39;;-1:-1:-1;;;;;10013:39:0;;;;;;;10042:9;1361:25:1;;1349:2;1334:18;;1215:177;10013:39:0;;;;;;;;9903:161;-1:-1:-1;;;;;10090:15:0;;;;;;:9;:15;;;;;;:27;;10110:6;10090:19;:27::i;:::-;-1:-1:-1;;;;;10074:15:0;;;;;;:9;:15;;;;;:43;10142:40;10160:21;:6;10171:9;10160:10;:21::i;:::-;-1:-1:-1;;;;;10142:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10128:13:0;;;;;;;:9;:13;;;;;:54;;;;10198:41;;;10217:21;:6;10228:9;10217:10;:21::i;:::-;10198:41;;1361:25:1;;;1349:2;1334:18;10198:41:0;;;;;;;7350:2897;7281:2966;;;:::o;1403:190::-;1489:7;1525:12;1517:6;;;;1509:29;;;;-1:-1:-1;;;1509:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1549:9:0;1561:5;1565:1;1561;:5;:::i;:::-;1549:17;1403:190;-1:-1:-1;;;;;1403:190:0:o;1601:246::-;1659:7;1683:1;1688;1683:6;1679:47;;-1:-1:-1;1713:1:0;1706:8;;1679:47;1736:9;1748:5;1752:1;1748;:5;:::i;:::-;1736:17;-1:-1:-1;1781:1:0;1772:5;1776:1;1736:17;1772:5;:::i;:::-;:10;1764:56;;;;-1:-1:-1;;;1764:56:0;;11539:2:1;1764:56:0;;;11521:21:1;11578:2;11558:18;;;11551:30;11617:34;11597:18;;;11590:62;-1:-1:-1;;;11668:18:1;;;11661:31;11709:19;;1764:56:0;11337:397:1;1764:56:0;1838:1;1601:246;-1:-1:-1;;;1601:246:0:o;1855:132::-;1913:7;1940:39;1944:1;1947;1940:39;;;;;;;;;;;;;;;;;:3;:39::i;10257:98::-;10314:7;10341:1;10339;:3;10338:9;;10346:1;10338:9;;;-1:-1:-1;10344:1:0;10257:98;-1:-1:-1;10257:98:0:o;10566:483::-;5235:6;:13;;-1:-1:-1;;5235:13:0;5244:4;5235:13;;;10668:16:::1;::::0;;10682:1:::1;10668:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10668:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10668:16:0::1;10644:40;;10713:4;10695;10700:1;10695:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10695:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10739:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10739:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10695:7;;10739:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10729:4;10734:1;10729:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10729:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10804:15:::1;::::0;10772:62:::1;::::0;10789:4:::1;::::0;10804:15:::1;10822:11:::0;10772:8:::1;:62::i;:::-;10845:15;::::0;:196:::1;::::0;-1:-1:-1;;;10845:196:0;;-1:-1:-1;;;;;10845:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10926:11;;10845:15:::1;::::0;10968:4;;10995::::1;::::0;11015:15:::1;::::0;10845:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5271:6:0;:14;;-1:-1:-1;;5271:14:0;;;-1:-1:-1;;;;10566:483:0:o;11513:92::-;11570:10;;:27;;-1:-1:-1;;;;;11570:10:0;;;;:27;;;;;11590:6;;11570:10;:27;:10;:27;11590:6;11570:10;:27;;;;;;;;;;;;;;;;;;;;;11513:92;:::o;1072:179::-;1130:7;;1162:5;1166:1;1162;:5;:::i;:::-;1150:17;;1191:1;1186;:6;;1178:46;;;;-1:-1:-1;;;1178:46:0;;13190:2:1;1178:46:0;;;13172:21:1;13229:2;13209:18;;;13202:30;13268:29;13248:18;;;13241:57;13315:18;;1178:46:0;12988:351:1;1259:136:0;1317:7;1344:43;1348:1;1351;1344:43;;;;;;;;;;;;;;;;;:3;:43::i;1995:189::-;2081:7;2116:12;2109:5;2101:28;;;;-1:-1:-1;;;2101:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2140:9:0;2152:5;2156:1;2152;:5;:::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;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:356::-;3102:2;3084:21;;;3121:18;;;3114:30;3180:34;3175:2;3160:18;;3153:62;3247:2;3232:18;;2900:356::o;3261:127::-;3322:10;3317:3;3313:20;3310:1;3303:31;3353:4;3350:1;3343:15;3377:4;3374:1;3367:15;3393:416;3482:1;3519:5;3482:1;3533:270;3554:7;3544:8;3541:21;3533:270;;;3613:4;3609:1;3605:6;3601:17;3595:4;3592:27;3589:53;;;3622:18;;:::i;:::-;3672:7;3662:8;3658:22;3655:55;;;3692:16;;;;3655:55;3771:22;;;;3731:15;;;;3533:270;;;3537:3;3393:416;;;;;:::o;3814:806::-;3863:5;3893:8;3883:80;;-1:-1:-1;3934:1:1;3948:5;;3883:80;3982:4;3972:76;;-1:-1:-1;4019:1:1;4033:5;;3972:76;4064:4;4082:1;4077:59;;;;4150:1;4145:130;;;;4057:218;;4077:59;4107:1;4098:10;;4121:5;;;4145:130;4182:3;4172:8;4169:17;4166:43;;;4189:18;;:::i;:::-;-1:-1:-1;;4245:1:1;4231:16;;4260:5;;4057:218;;4359:2;4349:8;4346:16;4340:3;4334:4;4331:13;4327:36;4321:2;4311:8;4308:16;4303:2;4297:4;4294:12;4290:35;4287:77;4284:159;;;-1:-1:-1;4396:19:1;;;4428:5;;4284:159;4475:34;4500:8;4494:4;4475:34;:::i;:::-;4545:6;4541:1;4537:6;4533:19;4524:7;4521:32;4518:58;;;4556:18;;:::i;:::-;4594:20;;3814:806;-1:-1:-1;;;3814:806:1:o;4625:140::-;4683:5;4712:47;4753:4;4743:8;4739:19;4733:4;4712:47;:::i;4770:168::-;4843:9;;;4874;;4891:15;;;4885:22;;4871:37;4861:71;;4912:18;;:::i;5230:277::-;5297:6;5350:2;5338:9;5329:7;5325:23;5321:32;5318:52;;;5366:1;5363;5356:12;5318:52;5398:9;5392:16;5451:5;5444:13;5437:21;5430:5;5427:32;5417:60;;5473:1;5470;5463:12;5864:251;5934:6;5987:2;5975:9;5966:7;5962:23;5958:32;5955:52;;;6003:1;6000;5993:12;5955:52;6035:9;6029:16;6054:31;6079:5;6054:31;:::i;7041:306::-;7129:6;7137;7145;7198:2;7186:9;7177:7;7173:23;7169:32;7166:52;;;7214:1;7211;7204:12;7166:52;7243:9;7237:16;7227:26;;7293:2;7282:9;7278:18;7272:25;7262:35;;7337:2;7326:9;7322:18;7316:25;7306:35;;7041:306;;;;;:::o;10013:125::-;10078:9;;;10099:10;;;10096:36;;;10112:18;;:::i;10498:135::-;10537:3;10558:17;;;10555:43;;10578:18;;:::i;:::-;-1:-1:-1;10625:1:1;10614:13;;10498:135::o;10982:128::-;11049:9;;;11070:11;;;11067:37;;;11084:18;;:::i;11115:217::-;11155:1;11181;11171:132;;11225:10;11220:3;11216:20;11213:1;11206:31;11260:4;11257:1;11250:15;11288:4;11285:1;11278:15;11171:132;-1:-1:-1;11317:9:1;;11115:217::o;11871:127::-;11932:10;11927:3;11923:20;11920:1;11913:31;11963:4;11960:1;11953:15;11987:4;11984:1;11977:15;12003:980;12265:4;12313:3;12302:9;12298:19;12344:6;12333:9;12326:25;12370:2;12408:6;12403:2;12392:9;12388:18;12381:34;12451:3;12446:2;12435:9;12431:18;12424:31;12475:6;12510;12504:13;12541:6;12533;12526:22;12579:3;12568:9;12564:19;12557:26;;12618:2;12610:6;12606:15;12592:29;;12639:1;12649:195;12663:6;12660:1;12657:13;12649:195;;;12728:13;;-1:-1:-1;;;;;12724:39:1;12712:52;;12819:15;;;;12784:12;;;;12760:1;12678:9;12649:195;;;-1:-1:-1;;;;;;;12900:32:1;;;;12895:2;12880:18;;12873:60;-1:-1:-1;;;12964:3:1;12949:19;12942:35;12861:3;12003:980;-1:-1:-1;;;12003:980:1:o

Swarm Source

ipfs://2deae7e91b301a63c1c90a3ed76bd388f2a606a9d86477526742508fc6a62645

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.