ETH Price: $3,299.18 (-3.09%)
 

Overview

ETH Balance

0.025 ETH

Eth Value

$82.48 (@ $3,299.18/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214072242024-12-15 10:08:3541 days ago1734257315IN
0x938EF9cA...a8525c4bc
0 ETH0.000262765.6415486
Transfer214040272024-12-14 23:26:1141 days ago1734218771IN
0x938EF9cA...a8525c4bc
0 ETH0.000520987.35389404
Transfer210378862024-10-24 20:35:3592 days ago1729802135IN
0x938EF9cA...a8525c4bc
0 ETH0.0010786215.22258872
Approve206903642024-09-06 8:29:35141 days ago1725611375IN
0x938EF9cA...a8525c4bc
0 ETH0.00014333.08070933
Approve206549732024-09-01 9:57:47146 days ago1725184667IN
0x938EF9cA...a8525c4bc
0 ETH0.000050831.09983736
Approve203366872024-07-18 23:27:23190 days ago1721345243IN
0x938EF9cA...a8525c4bc
0 ETH0.000350757.54031142
Approve202506932024-07-06 23:15:59202 days ago1720307759IN
0x938EF9cA...a8525c4bc
0 ETH0.000105892.27346799
Approve201004232024-06-15 23:18:59223 days ago1718493539IN
0x938EF9cA...a8525c4bc
0 ETH0.000221744.76706809
Approve199459272024-05-25 9:14:11245 days ago1716628451IN
0x938EF9cA...a8525c4bc
0 ETH0.000313096.73082041
Approve199321922024-05-23 11:09:47247 days ago1716462587IN
0x938EF9cA...a8525c4bc
0 ETH0.000386258.29293296
Approve199284832024-05-22 22:44:23247 days ago1716417863IN
0x938EF9cA...a8525c4bc
0 ETH0.000313056.72990899
Approve198496742024-05-11 22:08:23258 days ago1715465303IN
0x938EF9cA...a8525c4bc
0 ETH0.000147463.16608805
Approve198268402024-05-08 17:30:59261 days ago1715189459IN
0x938EF9cA...a8525c4bc
0 ETH0.000226124.854782
Transfer192388612024-02-16 7:04:11344 days ago1708067051IN
0x938EF9cA...a8525c4bc
0 ETH0.0018795326.53028499
Transfer192216282024-02-13 21:02:59346 days ago1707858179IN
0x938EF9cA...a8525c4bc
0 ETH0.0034869446.11806229
Approve191011222024-01-27 23:17:23363 days ago1706397443IN
0x938EF9cA...a8525c4bc
0 ETH0.000593112.7502816
Approve190625332024-01-22 13:20:59368 days ago1705929659IN
0x938EF9cA...a8525c4bc
0 ETH0.0008167817.67272906
Approve190561372024-01-21 15:28:59369 days ago1705850939IN
0x938EF9cA...a8525c4bc
0 ETH0.0009640420.69789764
Approve190012032024-01-13 23:18:47377 days ago1705187927IN
0x938EF9cA...a8525c4bc
0 ETH0.0006575214.13508884
Approve189884262024-01-12 4:26:23379 days ago1705033583IN
0x938EF9cA...a8525c4bc
0 ETH0.000819617.61937447
Approve189370662024-01-04 22:56:35386 days ago1704408995IN
0x938EF9cA...a8525c4bc
0 ETH0.0007843616.86198908
Approve189106052024-01-01 5:46:47390 days ago1704088007IN
0x938EF9cA...a8525c4bc
0 ETH0.000464269.98043911
Transfer189028632023-12-31 3:43:47391 days ago1703994227IN
0x938EF9cA...a8525c4bc
0 ETH0.000712313.25053834
Transfer189012382023-12-30 22:15:11391 days ago1703974511IN
0x938EF9cA...a8525c4bc
0 ETH0.0011266515.90034819
Approve188894372023-12-29 6:24:11393 days ago1703831051IN
0x938EF9cA...a8525c4bc
0 ETH0.0009532520.49271586
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.03908841 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.03908841 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04096282 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04096282 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04297558 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04297558 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04514068 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04514068 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04747389 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.04747389 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.0499931 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.0499931 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.05271864 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.05271864 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.05567369 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.05567369 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.05888478 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.05888478 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.06238239 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.06238239 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.0662017 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.0662017 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.07038344 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.07038344 ETH
186135542023-11-20 14:20:11431 days ago1700490011
0x938EF9cA...a8525c4bc
0.07497499 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bonk

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-11-20
*/

/*

https://bonk.rsvp/

https://t.me/BONK_Entry

https://twitter.com/BONKCOINERC

*/

// 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 Bonk 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;
    address payable private _taxWallet;
    uint256 firstBlock;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000000 * 10**_decimals;
    string private constant _name = unicode"Bonk";
    string private constant _symbol = unicode"Bonk";
    uint256 public _maxTxAmount = 200000000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 100000000 * 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]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

            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 > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

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

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

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

    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;
        firstBlock = block.number;
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[{"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"}]

