ETH Price: $3,324.54 (+2.46%)

Contract

0x7086e014fd59e66567a986e7b401a5810c2361Ce
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214214372024-12-17 9:43:596 days ago1734428639IN
0x7086e014...10c2361Ce
0 ETH0.0004774910.10940845
Approve213862782024-12-12 11:58:4711 days ago1734004727IN
0x7086e014...10c2361Ce
0 ETH0.0009388419.9022153
Approve213538942024-12-07 23:28:5915 days ago1733614139IN
0x7086e014...10c2361Ce
0 ETH0.0005742612.17365167
Transfer213538832024-12-07 23:26:4715 days ago1733614007IN
0x7086e014...10c2361Ce
0 ETH0.0023965410.1897034
Approve213336092024-12-05 3:28:1118 days ago1733369291IN
0x7086e014...10c2361Ce
0 ETH0.0013772729.1963274
Approve213018172024-11-30 16:54:4723 days ago1732985687IN
0x7086e014...10c2361Ce
0 ETH0.000707515.07856235
Approve212031472024-11-16 22:08:1136 days ago1731794891IN
0x7086e014...10c2361Ce
0 ETH0.0005714412.11372486
Approve212012812024-11-16 15:54:1137 days ago1731772451IN
0x7086e014...10c2361Ce
0 ETH0.0007805516.53824039
Approve211514242024-11-09 16:55:1144 days ago1731171311IN
0x7086e014...10c2361Ce
0 ETH0.0005067710.7428498
Approve211357002024-11-07 12:13:1146 days ago1730981591IN
0x7086e014...10c2361Ce
0 ETH0.001313327.84020574
Approve211078102024-11-03 14:47:4750 days ago1730645267IN
0x7086e014...10c2361Ce
0 ETH0.000210528.45861198
Approve210773362024-10-30 8:42:1154 days ago1730277731IN
0x7086e014...10c2361Ce
0 ETH0.0002762611.1
Approve210365082024-10-24 15:59:1160 days ago1729785551IN
0x7086e014...10c2361Ce
0 ETH0.0007070515.08827886
Approve208487922024-09-28 11:19:4786 days ago1727522387IN
0x7086e014...10c2361Ce
0 ETH0.000324796.88523306
Approve208322192024-09-26 3:52:4788 days ago1727322767IN
0x7086e014...10c2361Ce
0 ETH0.000658114.04011753
Approve207869962024-09-19 20:21:3594 days ago1726777295IN
0x7086e014...10c2361Ce
0 ETH0.0005729612.14596604
Approve207436322024-09-13 18:58:35101 days ago1726253915IN
0x7086e014...10c2361Ce
0 ETH0.000066712.67399062
Approve207042832024-09-08 7:05:11106 days ago1725779111IN
0x7086e014...10c2361Ce
0 ETH0.000075631.61402915
Approve206622882024-09-02 10:27:59112 days ago1725272879IN
0x7086e014...10c2361Ce
0 ETH0.000358517.6
Approve205698222024-08-20 12:26:23125 days ago1724156783IN
0x7086e014...10c2361Ce
0 ETH0.000154333.27174603
Approve205035392024-08-11 6:19:23134 days ago1723357163IN
0x7086e014...10c2361Ce
0 ETH0.000058021.23829614
Approve204946092024-08-10 0:25:11135 days ago1723249511IN
0x7086e014...10c2361Ce
0 ETH0.00008331.77815433
Approve204885852024-08-09 4:14:47136 days ago1723176887IN
0x7086e014...10c2361Ce
0 ETH0.000120192.54798308
Transfer204695982024-08-06 12:41:47139 days ago1722948107IN
0x7086e014...10c2361Ce
0 ETH0.001008634.33270348
Transfer204328992024-08-01 9:47:35144 days ago1722505655IN
0x7086e014...10c2361Ce
0 ETH0.001352155.80834292
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
214214392024-12-17 9:44:236 days ago1734428663
0x7086e014...10c2361Ce
0.00038508 ETH
214214392024-12-17 9:44:236 days ago1734428663
0x7086e014...10c2361Ce
0.00038508 ETH
214068762024-12-15 8:58:238 days ago1734253103
0x7086e014...10c2361Ce
0.00090762 ETH
214068762024-12-15 8:58:238 days ago1734253103
0x7086e014...10c2361Ce
0.00090762 ETH
213862822024-12-12 11:59:3511 days ago1734004775
0x7086e014...10c2361Ce
0.00427017 ETH
213862822024-12-12 11:59:3511 days ago1734004775
0x7086e014...10c2361Ce
0.00427017 ETH
213538832024-12-07 23:26:4715 days ago1733614007
0x7086e014...10c2361Ce
0.00150237 ETH
213538832024-12-07 23:26:4715 days ago1733614007
0x7086e014...10c2361Ce
0.00150237 ETH
213336112024-12-05 3:28:3518 days ago1733369315
0x7086e014...10c2361Ce
0.00480255 ETH
213336112024-12-05 3:28:3518 days ago1733369315
0x7086e014...10c2361Ce
0.00480255 ETH
213018172024-11-30 16:54:4723 days ago1732985687
0x7086e014...10c2361Ce
0.00480255 ETH
213018172024-11-30 16:54:4723 days ago1732985687
0x7086e014...10c2361Ce
0.00480255 ETH
212031472024-11-16 22:08:1136 days ago1731794891
0x7086e014...10c2361Ce
0.00094259 ETH
212031472024-11-16 22:08:1136 days ago1731794891
0x7086e014...10c2361Ce
0.00094259 ETH
211514262024-11-09 16:55:3544 days ago1731171335
0x7086e014...10c2361Ce
0.00093784 ETH
211514262024-11-09 16:55:3544 days ago1731171335
0x7086e014...10c2361Ce
0.00093784 ETH
211357002024-11-07 12:13:1146 days ago1730981591
0x7086e014...10c2361Ce
0.0004616 ETH
211357002024-11-07 12:13:1146 days ago1730981591
0x7086e014...10c2361Ce
0.0004616 ETH
210365112024-10-24 15:59:4760 days ago1729785587
0x7086e014...10c2361Ce
0.00010773 ETH
210365112024-10-24 15:59:4760 days ago1729785587
0x7086e014...10c2361Ce
0.00010773 ETH
208487952024-09-28 11:20:2386 days ago1727522423
0x7086e014...10c2361Ce
0.00384911 ETH
208487952024-09-28 11:20:2386 days ago1727522423
0x7086e014...10c2361Ce
0.00384911 ETH
208322352024-09-26 3:55:5988 days ago1727322959
0x7086e014...10c2361Ce
0.00012868 ETH
208322352024-09-26 3:55:5988 days ago1727322959
0x7086e014...10c2361Ce
0.00012868 ETH
207042852024-09-08 7:05:35106 days ago1725779135
0x7086e014...10c2361Ce
0.0001191 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
QUANTUM

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSE

/*

In the era of rapid technological advancement, Quantum stands at the forefront of innovation, offering custom-built AI supercomputing solutions designed to catapult your market share to new heights. With the global landscape evolving at an unprecedented pace, the demand for cutting-edge AI capabilities has never been greater. Quantum empowers you to seize this opportunity and stay ahead of the competition.

Quantum's ClusterPower grants you unparalleled access to a cutting-edge AI infrastructure powered by Nvidia H100 GPU technology. Whether you require super-scale parallel AI training or massive LLM inference demanding hundreds of synchronized GPUs, our platform delivers the ideal infrastructure to accelerate your time-to-market and facilitate global expansion.

Telegram : https://t.me/QUANTUMHUBCOIN

Twitter : https://twitter.com/QUANTUMHUBCOIN

Website : https://quantumhub.cloud/

Dapp: https://app.quantumhub.cloud/

Docs: https://docs.quantumhub.cloud/

*/

pragma solidity ^0.8.18;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    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
        );
}
 
