ETH Price: $3,282.55 (+0.53%)
Gas: 13 Gwei

Contract

0x87197f1FDB37b799De1343C38CBf3fE9b3958AFA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve183903162023-10-20 8:22:11281 days ago1697790131IN
0x87197f1F...9b3958AFA
0 ETH0.000389678.3770876
Approve181998182023-09-23 16:50:59308 days ago1695487859IN
0x87197f1F...9b3958AFA
0 ETH0.000193868.00006177
Approve181906022023-09-22 9:50:35309 days ago1695376235IN
0x87197f1F...9b3958AFA
0 ETH0.000443789.5279041
Approve181749002023-09-20 5:03:59311 days ago1695186239IN
0x87197f1F...9b3958AFA
0 ETH0.00023049.4845974
Approve181642122023-09-18 17:08:59313 days ago1695056939IN
0x87197f1F...9b3958AFA
0 ETH0.0015318132.88781997
Approve181581482023-09-17 20:36:11314 days ago1694982971IN
0x87197f1F...9b3958AFA
0 ETH0.000424799.19608652
Approve181491802023-09-16 14:05:23315 days ago1694873123IN
0x87197f1F...9b3958AFA
0 ETH0.000393558.51755595
Approve181482752023-09-16 11:00:11315 days ago1694862011IN
0x87197f1F...9b3958AFA
0 ETH0.000206058.50316098
Approve181058672023-09-10 12:06:47321 days ago1694347607IN
0x87197f1F...9b3958AFA
0 ETH0.000424679.19349107
Approve180956172023-09-09 1:39:23322 days ago1694223563IN
0x87197f1F...9b3958AFA
0 ETH0.000428679.2034831
Approve180953152023-09-09 0:38:11322 days ago1694219891IN
0x87197f1F...9b3958AFA
0 ETH0.000430179.24779547
Approve180930292023-09-08 16:56:47323 days ago1694192207IN
0x87197f1F...9b3958AFA
0 ETH0.0013800329.66730093
Approve180915662023-09-08 12:01:59323 days ago1694174519IN
0x87197f1F...9b3958AFA
0 ETH0.0004895710.52459001
Approve180852332023-09-07 14:46:23324 days ago1694097983IN
0x87197f1F...9b3958AFA
0 ETH0.0010092921.66932467
Approve180847372023-09-07 13:06:23324 days ago1694091983IN
0x87197f1F...9b3958AFA
0 ETH0.0007493516.22232799
Approve180834622023-09-07 8:48:23324 days ago1694076503IN
0x87197f1F...9b3958AFA
0 ETH0.0003676313.94388728
Approve180834602023-09-07 8:47:59324 days ago1694076479IN
0x87197f1F...9b3958AFA
0 ETH0.0006442913.92624661
Approve180834432023-09-07 8:44:35324 days ago1694076275IN
0x87197f1F...9b3958AFA
0 ETH0.0006229613.48256693
Approve180829162023-09-07 6:58:23324 days ago1694069903IN
0x87197f1F...9b3958AFA
0 ETH0.0003006910.22173489
Approve180828832023-09-07 6:51:47324 days ago1694069507IN
0x87197f1F...9b3958AFA
0 ETH0.0002737610.40750376
Approve180828702023-09-07 6:49:11324 days ago1694069351IN
0x87197f1F...9b3958AFA
0 ETH0.0003687714.01914502
Approve180828622023-09-07 6:47:35324 days ago1694069255IN
0x87197f1F...9b3958AFA
0 ETH0.0004864910.52912679
Approve180819952023-09-07 3:53:23324 days ago1694058803IN
0x87197f1F...9b3958AFA
0 ETH0.0005203911.17274699
Approve180805502023-09-06 23:02:35324 days ago1694041355IN
0x87197f1F...9b3958AFA
0 ETH0.000621513.36075538
Approve180804902023-09-06 22:50:35324 days ago1694040635IN
0x87197f1F...9b3958AFA
0 ETH0.0006455913.87863157
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
180720022023-09-05 18:16:47326 days ago1693937807
0x87197f1F...9b3958AFA
0.08875064 ETH
180720022023-09-05 18:16:47326 days ago1693937807
0x87197f1F...9b3958AFA
0.08875064 ETH
180720012023-09-05 18:16:35326 days ago1693937795
0x87197f1F...9b3958AFA
0.08800243 ETH
180720012023-09-05 18:16:35326 days ago1693937795
0x87197f1F...9b3958AFA
0.08800243 ETH
180720012023-09-05 18:16:35326 days ago1693937795
0x87197f1F...9b3958AFA
0.09391844 ETH
180720012023-09-05 18:16:35326 days ago1693937795
0x87197f1F...9b3958AFA
0.09391844 ETH
180720002023-09-05 18:16:23326 days ago1693937783
0x87197f1F...9b3958AFA
0.11541714 ETH
180720002023-09-05 18:16:23326 days ago1693937783
0x87197f1F...9b3958AFA
0.11541714 ETH
180719972023-09-05 18:15:47326 days ago1693937747
0x87197f1F...9b3958AFA
0.01284049 ETH
180719972023-09-05 18:15:47326 days ago1693937747
0x87197f1F...9b3958AFA
0.01284049 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
2.49292729 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
2.49292729 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.01368117 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.01368117 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.02047583 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.02047583 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.07282825 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.07282825 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.03793504 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.03793504 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.02959451 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.02959451 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.04733814 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.04733814 ETH
180719702023-09-05 18:10:23326 days ago1693937423
0x87197f1F...9b3958AFA
0.04565547 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UNIFROG

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-05
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-23
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-23
*/

