ETH Price: $3,364.91 (-2.31%)
Gas: 3 Gwei

Contract

0x43bbCF120c3EE14ddcF64F97EE2945A755E46471
 

Overview

ETH Balance

0.048293951408902583 ETH

Eth Value

$162.51 (@ $3,364.91/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve198853292024-05-16 21:50:1147 days ago1715896211IN
0x43bbCF12...755E46471
0 ETH0.000174363.74845919
Transfer198492192024-05-11 20:36:4752 days ago1715459807IN
0x43bbCF12...755E46471
0 ETH0.000233413.38788134
Approve197895082024-05-03 12:11:5960 days ago1714738319IN
0x43bbCF12...755E46471
0 ETH0.000344147.39835066
Approve196042922024-04-07 14:03:5986 days ago1712498639IN
0x43bbCF12...755E46471
0 ETH0.0011001823.62087803
Approve194990282024-03-23 18:16:59101 days ago1711217819IN
0x43bbCF12...755E46471
0 ETH0.0008315717.85374368
Approve193048022024-02-25 13:09:35128 days ago1708866575IN
0x43bbCF12...755E46471
0 ETH0.0011393524.6587971
Approve192466452024-02-17 9:18:35136 days ago1708161515IN
0x43bbCF12...755E46471
0 ETH0.0010190221.87827728
Approve191926312024-02-09 19:24:35144 days ago1707506675IN
0x43bbCF12...755E46471
0 ETH0.0033347771.68936061
Approve191921372024-02-09 17:44:59144 days ago1707500699IN
0x43bbCF12...755E46471
0 ETH0.0037807981.82643942
Approve191067192024-01-28 18:07:47156 days ago1706465267IN
0x43bbCF12...755E46471
0 ETH0.0005867112.6980142
Approve190928662024-01-26 19:29:47158 days ago1706297387IN
0x43bbCF12...755E46471
0 ETH0.0007680516.51117563
Approve190696242024-01-23 13:19:11161 days ago1706015951IN
0x43bbCF12...755E46471
0 ETH0.0007964117.120933
Approve190465132024-01-20 7:14:47164 days ago1705734887IN
0x43bbCF12...755E46471
0 ETH0.0007217115.49507369
Approve190396532024-01-19 8:16:35165 days ago1705652195IN
0x43bbCF12...755E46471
0 ETH0.0011277724.24433375
Approve190259832024-01-17 10:22:35167 days ago1705486955IN
0x43bbCF12...755E46471
0 ETH0.0014111130.33542207
Approve190146132024-01-15 20:16:59169 days ago1705349819IN
0x43bbCF12...755E46471
0 ETH0.0013149428.26812116
Approve189991452024-01-13 16:25:11171 days ago1705163111IN
0x43bbCF12...755E46471
0 ETH0.0010014521.67420503
Approve189941822024-01-12 23:45:35172 days ago1705103135IN
0x43bbCF12...755E46471
0 ETH0.0007656916.46048994
Approve189922682024-01-12 17:20:59172 days ago1705080059IN
0x43bbCF12...755E46471
0 ETH0.0022445948.25320484
Approve189893622024-01-12 7:35:35172 days ago1705044935IN
0x43bbCF12...755E46471
0 ETH0.0008866419.16453381
Approve189891762024-01-12 6:57:35172 days ago1705042655IN
0x43bbCF12...755E46471
0 ETH0.0007771316.70653964
Approve189864902024-01-11 21:55:35173 days ago1705010135IN
0x43bbCF12...755E46471
0 ETH0.001195125.69176562
Approve189861892024-01-11 20:54:59173 days ago1705006499IN
0x43bbCF12...755E46471
0 ETH0.0011483424.68658421
Approve189780462024-01-10 17:29:59174 days ago1704907799IN
0x43bbCF12...755E46471
0 ETH0.0015642333.81910997
Approve189776482024-01-10 16:09:23174 days ago1704902963IN
0x43bbCF12...755E46471
0 ETH0.0024369252.3203266
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
190696242024-01-23 13:19:11161 days ago1706015951
0x43bbCF12...755E46471
0.0262767 ETH
189861952024-01-11 20:56:11173 days ago1705006571
0x43bbCF12...755E46471
0.02201724 ETH
189721402024-01-09 21:39:59175 days ago1704836399
0x43bbCF12...755E46471
0.07716394 ETH
189721402024-01-09 21:39:59175 days ago1704836399
0x43bbCF12...755E46471
0.07716394 ETH
189716382024-01-09 19:58:47175 days ago1704830327
0x43bbCF12...755E46471
0.0513519 ETH
189716382024-01-09 19:58:47175 days ago1704830327
0x43bbCF12...755E46471
0.0513519 ETH
189695142024-01-09 12:50:23175 days ago1704804623
0x43bbCF12...755E46471
0.15477912 ETH
189695142024-01-09 12:50:23175 days ago1704804623
0x43bbCF12...755E46471
0.15477912 ETH
189657722024-01-09 0:12:23176 days ago1704759143
0x43bbCF12...755E46471
0.22146171 ETH
189657722024-01-09 0:12:23176 days ago1704759143
0x43bbCF12...755E46471
0.22146171 ETH
189623252024-01-08 12:34:11176 days ago1704717251
0x43bbCF12...755E46471
0.31456479 ETH
189623252024-01-08 12:34:11176 days ago1704717251
0x43bbCF12...755E46471
0.31456479 ETH
189610712024-01-08 8:19:11176 days ago1704701951
0x43bbCF12...755E46471
0.20230523 ETH
189610712024-01-08 8:19:11176 days ago1704701951
0x43bbCF12...755E46471
0.20230523 ETH
189588752024-01-08 0:52:11177 days ago1704675131
0x43bbCF12...755E46471
0.20222174 ETH
189588752024-01-08 0:52:11177 days ago1704675131
0x43bbCF12...755E46471
0.18398527 ETH
189583972024-01-07 23:14:59177 days ago1704669299
0x43bbCF12...755E46471
0.01823647 ETH
189570122024-01-07 18:34:23177 days ago1704652463
0x43bbCF12...755E46471
0.33632656 ETH
189570122024-01-07 18:34:23177 days ago1704652463
0x43bbCF12...755E46471
0.33632597 ETH
189570102024-01-07 18:33:59177 days ago1704652439
0x43bbCF12...755E46471
0.00000058 ETH
189559692024-01-07 15:04:23177 days ago1704639863
0x43bbCF12...755E46471
0.38191508 ETH
189559692024-01-07 15:04:23177 days ago1704639863
0x43bbCF12...755E46471
0.38191508 ETH
189549612024-01-07 11:38:35177 days ago1704627515
0x43bbCF12...755E46471
0.12392709 ETH
189549612024-01-07 11:38:35177 days ago1704627515
0x43bbCF12...755E46471
0.12392709 ETH
189544722024-01-07 9:59:11177 days ago1704621551
0x43bbCF12...755E46471
0.09908279 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
voxaierc

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-04
*/

// SPDX-License-Identifier: MIT


/** 
Revolutionizing Customer Service and Moderation with Customizable Text and Voice Bots on the Ethereum Blockchain

https://t.me/voxaierc

https://twitter.com/voxaierc

https://voxaierc.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 voxaierc 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 bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=35;
    uint256 private _initialSellTax=35;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"VoxAI";
    string private constant _symbol = unicode"VAI";
    uint256 public _maxTxAmount = 30000 * 10**_decimals;
    uint256 public _maxWalletSize = 30000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10500 * 10**_decimals;
    uint256 public _maxTaxSwap= 63000 * 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()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase 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.");
                _buyCount++;
            }

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

            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 > 50000000000000000) {
                    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 {
        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 openTrading() 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 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":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","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"}]

60806040526006805460ff191660011790556023600781905560085560056009818155600a918255601e600b819055600c556014600d555f600e5562000045916200033c565b620000539061753062000353565b600f55620000646009600a6200033c565b620000729061753062000353565b601055620000836009600a6200033c565b620000919061290462000353565b601155620000a26009600a6200033c565b620000b09061f61862000353565b6012556014805461ffff60a81b19169055348015620000cd575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001336009600a6200033c565b6200014290620f424062000353565b335f9081526001602081905260408220929092556003906200016b5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001ce3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002076009600a6200033c565b6200021690620f424062000353565b60405190815260200160405180910390a36200036d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028157815f19048211156200026557620002656200022d565b808516156200027357918102915b93841c939080029062000246565b509250929050565b5f82620002995750600162000336565b81620002a757505f62000336565b8160018114620002c05760028114620002cb57620002eb565b600191505062000336565b60ff841115620002df57620002df6200022d565b50506001821b62000336565b5060208310610133831016604e8410600b841016171562000310575081810a62000336565b6200031c838362000241565b805f19048211156200033257620003326200022d565b0290505b92915050565b5f6200034c60ff84168362000289565b9392505050565b80820281158282048414176200033657620003366200022d565b6117f6806200037b5f395ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb146102ea578063bf474bed14610309578063c876d0b91461031e578063c9567bf914610337578063dd62ed3e1461034b575f80fd5b8063751039fc1461025b5780637d1db4a51461026f5780638da5cb5b146102845780638f9a55c0146102aa57806395d89b41146102bf575f80fd5b806323b872dd116100e357806323b872dd146101c3578063313ce567146101e257806351bc3c85146101fd57806370a0823114610213578063715018a614610247575f80fd5b806306fdde031461011e578063095ea7b31461015d5780630faee56f1461018c57806318160ddd146101af575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b50604080518082019091526005815264566f78414960d81b60208201525b60405161015491906113e6565b60405180910390f35b348015610168575f80fd5b5061017c610177366004611449565b61038f565b6040519015158152602001610154565b348015610197575f80fd5b506101a160125481565b604051908152602001610154565b3480156101ba575f80fd5b506101a16103a5565b3480156101ce575f80fd5b5061017c6101dd366004611473565b6103c4565b3480156101ed575f80fd5b5060405160098152602001610154565b348015610208575f80fd5b5061021161042b565b005b34801561021e575f80fd5b506101a161022d3660046114b1565b6001600160a01b03165f9081526001602052604090205490565b348015610252575f80fd5b50610211610481565b348015610266575f80fd5b506102116104fb565b34801561027a575f80fd5b506101a1600f5481565b34801561028f575f80fd5b505f546040516001600160a01b039091168152602001610154565b3480156102b5575f80fd5b506101a160105481565b3480156102ca575f80fd5b5060408051808201909152600381526256414960e81b6020820152610147565b3480156102f5575f80fd5b5061017c610304366004611449565b6105b3565b348015610314575f80fd5b506101a160115481565b348015610329575f80fd5b5060065461017c9060ff1681565b348015610342575f80fd5b506102116105bf565b348015610356575f80fd5b506101a16103653660046114cc565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039b338484610967565b5060015b92915050565b5f6103b26009600a6115f7565b6103bf90620f4240611605565b905090565b5f6103d0848484610a8a565b610421843361041c85604051806060016040528060288152602001611799602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061105e565b610967565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461044f575f80fd5b305f90815260016020526040902054801561046d5761046d81611096565b47801561047d5761047d81611206565b5050565b5f546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa9061161c565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105245760405162461bcd60e51b81526004016104aa9061161c565b6105306009600a6115f7565b61053d90620f4240611605565b600f5561054c6009600a6115f7565b61055990620f4240611605565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105936009600a6115f7565b6105a090620f4240611605565b60405190815260200160405180910390a1565b5f61039b338484610a8a565b5f546001600160a01b031633146105e85760405162461bcd60e51b81526004016104aa9061161c565b601454600160a01b900460ff16156106425760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104aa565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561068a90309061067d6009600a6115f7565b61041c90620f4240611605565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fe9190611651565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107819190611651565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ef9190611651565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610836816001600160a01b03165f9081526001602052604090205490565b5f806108495f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108af573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d4919061166c565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610929573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094d9190611697565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109c95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b038216610a2a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610aee5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b038216610b505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610bb15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b5f80546001600160a01b03858116911614801590610bdc57505f546001600160a01b03848116911614155b15610f2157610c0d6064610c07600b54600e5411610bfc57600754610c00565b6009545b8590611241565b906112c6565b60065490915060ff1615610cf3576013546001600160a01b03848116911614801590610c4757506014546001600160a01b03848116911614155b15610cf357325f908152600560205260409020544311610ce15760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104aa565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610d1e57506013546001600160a01b03848116911614155b8015610d4257506001600160a01b0383165f9081526003602052604090205460ff16155b15610e2857600f54821115610d995760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104aa565b60105482610dbb856001600160a01b03165f9081526001602052604090205490565b610dc591906116b6565b1115610e135760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104aa565b600e8054905f610e22836116c9565b91905055505b6014546001600160a01b038481169116148015610e4e57506001600160a01b0384163014155b15610e7b57610e786064610c07600c54600e5411610e6e57600854610c00565b600a548590611241565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610eb157506014546001600160a01b038581169116145b8015610ec65750601454600160b01b900460ff165b8015610ed3575060115481115b8015610ee25750600d54600e54115b15610f1f57610f04610eff84610efa84601254611307565b611307565b611096565b4766b1a2bc2ec50000811115610f1d57610f1d47611206565b505b505b8015610f9957305f90815260016020526040902054610f40908261131b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f909085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fbb9083611379565b6001600160a01b0385165f90815260016020526040902055610ffe610fe08383611379565b6001600160a01b0385165f908152600160205260409020549061131b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110478585611379565b60405190815260200160405180910390a350505050565b5f81848411156110815760405162461bcd60e51b81526004016104aa91906113e6565b505f61108d84866116e1565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110dc576110dc6116f4565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611133573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111579190611651565b8160018151811061116a5761116a6116f4565b6001600160a01b0392831660209182029290920101526013546111909130911684610967565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c89085905f90869030904290600401611708565b5f604051808303815f87803b1580156111df575f80fd5b505af11580156111f1573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f1935050505015801561047d573d5f803e3d5ffd5b5f825f0361125057505f61039f565b5f61125b8385611605565b9050826112688583611779565b146112bf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b9392505050565b5f6112bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ba565b5f81831161131557826112bf565b50919050565b5f8061132783856116b6565b9050838110156112bf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f6112bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061105e565b5f81836113da5760405162461bcd60e51b81526004016104aa91906113e6565b505f61108d8486611779565b5f602080835283518060208501525f5b81811015611412578581018301518582016040015282016113f6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611446575f80fd5b50565b5f806040838503121561145a575f80fd5b823561146581611432565b946020939093013593505050565b5f805f60608486031215611485575f80fd5b833561149081611432565b925060208401356114a081611432565b929592945050506040919091013590565b5f602082840312156114c1575f80fd5b81356112bf81611432565b5f80604083850312156114dd575f80fd5b82356114e881611432565b915060208301356114f881611432565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561155157815f190482111561153757611537611503565b8085161561154457918102915b93841c939080029061151c565b509250929050565b5f826115675750600161039f565b8161157357505f61039f565b81600181146115895760028114611593576115af565b600191505061039f565b60ff8411156115a4576115a4611503565b50506001821b61039f565b5060208310610133831016604e8410600b84101617156115d2575081810a61039f565b6115dc8383611517565b805f19048211156115ef576115ef611503565b029392505050565b5f6112bf60ff841683611559565b808202811582820484141761039f5761039f611503565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611661575f80fd5b81516112bf81611432565b5f805f6060848603121561167e575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156116a7575f80fd5b815180151581146112bf575f80fd5b8082018082111561039f5761039f611503565b5f600182016116da576116da611503565b5060010190565b8181038181111561039f5761039f611503565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117585784516001600160a01b031683529383019391830191600101611733565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261179357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f1c1e8b4c2f6e4d8d39556b9ee8c2d2c628522bc3cfe51546c2440d7fc9a79cc64736f6c63430008170033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb146102ea578063bf474bed14610309578063c876d0b91461031e578063c9567bf914610337578063dd62ed3e1461034b575f80fd5b8063751039fc1461025b5780637d1db4a51461026f5780638da5cb5b146102845780638f9a55c0146102aa57806395d89b41146102bf575f80fd5b806323b872dd116100e357806323b872dd146101c3578063313ce567146101e257806351bc3c85146101fd57806370a0823114610213578063715018a614610247575f80fd5b806306fdde031461011e578063095ea7b31461015d5780630faee56f1461018c57806318160ddd146101af575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b50604080518082019091526005815264566f78414960d81b60208201525b60405161015491906113e6565b60405180910390f35b348015610168575f80fd5b5061017c610177366004611449565b61038f565b6040519015158152602001610154565b348015610197575f80fd5b506101a160125481565b604051908152602001610154565b3480156101ba575f80fd5b506101a16103a5565b3480156101ce575f80fd5b5061017c6101dd366004611473565b6103c4565b3480156101ed575f80fd5b5060405160098152602001610154565b348015610208575f80fd5b5061021161042b565b005b34801561021e575f80fd5b506101a161022d3660046114b1565b6001600160a01b03165f9081526001602052604090205490565b348015610252575f80fd5b50610211610481565b348015610266575f80fd5b506102116104fb565b34801561027a575f80fd5b506101a1600f5481565b34801561028f575f80fd5b505f546040516001600160a01b039091168152602001610154565b3480156102b5575f80fd5b506101a160105481565b3480156102ca575f80fd5b5060408051808201909152600381526256414960e81b6020820152610147565b3480156102f5575f80fd5b5061017c610304366004611449565b6105b3565b348015610314575f80fd5b506101a160115481565b348015610329575f80fd5b5060065461017c9060ff1681565b348015610342575f80fd5b506102116105bf565b348015610356575f80fd5b506101a16103653660046114cc565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039b338484610967565b5060015b92915050565b5f6103b26009600a6115f7565b6103bf90620f4240611605565b905090565b5f6103d0848484610a8a565b610421843361041c85604051806060016040528060288152602001611799602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061105e565b610967565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461044f575f80fd5b305f90815260016020526040902054801561046d5761046d81611096565b47801561047d5761047d81611206565b5050565b5f546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa9061161c565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105245760405162461bcd60e51b81526004016104aa9061161c565b6105306009600a6115f7565b61053d90620f4240611605565b600f5561054c6009600a6115f7565b61055990620f4240611605565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105936009600a6115f7565b6105a090620f4240611605565b60405190815260200160405180910390a1565b5f61039b338484610a8a565b5f546001600160a01b031633146105e85760405162461bcd60e51b81526004016104aa9061161c565b601454600160a01b900460ff16156106425760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104aa565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561068a90309061067d6009600a6115f7565b61041c90620f4240611605565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fe9190611651565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107819190611651565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ef9190611651565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610836816001600160a01b03165f9081526001602052604090205490565b5f806108495f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108af573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d4919061166c565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610929573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094d9190611697565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109c95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b038216610a2a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610aee5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b038216610b505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610bb15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b5f80546001600160a01b03858116911614801590610bdc57505f546001600160a01b03848116911614155b15610f2157610c0d6064610c07600b54600e5411610bfc57600754610c00565b6009545b8590611241565b906112c6565b60065490915060ff1615610cf3576013546001600160a01b03848116911614801590610c4757506014546001600160a01b03848116911614155b15610cf357325f908152600560205260409020544311610ce15760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104aa565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610d1e57506013546001600160a01b03848116911614155b8015610d4257506001600160a01b0383165f9081526003602052604090205460ff16155b15610e2857600f54821115610d995760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104aa565b60105482610dbb856001600160a01b03165f9081526001602052604090205490565b610dc591906116b6565b1115610e135760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104aa565b600e8054905f610e22836116c9565b91905055505b6014546001600160a01b038481169116148015610e4e57506001600160a01b0384163014155b15610e7b57610e786064610c07600c54600e5411610e6e57600854610c00565b600a548590611241565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610eb157506014546001600160a01b038581169116145b8015610ec65750601454600160b01b900460ff165b8015610ed3575060115481115b8015610ee25750600d54600e54115b15610f1f57610f04610eff84610efa84601254611307565b611307565b611096565b4766b1a2bc2ec50000811115610f1d57610f1d47611206565b505b505b8015610f9957305f90815260016020526040902054610f40908261131b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f909085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fbb9083611379565b6001600160a01b0385165f90815260016020526040902055610ffe610fe08383611379565b6001600160a01b0385165f908152600160205260409020549061131b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110478585611379565b60405190815260200160405180910390a350505050565b5f81848411156110815760405162461bcd60e51b81526004016104aa91906113e6565b505f61108d84866116e1565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110dc576110dc6116f4565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611133573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111579190611651565b8160018151811061116a5761116a6116f4565b6001600160a01b0392831660209182029290920101526013546111909130911684610967565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c89085905f90869030904290600401611708565b5f604051808303815f87803b1580156111df575f80fd5b505af11580156111f1573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f1935050505015801561047d573d5f803e3d5ffd5b5f825f0361125057505f61039f565b5f61125b8385611605565b9050826112688583611779565b146112bf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b9392505050565b5f6112bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ba565b5f81831161131557826112bf565b50919050565b5f8061132783856116b6565b9050838110156112bf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f6112bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061105e565b5f81836113da5760405162461bcd60e51b81526004016104aa91906113e6565b505f61108d8486611779565b5f602080835283518060208501525f5b81811015611412578581018301518582016040015282016113f6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611446575f80fd5b50565b5f806040838503121561145a575f80fd5b823561146581611432565b946020939093013593505050565b5f805f60608486031215611485575f80fd5b833561149081611432565b925060208401356114a081611432565b929592945050506040919091013590565b5f602082840312156114c1575f80fd5b81356112bf81611432565b5f80604083850312156114dd575f80fd5b82356114e881611432565b915060208301356114f881611432565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561155157815f190482111561153757611537611503565b8085161561154457918102915b93841c939080029061151c565b509250929050565b5f826115675750600161039f565b8161157357505f61039f565b81600181146115895760028114611593576115af565b600191505061039f565b60ff8411156115a4576115a4611503565b50506001821b61039f565b5060208310610133831016604e8410600b84101617156115d2575081810a61039f565b6115dc8383611517565b805f19048211156115ef576115ef611503565b029392505050565b5f6112bf60ff841683611559565b808202811582820484141761039f5761039f611503565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611661575f80fd5b81516112bf81611432565b5f805f6060848603121561167e575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156116a7575f80fd5b815180151581146112bf575f80fd5b8082018082111561039f5761039f611503565b5f600182016116da576116da611503565b5060010190565b8181038181111561039f5761039f611503565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117585784516001600160a01b031683529383019391830191600101611733565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261179357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f1c1e8b4c2f6e4d8d39556b9ee8c2d2c628522bc3cfe51546c2440d7fc9a79cc64736f6c63430008170033

Deployed Bytecode Sourcemap

3688:7974:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5602:83;;;;;;;;;;-1:-1:-1;5672:5:0;;;;;;;;;;;;-1:-1:-1;;;5672:5:0;;;;5602:83;;;;;;;:::i;:::-;;;;;;;;6435:161;;;;;;;;;;-1:-1:-1;6435:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6435:161:0;1023:187:1;4880:49:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4880:49:0;1215:177:1;5879:95:0;;;;;;;;;;;;;:::i;6604:313::-;;;;;;;;;;-1:-1:-1;6604:313:0;;;;;:::i;:::-;;:::i;5788:83::-;;;;;;;;;;-1:-1:-1;5788:83:0;;4521:1;2000:36:1;;1988:2;1973:18;5788:83:0;1858:184:1;11311:348:0;;;;;;;;;;;;;:::i;:::-;;5982:119;;;;;;;;;;-1:-1:-1;5982:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6075:18:0;6048:7;6075:18;;;:9;:18;;;;;;;5982:119;2769:148;;;;;;;;;;;;;:::i;10289:196::-;;;;;;;;;;;;;:::i;4700:51::-;;;;;;;;;;;;;;;;2555:79;;;;;;;;;;-1:-1:-1;2593:7:0;2620:6;2555:79;;-1:-1:-1;;;;;2620:6:0;;;2445:51:1;;2433:2;2418:18;2555:79:0;2299:203:1;4758:53:0;;;;;;;;;;;;;;;;5693:87;;;;;;;;;;-1:-1:-1;5765:7:0;;;;;;;;;;;;-1:-1:-1;;;5765:7:0;;;;5693:87;;6109:167;;;;;;;;;;-1:-1:-1;6109:167:0;;;;;:::i;:::-;;:::i;4818:55::-;;;;;;;;;;;;;;;;4078:39;;;;;;;;;;-1:-1:-1;4078:39:0;;;;;;;;10595:671;;;;;;;;;;;;;:::i;6284:143::-;;;;;;;;;;-1:-1:-1;6284:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6392:18:0;;;6365:7;6392:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6284:143;6435:161;6510:4;6527:39;390:10;6550:7;6559:6;6527:8;:39::i;:::-;-1:-1:-1;6584:4:0;6435:161;;;;;:::o;5879:95::-;5932:7;4574:13;4521:1;4574:2;:13;:::i;:::-;4564:23;;:7;:23;:::i;:::-;5952:14;;5879:95;:::o;6604:313::-;6702:4;6719:36;6729:6;6737:9;6748:6;6719:9;:36::i;:::-;6766:121;6775:6;390:10;6797:89;6835:6;6797:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6797:19:0;;;;;;:11;:19;;;;;;;;390:10;6797:33;;;;;;;;;;:37;:89::i;:::-;6766:8;:121::i;:::-;-1:-1:-1;6905:4:0;6604:313;;;;;:::o;11311:348::-;11375:10;;;;;-1:-1:-1;;;;;11375:10:0;390;-1:-1:-1;;;;;11361:24:0;;11353:33;;;;;;11436:4;11397:20;6075:18;;;:9;:18;;;;;;11456:14;;11453:73;;11484:30;11501:12;11484:16;:30::i;:::-;11555:21;11590:12;;11587:65;;11616:24;11629:10;11616:12;:24::i;:::-;11342:317;;11311:348::o;2769:148::-;2682:6;;-1:-1:-1;;;;;2682:6:0;390:10;2682:22;2674:67;;;;-1:-1:-1;;;2674:67:0;;;;;;;:::i;:::-;;;;;;;;;2876:1:::1;2860:6:::0;;2839:40:::1;::::0;-1:-1:-1;;;;;2860:6:0;;::::1;::::0;2839:40:::1;::::0;2876:1;;2839:40:::1;2907:1;2890:19:::0;;-1:-1:-1;;;;;;2890:19:0::1;::::0;;2769:148::o;10289:196::-;2682:6;;-1:-1:-1;;;;;2682:6:0;390:10;2682:22;2674:67;;;;-1:-1:-1;;;2674:67:0;;;;;;;:::i;:::-;4574:13:::1;4521:1;4574:2;:13;:::i;:::-;4564:23;::::0;:7:::1;:23;:::i;:::-;10342:12;:22:::0;4574:13:::1;4521:1;4574:2;:13;:::i;:::-;4564:23;::::0;:7:::1;:23;:::i;:::-;10375:14;:22:::0;10408:20:::1;:26:::0;;-1:-1:-1;;10408:26:0::1;::::0;;10450:27:::1;4574:13;4521:1;-1:-1:-1::0;4574:13:0::1;:::i;:::-;4564:23;::::0;:7:::1;:23;:::i;:::-;10450:27;::::0;1361:25:1;;;1349:2;1334:18;10450:27:0::1;;;;;;;10289:196::o:0;6109:167::-;6187:4;6204:42;390:10;6228:9;6239:6;6204:9;:42::i;10595:671::-;2682:6;;-1:-1:-1;;;;;2682:6:0;390:10;2682:22;2674:67;;;;-1:-1:-1;;;2674:67:0;;;;;;;:::i;:::-;10659:11:::1;::::0;-1:-1:-1;;;10659:11:0;::::1;;;10658:12;10650:47;;;::::0;-1:-1:-1;;;10650:47:0;;5145:2:1;10650:47:0::1;::::0;::::1;5127:21:1::0;5184:2;5164:18;;;5157:30;5223:25;5203:18;;;5196:53;5266:18;;10650:47:0::1;4943:347:1::0;10650:47:0::1;10708:15;:80:::0;;-1:-1:-1;;;;;;10708:80:0::1;10745:42;10708:80:::0;;::::1;::::0;;;10799:58:::1;::::0;10816:4:::1;::::0;4574:13:::1;4521:1;4574:2;:13;:::i;:::-;4564:23;::::0;:7:::1;:23;:::i;10799:58::-;10902:15;;;;;;;;;-1:-1:-1::0;;;;;10902:15:0::1;-1:-1:-1::0;;;;;10902:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10884:55:0::1;;10948:4;10955:15;;;;;;;;;-1:-1:-1::0;;;;;10955:15:0::1;-1:-1:-1::0;;;;;10955:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10884:94;::::0;-1:-1:-1;;;;;;10884:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5781:15:1;;;10884:94:0::1;::::0;::::1;5763:34:1::0;5833:15;;5813:18;;;5806:43;5698:18;;10884:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10868:13;:110:::0;;-1:-1:-1;;;;;10868:110:0;;::::1;-1:-1:-1::0;;;;;;10868:110:0;;::::1;;::::0;;10989:15:::1;::::0;::::1;:31;11028:21;11059:4;11065:24;11059:4:::0;-1:-1:-1;;;;;6075:18:0;6048:7;6075:18;;;:9;:18;;;;;;;5982:119;11065:24:::1;11090:1;11092::::0;11094:7:::1;2593::::0;2620:6;-1:-1:-1;;;;;2620:6:0;;2555:79;11094:7:::1;10989:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10989:129:0;;;-1:-1:-1;;;;;6219:15:1;;;10989:129:0::1;::::0;::::1;6201:34:1::0;6251:18;;;6244:34;;;;6294:18;;;6287:34;;;;6337:18;;;6330:34;6401:15;;;6380:19;;;6373:44;11102:15:0::1;6433:19:1::0;;;6426:35;6135:19;;10989:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11136:13:0::1;::::0;11167:15:::1;::::0;11129:71:::1;::::0;-1:-1:-1;;;11129:71:0;;-1:-1:-1;;;;;11167:15:0;;::::1;11129:71;::::0;::::1;6957:51:1::0;-1:-1:-1;;7024:18:1;;;7017:34;11136:13:0;::::1;::::0;-1:-1:-1;11129:29:0::1;::::0;6930:18:1;;11129:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11211:11:0::1;:18:::0;;-1:-1:-1;;;;11240:18:0;-1:-1:-1;;;11240:18:0;;;10595:671::o;6925:335::-;-1:-1:-1;;;;;7018:19:0;;7010:68;;;;-1:-1:-1;;;7010:68:0;;7546:2:1;7010:68:0;;;7528:21:1;7585:2;7565:18;;;7558:30;7624:34;7604:18;;;7597:62;-1:-1:-1;;;7675:18:1;;;7668:34;7719:19;;7010:68:0;7344:400:1;7010:68:0;-1:-1:-1;;;;;7097:21:0;;7089:68;;;;-1:-1:-1;;;7089:68:0;;7951:2:1;7089:68:0;;;7933:21:1;7990:2;7970:18;;;7963:30;8029:34;8009:18;;;8002:62;-1:-1:-1;;;8080:18:1;;;8073:32;8122:19;;7089:68:0;7749:398:1;7089:68:0;-1:-1:-1;;;;;7168:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7220:32;;1361:25:1;;;7220:32:0;;1334:18:1;7220:32:0;;;;;;;6925:335;;;:::o;7268:2414::-;-1:-1:-1;;;;;7356:18:0;;7348:68;;;;-1:-1:-1;;;7348:68:0;;8354:2:1;7348:68:0;;;8336:21:1;8393:2;8373:18;;;8366:30;8432:34;8412:18;;;8405:62;-1:-1:-1;;;8483:18:1;;;8476:35;8528:19;;7348:68:0;8152:401:1;7348:68:0;-1:-1:-1;;;;;7435:16:0;;7427:64;;;;-1:-1:-1;;;7427:64:0;;8760:2:1;7427:64:0;;;8742:21:1;8799:2;8779:18;;;8772:30;8838:34;8818:18;;;8811:62;-1:-1:-1;;;8889:18:1;;;8882:33;8932:19;;7427:64:0;8558:399:1;7427:64:0;7519:1;7510:6;:10;7502:64;;;;-1:-1:-1;;;7502:64:0;;9164:2:1;7502:64:0;;;9146:21:1;9203:2;9183:18;;;9176:30;9242:34;9222:18;;;9215:62;-1:-1:-1;;;9293:18:1;;;9286:39;9342:19;;7502:64:0;8962:405:1;7502:64:0;7577:17;2620:6;;-1:-1:-1;;;;;7611:15:0;;;2620:6;;7611:15;;;;:32;;-1:-1:-1;2593:7:0;2620:6;-1:-1:-1;;;;;7630:13:0;;;2620:6;;7630:13;;7611:32;7607:1719;;;7672:76;7744:3;7672:67;7694:15;;7684:9;;:25;7683:55;;7724:14;;7683:55;;;7711:12;;7683:55;7672:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7769:20;;7660:88;;-1:-1:-1;7769:20:0;;7765:508;;;7830:15;;-1:-1:-1;;;;;7816:30:0;;;7830:15;;7816:30;;;;:62;;-1:-1:-1;7864:13:0;;-1:-1:-1;;;;;7850:28:0;;;7864:13;;7850:28;;7816:62;7812:444;;;7970:9;7941:39;;;;:28;:39;;;;;;8014:12;-1:-1:-1;7905:250:0;;;;-1:-1:-1;;;7905:250:0;;9574:2:1;7905:250:0;;;9556:21:1;9613:2;9593:18;;;9586:30;9652:34;9632:18;;;9625:62;9723:34;9703:18;;;9696:62;-1:-1:-1;;;9774:19:1;;;9767:40;9824:19;;7905:250:0;9372:477:1;7905:250:0;8209:9;8180:39;;;;:28;:39;;;;;8222:12;8180:54;;7812:444;8301:13;;-1:-1:-1;;;;;8293:21:0;;;8301:13;;8293:21;:55;;;;-1:-1:-1;8332:15:0;;-1:-1:-1;;;;;8318:30:0;;;8332:15;;8318:30;;8293:55;:83;;;;-1:-1:-1;;;;;;8354:22:0;;;;;;:18;:22;;;;;;;;8352:24;8293:83;8289:313;;;8416:12;;8406:6;:22;;8398:60;;;;-1:-1:-1;;;8398:60:0;;10056:2:1;8398:60:0;;;10038:21:1;10095:2;10075:18;;;10068:30;10134:27;10114:18;;;10107:55;10179:18;;8398:60:0;9854:349:1;8398:60:0;8511:14;;8501:6;8485:13;8495:2;-1:-1:-1;;;;;6075:18:0;6048:7;6075:18;;;:9;:18;;;;;;;5982:119;8485:13;:22;;;;:::i;:::-;:40;;8477:79;;;;-1:-1:-1;;;8477:79:0;;10540:2:1;8477:79:0;;;10522:21:1;10579:2;10559:18;;;10552:30;10618:28;10598:18;;;10591:56;10664:18;;8477:79:0;10338:350:1;8477:79:0;8575:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8289:313;8627:13;;-1:-1:-1;;;;;8621:19:0;;;8627:13;;8621:19;:43;;;;-1:-1:-1;;;;;;8644:20:0;;8659:4;8644:20;;8621:43;8618:174;;;8697:79;8772:3;8697:70;8719:16;;8709:9;;:26;8708:58;;8751:15;;8708:58;;;8737:13;;8697:6;;:10;:70::i;:79::-;8685:91;;8618:174;8857:4;8808:28;6075:18;;;:9;:18;;;;;;8883:6;;-1:-1:-1;;;8883:6:0;;;;8882:7;:32;;;;-1:-1:-1;8901:13:0;;-1:-1:-1;;;;;8893:21:0;;;8901:13;;8893:21;8882:32;:47;;;;-1:-1:-1;8918:11:0;;-1:-1:-1;;;8918:11:0;;;;8882:47;:89;;;;;8954:17;;8933:20;:38;8882:89;:121;;;;;8985:18;;8975:9;;:28;8882:121;8878:437;;;9024:67;9041:49;9045:6;9052:37;9056:20;9077:11;;9052:3;:37::i;:::-;9041:3;:49::i;:::-;9024:16;:67::i;:::-;9139:21;9203:17;9182:38;;9179:121;;;9245:35;9258:21;9245:12;:35::i;:::-;9005:310;8878:437;7645:1681;7607:1719;9341:11;;9338:161;;9409:4;9391:24;;;;:9;:24;;;;;;:39;;9420:9;9391:28;:39::i;:::-;9384:4;9366:24;;;;:9;:24;;;;;;;:64;;;;9448:39;;-1:-1:-1;;;;;9448:39:0;;;;;;;9477:9;1361:25:1;;1349:2;1334:18;;1215:177;9448:39:0;;;;;;;;9338:161;-1:-1:-1;;;;;9525:15:0;;;;;;:9;:15;;;;;;:27;;9545:6;9525:19;:27::i;:::-;-1:-1:-1;;;;;9509:15:0;;;;;;:9;:15;;;;;:43;9577:40;9595:21;:6;9606:9;9595:10;:21::i;:::-;-1:-1:-1;;;;;9577:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9563:13:0;;;;;;;:9;:13;;;;;:54;;;;9633:41;;;9652:21;:6;9663:9;9652:10;:21::i;:::-;9633:41;;1361:25:1;;;1349:2;1334:18;9633:41:0;;;;;;;7337:2345;7268:2414;;;:::o;1447:190::-;1533:7;1569:12;1561:6;;;;1553:29;;;;-1:-1:-1;;;1553:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1593:9:0;1605:5;1609:1;1605;:5;:::i;:::-;1593:17;1447:190;-1:-1:-1;;;;;1447:190:0:o;9798:483::-;5211:6;:13;;-1:-1:-1;;;;5211:13:0;-1:-1:-1;;;5211:13:0;;;9900:16:::1;::::0;;9914:1:::1;9900:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9900:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9900:16:0::1;9876:40;;9945:4;9927;9932:1;9927:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9927:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9971:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9971:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9927:7;;9971:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9961:4;9966:1;9961:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9961:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10036:15:::1;::::0;10004:62:::1;::::0;10021:4:::1;::::0;10036:15:::1;10054:11:::0;10004:8:::1;:62::i;:::-;10077:15;::::0;:196:::1;::::0;-1:-1:-1;;;10077:196:0;;-1:-1:-1;;;;;10077:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10158:11;;10077:15:::1;::::0;10200:4;;10227::::1;::::0;10247:15:::1;::::0;10077:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5247:6:0;:14;;-1:-1:-1;;;;5247:14:0;;;-1:-1:-1;;;;9798:483:0:o;10493:92::-;10550:10;;:27;;:10;;;;-1:-1:-1;;;;;10550:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1645:246;1703:7;1727:1;1732;1727:6;1723:47;;-1:-1:-1;1757:1:0;1750:8;;1723:47;1780:9;1792:5;1796:1;1792;:5;:::i;:::-;1780:17;-1:-1:-1;1825:1:0;1816:5;1820:1;1780:17;1816:5;:::i;:::-;:10;1808:56;;;;-1:-1:-1;;;1808:56:0;;12639:2:1;1808:56:0;;;12621:21:1;12678:2;12658:18;;;12651:30;12717:34;12697:18;;;12690:62;-1:-1:-1;;;12768:18:1;;;12761:31;12809:19;;1808:56:0;12437:397:1;1808:56:0;1882:1;1645:246;-1:-1:-1;;;1645:246:0:o;1899:132::-;1957:7;1984:39;1988:1;1991;1984:39;;;;;;;;;;;;;;;;;:3;:39::i;9692:98::-;9749:7;9776:1;9774;:3;9773:9;;9781:1;9773:9;;;-1:-1:-1;9779:1:0;9692:98;-1:-1:-1;9692:98:0:o;1116:179::-;1174:7;;1206:5;1210:1;1206;:5;:::i;:::-;1194:17;;1235:1;1230;:6;;1222:46;;;;-1:-1:-1;;;1222:46:0;;13041:2:1;1222:46:0;;;13023:21:1;13080:2;13060:18;;;13053:30;13119:29;13099:18;;;13092:57;13166:18;;1222:46:0;12839:351:1;1303:136:0;1361:7;1388:43;1392:1;1395;1388:43;;;;;;;;;;;;;;;;;:3;:43::i;2039:189::-;2125:7;2160:12;2153:5;2145:28;;;;-1:-1:-1;;;2145:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2184:9:0;2196:5;2200:1;2196;: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:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;5295:251::-;5365:6;5418:2;5406:9;5397:7;5393:23;5389:32;5386:52;;;5434:1;5431;5424:12;5386:52;5466:9;5460:16;5485:31;5510:5;5485:31;:::i;6472:306::-;6560:6;6568;6576;6629:2;6617:9;6608:7;6604:23;6600:32;6597:52;;;6645:1;6642;6635:12;6597:52;6674:9;6668:16;6658:26;;6724:2;6713:9;6709:18;6703:25;6693:35;;6768:2;6757:9;6753:18;6747:25;6737:35;;6472:306;;;;;:::o;7062:277::-;7129:6;7182:2;7170:9;7161:7;7157:23;7153:32;7150:52;;;7198:1;7195;7188:12;7150:52;7230:9;7224:16;7283:5;7276:13;7269:21;7262:5;7259:32;7249:60;;7305:1;7302;7295:12;10208:125;10273:9;;;10294:10;;;10291:36;;;10307:18;;:::i;10693:135::-;10732:3;10753:17;;;10750:43;;10773:18;;:::i;:::-;-1:-1:-1;10820:1:1;10809:13;;10693:135::o;10833:128::-;10900:9;;;10921:11;;;10918:37;;;10935:18;;:::i;11098:127::-;11159:10;11154:3;11150:20;11147:1;11140:31;11190:4;11187:1;11180:15;11214:4;11211:1;11204:15;11230:980;11492:4;11540:3;11529:9;11525:19;11571:6;11560:9;11553:25;11597:2;11635:6;11630:2;11619:9;11615:18;11608:34;11678:3;11673:2;11662:9;11658:18;11651:31;11702:6;11737;11731:13;11768:6;11760;11753:22;11806:3;11795:9;11791:19;11784:26;;11845:2;11837:6;11833:15;11819:29;;11866:1;11876:195;11890:6;11887:1;11884:13;11876:195;;;11955:13;;-1:-1:-1;;;;;11951:39:1;11939:52;;12046:15;;;;12011:12;;;;11987:1;11905:9;11876:195;;;-1:-1:-1;;;;;;;12127:32:1;;;;12122:2;12107:18;;12100:60;-1:-1:-1;;;12191:3:1;12176:19;12169:35;12088:3;11230:980;-1:-1:-1;;;11230:980:1:o;12215:217::-;12255:1;12281;12271:132;;12325:10;12320:3;12316:20;12313:1;12306:31;12360:4;12357:1;12350:15;12388:4;12385:1;12378:15;12271:132;-1:-1:-1;12417:9:1;;12215:217::o

Swarm Source

ipfs://f1c1e8b4c2f6e4d8d39556b9ee8c2d2c628522bc3cfe51546c2440d7fc9a79cc

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.