ETH Price: $3,270.23 (+0.64%)
Gas: 1 Gwei

Contract

0x291922067fec2B0f29bE55eF6645AAddA8d9C1db
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve188538612023-12-24 6:31:35217 days ago1703399495IN
0x29192206...dA8d9C1db
0 ETH0.0011737125.19738253
Approve188513752023-12-23 22:06:11218 days ago1703369171IN
0x29192206...dA8d9C1db
0 ETH0.0010121521.72900589
Approve188510422023-12-23 20:58:47218 days ago1703365127IN
0x29192206...dA8d9C1db
0 ETH0.0009686220.82121033
Approve188509872023-12-23 20:47:23218 days ago1703364443IN
0x29192206...dA8d9C1db
0 ETH0.001024322.13231133
Approve188508312023-12-23 20:15:59218 days ago1703362559IN
0x29192206...dA8d9C1db
0 ETH0.0009563820.55820443
Approve188508092023-12-23 20:11:23218 days ago1703362283IN
0x29192206...dA8d9C1db
0 ETH0.0009790521.01836591
Approve188507092023-12-23 19:51:11218 days ago1703361071IN
0x29192206...dA8d9C1db
0 ETH0.0009133619.63340541
Approve188505082023-12-23 19:10:47218 days ago1703358647IN
0x29192206...dA8d9C1db
0 ETH0.0010124821.76397917
Approve188504752023-12-23 19:04:11218 days ago1703358251IN
0x29192206...dA8d9C1db
0 ETH0.0010226921.98347135
Approve188504512023-12-23 18:59:11218 days ago1703357951IN
0x29192206...dA8d9C1db
0 ETH0.0009152619.67430992
Approve188504372023-12-23 18:56:23218 days ago1703357783IN
0x29192206...dA8d9C1db
0 ETH0.0011737125.19738253
Approve188503682023-12-23 18:42:35218 days ago1703356955IN
0x29192206...dA8d9C1db
0 ETH0.0011804625.37484362
Approve188503402023-12-23 18:36:59218 days ago1703356619IN
0x29192206...dA8d9C1db
0 ETH0.0010740323.05735366
Approve188503352023-12-23 18:35:59218 days ago1703356559IN
0x29192206...dA8d9C1db
0 ETH0.0010674322.94518603
Approve188503312023-12-23 18:35:11218 days ago1703356511IN
0x29192206...dA8d9C1db
0 ETH0.0010258222.05071312
Approve188503192023-12-23 18:32:47218 days ago1703356367IN
0x29192206...dA8d9C1db
0 ETH0.0011858125.65533317
Approve188503122023-12-23 18:31:23218 days ago1703356283IN
0x29192206...dA8d9C1db
0 ETH0.0012295726.60202641
Approve188503092023-12-23 18:30:47218 days ago1703356247IN
0x29192206...dA8d9C1db
0 ETH0.0011084223.79569357
Approve188502702023-12-23 18:22:59218 days ago1703355779IN
0x29192206...dA8d9C1db
0 ETH0.001008521.67859091
Transfer188502692023-12-23 18:22:47218 days ago1703355767IN
0x29192206...dA8d9C1db
0 ETH0.0015849131.6034735
Transfer188502682023-12-23 18:22:35218 days ago1703355755IN
0x29192206...dA8d9C1db
0 ETH0.0015849131.6034735
Transfer188502472023-12-23 18:18:23218 days ago1703355503IN
0x29192206...dA8d9C1db
0 ETH0.0016682533.26536789
Transfer188502472023-12-23 18:18:23218 days ago1703355503IN
0x29192206...dA8d9C1db
0 ETH0.0017235734.36844942
Approve188502462023-12-23 18:18:11218 days ago1703355491IN
0x29192206...dA8d9C1db
0 ETH0.0015870834.30117566
Approve188502462023-12-23 18:18:11218 days ago1703355491IN
0x29192206...dA8d9C1db
0 ETH0.0015870834.30117566
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
188513772023-12-23 22:06:35218 days ago1703369195
0x29192206...dA8d9C1db
0.02947422 ETH
188513772023-12-23 22:06:35218 days ago1703369195
0x29192206...dA8d9C1db
0.02962159 ETH
188503652023-12-23 18:41:59218 days ago1703356919
0x29192206...dA8d9C1db
0.00013692 ETH
188503652023-12-23 18:41:59218 days ago1703356919
0x29192206...dA8d9C1db
0.02738566 ETH
188503652023-12-23 18:41:59218 days ago1703356919
0x29192206...dA8d9C1db
0.02752259 ETH
188503502023-12-23 18:38:59218 days ago1703356739
0x29192206...dA8d9C1db
0.00008957 ETH
188503502023-12-23 18:38:59218 days ago1703356739
0x29192206...dA8d9C1db
0.01791428 ETH
188503502023-12-23 18:38:59218 days ago1703356739
0x29192206...dA8d9C1db
0.01800385 ETH
188503222023-12-23 18:33:23218 days ago1703356403
0x29192206...dA8d9C1db
0.00019813 ETH
188503222023-12-23 18:33:23218 days ago1703356403
0x29192206...dA8d9C1db
0.03962772 ETH
188503222023-12-23 18:33:23218 days ago1703356403
0x29192206...dA8d9C1db
0.03982586 ETH
188502822023-12-23 18:25:23218 days ago1703355923
0x29192206...dA8d9C1db
0.0001271 ETH
188502822023-12-23 18:25:23218 days ago1703355923
0x29192206...dA8d9C1db
0.02542145 ETH
188502822023-12-23 18:25:23218 days ago1703355923
0x29192206...dA8d9C1db
0.02554855 ETH
188502712023-12-23 18:23:11218 days ago1703355791
0x29192206...dA8d9C1db
0.00004226 ETH
188502712023-12-23 18:23:11218 days ago1703355791
0x29192206...dA8d9C1db
0.00845267 ETH
188502712023-12-23 18:23:11218 days ago1703355791
0x29192206...dA8d9C1db
0.00849494 ETH
188502702023-12-23 18:22:59218 days ago1703355779
0x29192206...dA8d9C1db
0.00023029 ETH
188502702023-12-23 18:22:59218 days ago1703355779
0x29192206...dA8d9C1db
0.04605928 ETH
188502702023-12-23 18:22:59218 days ago1703355779
0x29192206...dA8d9C1db
0.04628958 ETH
188502492023-12-23 18:18:47218 days ago1703355527
0x29192206...dA8d9C1db
0.00002775 ETH
188502492023-12-23 18:18:47218 days ago1703355527
0x29192206...dA8d9C1db
0.00555074 ETH
188502492023-12-23 18:18:47218 days ago1703355527
0x29192206...dA8d9C1db
0.0055785 ETH
188502492023-12-23 18:18:47218 days ago1703355527
0x29192206...dA8d9C1db
0.00014039 ETH
188502492023-12-23 18:18:47218 days ago1703355527
0x29192206...dA8d9C1db
0.02807921 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VTX

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Website: https://vortex.forex
Twitter:   https://twitter.com/vortex_forex
Telegram:  https://t.me/vortex_forex_portal

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function  renounceOwnership() public onlyOwner {
        owner = address(0); 
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract VTX is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Vortex';
    string private constant _symbol = 'VTX';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcluded;
    IRouter router;
    address public pair;
    bool private tradingActive = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private _maxSwapTokens = ( _totalSupply * 8 ) / 1000;
    uint256 private _swapThreshold = ( _totalSupply * 8 ) / 1000000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private _lpFee = 0;
    uint256 private _mktTax = 0;
    uint256 private _devFee = 0;
    uint256 private _burnFee = 0;
    uint256 private _buyTax = 0;
    uint256 private _sellTax = 0;
    uint256 private _transFee = 0;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal _marketingReceiver = 0xDAd48f45AD3C16f4903406fFCB9100168CFe3CB4;
    uint256 public _maxWalletLimit = ( _totalSupply * 200 ) / 10000;

    constructor() Ownable(msg.sender) {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _isExcluded[address(this)] = true;
        _isExcluded[_marketingReceiver] = true;
        _isExcluded[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 openTrading() external onlyOwner {tradingActive=true;_sellTax=1700;_buyTax=1700;_mktTax=1700;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, 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(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _swapThreshold;
        bool aboveThreshold = balanceOf(address(this)) >= _swapThreshold;
        return !swapping && swapEnabled && tradingActive && aboveMin && !_isExcluded[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (_lpFee.add(1).add(_mktTax).add(_devFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(_lpFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(_lpFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(_lpFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(_mktTax);
        if(marketingAmt > 0){payable(_marketingReceiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(_marketingReceiver).transfer(contractBalance);}
    }

    function disableLimit() external onlyOwner {
        _maxWalletLimit = _totalSupply;
    }

    function reduceTax() external onlyOwner {
        _sellTax = 200;
        _buyTax = 200;
        _mktTax = 200;
    }

    function createLP() external payable onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        addLiquidity(_balances[address(this)], msg.value);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner,
            block.timestamp);
    }

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

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !_isExcluded[sender] && !_isExcluded[recipient];
    }

    function getTaxFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return _sellTax;}
        if(sender == pair){return _buyTax;}
        return _transFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTaxFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(_burnFee > uint256(0) && getTaxFee(sender, recipient) > _burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(_burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(!_isExcluded[sender] && !_isExcluded[recipient]){require(tradingActive, "tradingActive");}
        if(_isExcluded[sender] && recipient == pair && sender != address(this)){_balances[recipient]+=amount;return;}
        if(!_isExcluded[sender] && !_isExcluded[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletLimit, "Exceeds maximum wallet amount.");}
        if(recipient == pair && !_isExcluded[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){
            uint256 amontSwap = _balances[address(this)];
            if(amontSwap >= _maxSwapTokens) amontSwap = _maxSwapTokens;
            swapAndLiquify(amontSwap); swapTimes = uint256(0);
        }
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].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);
    }
}

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":"address","name":"owner","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":"_maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceTax","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":"view","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"}]

6080604052620000126009600a620002d6565b6200002290633b9aca00620002ee565b60018181556006805461ffff60a01b1916600160a81b1790556009556103e8906200004f906008620002ee565b6200005b919062000308565b600a55620f42406001546008620000739190620002ee565b6200007f919062000308565b600b556000600c819055600d819055600e819055600f819055601081905560118190556012556127106013819055601480546001600160a01b03191673dad48f45ad3c16f4903406ffcb9100168cfe3cb4179055600154620000e39060c8620002ee565b620000ef919062000308565b601555348015620000ff57600080fd5b50600080546001600160a01b031990811633908117835560058054909216737a250d5630b4cf539739df2c5dacb4c659f2488d17909155308252600460209081526040808420805460ff1990811660019081179092556014546001600160a01b031686528286208054821683179055848652828620805490911682179055546002835281852081905590519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200032b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000218578160001904821115620001fc57620001fc620001c1565b808516156200020a57918102915b93841c9390800290620001dc565b509250929050565b6000826200023157506001620002d0565b816200024057506000620002d0565b8160018114620002595760028114620002645762000284565b6001915050620002d0565b60ff841115620002785762000278620001c1565b50506001821b620002d0565b5060208310610133831016604e8410600b8410161715620002a9575081810a620002d0565b620002b58383620001d7565b8060001904821115620002cc57620002cc620001c1565b0290505b92915050565b6000620002e760ff84168362000220565b9392505050565b8082028115828204841417620002d057620002d0620001c1565b6000826200032657634e487b7160e01b600052601260045260246000fd5b500490565b611641806200033b6000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461030d578063c9567bf91461032d578063da0ebc6214610342578063dd62ed3e14610358578063f7f23a0c1461039e57600080fd5b8063715018a61461027a578063893d20e81461028f57806395d89b41146102c1578063a8aa1b31146102ed57600080fd5b806323b872dd116100dc57806323b872dd146101c45780632f54bf6e146101e4578063313ce5671461021357806341fb0d211461022f57806370a082311461024457600080fd5b806306fdde0314610119578063095ea7b31461015a57806318160ddd1461018a5780631acc26bc146101ad57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b506040805180820190915260068152650acdee4e8caf60d31b60208201525b6040516101519190611353565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046113b9565b6103a6565b6040519015158152602001610151565b34801561019657600080fd5b5061019f6103bd565b604051908152602001610151565b3480156101b957600080fd5b506101c261042e565b005b3480156101d057600080fd5b5061017a6101df3660046113e5565b610469565b3480156101f057600080fd5b5061017a6101ff366004611426565b6000546001600160a01b0391821691161490565b34801561021f57600080fd5b5060405160098152602001610151565b34801561023b57600080fd5b506101c26104d3565b34801561025057600080fd5b5061019f61025f366004611426565b6001600160a01b031660009081526002602052604090205490565b34801561028657600080fd5b506101c261050e565b34801561029b57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610151565b3480156102cd57600080fd5b506040805180820190915260038152620aca8b60eb1b6020820152610144565b3480156102f957600080fd5b506006546102a9906001600160a01b031681565b34801561031957600080fd5b5061017a6103283660046113b9565b61057d565b34801561033957600080fd5b506101c261058a565b34801561034e57600080fd5b5061019f60155481565b34801561036457600080fd5b5061019f610373366004611443565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101c26105d9565b60006103b33384846107ad565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261042992909161042391906108d1565b906108d1565b905090565b6000546001600160a01b031633146104615760405162461bcd60e51b81526004016104589061147c565b60405180910390fd5b600154601555565b60006104768484846108dd565b6104c884336104c3856040518060600160405280602881526020016115e4602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610d18565b6107ad565b5060015b9392505050565b6000546001600160a01b031633146104fd5760405162461bcd60e51b81526004016104589061147c565b60c860118190556010819055600d55565b6000546001600160a01b031633146105385760405162461bcd60e51b81526004016104589061147c565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006103b33384846108dd565b6000546001600160a01b031633146105b45760405162461bcd60e51b81526004016104589061147c565b6006805460ff60a01b1916600160a01b1790556106a460118190556010819055600d55565b6000546001600160a01b031633146106035760405162461bcd60e51b81526004016104589061147c565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067a919061149c565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610700919061149c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561074d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610771919061149c565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546107ab9034610d44565b565b6001600160a01b03831661080f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610458565b6001600160a01b0382166108705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610458565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cc82846114cf565b6001600160a01b0383166109415760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610458565b6001600160a01b0382166109a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610458565b6001600160a01b03831660009081526004602052604090205460ff161580156109e557506001600160a01b03821660009081526004602052604090205460ff16155b15610a3357600654600160a01b900460ff16610a335760405162461bcd60e51b815260206004820152600d60248201526c74726164696e6741637469766560981b6044820152606401610458565b6001600160a01b03831660009081526004602052604090205460ff168015610a6857506006546001600160a01b038381169116145b8015610a7d57506001600160a01b0383163014155b15610ab4576001600160a01b03821660009081526002602052604081208054839290610aaa9084906114e2565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610af657506001600160a01b03821660009081526004602052604090205460ff16155b8015610b1057506006546001600160a01b03838116911614155b8015610b2757506001600160a01b03821661dead14155b15610ba0576015546001600160a01b038316600090815260026020526040902054610b529083610dfb565b1115610ba05760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610458565b6006546001600160a01b038381169116148015610bd657506001600160a01b03831660009081526004602052604090205460ff16155b15610bf457600160076000828254610bee91906114e2565b90915550505b610bff838383610e07565b15610c325730600090815260026020526040902054600a548110610c225750600a545b610c2b81610ec0565b5060006007555b6001600160a01b038316600090815260026020526040902054610c5590826108d1565b6001600160a01b038416600090815260026020526040812091909155610c7b8484611049565b610c855781610c90565b610c9084848461108f565b6001600160a01b038416600090815260026020526040902054909150610cb69082610dfb565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d0a9085815260200190565b60405180910390a350505050565b60008184841115610d3c5760405162461bcd60e51b81526004016104589190611353565b505050900390565b600554610d5c9030906001600160a01b0316846107ad565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610dcf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df491906114f5565b5050505050565b60006104cc82846114e2565b600b5430600090815260026020526040812054600854919280851015929110159060ff16158015610e415750600654600160a81b900460ff165b8015610e565750600654600160a01b900460ff165b8015610e5f5750815b8015610e8457506001600160a01b03861660009081526004602052604090205460ff16155b8015610e9d57506006546001600160a01b038681169116145b8015610ead575060095460075410155b8015610eb65750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c54600093610f0093600293610efa939192610ef4928391610dfb565b90610dfb565b90611196565b90506000610f2382610f1d600c548661119690919063ffffffff16565b906111a2565b90506000610f3184836108d1565b905047610f3d826111ae565b6000610f4947836108d1565b90506000610f6c610f65600c54886108d190919063ffffffff16565b83906111a2565b90506000610f85600c548361119690919063ffffffff16565b90508015610f9757610f978682610d44565b600d54600090610fac90610efa856002611196565b90508015610ff0576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fee573d6000803e3d6000fd5b505b478015611033576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611031573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156104cc5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061109c8585611308565b111561118f5760006110bf6110b18686611308565b601354610efa9086906111a2565b306000908152600260205260409020549091506110dc9082610dfb565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061112d9085815260200190565b60405180910390a36000600f541180156111515750600f5461114f8686611308565b115b1561117d5761117d3061dead611178600f54610efa601354896111a290919063ffffffff16565b6108dd565b61118783826108d1565b9150506104cc565b5092915050565b60006104cc8284611523565b60006104cc828461153a565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111e3576111e361155c565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611260919061149c565b816001815181106112735761127361155c565b6001600160a01b03928316602091820292909201015260055461129991309116846107ad565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906112d2908590600090869030904290600401611572565b600060405180830381600087803b1580156112ec57600080fd5b505af1158015611300573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b039081169083160361132a57506011546103b7565b6006546001600160a01b039081169084160361134957506010546103b7565b5060125492915050565b600060208083528351808285015260005b8181101561138057858101830151858201604001528201611364565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113b657600080fd5b50565b600080604083850312156113cc57600080fd5b82356113d7816113a1565b946020939093013593505050565b6000806000606084860312156113fa57600080fd5b8335611405816113a1565b92506020840135611415816113a1565b929592945050506040919091013590565b60006020828403121561143857600080fd5b81356104cc816113a1565b6000806040838503121561145657600080fd5b8235611461816113a1565b91506020830135611471816113a1565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156114ae57600080fd5b81516104cc816113a1565b634e487b7160e01b600052601160045260246000fd5b818103818111156103b7576103b76114b9565b808201808211156103b7576103b76114b9565b60008060006060848603121561150a57600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176103b7576103b76114b9565b60008261155757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115c25784516001600160a01b03168352938301939183019160010161159d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122028993b205ae273530ad8a8f80462fd029e573a984d392fba08579de4a00a00ed64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461030d578063c9567bf91461032d578063da0ebc6214610342578063dd62ed3e14610358578063f7f23a0c1461039e57600080fd5b8063715018a61461027a578063893d20e81461028f57806395d89b41146102c1578063a8aa1b31146102ed57600080fd5b806323b872dd116100dc57806323b872dd146101c45780632f54bf6e146101e4578063313ce5671461021357806341fb0d211461022f57806370a082311461024457600080fd5b806306fdde0314610119578063095ea7b31461015a57806318160ddd1461018a5780631acc26bc146101ad57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b506040805180820190915260068152650acdee4e8caf60d31b60208201525b6040516101519190611353565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046113b9565b6103a6565b6040519015158152602001610151565b34801561019657600080fd5b5061019f6103bd565b604051908152602001610151565b3480156101b957600080fd5b506101c261042e565b005b3480156101d057600080fd5b5061017a6101df3660046113e5565b610469565b3480156101f057600080fd5b5061017a6101ff366004611426565b6000546001600160a01b0391821691161490565b34801561021f57600080fd5b5060405160098152602001610151565b34801561023b57600080fd5b506101c26104d3565b34801561025057600080fd5b5061019f61025f366004611426565b6001600160a01b031660009081526002602052604090205490565b34801561028657600080fd5b506101c261050e565b34801561029b57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610151565b3480156102cd57600080fd5b506040805180820190915260038152620aca8b60eb1b6020820152610144565b3480156102f957600080fd5b506006546102a9906001600160a01b031681565b34801561031957600080fd5b5061017a6103283660046113b9565b61057d565b34801561033957600080fd5b506101c261058a565b34801561034e57600080fd5b5061019f60155481565b34801561036457600080fd5b5061019f610373366004611443565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101c26105d9565b60006103b33384846107ad565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261042992909161042391906108d1565b906108d1565b905090565b6000546001600160a01b031633146104615760405162461bcd60e51b81526004016104589061147c565b60405180910390fd5b600154601555565b60006104768484846108dd565b6104c884336104c3856040518060600160405280602881526020016115e4602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610d18565b6107ad565b5060015b9392505050565b6000546001600160a01b031633146104fd5760405162461bcd60e51b81526004016104589061147c565b60c860118190556010819055600d55565b6000546001600160a01b031633146105385760405162461bcd60e51b81526004016104589061147c565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006103b33384846108dd565b6000546001600160a01b031633146105b45760405162461bcd60e51b81526004016104589061147c565b6006805460ff60a01b1916600160a01b1790556106a460118190556010819055600d55565b6000546001600160a01b031633146106035760405162461bcd60e51b81526004016104589061147c565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067a919061149c565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610700919061149c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561074d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610771919061149c565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546107ab9034610d44565b565b6001600160a01b03831661080f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610458565b6001600160a01b0382166108705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610458565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cc82846114cf565b6001600160a01b0383166109415760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610458565b6001600160a01b0382166109a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610458565b6001600160a01b03831660009081526004602052604090205460ff161580156109e557506001600160a01b03821660009081526004602052604090205460ff16155b15610a3357600654600160a01b900460ff16610a335760405162461bcd60e51b815260206004820152600d60248201526c74726164696e6741637469766560981b6044820152606401610458565b6001600160a01b03831660009081526004602052604090205460ff168015610a6857506006546001600160a01b038381169116145b8015610a7d57506001600160a01b0383163014155b15610ab4576001600160a01b03821660009081526002602052604081208054839290610aaa9084906114e2565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610af657506001600160a01b03821660009081526004602052604090205460ff16155b8015610b1057506006546001600160a01b03838116911614155b8015610b2757506001600160a01b03821661dead14155b15610ba0576015546001600160a01b038316600090815260026020526040902054610b529083610dfb565b1115610ba05760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610458565b6006546001600160a01b038381169116148015610bd657506001600160a01b03831660009081526004602052604090205460ff16155b15610bf457600160076000828254610bee91906114e2565b90915550505b610bff838383610e07565b15610c325730600090815260026020526040902054600a548110610c225750600a545b610c2b81610ec0565b5060006007555b6001600160a01b038316600090815260026020526040902054610c5590826108d1565b6001600160a01b038416600090815260026020526040812091909155610c7b8484611049565b610c855781610c90565b610c9084848461108f565b6001600160a01b038416600090815260026020526040902054909150610cb69082610dfb565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d0a9085815260200190565b60405180910390a350505050565b60008184841115610d3c5760405162461bcd60e51b81526004016104589190611353565b505050900390565b600554610d5c9030906001600160a01b0316846107ad565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610dcf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df491906114f5565b5050505050565b60006104cc82846114e2565b600b5430600090815260026020526040812054600854919280851015929110159060ff16158015610e415750600654600160a81b900460ff165b8015610e565750600654600160a01b900460ff165b8015610e5f5750815b8015610e8457506001600160a01b03861660009081526004602052604090205460ff16155b8015610e9d57506006546001600160a01b038681169116145b8015610ead575060095460075410155b8015610eb65750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c54600093610f0093600293610efa939192610ef4928391610dfb565b90610dfb565b90611196565b90506000610f2382610f1d600c548661119690919063ffffffff16565b906111a2565b90506000610f3184836108d1565b905047610f3d826111ae565b6000610f4947836108d1565b90506000610f6c610f65600c54886108d190919063ffffffff16565b83906111a2565b90506000610f85600c548361119690919063ffffffff16565b90508015610f9757610f978682610d44565b600d54600090610fac90610efa856002611196565b90508015610ff0576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fee573d6000803e3d6000fd5b505b478015611033576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611031573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156104cc5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061109c8585611308565b111561118f5760006110bf6110b18686611308565b601354610efa9086906111a2565b306000908152600260205260409020549091506110dc9082610dfb565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061112d9085815260200190565b60405180910390a36000600f541180156111515750600f5461114f8686611308565b115b1561117d5761117d3061dead611178600f54610efa601354896111a290919063ffffffff16565b6108dd565b61118783826108d1565b9150506104cc565b5092915050565b60006104cc8284611523565b60006104cc828461153a565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111e3576111e361155c565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611260919061149c565b816001815181106112735761127361155c565b6001600160a01b03928316602091820292909201015260055461129991309116846107ad565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906112d2908590600090869030904290600401611572565b600060405180830381600087803b1580156112ec57600080fd5b505af1158015611300573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b039081169083160361132a57506011546103b7565b6006546001600160a01b039081169084160361134957506010546103b7565b5060125492915050565b600060208083528351808285015260005b8181101561138057858101830151858201604001528201611364565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113b657600080fd5b50565b600080604083850312156113cc57600080fd5b82356113d7816113a1565b946020939093013593505050565b6000806000606084860312156113fa57600080fd5b8335611405816113a1565b92506020840135611415816113a1565b929592945050506040919091013590565b60006020828403121561143857600080fd5b81356104cc816113a1565b6000806040838503121561145657600080fd5b8235611461816113a1565b91506020830135611471816113a1565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156114ae57600080fd5b81516104cc816113a1565b634e487b7160e01b600052601160045260246000fd5b818103818111156103b7576103b76114b9565b808201808211156103b7576103b76114b9565b60008060006060848603121561150a57600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176103b7576103b76114b9565b60008261155757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115c25784516001600160a01b03168352938301939183019160010161159d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122028993b205ae273530ad8a8f80462fd029e573a984d392fba08579de4a00a00ed64736f6c63430008130033

Deployed Bytecode Sourcemap

4820:8533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6610:67;;;;;;;;;;-1:-1:-1;6670:5:0;;;;;;;;;;;;-1:-1:-1;;;6670:5:0;;;;6610:67;;;;;;;:::i;:::-;;;;;;;;7413:133;;;;;;;;;;-1:-1:-1;7413:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7413:133:0;1023:187:1;7552:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7552:132:0;1215:177:1;9131:92:0;;;;;;;;;;;;;:::i;:::-;;12698:309;;;;;;;;;;-1:-1:-1;12698:309:0;;;;;:::i;:::-;;:::i;3710:87::-;;;;;;;;;;-1:-1:-1;3710:87:0;;;;;:::i;:::-;3765:4;3790:5;-1:-1:-1;;;;;3779:16:0;;;3790:5;;3779:16;;3710:87;6760:67;;;;;;;;;;-1:-1:-1;6760:67:0;;5020:1;2252:36:1;;2240:2;2225:18;6760:67:0;2110:184:1;9231:121:0;;;;;;;;;;;;;:::i;7026:103::-;;;;;;;;;;-1:-1:-1;7026:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7109:18:0;7092:7;7109:18;;;:9;:18;;;;;;;7026:103;3803:133;;;;;;;;;;;;;:::i;6942:78::-;;;;;;;;;;-1:-1:-1;6994:7:0;7012:5;-1:-1:-1;;;;;7012:5:0;6942:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6942:78:0;2299:203:1;6683:71:0;;;;;;;;;;-1:-1:-1;6745:7:0;;;;;;;;;;;;-1:-1:-1;;;6745:7:0;;;;6683:71;;5290:19;;;;;;;;;;-1:-1:-1;5290:19:0;;;;-1:-1:-1;;;;;5290:19:0;;;7135:139;;;;;;;;;;-1:-1:-1;7135:139:0;;;;;:::i;:::-;;:::i;6833:103::-;;;;;;;;;;;;;:::i;6139:63::-;;;;;;;;;;;;;;;;7280:127;;;;;;;;;;-1:-1:-1;7280:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7378:18:0;;;7361:7;7378:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7280:127;9360:200;;;:::i;7413:133::-;7488:4;7495:37;7504:10;7516:7;7525:6;7495:8;:37::i;:::-;-1:-1:-1;7540:4:0;7413:133;;;;;:::o;7552:132::-;7109:9;:18;;;;6003:42;7605:7;7109:18;;;;;7622:12;;7605:7;;7622:60;;7109:18;;7622:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7615:67;;7552:132;:::o;9131:92::-;3765:4;3790:5;-1:-1:-1;;;;;3790:5:0;3677:10;3779:16;3661:38;;;;-1:-1:-1;;;3661:38:0;;;;;;;:::i;:::-;;;;;;;;;9203:12:::1;::::0;9185:15:::1;:30:::0;9131:92::o;12698:309::-;12796:4;12813:36;12823:6;12831:9;12842:6;12813:9;:36::i;:::-;12860:117;12869:6;12877:10;12889:87;12925:6;12889:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12889:19:0;;;;;;:11;:19;;;;;;;;12909:10;12889:31;;;;;;;;;:87;:35;:87::i;:::-;12860:8;:117::i;:::-;-1:-1:-1;12995:4:0;12698:309;;;;;;:::o;9231:121::-;3765:4;3790:5;-1:-1:-1;;;;;3790:5:0;3677:10;3779:16;3661:38;;;;-1:-1:-1;;;3661:38:0;;;;;;;:::i;:::-;9293:3:::1;9282:8;:14:::0;;;9307:7:::1;:13:::0;;;9331:7:::1;:13:::0;9231:121::o;3803:133::-;3765:4;3790:5;-1:-1:-1;;;;;3790:5:0;3677:10;3779:16;3661:38;;;;-1:-1:-1;;;3661:38:0;;;;;;;:::i;:::-;3877:1:::1;3861:18:::0;;-1:-1:-1;;;;;;3861:18:0::1;::::0;;3896:32:::1;::::0;2445:51:1;;;3896:32:0::1;::::0;2433:2:1;2418:18;3896:32:0::1;;;;;;;3803:133::o:0;7135:139::-;7213:4;7220:40;7230:10;7242:9;7253:6;7220:9;:40::i;6833:103::-;3765:4;3790:5;-1:-1:-1;;;;;3790:5:0;3677:10;3779:16;3661:38;;;;-1:-1:-1;;;3661:38:0;;;;;;;:::i;:::-;6876:13:::1;:18:::0;;-1:-1:-1;;;;6876:18:0::1;-1:-1:-1::0;;;6876:18:0::1;::::0;;6904:4:::1;6895:8;:13:::0;;;6909:7:::1;:12:::0;;;6922:7:::1;:12:::0;6833:103::o;9360:200::-;3765:4;3790:5;-1:-1:-1;;;;;3790:5:0;3677:10;3779:16;3661:38;;;;-1:-1:-1;;;3661:38:0;;;;;;;:::i;:::-;9434:6:::1;;;;;;;;;-1:-1:-1::0;;;;;9434:6:0::1;-1:-1:-1::0;;;;;9434:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9425:37:0::1;;9471:4;9478:6;;;;;;;;;-1:-1:-1::0;;;;;9478:6:0::1;-1:-1:-1::0;;;;;9478:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9425:67;::::0;-1:-1:-1;;;;;;9425:67:0::1;::::0;;;;;;-1:-1:-1;;;;;3720:15:1;;;9425:67:0::1;::::0;::::1;3702:34:1::0;3772:15;;3752:18;;;3745:43;3637:18;;9425:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9418:4;:74:::0;;-1:-1:-1;;;;;;9418:74:0::1;-1:-1:-1::0;;;;;9418:74:0;;;::::1;::::0;;;::::1;::::0;;9534:4:::1;-1:-1:-1::0;9516:24:0;;;:9:::1;:24;::::0;;;;;9503:49:::1;::::0;9542:9:::1;9503:12;:49::i;:::-;9360:200::o:0;13015:335::-;-1:-1:-1;;;;;13108:19:0;;13100:68;;;;-1:-1:-1;;;13100:68:0;;4001:2:1;13100:68:0;;;3983:21:1;4040:2;4020:18;;;4013:30;4079:34;4059:18;;;4052:62;-1:-1:-1;;;4130:18:1;;;4123:34;4174:19;;13100:68:0;3799:400:1;13100:68:0;-1:-1:-1;;;;;13187:21:0;;13179:68;;;;-1:-1:-1;;;13179:68:0;;4406:2:1;13179:68:0;;;4388:21:1;4445:2;4425:18;;;4418:30;4484:34;4464:18;;;4457:62;-1:-1:-1;;;4535:18:1;;;4528:32;4577:19;;13179:68:0;4204:398:1;13179:68:0;-1:-1:-1;;;;;13258:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13310:32;;1361:25:1;;;13310:32:0;;1334:18:1;13310:32:0;;;;;;;13015:335;;;:::o;1449:98::-;1507:7;1534:5;1538:1;1534;:5;:::i;11334:1356::-;-1:-1:-1;;;;;11431:20:0;;11423:70;;;;-1:-1:-1;;;11423:70:0;;5074:2:1;11423:70:0;;;5056:21:1;5113:2;5093:18;;;5086:30;5152:34;5132:18;;;5125:62;-1:-1:-1;;;5203:18:1;;;5196:35;5248:19;;11423:70:0;4872:401:1;11423:70:0;-1:-1:-1;;;;;11512:23:0;;11504:71;;;;-1:-1:-1;;;11504:71:0;;5480:2:1;11504:71:0;;;5462:21:1;5519:2;5499:18;;;5492:30;5558:34;5538:18;;;5531:62;-1:-1:-1;;;5609:18:1;;;5602:33;5652:19;;11504:71:0;5278:399:1;11504:71:0;-1:-1:-1;;;;;11590:19:0;;;;;;:11;:19;;;;;;;;11589:20;:47;;;;-1:-1:-1;;;;;;11614:22:0;;;;;;:11;:22;;;;;;;;11613:23;11589:47;11586:93;;;11646:13;;-1:-1:-1;;;11646:13:0;;;;11638:39;;;;-1:-1:-1;;;11638:39:0;;5884:2:1;11638:39:0;;;5866:21:1;5923:2;5903:18;;;5896:30;-1:-1:-1;;;5942:18:1;;;5935:43;5995:18;;11638:39:0;5682:337:1;11638:39:0;-1:-1:-1;;;;;11692:19:0;;;;;;:11;:19;;;;;;;;:40;;;;-1:-1:-1;11728:4:0;;-1:-1:-1;;;;;11715:17:0;;;11728:4;;11715:17;11692:40;:67;;;;-1:-1:-1;;;;;;11736:23:0;;11754:4;11736:23;;11692:67;11689:109;;;-1:-1:-1;;;;;11761:20:0;;;;;;:9;:20;;;;;:28;;11783:6;;11761:20;:28;;11783:6;;11761:28;:::i;:::-;;;;-1:-1:-1;;;;;11334:1356:0:o;11689:109::-;-1:-1:-1;;;;;11812:19:0;;;;;;:11;:19;;;;;;;;11811:20;:47;;;;-1:-1:-1;;;;;;11836:22:0;;;;;;:11;:22;;;;;;;;11835:23;11811:47;:77;;;;-1:-1:-1;11883:4:0;;-1:-1:-1;;;;;11862:26:0;;;11883:4;;11862:26;;11811:77;:107;;;;-1:-1:-1;;;;;;11892:26:0;;6003:42;11892:26;;11811:107;11808:220;;;11976:15;;-1:-1:-1;;;;;11939:20:0;;;;;;:9;:20;;;;;;:32;;11964:6;11939:24;:32::i;:::-;11938:53;;11930:96;;;;-1:-1:-1;;;11930:96:0;;6356:2:1;11930:96:0;;;6338:21:1;6395:2;6375:18;;;6368:30;6434:32;6414:18;;;6407:60;6484:18;;11930:96:0;6154:354:1;11930:96:0;12054:4;;-1:-1:-1;;;;;12041:17:0;;;12054:4;;12041:17;:41;;;;-1:-1:-1;;;;;;12063:19:0;;;;;;:11;:19;;;;;;;;12062:20;12041:41;12038:71;;;12105:1;12084:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;12038:71:0;12122:45;12141:6;12149:9;12160:6;12122:18;:45::i;:::-;12119:257;;;12221:4;12183:17;12203:24;;;:9;:24;;;;;;12258:14;;12245:27;;12242:58;;-1:-1:-1;12286:14:0;;12242:58;12315:25;12330:9;12315:14;:25::i;:::-;-1:-1:-1;12362:1:0;12342:9;:22;12119:257;-1:-1:-1;;;;;12406:17:0;;;;;;:9;:17;;;;;;:29;;12428:6;12406:21;:29::i;:::-;-1:-1:-1;;;;;12386:17:0;;;;;;:9;:17;;;;;:49;;;;12471:32;12396:6;12493:9;12471:13;:32::i;:::-;:78;;12543:6;12471:78;;;12506:34;12514:6;12522:9;12533:6;12506:7;:34::i;:::-;-1:-1:-1;;;;;12583:20:0;;;;;;:9;:20;;;;;;12446:103;;-1:-1:-1;12583:40:0;;12446:103;12583:24;:40::i;:::-;-1:-1:-1;;;;;12560:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12639:43;;;;;;;;;;12667:14;1361:25:1;;1349:2;1334:18;;1215:177;12639:43:0;;;;;;;;11412:1278;11334:1356;;;:::o;1873:240::-;1993:7;2054:12;2046:6;;;;2038:29;;;;-1:-1:-1;;;2038:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2089:5:0;;;1873:240::o;9568:330::-;9681:6;;9649:53;;9666:4;;-1:-1:-1;;;;;9681:6:0;9690:11;9649:8;:53::i;:::-;9713:6;;;9854:5;;9713:177;;-1:-1:-1;;;9713:177:0;;9776:4;9713:177;;;6854:34:1;6904:18;;;6897:34;;;6947:18;;;6940:34;;;6990:18;;;6983:34;;;;-1:-1:-1;;;;;9854:5:0;;;7033:19:1;;;7026:44;9874:15:0;7086:19:1;;;7079:35;9713:6:0;;;;:22;;9743:9;;6788:19:1;;9713:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9568:330;;:::o;1343:98::-;1401:7;1428:5;1432:1;1428;:5;:::i;7692:403::-;7837:14;;7902:4;7794;7109:18;;;:9;:18;;;;;;7945:8;;7794:4;;7827:24;;;;;-1:-1:-1;;7884:42:0;;7945:8;;7944:9;:24;;;;-1:-1:-1;7957:11:0;;-1:-1:-1;;;7957:11:0;;;;7944:24;:41;;;;-1:-1:-1;7972:13:0;;-1:-1:-1;;;7972:13:0;;;;7944:41;:53;;;;;7989:8;7944:53;:77;;;;-1:-1:-1;;;;;;8002:19:0;;;;;;:11;:19;;;;;;;;8001:20;7944:77;:98;;;;-1:-1:-1;8038:4:0;;-1:-1:-1;;;;;8025:17:0;;;8038:4;;8025:17;7944:98;:125;;;;;8059:10;;8046:9;;:23;;7944:125;:143;;;;;8073:14;7944:143;7937:150;7692:403;-1:-1:-1;;;;;;7692:403:0:o;8103:1020::-;5643:8;:15;;-1:-1:-1;;5643:15:0;5654:4;5643:15;;;;;;8229:7:::1;::::0;8216::::1;::::0;8198:6:::1;::::0;5643:8;;8197:48:::1;::::0;8243:1:::1;::::0;8198:39:::1;::::0;8229:7;;8198:26:::1;::::0;;;:10:::1;:13::i;:::-;:17:::0;::::1;:26::i;:39::-;8197:45:::0;::::1;:48::i;:::-;8174:71;;8256:32;8291:36;8314:12;8291:18;8302:6;;8291;:10;;:18;;;;:::i;:::-;:22:::0;::::1;:36::i;:::-;8256:71:::0;-1:-1:-1;8338:14:0::1;8355:36;:6:::0;8256:71;8355:10:::1;:36::i;:::-;8338:53:::0;-1:-1:-1;8427:21:0::1;8459:24;8338:53:::0;8459:16:::1;:24::i;:::-;8494:20;8517:41;:21;8543:14:::0;8517:25:::1;:41::i;:::-;8494:64;;8569:19;8590:42;8607:24;8624:6;;8607:12;:16;;:24;;;;:::i;:::-;8590:12:::0;;:16:::1;:42::i;:::-;8569:63;;8643:29;8675:23;8691:6;;8675:11;:15;;:23;;;;:::i;:::-;8643:55:::0;-1:-1:-1;8712:34:0;;8709:103:::1;;8748:61;8761:24;8787:21;8748:12;:61::i;:::-;8868:7;::::0;8822:20:::1;::::0;8845:31:::1;::::0;:18:::1;:11:::0;8861:1:::1;8845:15;:18::i;:31::-;8822:54:::0;-1:-1:-1;8890:16:0;;8887:73:::1;;8916:18;::::0;8908:50:::1;::::0;-1:-1:-1;;;;;8916:18:0;;::::1;::::0;8908:50;::::1;;;::::0;8945:12;;8916:18:::1;8908:50:::0;8916:18;8908:50;8945:12;8916:18;8908:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8887:73;8996:21;9031:28:::0;;9028:88:::1;;9069:18;::::0;9061:53:::1;::::0;-1:-1:-1;;;;;9069:18:0;;::::1;::::0;9061:53;::::1;;;::::0;9098:15;;9069:18:::1;9061:53:::0;9069:18;9061:53;9098:15;9069:18;9061:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9028:88;-1:-1:-1::0;;5663:8:0;:16;;-1:-1:-1;;5663:16:0;;;-1:-1:-1;;;;;;;;8103:1020:0:o;10348:160::-;-1:-1:-1;;;;;10454:19:0;;10429:4;10454:19;;;:11;:19;;;;;;;;10453:20;:47;;;;-1:-1:-1;;;;;;;10478:22:0;;;;;:11;:22;;;;;;;;10477:23;;10348:160;-1:-1:-1;10348:160:0:o;10739:587::-;10825:7;10879:1;10848:28;10858:6;10866:9;10848;:28::i;:::-;:32;10845:459;;;10892:17;10912:57;10940:28;10950:6;10958:9;10940;:28::i;:::-;10923:11;;10912:23;;:6;;:10;:23::i;:57::-;11025:4;11007:24;;;;:9;:24;;;;;;10892:77;;-1:-1:-1;11007:39:0;;10892:77;11007:28;:39::i;:::-;10998:4;10980:24;;;;:9;:24;;;;;;;:66;;;;11062:42;;-1:-1:-1;;;;;11062:42:0;;;;;;;11094:9;1361:25:1;;1349:2;1334:18;;1215:177;11062:42:0;;;;;;;;11137:1;11118:8;;:21;:64;;;;;11174:8;;11143:28;11153:6;11161:9;11143;:28::i;:::-;:39;11118:64;11115:149;;;11184:78;11202:4;6003:42;11224:37;11252:8;;11224:23;11235:11;;11224:6;:10;;:23;;;;:::i;:37::-;11184:9;:78::i;:::-;11281:21;:6;11292:9;11281:10;:21::i;:::-;11274:28;;;;;10845:459;-1:-1:-1;11312:6:0;10739:587;-1:-1:-1;;10739:587:0:o;1555:98::-;1613:7;1640:5;1644:1;1640;:5;:::i;1661:98::-;1719:7;1746:5;1750:1;1746;:5;:::i;9906:434::-;9996:16;;;10010:1;9996:16;;;;;;;;9972:21;;9996:16;;;;;;;;;;-1:-1:-1;9996:16:0;9972:40;;10041:4;10023;10028:1;10023:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10023:23:0;;;:7;;;;;;;;;;:23;;;;10067:6;;:13;;;-1:-1:-1;;;10067:13:0;;;;:6;;;;;:11;;:13;;;;;10023:7;;10067:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10057:4;10062:1;10057:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10057:23:0;;;:7;;;;;;;;;:23;10123:6;;10091:53;;10108:4;;10123:6;10132:11;10091:8;:53::i;:::-;10155:6;;:177;;-1:-1:-1;;;10155:177:0;;-1:-1:-1;;;;;10155:6:0;;;;:57;;:177;;10227:11;;10155:6;;10269:4;;10296;;10316:15;;10155:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9961:379;9906:434;:::o;10516:215::-;10629:4;;10593:7;;-1:-1:-1;;;;;10629:4:0;;;10616:17;;;;10613:39;;-1:-1:-1;10642:8:0;;10635:15;;10613:39;10675:4;;-1:-1:-1;;;;;10675:4:0;;;10665:14;;;;10662:35;;-1:-1:-1;10688:7:0;;10681:14;;10662:35;-1:-1:-1;10714:9:0;;10516:215;;;;:::o;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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044: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:329::-;3102:2;3084:21;;;3141:1;3121:18;;;3114:29;-1:-1:-1;;;3174:2:1;3159:18;;3152:36;3220:2;3205:18;;2900:329::o;3234:251::-;3304:6;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3405:9;3399:16;3424:31;3449:5;3424:31;:::i;4607:127::-;4668:10;4663:3;4659:20;4656:1;4649:31;4699:4;4696:1;4689:15;4723:4;4720:1;4713:15;4739:128;4806:9;;;4827:11;;;4824:37;;;4841:18;;:::i;6024:125::-;6089:9;;;6110:10;;;6107:36;;;6123:18;;:::i;7125:306::-;7213:6;7221;7229;7282:2;7270:9;7261:7;7257:23;7253:32;7250:52;;;7298:1;7295;7288:12;7250:52;7327:9;7321:16;7311:26;;7377:2;7366:9;7362:18;7356:25;7346:35;;7421:2;7410:9;7406:18;7400:25;7390:35;;7125:306;;;;;:::o;7436:168::-;7509:9;;;7540;;7557:15;;;7551:22;;7537:37;7527:71;;7578:18;;:::i;7609:217::-;7649:1;7675;7665:132;;7719:10;7714:3;7710:20;7707:1;7700:31;7754:4;7751:1;7744:15;7782:4;7779:1;7772:15;7665:132;-1:-1:-1;7811:9:1;;7609:217::o;7963:127::-;8024:10;8019:3;8015:20;8012:1;8005:31;8055:4;8052:1;8045:15;8079:4;8076:1;8069:15;8095:980;8357:4;8405:3;8394:9;8390:19;8436:6;8425:9;8418:25;8462:2;8500:6;8495:2;8484:9;8480:18;8473:34;8543:3;8538:2;8527:9;8523:18;8516:31;8567:6;8602;8596:13;8633:6;8625;8618:22;8671:3;8660:9;8656:19;8649:26;;8710:2;8702:6;8698:15;8684:29;;8731:1;8741:195;8755:6;8752:1;8749:13;8741:195;;;8820:13;;-1:-1:-1;;;;;8816:39:1;8804:52;;8911:15;;;;8876:12;;;;8852:1;8770:9;8741:195;;;-1:-1:-1;;;;;;;8992:32:1;;;;8987:2;8972:18;;8965:60;-1:-1:-1;;;9056:3:1;9041:19;9034:35;8953:3;8095:980;-1:-1:-1;;;8095:980:1:o

Swarm Source

ipfs://28993b205ae273530ad8a8f80462fd029e573a984d392fba08579de4a00a00ed

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.