60806040526019600755601e6008555f6009555f600a556014600b55601e600c556014600d555f600e556009600a62000039919062000332565b6200004990630bebc20062000349565b600f556200005a6009600a62000332565b6200006a90630bebc20062000349565b6010556200007b6009600a62000332565b6200008b906305f5e10062000349565b6011556200009c6009600a62000332565b620000ac906305f5e10062000349565b6012556014805461ffff60a81b19169055348015620000c9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200012a6009600a62000332565b6200013b906402540be40062000349565b335f908152600160208190526040822092909255600390620001645f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001c23390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001fb6009600a62000332565b6200020c906402540be40062000349565b60405190815260200160405180910390a362000363565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200027757815f19048211156200025b576200025b62000223565b808516156200026957918102915b93841c93908002906200023c565b509250929050565b5f826200028f575060016200032c565b816200029d57505f6200032c565b8160018114620002b65760028114620002c157620002e1565b60019150506200032c565b60ff841115620002d557620002d562000223565b50506001821b6200032c565b5060208310610133831016604e8410600b841016171562000306575081810a6200032c565b62000312838362000237565b805f190482111562000328576200032862000223565b0290505b92915050565b5f6200034260ff8416836200027f565b9392505050565b80820281158282048414176200032c576200032c62000223565b6119f680620003715f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610308578063bf474bed14610327578063c9567bf91461033c578063d34628cc14610350578063dd62ed3e1461036f575f80fd5b8063751039fc146102a45780637d1db4a5146102b85780638da5cb5b146102cd5780638f9a55c0146102f357806395d89b4114610129575f80fd5b8063313ce567116100e3578063313ce567146101e957806331c2d847146102045780633bbac5791461022557806370a082311461025c578063715018a614610290575f80fd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b657806323b872dd146101ca575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820182526004815263426f6e6b60e01b6020820152905161015b9190611505565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611577565b6103b3565b604051901515815260200161015b565b34801561019e575f80fd5b506101a860125481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103c9565b3480156101d5575f80fd5b506101836101e43660046115a1565b6103ea565b3480156101f4575f80fd5b506040516009815260200161015b565b34801561020f575f80fd5b5061022361021e3660046115f3565b610451565b005b348015610230575f80fd5b5061018361023f3660046116b3565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610267575f80fd5b506101a86102763660046116b3565b6001600160a01b03165f9081526001602052604090205490565b34801561029b575f80fd5b506102236104eb565b3480156102af575f80fd5b5061022361055c565b3480156102c3575f80fd5b506101a8600f5481565b3480156102d8575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102fe575f80fd5b506101a860105481565b348015610313575f80fd5b50610183610322366004611577565b610610565b348015610332575f80fd5b506101a860115481565b348015610347575f80fd5b5061022361061c565b34801561035b575f80fd5b5061022361036a3660046115f3565b6109ca565b34801561037a575f80fd5b506101a86103893660046116ce565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103bf338484610a58565b5060015b92915050565b5f6103d66009600a6117f9565b6103e5906402540be400611807565b905090565b5f6103f6848484610b7b565b610447843361044285604051806060016040528060288152602001611999602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611181565b610a58565b5060019392505050565b5f546001600160a01b031633146104835760405162461bcd60e51b815260040161047a9061181e565b60405180910390fd5b5f5b81518110156104e7575f60045f8484815181106104a4576104a4611853565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806104df81611867565b915050610485565b5050565b5f546001600160a01b031633146105145760405162461bcd60e51b815260040161047a9061181e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105855760405162461bcd60e51b815260040161047a9061181e565b6105916009600a6117f9565b6105a0906402540be400611807565b600f556105af6009600a6117f9565b6105be906402540be400611807565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ee6009600a6117f9565b6105fd906402540be400611807565b60405190815260200160405180910390a1565b5f6103bf338484610b7b565b5f546001600160a01b031633146106455760405162461bcd60e51b815260040161047a9061181e565b601454600160a01b900460ff161561069f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106e99030906106da6009600a6117f9565b610442906402540be400611807565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610739573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075d919061187f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e0919061187f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084e919061187f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610895816001600160a01b03165f9081526001602052604090205490565b5f806108a85f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561090e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610933919061189a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610988573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ac91906118c5565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b5f546001600160a01b031633146109f35760405162461bcd60e51b815260040161047a9061181e565b5f5b81518110156104e757600160045f848481518110610a1557610a15611853565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a5081611867565b9150506109f5565b6001600160a01b038316610aba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047a565b6001600160a01b038216610b1b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bdf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047a565b6001600160a01b038216610c415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047a565b5f8111610ca25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047a565b5f80546001600160a01b03858116911614801590610ccd57505f546001600160a01b03848116911614155b15611044576001600160a01b0384165f9081526004602052604090205460ff16158015610d1257506001600160a01b0383165f9081526004602052604090205460ff16155b610d1a575f80fd5b610d466064610d40600b54600e5411610d3557600754610d39565b6009545b85906111b9565b9061123e565b6014549091506001600160a01b038581169116148015610d7457506013546001600160a01b03848116911614155b8015610d9857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e9f57600f54821115610def5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047a565b60105482610e11856001600160a01b03165f9081526001602052604090205490565b610e1b91906118e4565b1115610e695760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047a565b436006546014610e7991906118e4565b1115610e8a57823b15610e8a575f80fd5b600e8054905f610e9983611867565b91905055505b6014546001600160a01b03848116911614801590610ed557506001600160a01b0383165f9081526003602052604090205460ff16155b15610f545760105482610efc856001600160a01b03165f9081526001602052604090205490565b610f0691906118e4565b1115610f545760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047a565b6014546001600160a01b038481169116148015610f7a57506001600160a01b0384163014155b15610fa757610fa46064610d40600c54600e5411610f9a57600854610d39565b600a5485906111b9565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610fdd57506014546001600160a01b038581169116145b8015610ff25750601454600160b01b900460ff165b8015610fff575060115481115b801561100e5750600d54600e54115b156110425761103061102b846110268460125461127f565b61127f565b611293565b4780156110405761104047611403565b505b505b80156110bc57305f90815260016020526040902054611063908261143a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110de9083611498565b6001600160a01b0385165f908152600160205260409020556111216111038383611498565b6001600160a01b0385165f908152600160205260409020549061143a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116a8585611498565b60405190815260200160405180910390a350505050565b5f81848411156111a45760405162461bcd60e51b815260040161047a9190611505565b505f6111b084866118f7565b95945050505050565b5f825f036111c857505f6103c3565b5f6111d38385611807565b9050826111e0858361190a565b146112375760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047a565b9392505050565b5f61123783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114d9565b5f81831161128d5782611237565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d9576112d9611853565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611330573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611354919061187f565b8160018151811061136757611367611853565b6001600160a01b03928316602091820292909201015260135461138d9130911684610a58565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c59085905f90869030904290600401611929565b5f604051808303815f87803b1580156113dc575f80fd5b505af11580156113ee573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104e7573d5f803e3d5ffd5b5f8061144683856118e4565b9050838110156112375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047a565b5f61123783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611181565b5f81836114f95760405162461bcd60e51b815260040161047a9190611505565b505f6111b0848661190a565b5f6020808352835180828501525f5b8181101561153057858101830151858201604001528201611514565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611564575f80fd5b50565b803561157281611550565b919050565b5f8060408385031215611588575f80fd5b823561159381611550565b946020939093013593505050565b5f805f606084860312156115b3575f80fd5b83356115be81611550565b925060208401356115ce81611550565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611604575f80fd5b823567ffffffffffffffff8082111561161b575f80fd5b818501915085601f83011261162e575f80fd5b813581811115611640576116406115df565b8060051b604051601f19603f83011681018181108582111715611665576116656115df565b604052918252848201925083810185019188831115611682575f80fd5b938501935b828510156116a75761169885611567565b84529385019392850192611687565b98975050505050505050565b5f602082840312156116c3575f80fd5b813561123781611550565b5f80604083850312156116df575f80fd5b82356116ea81611550565b915060208301356116fa81611550565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561175357815f190482111561173957611739611705565b8085161561174657918102915b93841c939080029061171e565b509250929050565b5f82611769575060016103c3565b8161177557505f6103c3565b816001811461178b5760028114611795576117b1565b60019150506103c3565b60ff8411156117a6576117a6611705565b50506001821b6103c3565b5060208310610133831016604e8410600b84101617156117d4575081810a6103c3565b6117de8383611719565b805f19048211156117f1576117f1611705565b029392505050565b5f61123760ff84168361175b565b80820281158282048414176103c3576103c3611705565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161187857611878611705565b5060010190565b5f6020828403121561188f575f80fd5b815161123781611550565b5f805f606084860312156118ac575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118d5575f80fd5b81518015158114611237575f80fd5b808201808211156103c3576103c3611705565b818103818111156103c3576103c3611705565b5f8261192457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119775784516001600160a01b031683529383019391830191600101611952565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220992168bd44fd484a479e9be064c68a823e02ae90d680469270173e9cd74b3c0664736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610308578063bf474bed14610327578063c9567bf91461033c578063d34628cc14610350578063dd62ed3e1461036f575f80fd5b8063751039fc146102a45780637d1db4a5146102b85780638da5cb5b146102cd5780638f9a55c0146102f357806395d89b4114610129575f80fd5b8063313ce567116100e3578063313ce567146101e957806331c2d847146102045780633bbac5791461022557806370a082311461025c578063715018a614610290575f80fd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b657806323b872dd146101ca575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820182526004815263426f6e6b60e01b6020820152905161015b9190611505565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611577565b6103b3565b604051901515815260200161015b565b34801561019e575f80fd5b506101a860125481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103c9565b3480156101d5575f80fd5b506101836101e43660046115a1565b6103ea565b3480156101f4575f80fd5b506040516009815260200161015b565b34801561020f575f80fd5b5061022361021e3660046115f3565b610451565b005b348015610230575f80fd5b5061018361023f3660046116b3565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610267575f80fd5b506101a86102763660046116b3565b6001600160a01b03165f9081526001602052604090205490565b34801561029b575f80fd5b506102236104eb565b3480156102af575f80fd5b5061022361055c565b3480156102c3575f80fd5b506101a8600f5481565b3480156102d8575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102fe575f80fd5b506101a860105481565b348015610313575f80fd5b50610183610322366004611577565b610610565b348015610332575f80fd5b506101a860115481565b348015610347575f80fd5b5061022361061c565b34801561035b575f80fd5b5061022361036a3660046115f3565b6109ca565b34801561037a575f80fd5b506101a86103893660046116ce565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103bf338484610a58565b5060015b92915050565b5f6103d66009600a6117f9565b6103e5906402540be400611807565b905090565b5f6103f6848484610b7b565b610447843361044285604051806060016040528060288152602001611999602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611181565b610a58565b5060019392505050565b5f546001600160a01b031633146104835760405162461bcd60e51b815260040161047a9061181e565b60405180910390fd5b5f5b81518110156104e7575f60045f8484815181106104a4576104a4611853565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806104df81611867565b915050610485565b5050565b5f546001600160a01b031633146105145760405162461bcd60e51b815260040161047a9061181e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105855760405162461bcd60e51b815260040161047a9061181e565b6105916009600a6117f9565b6105a0906402540be400611807565b600f556105af6009600a6117f9565b6105be906402540be400611807565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ee6009600a6117f9565b6105fd906402540be400611807565b60405190815260200160405180910390a1565b5f6103bf338484610b7b565b5f546001600160a01b031633146106455760405162461bcd60e51b815260040161047a9061181e565b601454600160a01b900460ff161561069f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106e99030906106da6009600a6117f9565b610442906402540be400611807565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610739573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075d919061187f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e0919061187f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084e919061187f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610895816001600160a01b03165f9081526001602052604090205490565b5f806108a85f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561090e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610933919061189a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610988573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ac91906118c5565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b5f546001600160a01b031633146109f35760405162461bcd60e51b815260040161047a9061181e565b5f5b81518110156104e757600160045f848481518110610a1557610a15611853565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a5081611867565b9150506109f5565b6001600160a01b038316610aba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047a565b6001600160a01b038216610b1b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bdf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047a565b6001600160a01b038216610c415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047a565b5f8111610ca25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047a565b5f80546001600160a01b03858116911614801590610ccd57505f546001600160a01b03848116911614155b15611044576001600160a01b0384165f9081526004602052604090205460ff16158015610d1257506001600160a01b0383165f9081526004602052604090205460ff16155b610d1a575f80fd5b610d466064610d40600b54600e5411610d3557600754610d39565b6009545b85906111b9565b9061123e565b6014549091506001600160a01b038581169116148015610d7457506013546001600160a01b03848116911614155b8015610d9857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e9f57600f54821115610def5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047a565b60105482610e11856001600160a01b03165f9081526001602052604090205490565b610e1b91906118e4565b1115610e695760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047a565b436006546014610e7991906118e4565b1115610e8a57823b15610e8a575f80fd5b600e8054905f610e9983611867565b91905055505b6014546001600160a01b03848116911614801590610ed557506001600160a01b0383165f9081526003602052604090205460ff16155b15610f545760105482610efc856001600160a01b03165f9081526001602052604090205490565b610f0691906118e4565b1115610f545760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047a565b6014546001600160a01b038481169116148015610f7a57506001600160a01b0384163014155b15610fa757610fa46064610d40600c54600e5411610f9a57600854610d39565b600a5485906111b9565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610fdd57506014546001600160a01b038581169116145b8015610ff25750601454600160b01b900460ff165b8015610fff575060115481115b801561100e5750600d54600e54115b156110425761103061102b846110268460125461127f565b61127f565b611293565b4780156110405761104047611403565b505b505b80156110bc57305f90815260016020526040902054611063908261143a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110de9083611498565b6001600160a01b0385165f908152600160205260409020556111216111038383611498565b6001600160a01b0385165f908152600160205260409020549061143a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116a8585611498565b60405190815260200160405180910390a350505050565b5f81848411156111a45760405162461bcd60e51b815260040161047a9190611505565b505f6111b084866118f7565b95945050505050565b5f825f036111c857505f6103c3565b5f6111d38385611807565b9050826111e0858361190a565b146112375760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047a565b9392505050565b5f61123783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114d9565b5f81831161128d5782611237565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d9576112d9611853565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611330573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611354919061187f565b8160018151811061136757611367611853565b6001600160a01b03928316602091820292909201015260135461138d9130911684610a58565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c59085905f90869030904290600401611929565b5f604051808303815f87803b1580156113dc575f80fd5b505af11580156113ee573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104e7573d5f803e3d5ffd5b5f8061144683856118e4565b9050838110156112375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047a565b5f61123783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611181565b5f81836114f95760405162461bcd60e51b815260040161047a9190611505565b505f6111b0848661190a565b5f6020808352835180828501525f5b8181101561153057858101830151858201604001528201611514565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611564575f80fd5b50565b803561157281611550565b919050565b5f8060408385031215611588575f80fd5b823561159381611550565b946020939093013593505050565b5f805f606084860312156115b3575f80fd5b83356115be81611550565b925060208401356115ce81611550565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611604575f80fd5b823567ffffffffffffffff8082111561161b575f80fd5b818501915085601f83011261162e575f80fd5b813581811115611640576116406115df565b8060051b604051601f19603f83011681018181108582111715611665576116656115df565b604052918252848201925083810185019188831115611682575f80fd5b938501935b828510156116a75761169885611567565b84529385019392850192611687565b98975050505050505050565b5f602082840312156116c3575f80fd5b813561123781611550565b5f80604083850312156116df575f80fd5b82356116ea81611550565b915060208301356116fa81611550565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561175357815f190482111561173957611739611705565b8085161561174657918102915b93841c939080029061171e565b509250929050565b5f82611769575060016103c3565b8161177557505f6103c3565b816001811461178b5760028114611795576117b1565b60019150506103c3565b60ff8411156117a6576117a6611705565b50506001821b6103c3565b5060208310610133831016604e8410600b84101617156117d4575081810a6103c3565b6117de8383611719565b805f19048211156117f1576117f1611705565b029392505050565b5f61123760ff84168361175b565b80820281158282048414176103c3576103c3611705565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161187857611878611705565b5060010190565b5f6020828403121561188f575f80fd5b815161123781611550565b5f805f606084860312156118ac575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118d5575f80fd5b81518015158114611237575f80fd5b808201808211156103c3576103c3611705565b818103818111156103c3576103c3611705565b5f8261192457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119775784516001600160a01b031683529383019391830191600101611952565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220992168bd44fd484a479e9be064c68a823e02ae90d680469270173e9cd74b3c0664736f6c63430008140033