/**

WELCOME TO UNIFROG 

Unicorns are awesome and frogs are born as princes 

PEPE is the definition of pre historic. When 2 worlds collide a new dominant species is born.

The only autismo coin you'll ever need, is HERE to demonstrate Darwin’s theory of evolution.

Hop in and hold your dick tight in your hands.

Tax: 2/2 

Telegram : https://t.me/unifrogportal
Twitter : https://x.com/unifrogerc20
Website : https://unifrog.xyz/ 


**/
// SPDX-License-Identifier: MIT


pragma solidity 0.8.20;

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 UNIFROG is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _buyerMap;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=50;
    uint256 private _reduceSellTaxAt=50;
    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 69696969 * 10**_decimals;
    string private constant _name = unicode"UNIFROG";
    string private constant _symbol = unicode"UNIFROG";
    uint256 public _maxTxAmount =   1393939  * 10**_decimals;
    uint256 public _maxWalletSize = 1393939  * 10**_decimals;
    uint256 public _taxSwapThreshold=696969  * 10**_decimals;
    uint256 public _maxTaxSwap=696969  * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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()) {
            require(!bots[from] && !bots[to]);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
                _buyerMap[to]=true;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
                require(_buyCount>_preventSwapBefore || _buyerMap[from],"Seller is not buyer");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && 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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

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

    receive() external payable {}

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

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    
    
    
}

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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTheUnifrog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526007805460ff19169055601960088181556009919091555f600a818155600b8290556032600c819055600d556028600e55600f9190915562000047919062000344565b6200005690621545136200035b565b601055620000676008600a62000344565b6200007690621545136200035b565b601155620000876008600a62000344565b6200009690620aa2896200035b565b601255620000a76008600a62000344565b620000b690620aa2896200035b565b6013556015805461ffff60a81b19169055348015620000d3575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060078054610100600160a81b0319166101003302179055620001396008600a62000344565b62000149906304277dc96200035b565b335f908152600160208190526040822092909255600390620001725f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556007546101009004909116835291208054909216179055620001d53390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020e6008600a62000344565b6200021e906304277dc96200035b565b60405190815260200160405180910390a362000375565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028957815f19048211156200026d576200026d62000235565b808516156200027b57918102915b93841c93908002906200024e565b509250929050565b5f82620002a1575060016200033e565b81620002af57505f6200033e565b8160018114620002c85760028114620002d357620002f3565b60019150506200033e565b60ff841115620002e757620002e762000235565b50506001821b6200033e565b5060208310610133831016604e8410600b841016171562000318575081810a6200033e565b62000324838362000249565b805f19048211156200033a576200033a62000235565b0290505b92915050565b5f6200035460ff84168362000291565b9392505050565b80820281158282048414176200033e576200033e62000235565b61192780620003835f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610300578063bf474bed1461031f578063c876d0b914610334578063dd62ed3e1461034d578063ef31523114610391575f80fd5b8063751039fc1461029c5780637d1db4a5146102b05780638da5cb5b146102c55780638f9a55c0146102eb57806395d89b4114610129575f80fd5b8063313ce567116100e3578063313ce567146101ec5780633bbac5791461020757806351bc3c851461023e57806370a0823114610254578063715018a614610288575f80fd5b806306fdde0314610129578063095ea7b3146101675780630faee56f1461019657806318160ddd146101b957806323b872dd146101cd575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820182526007815266554e4946524f4760c81b6020820152905161015e919061151a565b60405180910390f35b348015610172575f80fd5b5061018661018136600461157c565b6103a5565b604051901515815260200161015e565b3480156101a1575f80fd5b506101ab60135481565b60405190815260200161015e565b3480156101c4575f80fd5b506101ab6103bb565b3480156101d8575f80fd5b506101866101e73660046115a6565b6103db565b3480156101f7575f80fd5b506040516008815260200161015e565b348015610212575f80fd5b506101866102213660046115e4565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610249575f80fd5b50610252610442565b005b34801561025f575f80fd5b506101ab61026e3660046115e4565b6001600160a01b03165f9081526001602052604090205490565b348015610293575f80fd5b50610252610498565b3480156102a7575f80fd5b50610252610512565b3480156102bb575f80fd5b506101ab60105481565b3480156102d0575f80fd5b505f546040516001600160a01b03909116815260200161015e565b3480156102f6575f80fd5b506101ab60115481565b34801561030b575f80fd5b5061018661031a36600461157c565b6105cd565b34801561032a575f80fd5b506101ab60125481565b34801561033f575f80fd5b506007546101869060ff1681565b348015610358575f80fd5b506101ab6103673660046115ff565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561039c575f80fd5b506102526105d9565b5f6103b1338484610982565b5060015b92915050565b5f6103c86008600a61172a565b6103d6906304277dc9611738565b905090565b5f6103e7848484610aa5565b6104388433610433856040518060600160405280602881526020016118ca602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611179565b610982565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b031614610466575f80fd5b305f90815260016020526040902054801561048457610484816111b1565b478015610494576104948161133a565b5050565b5f546001600160a01b031633146104ca5760405162461bcd60e51b81526004016104c19061174f565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053b5760405162461bcd60e51b81526004016104c19061174f565b6105476008600a61172a565b610555906304277dc9611738565b6010556105646008600a61172a565b610572906304277dc9611738565b6011556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ac6008600a61172a565b6105ba906304277dc9611738565b60405190815260200160405180910390a1565b5f6103b1338484610aa5565b5f546001600160a01b031633146106025760405162461bcd60e51b81526004016104c19061174f565b601554600160a01b900460ff161561065c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c1565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a59030906106976008600a61172a565b610433906304277dc9611738565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107199190611784565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079c9190611784565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080a9190611784565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610851816001600160a01b03165f9081526001602052604090205490565b5f806108645f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ca573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108ef919061179f565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610944573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096891906117ca565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c1565b6001600160a01b038216610a455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b095760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c1565b6001600160a01b038216610b6b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c1565b5f8111610bcc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c1565b5f80546001600160a01b03858116911614801590610bf757505f546001600160a01b03848116911614155b1561103c576001600160a01b0384165f9081526005602052604090205460ff16158015610c3c57506001600160a01b0383165f9081526005602052604090205460ff16155b610c44575f80fd5b60075460ff1615610cfb576014546001600160a01b03848116911614801590610c7b57506015546001600160a01b03848116911614155b15610cfb57325f908152600660205260409020544311610ce95760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c1565b325f9081526006602052604090204390555b6015546001600160a01b038581169116148015610d2657506014546001600160a01b03848116911614155b8015610d4a57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e6557601054821115610d9d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c1565b60115482610dbf856001600160a01b03165f9081526001602052604090205490565b610dc991906117e9565b1115610e175760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c1565b600e54600f541015610e2e57823b15610e2e575f80fd5b600f8054905f610e3d836117fc565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b610e916064610e8b600c54600f5411610e8057600854610e84565b600a545b8590611375565b906113fa565b6015549091506001600160a01b038481169116148015610eba57506001600160a01b0384163014155b15610f9f57601054821115610f0d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c1565b610f326064610e8b600d54600f5411610f2857600954610e84565b600b548590611375565b9050600e54600f541180610f5d57506001600160a01b0384165f9081526004602052604090205460ff165b610f9f5760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b60448201526064016104c1565b305f90815260016020526040902054601554600160a81b900460ff16158015610fd557506015546001600160a01b038581169116145b8015610fea5750601554600160b01b900460ff165b8015610ff7575060125481115b80156110065750600e54600f54115b1561103a576110286110238461101e8460135461143b565b61143b565b6111b1565b478015611038576110384761133a565b505b505b80156110b457305f9081526001602052604090205461105b908261144f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110ab9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110d690836114ad565b6001600160a01b0385165f908152600160205260409020556111196110fb83836114ad565b6001600160a01b0385165f908152600160205260409020549061144f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116285856114ad565b60405190815260200160405180910390a350505050565b5f818484111561119c5760405162461bcd60e51b81526004016104c1919061151a565b505f6111a88486611814565b95945050505050565b6015805460ff60a81b1916600160a81b179055801561132a57601554600160a01b900460ff161561132a576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120f5761120f611827565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611266573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128a9190611784565b8160018151811061129d5761129d611827565b6001600160a01b0392831660209182029290920101526014546112c39130911684610982565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112fb9085905f9086903090429060040161183b565b5f604051808303815f87803b158015611312575f80fd5b505af1158015611324573d5f803e3d5ffd5b50505050505b506015805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610494573d5f803e3d5ffd5b5f825f0361138457505f6103b5565b5f61138f8385611738565b90508261139c85836118aa565b146113f35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c1565b9392505050565b5f6113f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114ee565b5f81831161144957826113f3565b50919050565b5f8061145b83856117e9565b9050838110156113f35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c1565b5f6113f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611179565b5f818361150e5760405162461bcd60e51b81526004016104c1919061151a565b505f6111a884866118aa565b5f6020808352835180828501525f5b8181101561154557858101830151858201604001528201611529565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611579575f80fd5b50565b5f806040838503121561158d575f80fd5b823561159881611565565b946020939093013593505050565b5f805f606084860312156115b8575f80fd5b83356115c381611565565b925060208401356115d381611565565b929592945050506040919091013590565b5f602082840312156115f4575f80fd5b81356113f381611565565b5f8060408385031215611610575f80fd5b823561161b81611565565b9150602083013561162b81611565565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561168457815f190482111561166a5761166a611636565b8085161561167757918102915b93841c939080029061164f565b509250929050565b5f8261169a575060016103b5565b816116a657505f6103b5565b81600181146116bc57600281146116c6576116e2565b60019150506103b5565b60ff8411156116d7576116d7611636565b50506001821b6103b5565b5060208310610133831016604e8410600b8410161715611705575081810a6103b5565b61170f838361164a565b805f190482111561172257611722611636565b029392505050565b5f6113f360ff84168361168c565b80820281158282048414176103b5576103b5611636565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611794575f80fd5b81516113f381611565565b5f805f606084860312156117b1575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156117da575f80fd5b815180151581146113f3575f80fd5b808201808211156103b5576103b5611636565b5f6001820161180d5761180d611636565b5060010190565b818103818111156103b5576103b5611636565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118895784516001600160a01b031683529383019391830191600101611864565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118c457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dd1dd10498adcd5f2d42f0178d83c872f763e853f1516782d2810612ac43c6ee64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610300578063bf474bed1461031f578063c876d0b914610334578063dd62ed3e1461034d578063ef31523114610391575f80fd5b8063751039fc1461029c5780637d1db4a5146102b05780638da5cb5b146102c55780638f9a55c0146102eb57806395d89b4114610129575f80fd5b8063313ce567116100e3578063313ce567146101ec5780633bbac5791461020757806351bc3c851461023e57806370a0823114610254578063715018a614610288575f80fd5b806306fdde0314610129578063095ea7b3146101675780630faee56f1461019657806318160ddd146101b957806323b872dd146101cd575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820182526007815266554e4946524f4760c81b6020820152905161015e919061151a565b60405180910390f35b348015610172575f80fd5b5061018661018136600461157c565b6103a5565b604051901515815260200161015e565b3480156101a1575f80fd5b506101ab60135481565b60405190815260200161015e565b3480156101c4575f80fd5b506101ab6103bb565b3480156101d8575f80fd5b506101866101e73660046115a6565b6103db565b3480156101f7575f80fd5b506040516008815260200161015e565b348015610212575f80fd5b506101866102213660046115e4565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610249575f80fd5b50610252610442565b005b34801561025f575f80fd5b506101ab61026e3660046115e4565b6001600160a01b03165f9081526001602052604090205490565b348015610293575f80fd5b50610252610498565b3480156102a7575f80fd5b50610252610512565b3480156102bb575f80fd5b506101ab60105481565b3480156102d0575f80fd5b505f546040516001600160a01b03909116815260200161015e565b3480156102f6575f80fd5b506101ab60115481565b34801561030b575f80fd5b5061018661031a36600461157c565b6105cd565b34801561032a575f80fd5b506101ab60125481565b34801561033f575f80fd5b506007546101869060ff1681565b348015610358575f80fd5b506101ab6103673660046115ff565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561039c575f80fd5b506102526105d9565b5f6103b1338484610982565b5060015b92915050565b5f6103c86008600a61172a565b6103d6906304277dc9611738565b905090565b5f6103e7848484610aa5565b6104388433610433856040518060600160405280602881526020016118ca602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611179565b610982565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b031614610466575f80fd5b305f90815260016020526040902054801561048457610484816111b1565b478015610494576104948161133a565b5050565b5f546001600160a01b031633146104ca5760405162461bcd60e51b81526004016104c19061174f565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053b5760405162461bcd60e51b81526004016104c19061174f565b6105476008600a61172a565b610555906304277dc9611738565b6010556105646008600a61172a565b610572906304277dc9611738565b6011556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ac6008600a61172a565b6105ba906304277dc9611738565b60405190815260200160405180910390a1565b5f6103b1338484610aa5565b5f546001600160a01b031633146106025760405162461bcd60e51b81526004016104c19061174f565b601554600160a01b900460ff161561065c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c1565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a59030906106976008600a61172a565b610433906304277dc9611738565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107199190611784565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079c9190611784565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080a9190611784565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610851816001600160a01b03165f9081526001602052604090205490565b5f806108645f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ca573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108ef919061179f565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610944573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096891906117ca565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c1565b6001600160a01b038216610a455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b095760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c1565b6001600160a01b038216610b6b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c1565b5f8111610bcc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c1565b5f80546001600160a01b03858116911614801590610bf757505f546001600160a01b03848116911614155b1561103c576001600160a01b0384165f9081526005602052604090205460ff16158015610c3c57506001600160a01b0383165f9081526005602052604090205460ff16155b610c44575f80fd5b60075460ff1615610cfb576014546001600160a01b03848116911614801590610c7b57506015546001600160a01b03848116911614155b15610cfb57325f908152600660205260409020544311610ce95760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c1565b325f9081526006602052604090204390555b6015546001600160a01b038581169116148015610d2657506014546001600160a01b03848116911614155b8015610d4a57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e6557601054821115610d9d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c1565b60115482610dbf856001600160a01b03165f9081526001602052604090205490565b610dc991906117e9565b1115610e175760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c1565b600e54600f541015610e2e57823b15610e2e575f80fd5b600f8054905f610e3d836117fc565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b610e916064610e8b600c54600f5411610e8057600854610e84565b600a545b8590611375565b906113fa565b6015549091506001600160a01b038481169116148015610eba57506001600160a01b0384163014155b15610f9f57601054821115610f0d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c1565b610f326064610e8b600d54600f5411610f2857600954610e84565b600b548590611375565b9050600e54600f541180610f5d57506001600160a01b0384165f9081526004602052604090205460ff165b610f9f5760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b60448201526064016104c1565b305f90815260016020526040902054601554600160a81b900460ff16158015610fd557506015546001600160a01b038581169116145b8015610fea5750601554600160b01b900460ff165b8015610ff7575060125481115b80156110065750600e54600f54115b1561103a576110286110238461101e8460135461143b565b61143b565b6111b1565b478015611038576110384761133a565b505b505b80156110b457305f9081526001602052604090205461105b908261144f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110ab9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110d690836114ad565b6001600160a01b0385165f908152600160205260409020556111196110fb83836114ad565b6001600160a01b0385165f908152600160205260409020549061144f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116285856114ad565b60405190815260200160405180910390a350505050565b5f818484111561119c5760405162461bcd60e51b81526004016104c1919061151a565b505f6111a88486611814565b95945050505050565b6015805460ff60a81b1916600160a81b179055801561132a57601554600160a01b900460ff161561132a576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120f5761120f611827565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611266573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128a9190611784565b8160018151811061129d5761129d611827565b6001600160a01b0392831660209182029290920101526014546112c39130911684610982565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112fb9085905f9086903090429060040161183b565b5f604051808303815f87803b158015611312575f80fd5b505af1158015611324573d5f803e3d5ffd5b50505050505b506015805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610494573d5f803e3d5ffd5b5f825f0361138457505f6103b5565b5f61138f8385611738565b90508261139c85836118aa565b146113f35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c1565b9392505050565b5f6113f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114ee565b5f81831161144957826113f3565b50919050565b5f8061145b83856117e9565b9050838110156113f35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c1565b5f6113f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611179565b5f818361150e5760405162461bcd60e51b81526004016104c1919061151a565b505f6111a884866118aa565b5f6020808352835180828501525f5b8181101561154557858101830151858201604001528201611529565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611579575f80fd5b50565b5f806040838503121561158d575f80fd5b823561159881611565565b946020939093013593505050565b5f805f606084860312156115b8575f80fd5b83356115c381611565565b925060208401356115d381611565565b929592945050506040919091013590565b5f602082840312156115f4575f80fd5b81356113f381611565565b5f8060408385031215611610575f80fd5b823561161b81611565565b9150602083013561162b81611565565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561168457815f190482111561166a5761166a611636565b8085161561167757918102915b93841c939080029061164f565b509250929050565b5f8261169a575060016103b5565b816116a657505f6103b5565b81600181146116bc57600281146116c6576116e2565b60019150506103b5565b60ff8411156116d7576116d7611636565b50506001821b6103b5565b5060208310610133831016604e8410600b8410161715611705575081810a6103b5565b61170f838361164a565b805f190482111561172257611722611636565b029392505050565b5f6113f360ff84168361168c565b80820281158282048414176103b5576103b5611636565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611794575f80fd5b81516113f381611565565b5f805f606084860312156117b1575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156117da575f80fd5b815180151581146113f3575f80fd5b808201808211156103b5576103b5611636565b5f6001820161180d5761180d611636565b5060010190565b818103818111156103b5576103b5611636565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118895784516001600160a01b031683529383019391830191600101611864565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118c457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dd1dd10498adcd5f2d42f0178d83c872f763e853f1516782d2810612ac43c6ee64736f6c63430008140033

