ETH Price: $3,380.53 (+4.22%)

Contract

0x594f8a64D01ABeA062eEE634E627b1b085F99eF3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve237328312025-11-05 11:33:5913 hrs ago1762342439IN
0x594f8a64...085F99eF3
0 ETH0.000060031.27237358
Approve237244572025-11-04 7:26:2342 hrs ago1762241183IN
0x594f8a64...085F99eF3
0 ETH0.00009792.07488053
Approve237220062025-11-03 23:13:592 days ago1762211639IN
0x594f8a64...085F99eF3
0 ETH0.000021290.45138575
Approve237220042025-11-03 23:13:352 days ago1762211615IN
0x594f8a64...085F99eF3
0 ETH0.000022640.47933584
Approve236856062025-10-29 21:03:117 days ago1761771791IN
0x594f8a64...085F99eF3
0 ETH0.000067861.44567902
Approve236376852025-10-23 4:00:2313 days ago1761192023IN
0x594f8a64...085F99eF3
0 ETH0.000007770.1648458
Approve236376832025-10-23 3:59:5913 days ago1761191999IN
0x594f8a64...085F99eF3
0 ETH0.000007740.16386727
Transfer236194602025-10-20 14:38:4716 days ago1760971127IN
0x594f8a64...085F99eF3
0 ETH0.000180382.34372545
Approve236110532025-10-19 10:21:3517 days ago1760869295IN
0x594f8a64...085F99eF3
0 ETH0.000076471.62814508
Transfer236077592025-10-18 23:18:5918 days ago1760829539IN
0x594f8a64...085F99eF3
0 ETH0.00011591.60583703
Transfer235690422025-10-13 13:18:5923 days ago1760361539IN
0x594f8a64...085F99eF3
0 ETH0.000040680.71275238
Approve235677222025-10-13 8:52:1123 days ago1760345531IN
0x594f8a64...085F99eF3
0 ETH0.00004731.89970251
Approve235572732025-10-11 21:49:3525 days ago1760219375IN
0x594f8a64...085F99eF3
0 ETH0.000039590.83939159
Approve235572712025-10-11 21:49:1125 days ago1760219351IN
0x594f8a64...085F99eF3
0 ETH0.000038750.820291
Approve235534932025-10-11 9:09:2325 days ago1760173763IN
0x594f8a64...085F99eF3
0 ETH0.000143863.06706473
Approve235508912025-10-11 0:25:4726 days ago1760142347IN
0x594f8a64...085F99eF3
0 ETH0.0010303721.83744301
Approve235424112025-10-09 19:57:1127 days ago1760039831IN
0x594f8a64...085F99eF3
0 ETH0.000084491.79852962
Approve235317252025-10-08 8:04:3528 days ago1759910675IN
0x594f8a64...085F99eF3
0 ETH0.000006080.12974204
Approve235308002025-10-08 4:57:4728 days ago1759899467IN
0x594f8a64...085F99eF3
0 ETH0.000076141.62116653
Approve235281652025-10-07 20:08:2329 days ago1759867703IN
0x594f8a64...085F99eF3
0 ETH0.00007351.5582281
Approve235278662025-10-07 19:08:2329 days ago1759864103IN
0x594f8a64...085F99eF3
0 ETH0.000038850.8289753
Approve235261772025-10-07 13:28:1129 days ago1759843691IN
0x594f8a64...085F99eF3
0 ETH0.000093681.99557772
Transfer235242592025-10-07 7:03:1129 days ago1759820591IN
0x594f8a64...085F99eF3
0 ETH0.0000710.95707397
Approve235226402025-10-07 1:36:1129 days ago1759800971IN
0x594f8a64...085F99eF3
0 ETH0.000012650.26949497
Transfer235218602025-10-06 22:59:2330 days ago1759791563IN
0x594f8a64...085F99eF3
0 ETH0.00002140.37497845
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Nucleus

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-07-17
*/

// SPDX-License-Identifier: MIT
/*
http://nucleusai.info
http://t.me/nucleusaierc
http://x.com/nucleusai_eth
*/

pragma solidity = 0.8.30;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