Deployed Bytecode Sourcemap

3570:7994:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5410:83;;;;;;;;;;-1:-1:-1;5480:5:0;;;;;;;;;;;-1:-1:-1;;;5480:5:0;;;;5410:83;;;;5480:5;5410:83;:::i;:::-;;;;;;;;6243:161;;;;;;;;;;-1:-1:-1;6243:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6243:161:0;1162:187:1;4682:53:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4682:53:0;1354:177:1;5687:95:0;;;;;;;;;;;;;:::i;6412:313::-;;;;;;;;;;-1:-1:-1;6412:313:0;;;;;:::i;:::-;;:::i;5596:83::-;;;;;;;;;;-1:-1:-1;5596:83:0;;4307:1;2139:36:1;;2127:2;2112:18;5596:83:0;1997:184:1;10554:162:0;;;;;;;;;;-1:-1:-1;10554:162:0;;;;;:::i;:::-;;:::i;:::-;;10724:83;;;;;;;;;;-1:-1:-1;10724:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10792:7:0;10771:4;10792:7;;;:4;:7;;;;;;;;;10724:83;5790:119;;;;;;;;;;-1:-1:-1;5790:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5883:18:0;5856:7;5883:18;;;:9;:18;;;;;;;5790:119;2651:148;;;;;;;;;;;;;:::i;10115:159::-;;;;;;;;;;;;;:::i;4490:55::-;;;;;;;;;;;;;;;;2437:79;;;;;;;;;;-1:-1:-1;2475:7:0;2502:6;2437:79;;-1:-1:-1;;;;;2502:6:0;;;3842:51:1;;3830:2;3815:18;2437:79:0;3696:203:1;4552:57:0;;;;;;;;;;;;;;;;5917:167;;;;;;;;;;-1:-1:-1;5917:167:0;;;;;:::i;:::-;;:::i;4616:59::-;;;;;;;;;;;;;;;;10815:707;;;;;;;;;;;;;:::i;10382:164::-;;;;;;;;;;-1:-1:-1;10382:164:0;;;;;:::i;:::-;;:::i;6092:143::-;;;;;;;;;;-1:-1:-1;6092:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6200:18:0;;;6173:7;6200:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6092:143;6243:161;6318:4;6335:39;271:10;6358:7;6367:6;6335:8;:39::i;:::-;-1:-1:-1;6392:4:0;6243:161;;;;;:::o;5687:95::-;5740:7;4364:13;4307:1;4364:2;:13;:::i;:::-;4350:27;;:11;:27;:::i;:::-;5760:14;;5687:95;:::o;6412:313::-;6510:4;6527:36;6537:6;6545:9;6556:6;6527:9;:36::i;:::-;6574:121;6583:6;271:10;6605:89;6643:6;6605:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6605:19:0;;;;;;:11;:19;;;;;;;;271:10;6605:33;;;;;;;;;;:37;:89::i;:::-;6574:8;:121::i;:::-;-1:-1:-1;6713:4:0;6412:313;;;;;:::o;10554:162::-;2564:6;;-1:-1:-1;;;;;2564:6:0;271:10;2564:22;2556:67;;;;-1:-1:-1;;;2556:67:0;;;;;;;:::i;:::-;;;;;;;;;10627:6:::1;10622:87;10643:6;:13;10639:1;:17;10622:87;;;10694:5;10676:4;:15;10681:6;10688:1;10681:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10676:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10676:15:0;:23;;-1:-1:-1;;10676:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10658:3;::::1;::::0;::::1;:::i;:::-;;;;10622:87;;;;10554:162:::0;:::o;2651:148::-;2564:6;;-1:-1:-1;;;;;2564:6:0;271:10;2564:22;2556:67;;;;-1:-1:-1;;;2556:67:0;;;;;;;:::i;:::-;2758:1:::1;2742:6:::0;;2721:40:::1;::::0;-1:-1:-1;;;;;2742:6:0;;::::1;::::0;2721:40:::1;::::0;2758:1;;2721:40:::1;2789:1;2772:19:::0;;-1:-1:-1;;;;;;2772:19:0::1;::::0;;2651:148::o;10115:159::-;2564:6;;-1:-1:-1;;;;;2564:6:0;271:10;2564:22;2556:67;;;;-1:-1:-1;;;2556:67:0;;;;;;;:::i;:::-;4364:13:::1;4307:1;4364:2;:13;:::i;:::-;4350:27;::::0;:11:::1;:27;:::i;:::-;10168:12;:22:::0;4364:13:::1;4307:1;4364:2;:13;:::i;:::-;4350:27;::::0;:11:::1;:27;:::i;:::-;10201:14;:22:::0;10239:27:::1;4364:13;4307:1;4364:2;:13;:::i;:::-;4350:27;::::0;:11:::1;:27;:::i;:::-;10239;::::0;1500:25:1;;;1488:2;1473:18;10239:27:0::1;;;;;;;10115:159::o:0;5917:167::-;5995:4;6012:42;271:10;6036:9;6047:6;6012:9;:42::i;10815:707::-;2564:6;;-1:-1:-1;;;;;2564:6:0;271:10;2564:22;2556:67;;;;-1:-1:-1;;;2556:67:0;;;;;;;:::i;:::-;10879:11:::1;::::0;-1:-1:-1;;;10879:11:0;::::1;;;10878:12;10870:47;;;::::0;-1:-1:-1;;;10870:47:0;;6820:2:1;10870:47:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;6898:25;6878:18;;;6871:53;6941:18;;10870:47:0::1;6618:347:1::0;10870:47:0::1;10928:15;:80:::0;;-1:-1:-1;;;;;;10928:80:0::1;10965:42;10928:80:::0;;::::1;::::0;;;11019:58:::1;::::0;11036:4:::1;::::0;4364:13:::1;4307:1;4364:2;:13;:::i;:::-;4350:27;::::0;:11:::1;:27;:::i;11019:58::-;11122:15;;;;;;;;;-1:-1:-1::0;;;;;11122:15:0::1;-1:-1:-1::0;;;;;11122:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11104:55:0::1;;11168:4;11175:15;;;;;;;;;-1:-1:-1::0;;;;;11175:15:0::1;-1:-1:-1::0;;;;;11175:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11104:94;::::0;-1:-1:-1;;;;;;11104:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7456:15:1;;;11104:94:0::1;::::0;::::1;7438:34:1::0;7508:15;;7488:18;;;7481:43;7373:18;;11104:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11088:13;:110:::0;;-1:-1:-1;;;;;11088:110:0;;::::1;-1:-1:-1::0;;;;;;11088:110:0;;::::1;;::::0;;11209:15:::1;::::0;::::1;:31;11248:21;11279:4;11285:24;11279:4:::0;-1:-1:-1;;;;;5883:18:0;5856:7;5883:18;;;:9;:18;;;;;;;5790:119;11285:24:::1;11310:1;11312::::0;11314:7:::1;2475::::0;2502:6;-1:-1:-1;;;;;2502:6:0;;2437:79;11314:7:::1;11209:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11209:129:0;;;-1:-1:-1;;;;;7894:15:1;;;11209:129:0::1;::::0;::::1;7876:34:1::0;7926:18;;;7919:34;;;;7969:18;;;7962:34;;;;8012:18;;;8005:34;8076:15;;;8055:19;;;8048:44;11322:15:0::1;8108:19:1::0;;;8101:35;7810:19;;11209:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11356:13:0::1;::::0;11387:15:::1;::::0;11349:71:::1;::::0;-1:-1:-1;;;11349:71:0;;-1:-1:-1;;;;;11387:15:0;;::::1;11349:71;::::0;::::1;8632:51:1::0;-1:-1:-1;;8699:18:1;;;8692:34;11356:13:0;::::1;::::0;-1:-1:-1;11349:29:0::1;::::0;8605:18:1;;11349:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11431:11:0::1;:18:::0;;-1:-1:-1;;;;11460:18:0;-1:-1:-1;;;11460:18:0;;;11502:12:::1;11489:10;:25:::0;10815:707::o;10382:164::-;2564:6;;-1:-1:-1;;;;;2564:6:0;271:10;2564:22;2556:67;;;;-1:-1:-1;;;2556:67:0;;;;;;;:::i;:::-;10456:6:::1;10451:88;10472:5;:12;10468:1;:16;10451:88;;;10523:4;10506;:14;10511:5;10517:1;10511:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10506:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10506:14:0;:21;;-1:-1:-1;;10506:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10486:3;::::1;::::0;::::1;:::i;:::-;;;;10451:88;;6733:335:::0;-1:-1:-1;;;;;6826:19:0;;6818:68;;;;-1:-1:-1;;;6818:68:0;;9221:2:1;6818:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:34;9394:19;;6818:68:0;9019:400:1;6818:68:0;-1:-1:-1;;;;;6905:21:0;;6897:68;;;;-1:-1:-1;;;6897:68:0;;9626:2:1;6897:68:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:34;9684:18;;;9677:62;-1:-1:-1;;;9755:18:1;;;9748:32;9797:19;;6897:68:0;9424:398:1;6897:68:0;-1:-1:-1;;;;;6976:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7028:32;;1500:25:1;;;7028:32:0;;1473:18:1;7028:32:0;;;;;;;6733:335;;;:::o;7076:2229::-;-1:-1:-1;;;;;7164:18:0;;7156:68;;;;-1:-1:-1;;;7156:68:0;;10029:2:1;7156:68:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:35;10203:19;;7156:68:0;9827:401:1;7156:68:0;-1:-1:-1;;;;;7243:16:0;;7235:64;;;;-1:-1:-1;;;7235:64:0;;10435:2:1;7235:64:0;;;10417:21:1;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:33;10607:19;;7235:64:0;10233:399:1;7235:64:0;7327:1;7318:6;:10;7310:64;;;;-1:-1:-1;;;7310:64:0;;10839:2:1;7310:64:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:34;10897:18;;;10890:62;-1:-1:-1;;;10968:18:1;;;10961:39;11017:19;;7310:64:0;10637:405:1;7310:64:0;7385:17;2502:6;;-1:-1:-1;;;;;7419:15:0;;;2502:6;;7419:15;;;;:32;;-1:-1:-1;2475:7:0;2502:6;-1:-1:-1;;;;;7438:13:0;;;2502:6;;7438:13;;7419:32;7415:1534;;;-1:-1:-1;;;;;7477:10:0;;;;;;:4;:10;;;;;;;;7476:11;:24;;;;-1:-1:-1;;;;;;7492:8:0;;;;;;:4;:8;;;;;;;;7491:9;7476:24;7468:33;;;;;;7528:76;7600:3;7528:67;7550:15;;7540:9;;:25;7539:55;;7580:14;;7539:55;;;7567:12;;7539:55;7528:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7633:13;;7516:88;;-1:-1:-1;;;;;;7625:21:0;;;7633:13;;7625:21;:55;;;;-1:-1:-1;7664:15:0;;-1:-1:-1;;;;;7650:30:0;;;7664:15;;7650:30;;7625:55;:83;;;;-1:-1:-1;;;;;;7686:22:0;;;;;;:18;:22;;;;;;;;7684:24;7625:83;7621:437;;;7748:12;;7738:6;:22;;7730:60;;;;-1:-1:-1;;;7730:60:0;;11249:2:1;7730:60:0;;;11231:21:1;11288:2;11268:18;;;11261:30;11327:27;11307:18;;;11300:55;11372:18;;7730:60:0;11047:349:1;7730:60:0;7843:14;;7833:6;7817:13;7827:2;-1:-1:-1;;;;;5883:18:0;5856:7;5883:18;;;:9;:18;;;;;;;5790:119;7817:13;:22;;;;:::i;:::-;:40;;7809:79;;;;-1:-1:-1;;;7809:79:0;;11733:2:1;7809:79:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;7809:79:0;11531:350:1;7809:79:0;7932:12;7913:10;;7926:2;7913:15;;;;:::i;:::-;:31;7909:104;;;9552:20;;9600:8;7969:24;;;;;;8031:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7621:437;8084:13;;-1:-1:-1;;;;;8078:19:0;;;8084:13;;8078:19;;;;:47;;-1:-1:-1;;;;;;8103:22:0;;;;;;:18;:22;;;;;;;;8101:24;8078:47;8074:167;;;8180:14;;8170:6;8154:13;8164:2;-1:-1:-1;;;;;5883:18:0;5856:7;5883:18;;;:9;:18;;;;;;;5790:119;8154:13;:22;;;;:::i;:::-;:40;;8146:79;;;;-1:-1:-1;;;8146:79:0;;11733:2:1;8146:79:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;8146:79:0;11531:350:1;8146:79:0;8266:13;;-1:-1:-1;;;;;8260:19:0;;;8266:13;;8260:19;:43;;;;-1:-1:-1;;;;;;8283:20:0;;8298:4;8283:20;;8260:43;8257:174;;;8336:79;8411:3;8336:70;8358:16;;8348:9;;:26;8347:58;;8390:15;;8347:58;;;8376:13;;8336:6;;:10;:70::i;:79::-;8324:91;;8257:174;8496:4;8447:28;5883:18;;;:9;:18;;;;;;8522:6;;-1:-1:-1;;;8522:6:0;;;;8521:7;:32;;;;-1:-1:-1;8540:13:0;;-1:-1:-1;;;;;8532:21:0;;;8540:13;;8532:21;8521:32;:47;;;;-1:-1:-1;8557:11:0;;-1:-1:-1;;;8557:11:0;;;;8521:47;:89;;;;;8593:17;;8572:20;:38;8521:89;:121;;;;;8624:18;;8614:9;;:28;8521:121;8517:421;;;8663:67;8680:49;8684:6;8691:37;8695:20;8716:11;;8691:3;:37::i;:::-;8680:3;:49::i;:::-;8663:16;:67::i;:::-;8778:21;8821:22;;8818:105;;8868:35;8881:21;8868:12;:35::i;:::-;8644:294;8517:421;7453:1496;7415:1534;8964:11;;8961:161;;9032:4;9014:24;;;;:9;:24;;;;;;:39;;9043:9;9014:28;:39::i;:::-;9007:4;8989:24;;;;:9;:24;;;;;;;:64;;;;9071:39;;-1:-1:-1;;;;;9071:39:0;;;;;;;9100:9;1500:25:1;;1488:2;1473:18;;1354:177;9071:39:0;;;;;;;;8961:161;-1:-1:-1;;;;;9148:15:0;;;;;;:9;:15;;;;;;:27;;9168:6;9148:19;:27::i;:::-;-1:-1:-1;;;;;9132:15:0;;;;;;:9;:15;;;;;:43;9200:40;9218:21;:6;9229:9;9218:10;:21::i;:::-;-1:-1:-1;;;;;9200:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9186:13:0;;;;;;;:9;:13;;;;;:54;;;;9256:41;;;9275:21;:6;9286:9;9275:10;:21::i;:::-;9256:41;;1500:25:1;;;1488:2;1473:18;9256:41:0;;;;;;;7145:2160;7076:2229;;;:::o;1329:190::-;1415:7;1451:12;1443:6;;;;1435:29;;;;-1:-1:-1;;;1435:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1475:9:0;1487:5;1491:1;1487;:5;:::i;:::-;1475:17;1329:190;-1:-1:-1;;;;;1329:190:0:o;1527:246::-;1585:7;1609:1;1614;1609:6;1605:47;;-1:-1:-1;1639:1:0;1632:8;;1605:47;1662:9;1674:5;1678:1;1674;:5;:::i;:::-;1662:17;-1:-1:-1;1707:1:0;1698:5;1702:1;1662:17;1698:5;:::i;:::-;:10;1690:56;;;;-1:-1:-1;;;1690:56:0;;12443:2:1;1690:56:0;;;12425:21:1;12482:2;12462:18;;;12455:30;12521:34;12501:18;;;12494:62;-1:-1:-1;;;12572:18:1;;;12565:31;12613:19;;1690:56:0;12241:397:1;1690:56:0;1764:1;1527:246;-1:-1:-1;;;1527:246:0:o;1781:132::-;1839:7;1866:39;1870:1;1873;1866:39;;;;;;;;;;;;;;;;;:3;:39::i;9315:98::-;9372:7;9399:1;9397;:3;9396:9;;9404:1;9396:9;;;-1:-1:-1;9402:1:0;9315:98;-1:-1:-1;9315:98:0:o;9624:483::-;5017:6;:13;;-1:-1:-1;;;;5017:13:0;-1:-1:-1;;;5017:13:0;;;9726:16:::1;::::0;;9740:1:::1;9726:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9726:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9726:16:0::1;9702:40;;9771:4;9753;9758:1;9753:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9753:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9797:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9797:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9753:7;;9797:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9787:4;9792:1;9787:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9787:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9862:15:::1;::::0;9830:62:::1;::::0;9847:4:::1;::::0;9862:15:::1;9880:11:::0;9830:8:::1;:62::i;:::-;9903:15;::::0;:196:::1;::::0;-1:-1:-1;;;9903:196:0;;-1:-1:-1;;;;;9903:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9984:11;;9903:15:::1;::::0;10026:4;;10053::::1;::::0;10073:15:::1;::::0;9903:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5053:6:0;:14;;-1:-1:-1;;;;5053:14:0;;;-1:-1:-1;;;;9624:483:0:o;10282:92::-;10339:10;;:27;;-1:-1:-1;;;;;10339:10:0;;;;:27;;;;;10359:6;;10339:10;:27;:10;:27;10359:6;10339:10;:27;;;;;;;;;;;;;;;;;;;998:179;1056:7;;1088:5;1092:1;1088;:5;:::i;:::-;1076:17;;1117:1;1112;:6;;1104:46;;;;-1:-1:-1;;;1104:46:0;;13830:2:1;1104:46:0;;;13812:21:1;13869:2;13849:18;;;13842:30;13908:29;13888:18;;;13881:57;13955:18;;1104:46:0;13628:351:1;1185:136:0;1243:7;1270:43;1274:1;1277;1270:43;;;;;;;;;;;;;;;;;:3;:43::i;1921:189::-;2007:7;2042:12;2035:5;2027:28;;;;-1:-1:-1;;;2027:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2066:9:0;2078:5;2082:1;2078;: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:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;6970:251::-;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7141:9;7135:16;7160:31;7185:5;7160:31;:::i;8147:306::-;8235:6;8243;8251;8304:2;8292:9;8283:7;8279:23;8275:32;8272:52;;;8320:1;8317;8310:12;8272:52;8349:9;8343:16;8333:26;;8399:2;8388:9;8384:18;8378:25;8368:35;;8443:2;8432:9;8428:18;8422:25;8412:35;;8147:306;;;;;:::o;8737:277::-;8804:6;8857:2;8845:9;8836:7;8832:23;8828:32;8825:52;;;8873:1;8870;8863:12;8825:52;8905:9;8899:16;8958:5;8951:13;8944:21;8937:5;8934:32;8924:60;;8980:1;8977;8970:12;11401:125;11466:9;;;11487:10;;;11484:36;;;11500:18;;:::i;11886:128::-;11953:9;;;11974:11;;;11971:37;;;11988:18;;:::i;12019:217::-;12059:1;12085;12075:132;;12129:10;12124:3;12120:20;12117:1;12110:31;12164:4;12161:1;12154:15;12192:4;12189:1;12182:15;12075:132;-1:-1:-1;12221:9:1;;12019:217::o;12643:980::-;12905:4;12953:3;12942:9;12938:19;12984:6;12973:9;12966:25;13010:2;13048:6;13043:2;13032:9;13028:18;13021:34;13091:3;13086:2;13075:9;13071:18;13064:31;13115:6;13150;13144:13;13181:6;13173;13166:22;13219:3;13208:9;13204:19;13197:26;;13258:2;13250:6;13246:15;13232:29;;13279:1;13289:195;13303:6;13300:1;13297:13;13289:195;;;13368:13;;-1:-1:-1;;;;;13364:39:1;13352:52;;13459:15;;;;13424:12;;;;13400:1;13318:9;13289:195;;;-1:-1:-1;;;;;;;13540:32:1;;;;13535:2;13520:18;;13513:60;-1:-1:-1;;;13604:3:1;13589:19;13582:35;13501:3;12643:980;-1:-1:-1;;;12643:980:1:o

Swarm Source

ipfs://992168bd44fd484a479e9be064c68a823e02ae90d680469270173e9cd74b3c06

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.