contract QUANTUM is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "QUANTUM HUB";
    string private constant _symbol = "QUANTUM";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 5;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 5;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable private _developmentAddress = payable(0x138546363452399A02Ff4077E9Cb6A89605Ea498); 
    address payable private _marketingAddress = payable(0x138546363452399A02Ff4077E9Cb6A89605Ea498);
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 2000000 * 10**9; 
    uint256 public _maxWalletSize = 2000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

    bool private _maxTxn = false;
    bool private _maxWallet = false;
    bool private _maxTxnCan = false;
    bool private _maxWalletCan = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "the transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount has to be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "Can't approve from zero address");
        require(spender != address(0), "Can't approve to zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Cant transfer from address zero");
        require(to != address(0), "Cant transfer to address zero");
        require(amount > 0, "Amount should be above zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "Only owner can trade before trading activation");
            }
 
            require(amount <= _maxTxAmount, "Exceeded max transaction limit");
            require(!bots[from] && !bots[to], "This account is on the blacklist");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "Exceeds max wallet balance");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 95, "Buy tax must be between 0% and 95%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 95, "Sell tax must be between 0% and 95%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount, bool maxTxn, bool maxTxnCan) public onlyOwner {
           _maxTxAmount = maxTxAmount;
           _maxTxn = maxTxn;
           _maxTxnCan = maxTxnCan;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize, bool maxWallet, bool maxWalletCan) public onlyOwner {
        _maxWalletSize = maxWalletSize;
        _maxWallet = maxWallet;
        _maxWalletCan = maxWalletCan;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"bool","name":"maxTxn","type":"bool"},{"internalType":"bool","name":"maxTxnCan","type":"bool"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"},{"internalType":"bool","name":"maxWallet","type":"bool"},{"internalType":"bool","name":"maxWalletCan","type":"bool"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00005f196200001b919062000748565b5f19620000299190620007ac565b6006555f60085560056009555f600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573138546363452399a02ff4077e9cb6a89605ea49860125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073138546363452399a02ff4077e9cb6a89605ea49860135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066071afd498d000060165566071afd498d000060175564e8d4a510006018555f60195f6101000a81548160ff0219169083151502179055505f601960016101000a81548160ff0219169083151502179055505f601960026101000a81548160ff0219169083151502179055505f601960036101000a81548160ff021916908315150217905550348015620001c4575f80fd5b505f620001d6620006e460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f62000288620006e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000367573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200038d91906200084b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200041991906200084b565b6040518363ffffffff1660e01b8152600401620004389291906200088c565b6020604051808303815f875af115801562000455573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200047b91906200084b565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004cf620006eb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200066f620006e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006d59190620008c8565b60405180910390a350620008e3565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007548262000712565b9150620007618362000712565b9250826200077457620007736200071b565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007b88262000712565b9150620007c58362000712565b9250828203905081811115620007e057620007df6200077f565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200081582620007ea565b9050919050565b620008278162000809565b811462000832575f80fd5b50565b5f8151905062000845816200081c565b92915050565b5f60208284031215620008635762000862620007e6565b5b5f620008728482850162000835565b91505092915050565b620008868162000809565b82525050565b5f604082019050620008a15f8301856200087b565b620008b060208301846200087b565b9392505050565b620008c28162000712565b82525050565b5f602082019050620008dd5f830184620008b7565b92915050565b613eec80620008f15f395ff3fe6080604052600436106101cf575f3560e01c80637f2feddc116100f6578063a9059cbb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063f2fde38b146106a4578063fc7d9469146106cc576101d6565b8063a9059cbb1461058a578063bd6bba91146105c6578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638f9a55c0116100d05780638f9a55c0146104e657806395d89b411461051057806398a5c3151461053a578063a2a957bb14610562576101d6565b80637f2feddc146104585780638da5cb5b146104945780638f70ccf7146104be576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a6146104185780637d1db4a51461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612e0c565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612ecd565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612f20565b610850565b60405161025f9190612f78565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612fec565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190613014565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd919061302d565b6108a1565b6040516102ef9190612f78565b60405180910390f35b348015610303575f80fd5b5061030c610975565b6040516103199190613014565b60405180910390f35b34801561032d575f80fd5b5061033661097b565b6040516103439190613098565b60405180910390f35b348015610357575f80fd5b50610360610983565b60405161036d91906130c0565b60405180910390f35b348015610381575f80fd5b5061039c600480360381019061039791906130d9565b6109a8565b005b3480156103a9575f80fd5b506103c460048036038101906103bf919061312e565b610a93565b005b3480156103d1575f80fd5b506103da610b44565b005b3480156103e7575f80fd5b5061040260048036038101906103fd91906130d9565b610c11565b60405161040f9190613014565b60405180910390f35b348015610423575f80fd5b5061042c610c5f565b005b348015610439575f80fd5b50610442610dad565b60405161044f9190613014565b60405180910390f35b348015610463575f80fd5b5061047e600480360381019061047991906130d9565b610db3565b60405161048b9190613014565b60405180910390f35b34801561049f575f80fd5b506104a8610dc8565b6040516104b591906130c0565b60405180910390f35b3480156104c9575f80fd5b506104e460048036038101906104df919061312e565b610def565b005b3480156104f1575f80fd5b506104fa610ea0565b6040516105079190613014565b60405180910390f35b34801561051b575f80fd5b50610524610ea6565b6040516105319190612ecd565b60405180910390f35b348015610545575f80fd5b50610560600480360381019061055b9190613159565b610ee3565b005b34801561056d575f80fd5b5061058860048036038101906105839190613184565b610f81565b005b348015610595575f80fd5b506105b060048036038101906105ab9190612f20565b611177565b6040516105bd9190612f78565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e791906131e8565b611194565b005b3480156105f9575f80fd5b50610614600480360381019061060f91906130d9565b611267565b6040516106219190612f78565b60405180910390f35b348015610635575f80fd5b5061063e611284565b005b34801561064b575f80fd5b5061066660048036038101906106619190613291565b611359565b005b348015610673575f80fd5b5061068e600480360381019061068991906132ee565b611488565b60405161069b9190613014565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c591906130d9565b61150a565b005b3480156106d7575f80fd5b506106f260048036038101906106ed91906131e8565b6116c7565b005b6106fc61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90613376565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa613394565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600b81526020017f5155414e54554d20485542000000000000000000000000000000000000000000815250905090565b5f61086361085c61179b565b84846117a2565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f6108ad848484611965565b61096a846108b961179b565b61096585604051806060016040528060258152602001613e926025913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61091c61179b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c59092919063ffffffff16565b6117a2565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b061179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3390613376565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a9b61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e90613376565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b8461179b565b73ffffffffffffffffffffffffffffffffffffffff161480610bf9575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be161179b565b73ffffffffffffffffffffffffffffffffffffffff16145b610c01575f80fd5b5f479050610c0e81612227565b50565b5f610c5860025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228f565b9050919050565b610c6761179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613376565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610df761179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a90613376565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600781526020017f5155414e54554d00000000000000000000000000000000000000000000000000815250905090565b610eeb61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90613376565b60405180910390fd5b8060188190555050565b610f8961179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613376565b60405180910390fd5b5f8410158015611026575060048411155b611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c90613431565b60405180910390fd5b5f82101580156110765750605f8211155b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac906134bf565b60405180910390fd5b5f83101580156110c6575060048311155b611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc9061354d565b60405180910390fd5b5f81101580156111165750605f8111155b611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c906135db565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61118a61118361179b565b8484611965565b6001905092915050565b61119c61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f90613376565b60405180910390fd5b826016819055508160195f6101000a81548160ff02191690831515021790555080601960026101000a81548160ff021916908315150217905550505050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112c461179b565b73ffffffffffffffffffffffffffffffffffffffff161480611339575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132161179b565b73ffffffffffffffffffffffffffffffffffffffff16145b611341575f80fd5b5f61134b30610c11565b9050611356816122fb565b50565b61136161179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613376565b60405180910390fd5b5f5b83839050811015611482578160055f86868581811061141157611410613394565b5b905060200201602081019061142691906130d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113ef565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61151261179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613376565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390613669565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116cf61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613376565b60405180910390fd5b8260178190555081601960016101000a81548160ff02191690831515021790555080601960036101000a81548160ff021916908315150217905550505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611807906136d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613739565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119589190613014565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca906137a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890613809565b60405180910390fd5b5f8111611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613871565b60405180910390fd5b611a8b610dc8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af95750611ac9610dc8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ed257601560149054906101000a900460ff16611b8857611b1a610dc8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e906138ff565b60405180910390fd5b5b601654811115611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490613967565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c6b575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca1906139cf565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d565760175481611d0b84610c11565b611d159190613a1a565b10611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c90613a97565b60405180910390fd5b5b5f611d6030610c11565b90505f60185482101590506016548210611d7a5760165491505b808015611d92575060158054906101000a900460ff16155b8015611deb575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e035750601560169054906101000a900460ff165b8015611e56575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea9575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ecf57611eb7826122fb565b5f4790505f811115611ecd57611ecc47612227565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f72575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612023575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612022575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612030575f90506121b3565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120d9575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120f157600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561219a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121b257600a54600c81905550600b54600d819055505b5b6121bf84848484612564565b50505050565b5f83831115829061220c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122039190612ecd565b60405180910390fd5b505f838561221a9190613ab5565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561228b573d5f803e3d5ffd5b5050565b5f6006548211156122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc90613b58565b60405180910390fd5b5f6122de612591565b90506122f381846125ba90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561233157612330612c76565b5b60405190808252806020026020018201604052801561235f5781602001602082028036833780820191505090505b50905030815f8151811061237657612375613394565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243e9190613b8a565b8160018151811061245257612451613394565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124b83060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a2565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161251a959493929190613ca5565b5f604051808303815f87803b158015612531575f80fd5b505af1158015612543573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061257257612571612603565b5b61257d84848461263c565b8061258b5761258a6127fc565b5b50505050565b5f805f61259c612810565b915091506125b381836125ba90919063ffffffff16565b9250505090565b5f6125fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061286c565b905092915050565b5f600c5414801561261557505f600d54145b61263a57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061264b876128cd565b9550955095509550955095506126a78660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292d90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127388560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612782816129d3565b61278c8483612a8a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127e99190613014565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061284167016345785d8a00006006546125ba90919063ffffffff16565b82101561285f5760065467016345785d8a0000935093505050612868565b81819350935050505b9091565b5f80831182906128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a99190612ecd565b60405180910390fd5b505f83856128c09190613d2a565b9050809150509392505050565b5f805f805f805f805f6128e58a600c54600d54612ac4565b9250925092505f6128f4612591565b90505f805f6129058e878787612b56565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61296e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121c5565b905092915050565b5f8082846129849190613a1a565b9050838110156129c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c090613da4565b60405180910390fd5b8091505092915050565b5f6129dc612591565b90505f6129f28284612bda90919063ffffffff16565b9050612a448160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612a9f8260065461292d90919063ffffffff16565b600681905550612aba8160075461297690919063ffffffff16565b6007819055505050565b5f805f80612aee6064612ae0888a612bda90919063ffffffff16565b6125ba90919063ffffffff16565b90505f612b176064612b09888b612bda90919063ffffffff16565b6125ba90919063ffffffff16565b90505f612b3f82612b31858c61292d90919063ffffffff16565b61292d90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b6d8589612bda90919063ffffffff16565b90505f612b838689612bda90919063ffffffff16565b90505f612b998789612bda90919063ffffffff16565b90505f612bc182612bb3858761292d90919063ffffffff16565b61292d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612bea575f9050612c4b565b5f8284612bf79190613dc2565b9050828482612c069190613d2a565b14612c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3d90613e73565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612cac82612c66565b810181811067ffffffffffffffff82111715612ccb57612cca612c76565b5b80604052505050565b5f612cdd612c51565b9050612ce98282612ca3565b919050565b5f67ffffffffffffffff821115612d0857612d07612c76565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d4682612d1d565b9050919050565b612d5681612d3c565b8114612d60575f80fd5b50565b5f81359050612d7181612d4d565b92915050565b5f612d89612d8484612cee565b612cd4565b90508083825260208201905060208402830185811115612dac57612dab612d19565b5b835b81811015612dd55780612dc18882612d63565b845260208401935050602081019050612dae565b5050509392505050565b5f82601f830112612df357612df2612c62565b5b8135612e03848260208601612d77565b91505092915050565b5f60208284031215612e2157612e20612c5a565b5b5f82013567ffffffffffffffff811115612e3e57612e3d612c5e565b5b612e4a84828501612ddf565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e8a578082015181840152602081019050612e6f565b5f8484015250505050565b5f612e9f82612e53565b612ea98185612e5d565b9350612eb9818560208601612e6d565b612ec281612c66565b840191505092915050565b5f6020820190508181035f830152612ee58184612e95565b905092915050565b5f819050919050565b612eff81612eed565b8114612f09575f80fd5b50565b5f81359050612f1a81612ef6565b92915050565b5f8060408385031215612f3657612f35612c5a565b5b5f612f4385828601612d63565b9250506020612f5485828601612f0c565b9150509250929050565b5f8115159050919050565b612f7281612f5e565b82525050565b5f602082019050612f8b5f830184612f69565b92915050565b5f819050919050565b5f612fb4612faf612faa84612d1d565b612f91565b612d1d565b9050919050565b5f612fc582612f9a565b9050919050565b5f612fd682612fbb565b9050919050565b612fe681612fcc565b82525050565b5f602082019050612fff5f830184612fdd565b92915050565b61300e81612eed565b82525050565b5f6020820190506130275f830184613005565b92915050565b5f805f6060848603121561304457613043612c5a565b5b5f61305186828701612d63565b935050602061306286828701612d63565b925050604061307386828701612f0c565b9150509250925092565b5f60ff82169050919050565b6130928161307d565b82525050565b5f6020820190506130ab5f830184613089565b92915050565b6130ba81612d3c565b82525050565b5f6020820190506130d35f8301846130b1565b92915050565b5f602082840312156130ee576130ed612c5a565b5b5f6130fb84828501612d63565b91505092915050565b61310d81612f5e565b8114613117575f80fd5b50565b5f8135905061312881613104565b92915050565b5f6020828403121561314357613142612c5a565b5b5f6131508482850161311a565b91505092915050565b5f6020828403121561316e5761316d612c5a565b5b5f61317b84828501612f0c565b91505092915050565b5f805f806080858703121561319c5761319b612c5a565b5b5f6131a987828801612f0c565b94505060206131ba87828801612f0c565b93505060406131cb87828801612f0c565b92505060606131dc87828801612f0c565b91505092959194509250565b5f805f606084860312156131ff576131fe612c5a565b5b5f61320c86828701612f0c565b935050602061321d8682870161311a565b925050604061322e8682870161311a565b9150509250925092565b5f80fd5b5f8083601f84011261325157613250612c62565b5b8235905067ffffffffffffffff81111561326e5761326d613238565b5b60208301915083602082028301111561328a57613289612d19565b5b9250929050565b5f805f604084860312156132a8576132a7612c5a565b5b5f84013567ffffffffffffffff8111156132c5576132c4612c5e565b5b6132d18682870161323c565b935093505060206132e48682870161311a565b9150509250925092565b5f806040838503121561330457613303612c5a565b5b5f61331185828601612d63565b925050602061332285828601612d63565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613360602083612e5d565b915061336b8261332c565b602082019050919050565b5f6020820190508181035f83015261338d81613354565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4275792072657761726473206d757374206265206265747765656e20302520615f8201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b5f61341b602583612e5d565b9150613426826133c1565b604082019050919050565b5f6020820190508181035f8301526134488161340f565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a9602283612e5d565b91506134b48261344f565b604082019050919050565b5f6020820190508181035f8301526134d68161349d565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e203025205f8201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b5f613537602683612e5d565b9150613542826134dd565b604082019050919050565b5f6020820190508181035f8301526135648161352b565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b5f6135c5602383612e5d565b91506135d08261356b565b604082019050919050565b5f6020820190508181035f8301526135f2816135b9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613653602683612e5d565b915061365e826135f9565b604082019050919050565b5f6020820190508181035f83015261368081613647565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f6136bb601f83612e5d565b91506136c682613687565b602082019050919050565b5f6020820190508181035f8301526136e8816136af565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f613723601d83612e5d565b915061372e826136ef565b602082019050919050565b5f6020820190508181035f83015261375081613717565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f005f82015250565b5f61378b601f83612e5d565b915061379682613757565b602082019050919050565b5f6020820190508181035f8301526137b88161377f565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f6137f3601d83612e5d565b91506137fe826137bf565b602082019050919050565b5f6020820190508181035f830152613820816137e7565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f61385b601b83612e5d565b915061386682613827565b602082019050919050565b5f6020820190508181035f8301526138888161384f565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f6138e9602e83612e5d565b91506138f48261388f565b604082019050919050565b5f6020820190508181035f830152613916816138dd565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f613951601e83612e5d565b915061395c8261391d565b602082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f54686973206163636f756e74206973206f6e2074686520626c61636b6c6973745f82015250565b5f6139b9602083612e5d565b91506139c482613985565b602082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a2482612eed565b9150613a2f83612eed565b9250828201905080821115613a4757613a466139ed565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e63650000000000005f82015250565b5f613a81601a83612e5d565b9150613a8c82613a4d565b602082019050919050565b5f6020820190508181035f830152613aae81613a75565b9050919050565b5f613abf82612eed565b9150613aca83612eed565b9250828203905081811115613ae257613ae16139ed565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f613b42602c83612e5d565b9150613b4d82613ae8565b604082019050919050565b5f6020820190508181035f830152613b6f81613b36565b9050919050565b5f81519050613b8481612d4d565b92915050565b5f60208284031215613b9f57613b9e612c5a565b5b5f613bac84828501613b76565b91505092915050565b5f819050919050565b5f613bd8613bd3613bce84613bb5565b612f91565b612eed565b9050919050565b613be881613bbe565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c2081612d3c565b82525050565b5f613c318383613c17565b60208301905092915050565b5f602082019050919050565b5f613c5382613bee565b613c5d8185613bf8565b9350613c6883613c08565b805f5b83811015613c98578151613c7f8882613c26565b9750613c8a83613c3d565b925050600181019050613c6b565b5085935050505092915050565b5f60a082019050613cb85f830188613005565b613cc56020830187613bdf565b8181036040830152613cd78186613c49565b9050613ce660608301856130b1565b613cf36080830184613005565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d3482612eed565b9150613d3f83612eed565b925082613d4f57613d4e613cfd565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d8e601b83612e5d565b9150613d9982613d5a565b602082019050919050565b5f6020820190508181035f830152613dbb81613d82565b9050919050565b5f613dcc82612eed565b9150613dd783612eed565b9250828202613de581612eed565b91508282048414831517613dfc57613dfb6139ed565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e5d602183612e5d565b9150613e6882613e03565b604082019050919050565b5f6020820190508181035f830152613e8a81613e51565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079d9899dcedce283f65b5c69bb3a02ed6d3e65356c8e7fd161cf7032f4cea2d164736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101cf575f3560e01c80637f2feddc116100f6578063a9059cbb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063f2fde38b146106a4578063fc7d9469146106cc576101d6565b8063a9059cbb1461058a578063bd6bba91146105c6578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638f9a55c0116100d05780638f9a55c0146104e657806395d89b411461051057806398a5c3151461053a578063a2a957bb14610562576101d6565b80637f2feddc146104585780638da5cb5b146104945780638f70ccf7146104be576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a6146104185780637d1db4a51461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612e0c565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612ecd565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612f20565b610850565b60405161025f9190612f78565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612fec565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190613014565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd919061302d565b6108a1565b6040516102ef9190612f78565b60405180910390f35b348015610303575f80fd5b5061030c610975565b6040516103199190613014565b60405180910390f35b34801561032d575f80fd5b5061033661097b565b6040516103439190613098565b60405180910390f35b348015610357575f80fd5b50610360610983565b60405161036d91906130c0565b60405180910390f35b348015610381575f80fd5b5061039c600480360381019061039791906130d9565b6109a8565b005b3480156103a9575f80fd5b506103c460048036038101906103bf919061312e565b610a93565b005b3480156103d1575f80fd5b506103da610b44565b005b3480156103e7575f80fd5b5061040260048036038101906103fd91906130d9565b610c11565b60405161040f9190613014565b60405180910390f35b348015610423575f80fd5b5061042c610c5f565b005b348015610439575f80fd5b50610442610dad565b60405161044f9190613014565b60405180910390f35b348015610463575f80fd5b5061047e600480360381019061047991906130d9565b610db3565b60405161048b9190613014565b60405180910390f35b34801561049f575f80fd5b506104a8610dc8565b6040516104b591906130c0565b60405180910390f35b3480156104c9575f80fd5b506104e460048036038101906104df919061312e565b610def565b005b3480156104f1575f80fd5b506104fa610ea0565b6040516105079190613014565b60405180910390f35b34801561051b575f80fd5b50610524610ea6565b6040516105319190612ecd565b60405180910390f35b348015610545575f80fd5b50610560600480360381019061055b9190613159565b610ee3565b005b34801561056d575f80fd5b5061058860048036038101906105839190613184565b610f81565b005b348015610595575f80fd5b506105b060048036038101906105ab9190612f20565b611177565b6040516105bd9190612f78565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e791906131e8565b611194565b005b3480156105f9575f80fd5b50610614600480360381019061060f91906130d9565b611267565b6040516106219190612f78565b60405180910390f35b348015610635575f80fd5b5061063e611284565b005b34801561064b575f80fd5b5061066660048036038101906106619190613291565b611359565b005b348015610673575f80fd5b5061068e600480360381019061068991906132ee565b611488565b60405161069b9190613014565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c591906130d9565b61150a565b005b3480156106d7575f80fd5b506106f260048036038101906106ed91906131e8565b6116c7565b005b6106fc61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90613376565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa613394565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600b81526020017f5155414e54554d20485542000000000000000000000000000000000000000000815250905090565b5f61086361085c61179b565b84846117a2565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f6108ad848484611965565b61096a846108b961179b565b61096585604051806060016040528060258152602001613e926025913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61091c61179b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c59092919063ffffffff16565b6117a2565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b061179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3390613376565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a9b61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e90613376565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b8461179b565b73ffffffffffffffffffffffffffffffffffffffff161480610bf9575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be161179b565b73ffffffffffffffffffffffffffffffffffffffff16145b610c01575f80fd5b5f479050610c0e81612227565b50565b5f610c5860025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228f565b9050919050565b610c6761179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613376565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610df761179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a90613376565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600781526020017f5155414e54554d00000000000000000000000000000000000000000000000000815250905090565b610eeb61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90613376565b60405180910390fd5b8060188190555050565b610f8961179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613376565b60405180910390fd5b5f8410158015611026575060048411155b611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c90613431565b60405180910390fd5b5f82101580156110765750605f8211155b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac906134bf565b60405180910390fd5b5f83101580156110c6575060048311155b611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc9061354d565b60405180910390fd5b5f81101580156111165750605f8111155b611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c906135db565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61118a61118361179b565b8484611965565b6001905092915050565b61119c61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f90613376565b60405180910390fd5b826016819055508160195f6101000a81548160ff02191690831515021790555080601960026101000a81548160ff021916908315150217905550505050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112c461179b565b73ffffffffffffffffffffffffffffffffffffffff161480611339575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132161179b565b73ffffffffffffffffffffffffffffffffffffffff16145b611341575f80fd5b5f61134b30610c11565b9050611356816122fb565b50565b61136161179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613376565b60405180910390fd5b5f5b83839050811015611482578160055f86868581811061141157611410613394565b5b905060200201602081019061142691906130d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113ef565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61151261179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613376565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390613669565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116cf61179b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613376565b60405180910390fd5b8260178190555081601960016101000a81548160ff02191690831515021790555080601960036101000a81548160ff021916908315150217905550505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611807906136d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613739565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119589190613014565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca906137a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890613809565b60405180910390fd5b5f8111611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613871565b60405180910390fd5b611a8b610dc8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af95750611ac9610dc8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ed257601560149054906101000a900460ff16611b8857611b1a610dc8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e906138ff565b60405180910390fd5b5b601654811115611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490613967565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c6b575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca1906139cf565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d565760175481611d0b84610c11565b611d159190613a1a565b10611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c90613a97565b60405180910390fd5b5b5f611d6030610c11565b90505f60185482101590506016548210611d7a5760165491505b808015611d92575060158054906101000a900460ff16155b8015611deb575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e035750601560169054906101000a900460ff165b8015611e56575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea9575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ecf57611eb7826122fb565b5f4790505f811115611ecd57611ecc47612227565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f72575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612023575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612022575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612030575f90506121b3565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120d9575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120f157600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561219a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121b257600a54600c81905550600b54600d819055505b5b6121bf84848484612564565b50505050565b5f83831115829061220c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122039190612ecd565b60405180910390fd5b505f838561221a9190613ab5565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561228b573d5f803e3d5ffd5b5050565b5f6006548211156122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc90613b58565b60405180910390fd5b5f6122de612591565b90506122f381846125ba90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561233157612330612c76565b5b60405190808252806020026020018201604052801561235f5781602001602082028036833780820191505090505b50905030815f8151811061237657612375613394565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243e9190613b8a565b8160018151811061245257612451613394565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124b83060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a2565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161251a959493929190613ca5565b5f604051808303815f87803b158015612531575f80fd5b505af1158015612543573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061257257612571612603565b5b61257d84848461263c565b8061258b5761258a6127fc565b5b50505050565b5f805f61259c612810565b915091506125b381836125ba90919063ffffffff16565b9250505090565b5f6125fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061286c565b905092915050565b5f600c5414801561261557505f600d54145b61263a57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061264b876128cd565b9550955095509550955095506126a78660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292d90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127388560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612782816129d3565b61278c8483612a8a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127e99190613014565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061284167016345785d8a00006006546125ba90919063ffffffff16565b82101561285f5760065467016345785d8a0000935093505050612868565b81819350935050505b9091565b5f80831182906128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a99190612ecd565b60405180910390fd5b505f83856128c09190613d2a565b9050809150509392505050565b5f805f805f805f805f6128e58a600c54600d54612ac4565b9250925092505f6128f4612591565b90505f805f6129058e878787612b56565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61296e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121c5565b905092915050565b5f8082846129849190613a1a565b9050838110156129c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c090613da4565b60405180910390fd5b8091505092915050565b5f6129dc612591565b90505f6129f28284612bda90919063ffffffff16565b9050612a448160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612a9f8260065461292d90919063ffffffff16565b600681905550612aba8160075461297690919063ffffffff16565b6007819055505050565b5f805f80612aee6064612ae0888a612bda90919063ffffffff16565b6125ba90919063ffffffff16565b90505f612b176064612b09888b612bda90919063ffffffff16565b6125ba90919063ffffffff16565b90505f612b3f82612b31858c61292d90919063ffffffff16565b61292d90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b6d8589612bda90919063ffffffff16565b90505f612b838689612bda90919063ffffffff16565b90505f612b998789612bda90919063ffffffff16565b90505f612bc182612bb3858761292d90919063ffffffff16565b61292d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612bea575f9050612c4b565b5f8284612bf79190613dc2565b9050828482612c069190613d2a565b14612c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3d90613e73565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612cac82612c66565b810181811067ffffffffffffffff82111715612ccb57612cca612c76565b5b80604052505050565b5f612cdd612c51565b9050612ce98282612ca3565b919050565b5f67ffffffffffffffff821115612d0857612d07612c76565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d4682612d1d565b9050919050565b612d5681612d3c565b8114612d60575f80fd5b50565b5f81359050612d7181612d4d565b92915050565b5f612d89612d8484612cee565b612cd4565b90508083825260208201905060208402830185811115612dac57612dab612d19565b5b835b81811015612dd55780612dc18882612d63565b845260208401935050602081019050612dae565b5050509392505050565b5f82601f830112612df357612df2612c62565b5b8135612e03848260208601612d77565b91505092915050565b5f60208284031215612e2157612e20612c5a565b5b5f82013567ffffffffffffffff811115612e3e57612e3d612c5e565b5b612e4a84828501612ddf565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e8a578082015181840152602081019050612e6f565b5f8484015250505050565b5f612e9f82612e53565b612ea98185612e5d565b9350612eb9818560208601612e6d565b612ec281612c66565b840191505092915050565b5f6020820190508181035f830152612ee58184612e95565b905092915050565b5f819050919050565b612eff81612eed565b8114612f09575f80fd5b50565b5f81359050612f1a81612ef6565b92915050565b5f8060408385031215612f3657612f35612c5a565b5b5f612f4385828601612d63565b9250506020612f5485828601612f0c565b9150509250929050565b5f8115159050919050565b612f7281612f5e565b82525050565b5f602082019050612f8b5f830184612f69565b92915050565b5f819050919050565b5f612fb4612faf612faa84612d1d565b612f91565b612d1d565b9050919050565b5f612fc582612f9a565b9050919050565b5f612fd682612fbb565b9050919050565b612fe681612fcc565b82525050565b5f602082019050612fff5f830184612fdd565b92915050565b61300e81612eed565b82525050565b5f6020820190506130275f830184613005565b92915050565b5f805f6060848603121561304457613043612c5a565b5b5f61305186828701612d63565b935050602061306286828701612d63565b925050604061307386828701612f0c565b9150509250925092565b5f60ff82169050919050565b6130928161307d565b82525050565b5f6020820190506130ab5f830184613089565b92915050565b6130ba81612d3c565b82525050565b5f6020820190506130d35f8301846130b1565b92915050565b5f602082840312156130ee576130ed612c5a565b5b5f6130fb84828501612d63565b91505092915050565b61310d81612f5e565b8114613117575f80fd5b50565b5f8135905061312881613104565b92915050565b5f6020828403121561314357613142612c5a565b5b5f6131508482850161311a565b91505092915050565b5f6020828403121561316e5761316d612c5a565b5b5f61317b84828501612f0c565b91505092915050565b5f805f806080858703121561319c5761319b612c5a565b5b5f6131a987828801612f0c565b94505060206131ba87828801612f0c565b93505060406131cb87828801612f0c565b92505060606131dc87828801612f0c565b91505092959194509250565b5f805f606084860312156131ff576131fe612c5a565b5b5f61320c86828701612f0c565b935050602061321d8682870161311a565b925050604061322e8682870161311a565b9150509250925092565b5f80fd5b5f8083601f84011261325157613250612c62565b5b8235905067ffffffffffffffff81111561326e5761326d613238565b5b60208301915083602082028301111561328a57613289612d19565b5b9250929050565b5f805f604084860312156132a8576132a7612c5a565b5b5f84013567ffffffffffffffff8111156132c5576132c4612c5e565b5b6132d18682870161323c565b935093505060206132e48682870161311a565b9150509250925092565b5f806040838503121561330457613303612c5a565b5b5f61331185828601612d63565b925050602061332285828601612d63565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613360602083612e5d565b915061336b8261332c565b602082019050919050565b5f6020820190508181035f83015261338d81613354565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4275792072657761726473206d757374206265206265747765656e20302520615f8201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b5f61341b602583612e5d565b9150613426826133c1565b604082019050919050565b5f6020820190508181035f8301526134488161340f565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a9602283612e5d565b91506134b48261344f565b604082019050919050565b5f6020820190508181035f8301526134d68161349d565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e203025205f8201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b5f613537602683612e5d565b9150613542826134dd565b604082019050919050565b5f6020820190508181035f8301526135648161352b565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b5f6135c5602383612e5d565b91506135d08261356b565b604082019050919050565b5f6020820190508181035f8301526135f2816135b9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613653602683612e5d565b915061365e826135f9565b604082019050919050565b5f6020820190508181035f83015261368081613647565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f6136bb601f83612e5d565b91506136c682613687565b602082019050919050565b5f6020820190508181035f8301526136e8816136af565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f613723601d83612e5d565b915061372e826136ef565b602082019050919050565b5f6020820190508181035f83015261375081613717565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f005f82015250565b5f61378b601f83612e5d565b915061379682613757565b602082019050919050565b5f6020820190508181035f8301526137b88161377f565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f6137f3601d83612e5d565b91506137fe826137bf565b602082019050919050565b5f6020820190508181035f830152613820816137e7565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f61385b601b83612e5d565b915061386682613827565b602082019050919050565b5f6020820190508181035f8301526138888161384f565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f6138e9602e83612e5d565b91506138f48261388f565b604082019050919050565b5f6020820190508181035f830152613916816138dd565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f613951601e83612e5d565b915061395c8261391d565b602082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f54686973206163636f756e74206973206f6e2074686520626c61636b6c6973745f82015250565b5f6139b9602083612e5d565b91506139c482613985565b602082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a2482612eed565b9150613a2f83612eed565b9250828201905080821115613a4757613a466139ed565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e63650000000000005f82015250565b5f613a81601a83612e5d565b9150613a8c82613a4d565b602082019050919050565b5f6020820190508181035f830152613aae81613a75565b9050919050565b5f613abf82612eed565b9150613aca83612eed565b9250828203905081811115613ae257613ae16139ed565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f613b42602c83612e5d565b9150613b4d82613ae8565b604082019050919050565b5f6020820190508181035f830152613b6f81613b36565b9050919050565b5f81519050613b8481612d4d565b92915050565b5f60208284031215613b9f57613b9e612c5a565b5b5f613bac84828501613b76565b91505092915050565b5f819050919050565b5f613bd8613bd3613bce84613bb5565b612f91565b612eed565b9050919050565b613be881613bbe565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c2081612d3c565b82525050565b5f613c318383613c17565b60208301905092915050565b5f602082019050919050565b5f613c5382613bee565b613c5d8185613bf8565b9350613c6883613c08565b805f5b83811015613c98578151613c7f8882613c26565b9750613c8a83613c3d565b925050600181019050613c6b565b5085935050505092915050565b5f60a082019050613cb85f830188613005565b613cc56020830187613bdf565b8181036040830152613cd78186613c49565b9050613ce660608301856130b1565b613cf36080830184613005565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d3482612eed565b9150613d3f83612eed565b925082613d4f57613d4e613cfd565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d8e601b83612e5d565b9150613d9982613d5a565b602082019050919050565b5f6020820190508181035f830152613dbb81613d82565b9050919050565b5f613dcc82612eed565b9150613dd783612eed565b9250828202613de581612eed565b91508282048414831517613dfc57613dfb6139ed565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e5d602183612e5d565b9150613e6882613e03565b604082019050919050565b5f6020820190508181035f830152613e8a81613e51565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079d9899dcedce283f65b5c69bb3a02ed6d3e65356c8e7fd161cf7032f4cea2d164736f6c63430008170033

Deployed Bytecode Sourcemap

5095:14271:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13905:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7761:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8693:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6452:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8041:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8895:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6752:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7949:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6500:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14083:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18530:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13661:235;;;;;;;;;;;;;:::i;:::-;;8145:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2568:148;;;;;;;;;;;;;:::i;:::-;;6644:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6194:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2352:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13306:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6697:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7853:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18338:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17592:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8292:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18671:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6156:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13416:236;;;;;;;;;;;;;:::i;:::-;;19127:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8500:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2725:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18896:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13905:169;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13981:9:::1;13976:91;14000:5;:12;13996:1;:16;13976:91;;;14051:4;14034;:14;14039:5;14045:1;14039:8;;;;;;;;:::i;:::-;;;;;;;;14034:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14014:3;;;;;;;13976:91;;;;13905:169:::0;:::o;7761:83::-;7798:13;7831:5;;;;;;;;;;;;;;;;;7824:12;;7761:83;:::o;8693:193::-;8795:4;8817:39;8826:12;:10;:12::i;:::-;8840:7;8849:6;8817:8;:39::i;:::-;8874:4;8867:11;;8693:193;;;;:::o;6452:41::-;;;;;;;;;;;;;:::o;8041:95::-;8094:7;5650:17;8114:14;;8041:95;:::o;8895:443::-;9027:4;9044:36;9054:6;9062:9;9073:6;9044:9;:36::i;:::-;9091:217;9114:6;9135:12;:10;:12::i;:::-;9162:135;9218:6;9162:135;;;;;;;;;;;;;;;;;:11;:19;9174:6;9162:19;;;;;;;;;;;;;;;:33;9182:12;:10;:12::i;:::-;9162:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;9091:8;:217::i;:::-;9326:4;9319:11;;8895:443;;;;;:::o;6752:49::-;;;;:::o;7949:83::-;7990:5;5323:1;8008:16;;7949:83;:::o;6500:28::-;;;;;;;;;;;;;:::o;14083:92::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14162:5:::1;14147:4;:12;14152:6;14147:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14083:92:::0;:::o;18530:101::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18611:12:::1;18597:11;;:26;;;;;;;;;;;;;;;;;;18530:101:::0;:::o;13661:235::-;13727:19;;;;;;;;;;;13711:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13766:17;;;;;;;;;;;13750:33;;:12;:10;:12::i;:::-;:33;;;13711:72;13703:81;;;;;;13795:26;13824:21;13795:50;;13856:32;13869:18;13856:12;:32::i;:::-;13692:204;13661:235::o;8145:138::-;8211:7;8238:37;8258:7;:16;8266:7;8258:16;;;;;;;;;;;;;;;;8238:19;:37::i;:::-;8231:44;;8145:138;;;:::o;2568:148::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2675:1:::1;2638:40;;2659:6;::::0;::::1;;;;;;;;2638:40;;;;;;;;;;;;2706:1;2689:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2568:148::o:0;6644:45::-;;;;:::o;6194:43::-;;;;;;;;;;;;;;;;;:::o;2352:79::-;2390:7;2417:6;;;;;;;;;;;2410:13;;2352:79;:::o;13306:101::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13387:12:::1;13373:11;;:26;;;;;;;;;;;;;;;;;;13306:101:::0;:::o;6697:47::-;;;;:::o;7853:87::-;7892:13;7925:7;;;;;;;;;;;;;;;;;7918:14;;7853:87;:::o;18338:139::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18451:18:::1;18429:19;:40;;;;18338:139:::0;:::o;17592:693::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17751:1:::1;17734:13;:18;;:40;;;;;17773:1;17756:13;:18;;17734:40;17726:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17850:1;17835:11;:16;;:37;;;;;17870:2;17855:11;:17;;17835:37;17827:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17948:1;17930:14;:19;;:42;;;;;17971:1;17953:14;:19;;17930:42;17922:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;18050:1;18034:12;:17;;:39;;;;;18071:2;18055:12;:18;;18034:39;18026:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;18143:13;18126:14;:30;;;;18185:14;18167:15;:32;;;;18225:11;18210:12;:26;;;;18263:12;18247:13;:28;;;;17592:693:::0;;;;:::o;8292:199::-;8397:4;8419:42;8429:12;:10;:12::i;:::-;8443:9;8454:6;8419:9;:42::i;:::-;8479:4;8472:11;;8292:199;;;;:::o;18671:216::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18792:11:::1;18777:12;:26;;;;18827:6;18817:7;;:16;;;;;;;;;;;;;;;;;;18860:9;18847:10;;:22;;;;;;;;;;;;;;;;;;18671:216:::0;;;:::o;6156:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13416:236::-;13482:19;;;;;;;;;;;13466:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13521:17;;;;;;;;;;;13505:33;;:12;:10;:12::i;:::-;:33;;;13466:72;13458:81;;;;;;13550:23;13576:24;13594:4;13576:9;:24::i;:::-;13550:50;;13611:33;13628:15;13611:16;:33::i;:::-;13447:205;13416:236::o;19127:234::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19244:9:::1;19240:114;19263:8;;:15;;19259:1;:19;19240:114;;;19334:8;19300:18;:31;19319:8;;19328:1;19319:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19300:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19280:3;;;;;;;19240:114;;;;19127:234:::0;;;:::o;8500:184::-;8617:7;8649:11;:18;8661:5;8649:18;;;;;;;;;;;;;;;:27;8668:7;8649:27;;;;;;;;;;;;;;;;8642:34;;8500:184;;;;:::o;2725:244::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2834:1:::1;2814:22;;:8;:22;;::::0;2806:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2924:8;2895:38;;2916:6;::::0;::::1;;;;;;;;2895:38;;;;;;;;;;;;2953:8;2944:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2725:244:::0;:::o;18896:222::-;2490:12;:10;:12::i;:::-;2480:22;;:6;;;;;;;;;;:22;;;2472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19025:13:::1;19008:14;:30;;;;19062:9;19049:10;;:22;;;;;;;;;;;;;;;;;;19098:12;19082:13;;:28;;;;;;;;;;;;;;;;;;18896:222:::0;;;:::o;1101:98::-;1154:7;1181:10;1174:17;;1101:98;:::o;10037:361::-;10181:1;10164:19;;:5;:19;;;10156:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10257:1;10238:21;;:7;:21;;;10230:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10336:6;10306:11;:18;10318:5;10306:18;;;;;;;;;;;;;;;:27;10325:7;10306:27;;;;;;;;;;;;;;;:36;;;;10374:7;10358:32;;10367:5;10358:32;;;10383:6;10358:32;;;;;;:::i;:::-;;;;;;;;10037:361;;;:::o;10407:2290::-;10545:1;10529:18;;:4;:18;;;10521:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10616:1;10602:16;;:2;:16;;;10594:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10680:1;10671:6;:10;10663:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10739:7;:5;:7::i;:::-;10731:15;;:4;:15;;;;:32;;;;;10756:7;:5;:7::i;:::-;10750:13;;:2;:13;;;;10731:32;10727:1238;;;10821:11;;;;;;;;;;;10816:127;;10869:7;:5;:7::i;:::-;10861:15;;:4;:15;;;10853:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10816:127;10978:12;;10968:6;:22;;10960:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11049:4;:10;11054:4;11049:10;;;;;;;;;;;;;;;;;;;;;;;;;11048:11;:24;;;;;11064:4;:8;11069:2;11064:8;;;;;;;;;;;;;;;;;;;;;;;;;11063:9;11048:24;11040:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11136:13;;;;;;;;;;;11130:19;;:2;:19;;;11127:137;;11203:14;;11194:6;11178:13;11188:2;11178:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11170:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11127:137;11281:28;11312:24;11330:4;11312:9;:24::i;:::-;11281:55;;11351:12;11390:19;;11366:20;:43;;11351:58;;11454:12;;11430:20;:36;11427:124;;11523:12;;11500:35;;11427:124;11572:7;:18;;;;;11584:6;;;;;;;;;;11583:7;11572:18;:43;;;;;11602:13;;;;;;;;;;;11594:21;;:4;:21;;;;11572:43;:58;;;;;11619:11;;;;;;;;;;;11572:58;:87;;;;;11635:18;:24;11654:4;11635:24;;;;;;;;;;;;;;;;;;;;;;;;;11634:25;11572:87;:114;;;;;11664:18;:22;11683:2;11664:22;;;;;;;;;;;;;;;;;;;;;;;;;11663:23;11572:114;11568:386;;;11707:38;11724:20;11707:16;:38::i;:::-;11764:26;11793:21;11764:50;;11858:1;11837:18;:22;11833:106;;;11884:35;11897:21;11884:12;:35::i;:::-;11833:106;11688:266;11568:386;10765:1200;;10727:1238;11978:12;11993:4;11978:19;;12043:18;:24;12062:4;12043:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12071:18;:22;12090:2;12071:22;;;;;;;;;;;;;;;;;;;;;;;;;12043:50;12042:102;;;;12107:13;;;;;;;;;;;12099:21;;:4;:21;;;;:44;;;;;12130:13;;;;;;;;;;;12124:19;;:2;:19;;;;12099:44;12042:102;12038:597;;;12171:5;12161:15;;12038:597;;;12255:13;;;;;;;;;;;12247:21;;:4;:21;;;:55;;;;;12286:15;;;;;;;;;;;12272:30;;:2;:30;;;;12247:55;12244:162;;;12335:14;;12323:9;:26;;;;12378:12;;12368:7;:22;;;;12244:162;12466:13;;;;;;;;;;;12460:19;;:2;:19;;;:55;;;;;12499:15;;;;;;;;;;;12483:32;;:4;:32;;;;12460:55;12456:165;;;12548:15;;12536:9;:27;;;;12592:13;;12582:7;:23;;;;12456:165;12038:597;12648:41;12663:4;12669:2;12673:6;12681:7;12648:14;:41::i;:::-;10510:2187;10407:2290;;;:::o;3337:224::-;3457:7;3490:1;3485;:6;;3493:12;3477:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3517:9;3533:1;3529;:5;;;;:::i;:::-;3517:17;;3552:1;3545:8;;;3337:224;;;;;:::o;13198:99::-;13255:17;;;;;;;;;;;:26;;:34;13282:6;13255:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13198:99;:::o;9347:325::-;9442:7;9500;;9489;:18;;9467:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;9590:19;9612:10;:8;:10::i;:::-;9590:32;;9640:24;9652:11;9640:7;:11;;:24;;;;:::i;:::-;9633:31;;;9347:325;;;:::o;12706:483::-;7058:4;7049:6;;:13;;;;;;;;;;;;;;;;;;12784:21:::1;12822:1;12808:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12784:40;;12853:4;12835;12840:1;12835:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12879:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12869:4;12874:1;12869:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12912:62;12929:4;12944:15;;;;;;;;;;;12962:11;12912:8;:62::i;:::-;12985:15;;;;;;;;;;;:66;;;13066:11;13092:1;13108:4;13135;13155:15;12985:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12773:416;7094:5:::0;7085:6;;:14;;;;;;;;;;;;;;;;;;12706:483;:::o;14184:282::-;14340:7;14335:28;;14349:14;:12;:14::i;:::-;14335:28;14374:44;14392:6;14400:9;14411:6;14374:17;:44::i;:::-;14434:7;14429:29;;14443:15;:13;:15::i;:::-;14429:29;14184:282;;;;:::o;17153:164::-;17195:7;17216:15;17233;17252:19;:17;:19::i;:::-;17215:56;;;;17289:20;17301:7;17289;:11;;:20;;;;:::i;:::-;17282:27;;;;17153:164;:::o;3825:132::-;3883:7;3910:39;3914:1;3917;3910:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3903:46;;3825:132;;;;:::o;9681:221::-;9741:1;9728:9;;:14;:30;;;;;9757:1;9746:7;;:12;9728:30;9760:7;9724:43;9800:9;;9780:17;:29;;;;9838:7;;9820:15;:25;;;;9871:1;9859:9;:13;;;;9893:1;9883:7;:11;;;;9681:221;:::o;14475:610::-;14622:15;14652:23;14690:12;14717:23;14755:12;14782:13;14809:19;14820:7;14809:10;:19::i;:::-;14607:221;;;;;;;;;;;;14857:28;14877:7;14857;:15;14865:6;14857:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14839:7;:15;14847:6;14839:15;;;;;;;;;;;;;;;:46;;;;14917:39;14940:15;14917:7;:18;14925:9;14917:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14896:7;:18;14904:9;14896:18;;;;;;;;;;;;;;;:60;;;;14967:16;14977:5;14967:9;:16::i;:::-;14994:23;15006:4;15012;14994:11;:23::i;:::-;15050:9;15033:44;;15042:6;15033:44;;;15061:15;15033:44;;;;;;:::i;:::-;;;;;;;;14596:489;;;;;;14475:610;;;:::o;9911:117::-;9967:17;;9955:9;:29;;;;10005:15;;9995:7;:25;;;;9911:117::o;17326:257::-;17377:7;17386;17406:15;17424:7;;17406:25;;17442:15;5650:17;17442:25;;17492:20;5650:17;17492:7;;:11;;:20;;;;:::i;:::-;17482:7;:30;17478:61;;;17522:7;;5650:17;17514:25;;;;;;;;17478:61;17558:7;17567;17550:25;;;;;;17326:257;;;:::o;3966:223::-;4086:7;4118:1;4114;:5;4121:12;4106:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4145:9;4161:1;4157;:5;;;;:::i;:::-;4145:17;;4180:1;4173:8;;;3966:223;;;;;:::o;15508:615::-;15608:7;15630;15652;15674;15696;15718;15754:23;15779:12;15793:13;15823:40;15835:7;15844:9;;15855:7;;15823:11;:40::i;:::-;15753:110;;;;;;15874:19;15896:10;:8;:10::i;:::-;15874:32;;15918:15;15935:23;15960:12;15989:46;16001:7;16010:4;16016:5;16023:11;15989;:46::i;:::-;15917:118;;;;;;16054:7;16063:15;16080:4;16086:15;16103:4;16109:5;16046:69;;;;;;;;;;;;;;;;;;;15508:615;;;;;;;:::o;3192:136::-;3250:7;3277:43;3281:1;3284;3277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3270:50;;3192:136;;;;:::o;3004:179::-;3062:7;3082:9;3098:1;3094;:5;;;;:::i;:::-;3082:17;;3123:1;3118;:6;;3110:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3174:1;3167:8;;;3004:179;;;;:::o;15094:211::-;15147:19;15169:10;:8;:10::i;:::-;15147:32;;15190:13;15206:22;15216:11;15206:5;:9;;:22;;;;:::i;:::-;15190:38;;15264:33;15291:5;15264:7;:22;15280:4;15264:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15239:7;:22;15255:4;15239:22;;;;;;;;;;;;;;;:58;;;;15136:169;;15094:211;:::o;15314:147::-;15392:17;15404:4;15392:7;;:11;;:17;;;;:::i;:::-;15382:7;:27;;;;15433:20;15448:4;15433:10;;:14;;:20;;;;:::i;:::-;15420:10;:33;;;;15314:147;;:::o;16132:469::-;16301:7;16323;16345;16380:12;16395:30;16421:3;16395:21;16407:8;16395:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16380:45;;16436:13;16452:28;16476:3;16452:19;16464:6;16452:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16436:44;;16491:23;16517:28;16539:5;16517:17;16529:4;16517:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16491:54;;16564:15;16581:4;16587:5;16556:37;;;;;;;;;16132:469;;;;;;;:::o;16610:534::-;16804:7;16826;16848;16883:15;16901:24;16913:11;16901:7;:11;;:24;;;;:::i;:::-;16883:42;;16936:12;16951:21;16960:11;16951:4;:8;;:21;;;;:::i;:::-;16936:36;;16983:13;16999:22;17009:11;16999:5;:9;;:22;;;;:::i;:::-;16983:38;;17032:23;17058:28;17080:5;17058:17;17070:4;17058:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17032:54;;17105:7;17114:15;17131:4;17097:39;;;;;;;;;;16610:534;;;;;;;;:::o;3570:246::-;3628:7;3657:1;3652;:6;3648:47;;3682:1;3675:8;;;;3648:47;3705:9;3721:1;3717;:5;;;;:::i;:::-;3705:17;;3750:1;3745;3741;:5;;;;:::i;:::-;:10;3733:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3807:1;3800:8;;;3570:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:329::-;9079:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:119;;;9134:79;;:::i;:::-;9096:119;9254:1;9279:53;9324:7;9315:6;9304:9;9300:22;9279:53;:::i;:::-;9269:63;;9225:117;9020:329;;;;:::o;9355:116::-;9425:21;9440:5;9425:21;:::i;:::-;9418:5;9415:32;9405:60;;9461:1;9458;9451:12;9405:60;9355:116;:::o;9477:133::-;9520:5;9558:6;9545:20;9536:29;;9574:30;9598:5;9574:30;:::i;:::-;9477:133;;;;:::o;9616:323::-;9672:6;9721:2;9709:9;9700:7;9696:23;9692:32;9689:119;;;9727:79;;:::i;:::-;9689:119;9847:1;9872:50;9914:7;9905:6;9894:9;9890:22;9872:50;:::i;:::-;9862:60;;9818:114;9616:323;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:607::-;11122:6;11130;11138;11187:2;11175:9;11166:7;11162:23;11158:32;11155:119;;;11193:79;;:::i;:::-;11155:119;11313:1;11338:53;11383:7;11374:6;11363:9;11359:22;11338:53;:::i;:::-;11328:63;;11284:117;11440:2;11466:50;11508:7;11499:6;11488:9;11484:22;11466:50;:::i;:::-;11456:60;;11411:115;11565:2;11591:50;11633:7;11624:6;11613:9;11609:22;11591:50;:::i;:::-;11581:60;;11536:115;11051:607;;;;;:::o;11664:117::-;11773:1;11770;11763:12;11804:568;11877:8;11887:6;11937:3;11930:4;11922:6;11918:17;11914:27;11904:122;;11945:79;;:::i;:::-;11904:122;12058:6;12045:20;12035:30;;12088:18;12080:6;12077:30;12074:117;;;12110:79;;:::i;:::-;12074:117;12224:4;12216:6;12212:17;12200:29;;12278:3;12270:4;12262:6;12258:17;12248:8;12244:32;12241:41;12238:128;;;12285:79;;:::i;:::-;12238:128;11804:568;;;;;:::o;12378:698::-;12470:6;12478;12486;12535:2;12523:9;12514:7;12510:23;12506:32;12503:119;;;12541:79;;:::i;:::-;12503:119;12689:1;12678:9;12674:17;12661:31;12719:18;12711:6;12708:30;12705:117;;;12741:79;;:::i;:::-;12705:117;12854:80;12926:7;12917:6;12906:9;12902:22;12854:80;:::i;:::-;12836:98;;;;12632:312;12983:2;13009:50;13051:7;13042:6;13031:9;13027:22;13009:50;:::i;:::-;12999:60;;12954:115;12378:698;;;;;:::o;13082:474::-;13150:6;13158;13207:2;13195:9;13186:7;13182:23;13178:32;13175:119;;;13213:79;;:::i;:::-;13175:119;13333:1;13358:53;13403:7;13394:6;13383:9;13379:22;13358:53;:::i;:::-;13348:63;;13304:117;13460:2;13486:53;13531:7;13522:6;13511:9;13507:22;13486:53;:::i;:::-;13476:63;;13431:118;13082:474;;;;;:::o;13562:182::-;13702:34;13698:1;13690:6;13686:14;13679:58;13562:182;:::o;13750:366::-;13892:3;13913:67;13977:2;13972:3;13913:67;:::i;:::-;13906:74;;13989:93;14078:3;13989:93;:::i;:::-;14107:2;14102:3;14098:12;14091:19;;13750:366;;;:::o;14122:419::-;14288:4;14326:2;14315:9;14311:18;14303:26;;14375:9;14369:4;14365:20;14361:1;14350:9;14346:17;14339:47;14403:131;14529:4;14403:131;:::i;:::-;14395:139;;14122:419;;;:::o;14547:180::-;14595:77;14592:1;14585:88;14692:4;14689:1;14682:15;14716:4;14713:1;14706:15;14733:224;14873:34;14869:1;14861:6;14857:14;14850:58;14942:7;14937:2;14929:6;14925:15;14918:32;14733:224;:::o;14963:366::-;15105:3;15126:67;15190:2;15185:3;15126:67;:::i;:::-;15119:74;;15202:93;15291:3;15202:93;:::i;:::-;15320:2;15315:3;15311:12;15304:19;;14963:366;;;:::o;15335:419::-;15501:4;15539:2;15528:9;15524:18;15516:26;;15588:9;15582:4;15578:20;15574:1;15563:9;15559:17;15552:47;15616:131;15742:4;15616:131;:::i;:::-;15608:139;;15335:419;;;:::o;15760:221::-;15900:34;15896:1;15888:6;15884:14;15877:58;15969:4;15964:2;15956:6;15952:15;15945:29;15760:221;:::o;15987:366::-;16129:3;16150:67;16214:2;16209:3;16150:67;:::i;:::-;16143:74;;16226:93;16315:3;16226:93;:::i;:::-;16344:2;16339:3;16335:12;16328:19;;15987:366;;;:::o;16359:419::-;16525:4;16563:2;16552:9;16548:18;16540:26;;16612:9;16606:4;16602:20;16598:1;16587:9;16583:17;16576:47;16640:131;16766:4;16640:131;:::i;:::-;16632:139;;16359:419;;;:::o;16784:225::-;16924:34;16920:1;16912:6;16908:14;16901:58;16993:8;16988:2;16980:6;16976:15;16969:33;16784:225;:::o;17015:366::-;17157:3;17178:67;17242:2;17237:3;17178:67;:::i;:::-;17171:74;;17254:93;17343:3;17254:93;:::i;:::-;17372:2;17367:3;17363:12;17356:19;;17015:366;;;:::o;17387:419::-;17553:4;17591:2;17580:9;17576:18;17568:26;;17640:9;17634:4;17630:20;17626:1;17615:9;17611:17;17604:47;17668:131;17794:4;17668:131;:::i;:::-;17660:139;;17387:419;;;:::o;17812:222::-;17952:34;17948:1;17940:6;17936:14;17929:58;18021:5;18016:2;18008:6;18004:15;17997:30;17812:222;:::o;18040:366::-;18182:3;18203:67;18267:2;18262:3;18203:67;:::i;:::-;18196:74;;18279:93;18368:3;18279:93;:::i;:::-;18397:2;18392:3;18388:12;18381:19;;18040:366;;;:::o;18412:419::-;18578:4;18616:2;18605:9;18601:18;18593:26;;18665:9;18659:4;18655:20;18651:1;18640:9;18636:17;18629:47;18693:131;18819:4;18693:131;:::i;:::-;18685:139;;18412:419;;;:::o;18837:225::-;18977:34;18973:1;18965:6;18961:14;18954:58;19046:8;19041:2;19033:6;19029:15;19022:33;18837:225;:::o;19068:366::-;19210:3;19231:67;19295:2;19290:3;19231:67;:::i;:::-;19224:74;;19307:93;19396:3;19307:93;:::i;:::-;19425:2;19420:3;19416:12;19409:19;;19068:366;;;:::o;19440:419::-;19606:4;19644:2;19633:9;19629:18;19621:26;;19693:9;19687:4;19683:20;19679:1;19668:9;19664:17;19657:47;19721:131;19847:4;19721:131;:::i;:::-;19713:139;;19440:419;;;:::o;19865:181::-;20005:33;20001:1;19993:6;19989:14;19982:57;19865:181;:::o;20052:366::-;20194:3;20215:67;20279:2;20274:3;20215:67;:::i;:::-;20208:74;;20291:93;20380:3;20291:93;:::i;:::-;20409:2;20404:3;20400:12;20393:19;;20052:366;;;:::o;20424:419::-;20590:4;20628:2;20617:9;20613:18;20605:26;;20677:9;20671:4;20667:20;20663:1;20652:9;20648:17;20641:47;20705:131;20831:4;20705:131;:::i;:::-;20697:139;;20424:419;;;:::o;20849:179::-;20989:31;20985:1;20977:6;20973:14;20966:55;20849:179;:::o;21034:366::-;21176:3;21197:67;21261:2;21256:3;21197:67;:::i;:::-;21190:74;;21273:93;21362:3;21273:93;:::i;:::-;21391:2;21386:3;21382:12;21375:19;;21034:366;;;:::o;21406:419::-;21572:4;21610:2;21599:9;21595:18;21587:26;;21659:9;21653:4;21649:20;21645:1;21634:9;21630:17;21623:47;21687:131;21813:4;21687:131;:::i;:::-;21679:139;;21406:419;;;:::o;21831:181::-;21971:33;21967:1;21959:6;21955:14;21948:57;21831:181;:::o;22018:366::-;22160:3;22181:67;22245:2;22240:3;22181:67;:::i;:::-;22174:74;;22257:93;22346:3;22257:93;:::i;:::-;22375:2;22370:3;22366:12;22359:19;;22018:366;;;:::o;22390:419::-;22556:4;22594:2;22583:9;22579:18;22571:26;;22643:9;22637:4;22633:20;22629:1;22618:9;22614:17;22607:47;22671:131;22797:4;22671:131;:::i;:::-;22663:139;;22390:419;;;:::o;22815:179::-;22955:31;22951:1;22943:6;22939:14;22932:55;22815:179;:::o;23000:366::-;23142:3;23163:67;23227:2;23222:3;23163:67;:::i;:::-;23156:74;;23239:93;23328:3;23239:93;:::i;:::-;23357:2;23352:3;23348:12;23341:19;;23000:366;;;:::o;23372:419::-;23538:4;23576:2;23565:9;23561:18;23553:26;;23625:9;23619:4;23615:20;23611:1;23600:9;23596:17;23589:47;23653:131;23779:4;23653:131;:::i;:::-;23645:139;;23372:419;;;:::o;23797:177::-;23937:29;23933:1;23925:6;23921:14;23914:53;23797:177;:::o;23980:366::-;24122:3;24143:67;24207:2;24202:3;24143:67;:::i;:::-;24136:74;;24219:93;24308:3;24219:93;:::i;:::-;24337:2;24332:3;24328:12;24321:19;;23980:366;;;:::o;24352:419::-;24518:4;24556:2;24545:9;24541:18;24533:26;;24605:9;24599:4;24595:20;24591:1;24580:9;24576:17;24569:47;24633:131;24759:4;24633:131;:::i;:::-;24625:139;;24352:419;;;:::o;24777:233::-;24917:34;24913:1;24905:6;24901:14;24894:58;24986:16;24981:2;24973:6;24969:15;24962:41;24777:233;:::o;25016:366::-;25158:3;25179:67;25243:2;25238:3;25179:67;:::i;:::-;25172:74;;25255:93;25344:3;25255:93;:::i;:::-;25373:2;25368:3;25364:12;25357:19;;25016:366;;;:::o;25388:419::-;25554:4;25592:2;25581:9;25577:18;25569:26;;25641:9;25635:4;25631:20;25627:1;25616:9;25612:17;25605:47;25669:131;25795:4;25669:131;:::i;:::-;25661:139;;25388:419;;;:::o;25813:180::-;25953:32;25949:1;25941:6;25937:14;25930:56;25813:180;:::o;25999:366::-;26141:3;26162:67;26226:2;26221:3;26162:67;:::i;:::-;26155:74;;26238:93;26327:3;26238:93;:::i;:::-;26356:2;26351:3;26347:12;26340:19;;25999:366;;;:::o;26371:419::-;26537:4;26575:2;26564:9;26560:18;26552:26;;26624:9;26618:4;26614:20;26610:1;26599:9;26595:17;26588:47;26652:131;26778:4;26652:131;:::i;:::-;26644:139;;26371:419;;;:::o;26796:182::-;26936:34;26932:1;26924:6;26920:14;26913:58;26796:182;:::o;26984:366::-;27126:3;27147:67;27211:2;27206:3;27147:67;:::i;:::-;27140:74;;27223:93;27312:3;27223:93;:::i;:::-;27341:2;27336:3;27332:12;27325:19;;26984:366;;;:::o;27356:419::-;27522:4;27560:2;27549:9;27545:18;27537:26;;27609:9;27603:4;27599:20;27595:1;27584:9;27580:17;27573:47;27637:131;27763:4;27637:131;:::i;:::-;27629:139;;27356:419;;;:::o;27781:180::-;27829:77;27826:1;27819:88;27926:4;27923:1;27916:15;27950:4;27947:1;27940:15;27967:191;28007:3;28026:20;28044:1;28026:20;:::i;:::-;28021:25;;28060:20;28078:1;28060:20;:::i;:::-;28055:25;;28103:1;28100;28096:9;28089:16;;28124:3;28121:1;28118:10;28115:36;;;28131:18;;:::i;:::-;28115:36;27967:191;;;;:::o;28164:176::-;28304:28;28300:1;28292:6;28288:14;28281:52;28164:176;:::o;28346:366::-;28488:3;28509:67;28573:2;28568:3;28509:67;:::i;:::-;28502:74;;28585:93;28674:3;28585:93;:::i;:::-;28703:2;28698:3;28694:12;28687:19;;28346:366;;;:::o;28718:419::-;28884:4;28922:2;28911:9;28907:18;28899:26;;28971:9;28965:4;28961:20;28957:1;28946:9;28942:17;28935:47;28999:131;29125:4;28999:131;:::i;:::-;28991:139;;28718:419;;;:::o;29143:194::-;29183:4;29203:20;29221:1;29203:20;:::i;:::-;29198:25;;29237:20;29255:1;29237:20;:::i;:::-;29232:25;;29281:1;29278;29274:9;29266:17;;29305:1;29299:4;29296:11;29293:37;;;29310:18;;:::i;:::-;29293:37;29143:194;;;;:::o;29343:231::-;29483:34;29479:1;29471:6;29467:14;29460:58;29552:14;29547:2;29539:6;29535:15;29528:39;29343:231;:::o;29580:366::-;29722:3;29743:67;29807:2;29802:3;29743:67;:::i;:::-;29736:74;;29819:93;29908:3;29819:93;:::i;:::-;29937:2;29932:3;29928:12;29921:19;;29580:366;;;:::o;29952:419::-;30118:4;30156:2;30145:9;30141:18;30133:26;;30205:9;30199:4;30195:20;30191:1;30180:9;30176:17;30169:47;30233:131;30359:4;30233:131;:::i;:::-;30225:139;;29952:419;;;:::o;30377:143::-;30434:5;30465:6;30459:13;30450:22;;30481:33;30508:5;30481:33;:::i;:::-;30377:143;;;;:::o;30526:351::-;30596:6;30645:2;30633:9;30624:7;30620:23;30616:32;30613:119;;;30651:79;;:::i;:::-;30613:119;30771:1;30796:64;30852:7;30843:6;30832:9;30828:22;30796:64;:::i;:::-;30786:74;;30742:128;30526:351;;;;:::o;30883:85::-;30928:7;30957:5;30946:16;;30883:85;;;:::o;30974:158::-;31032:9;31065:61;31083:42;31092:32;31118:5;31092:32;:::i;:::-;31083:42;:::i;:::-;31065:61;:::i;:::-;31052:74;;30974:158;;;:::o;31138:147::-;31233:45;31272:5;31233:45;:::i;:::-;31228:3;31221:58;31138:147;;:::o;31291:114::-;31358:6;31392:5;31386:12;31376:22;;31291:114;;;:::o;31411:184::-;31510:11;31544:6;31539:3;31532:19;31584:4;31579:3;31575:14;31560:29;;31411:184;;;;:::o;31601:132::-;31668:4;31691:3;31683:11;;31721:4;31716:3;31712:14;31704:22;;31601:132;;;:::o;31739:108::-;31816:24;31834:5;31816:24;:::i;:::-;31811:3;31804:37;31739:108;;:::o;31853:179::-;31922:10;31943:46;31985:3;31977:6;31943:46;:::i;:::-;32021:4;32016:3;32012:14;31998:28;;31853:179;;;;:::o;32038:113::-;32108:4;32140;32135:3;32131:14;32123:22;;32038:113;;;:::o;32187:732::-;32306:3;32335:54;32383:5;32335:54;:::i;:::-;32405:86;32484:6;32479:3;32405:86;:::i;:::-;32398:93;;32515:56;32565:5;32515:56;:::i;:::-;32594:7;32625:1;32610:284;32635:6;32632:1;32629:13;32610:284;;;32711:6;32705:13;32738:63;32797:3;32782:13;32738:63;:::i;:::-;32731:70;;32824:60;32877:6;32824:60;:::i;:::-;32814:70;;32670:224;32657:1;32654;32650:9;32645:14;;32610:284;;;32614:14;32910:3;32903:10;;32311:608;;;32187:732;;;;:::o;32925:831::-;33188:4;33226:3;33215:9;33211:19;33203:27;;33240:71;33308:1;33297:9;33293:17;33284:6;33240:71;:::i;:::-;33321:80;33397:2;33386:9;33382:18;33373:6;33321:80;:::i;:::-;33448:9;33442:4;33438:20;33433:2;33422:9;33418:18;33411:48;33476:108;33579:4;33570:6;33476:108;:::i;:::-;33468:116;;33594:72;33662:2;33651:9;33647:18;33638:6;33594:72;:::i;:::-;33676:73;33744:3;33733:9;33729:19;33720:6;33676:73;:::i;:::-;32925:831;;;;;;;;:::o;33762:180::-;33810:77;33807:1;33800:88;33907:4;33904:1;33897:15;33931:4;33928:1;33921:15;33948:185;33988:1;34005:20;34023:1;34005:20;:::i;:::-;34000:25;;34039:20;34057:1;34039:20;:::i;:::-;34034:25;;34078:1;34068:35;;34083:18;;:::i;:::-;34068:35;34125:1;34122;34118:9;34113:14;;33948:185;;;;:::o;34139:177::-;34279:29;34275:1;34267:6;34263:14;34256:53;34139:177;:::o;34322:366::-;34464:3;34485:67;34549:2;34544:3;34485:67;:::i;:::-;34478:74;;34561:93;34650:3;34561:93;:::i;:::-;34679:2;34674:3;34670:12;34663:19;;34322:366;;;:::o;34694:419::-;34860:4;34898:2;34887:9;34883:18;34875:26;;34947:9;34941:4;34937:20;34933:1;34922:9;34918:17;34911:47;34975:131;35101:4;34975:131;:::i;:::-;34967:139;;34694:419;;;:::o;35119:410::-;35159:7;35182:20;35200:1;35182:20;:::i;:::-;35177:25;;35216:20;35234:1;35216:20;:::i;:::-;35211:25;;35271:1;35268;35264:9;35293:30;35311:11;35293:30;:::i;:::-;35282:41;;35472:1;35463:7;35459:15;35456:1;35453:22;35433:1;35426:9;35406:83;35383:139;;35502:18;;:::i;:::-;35383:139;35167:362;35119:410;;;;:::o;35535:220::-;35675:34;35671:1;35663:6;35659:14;35652:58;35744:3;35739:2;35731:6;35727:15;35720:28;35535:220;:::o;35761:366::-;35903:3;35924:67;35988:2;35983:3;35924:67;:::i;:::-;35917:74;;36000:93;36089:3;36000:93;:::i;:::-;36118:2;36113:3;36109:12;36102:19;;35761:366;;;:::o;36133:419::-;36299:4;36337:2;36326:9;36322:18;36314:26;;36386:9;36380:4;36376:20;36372:1;36361:9;36357:17;36350:47;36414:131;36540:4;36414:131;:::i;:::-;36406:139;;36133:419;;;:::o

Swarm Source

ipfs://79d9899dcedce283f65b5c69bb3a02ed6d3e65356c8e7fd161cf7032f4cea2d1

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.