library SafeMath {

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

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

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

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

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

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

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

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

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

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

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

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

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

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "WAGMI20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Nucleus is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address public deployerWallet;
    address private marketingWallet;

    bool private swapping;

    string private constant _name = unicode"Nucleus Ai";
    string private constant _symbol = unicode"NUAI";
    
    uint256 public initialTotalSupply = 1000000 * 1e18;

    uint256 public maxTransactionAmountPercent = 1;
    uint256 public maxWalletPercent = 1;
    uint256 public swapTokensAtAmountPercent = 1;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;
    uint256 public swapTokensAtAmount;
    uint256 public currentBlock;
    uint256 public sellCount;

    bool public tradingOpen = false;
    bool public sellLimit = true;

    uint256 public BuyFee = 5;
    uint256 public SellFee = 5;

    mapping(address => bool) public _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) public automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);     
        
        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);

        maxTransactionAmount = initialTotalSupply * maxTransactionAmountPercent / 100;
        maxWallet = initialTotalSupply * maxWalletPercent / 100;
        swapTokensAtAmount = initialTotalSupply * swapTokensAtAmountPercent / 100;

        currentBlock = block.number;
        sellCount = 0;

        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) private {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) private {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (block.number > currentBlock) {
            currentBlock = block.number;
            sellCount = 0;
        }

        bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to];

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                if (sellLimit){
                    require(sellCount < 3, "Exceeded the maximum number of sells allowed in this block");
                    sellCount++;
                }
            } 
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 fees = 0;
        bool takeFee = !swapping && !isTransfer;

        if (takeFee && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            } else {
                fees = amount.mul(BuyFee).div(100);
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0 && !isTransfer && !swapping;

        if (canSwap && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        uint256 contractBalance = balanceOf(address(this));
        if (tokenAmount > contractBalance) {
            tokenAmount = contractBalance;
        }
        
        if (tokenAmount == 0) {
            return;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), tokenAmount);

        try _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        ) {} catch {
        }
    }

   function removeTokensLimit() external onlyOwner {
        maxTransactionAmount = initialTotalSupply;
        maxWallet = initialTotalSupply;
    }

    function removeSellLimits() external {
        require(_msgSender() == deployerWallet);
        sellLimit = false;
    }

    function PullStuckEth() external {
        require(_msgSender() == deployerWallet);
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function ClearClogTokens(address tokenAddress, uint256 toPull) external {
        require(_msgSender() == deployerWallet, "Only deployer can clear tokens");
        require(toPull <= 100, "Percentage must be between 0 and 100");
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 tokensToPull;
        if (toPull == 100) {
            tokensToPull = tokenContract.balanceOf(address(this));
        } else {
            tokensToPull = (initialTotalSupply * toPull) / 100;
        } 
        require(tokensToPull > 0, "No tokens to pull");  
        tokenContract.transfer(deployerWallet, tokensToPull);
    }

    function BurnNuclTokens(uint256 toBurn) external onlyOwner {
        require(_msgSender() == deployerWallet, "Only deployer can burn tokens");
        require(toBurn <= 100, "Percentage must be between 0 and 100");
        uint256 tokensToBurn = (initialTotalSupply * toBurn) / 100;
        require(tokensToBurn > 0, "No tokens to burn");
        transfer(address(0xdead), tokensToBurn);
    }

    function SetFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 40 && _sellFee <= 50, "Fees cannot exceed 50%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        
        if (contractBalance == 0) {
            return;
        }
        
        uint256 tokensToSwap; 

        if ((BuyFee + SellFee) == 0) {
            if (contractBalance > 0 && contractBalance < swapTokensAtAmount) {
                tokensToSwap = contractBalance;
            }
            else {
                uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
                tokens -= sellFeeTokens;
                if (tokens > swapTokensAtAmount) {
                    tokensToSwap = swapTokensAtAmount;
                }
                else {
                    tokensToSwap = tokens;
                }
            }
        } else {
            if (contractBalance > 0 && contractBalance < swapTokensAtAmount.div(10)) {
                return;
            }
            else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(10) && contractBalance < swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount.div(10);
            }
            else {
                uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
                tokens -= sellFeeTokens;
                if (tokens > swapTokensAtAmount) {
                    tokensToSwap = swapTokensAtAmount;
                } else {
                    tokensToSwap = tokens;
                }
            }
        }

        tokensToSwap = tokensToSwap > contractBalance ? contractBalance : tokensToSwap;

        if (tokensToSwap > 0) {
            swapTokensForEth(tokensToSwap);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"uint256","name":"toBurn","type":"uint256"}],"name":"BurnNuclTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"toPull","type":"uint256"}],"name":"ClearClogTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"PullStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeSellLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTokensLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269d3c21bcecceda10000006009556001600a556001600b556001600c555f60125f6101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055506005601355600560145534801561006a575f5ffd5b50604051614cd8380380614cd8833981810160405281019061008c91906109bb565b6040518060400160405280600a81526020017f4e75636c657573204169000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e5541490000000000000000000000000000000000000000000000000000000081525081600390816101079190610c23565b5080600490816101179190610c23565b50505061013661012b61056b60201b60201c565b61057260201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed91906109bb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610254573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027891906109bb565b6040518363ffffffff1660e01b8152600401610295929190610d01565b6020604051808303815f875af11580156102b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d591906109bb565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061034660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161063560201b60201c565b61037860065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106d360201b60201c565b61038b60805160016106d360201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103d961056b60201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043661042961072b60201b60201c565b600161075360201b60201c565b61044730600161075360201b60201c565b61045881600161075360201b60201c565b61046b61dead600161075360201b60201c565b61048961047c61072b60201b60201c565b60016106d360201b60201c565b61049a3060016106d360201b60201c565b6104ab8160016106d360201b60201c565b6104be61dead60016106d360201b60201c565b6064600a546009546104d09190610d55565b6104da9190610dc3565b600d819055506064600b546009546104f29190610d55565b6104fc9190610dc3565b600e819055506064600c546009546105149190610d55565b61051e9190610dc3565b600f81905550436010819055505f60118190555061056560075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009546107f960201b60201c565b50610ef9565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107ed9190610e0d565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085e90610e80565b60405180910390fd5b6108785f838361095360201b60201c565b8060025f8282546108899190610e9e565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109369190610ee0565b60405180910390a361094f5f838361095860201b60201c565b5050565b505050565b505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61098a82610961565b9050919050565b61099a81610980565b81146109a4575f5ffd5b50565b5f815190506109b581610991565b92915050565b5f602082840312156109d0576109cf61095d565b5b5f6109dd848285016109a7565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a6157607f821691505b602082108103610a7457610a73610a1d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610ad67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a9b565b610ae08683610a9b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b24610b1f610b1a84610af8565b610b01565b610af8565b9050919050565b5f819050919050565b610b3d83610b0a565b610b51610b4982610b2b565b848454610aa7565b825550505050565b5f5f905090565b610b68610b59565b610b73818484610b34565b505050565b5b81811015610b9657610b8b5f82610b60565b600181019050610b79565b5050565b601f821115610bdb57610bac81610a7a565b610bb584610a8c565b81016020851015610bc4578190505b610bd8610bd085610a8c565b830182610b78565b50505b505050565b5f82821c905092915050565b5f610bfb5f1984600802610be0565b1980831691505092915050565b5f610c138383610bec565b9150826002028217905092915050565b610c2c826109e6565b67ffffffffffffffff811115610c4557610c446109f0565b5b610c4f8254610a4a565b610c5a828285610b9a565b5f60209050601f831160018114610c8b575f8415610c79578287015190505b610c838582610c08565b865550610cea565b601f198416610c9986610a7a565b5f5b82811015610cc057848901518255600182019150602085019450602081019050610c9b565b86831015610cdd5784890151610cd9601f891682610bec565b8355505b6001600288020188555050505b505050505050565b610cfb81610980565b82525050565b5f604082019050610d145f830185610cf2565b610d216020830184610cf2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d5f82610af8565b9150610d6a83610af8565b9250828202610d7881610af8565b91508282048414831517610d8f57610d8e610d28565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610dcd82610af8565b9150610dd883610af8565b925082610de857610de7610d96565b5b828204905092915050565b5f8115159050919050565b610e0781610df3565b82525050565b5f602082019050610e205f830184610dfe565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610e6a601f83610e26565b9150610e7582610e36565b602082019050919050565b5f6020820190508181035f830152610e9781610e5e565b9050919050565b5f610ea882610af8565b9150610eb383610af8565b9250828201905080821115610ecb57610eca610d28565b5b92915050565b610eda81610af8565b82525050565b5f602082019050610ef35f830184610ed1565b92915050565b608051613db2610f265f395f8181610bf4015281816128a00152818161297f01526129a60152613db25ff3fe608060405260043610610254575f3560e01c8063715018a611610138578063c8c8ebe4116100b5578063e0bf7fd111610079578063e0bf7fd11461088f578063e12ed13c146108cb578063e2f45605146108f5578063f2fde38b1461091f578063f8b45b0514610947578063ffb54a99146109715761025b565b8063c8c8ebe4146107bf578063c9567bf9146107e9578063cf9522fd146107ff578063dd62ed3e14610829578063dd854652146108655761025b565b80639a7a23d6116100fc5780639a7a23d6146106cd578063a457c2d7146106f5578063a9059cbb14610731578063b62496f51461076d578063c6a3bec2146107a95761025b565b8063715018a6146106255780637e73505b1461063b57806381b3a7b6146106635780638da5cb5b1461067957806395d89b41146106a35761025b565b806339509351116101d15780634fbee193116101955780634fbee1931461051b578063583e0568146105575780635d60c7be146105815780635faccd4e146105ab57806367826725146105d357806370a08231146105e95761025b565b806339509351146104375780633d9a3d19146104735780633e4aff1e1461049d57806349bd5a5e146104c75780634f91e48c146104f15761025b565b806318160ddd1161021857806318160ddd1461035357806322a0bc811461037d57806323b872dd146103a7578063311028af146103e3578063313ce5671461040d5761025b565b8063032dc6a21461025f57806306fdde0314610287578063095ea7b3146102b15780630c6b6737146102ed57806310d5de53146103175761025b565b3661025b57005b5f5ffd5b34801561026a575f5ffd5b5061028560048036038101906102809190612a8c565b61099b565b005b348015610292575f5ffd5b5061029b610a06565b6040516102a89190612b3a565b60405180910390f35b3480156102bc575f5ffd5b506102d760048036038101906102d29190612bb4565b610a96565b6040516102e49190612c0c565b60405180910390f35b3480156102f8575f5ffd5b50610301610ab8565b60405161030e9190612c34565b60405180910390f35b348015610322575f5ffd5b5061033d60048036038101906103389190612c4d565b610abe565b60405161034a9190612c0c565b60405180910390f35b34801561035e575f5ffd5b50610367610adb565b6040516103749190612c34565b60405180910390f35b348015610388575f5ffd5b50610391610ae4565b60405161039e9190612c34565b60405180910390f35b3480156103b2575f5ffd5b506103cd60048036038101906103c89190612c78565b610aea565b6040516103da9190612c0c565b60405180910390f35b3480156103ee575f5ffd5b506103f7610b18565b6040516104049190612c34565b60405180910390f35b348015610418575f5ffd5b50610421610b1e565b60405161042e9190612ce3565b60405180910390f35b348015610442575f5ffd5b5061045d60048036038101906104589190612bb4565b610b26565b60405161046a9190612c0c565b60405180910390f35b34801561047e575f5ffd5b50610487610b5c565b6040516104949190612c34565b60405180910390f35b3480156104a8575f5ffd5b506104b1610b62565b6040516104be9190612c34565b60405180910390f35b3480156104d2575f5ffd5b506104db610b68565b6040516104e89190612d0b565b60405180910390f35b3480156104fc575f5ffd5b50610505610b8d565b6040516105129190612c0c565b60405180910390f35b348015610526575f5ffd5b50610541600480360381019061053c9190612c4d565b610ba0565b60405161054e9190612c0c565b60405180910390f35b348015610562575f5ffd5b5061056b610bf2565b6040516105789190612d7f565b60405180910390f35b34801561058c575f5ffd5b50610595610c16565b6040516105a29190612d0b565b60405180910390f35b3480156105b6575f5ffd5b506105d160048036038101906105cc9190612bb4565b610c3b565b005b3480156105de575f5ffd5b506105e7610ea3565b005b3480156105f4575f5ffd5b5061060f600480360381019061060a9190612c4d565b610f1e565b60405161061c9190612c34565b60405180910390f35b348015610630575f5ffd5b50610639610f63565b005b348015610646575f5ffd5b50610661600480360381019061065c9190612d98565b610f76565b005b34801561066e575f5ffd5b506106776110c8565b005b348015610684575f5ffd5b5061068d6110e4565b60405161069a9190612d0b565b60405180910390f35b3480156106ae575f5ffd5b506106b761110c565b6040516106c49190612b3a565b60405180910390f35b3480156106d8575f5ffd5b506106f360048036038101906106ee9190612ded565b61119c565b005b348015610700575f5ffd5b5061071b60048036038101906107169190612bb4565b611241565b6040516107289190612c0c565b60405180910390f35b34801561073c575f5ffd5b5061075760048036038101906107529190612bb4565b6112b6565b6040516107649190612c0c565b60405180910390f35b348015610778575f5ffd5b50610793600480360381019061078e9190612c4d565b6112d8565b6040516107a09190612c0c565b60405180910390f35b3480156107b4575f5ffd5b506107bd6112f5565b005b3480156107ca575f5ffd5b506107d36113dc565b6040516107e09190612c34565b60405180910390f35b3480156107f4575f5ffd5b506107fd6113e2565b005b34801561080a575f5ffd5b50610813611406565b6040516108209190612c34565b60405180910390f35b348015610834575f5ffd5b5061084f600480360381019061084a9190612e2b565b61140c565b60405161085c9190612c34565b60405180910390f35b348015610870575f5ffd5b5061087961148e565b6040516108869190612c34565b60405180910390f35b34801561089a575f5ffd5b506108b560048036038101906108b09190612c4d565b611494565b6040516108c29190612c0c565b60405180910390f35b3480156108d6575f5ffd5b506108df6114b1565b6040516108ec9190612c34565b60405180910390f35b348015610900575f5ffd5b506109096114b7565b6040516109169190612c34565b60405180910390f35b34801561092a575f5ffd5b5061094560048036038101906109409190612c4d565b6114bd565b005b348015610952575f5ffd5b5061095b61153f565b6040516109689190612c34565b60405180910390f35b34801561097c575f5ffd5b50610985611545565b6040516109929190612c0c565b60405180910390f35b6109a3611557565b602882111580156109b5575060328111155b6109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612eb3565b60405180910390fd5b81601381905550806014819055505050565b606060038054610a1590612efe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4190612efe565b8015610a8c5780601f10610a6357610100808354040283529160200191610a8c565b820191905f5260205f20905b815481529060010190602001808311610a6f57829003601f168201915b5050505050905090565b5f5f610aa06115d5565b9050610aad8185856115dc565b600191505092915050565b60115481565b6016602052805f5260405f205f915054906101000a900460ff1681565b5f600254905090565b600a5481565b5f5f610af46115d5565b9050610b0185828561179f565b610b0c85858561182a565b60019150509392505050565b60095481565b5f6012905090565b5f5f610b306115d5565b9050610b51818585610b42858961140c565b610b4c9190612f5b565b6115dc565b600191505092915050565b600b5481565b600c5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260019054906101000a900460ff1681565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7b6115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc890612fd8565b60405180910390fd5b6064811115610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90613066565b60405180910390fd5b5f8290505f60648303610da1578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d5b9190612d0b565b602060405180830381865afa158015610d76573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9a9190613098565b9050610dbe565b606483600954610db191906130c3565b610dbb9190613131565b90505b5f8111610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df7906131ab565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e5c9291906131c9565b6020604051808303815f875af1158015610e78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9c9190613204565b5050505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ee36115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610f02575f5ffd5b5f601260016101000a81548160ff021916908315150217905550565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f6b611557565b610f745f61223a565b565b610f7e611557565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbe6115d5565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b90613279565b60405180910390fd5b6064811115611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90613066565b60405180910390fd5b5f60648260095461106991906130c3565b6110739190613131565b90505f81116110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906132e1565b60405180910390fd5b6110c361dead826112b6565b505050565b6110d0611557565b600954600d81905550600954600e81905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461111b90612efe565b80601f016020809104026020016040519081016040528092919081815260200182805461114790612efe565b80156111925780601f1061116957610100808354040283529160200191611192565b820191905f5260205f20905b81548152906001019060200180831161117557829003601f168201915b5050505050905090565b6111a4611557565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122a9061336f565b60405180910390fd5b61123d82826122fd565b5050565b5f5f61124b6115d5565b90505f611258828661140c565b90508381101561129d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611294906133fd565b60405180910390fd5b6112aa82868684036115dc565b60019250505092915050565b5f5f6112c06115d5565b90506112cd81858561182a565b600191505092915050565b6017602052805f5260405f205f915054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113356115d5565b73ffffffffffffffffffffffffffffffffffffffff1614611354575f5ffd5b5f4711611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d90613465565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156113d9573d5f5f3e3d5ffd5b50565b600d5481565b6113ea611557565b600160125f6101000a81548160ff021916908315150217905550565b60145481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60135481565b6015602052805f5260405f205f915054906101000a900460ff1681565b60105481565b600f5481565b6114c5611557565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a906134f3565b60405180910390fd5b61153c8161223a565b50565b600e5481565b60125f9054906101000a900460ff1681565b61155f6115d5565b73ffffffffffffffffffffffffffffffffffffffff1661157d6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca9061355b565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361164a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611641906135e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90613677565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612c34565b60405180910390a3505050565b5f6117aa848461140c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118245781811015611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d906136df565b60405180910390fd5b61182384848484036115dc565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f9061376d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906137fb565b60405180910390fd5b5f810361191d5761191883835f61239b565b612235565b60105443111561193657436010819055505f6011819055505b5f60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119d5575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90506119df6110e4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a4d5750611a1d6110e4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a8557505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611abf575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ad85750600860149054906101000a900460ff16155b15611f175760125f9054906101000a900460ff16611bcb5760155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b8b575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613863565b60405180910390fd5b5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c68575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d0f57600d54821115611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca9906138f1565b60405180910390fd5b600e54611cbe84610f1e565b83611cc99190612f5b565b1115611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0190613959565b60405180910390fd5b611f16565b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611dac575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e6d57600d54821115611df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ded906139e7565b60405180910390fd5b601260019054906101000a900460ff1615611e6857600360115410611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4790613a75565b60405180910390fd5b60115f815480929190611e6290613a93565b91905055505b611f15565b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f1457600e54611ec784610f1e565b83611ed29190612f5b565b1115611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a90613959565b60405180910390fd5b5b5b5b5b5f5f90505f600860149054906101000a900460ff16158015611f37575082155b9050808015611f8d575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fe0575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561208f5760175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156120635761205c606461204e6014548761260790919063ffffffff16565b61261c90919063ffffffff16565b915061208e565b61208b606461207d6013548761260790919063ffffffff16565b61261c90919063ffffffff16565b91505b5b5f61209930610f1e565b90505f5f821180156120a9575084155b80156120c25750600860149054906101000a900460ff16155b9050808015612118575060175f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561216b575060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121be575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612202576001600860146101000a81548160ff0219169083151502179055506121e786612631565b5f600860146101000a81548160ff0219169083151502179055505b5f8411156122245761221588308661239b565b83866122219190613ada565b95505b61222f88888861239b565b50505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124009061376d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e906137fb565b60405180910390fd5b6124828383836127d4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fc90613b7d565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125ee9190612c34565b60405180910390a36126018484846127d9565b50505050565b5f818361261491906130c3565b905092915050565b5f81836126299190613131565b905092915050565b5f61263b30610f1e565b90505f810361264a57506127d1565b5f5f60145460135461265c9190612f5b565b036126d6575f821180156126715750600f5482105b1561267e578190506126d1565b5f6126a760646126996014548761260790919063ffffffff16565b61261c90919063ffffffff16565b905080846126b59190613ada565b9350600f548411156126cb57600f5491506126cf565b8391505b505b6127ab565b5f821180156126f957506126f6600a600f5461261c90919063ffffffff16565b82105b156127055750506127d1565b5f821180156127285750612725600a600f5461261c90919063ffffffff16565b82115b80156127355750600f5482105b1561275757612750600a600f5461261c90919063ffffffff16565b90506127aa565b5f61278060646127726014548761260790919063ffffffff16565b61261c90919063ffffffff16565b9050808461278e9190613ada565b9350600f548411156127a457600f5491506127a8565b8391505b505b5b8181116127b857806127ba565b815b90505f8111156127ce576127cd816127de565b5b50505b50565b505050565b505050565b5f6127e830610f1e565b9050808211156127f6578091505b5f82036128035750612a52565b5f600267ffffffffffffffff81111561281f5761281e613b9b565b5b60405190808252806020026020018201604052801561284d5781602001602082028036833780820191505090505b50905030815f8151811061286457612863613bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612907573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292b9190613c09565b8160018151811061293f5761293e613bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129a4307f0000000000000000000000000000000000000000000000000000000000000000856115dc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a26959493929190613d24565b5f604051808303815f87803b158015612a3d575f5ffd5b505af1925050508015612a4e575060015b5050505b50565b5f5ffd5b5f819050919050565b612a6b81612a59565b8114612a75575f5ffd5b50565b5f81359050612a8681612a62565b92915050565b5f5f60408385031215612aa257612aa1612a55565b5b5f612aaf85828601612a78565b9250506020612ac085828601612a78565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612b0c82612aca565b612b168185612ad4565b9350612b26818560208601612ae4565b612b2f81612af2565b840191505092915050565b5f6020820190508181035f830152612b528184612b02565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b8382612b5a565b9050919050565b612b9381612b79565b8114612b9d575f5ffd5b50565b5f81359050612bae81612b8a565b92915050565b5f5f60408385031215612bca57612bc9612a55565b5b5f612bd785828601612ba0565b9250506020612be885828601612a78565b9150509250929050565b5f8115159050919050565b612c0681612bf2565b82525050565b5f602082019050612c1f5f830184612bfd565b92915050565b612c2e81612a59565b82525050565b5f602082019050612c475f830184612c25565b92915050565b5f60208284031215612c6257612c61612a55565b5b5f612c6f84828501612ba0565b91505092915050565b5f5f5f60608486031215612c8f57612c8e612a55565b5b5f612c9c86828701612ba0565b9350506020612cad86828701612ba0565b9250506040612cbe86828701612a78565b9150509250925092565b5f60ff82169050919050565b612cdd81612cc8565b82525050565b5f602082019050612cf65f830184612cd4565b92915050565b612d0581612b79565b82525050565b5f602082019050612d1e5f830184612cfc565b92915050565b5f819050919050565b5f612d47612d42612d3d84612b5a565b612d24565b612b5a565b9050919050565b5f612d5882612d2d565b9050919050565b5f612d6982612d4e565b9050919050565b612d7981612d5f565b82525050565b5f602082019050612d925f830184612d70565b92915050565b5f60208284031215612dad57612dac612a55565b5b5f612dba84828501612a78565b91505092915050565b612dcc81612bf2565b8114612dd6575f5ffd5b50565b5f81359050612de781612dc3565b92915050565b5f5f60408385031215612e0357612e02612a55565b5b5f612e1085828601612ba0565b9250506020612e2185828601612dd9565b9150509250929050565b5f5f60408385031215612e4157612e40612a55565b5b5f612e4e85828601612ba0565b9250506020612e5f85828601612ba0565b9150509250929050565b7f466565732063616e6e6f742065786365656420353025000000000000000000005f82015250565b5f612e9d601683612ad4565b9150612ea882612e69565b602082019050919050565b5f6020820190508181035f830152612eca81612e91565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f1557607f821691505b602082108103612f2857612f27612ed1565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f6582612a59565b9150612f7083612a59565b9250828201905080821115612f8857612f87612f2e565b5b92915050565b7f4f6e6c79206465706c6f7965722063616e20636c65617220746f6b656e7300005f82015250565b5f612fc2601e83612ad4565b9150612fcd82612f8e565b602082019050919050565b5f6020820190508181035f830152612fef81612fb6565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f613050602483612ad4565b915061305b82612ff6565b604082019050919050565b5f6020820190508181035f83015261307d81613044565b9050919050565b5f8151905061309281612a62565b92915050565b5f602082840312156130ad576130ac612a55565b5b5f6130ba84828501613084565b91505092915050565b5f6130cd82612a59565b91506130d883612a59565b92508282026130e681612a59565b915082820484148315176130fd576130fc612f2e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61313b82612a59565b915061314683612a59565b92508261315657613155613104565b5b828204905092915050565b7f4e6f20746f6b656e7320746f2070756c6c0000000000000000000000000000005f82015250565b5f613195601183612ad4565b91506131a082613161565b602082019050919050565b5f6020820190508181035f8301526131c281613189565b9050919050565b5f6040820190506131dc5f830185612cfc565b6131e96020830184612c25565b9392505050565b5f815190506131fe81612dc3565b92915050565b5f6020828403121561321957613218612a55565b5b5f613226848285016131f0565b91505092915050565b7f4f6e6c79206465706c6f7965722063616e206275726e20746f6b656e730000005f82015250565b5f613263601d83612ad4565b915061326e8261322f565b602082019050919050565b5f6020820190508181035f83015261329081613257565b9050919050565b7f4e6f20746f6b656e7320746f206275726e0000000000000000000000000000005f82015250565b5f6132cb601183612ad4565b91506132d682613297565b602082019050919050565b5f6020820190508181035f8301526132f8816132bf565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613359603983612ad4565b9150613364826132ff565b604082019050919050565b5f6020820190508181035f8301526133868161334d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6133e7602583612ad4565b91506133f28261338d565b604082019050919050565b5f6020820190508181035f830152613414816133db565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f61344f601683612ad4565b915061345a8261341b565b602082019050919050565b5f6020820190508181035f83015261347c81613443565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134dd602683612ad4565b91506134e882613483565b604082019050919050565b5f6020820190508181035f83015261350a816134d1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613545602083612ad4565b915061355082613511565b602082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135d3602483612ad4565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613661602283612ad4565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6136c9601d83612ad4565b91506136d482613695565b602082019050919050565b5f6020820190508181035f8301526136f6816136bd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613757602583612ad4565b9150613762826136fd565b604082019050919050565b5f6020820190508181035f8301526137848161374b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137e5602383612ad4565b91506137f08261378b565b604082019050919050565b5f6020820190508181035f830152613812816137d9565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61384d601683612ad4565b915061385882613819565b602082019050919050565b5f6020820190508181035f83015261387a81613841565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6138db603583612ad4565b91506138e682613881565b604082019050919050565b5f6020820190508181035f830152613908816138cf565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613943601383612ad4565b915061394e8261390f565b602082019050919050565b5f6020820190508181035f83015261397081613937565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6139d1603683612ad4565b91506139dc82613977565b604082019050919050565b5f6020820190508181035f8301526139fe816139c5565b9050919050565b7f457863656564656420746865206d6178696d756d206e756d626572206f6620735f8201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b000000000000602082015250565b5f613a5f603a83612ad4565b9150613a6a82613a05565b604082019050919050565b5f6020820190508181035f830152613a8c81613a53565b9050919050565b5f613a9d82612a59565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613acf57613ace612f2e565b5b600182019050919050565b5f613ae482612a59565b9150613aef83612a59565b9250828203905081811115613b0757613b06612f2e565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b67602683612ad4565b9150613b7282613b0d565b604082019050919050565b5f6020820190508181035f830152613b9481613b5b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c0381612b8a565b92915050565b5f60208284031215613c1e57613c1d612a55565b5b5f613c2b84828501613bf5565b91505092915050565b5f819050919050565b5f613c57613c52613c4d84613c34565b612d24565b612a59565b9050919050565b613c6781613c3d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c9f81612b79565b82525050565b5f613cb08383613c96565b60208301905092915050565b5f602082019050919050565b5f613cd282613c6d565b613cdc8185613c77565b9350613ce783613c87565b805f5b83811015613d17578151613cfe8882613ca5565b9750613d0983613cbc565b925050600181019050613cea565b5085935050505092915050565b5f60a082019050613d375f830188612c25565b613d446020830187613c5e565b8181036040830152613d568186613cc8565b9050613d656060830185612cfc565b613d726080830184612c25565b969550505050505056fea2646970667358221220fbc61945cb7000846d286cd331c187c2c7b6e82ebdbe5c8eb38b8581fb2bad6a64736f6c634300081e0033000000000000000000000000582f35cf096e91b506e3056a8be5e83bfa8d7da2