Deployed Bytecode Sourcemap

4079:8626:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6060:83;;;;;;;;;;-1:-1:-1;6130:5:0;;;;;;;;;;;-1:-1:-1;;;6130:5:0;;;;6060:83;;;;6130:5;6060:83;:::i;:::-;;;;;;;;6893:161;;;;;;;;;;-1:-1:-1;6893:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6893:161:0;1023:187:1;5337:50:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5337:50:0;1215:177:1;6337:95:0;;;;;;;;;;;;;:::i;7062:313::-;;;;;;;;;;-1:-1:-1;7062:313:0;;;;;:::i;:::-;;:::i;6246:83::-;;;;;;;;;;-1:-1:-1;6246:83:0;;4962:1;2000:36:1;;1988:2;1973:18;6246:83:0;1858:184:1;11321:83:0;;;;;;;;;;-1:-1:-1;11321:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;11389:7:0;11368:4;11389:7;;;:4;:7;;;;;;;;;11321:83;12334:348;;;;;;;;;;;;;:::i;:::-;;6440:119;;;;;;;;;;-1:-1:-1;6440:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6533:18:0;6506:7;6533:18;;;:9;:18;;;;;;;6440:119;3160:148;;;;;;;;;;;;;:::i;11017:196::-;;;;;;;;;;;;;:::i;5148:56::-;;;;;;;;;;;;;;;;2946:79;;;;;;;;;;-1:-1:-1;2984:7:0;3011:6;2946:79;;-1:-1:-1;;;;;3011:6:0;;;2445:51:1;;2433:2;2418:18;2946:79:0;2299:203:1;5211:56:0;;;;;;;;;;;;;;;;6567:167;;;;;;;;;;-1:-1:-1;6567:167:0;;;;;:::i;:::-;;:::i;5274:56::-;;;;;;;;;;;;;;;;4518:40;;;;;;;;;;-1:-1:-1;4518:40:0;;;;;;;;6742:143;;;;;;;;;;-1:-1:-1;6742:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6850:18:0;;;6823:7;6850:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6742:143;11412:674;;;;;;;;;;;;;:::i;6893:161::-;6968:4;6985:39;781:10;7008:7;7017:6;6985:8;:39::i;:::-;-1:-1:-1;7042:4:0;6893:161;;;;;:::o;6337:95::-;6390:7;5016:13;4962:1;5016:2;:13;:::i;:::-;5005:24;;:8;:24;:::i;:::-;6410:14;;6337:95;:::o;7062:313::-;7160:4;7177:36;7187:6;7195:9;7206:6;7177:9;:36::i;:::-;7224:121;7233:6;781:10;7255:89;7293:6;7255:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7255:19:0;;;;;;:11;:19;;;;;;;;781:10;7255:33;;;;;;;;;;:37;:89::i;:::-;7224:8;:121::i;:::-;-1:-1:-1;7363:4:0;7062:313;;;;;:::o;12334:348::-;12398:10;;;;;-1:-1:-1;;;;;12398:10:0;781;-1:-1:-1;;;;;12384:24:0;;12376:33;;;;;;12459:4;12420:20;6533:18;;;:9;:18;;;;;;12479:14;;12476:73;;12507:30;12524:12;12507:16;:30::i;:::-;12578:21;12613:12;;12610:65;;12639:24;12652:10;12639:12;:24::i;:::-;12365:317;;12334:348::o;3160:148::-;3073:6;;-1:-1:-1;;;;;3073:6:0;781:10;3073:22;3065:67;;;;-1:-1:-1;;;3065:67:0;;;;;;;:::i;:::-;;;;;;;;;3267:1:::1;3251:6:::0;;3230:40:::1;::::0;-1:-1:-1;;;;;3251:6:0;;::::1;::::0;3230:40:::1;::::0;3267:1;;3230:40:::1;3298:1;3281:19:::0;;-1:-1:-1;;;;;;3281:19:0::1;::::0;;3160:148::o;11017:196::-;3073:6;;-1:-1:-1;;;;;3073:6:0;781:10;3073:22;3065:67;;;;-1:-1:-1;;;3065:67:0;;;;;;;:::i;:::-;5016:13:::1;4962:1;5016:2;:13;:::i;:::-;5005:24;::::0;:8:::1;:24;:::i;:::-;11070:12;:22:::0;5016:13:::1;4962:1;5016:2;:13;:::i;:::-;5005:24;::::0;:8:::1;:24;:::i;:::-;11103:14;:22:::0;11136:20:::1;:26:::0;;-1:-1:-1;;11136:26:0::1;::::0;;11178:27:::1;5016:13;4962:1;-1:-1:-1::0;5016:13:0::1;:::i;:::-;5005:24;::::0;:8:::1;:24;:::i;:::-;11178:27;::::0;1361:25:1;;;1349:2;1334:18;11178:27:0::1;;;;;;;11017:196::o:0;6567:167::-;6645:4;6662:42;781:10;6686:9;6697:6;6662:9;:42::i;11412:674::-;3073:6;;-1:-1:-1;;;;;3073:6:0;781:10;3073:22;3065:67;;;;-1:-1:-1;;;3065:67:0;;;;;;;:::i;:::-;11479:11:::1;::::0;-1:-1:-1;;;11479:11:0;::::1;;;11478:12;11470:47;;;::::0;-1:-1:-1;;;11470:47:0;;5151:2:1;11470:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;11470:47:0::1;4949:347:1::0;11470:47:0::1;11528:15;:80:::0;;-1:-1:-1;;;;;;11528:80:0::1;11565:42;11528:80:::0;;::::1;::::0;;;11619:58:::1;::::0;11636:4:::1;::::0;5016:13:::1;4962:1;5016:2;:13;:::i;:::-;5005:24;::::0;:8:::1;:24;:::i;11619:58::-;11722:15;;;;;;;;;-1:-1:-1::0;;;;;11722:15:0::1;-1:-1:-1::0;;;;;11722:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11704:55:0::1;;11768:4;11775:15;;;;;;;;;-1:-1:-1::0;;;;;11775:15:0::1;-1:-1:-1::0;;;;;11775:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11704:94;::::0;-1:-1:-1;;;;;;11704:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;11704:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;11704:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11688:13;:110:::0;;-1:-1:-1;;;;;11688:110:0;;::::1;-1:-1:-1::0;;;;;;11688:110:0;;::::1;;::::0;;11809:15:::1;::::0;::::1;:31;11848:21;11879:4;11885:24;11879:4:::0;-1:-1:-1;;;;;6533:18:0;6506:7;6533:18;;;:9;:18;;;;;;;6440:119;11885:24:::1;11910:1;11912::::0;11914:7:::1;2984::::0;3011:6;-1:-1:-1;;;;;3011:6:0;;2946:79;11914:7:::1;11809:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11809:129:0;;;-1:-1:-1;;;;;6225:15:1;;;11809:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;11922:15:0::1;6439:19:1::0;;;6432:35;6141:19;;11809:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11956:13:0::1;::::0;11987:15:::1;::::0;11949:71:::1;::::0;-1:-1:-1;;;11949:71:0;;-1:-1:-1;;;;;11987:15:0;;::::1;11949:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11956:13:0;::::1;::::0;-1:-1:-1;11949:29:0::1;::::0;6936:18:1;;11949:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12031:11:0::1;:18:::0;;-1:-1:-1;;;;12060:18:0;-1:-1:-1;;;12060:18:0;;;11412:674::o;7383:335::-;-1:-1:-1;;;;;7476:19:0;;7468:68;;;;-1:-1:-1;;;7468:68:0;;7552:2:1;7468:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;7468:68:0;7350:400:1;7468:68:0;-1:-1:-1;;;;;7555:21:0;;7547:68;;;;-1:-1:-1;;;7547:68:0;;7957:2:1;7547:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;7547:68:0;7755:398:1;7547:68:0;-1:-1:-1;;;;;7626:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7678:32;;1361:25:1;;;7678:32:0;;1334:18:1;7678:32:0;;;;;;;7383:335;;;:::o;7726:2612::-;-1:-1:-1;;;;;7814:18:0;;7806:68;;;;-1:-1:-1;;;7806:68:0;;8360:2:1;7806:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7806:68:0;8158:401:1;7806:68:0;-1:-1:-1;;;;;7893:16:0;;7885:64;;;;-1:-1:-1;;;7885:64:0;;8766:2:1;7885:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7885:64:0;8564:399:1;7885:64:0;7977:1;7968:6;:10;7960:64;;;;-1:-1:-1;;;7960:64:0;;9170:2:1;7960:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7960:64:0;8968:405:1;7960:64:0;8035:17;3011:6;;-1:-1:-1;;;;;8069:15:0;;;3011:6;;8069:15;;;;:32;;-1:-1:-1;2984:7:0;3011:6;-1:-1:-1;;;;;8088:13:0;;;3011:6;;8088:13;;8069:32;8065:1917;;;-1:-1:-1;;;;;8127:10:0;;;;;;:4;:10;;;;;;;;8126:11;:24;;;;-1:-1:-1;;;;;;8142:8:0;;;;;;:4;:8;;;;;;;;8141:9;8126:24;8118:33;;;;;;8172:20;;;;8168:346;;;8231:15;;-1:-1:-1;;;;;8217:30:0;;;8231:15;;8217:30;;;;:62;;-1:-1:-1;8265:13:0;;-1:-1:-1;;;;;8251:28:0;;;8265:13;;8251:28;;8217:62;8213:286;;;8339:9;8310:39;;;;:28;:39;;;;;;8352:12;-1:-1:-1;8302:102:0;;;;-1:-1:-1;;;8302:102:0;;9580:2:1;8302:102:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;-1:-1:-1;;;9709:18:1;;;9702:34;9753:19;;8302:102:0;9378:400:1;8302:102:0;8454:9;8425:39;;;;:28;:39;;;;;8467:12;8425:54;;8213:286;8542:13;;-1:-1:-1;;;;;8534:21:0;;;8542:13;;8534:21;:55;;;;-1:-1:-1;8573:15:0;;-1:-1:-1;;;;;8559:30:0;;;8573:15;;8559:30;;8534:55;:83;;;;-1:-1:-1;;;;;;8595:22:0;;;;;;:18;:22;;;;;;;;8593:24;8534:83;8530:465;;;8657:12;;8647:6;:22;;8639:60;;;;-1:-1:-1;;;8639:60:0;;9985:2:1;8639:60:0;;;9967:21:1;10024:2;10004:18;;;9997:30;-1:-1:-1;;;10043:18:1;;;10036:55;10108:18;;8639:60:0;9783:349:1;8639:60:0;8752:14;;8742:6;8726:13;8736:2;-1:-1:-1;;;;;6533:18:0;6506:7;6533:18;;;:9;:18;;;;;;;6440:119;8726:13;:22;;;;:::i;:::-;:40;;8718:79;;;;-1:-1:-1;;;8718:79:0;;10469:2:1;8718:79:0;;;10451:21:1;10508:2;10488:18;;;10481:30;10547:28;10527:18;;;10520:56;10593:18;;8718:79:0;10267:350:1;8718:79:0;8829:18;;8819:9;;:28;8816:97;;;12262:20;;12310:8;8869:24;;;;;;8931:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8961:13:0;;;;;;:9;:13;;;;;:18;;-1:-1:-1;;8961:18:0;8975:4;8961:18;;;8530:465;9025:76;9097:3;9025:67;9047:15;;9037:9;;:25;9036:55;;9077:14;;9036:55;;;9064:12;;9036:55;9025:6;;:10;:67::i;:::-;:71;;:76::i;:::-;9125:13;;9013:88;;-1:-1:-1;;;;;;9119:19:0;;;9125:13;;9119:19;:43;;;;-1:-1:-1;;;;;;9142:20:0;;9157:4;9142:20;;9119:43;9116:350;;;9201:12;;9191:6;:22;;9183:60;;;;-1:-1:-1;;;9183:60:0;;9985:2:1;9183:60:0;;;9967:21:1;10024:2;10004:18;;;9997:30;-1:-1:-1;;;10043:18:1;;;10036:55;10108:18;;9183:60:0;9783:349:1;9183:60:0;9274:79;9349:3;9274:70;9296:16;;9286:9;;:26;9285:58;;9328:15;;9285:58;;;9314:13;;9274:6;;:10;:70::i;:79::-;9262:91;;9390:18;;9380:9;;:28;:47;;;-1:-1:-1;;;;;;9412:15:0;;;;;;:9;:15;;;;;;;;9380:47;9372:78;;;;-1:-1:-1;;;9372:78:0;;10964:2:1;9372:78:0;;;10946:21:1;11003:2;10983:18;;;10976:30;-1:-1:-1;;;11022:18:1;;;11015:49;11081:18;;9372:78:0;10762:343:1;9372:78:0;9531:4;9482:28;6533:18;;;:9;:18;;;;;;9557:6;;-1:-1:-1;;;9557:6:0;;;;9556:7;:30;;;;-1:-1:-1;9573:13:0;;-1:-1:-1;;;;;9567:19:0;;;9573:13;;9567:19;9556:30;:45;;;;-1:-1:-1;9590:11:0;;-1:-1:-1;;;9590:11:0;;;;9556:45;:87;;;;;9626:17;;9605:20;:38;9556:87;:119;;;;;9657:18;;9647:9;;:28;9556:119;9552:419;;;9696:67;9713:49;9717:6;9724:37;9728:20;9749:11;;9724:3;:37::i;:::-;9713:3;:49::i;:::-;9696:16;:67::i;:::-;9811:21;9854:22;;9851:105;;9901:35;9914:21;9901:12;:35::i;:::-;9677:294;9552:419;8103:1879;8065:1917;9997:11;;9994:161;;10065:4;10047:24;;;;:9;:24;;;;;;:39;;10076:9;10047:28;:39::i;:::-;10040:4;10022:24;;;;:9;:24;;;;;;;:64;;;;10104:39;;-1:-1:-1;;;;;10104:39:0;;;;;;;10133:9;1361:25:1;;1349:2;1334:18;;1215:177;10104:39:0;;;;;;;;9994:161;-1:-1:-1;;;;;10181:15:0;;;;;;:9;:15;;;;;;:27;;10201:6;10181:19;:27::i;:::-;-1:-1:-1;;;;;10165:15:0;;;;;;:9;:15;;;;;:43;10233:40;10251:21;:6;10262:9;10251:10;:21::i;:::-;-1:-1:-1;;;;;10233:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10219:13:0;;;;;;;:9;:13;;;;;:54;;;;10289:41;;;10308:21;:6;10319:9;10308:10;:21::i;:::-;10289:41;;1361:25:1;;;1349:2;1334:18;10289:41:0;;;;;;;7795:2543;7726:2612;;;:::o;1838:190::-;1924:7;1960:12;1952:6;;;;1944:29;;;;-1:-1:-1;;;1944:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1984:9:0;1996:5;2000:1;1996;:5;:::i;:::-;1984:17;1838:190;-1:-1:-1;;;;;1838:190:0:o;10454:555::-;5669:6;:13;;-1:-1:-1;;;;5669:13:0;-1:-1:-1;;;5669:13:0;;;10532:27;;10551:7:::1;10532:27;10573:11;::::0;-1:-1:-1;;;10573:11:0;::::1;;;10569:25:::0;10586:7:::1;10569:25;10628:16;::::0;;10642:1:::1;10628:16:::0;;;;;::::1;::::0;;10604:21:::1;::::0;10628:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10628:16:0::1;10604:40;;10673:4;10655;10660:1;10655:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10655:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10699:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10699:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10655:7;;10699:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10689:4;10694:1;10689:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10689:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10764:15:::1;::::0;10732:62:::1;::::0;10749:4:::1;::::0;10764:15:::1;10782:11:::0;10732:8:::1;:62::i;:::-;10805:15;::::0;:196:::1;::::0;-1:-1:-1;;;10805:196:0;;-1:-1:-1;;;;;10805:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10886:11;;10805:15:::1;::::0;10928:4;;10955::::1;::::0;10975:15:::1;::::0;10805:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10521:488;5693:1;-1:-1:-1::0;5705:6:0;:14;;-1:-1:-1;;;;5705:14:0;;;10454:555::o;11221:92::-;11278:10;;:27;;:10;;;;-1:-1:-1;;;;;11278:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;2036:246;2094:7;2118:1;2123;2118:6;2114:47;;-1:-1:-1;2148:1:0;2141:8;;2114:47;2171:9;2183:5;2187:1;2183;:5;:::i;:::-;2171:17;-1:-1:-1;2216:1:0;2207:5;2211:1;2171:17;2207:5;:::i;:::-;:10;2199:56;;;;-1:-1:-1;;;2199:56:0;;12916:2:1;2199:56:0;;;12898:21:1;12955:2;12935:18;;;12928:30;12994:34;12974:18;;;12967:62;-1:-1:-1;;;13045:18:1;;;13038:31;13086:19;;2199:56:0;12714:397:1;2199:56:0;2273:1;2036:246;-1:-1:-1;;;2036:246:0:o;2290:132::-;2348:7;2375:39;2379:1;2382;2375:39;;;;;;;;;;;;;;;;;:3;:39::i;10348:98::-;10405:7;10432:1;10430;:3;10429:9;;10437:1;10429:9;;;-1:-1:-1;10435:1:0;10348:98;-1:-1:-1;10348:98:0:o;1507:179::-;1565:7;;1597:5;1601:1;1597;:5;:::i;:::-;1585:17;;1626:1;1621;:6;;1613:46;;;;-1:-1:-1;;;1613:46:0;;13318:2:1;1613:46:0;;;13300:21:1;13357:2;13337:18;;;13330:30;13396:29;13376:18;;;13369:57;13443:18;;1613:46:0;13116:351:1;1694:136:0;1752:7;1779:43;1783:1;1786;1779:43;;;;;;;;;;;;;;;;;:3;:43::i;2430:189::-;2516:7;2551:12;2544:5;2536:28;;;;-1:-1:-1;;;2536:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2575:9:0;2587:5;2591:1;2587;: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;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;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;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233: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:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10137:125;10202:9;;;10223:10;;;10220:36;;;10236:18;;:::i;10622:135::-;10661:3;10682:17;;;10679:43;;10702:18;;:::i;:::-;-1:-1:-1;10749:1:1;10738:13;;10622:135::o;11110:128::-;11177:9;;;11198:11;;;11195:37;;;11212:18;;:::i;11375:127::-;11436:10;11431:3;11427:20;11424:1;11417:31;11467:4;11464:1;11457:15;11491:4;11488:1;11481:15;11507:980;11769:4;11817:3;11806:9;11802:19;11848:6;11837:9;11830:25;11874:2;11912:6;11907:2;11896:9;11892:18;11885:34;11955:3;11950:2;11939:9;11935:18;11928:31;11979:6;12014;12008:13;12045:6;12037;12030:22;12083:3;12072:9;12068:19;12061:26;;12122:2;12114:6;12110:15;12096:29;;12143:1;12153:195;12167:6;12164:1;12161:13;12153:195;;;12232:13;;-1:-1:-1;;;;;12228:39:1;12216:52;;12323:15;;;;12288:12;;;;12264:1;12182:9;12153:195;;;-1:-1:-1;;;;;;;12404:32:1;;;;12399:2;12384:18;;12377:60;-1:-1:-1;;;12468:3:1;12453:19;12446:35;12365:3;11507:980;-1:-1:-1;;;11507:980:1:o;12492:217::-;12532:1;12558;12548:132;;12602:10;12597:3;12593:20;12590:1;12583:31;12637:4;12634:1;12627:15;12665:4;12662:1;12655:15;12548:132;-1:-1:-1;12694:9:1;;12492:217::o

Swarm Source

ipfs://dd1dd10498adcd5f2d42f0178d83c872f763e853f1516782d2810612ac43c6ee

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.