Deployed Bytecode

0x608060405260043610610254575f3560e01c8063715018a611610138578063c8c8ebe4116100b5578063e0bf7fd111610079578063e0bf7fd11461088f578063e12ed13c146108cb578063e2f45605146108f5578063f2fde38b1461091f578063f8b45b0514610947578063ffb54a99146109715761025b565b8063c8c8ebe4146107bf578063c9567bf9146107e9578063cf9522fd146107ff578063dd62ed3e14610829578063dd854652146108655761025b565b80639a7a23d6116100fc5780639a7a23d6146106cd578063a457c2d7146106f5578063a9059cbb14610731578063b62496f51461076d578063c6a3bec2146107a95761025b565b8063715018a6146106255780637e73505b1461063b57806381b3a7b6146106635780638da5cb5b1461067957806395d89b41146106a35761025b565b806339509351116101d15780634fbee193116101955780634fbee1931461051b578063583e0568146105575780635d60c7be146105815780635faccd4e146105ab57806367826725146105d357806370a08231146105e95761025b565b806339509351146104375780633d9a3d19146104735780633e4aff1e1461049d57806349bd5a5e146104c75780634f91e48c146104f15761025b565b806318160ddd1161021857806318160ddd1461035357806322a0bc811461037d57806323b872dd146103a7578063311028af146103e3578063313ce5671461040d5761025b565b8063032dc6a21461025f57806306fdde0314610287578063095ea7b3146102b15780630c6b6737146102ed57806310d5de53146103175761025b565b3661025b57005b5f5ffd5b34801561026a575f5ffd5b5061028560048036038101906102809190612a8c565b61099b565b005b348015610292575f5ffd5b5061029b610a06565b6040516102a89190612b3a565b60405180910390f35b3480156102bc575f5ffd5b506102d760048036038101906102d29190612bb4565b610a96565b6040516102e49190612c0c565b60405180910390f35b3480156102f8575f5ffd5b50610301610ab8565b60405161030e9190612c34565b60405180910390f35b348015610322575f5ffd5b5061033d60048036038101906103389190612c4d565b610abe565b60405161034a9190612c0c565b60405180910390f35b34801561035e575f5ffd5b50610367610adb565b6040516103749190612c34565b60405180910390f35b348015610388575f5ffd5b50610391610ae4565b60405161039e9190612c34565b60405180910390f35b3480156103b2575f5ffd5b506103cd60048036038101906103c89190612c78565b610aea565b6040516103da9190612c0c565b60405180910390f35b3480156103ee575f5ffd5b506103f7610b18565b6040516104049190612c34565b60405180910390f35b348015610418575f5ffd5b50610421610b1e565b60405161042e9190612ce3565b60405180910390f35b348015610442575f5ffd5b5061045d60048036038101906104589190612bb4565b610b26565b60405161046a9190612c0c565b60405180910390f35b34801561047e575f5ffd5b50610487610b5c565b6040516104949190612c34565b60405180910390f35b3480156104a8575f5ffd5b506104b1610b62565b6040516104be9190612c34565b60405180910390f35b3480156104d2575f5ffd5b506104db610b68565b6040516104e89190612d0b565b60405180910390f35b3480156104fc575f5ffd5b50610505610b8d565b6040516105129190612c0c565b60405180910390f35b348015610526575f5ffd5b50610541600480360381019061053c9190612c4d565b610ba0565b60405161054e9190612c0c565b60405180910390f35b348015610562575f5ffd5b5061056b610bf2565b6040516105789190612d7f565b60405180910390f35b34801561058c575f5ffd5b50610595610c16565b6040516105a29190612d0b565b60405180910390f35b3480156105b6575f5ffd5b506105d160048036038101906105cc9190612bb4565b610c3b565b005b3480156105de575f5ffd5b506105e7610ea3565b005b3480156105f4575f5ffd5b5061060f600480360381019061060a9190612c4d565b610f1e565b60405161061c9190612c34565b60405180910390f35b348015610630575f5ffd5b50610639610f63565b005b348015610646575f5ffd5b50610661600480360381019061065c9190612d98565b610f76565b005b34801561066e575f5ffd5b506106776110c8565b005b348015610684575f5ffd5b5061068d6110e4565b60405161069a9190612d0b565b60405180910390f35b3480156106ae575f5ffd5b506106b761110c565b6040516106c49190612b3a565b60405180910390f35b3480156106d8575f5ffd5b506106f360048036038101906106ee9190612ded565b61119c565b005b348015610700575f5ffd5b5061071b60048036038101906107169190612bb4565b611241565b6040516107289190612c0c565b60405180910390f35b34801561073c575f5ffd5b5061075760048036038101906107529190612bb4565b6112b6565b6040516107649190612c0c565b60405180910390f35b348015610778575f5ffd5b50610793600480360381019061078e9190612c4d565b6112d8565b6040516107a09190612c0c565b60405180910390f35b3480156107b4575f5ffd5b506107bd6112f5565b005b3480156107ca575f5ffd5b506107d36113dc565b6040516107e09190612c34565b60405180910390f35b3480156107f4575f5ffd5b506107fd6113e2565b005b34801561080a575f5ffd5b50610813611406565b6040516108209190612c34565b60405180910390f35b348015610834575f5ffd5b5061084f600480360381019061084a9190612e2b565b61140c565b60405161085c9190612c34565b60405180910390f35b348015610870575f5ffd5b5061087961148e565b6040516108869190612c34565b60405180910390f35b34801561089a575f5ffd5b506108b560048036038101906108b09190612c4d565b611494565b6040516108c29190612c0c565b60405180910390f35b3480156108d6575f5ffd5b506108df6114b1565b6040516108ec9190612c34565b60405180910390f35b348015610900575f5ffd5b506109096114b7565b6040516109169190612c34565b60405180910390f35b34801561092a575f5ffd5b5061094560048036038101906109409190612c4d565b6114bd565b005b348015610952575f5ffd5b5061095b61153f565b6040516109689190612c34565b60405180910390f35b34801561097c575f5ffd5b50610985611545565b6040516109929190612c0c565b60405180910390f35b6109a3611557565b602882111580156109b5575060328111155b6109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612eb3565b60405180910390fd5b81601381905550806014819055505050565b606060038054610a1590612efe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4190612efe565b8015610a8c5780601f10610a6357610100808354040283529160200191610a8c565b820191905f5260205f20905b815481529060010190602001808311610a6f57829003601f168201915b5050505050905090565b5f5f610aa06115d5565b9050610aad8185856115dc565b600191505092915050565b60115481565b6016602052805f5260405f205f915054906101000a900460ff1681565b5f600254905090565b600a5481565b5f5f610af46115d5565b9050610b0185828561179f565b610b0c85858561182a565b60019150509392505050565b60095481565b5f6012905090565b5f5f610b306115d5565b9050610b51818585610b42858961140c565b610b4c9190612f5b565b6115dc565b600191505092915050565b600b5481565b600c5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260019054906101000a900460ff1681565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7b6115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc890612fd8565b60405180910390fd5b6064811115610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90613066565b60405180910390fd5b5f8290505f60648303610da1578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d5b9190612d0b565b602060405180830381865afa158015610d76573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9a9190613098565b9050610dbe565b606483600954610db191906130c3565b610dbb9190613131565b90505b5f8111610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df7906131ab565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e5c9291906131c9565b6020604051808303815f875af1158015610e78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9c9190613204565b5050505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ee36115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610f02575f5ffd5b5f601260016101000a81548160ff021916908315150217905550565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f6b611557565b610f745f61223a565b565b610f7e611557565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbe6115d5565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b90613279565b60405180910390fd5b6064811115611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90613066565b60405180910390fd5b5f60648260095461106991906130c3565b6110739190613131565b90505f81116110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906132e1565b60405180910390fd5b6110c361dead826112b6565b505050565b6110d0611557565b600954600d81905550600954600e81905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461111b90612efe565b80601f016020809104026020016040519081016040528092919081815260200182805461114790612efe565b80156111925780601f1061116957610100808354040283529160200191611192565b820191905f5260205f20905b81548152906001019060200180831161117557829003601f168201915b5050505050905090565b6111a4611557565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122a9061336f565b60405180910390fd5b61123d82826122fd565b5050565b5f5f61124b6115d5565b90505f611258828661140c565b90508381101561129d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611294906133fd565b60405180910390fd5b6112aa82868684036115dc565b60019250505092915050565b5f5f6112c06115d5565b90506112cd81858561182a565b600191505092915050565b6017602052805f5260405f205f915054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113356115d5565b73ffffffffffffffffffffffffffffffffffffffff1614611354575f5ffd5b5f4711611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d90613465565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156113d9573d5f5f3e3d5ffd5b50565b600d5481565b6113ea611557565b600160125f6101000a81548160ff021916908315150217905550565b60145481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60135481565b6015602052805f5260405f205f915054906101000a900460ff1681565b60105481565b600f5481565b6114c5611557565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a906134f3565b60405180910390fd5b61153c8161223a565b50565b600e5481565b60125f9054906101000a900460ff1681565b61155f6115d5565b73ffffffffffffffffffffffffffffffffffffffff1661157d6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca9061355b565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361164a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611641906135e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90613677565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612c34565b60405180910390a3505050565b5f6117aa848461140c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118245781811015611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d906136df565b60405180910390fd5b61182384848484036115dc565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f9061376d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906137fb565b60405180910390fd5b5f810361191d5761191883835f61239b565b612235565b60105443111561193657436010819055505f6011819055505b5f60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119d5575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90506119df6110e4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a4d5750611a1d6110e4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a8557505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611abf575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ad85750600860149054906101000a900460ff16155b15611f175760125f9054906101000a900460ff16611bcb5760155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b8b575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613863565b60405180910390fd5b5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c68575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d0f57600d54821115611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca9906138f1565b60405180910390fd5b600e54611cbe84610f1e565b83611cc99190612f5b565b1115611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0190613959565b60405180910390fd5b611f16565b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611dac575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e6d57600d54821115611df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ded906139e7565b60405180910390fd5b601260019054906101000a900460ff1615611e6857600360115410611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4790613a75565b60405180910390fd5b60115f815480929190611e6290613a93565b91905055505b611f15565b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f1457600e54611ec784610f1e565b83611ed29190612f5b565b1115611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a90613959565b60405180910390fd5b5b5b5b5b5f5f90505f600860149054906101000a900460ff16158015611f37575082155b9050808015611f8d575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fe0575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561208f5760175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156120635761205c606461204e6014548761260790919063ffffffff16565b61261c90919063ffffffff16565b915061208e565b61208b606461207d6013548761260790919063ffffffff16565b61261c90919063ffffffff16565b91505b5b5f61209930610f1e565b90505f5f821180156120a9575084155b80156120c25750600860149054906101000a900460ff16155b9050808015612118575060175f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561216b575060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121be575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612202576001600860146101000a81548160ff0219169083151502179055506121e786612631565b5f600860146101000a81548160ff0219169083151502179055505b5f8411156122245761221588308661239b565b83866122219190613ada565b95505b61222f88888861239b565b50505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124009061376d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e906137fb565b60405180910390fd5b6124828383836127d4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fc90613b7d565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125ee9190612c34565b60405180910390a36126018484846127d9565b50505050565b5f818361261491906130c3565b905092915050565b5f81836126299190613131565b905092915050565b5f61263b30610f1e565b90505f810361264a57506127d1565b5f5f60145460135461265c9190612f5b565b036126d6575f821180156126715750600f5482105b1561267e578190506126d1565b5f6126a760646126996014548761260790919063ffffffff16565b61261c90919063ffffffff16565b905080846126b59190613ada565b9350600f548411156126cb57600f5491506126cf565b8391505b505b6127ab565b5f821180156126f957506126f6600a600f5461261c90919063ffffffff16565b82105b156127055750506127d1565b5f821180156127285750612725600a600f5461261c90919063ffffffff16565b82115b80156127355750600f5482105b1561275757612750600a600f5461261c90919063ffffffff16565b90506127aa565b5f61278060646127726014548761260790919063ffffffff16565b61261c90919063ffffffff16565b9050808461278e9190613ada565b9350600f548411156127a457600f5491506127a8565b8391505b505b5b8181116127b857806127ba565b815b90505f8111156127ce576127cd816127de565b5b50505b50565b505050565b505050565b5f6127e830610f1e565b9050808211156127f6578091505b5f82036128035750612a52565b5f600267ffffffffffffffff81111561281f5761281e613b9b565b5b60405190808252806020026020018201604052801561284d5781602001602082028036833780820191505090505b50905030815f8151811061286457612863613bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612907573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292b9190613c09565b8160018151811061293f5761293e613bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129a4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d856115dc565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a26959493929190613d24565b5f604051808303815f87803b158015612a3d575f5ffd5b505af1925050508015612a4e575060015b5050505b50565b5f5ffd5b5f819050919050565b612a6b81612a59565b8114612a75575f5ffd5b50565b5f81359050612a8681612a62565b92915050565b5f5f60408385031215612aa257612aa1612a55565b5b5f612aaf85828601612a78565b9250506020612ac085828601612a78565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612b0c82612aca565b612b168185612ad4565b9350612b26818560208601612ae4565b612b2f81612af2565b840191505092915050565b5f6020820190508181035f830152612b528184612b02565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b8382612b5a565b9050919050565b612b9381612b79565b8114612b9d575f5ffd5b50565b5f81359050612bae81612b8a565b92915050565b5f5f60408385031215612bca57612bc9612a55565b5b5f612bd785828601612ba0565b9250506020612be885828601612a78565b9150509250929050565b5f8115159050919050565b612c0681612bf2565b82525050565b5f602082019050612c1f5f830184612bfd565b92915050565b612c2e81612a59565b82525050565b5f602082019050612c475f830184612c25565b92915050565b5f60208284031215612c6257612c61612a55565b5b5f612c6f84828501612ba0565b91505092915050565b5f5f5f60608486031215612c8f57612c8e612a55565b5b5f612c9c86828701612ba0565b9350506020612cad86828701612ba0565b9250506040612cbe86828701612a78565b9150509250925092565b5f60ff82169050919050565b612cdd81612cc8565b82525050565b5f602082019050612cf65f830184612cd4565b92915050565b612d0581612b79565b82525050565b5f602082019050612d1e5f830184612cfc565b92915050565b5f819050919050565b5f612d47612d42612d3d84612b5a565b612d24565b612b5a565b9050919050565b5f612d5882612d2d565b9050919050565b5f612d6982612d4e565b9050919050565b612d7981612d5f565b82525050565b5f602082019050612d925f830184612d70565b92915050565b5f60208284031215612dad57612dac612a55565b5b5f612dba84828501612a78565b91505092915050565b612dcc81612bf2565b8114612dd6575f5ffd5b50565b5f81359050612de781612dc3565b92915050565b5f5f60408385031215612e0357612e02612a55565b5b5f612e1085828601612ba0565b9250506020612e2185828601612dd9565b9150509250929050565b5f5f60408385031215612e4157612e40612a55565b5b5f612e4e85828601612ba0565b9250506020612e5f85828601612ba0565b9150509250929050565b7f466565732063616e6e6f742065786365656420353025000000000000000000005f82015250565b5f612e9d601683612ad4565b9150612ea882612e69565b602082019050919050565b5f6020820190508181035f830152612eca81612e91565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f1557607f821691505b602082108103612f2857612f27612ed1565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f6582612a59565b9150612f7083612a59565b9250828201905080821115612f8857612f87612f2e565b5b92915050565b7f4f6e6c79206465706c6f7965722063616e20636c65617220746f6b656e7300005f82015250565b5f612fc2601e83612ad4565b9150612fcd82612f8e565b602082019050919050565b5f6020820190508181035f830152612fef81612fb6565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f613050602483612ad4565b915061305b82612ff6565b604082019050919050565b5f6020820190508181035f83015261307d81613044565b9050919050565b5f8151905061309281612a62565b92915050565b5f602082840312156130ad576130ac612a55565b5b5f6130ba84828501613084565b91505092915050565b5f6130cd82612a59565b91506130d883612a59565b92508282026130e681612a59565b915082820484148315176130fd576130fc612f2e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61313b82612a59565b915061314683612a59565b92508261315657613155613104565b5b828204905092915050565b7f4e6f20746f6b656e7320746f2070756c6c0000000000000000000000000000005f82015250565b5f613195601183612ad4565b91506131a082613161565b602082019050919050565b5f6020820190508181035f8301526131c281613189565b9050919050565b5f6040820190506131dc5f830185612cfc565b6131e96020830184612c25565b9392505050565b5f815190506131fe81612dc3565b92915050565b5f6020828403121561321957613218612a55565b5b5f613226848285016131f0565b91505092915050565b7f4f6e6c79206465706c6f7965722063616e206275726e20746f6b656e730000005f82015250565b5f613263601d83612ad4565b915061326e8261322f565b602082019050919050565b5f6020820190508181035f83015261329081613257565b9050919050565b7f4e6f20746f6b656e7320746f206275726e0000000000000000000000000000005f82015250565b5f6132cb601183612ad4565b91506132d682613297565b602082019050919050565b5f6020820190508181035f8301526132f8816132bf565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613359603983612ad4565b9150613364826132ff565b604082019050919050565b5f6020820190508181035f8301526133868161334d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6133e7602583612ad4565b91506133f28261338d565b604082019050919050565b5f6020820190508181035f830152613414816133db565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f61344f601683612ad4565b915061345a8261341b565b602082019050919050565b5f6020820190508181035f83015261347c81613443565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134dd602683612ad4565b91506134e882613483565b604082019050919050565b5f6020820190508181035f83015261350a816134d1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613545602083612ad4565b915061355082613511565b602082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135d3602483612ad4565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613661602283612ad4565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6136c9601d83612ad4565b91506136d482613695565b602082019050919050565b5f6020820190508181035f8301526136f6816136bd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613757602583612ad4565b9150613762826136fd565b604082019050919050565b5f6020820190508181035f8301526137848161374b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137e5602383612ad4565b91506137f08261378b565b604082019050919050565b5f6020820190508181035f830152613812816137d9565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61384d601683612ad4565b915061385882613819565b602082019050919050565b5f6020820190508181035f83015261387a81613841565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6138db603583612ad4565b91506138e682613881565b604082019050919050565b5f6020820190508181035f830152613908816138cf565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613943601383612ad4565b915061394e8261390f565b602082019050919050565b5f6020820190508181035f83015261397081613937565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6139d1603683612ad4565b91506139dc82613977565b604082019050919050565b5f6020820190508181035f8301526139fe816139c5565b9050919050565b7f457863656564656420746865206d6178696d756d206e756d626572206f6620735f8201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b000000000000602082015250565b5f613a5f603a83612ad4565b9150613a6a82613a05565b604082019050919050565b5f6020820190508181035f830152613a8c81613a53565b9050919050565b5f613a9d82612a59565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613acf57613ace612f2e565b5b600182019050919050565b5f613ae482612a59565b9150613aef83612a59565b9250828203905081811115613b0757613b06612f2e565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b67602683612ad4565b9150613b7282613b0d565b604082019050919050565b5f6020820190508181035f830152613b9481613b5b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c0381612b8a565b92915050565b5f60208284031215613c1e57613c1d612a55565b5b5f613c2b84828501613bf5565b91505092915050565b5f819050919050565b5f613c57613c52613c4d84613c34565b612d24565b612a59565b9050919050565b613c6781613c3d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c9f81612b79565b82525050565b5f613cb08383613c96565b60208301905092915050565b5f602082019050919050565b5f613cd282613c6d565b613cdc8185613c77565b9350613ce783613c87565b805f5b83811015613d17578151613cfe8882613ca5565b9750613d0983613cbc565b925050600181019050613cea565b5085935050505092915050565b5f60a082019050613d375f830188612c25565b613d446020830187613c5e565b8181036040830152613d568186613cc8565b9050613d656060830185612cfc565b613d726080830184612c25565b969550505050505056fea2646970667358221220fbc61945cb7000846d286cd331c187c2c7b6e82ebdbe5c8eb38b8581fb2bad6a64736f6c634300081e0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000582f35cf096e91b506e3056a8be5e83bfa8d7da2

-----Decoded View---------------
Arg [0] : wallet (address): 0x582F35cf096E91B506E3056A8BE5e83BfA8D7dA2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000582f35cf096e91b506e3056a8be5e83bfa8d7da2


Deployed Bytecode Sourcemap

14675:10546:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23327:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9697:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10629:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15428:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15661:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10018:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15133:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10838:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15074:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9917:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11141:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15186:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15228:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14815:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15499;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18212:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14756:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14850:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22275:637;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21912:123;;;;;;;;;;;;;:::i;:::-;;10134:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8773:103;;;;;;;;;;;;;:::i;:::-;;22920:399;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21755:149;;;;;;;;;;;;;:::i;:::-;;8538:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9805:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17768:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11387:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10269:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15731:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22043:224;;;;;;;;;;;;;:::i;:::-;;15281:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17355:81;;;;;;;;;;;;;:::i;:::-;;15568:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10470:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15536:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15603:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15394:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15354:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8884:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15323:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15461:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23327:211;8497:13;:11;:13::i;:::-;23427:2:::1;23416:7;:13;;:31;;;;;23445:2;23433:8;:14;;23416:31;23408:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23494:7;23485:6;:16;;;;23522:8;23512:7;:18;;;;23327:211:::0;;:::o;9697:100::-;9751:13;9784:5;9777:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9697:100;:::o;10629:201::-;10712:4;10729:13;10745:12;:10;:12::i;:::-;10729:28;;10768:32;10777:5;10784:7;10793:6;10768:8;:32::i;:::-;10818:4;10811:11;;;10629:201;;;;:::o;15428:24::-;;;;:::o;15661:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;10018:108::-;10079:7;10106:12;;10099:19;;10018:108;:::o;15133:46::-;;;;:::o;10838:295::-;10969:4;10986:15;11004:12;:10;:12::i;:::-;10986:30;;11027:38;11043:4;11049:7;11058:6;11027:15;:38::i;:::-;11076:27;11086:4;11092:2;11096:6;11076:9;:27::i;:::-;11121:4;11114:11;;;10838:295;;;;;:::o;15074:50::-;;;;:::o;9917:93::-;9975:5;10000:2;9993:9;;9917:93;:::o;11141:238::-;11229:4;11246:13;11262:12;:10;:12::i;:::-;11246:28;;11285:64;11294:5;11301:7;11338:10;11310:25;11320:5;11327:7;11310:9;:25::i;:::-;:38;;;;:::i;:::-;11285:8;:64::i;:::-;11367:4;11360:11;;;11141:238;;;;:::o;15186:35::-;;;;:::o;15228:44::-;;;;:::o;14815:28::-;;;;;;;;;;;;;:::o;15499:::-;;;;;;;;;;;;;:::o;18212:126::-;18278:4;18302:19;:28;18322:7;18302:28;;;;;;;;;;;;;;;;;;;;;;;;;18295:35;;18212:126;;;:::o;14756:52::-;;;:::o;14850:29::-;;;;;;;;;;;;;:::o;22275:637::-;22382:14;;;;;;;;;;;22366:30;;:12;:10;:12::i;:::-;:30;;;22358:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;22460:3;22450:6;:13;;22442:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;22515:20;22545:12;22515:43;;22569:20;22614:3;22604:6;:13;22600:182;;22649:13;:23;;;22681:4;22649:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22634:53;;22600:182;;;22767:3;22757:6;22736:18;;:27;;;;:::i;:::-;22735:35;;;;:::i;:::-;22720:50;;22600:182;22816:1;22801:12;:16;22793:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;22852:13;:22;;;22875:14;;;;;;;;;;;22891:12;22852:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22347:565;;22275:637;;:::o;21912:123::-;21984:14;;;;;;;;;;;21968:30;;:12;:10;:12::i;:::-;:30;;;21960:39;;;;;;22022:5;22010:9;;:17;;;;;;;;;;;;;;;;;;21912:123::o;10134:127::-;10208:7;10235:9;:18;10245:7;10235:18;;;;;;;;;;;;;;;;10228:25;;10134:127;;;:::o;8773:103::-;8497:13;:11;:13::i;:::-;8838:30:::1;8865:1;8838:18;:30::i;:::-;8773:103::o:0;22920:399::-;8497:13;:11;:13::i;:::-;23014:14:::1;;;;;;;;;;;22998:30;;:12;:10;:12::i;:::-;:30;;;22990:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23091:3;23081:6;:13;;23073:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;23146:20;23201:3;23191:6;23170:18;;:27;;;;:::i;:::-;23169:35;;;;:::i;:::-;23146:58;;23238:1;23223:12;:16;23215:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;23272:39;23289:6;23298:12;23272:8;:39::i;:::-;;22979:340;22920:399:::0;:::o;21755:149::-;8497:13;:11;:13::i;:::-;21837:18:::1;;21814:20;:41;;;;21878:18;;21866:9;:30;;;;21755:149::o:0;8538:87::-;8584:7;8611:6;;;;;;;;;;;8604:13;;8538:87;:::o;9805:104::-;9861:13;9894:7;9887:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9805:104;:::o;17768:242::-;8497:13;:11;:13::i;:::-;17875::::1;;;;;;;;;;;17867:21;;:4;:21;;::::0;17859:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17961:41;17990:4;17996:5;17961:28;:41::i;:::-;17768:242:::0;;:::o;11387:436::-;11480:4;11497:13;11513:12;:10;:12::i;:::-;11497:28;;11536:24;11563:25;11573:5;11580:7;11563:9;:25::i;:::-;11536:52;;11627:15;11607:16;:35;;11599:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11720:60;11729:5;11736:7;11764:15;11745:16;:34;11720:8;:60::i;:::-;11811:4;11804:11;;;;11387:436;;;;:::o;10269:193::-;10348:4;10365:13;10381:12;:10;:12::i;:::-;10365:28;;10404;10414:5;10421:2;10425:6;10404:9;:28::i;:::-;10450:4;10443:11;;;10269:193;;;;:::o;15731:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;22043:224::-;22111:14;;;;;;;;;;;22095:30;;:12;:10;:12::i;:::-;:30;;;22087:39;;;;;;22169:1;22145:21;:25;22137:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22216:10;22208:28;;:51;22237:21;22208:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22043:224::o;15281:35::-;;;;:::o;17355:81::-;8497:13;:11;:13::i;:::-;17424:4:::1;17410:11;;:18;;;;;;;;;;;;;;;;;;17355:81::o:0;15568:26::-;;;;:::o;10470:151::-;10559:7;10586:11;:18;10598:5;10586:18;;;;;;;;;;;;;;;:27;10605:7;10586:27;;;;;;;;;;;;;;;;10579:34;;10470:151;;;;:::o;15536:25::-;;;;:::o;15603:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15394:27::-;;;;:::o;15354:33::-;;;;:::o;8884:201::-;8497:13;:11;:13::i;:::-;8993:1:::1;8973:22;;:8;:22;;::::0;8965:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9049:28;9068:8;9049:18;:28::i;:::-;8884:201:::0;:::o;15323:24::-;;;;:::o;15461:31::-;;;;;;;;;;;;;:::o;8633:132::-;8708:12;:10;:12::i;:::-;8697:23;;:7;:5;:7::i;:::-;:23;;;8689:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8633:132::o;182:98::-;235:7;262:10;255:17;;182:98;:::o;13562:380::-;13715:1;13698:19;;:5;:19;;;13690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13796:1;13777:21;;:7;:21;;;13769:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13880:6;13850:11;:18;13862:5;13850:18;;;;;;;;;;;;;;;:27;13869:7;13850:27;;;;;;;;;;;;;;;:36;;;;13918:7;13902:32;;13911:5;13902:32;;;13927:6;13902:32;;;;;;:::i;:::-;;;;;;;;13562:380;;;:::o;13950:453::-;14085:24;14112:25;14122:5;14129:7;14112:9;:25::i;:::-;14085:52;;14172:17;14152:16;:37;14148:248;;14234:6;14214:16;:26;;14206:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14318:51;14327:5;14334:7;14362:6;14343:16;:25;14318:8;:51::i;:::-;14148:248;14074:329;13950:453;;;:::o;18346:2650::-;18462:1;18446:18;;:4;:18;;;18438:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18539:1;18525:16;;:2;:16;;;18517:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18608:1;18598:6;:11;18594:93;;18626:28;18642:4;18648:2;18652:1;18626:15;:28::i;:::-;18669:7;;18594:93;18718:12;;18703;:27;18699:115;;;18762:12;18747;:27;;;;18801:1;18789:9;:13;;;;18699:115;18826:15;18845:25;:31;18871:4;18845:31;;;;;;;;;;;;;;;;;;;;;;;;;18844:32;:66;;;;;18881:25;:29;18907:2;18881:29;;;;;;;;;;;;;;;;;;;;;;;;;18880:30;18844:66;18826:84;;18935:7;:5;:7::i;:::-;18927:15;;:4;:15;;;;:32;;;;;18952:7;:5;:7::i;:::-;18946:13;;:2;:13;;;;18927:32;:52;;;;;18977:1;18963:16;;:2;:16;;;;18927:52;:77;;;;;18997:6;18983:21;;:2;:21;;;;18927:77;:90;;;;;19009:8;;;;;;;;;;;19008:9;18927:90;18923:1159;;;19041:11;;;;;;;;;;;19036:140;;19081:19;:25;19101:4;19081:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19110:19;:23;19130:2;19110:23;;;;;;;;;;;;;;;;;;;;;;;;;19081:52;19073:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19036:140;19196:25;:31;19222:4;19196:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19232:31;:35;19264:2;19232:35;;;;;;;;;;;;;;;;;;;;;;;;;19231:36;19196:71;19192:879;;;19306:20;;19296:6;:30;;19288:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19437:9;;19420:13;19430:2;19420:9;:13::i;:::-;19411:6;:22;;;;:::i;:::-;:35;;19403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19192:879;;;19509:25;:29;19535:2;19509:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19543:31;:37;19575:4;19543:37;;;;;;;;;;;;;;;;;;;;;;;;;19542:38;19509:71;19505:566;;;19619:20;;19609:6;:30;;19601:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19721:9;;;;;;;;;;;19717:175;;;19774:1;19762:9;;:13;19754:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19861:9;;:11;;;;;;;;;:::i;:::-;;;;;;19717:175;19505:566;;;19932:31;:35;19964:2;19932:35;;;;;;;;;;;;;;;;;;;;;;;;;19927:144;;20022:9;;20005:13;20015:2;20005:9;:13::i;:::-;19996:6;:22;;;;:::i;:::-;:35;;19988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19927:144;19505:566;19192:879;18923:1159;20094:12;20109:1;20094:16;;20121:12;20137:8;;;;;;;;;;;20136:9;:24;;;;;20150:10;20149:11;20136:24;20121:39;;20177:7;:37;;;;;20189:19;:25;20209:4;20189:25;;;;;;;;;;;;;;;;;;;;;;;;;20188:26;20177:37;:65;;;;;20219:19;:23;20239:2;20219:23;;;;;;;;;;;;;;;;;;;;;;;;;20218:24;20177:65;20173:277;;;20263:25;:29;20289:2;20263:29;;;;;;;;;;;;;;;;;;;;;;;;;20259:180;;;20320:28;20344:3;20320:19;20331:7;;20320:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20313:35;;20259:180;;;20396:27;20419:3;20396:18;20407:6;;20396;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;20389:34;;20259:180;20173:277;20460:28;20491:24;20509:4;20491:9;:24::i;:::-;20460:55;;20528:12;20566:1;20543:20;:24;:39;;;;;20572:10;20571:11;20543:39;:52;;;;;20587:8;;;;;;;;;;;20586:9;20543:52;20528:67;;20612:7;:43;;;;;20624:25;:31;20650:4;20624:31;;;;;;;;;;;;;;;;;;;;;;;;;20623:32;20612:43;:73;;;;;20660:19;:25;20680:4;20660:25;;;;;;;;;;;;;;;;;;;;;;;;;20659:26;20612:73;:101;;;;;20690:19;:23;20710:2;20690:23;;;;;;;;;;;;;;;;;;;;;;;;;20689:24;20612:101;20608:211;;;20741:4;20730:8;;:15;;;;;;;;;;;;;;;;;;20760:16;20769:6;20760:8;:16::i;:::-;20802:5;20791:8;;:16;;;;;;;;;;;;;;;;;;20608:211;20842:1;20835:4;:8;20831:112;;;20860:42;20876:4;20890;20897;20860:15;:42::i;:::-;20927:4;20917:14;;;;;:::i;:::-;;;20831:112;20955:33;20971:4;20977:2;20981:6;20955:15;:33::i;:::-;18425:2571;;;;;18346:2650;;;;:::o;9093:191::-;9167:16;9186:6;;;;;;;;;;;9167:25;;9212:8;9203:6;;:17;;;;;;;;;;;;;;;;;;9267:8;9236:40;;9257:8;9236:40;;;;;;;;;;;;9156:128;9093:191;:::o;18018:186::-;18135:5;18101:25;:31;18127:4;18101:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18190:5;18156:40;;18184:4;18156:40;;;;;;;;;;;;18018:186;;:::o;11831:675::-;11978:1;11962:18;;:4;:18;;;11954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12055:1;12041:16;;:2;:16;;;12033:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12110:38;12131:4;12137:2;12141:6;12110:20;:38::i;:::-;12161:19;12183:9;:15;12193:4;12183:15;;;;;;;;;;;;;;;;12161:37;;12232:6;12217:11;:21;;12209:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12349:6;12335:11;:20;12317:9;:15;12327:4;12317:15;;;;;;;;;;;;;;;:38;;;;12387:6;12370:9;:13;12380:2;12370:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12437:2;12422:26;;12431:4;12422:26;;;12441:6;12422:26;;;;;;:::i;:::-;;;;;;;;12461:37;12481:4;12487:2;12491:6;12461:19;:37::i;:::-;11943:563;11831:675;;;:::o;6334:98::-;6392:7;6423:1;6419;:5;;;;:::i;:::-;6412:12;;6334:98;;;;:::o;6440:::-;6498:7;6529:1;6525;:5;;;;:::i;:::-;6518:12;;6440:98;;;;:::o;23546:1672::-;23599:23;23625:24;23643:4;23625:9;:24::i;:::-;23599:50;;23693:1;23674:15;:20;23670:59;;23711:7;;;23670:59;23749:20;23809:1;23797:7;;23788:6;;:16;;;;:::i;:::-;23787:23;23783:1246;;23849:1;23831:15;:19;:59;;;;;23872:18;;23854:15;:36;23831:59;23827:492;;;23926:15;23911:30;;23827:492;;;23995:21;24019:28;24043:3;24019:19;24030:7;;24019:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23995:52;;24076:13;24066:23;;;;;:::i;:::-;;;24121:18;;24112:6;:27;24108:196;;;24179:18;;24164:33;;24108:196;;;24278:6;24263:21;;24108:196;23976:343;23827:492;23783:1246;;;24373:1;24355:15;:19;:67;;;;;24396:26;24419:2;24396:18;;:22;;:26;;;;:::i;:::-;24378:15;:44;24355:67;24351:667;;;24443:7;;;;24351:667;24506:1;24488:15;:19;:67;;;;;24529:26;24552:2;24529:18;;:22;;:26;;;;:::i;:::-;24511:15;:44;24488:67;:107;;;;;24577:18;;24559:15;:36;24488:107;24484:534;;;24631:26;24654:2;24631:18;;:22;;:26;;;;:::i;:::-;24616:41;;24484:534;;;24711:21;24735:28;24759:3;24735:19;24746:7;;24735:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24711:52;;24792:13;24782:23;;;;;:::i;:::-;;;24837:18;;24828:6;:27;24824:179;;;24895:18;;24880:33;;24824:179;;;24977:6;24962:21;;24824:179;24692:326;24484:534;23783:1246;25071:15;25056:12;:30;:63;;25107:12;25056:63;;;25089:15;25056:63;25041:78;;25151:1;25136:12;:16;25132:79;;;25169:30;25186:12;25169:16;:30::i;:::-;25132:79;23588:1630;;23546:1672;;:::o;14411:125::-;;;;:::o;14544:124::-;;;;:::o;21004:744::-;21070:23;21096:24;21114:4;21096:9;:24::i;:::-;21070:50;;21149:15;21135:11;:29;21131:91;;;21195:15;21181:29;;21131:91;21261:1;21246:11;:16;21242:55;;21279:7;;;21242:55;21309:21;21347:1;21333:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21309:40;;21378:4;21360;21365:1;21360:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21404:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21394:4;21399:1;21394:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21440:63;21457:4;21472:16;21491:11;21440:8;:63::i;:::-;21520:16;:67;;;21602:11;21628:1;21644:4;21663:15;;;;;;;;;;;21693;21520:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21516:225;21059:689;;21004:744;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:139::-;1539:6;1534:3;1529;1523:23;1580:1;1571:6;1566:3;1562:16;1555:27;1450:139;;;:::o;1595:102::-;1636:6;1687:2;1683:7;1678:2;1671:5;1667:14;1663:28;1653:38;;1595:102;;;:::o;1703:377::-;1791:3;1819:39;1852:5;1819:39;:::i;:::-;1874:71;1938:6;1933:3;1874:71;:::i;:::-;1867:78;;1954:65;2012:6;2007:3;2000:4;1993:5;1989:16;1954:65;:::i;:::-;2044:29;2066:6;2044:29;:::i;:::-;2039:3;2035:39;2028:46;;1795:285;1703:377;;;;:::o;2086:313::-;2199:4;2237:2;2226:9;2222:18;2214:26;;2286:9;2280:4;2276:20;2272:1;2261:9;2257:17;2250:47;2314:78;2387:4;2378:6;2314:78;:::i;:::-;2306:86;;2086:313;;;;:::o;2405:126::-;2442:7;2482:42;2475:5;2471:54;2460:65;;2405:126;;;:::o;2537:96::-;2574:7;2603:24;2621:5;2603:24;:::i;:::-;2592:35;;2537:96;;;:::o;2639:122::-;2712:24;2730:5;2712:24;:::i;:::-;2705:5;2702:35;2692:63;;2751:1;2748;2741:12;2692:63;2639:122;:::o;2767:139::-;2813:5;2851:6;2838:20;2829:29;;2867:33;2894:5;2867:33;:::i;:::-;2767:139;;;;:::o;2912:474::-;2980:6;2988;3037:2;3025:9;3016:7;3012:23;3008:32;3005:119;;;3043:79;;:::i;:::-;3005:119;3163:1;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3134:117;3290:2;3316:53;3361:7;3352:6;3341:9;3337:22;3316:53;:::i;:::-;3306:63;;3261:118;2912:474;;;;;:::o;3392:90::-;3426:7;3469:5;3462:13;3455:21;3444:32;;3392:90;;;:::o;3488:109::-;3569:21;3584:5;3569:21;:::i;:::-;3564:3;3557:34;3488:109;;:::o;3603:210::-;3690:4;3728:2;3717:9;3713:18;3705:26;;3741:65;3803:1;3792:9;3788:17;3779:6;3741:65;:::i;:::-;3603:210;;;;:::o;3819:118::-;3906:24;3924:5;3906:24;:::i;:::-;3901:3;3894:37;3819:118;;:::o;3943:222::-;4036:4;4074:2;4063:9;4059:18;4051:26;;4087:71;4155:1;4144:9;4140:17;4131:6;4087:71;:::i;:::-;3943:222;;;;:::o;4171:329::-;4230:6;4279:2;4267:9;4258:7;4254:23;4250:32;4247:119;;;4285:79;;:::i;:::-;4247:119;4405:1;4430:53;4475:7;4466:6;4455:9;4451:22;4430:53;:::i;:::-;4420:63;;4376:117;4171:329;;;;:::o;4506:619::-;4583:6;4591;4599;4648:2;4636:9;4627:7;4623:23;4619:32;4616:119;;;4654:79;;:::i;:::-;4616:119;4774:1;4799:53;4844:7;4835:6;4824:9;4820:22;4799:53;:::i;:::-;4789:63;;4745:117;4901:2;4927:53;4972:7;4963:6;4952:9;4948:22;4927:53;:::i;:::-;4917:63;;4872:118;5029:2;5055:53;5100:7;5091:6;5080:9;5076:22;5055:53;:::i;:::-;5045:63;;5000:118;4506:619;;;;;:::o;5131:86::-;5166:7;5206:4;5199:5;5195:16;5184:27;;5131:86;;;:::o;5223:112::-;5306:22;5322:5;5306:22;:::i;:::-;5301:3;5294:35;5223:112;;:::o;5341:214::-;5430:4;5468:2;5457:9;5453:18;5445:26;;5481:67;5545:1;5534:9;5530:17;5521:6;5481:67;:::i;:::-;5341:214;;;;:::o;5561:118::-;5648:24;5666:5;5648:24;:::i;:::-;5643:3;5636:37;5561:118;;:::o;5685:222::-;5778:4;5816:2;5805:9;5801:18;5793:26;;5829:71;5897:1;5886:9;5882:17;5873:6;5829:71;:::i;:::-;5685:222;;;;:::o;5913:60::-;5941:3;5962:5;5955:12;;5913:60;;;:::o;5979:142::-;6029:9;6062:53;6080:34;6089:24;6107:5;6089:24;:::i;:::-;6080:34;:::i;:::-;6062:53;:::i;:::-;6049:66;;5979:142;;;:::o;6127:126::-;6177:9;6210:37;6241:5;6210:37;:::i;:::-;6197:50;;6127:126;;;:::o;6259:151::-;6334:9;6367:37;6398:5;6367:37;:::i;:::-;6354:50;;6259:151;;;:::o;6416:181::-;6528:62;6584:5;6528:62;:::i;:::-;6523:3;6516:75;6416:181;;:::o;6603:272::-;6721:4;6759:2;6748:9;6744:18;6736:26;;6772:96;6865:1;6854:9;6850:17;6841:6;6772:96;:::i;:::-;6603:272;;;;:::o;6881:329::-;6940:6;6989:2;6977:9;6968:7;6964:23;6960:32;6957:119;;;6995:79;;:::i;:::-;6957:119;7115:1;7140:53;7185:7;7176:6;7165:9;7161:22;7140:53;:::i;:::-;7130:63;;7086:117;6881:329;;;;:::o;7216:116::-;7286:21;7301:5;7286:21;:::i;:::-;7279:5;7276:32;7266:60;;7322:1;7319;7312:12;7266:60;7216:116;:::o;7338:133::-;7381:5;7419:6;7406:20;7397:29;;7435:30;7459:5;7435:30;:::i;:::-;7338:133;;;;:::o;7477:468::-;7542:6;7550;7599:2;7587:9;7578:7;7574:23;7570:32;7567:119;;;7605:79;;:::i;:::-;7567:119;7725:1;7750:53;7795:7;7786:6;7775:9;7771:22;7750:53;:::i;:::-;7740:63;;7696:117;7852:2;7878:50;7920:7;7911:6;7900:9;7896:22;7878:50;:::i;:::-;7868:60;;7823:115;7477:468;;;;;:::o;7951:474::-;8019:6;8027;8076:2;8064:9;8055:7;8051:23;8047:32;8044:119;;;8082:79;;:::i;:::-;8044:119;8202:1;8227:53;8272:7;8263:6;8252:9;8248:22;8227:53;:::i;:::-;8217:63;;8173:117;8329:2;8355:53;8400:7;8391:6;8380:9;8376:22;8355:53;:::i;:::-;8345:63;;8300:118;7951:474;;;;;:::o;8431:172::-;8571:24;8567:1;8559:6;8555:14;8548:48;8431:172;:::o;8609:366::-;8751:3;8772:67;8836:2;8831:3;8772:67;:::i;:::-;8765:74;;8848:93;8937:3;8848:93;:::i;:::-;8966:2;8961:3;8957:12;8950:19;;8609:366;;;:::o;8981:419::-;9147:4;9185:2;9174:9;9170:18;9162:26;;9234:9;9228:4;9224:20;9220:1;9209:9;9205:17;9198:47;9262:131;9388:4;9262:131;:::i;:::-;9254:139;;8981:419;;;:::o;9406:180::-;9454:77;9451:1;9444:88;9551:4;9548:1;9541:15;9575:4;9572:1;9565:15;9592:320;9636:6;9673:1;9667:4;9663:12;9653:22;;9720:1;9714:4;9710:12;9741:18;9731:81;;9797:4;9789:6;9785:17;9775:27;;9731:81;9859:2;9851:6;9848:14;9828:18;9825:38;9822:84;;9878:18;;:::i;:::-;9822:84;9643:269;9592:320;;;:::o;9918:180::-;9966:77;9963:1;9956:88;10063:4;10060:1;10053:15;10087:4;10084:1;10077:15;10104:191;10144:3;10163:20;10181:1;10163:20;:::i;:::-;10158:25;;10197:20;10215:1;10197:20;:::i;:::-;10192:25;;10240:1;10237;10233:9;10226:16;;10261:3;10258:1;10255:10;10252:36;;;10268:18;;:::i;:::-;10252:36;10104:191;;;;:::o;10301:180::-;10441:32;10437:1;10429:6;10425:14;10418:56;10301:180;:::o;10487:366::-;10629:3;10650:67;10714:2;10709:3;10650:67;:::i;:::-;10643:74;;10726:93;10815:3;10726:93;:::i;:::-;10844:2;10839:3;10835:12;10828:19;;10487:366;;;:::o;10859:419::-;11025:4;11063:2;11052:9;11048:18;11040:26;;11112:9;11106:4;11102:20;11098:1;11087:9;11083:17;11076:47;11140:131;11266:4;11140:131;:::i;:::-;11132:139;;10859:419;;;:::o;11284:223::-;11424:34;11420:1;11412:6;11408:14;11401:58;11493:6;11488:2;11480:6;11476:15;11469:31;11284:223;:::o;11513:366::-;11655:3;11676:67;11740:2;11735:3;11676:67;:::i;:::-;11669:74;;11752:93;11841:3;11752:93;:::i;:::-;11870:2;11865:3;11861:12;11854:19;;11513:366;;;:::o;11885:419::-;12051:4;12089:2;12078:9;12074:18;12066:26;;12138:9;12132:4;12128:20;12124:1;12113:9;12109:17;12102:47;12166:131;12292:4;12166:131;:::i;:::-;12158:139;;11885:419;;;:::o;12310:143::-;12367:5;12398:6;12392:13;12383:22;;12414:33;12441:5;12414:33;:::i;:::-;12310:143;;;;:::o;12459:351::-;12529:6;12578:2;12566:9;12557:7;12553:23;12549:32;12546:119;;;12584:79;;:::i;:::-;12546:119;12704:1;12729:64;12785:7;12776:6;12765:9;12761:22;12729:64;:::i;:::-;12719:74;;12675:128;12459:351;;;;:::o;12816:410::-;12856:7;12879:20;12897:1;12879:20;:::i;:::-;12874:25;;12913:20;12931:1;12913:20;:::i;:::-;12908:25;;12968:1;12965;12961:9;12990:30;13008:11;12990:30;:::i;:::-;12979:41;;13169:1;13160:7;13156:15;13153:1;13150:22;13130:1;13123:9;13103:83;13080:139;;13199:18;;:::i;:::-;13080:139;12864:362;12816:410;;;;:::o;13232:180::-;13280:77;13277:1;13270:88;13377:4;13374:1;13367:15;13401:4;13398:1;13391:15;13418:185;13458:1;13475:20;13493:1;13475:20;:::i;:::-;13470:25;;13509:20;13527:1;13509:20;:::i;:::-;13504:25;;13548:1;13538:35;;13553:18;;:::i;:::-;13538:35;13595:1;13592;13588:9;13583:14;;13418:185;;;;:::o;13609:167::-;13749:19;13745:1;13737:6;13733:14;13726:43;13609:167;:::o;13782:366::-;13924:3;13945:67;14009:2;14004:3;13945:67;:::i;:::-;13938:74;;14021:93;14110:3;14021:93;:::i;:::-;14139:2;14134:3;14130:12;14123:19;;13782:366;;;:::o;14154:419::-;14320:4;14358:2;14347:9;14343:18;14335:26;;14407:9;14401:4;14397:20;14393:1;14382:9;14378:17;14371:47;14435:131;14561:4;14435:131;:::i;:::-;14427:139;;14154:419;;;:::o;14579:332::-;14700:4;14738:2;14727:9;14723:18;14715:26;;14751:71;14819:1;14808:9;14804:17;14795:6;14751:71;:::i;:::-;14832:72;14900:2;14889:9;14885:18;14876:6;14832:72;:::i;:::-;14579:332;;;;;:::o;14917:137::-;14971:5;15002:6;14996:13;14987:22;;15018:30;15042:5;15018:30;:::i;:::-;14917:137;;;;:::o;15060:345::-;15127:6;15176:2;15164:9;15155:7;15151:23;15147:32;15144:119;;;15182:79;;:::i;:::-;15144:119;15302:1;15327:61;15380:7;15371:6;15360:9;15356:22;15327:61;:::i;:::-;15317:71;;15273:125;15060:345;;;;:::o;15411:179::-;15551:31;15547:1;15539:6;15535:14;15528:55;15411:179;:::o;15596:366::-;15738:3;15759:67;15823:2;15818:3;15759:67;:::i;:::-;15752:74;;15835:93;15924:3;15835:93;:::i;:::-;15953:2;15948:3;15944:12;15937:19;;15596:366;;;:::o;15968:419::-;16134:4;16172:2;16161:9;16157:18;16149:26;;16221:9;16215:4;16211:20;16207:1;16196:9;16192:17;16185:47;16249:131;16375:4;16249:131;:::i;:::-;16241:139;;15968:419;;;:::o;16393:167::-;16533:19;16529:1;16521:6;16517:14;16510:43;16393:167;:::o;16566:366::-;16708:3;16729:67;16793:2;16788:3;16729:67;:::i;:::-;16722:74;;16805:93;16894:3;16805:93;:::i;:::-;16923:2;16918:3;16914:12;16907:19;;16566:366;;;:::o;16938:419::-;17104:4;17142:2;17131:9;17127:18;17119:26;;17191:9;17185:4;17181:20;17177:1;17166:9;17162:17;17155:47;17219:131;17345:4;17219:131;:::i;:::-;17211:139;;16938:419;;;:::o;17363:244::-;17503:34;17499:1;17491:6;17487:14;17480:58;17572:27;17567:2;17559:6;17555:15;17548:52;17363:244;:::o;17613:366::-;17755:3;17776:67;17840:2;17835:3;17776:67;:::i;:::-;17769:74;;17852:93;17941:3;17852:93;:::i;:::-;17970:2;17965:3;17961:12;17954:19;;17613:366;;;:::o;17985:419::-;18151:4;18189:2;18178:9;18174:18;18166:26;;18238:9;18232:4;18228:20;18224:1;18213:9;18209:17;18202:47;18266:131;18392:4;18266:131;:::i;:::-;18258:139;;17985:419;;;:::o;18410:224::-;18550:34;18546:1;18538:6;18534:14;18527:58;18619:7;18614:2;18606:6;18602:15;18595:32;18410:224;:::o;18640:366::-;18782:3;18803:67;18867:2;18862:3;18803:67;:::i;:::-;18796:74;;18879:93;18968:3;18879:93;:::i;:::-;18997:2;18992:3;18988:12;18981:19;;18640:366;;;:::o;19012:419::-;19178:4;19216:2;19205:9;19201:18;19193:26;;19265:9;19259:4;19255:20;19251:1;19240:9;19236:17;19229:47;19293:131;19419:4;19293:131;:::i;:::-;19285:139;;19012:419;;;:::o;19437:172::-;19577:24;19573:1;19565:6;19561:14;19554:48;19437:172;:::o;19615:366::-;19757:3;19778:67;19842:2;19837:3;19778:67;:::i;:::-;19771:74;;19854:93;19943:3;19854:93;:::i;:::-;19972:2;19967:3;19963:12;19956:19;;19615:366;;;:::o;19987:419::-;20153:4;20191:2;20180:9;20176:18;20168:26;;20240:9;20234:4;20230:20;20226:1;20215:9;20211:17;20204:47;20268:131;20394:4;20268:131;:::i;:::-;20260:139;;19987:419;;;:::o;20412:225::-;20552:34;20548:1;20540:6;20536:14;20529:58;20621:8;20616:2;20608:6;20604:15;20597:33;20412:225;:::o;20643:366::-;20785:3;20806:67;20870:2;20865:3;20806:67;:::i;:::-;20799:74;;20882:93;20971:3;20882:93;:::i;:::-;21000:2;20995:3;20991:12;20984:19;;20643:366;;;:::o;21015:419::-;21181:4;21219:2;21208:9;21204:18;21196:26;;21268:9;21262:4;21258:20;21254:1;21243:9;21239:17;21232:47;21296:131;21422:4;21296:131;:::i;:::-;21288:139;;21015:419;;;:::o;21440:182::-;21580:34;21576:1;21568:6;21564:14;21557:58;21440:182;:::o;21628:366::-;21770:3;21791:67;21855:2;21850:3;21791:67;:::i;:::-;21784:74;;21867:93;21956:3;21867:93;:::i;:::-;21985:2;21980:3;21976:12;21969:19;;21628:366;;;:::o;22000:419::-;22166:4;22204:2;22193:9;22189:18;22181:26;;22253:9;22247:4;22243:20;22239:1;22228:9;22224:17;22217:47;22281:131;22407:4;22281:131;:::i;:::-;22273:139;;22000:419;;;:::o;22425:223::-;22565:34;22561:1;22553:6;22549:14;22542:58;22634:6;22629:2;22621:6;22617:15;22610:31;22425:223;:::o;22654:366::-;22796:3;22817:67;22881:2;22876:3;22817:67;:::i;:::-;22810:74;;22893:93;22982:3;22893:93;:::i;:::-;23011:2;23006:3;23002:12;22995:19;;22654:366;;;:::o;23026:419::-;23192:4;23230:2;23219:9;23215:18;23207:26;;23279:9;23273:4;23269:20;23265:1;23254:9;23250:17;23243:47;23307:131;23433:4;23307:131;:::i;:::-;23299:139;;23026:419;;;:::o;23451:221::-;23591:34;23587:1;23579:6;23575:14;23568:58;23660:4;23655:2;23647:6;23643:15;23636:29;23451:221;:::o;23678:366::-;23820:3;23841:67;23905:2;23900:3;23841:67;:::i;:::-;23834:74;;23917:93;24006:3;23917:93;:::i;:::-;24035:2;24030:3;24026:12;24019:19;;23678:366;;;:::o;24050:419::-;24216:4;24254:2;24243:9;24239:18;24231:26;;24303:9;24297:4;24293:20;24289:1;24278:9;24274:17;24267:47;24331:131;24457:4;24331:131;:::i;:::-;24323:139;;24050:419;;;:::o;24475:179::-;24615:31;24611:1;24603:6;24599:14;24592:55;24475:179;:::o;24660:366::-;24802:3;24823:67;24887:2;24882:3;24823:67;:::i;:::-;24816:74;;24899:93;24988:3;24899:93;:::i;:::-;25017:2;25012:3;25008:12;25001:19;;24660:366;;;:::o;25032:419::-;25198:4;25236:2;25225:9;25221:18;25213:26;;25285:9;25279:4;25275:20;25271:1;25260:9;25256:17;25249:47;25313:131;25439:4;25313:131;:::i;:::-;25305:139;;25032:419;;;:::o;25457:224::-;25597:34;25593:1;25585:6;25581:14;25574:58;25666:7;25661:2;25653:6;25649:15;25642:32;25457:224;:::o;25687:366::-;25829:3;25850:67;25914:2;25909:3;25850:67;:::i;:::-;25843:74;;25926:93;26015:3;25926:93;:::i;:::-;26044:2;26039:3;26035:12;26028:19;;25687:366;;;:::o;26059:419::-;26225:4;26263:2;26252:9;26248:18;26240:26;;26312:9;26306:4;26302:20;26298:1;26287:9;26283:17;26276:47;26340:131;26466:4;26340:131;:::i;:::-;26332:139;;26059:419;;;:::o;26484:222::-;26624:34;26620:1;26612:6;26608:14;26601:58;26693:5;26688:2;26680:6;26676:15;26669:30;26484:222;:::o;26712:366::-;26854:3;26875:67;26939:2;26934:3;26875:67;:::i;:::-;26868:74;;26951:93;27040:3;26951:93;:::i;:::-;27069:2;27064:3;27060:12;27053:19;;26712:366;;;:::o;27084:419::-;27250:4;27288:2;27277:9;27273:18;27265:26;;27337:9;27331:4;27327:20;27323:1;27312:9;27308:17;27301:47;27365:131;27491:4;27365:131;:::i;:::-;27357:139;;27084:419;;;:::o;27509:172::-;27649:24;27645:1;27637:6;27633:14;27626:48;27509:172;:::o;27687:366::-;27829:3;27850:67;27914:2;27909:3;27850:67;:::i;:::-;27843:74;;27926:93;28015:3;27926:93;:::i;:::-;28044:2;28039:3;28035:12;28028:19;;27687:366;;;:::o;28059:419::-;28225:4;28263:2;28252:9;28248:18;28240:26;;28312:9;28306:4;28302:20;28298:1;28287:9;28283:17;28276:47;28340:131;28466:4;28340:131;:::i;:::-;28332:139;;28059:419;;;:::o;28484:240::-;28624:34;28620:1;28612:6;28608:14;28601:58;28693:23;28688:2;28680:6;28676:15;28669:48;28484:240;:::o;28730:366::-;28872:3;28893:67;28957:2;28952:3;28893:67;:::i;:::-;28886:74;;28969:93;29058:3;28969:93;:::i;:::-;29087:2;29082:3;29078:12;29071:19;;28730:366;;;:::o;29102:419::-;29268:4;29306:2;29295:9;29291:18;29283:26;;29355:9;29349:4;29345:20;29341:1;29330:9;29326:17;29319:47;29383:131;29509:4;29383:131;:::i;:::-;29375:139;;29102:419;;;:::o;29527:169::-;29667:21;29663:1;29655:6;29651:14;29644:45;29527:169;:::o;29702:366::-;29844:3;29865:67;29929:2;29924:3;29865:67;:::i;:::-;29858:74;;29941:93;30030:3;29941:93;:::i;:::-;30059:2;30054:3;30050:12;30043:19;;29702:366;;;:::o;30074:419::-;30240:4;30278:2;30267:9;30263:18;30255:26;;30327:9;30321:4;30317:20;30313:1;30302:9;30298:17;30291:47;30355:131;30481:4;30355:131;:::i;:::-;30347:139;;30074:419;;;:::o;30499:241::-;30639:34;30635:1;30627:6;30623:14;30616:58;30708:24;30703:2;30695:6;30691:15;30684:49;30499:241;:::o;30746:366::-;30888:3;30909:67;30973:2;30968:3;30909:67;:::i;:::-;30902:74;;30985:93;31074:3;30985:93;:::i;:::-;31103:2;31098:3;31094:12;31087:19;;30746:366;;;:::o;31118:419::-;31284:4;31322:2;31311:9;31307:18;31299:26;;31371:9;31365:4;31361:20;31357:1;31346:9;31342:17;31335:47;31399:131;31525:4;31399:131;:::i;:::-;31391:139;;31118:419;;;:::o;31543:245::-;31683:34;31679:1;31671:6;31667:14;31660:58;31752:28;31747:2;31739:6;31735:15;31728:53;31543:245;:::o;31794:366::-;31936:3;31957:67;32021:2;32016:3;31957:67;:::i;:::-;31950:74;;32033:93;32122:3;32033:93;:::i;:::-;32151:2;32146:3;32142:12;32135:19;;31794:366;;;:::o;32166:419::-;32332:4;32370:2;32359:9;32355:18;32347:26;;32419:9;32413:4;32409:20;32405:1;32394:9;32390:17;32383:47;32447:131;32573:4;32447:131;:::i;:::-;32439:139;;32166:419;;;:::o;32591:233::-;32630:3;32653:24;32671:5;32653:24;:::i;:::-;32644:33;;32699:66;32692:5;32689:77;32686:103;;32769:18;;:::i;:::-;32686:103;32816:1;32809:5;32805:13;32798:20;;32591:233;;;:::o;32830:194::-;32870:4;32890:20;32908:1;32890:20;:::i;:::-;32885:25;;32924:20;32942:1;32924:20;:::i;:::-;32919:25;;32968:1;32965;32961:9;32953:17;;32992:1;32986:4;32983:11;32980:37;;;32997:18;;:::i;:::-;32980:37;32830:194;;;;:::o;33030:225::-;33170:34;33166:1;33158:6;33154:14;33147:58;33239:8;33234:2;33226:6;33222:15;33215:33;33030:225;:::o;33261:366::-;33403:3;33424:67;33488:2;33483:3;33424:67;:::i;:::-;33417:74;;33500:93;33589:3;33500:93;:::i;:::-;33618:2;33613:3;33609:12;33602:19;;33261:366;;;:::o;33633:419::-;33799:4;33837:2;33826:9;33822:18;33814:26;;33886:9;33880:4;33876:20;33872:1;33861:9;33857:17;33850:47;33914:131;34040:4;33914:131;:::i;:::-;33906:139;;33633:419;;;:::o;34058:180::-;34106:77;34103:1;34096:88;34203:4;34200:1;34193:15;34227:4;34224:1;34217:15;34244:180;34292:77;34289:1;34282:88;34389:4;34386:1;34379:15;34413:4;34410:1;34403:15;34430:143;34487:5;34518:6;34512:13;34503:22;;34534:33;34561:5;34534:33;:::i;:::-;34430:143;;;;:::o;34579:351::-;34649:6;34698:2;34686:9;34677:7;34673:23;34669:32;34666:119;;;34704:79;;:::i;:::-;34666:119;34824:1;34849:64;34905:7;34896:6;34885:9;34881:22;34849:64;:::i;:::-;34839:74;;34795:128;34579:351;;;;:::o;34936:85::-;34981:7;35010:5;34999:16;;34936:85;;;:::o;35027:158::-;35085:9;35118:61;35136:42;35145:32;35171:5;35145:32;:::i;:::-;35136:42;:::i;:::-;35118:61;:::i;:::-;35105:74;;35027:158;;;:::o;35191:147::-;35286:45;35325:5;35286:45;:::i;:::-;35281:3;35274:58;35191:147;;:::o;35344:114::-;35411:6;35445:5;35439:12;35429:22;;35344:114;;;:::o;35464:184::-;35563:11;35597:6;35592:3;35585:19;35637:4;35632:3;35628:14;35613:29;;35464:184;;;;:::o;35654:132::-;35721:4;35744:3;35736:11;;35774:4;35769:3;35765:14;35757:22;;35654:132;;;:::o;35792:108::-;35869:24;35887:5;35869:24;:::i;:::-;35864:3;35857:37;35792:108;;:::o;35906:179::-;35975:10;35996:46;36038:3;36030:6;35996:46;:::i;:::-;36074:4;36069:3;36065:14;36051:28;;35906:179;;;;:::o;36091:113::-;36161:4;36193;36188:3;36184:14;36176:22;;36091:113;;;:::o;36240:732::-;36359:3;36388:54;36436:5;36388:54;:::i;:::-;36458:86;36537:6;36532:3;36458:86;:::i;:::-;36451:93;;36568:56;36618:5;36568:56;:::i;:::-;36647:7;36678:1;36663:284;36688:6;36685:1;36682:13;36663:284;;;36764:6;36758:13;36791:63;36850:3;36835:13;36791:63;:::i;:::-;36784:70;;36877:60;36930:6;36877:60;:::i;:::-;36867:70;;36723:224;36710:1;36707;36703:9;36698:14;;36663:284;;;36667:14;36963:3;36956:10;;36364:608;;;36240:732;;;;:::o;36978:831::-;37241:4;37279:3;37268:9;37264:19;37256:27;;37293:71;37361:1;37350:9;37346:17;37337:6;37293:71;:::i;:::-;37374:80;37450:2;37439:9;37435:18;37426:6;37374:80;:::i;:::-;37501:9;37495:4;37491:20;37486:2;37475:9;37471:18;37464:48;37529:108;37632:4;37623:6;37529:108;:::i;:::-;37521:116;;37647:72;37715:2;37704:9;37700:18;37691:6;37647:72;:::i;:::-;37729:73;37797:3;37786:9;37782:19;37773:6;37729:73;:::i;:::-;36978:831;;;;;;;;:::o

Swarm Source

ipfs://fbc61945cb7000846d286cd331c187c2c7b6e82ebdbe5c8eb38b8581fb2bad6a

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